]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
Imported from ../bash-4.0.tar.gz.
authorJari Aalto <jari.aalto@cante.net>
Thu, 19 Feb 2009 22:21:29 +0000 (22:21 +0000)
committerJari Aalto <jari.aalto@cante.net>
Sat, 12 Sep 2009 16:47:02 +0000 (16:47 +0000)
134 files changed:
CHANGES
COMPAT
CWRU/changelog
MANIFEST
MANIFEST.doc [new file with mode: 0644]
NEWS
aclocal.m4
bashhist.c
builtins/common.c
builtins/common.h
builtins/evalstring.c
builtins/mapfile.def
builtins/printf.def
builtins/read.def
builtins/reserved.def
command.h
config.h.in
configure [changed mode: 0644->0755]
configure.in
doc/FAQ
doc/article.pdf [new file with mode: 0644]
doc/article.ps [new file with mode: 0644]
doc/article.txt [new file with mode: 0644]
doc/bash.0 [new file with mode: 0644]
doc/bash.1
doc/bash.html [new file with mode: 0644]
doc/bash.pdf [new file with mode: 0644]
doc/bash.ps [new file with mode: 0644]
doc/bashbug.0 [new file with mode: 0644]
doc/bashbug.ps [new file with mode: 0644]
doc/bashref.dvi [new file with mode: 0644]
doc/bashref.html [new file with mode: 0644]
doc/bashref.info
doc/bashref.pdf [new file with mode: 0644]
doc/bashref.ps [new file with mode: 0644]
doc/bashref.texi
doc/builtins.0 [new file with mode: 0644]
doc/builtins.ps [new file with mode: 0644]
doc/rbash.0 [new file with mode: 0644]
doc/rbash.ps [new file with mode: 0644]
doc/rose94.pdf [new file with mode: 0644]
doc/rose94.ps [new file with mode: 0644]
doc/version.texi
execute_cmd.c
execute_cmd.h
externs.h
jobs.c
lib/readline/bind.c
lib/readline/callback.c
lib/readline/complete.c
lib/readline/histexpand.c
lib/readline/input.c
lib/readline/isearch.c
lib/readline/readline.c
lib/readline/rlprivate.h
lib/readline/signals.c
lib/readline/undo.c
lib/sh/casemod.c
lib/sh/zgetline.c
lib/sh/zread.c
locale.c
nojobs.c
pcomplete.c
po/._lt.po [moved from po/._de.po with 96% similarity]
po/._nl.po [deleted file]
po/._sv.po [deleted file]
po/af.gmo
po/af.po
po/bash.pot
po/bg.gmo
po/bg.po
po/ca.gmo
po/ca.po
po/cs.gmo
po/cs.po
po/de.gmo
po/de.po
po/en@boldquot.gmo
po/en@boldquot.po
po/en@quot.gmo
po/en@quot.po
po/eo.gmo
po/eo.po
po/es.gmo
po/es.po
po/et.gmo
po/et.po
po/fr.gmo
po/fr.po
po/hu.gmo
po/hu.po
po/id.gmo
po/id.po
po/ja.gmo
po/ja.po
po/lt.gmo
po/lt.po
po/nl.gmo
po/nl.po
po/pl.gmo
po/pl.po
po/pt_BR.gmo
po/pt_BR.po
po/ro.gmo
po/ro.po
po/ru.gmo
po/ru.po
po/sk.gmo
po/sk.po
po/sv.gmo
po/sv.po
po/tr.gmo
po/tr.po
po/vi.gmo
po/vi.po
po/zh_TW.gmo
po/zh_TW.po
print_cmd.c
subst.c
tests/casemod.right
tests/casemod.tests
tests/heredoc.right
tests/heredoc.tests
tests/heredoc1.sub [new file with mode: 0644]
tests/mapfile.right
tests/mapfile.tests
tests/mapfile1.sub [new file with mode: 0644]
tests/read6.sub
tests/run-set-e
tests/set-e.right
tests/set-e.tests [moved from tests/set-e-test with 96% similarity]
tests/set-e1.sub [new file with mode: 0644]
tests/set-e2.sub [new file with mode: 0644]
trap.c

diff --git a/CHANGES b/CHANGES
index 62e8677539f03831a2953051332e31df06c411ec..3d71f176ba33c81642fcc5287229c668056ec92f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,59 @@
+This document details the changes between this version, bash-4.0-release,
+and the previous version, bash-4.0-rc1.
+
+1.  Changes to Bash
+
+a.  Changed the message printed when setlocale(3) fails to only include the
+    strerror error text if the call changes errno.
+
+b.  Changed trap command execution to reset the line number before running a
+    trap (except DEBUG and RETURN traps).
+
+c.  Fixed behavior of case-modifiying word expansions to not work on
+    individual words within a variable's value.
+
+d.  Fixed a bug that caused mapfile to not be interruptible when run in an
+    interactive shell.
+
+e.  Fixed a bug that caused mapfile to not run callbacks for the first line
+    read.
+
+f.  Fixed a bug that caused mapfile to not honor EOF typed in an interactive
+    shell.
+
+g.  Fixed the coprocess reaping code to not run straight from a signal handler.
+
+h.  Fixed a bug that caused printf -b to ignore the first % conversion specifier
+    in the format string on 64-bit systems.
+
+i.  Fixed a bug that caused incorrect word splitting when `:', `=', or `~'
+    appeared in $IFS.
+
+j.  Fixed a bug that caused data corruption in the programmable completion code
+    when a shell function called from a completion aborted execution.
+
+k.  Fixed a bug that caused the CPU usage reported by the `time' builtin to be
+    capped at 100%.
+
+l.  Changed behavior of shell when -e option is in effect to reflect consensus
+    of Posix shell standardization working group.
+
+m.  Fixed a bug introduced in bash-4.0-alpha that caused redirections to not
+    be displayed by `type' or `declare' when appearing in functions under
+    certain circumstances.
+
+2.  Changes to Readline
+
+a.  Fixed a bug that caused !(...) extended glob patterns to inhibit later
+    history expansion.
+
+b.  Reworked the signal handling to avoid calling disallowed functions from a
+    signal handler.
+
+3.  New Features in Bash
+
+a.  `readarray' is now a synonym for `mapfile'.
+------------------------------------------------------------------------------
 This document details the changes between this version, bash-4.0-rc1,
 and the previous version, bash-4.0-beta2.
 
@@ -43,7 +99,7 @@ b.  Fixed a bug that caused redisplay errors when using prompts with invisible
 
 ------------------------------------------------------------------------------
 This document details the changes between this version, bash-4.0-beta,
-and the previous version, bash-4.0-beta.
+and the previous version, bash-4.0-alpha.
 
 1.  Changes to Bash
 
diff --git a/COMPAT b/COMPAT
index b80beff37b82a8bdcc4625ec883e9d3685e6463e..13512acb234e76db830542f1f65ad1795052bcf5 100644 (file)
--- a/COMPAT
+++ b/COMPAT
@@ -312,3 +312,9 @@ bash-2.0 were significant.)
 41. Beginning with bash-4.0, when one of the commands in a pipeline is killed
     by a SIGINT while executing a command list, the shell acts as if it
     received the interrupt.
+
+42. Bash-4.0 changes the handling of the set -e option so that the shell exits
+    if a pipeline fails (and not just if the last command in the failing
+    pipeline is a simple command).  This is not as Posix specifies.  There is
+    work underway to update this portion of the standard; the bash-4.0
+    behavior attempts to capture the consensus at the time of release.
index 6df20950a4dc4c1b3d33ce00c80e14142c3e0ae7..5427ece23e02604bf8eec766bf90c3d17e7f1f5a 100644 (file)
@@ -7286,3 +7286,244 @@ subst.c
          string.  Fixes bug reported by os@sernet.de.
 
 [bash-4.0-rc1 frozen]
+
+                                   1/9
+                                   ---
+locale.c
+       - since setlocale() doesn't set errno to anything meaningful,
+         don't include the strerror() result in the error message if
+         it fails
+       - make sure the error messages printed when setlocale fails are
+         localizable
+
+                                  1/11
+                                  ----
+lib/readline/histexpand.c
+       - make sure that every time history_no_expand_chars is tested, we
+         also call the history_inhibit_expansion_function if it's set.
+         Fixes bug reported by Yang Zhang <yanghatespam@gmail.com>
+
+                                  1/12
+                                  ----
+trap.c
+       - make sure to call parse_and_execute with the SEVAL_RESETLINE bit
+         set in the flags so it will reset the line number when running
+         the trap commands.  Partial fix for bug reported by
+         peter360@fastmail.us
+
+                                  1/14
+                                  ----
+builtins/reserved.def
+       - document `coproc' so it can be used with `help' builtin.  Pointed
+         out by Pierre Gaston <pgas@freeshell.org>
+
+lib/sh/casemod.c
+       - added two new flags: CASE_UPFIRST and CASE_LOWFIRST to casemod
+         the first character of the passed string and pass the rest
+         through unchanged.  Fixes bug reported by Jan Schampera
+         <jan.schampera@web.de>
+
+externs.h
+       - new defines for CASE_UPFIRST and CASE_LOWFIRST
+
+subst.c
+       - use CASE_UPFIRST for ^ and CASE_LOWFIRST for , casemod operators
+
+builtins/mapfile.def
+       - call zreset() before calling first zgetline(), to clean out any
+         remaining data in local buffer used by zreadc.  Fixes bug
+         reported by Pierre Gaston <pierre.gaston@gmail.com>
+
+                                  1/15
+                                  ----
+lib/sh/zread.c
+       - renamed zreadintr to zreadretry -- not perfect, but better
+       - new functions: zreadintr, which just calls read so it can be
+         interruptible, and zreadcintr, which is like zreadc but uses
+         zreadintr to fill the buffer
+
+lib/sh/zgetline.c
+       - in zgetline, when zread/zreadc return <= 0, make sure line is
+         non-null before assigning to line[nr]
+
+builtins/mapfile.def
+       - return an error right away if the supplied array variable name
+         refers to a readonly or noassign array
+       - set interrupt_immediately so calls to zgetline can be
+         interrupted.  Fixes bug reported by Pierre Gaston
+         <pierre.gaston@gmail.com>
+       - if interactive, pass the SEVAL_INTERACT and SEVAL_NOHIST flags
+         to parse_and_execute when calling callbacks.  Fixes bug reported
+         by Pierre Gaston <pierre.gaston@gmail.com>
+       - add `readarray' as a synonym for mapfile
+
+doc/{bash.1,bashref.texi}
+       - document behavior of mapfile builtin adding index of array element
+         to be assigned as additional argument to callback string.  Reported
+         by Pierre Gaston <pierre.gaston@gmail.com>
+       - document readarray as synonym for mapfile
+
+builtins/common.c
+       - new error function, sh_ttyerror(set), prints an error message having
+         to do with setting or getting terminal attributes
+
+builtins/read.def
+       - print error message if read fails to set terminal attributes
+
+                                  1/16
+                                  ----
+execute_cmd.c
+       - new function, coproc_reap, calls coproc_dispose if sh_coproc is
+         marked as COPROC_DEAD
+       - new function, cpl_reap, disposes coprocs marked as COPROC_DEAD
+         from coproc list
+       - change coproc_pidchk to just mark the coproc as dead instead of
+         calling coproc_dispose, so we don't call unsafe functions from
+         a signal handler.  Fixes bug reported by Andreas Schwab
+         <schwab@suse.de>
+
+execute_cmd.h
+       - new extern declaration for coproc_reap
+
+command.h
+       - new flags for c_flags member of a struct coproc
+
+{jobs,nojobs}.c
+       - add call to coproc_reap in cleanup_dead_jobs, which will do the
+         right queueing or blocking of SIGCHLD
+
+trap.c
+       - modify change from 1/12 to not reset the line number when running
+         the DEBUG and RETURN traps
+
+                                  1/18
+                                  ----
+lib/sh/casemod.c
+       - change default operations to work on entire passed string instead
+         of breaking into words at non-alpha-numerics.  Use new
+         CASE_USEWORDS flag to enable by-word behavior.  Fixes bug reported
+         by Jan Schampera <jan.schampera@web.de>
+
+builtins/printf.def
+       - in vbprintf, bracket each call to vsnprintf (which uses the args
+         passed to vbprintf) with SH_VA_START and va_end, so we can
+         reninitialize the argument list for each call.  This is actually
+         what the C standard requires.  Fixes bug that caused printf -b
+         to `ignore' first % format specifier if it came first in the
+         string.  Reported by David Leverton <levertond@googlemail.com>
+
+builtins/mapfile.def
+       - start the line count at 1, since it doesn't get incremented before
+         (or after) reading the first line, so things like
+         `mapfile -n 5 -c 1 -C 'echo foo' array < file' work right and call
+         the callback after the first line is read.  Fixes bug reported by
+         Pierre Gaston <pierre.gaston@gmail.com>
+
+                                  1/22
+                                  ----
+lib/readline/complete.c
+       - set _rl_interrupt_immediately non-zero before reading from the file
+         system or calling an application-defined completion function
+
+lib/readline/signals.c
+       - renamed rl_signal_handler to _rl_handle_signal; new version of
+         rl_signal_handler that just calls _rl_handle_signal (for now)
+       - new function _rl_signal_handler that calls _rl_handle_signal without
+         any checking
+
+lib/readline/rlprivate.h
+       - new extern declaration for _rl_signal_handler
+       - new define, RL_CHECK_SIGNALS, checks whether or not _rl_caught_signal
+         is set and calls _rl_signal_handler if so
+
+lib/readline/{bind,input,readline}.c
+       - add RL_CHECK_SIGNALS in appropriate places
+
+lib/readline/signals.c
+       - change rl_signal_handler to set a flag and return rather than
+         run through the entire signal handling process.  If
+         _rl_interrupt_immediately is set, call the signal handling code
+         right away instead of setting the flag.  Initial fix for crash
+         bug reported by Roman Rakus <rrakus@redhat.com>
+
+aclocal.m4
+       - new macro, BASH_TYPE_SIG_ATOMIC_T, tests for sig_atomic_t in
+         <signal.h>, defines as int if not defined
+
+configure.in
+       - call BASH_TYPE_SIG_ATOMIC_T
+       - call AC_C_VOLATILE
+
+config.h.in
+       - empty define for sig_atomic_t
+       - empty define for volatile
+
+                                  1/27
+                                  ----
+subst.c
+       - audit calls to add_character and change to add_ifs_character (which
+         quotes characters in $IFS).  Affects primarily `:', `=', and `~'.
+         Fixes bug reported by Jan Schampera <jan.schampera@web.de>; fix
+         suggested by Stephane Chazelas <stephane_chazelas@yahoo.fr>
+
+                                   2/1
+                                   ---
+configure.in
+       - call AC_C_RESTRICT
+
+config.h.in
+       - add empty defintion for `restrict'
+
+pcomplete.c
+       - use unwind_protects around call to execute_shell_function in
+         gen_shell_function_matches to prevent data corruption if
+         throw_to_top_level is called.  Bug report and fix from
+         werner@suse.de.
+
+execute_cmd.c
+       - don't clamp CPU usage at 100% in print_formatted_time.  Bug reported
+         by Linda Walsh <bash@tlinx.org>
+
+                                   2/5
+                                   ---
+locale.c
+       - in set_locale_var, set errno to 0 before calling setlocale(), and
+         print strerror (errno) if setlocale fails and errno ends up non-zero
+
+                                   2/6
+                                   ---
+configure.in
+       - backed out of solaris change from 10/23/2008 (adding `-z interpose'
+         to LDFLAGS) due to solaris updates to fix a linker problem.
+         Updatted by Serge Dussud <Serge.Dussud@Sun.COM>
+
+                                  2/12
+                                  ----
+execute_cmd.c
+       - change execute_connection so failure of a pipeline will cause the
+         shell to exit if -e is on.  From discussion on austin-group
+         mailing list
+       - change execute_command_internal so failure of a user-specified
+         subshell will cause the shell to exit if -e is on.  From discussion
+         on austin-group mailing list
+
+                                  2/13
+                                  ----
+doc/{bash.1,bashref.texi}
+       - clarified description of set -e option to accurately reflect current
+         implementation
+
+                                  2/19
+                                  ----
+print_cmd.c
+       - fix print_deferred_heredocs to not print a space if the separator
+         string is null
+       - change print_deferred_heredocs to set `was_heredoc' after printing
+         something
+       - change connection printing code to only print the `;' separator
+         if we haven't just printed a here-document
+       - change connection printing code to print any deferred here
+         documents after the rhs of the connection.  Fixes bug reported by
+         Bo Andresen <bo.andresen@zlin.dk>
+
+[bash-4.0 frozen]
index cbb03fd1f5a7c812a63953a8d2ed05568e97c8a6..735270cb6d198dc2b340d6de2f6eefc0a50779ea 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -51,7 +51,7 @@ RBASH         f
 AUTHORS                f
 Y2K            f
 configure.in   f
-configure      f
+configure      f       755
 Makefile.in    f
 config-top.h   f
 config-bot.h   f
@@ -844,6 +844,7 @@ tests/glob1.sub             f
 tests/glob.right       f
 tests/heredoc.tests    f
 tests/heredoc.right    f
+tests/heredoc1.sub     f
 tests/herestr.tests    f
 tests/herestr.right    f
 tests/histexp.tests    f
@@ -875,6 +876,7 @@ tests/jobs.right    f
 tests/mapfile.data     f
 tests/mapfile.right    f
 tests/mapfile.tests    f
+tests/mapfile1.sub     f
 tests/more-exp.tests   f
 tests/more-exp.right   f
 tests/new-exp.tests    f
@@ -1005,7 +1007,9 @@ tests/run-tilde2  f
 tests/run-trap         f
 tests/run-type         f
 tests/run-varenv       f
-tests/set-e-test       f
+tests/set-e.tests      f
+tests/set-e1.sub       f
+tests/set-e2.sub       f
 tests/set-e.right      f
 tests/set-x.tests      f
 tests/set-x.right      f
diff --git a/MANIFEST.doc b/MANIFEST.doc
new file mode 100644 (file)
index 0000000..736ad5b
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Master Manifest file for documentation-only distribution
+#
+doc    d
+MANIFEST.doc   f
+doc/article.ps f
+doc/rose94.ps  f
+doc/bash.ps            f
+doc/bashbug.ps f
+doc/builtins.ps        f
+doc/rbash.ps   f
+doc/bashref.ps f
+doc/bashref.dvi        f
+doc/bash.0             f
+doc/bashbug.0          f
+doc/builtins.0 f
+doc/rbash.0    f
+doc/article.txt        f
+doc/bash.html          f
+doc/bashref.html       f
+doc/article.pdf        f
+doc/bash.pdf   f
+doc/bashref.pdf        f
+doc/rose94.pdf f
diff --git a/NEWS b/NEWS
index b53aa7523dd013ea44042bbbaed89b99c1800d0f..05573cca69e6d39e0ef98437bc39a96a4e96f1da 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -72,7 +72,7 @@ t.  The `help' builtin now has a new -d option, to display a short description,
     and a -m option, to print help information in a man page-like format.
 
 u.  There is a new `mapfile' builtin to populate an array with lines from a
-    given file.
+    given file.  The name `readarray' is a synonym.
 
 v.  If a command is not found, the shell attempts to execute a shell function
     named `command_not_found_handle', supplying the command words as the
@@ -102,7 +102,7 @@ bb. The command assigned to a key sequence with `bind -x' now sets two new
     and cursor position by modifying READLINE_LINE_BUFFER and READLINE_POINT,
     respectively.
 
-cc. There is a new >>& redirection operator, which appends the standard output
+cc. There is a new &>> redirection operator, which appends the standard output
     and standard error to the named file.
 
 dd. The parser now understands `|&' as a synonym for `2>&1 |', which redirects
index 63fadbb37e7f1f7cf9fbfea32da0930d2275db2f..5a742bc7e4524d2f982a059cbcb74327500c7971 100644 (file)
@@ -531,6 +531,18 @@ AC_DEFINE(RLIMTYPE, rlim_t)
 fi
 ])
 
+AC_DEFUN(BASH_TYPE_SIG_ATOMIC_T,
+[AC_CACHE_CHECK([for sig_atomic_t in signal.h], ac_cv_have_sig_atomic_t,
+[AC_TRY_LINK([
+#include <signal.h>
+],[ sig_atomic_t x; ],
+ac_cv_have_sig_atomic_t=yes, ac_cv_have_sig_atomic_t=no)])
+if test "$ac_cv_have_sig_atomic_t" = "no"
+then
+    AC_CHECK_TYPE(sig_atomic_t,int)
+fi
+])
+
 AC_DEFUN(BASH_FUNC_LSTAT,
 [dnl Cannot use AC_CHECK_FUNCS(lstat) because Linux defines lstat() as an
 dnl inline function in <sys/stat.h>.
index 02afb38f7534dc9c41f4ec2e59e4f0da5ecf8dae..5c61f67568a345a1a7f4b9a8aacd0063a6956dbd 100644 (file)
@@ -355,7 +355,6 @@ save_history ()
        append_history (history_lines_this_session, hf);
       else
        write_history (hf);
-
       sv_histsize ("HISTFILESIZE");
     }
 }
index f03a655dfee15fd41d2531318d19663abe6905f1..6ba641b802e639e6d854ad6fd6b2c6043a884b20 100644 (file)
@@ -321,6 +321,16 @@ sh_wrerror ()
   builtin_error (_("write error: %s"), strerror (errno));
 }
 
+void
+sh_ttyerror (set)
+     int set;
+{
+  if (set)
+    builtin_error (_("error setting terminal attributes: %s"), strerror (errno));
+  else
+    builtin_error (_("error getting terminal attributes: %s"), strerror (errno));
+}
+
 int
 sh_chkwrite (s)
      int s;
index a3835ca22ffbc5dd90f07e892dd06b861fb00956..ecf9d1b454fa1f37ad78fec866a040e105c8bad2 100644 (file)
@@ -81,6 +81,7 @@ extern void sh_nojobs __P((char *));
 extern void sh_restricted __P((char *));
 extern void sh_notbuiltin __P((char *));
 extern void sh_wrerror __P((void));
+extern void sh_ttyerror __P((int));
 extern int sh_chkwrite __P((int));
 
 extern char **make_builtin_argv __P((WORD_LIST *, int *));
index 8f172de7c1cf2eed0e32970cc901e481b8e4d5c6..a0fb3e26e5909d91c62b1b474745d6bb3d643076 100644 (file)
@@ -266,10 +266,7 @@ parse_and_execute (string, from_file, flags)
              global_command = (COMMAND *)NULL;
 
              if ((subshell_environment & SUBSHELL_COMSUB) && comsub_ignore_return)
-{
                command->flags |= CMD_IGNORE_RETURN;
-itrace("parse_and_execute: turned on CMD_IGNORE_RETURN from comsub_ignore_return");
-}
 
 #if defined (ONESHOT)
              /*
index 32742ee1f31383fe782ae7072d32116d37716e29..e37cd22701d18bc3790487d2d82ccf560ce0943a 100644 (file)
@@ -24,7 +24,7 @@ $PRODUCES mapfile.c
 $BUILTIN mapfile
 $FUNCTION mapfile_builtin
 $SHORT_DOC mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
-Read lines from a file into an array variable.
+Read lines from the standard input into an array variable.
 
 Read lines from the standard input into the array variable ARRAY, or from
 file descriptor FD if the -u option is supplied.  The variable MAPFILE is
@@ -42,7 +42,9 @@ Options:
 Arguments:
   ARRAY                Array variable name to use for file data.
 
-If -C is supplied without -c, the default quantum is 5000.
+If -C is supplied without -c, the default quantum is 5000.  When
+CALLBACK is evaluated, it is supplied the index of the next array
+element to be assigned as an additional argument.
 
 If not supplied with an explicit origin, mapfile will clear ARRAY before
 assigning to it.
@@ -51,6 +53,14 @@ Exit Status:
 Returns success unless an invalid option is given or ARRAY is readonly.
 $END
 
+$BUILTIN readarray
+$FUNCTION mapfile_builtin
+$SHORT_DOC readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
+Read lines from a file into an array variable.
+
+A synonym for `mapfile'.
+$END
+
 #include <config.h>
 
 #include "builtins.h"
@@ -70,7 +80,6 @@ $END
 #include "common.h"
 #include "bashgetopt.h"
 
-
 #if !defined (errno)
 extern int errno;
 #endif
@@ -93,6 +102,7 @@ run_callback(callback, current_index)
 {
   unsigned int execlen;
   char  *execstr;
+  int flags;
 
   execlen = strlen (callback) + 10;
   /* 1 for space between %s and %d,
@@ -100,8 +110,13 @@ run_callback(callback, current_index)
   execlen += 2;
   execstr = xmalloc (execlen);
 
+  flags = 0;
+#if 0
+  if (interactive)
+    flags |= SEVAL_NOHIST|SEVAL_INTERACT;
+#endif
   snprintf (execstr, execlen, "%s %d", callback, current_index);
-  return parse_and_execute(execstr, NULL, 0);
+  return parse_and_execute(execstr, NULL, flags);
 }
 
 static void
@@ -136,8 +151,13 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n
      here allows us to call bind_array_element instead of bind_array_variable
      and skip the variable lookup on every call. */
   entry = find_or_make_array_variable (array_name, 1);
-  if (entry == 0)
-    return (EXECUTION_FAILURE);
+  if (entry == 0 || readonly_p (entry) || noassign_p (entry))
+    {
+      if (readonly_p (entry))
+       err_readonly (array_name);
+       
+      return (EXECUTION_FAILURE);
+    }
   if (flags & MAPF_CLEARARRAY)
     array_flush (array_cell (entry));
 
@@ -147,19 +167,24 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n
   unbuffered_read = 1;
 #endif
 
+  zreset ();
+
   /* Skip any lines at beginning of file? */
   for (line_count = 0; line_count < nskip; line_count++)
-    zgetline(fd, &line, &line_length, unbuffered_read);
+    if (zgetline (fd, &line, &line_length, unbuffered_read) < 0)
+      break;
+
   line = 0;
   line_length = 0;    
 
   /* Reset the buffer for bash own stream */
-  for (array_index = origin, line_count = 0; 
-       zgetline(fd, &line, &line_length, unbuffered_read) != -1;
+  interrupt_immediately++;
+  for (array_index = origin, line_count = 1; 
+       zgetline (fd, &line, &line_length, unbuffered_read) != -1;
        array_index++, line_count++) 
     {
       /* Have we exceeded # of lines to store? */
-      if (line_count_goal != 0 && line_count >= line_count_goal) 
+      if (line_count_goal != 0 && line_count > line_count_goal) 
        break;
 
       /* Remove trailing newlines? */
@@ -184,6 +209,7 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n
   if (unbuffered_read == 0)
     zsyncfd (fd);
 
+  interrupt_immediately--;
   return EXECUTION_SUCCESS;
 }
 
index 7f07d156c8bcb5e211a43434c2fb68cdb2f2b103..757fcea2cd17303f88fb7aaad143a3b925fa2b4f 100644 (file)
@@ -879,16 +879,18 @@ vbprintf (format, va_alist)
 
   SH_VA_START (args, format);
   blen = vsnprintf (vbuf + vblen, vbsize - vblen, format, args);
+  va_end (args);
 
   nlen = vblen + blen + 1;
   if (nlen >= vbsize)
     {
       vbsize = ((nlen + 63) >> 6) << 6;
       vbuf = (char *)xrealloc (vbuf, vbsize);
+      SH_VA_START (args, format);
       blen = vsnprintf (vbuf + vblen, vbsize - vblen, format, args);
+      va_end (args);
     }
 
-  va_end (args);
   vblen += blen;
   vbuf[vblen] = '\0';
 
index c93681edbefd758d935b60041cec9cd54fa0492d..fb4366febe3353c15c409c5372470bb19cbc048f 100644 (file)
@@ -290,9 +290,8 @@ read_builtin (list)
     }
   list = loptend;
 
-  /* `read -t 0 var' returns failure immediately.  XXX - should it test
-     whether input is available with select/FIONREAD, and fail if those
-     are unavailable? */
+  /* `read -t 0 var' tests whether input is available with select/FIONREAD,
+     and fails if those are unavailable */
   if (have_timeout && tmsec == 0 && tmusec == 0)
 #if 0
     return (EXECUTION_FAILURE);
@@ -417,10 +416,9 @@ read_builtin (list)
          termsave.attrs = &ttattrs;
 
          ttset = ttattrs;        
-         if (silent)
-           ttfd_cbreak (fd, &ttset);           /* ttcbreak () */
-         else
-           ttfd_onechar (fd, &ttset);          /* ttonechar () */
+         i = silent ? ttfd_cbreak (fd, &ttset) : ttfd_onechar (fd, &ttset);
+         if (i < 0)
+           sh_ttyerror (1);
          add_unwind_protect ((Function *)ttyrestore, (char *)&termsave);
        }
     }
@@ -432,7 +430,9 @@ read_builtin (list)
       termsave.attrs = &ttattrs;
 
       ttset = ttattrs;
-      ttfd_noecho (fd, &ttset);                        /* ttnoecho (); */
+      i = ttfd_noecho (fd, &ttset);                    /* ttnoecho (); */
+      if (i < 0)
+       sh_ttyerror (1);
 
       add_unwind_protect ((Function *)ttyrestore, (char *)&termsave);
     }
index 04c59b01957af9d3afd005c93e0b3aed4259d3ee..2478f1630ce235a116f62cfebe1559a146d629f8 100644 (file)
@@ -135,6 +135,19 @@ Exit Status:
 Returns the status of the last command executed.
 $END
 
+$BUILTIN coproc
+$SHORT_DOC coproc [NAME] command [redirections]
+Create a coprocess named NAME.
+
+Execute COMMAND asynchronously, with the standard output and standard
+input of the command connected via a pipe to file descriptors assigned
+to indices 0 and 1 of an array variable NAME in the executing shell.
+The default NAME is "COPROC".
+
+Exit Status:
+Returns the exit status of COMMAND.
+$END
+
 $BUILTIN function
 $SHORT_DOC function name { COMMANDS ; } or name () { COMMANDS ; }
 Define shell function.
index dd52c39c0a7378c6e642beccc04ced554f343e93..e8a8aa3e3cf9ceebc1ce4a42fb9ee071dff5db15 100644 (file)
--- a/command.h
+++ b/command.h
@@ -334,6 +334,9 @@ typedef struct subshell_com {
   COMMAND *command;
 } SUBSHELL_COM;
 
+#define COPROC_RUNNING 0x01
+#define COPROC_DEAD    0x02
+
 typedef struct coproc {
   char *c_name;
   pid_t c_pid;
index 60f6d246763301bd25b0bfeaa174d504a18f4ee4..14f2c3196161e2ecc4879d3e93a9cf8f764f8326 100644 (file)
 
 #undef inline
 
+#undef restrict
+
+#undef volatile
+
 /* Define if cpp supports the ANSI-C stringizing `#' operator */
 #undef HAVE_STRINGIZE
 
 /* Define to `unsigned int' if <sys/socket.h> doesn't define. */
 #undef socklen_t
 
+/* Define to `int' if <signal.h> doesn't define. */
+#undef sig_atomic_t
+
 #undef HAVE_MBSTATE_T
 
 /* Define if you have quad_t in <sys/types.h>. */
old mode 100644 (file)
new mode 100755 (executable)
index c229083..5f27745
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.in for Bash 4.0, version 4.009.
+# From configure.in for Bash 4.0, version 4.013.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for bash 4.0-rc1.
+# Generated by GNU Autoconf 2.63 for bash 4.0-release.
 #
 # Report bugs to <bug-bash@gnu.org>.
 #
@@ -597,8 +597,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='bash'
 PACKAGE_TARNAME='bash'
-PACKAGE_VERSION='4.0-rc1'
-PACKAGE_STRING='bash 4.0-rc1'
+PACKAGE_VERSION='4.0-release'
+PACKAGE_STRING='bash 4.0-release'
 PACKAGE_BUGREPORT='bug-bash@gnu.org'
 
 ac_unique_file="shell.h"
@@ -1410,7 +1410,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures bash 4.0-rc1 to adapt to many kinds of systems.
+\`configure' configures bash 4.0-release to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1475,7 +1475,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of bash 4.0-rc1:";;
+     short | recursive ) echo "Configuration of bash 4.0-release:";;
    esac
   cat <<\_ACEOF
 
@@ -1648,7 +1648,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-bash configure 4.0-rc1
+bash configure 4.0-release
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1662,7 +1662,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by bash $as_me 4.0-rc1, which was
+It was created by bash $as_me 4.0-release, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2074,7 +2074,7 @@ ac_config_headers="$ac_config_headers config.h"
 
 
 BASHVERS=4.0
-RELSTATUS=rc1
+RELSTATUS=release
 
 case "$RELSTATUS" in
 alp*|bet*|dev*|rc*|maint*)     DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -6982,6 +6982,143 @@ _ACEOF
 
 fi
 
+{ $as_echo "$as_me:$LINENO: checking for working volatile" >&5
+$as_echo_n "checking for working volatile... " >&6; }
+if test "${ac_cv_c_volatile+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+volatile int x;
+int * volatile y = (int *) 0;
+return !x && !y;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_volatile=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_c_volatile=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5
+$as_echo "$ac_cv_c_volatile" >&6; }
+if test $ac_cv_c_volatile = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define volatile /**/
+_ACEOF
+
+fi
+
+{ $as_echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5
+$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
+if test "${ac_cv_c_restrict+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_restrict=no
+   # The order here caters to the fact that C++ does not require restrict.
+   for ac_kw in __restrict __restrict__ _Restrict restrict; do
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+typedef int * int_ptr;
+       int foo (int_ptr $ac_kw ip) {
+       return ip[0];
+       }
+int
+main ()
+{
+int s[1];
+       int * $ac_kw t = s;
+       t[0] = 0;
+       return foo(t)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_restrict=$ac_kw
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     test "$ac_cv_c_restrict" != no && break
+   done
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5
+$as_echo "$ac_cv_c_restrict" >&6; }
+
+
+ case $ac_cv_c_restrict in
+   restrict) ;;
+   no) cat >>confdefs.h <<\_ACEOF
+#define restrict /**/
+_ACEOF
+ ;;
+   *)  cat >>confdefs.h <<_ACEOF
+#define restrict $ac_cv_c_restrict
+_ACEOF
+ ;;
+ esac
+
 
 
         MKINSTALLDIRS=
@@ -19749,6 +19886,171 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
+{ $as_echo "$as_me:$LINENO: checking for sig_atomic_t in signal.h" >&5
+$as_echo_n "checking for sig_atomic_t in signal.h... " >&6; }
+if test "${ac_cv_have_sig_atomic_t+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <signal.h>
+
+int
+main ()
+{
+ sig_atomic_t x;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_have_sig_atomic_t=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_have_sig_atomic_t=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_sig_atomic_t" >&5
+$as_echo "$ac_cv_have_sig_atomic_t" >&6; }
+if test "$ac_cv_have_sig_atomic_t" = "no"
+then
+    { $as_echo "$as_me:$LINENO: checking for sig_atomic_t" >&5
+$as_echo_n "checking for sig_atomic_t... " >&6; }
+if test "${ac_cv_type_sig_atomic_t+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_type_sig_atomic_t=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if (sizeof (sig_atomic_t))
+       return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if (sizeof ((sig_atomic_t)))
+         return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_type_sig_atomic_t=yes
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_sig_atomic_t" >&5
+$as_echo "$ac_cv_type_sig_atomic_t" >&6; }
+if test "x$ac_cv_type_sig_atomic_t" = x""yes; then
+  :
+else
+
+cat >>confdefs.h <<_ACEOF
+#define sig_atomic_t int
+_ACEOF
+
+fi
+
+fi
+
 
 # The cast to long int works around a bug in the HP C Compiler
 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
@@ -29653,9 +29955,9 @@ sco3.2v4*)      LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
 sco3.2*)       LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
 sunos4*)       LOCAL_CFLAGS=-DSunOS4 ;;
 solaris2.5*)   LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
-solaris2.8*)   LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;;
-solaris2.9*)   LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;;
-solaris2.10*)  LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;;
+solaris2.8*)   LOCAL_CFLAGS=-DSOLARIS  ;;
+solaris2.9*)   LOCAL_CFLAGS=-DSOLARIS  ;;
+solaris2.10*)  LOCAL_CFLAGS=-DSOLARIS  ;;
 solaris2*)     LOCAL_CFLAGS=-DSOLARIS ;;
 lynxos*)       LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
 linux*)                LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
@@ -30202,7 +30504,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by bash $as_me 4.0-rc1, which was
+This file was extended by bash $as_me 4.0-release, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -30265,7 +30567,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-bash config.status 4.0-rc1
+bash config.status 4.0-release
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
index 13107d51ad750d5002610b4d7a3d4b33cd7fed6f..0fd2bf7861e647c17830d3ee3e1c87a955ade96a 100644 (file)
@@ -21,10 +21,10 @@ dnl Process this file with autoconf to produce a configure script.
 #   You should have received a copy of the GNU General Public License
 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_REVISION([for Bash 4.0, version 4.009])dnl
+AC_REVISION([for Bash 4.0, version 4.013])dnl
 
 define(bashvers, 4.0)
-define(relstatus, rc1)
+define(relstatus, release)
 
 AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
 
@@ -637,6 +637,8 @@ AC_C_STRINGIZE
 AC_C_LONG_DOUBLE
 AC_C_PROTOTYPES
 AC_C_CHAR_UNSIGNED
+AC_C_VOLATILE
+AC_C_RESTRICT
 
 dnl initialize GNU gettext
 AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
@@ -835,6 +837,7 @@ BASH_TYPE_LONG_LONG
 BASH_TYPE_UNSIGNED_LONG_LONG
 
 AC_TYPE_SIGNAL
+BASH_TYPE_SIG_ATOMIC_T
 
 AC_CHECK_SIZEOF(char, 1)
 AC_CHECK_SIZEOF(short, 2)
@@ -1009,9 +1012,9 @@ sco3.2v4*)        LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;;
 sco3.2*)       LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
 sunos4*)       LOCAL_CFLAGS=-DSunOS4 ;;
 solaris2.5*)   LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
-solaris2.8*)   LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;;
-solaris2.9*)   LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;;
-solaris2.10*)  LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;;
+solaris2.8*)   LOCAL_CFLAGS=-DSOLARIS  ;;
+solaris2.9*)   LOCAL_CFLAGS=-DSOLARIS  ;;
+solaris2.10*)  LOCAL_CFLAGS=-DSOLARIS  ;;
 solaris2*)     LOCAL_CFLAGS=-DSOLARIS ;;
 lynxos*)       LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
 linux*)                LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
diff --git a/doc/FAQ b/doc/FAQ
index 4cebba0942b7b0518c9ebd4743d263020e3375c6..29d453a5fb8bad30b5bb99b5e9cc0c3e546ff5e8 100644 (file)
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -1,4 +1,4 @@
-This is the Bash FAQ, version 3.36, for Bash version 3.2.
+This is the Bash FAQ, version 4.01, for Bash version 4.0.
 
 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.2?
-B2) Are there any user-visible incompatibilities between bash-3.2 and
-    bash-2.05b?
+B1) What's new in version 4.0?
+B2) Are there any user-visible incompatibilities between bash-4.0,
+    bash-3.2, and bash-2.05b?
 
 Section C:  Differences from other Unix shells
 
@@ -143,26 +143,26 @@ of Case Western Reserve University.
 
 A2)  What's the latest version?
 
-The latest version is 3.2, first made available on 12 October, 2006.
+The latest version is 4.0, first made available on 20 February, 2009.
 
 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.2:
+The following URLs tell how to get version 4.0:
 
-ftp://ftp.gnu.org/pub/gnu/bash/bash-3.2.tar.gz
-ftp://ftp.cwru.edu/pub/bash/bash-3.2.tar.gz
+ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0.tar.gz
+ftp://ftp.cwru.edu/pub/bash/bash-4.0.tar.gz
 
 Formatted versions of the documentation are available with the URLs:
 
-ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-3.2.tar.gz
-ftp://ftp.cwru.edu/pub/bash/bash-doc-3.2.tar.gz
+ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-4.0.tar.gz
+ftp://ftp.cwru.edu/pub/bash/bash-doc-4.0.tar.gz
 
 Any patches for the current version are available with the URL:
 
-ftp://ftp.cwru.edu/pub/bash/bash-3.2-patches/
+ftp://ftp.cwru.edu/pub/bash/bash-4.0-patches/
 
 A4)  On what machines will bash run?
 
@@ -194,9 +194,8 @@ 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
-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.2 is currently
-being tested and should be available soon.
+ports of bash-2.05b and bash-3.2 to the CYGWIN environment, and both
+are available as part of their current release.
 
 Bash-2.05b and later versions should require no local Cygnus changes to
 build and run under CYGWIN.
@@ -219,7 +218,7 @@ 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.  I do not anticipate any problems
-with building bash-3.1 or bash-3.2.
+with building bash-4.0, but will gladly accept any patches that are needed.
 
 A6) How can I build bash with gcc? 
 
@@ -388,12 +387,158 @@ They are also listed in a section in the Bash Reference Manual
 
 Section B:  The latest version
 
-B1) What's new in version 3.2?
+B1) What's new in version 4.0?
 
-Bash-3.2 is the second 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.2 distribution).
+Bash-4.0 is the fourth major release of bash.  There are numerous new features,
+some experimental.  Depending on community reception, the experimental
+features will evolve.
+
+Bash-4.0 contains the following new features (see the manual page for
+complete descriptions and the CHANGES and NEWS files in the bash-4.0
+distribution):
+
+o   When using substring expansion on the positional parameters, a starting
+    index of 0 now causes $0 to be prefixed to the list.
+
+o   There is a new variable, $BASHPID, which always returns the process id of
+    the current shell.
+
+o   There is a new `autocd' option that, when enabled, causes bash to attempt
+    to `cd' to a directory name that is supplied as the first word of a
+    simple command.
+
+o   There is a new `checkjobs' option that causes the shell to check for and
+    report any running or stopped jobs at exit.
+
+o   The programmable completion code exports a new COMP_TYPE variable, set to
+    a character describing the type of completion being attempted.
+
+o   The programmable completion code exports a new COMP_KEY variable, set to
+    the character that caused the completion to be invoked (e.g., TAB).
+
+o   The programmable completion code now uses the same set of characters as
+    readline when breaking the command line into a list of words.
+
+o   The block multiplier for the ulimit -c and -f options is now 512 when in
+    Posix mode, as Posix specifies.
+
+o   Changed the behavior of the read builtin to save any partial input received
+    in the specified variable when the read builtin times out.  This also
+    results in variables specified as arguments to read to be set to the empty
+    string when there is no input available.  When the read builtin times out,
+    it returns an exit status greater than 128.
+
+o   The shell now has the notion of a `compatibility level', controlled by
+    new variables settable by `shopt'.  Setting this variable currently
+    restores the bash-3.1 behavior when processing quoted strings on the rhs
+    of the `=~' operator to the `[[' command.
+
+o   The `ulimit' builtin now has new -b (socket buffer size) and -T (number
+    of threads) options.
+
+o   There is a new `compopt' builtin that allows completion functions to modify
+    completion options for existing completions or the completion currently
+    being executed.
+
+o   The `read' builtin has a new -i option which inserts text into the reply
+    buffer when using readline.
+
+o   A new `-E' option to the complete builtin allows control of the default
+    behavior for completion on an empty line.
+
+o   There is now limited support for completing command name words containing
+    globbing characters.
+
+o   The `help' builtin now has a new -d option, to display a short description,
+    and a -m option, to print help information in a man page-like format.
+
+o   There is a new `mapfile' builtin to populate an array with lines from a
+    given file.
+
+o   If a command is not found, the shell attempts to execute a shell function
+    named `command_not_found_handle', supplying the command words as the
+    function arguments.
+
+o   There is a new shell option: `globstar'.  When enabled, the globbing code
+    treats `**' specially -- it matches all directories (and files within
+    them, when appropriate) recursively.
+
+o   There is a new shell option: `dirspell'.  When enabled, the filename
+    completion code performs spelling correction on directory names during
+    completion.
+
+o   The `-t' option to the `read' builtin now supports fractional timeout
+    values.
+
+o   Brace expansion now allows zero-padding of expanded numeric values and
+    will add the proper number of zeroes to make sure all values contain the
+    same number of digits.
+
+o   There is a new bash-specific bindable readline function: `dabbrev-expand'.
+    It uses menu completion on a set of words taken from the history list.
+
+o   The command assigned to a key sequence with `bind -x' now sets two new
+    variables in the environment of the executed command:  READLINE_LINE_BUFFER
+    and READLINE_POINT.  The command can change the current readline line
+    and cursor position by modifying READLINE_LINE_BUFFER and READLINE_POINT,
+    respectively.
+
+o   There is a new >>& redirection operator, which appends the standard output
+    and standard error to the named file.
+
+o   The parser now understands `|&' as a synonym for `2>&1 |', which redirects
+    the standard error for a command through a pipe.
+
+o   The new `;&' case statement action list terminator causes execution to
+    continue with the action associated with the next pattern in the
+    statement rather than terminating the command.
+
+o   The new `;;&' case statement action list terminator causes the shell to
+    test the next set of patterns after completing execution of the current
+    action, rather than terminating the command.
+
+o   The shell understands a new variable: PROMPT_DIRTRIM.  When set to an
+    integer value greater than zero, prompt expansion of \w and \W  will
+    retain only that number of trailing pathname components and replace
+    the intervening characters with `...'.
+
+o   There are new case-modifying word expansions: uppercase (^[^]) and
+    lowercase (,[,]).  They can work on either the first character or
+    array element, or globally.  They accept an optional shell pattern
+    that determines which characters to modify.  There is an optionally-
+    configured feature to include capitalization operators.
+
+o   The shell provides associative array variables, with the appropriate
+    support to create, delete, assign values to, and expand them.
+
+o   The `declare' builtin now has new -l (convert value to lowercase upon
+    assignment) and -u (convert value to uppercase upon assignment) options.
+    There is an optionally-configurable -c option to capitalize a value at
+    assignment.
+
+o   There is a new `coproc' reserved word that specifies a coprocess: an
+    asynchronous command run with two pipes connected to the creating shell.
+    Coprocs can be named.  The input and output file descriptors and the
+    PID of the coprocess are available to the calling shell in variables
+    with coproc-specific names.
+
+o   A value of 0 for the -t option to `read' now returns success if there is
+    input available to be read from the specified file descriptor.
+
+o   CDPATH and GLOBIGNORE are ignored when the shell is running in privileged
+    mode.
+
+o   New bindable readline functions shell-forward-word and shell-backward-word,
+    which move forward and backward words delimited by shell metacharacters
+    and honor shell quoting.
+
+o   New bindable readline functions shell-backward-kill-word and shell-kill-word
+    which kill words backward and forward, but use the same word boundaries
+    as shell-forward-word and shell-backward-word.
+
+A short feature history dating from Bash-2.0:
+
+Bash-3.2 contained the following new features:
 
 o Bash-3.2 now checks shell scripts for NUL characters rather than non-printing
   characters when deciding whether or not a script is a binary file.
@@ -401,8 +546,6 @@ o Bash-3.2 now checks shell scripts for NUL characters rather than non-printing
 o Quoting the string argument to the [[ command's  =~ (regexp) operator now
   forces string matching, as with the other pattern-matching operators.
 
-A short feature history dating from Bash-2.0:
-
 Bash-3.1 contained the following new features:
 
 o Bash-3.1 may now be configured and built in a mode that enforces strict
@@ -651,10 +794,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.2 and
-    bash-2.05b?
+B2) Are there any user-visible incompatibilities between bash-4.0, bash-3.2,
+    and bash-2.05b?
 
-There are a few incompatibilities between version 2.05b and version 3.2.
+There are a few incompatibilities between version 4.0 and version 3.2.
 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.
@@ -687,25 +830,25 @@ Things bash has that sh does not:
        the ${param/pat[/string]} parameter pattern substitution operator
        expansions to perform substring removal (${p%[%]w}, ${p#[#]w})
        expansion of positional parameters beyond $9 with ${num}
-       variables: BASH, BASH_VERSION, BASH_VERSINFO, UID, EUID, REPLY,
+       variables: BASH, BASHPID, BASH_VERSION, BASH_VERSINFO, UID, EUID, REPLY,
                   TIMEFORMAT, PPID, PWD, OLDPWD, SHLVL, RANDOM, SECONDS,
                   LINENO, HISTCMD, HOSTTYPE, OSTYPE, MACHTYPE, HOSTNAME,
                   ENV, PS3, PS4, DIRSTACK, PIPESTATUS, HISTSIZE, HISTFILE,
                   HISTFILESIZE, HISTCONTROL, HISTIGNORE, GLOBIGNORE, GROUPS,
                   PROMPT_COMMAND, FCEDIT, FIGNORE, IGNOREEOF, INPUTRC,
                   SHELLOPTS, OPTERR, HOSTFILE, TMOUT, FUNCNAME, histchars,
-                  auto_resume
+                  auto_resume, PROMPT_DIRTRIM
        DEBUG trap
        ERR trap
        variable arrays with new compound assignment syntax
-       redirections: <>, &>, >|, <<<, [n]<&word-, [n]>&word-
+       redirections: <>, &>, >|, <<<, [n]<&word-, [n]>&word-, >>&
        prompt string special char translation and variable expansion
        auto-export of variables in initial environment
        command search finds functions before builtins
        bash return builtin will exit a file sourced with `.'
        builtins: cd -/-L/-P, exec -l/-c/-a, echo -e/-E, hash -d/-l/-p/-t.
                  export -n/-f/-p/name=value, pwd -L/-P,
-                 read -e/-p/-a/-t/-n/-d/-s/-u,
+                 read -e/-p/-a/-t/-n/-d/-s/-u/-i,
                  readonly -a/-f/name=value, trap -l, set +o,
                  set -b/-m/-o option/-h/-p/-B/-C/-H/-P,
                  unset -f/-v, ulimit -i/-m/-p/-q/-u/-x,
@@ -727,7 +870,7 @@ Things bash has that sh does not:
        other new bash builtins: bind, command, compgen, complete, builtin,
                                 declare/typeset, dirs, enable, fc, help,
                                 history, logout, popd, pushd, disown, shopt,
-                                printf
+                                printf, compopt, mapfile
        exported functions
        filename generation when using output redirection (command >a*)
        POSIX.2-style globbing character classes
@@ -743,7 +886,14 @@ Things bash has that sh does not:
        debugger support, including `caller' builtin and new variables
        RETURN trap
        the `+=' assignment operator
-
+       autocd shell option and behavior
+       command-not-found hook with command_not_found_handle shell function
+       globstar shell option and `**' globbing behavior
+       |& synonym for `2>&1 |'
+       ;& and ;;& case action list terminators
+       case-modifying word expansions and variable attributes
+       associative arrays
+       coprocesses using the `coproc' reserved word and variables
 
 Things sh has that bash does not:
        uses variable SHACCT to do shell accounting
@@ -788,14 +938,14 @@ Things bash has or uses that ksh88 does not:
        the ${!param*} prefix expansion operator
        the ${param:offset[:length]} parameter substring operator
        the ${param/pat[/string]} parameter pattern substitution operator
-       variables: BASH, BASH_VERSION, BASH_VERSINFO, UID, EUID, SHLVL,
+       variables: BASH, BASH_VERSION, BASH_VERSINFO, BASHPID, UID, EUID, SHLVL,
                   TIMEFORMAT, HISTCMD, HOSTTYPE, OSTYPE, MACHTYPE,
                   HISTFILESIZE, HISTIGNORE, HISTCONTROL, PROMPT_COMMAND,
                   IGNOREEOF, FIGNORE, INPUTRC, HOSTFILE, DIRSTACK,
                   PIPESTATUS, HOSTNAME, OPTERR, SHELLOPTS, GLOBIGNORE,
-                  GROUPS, FUNCNAME, histchars, auto_resume
+                  GROUPS, FUNCNAME, histchars, auto_resume, PROMPT_DIRTRIM
        prompt expansion with backslash escapes and command substitution
-       redirection: &> (stdout and stderr), <<<, [n]<&word-, [n]>&word-
+       redirection: &> (stdout and stderr), <<<, [n]<&word-, [n]>&word-, >>&
        more extensive and extensible editing and programmable completion
        builtins: bind, builtin, command, declare, dirs, echo -e/-E, enable,
                  exec -l/-c/-a, fc -s, export -n/-f/-p, hash, help, history,
@@ -805,7 +955,7 @@ Things bash has or uses that ksh88 does not:
                  -o notify/-o physical/-o posix/-o hashall/-o onecmd/
                  -h/-B/-C/-b/-H/-P, set +o, suspend, trap -l, type,
                  typeset -a/-F/-p, ulimit -i/-q/-u/-x, umask -S, alias -p,
-                 shopt, disown, printf, complete, compgen
+                 shopt, disown, printf, complete, compgen, compopt, mapfile
        `!' csh-style history expansion
        POSIX.2-style globbing character classes
        POSIX.2-style globbing equivalence classes
@@ -821,18 +971,26 @@ Things bash has or uses that ksh88 does not:
        Timestamps in history entries
        {x..y} brace expansion
        The `+=' assignment operator
+       autocd shell option and behavior
+       command-not-found hook with command_not_found_handle shell function
+       globstar shell option and `**' globbing behavior
+       |& synonym for `2>&1 |'
+       ;& and ;;& case action list terminators
+       case-modifying word expansions and variable attributes
+       associative arrays
+       coprocesses using the `coproc' reserved word and variables
 
 Things ksh88 has or uses that bash does not:
        tracked aliases (alias -t)
        variables: ERRNO, FPATH, EDITOR, VISUAL
-       co-processes (|&, >&p, <&p)
+       co-processes (bash uses different syntax)
        weirdly-scoped functions
        typeset +f to list all function names without definitions
        text of command history kept in a file, not memory
        builtins: alias -x, cd old new, newgrp, print,
                  read -p/-s/var?prompt, set -A/-o gmacs/
                  -o bgnice/-o markdirs/-o trackall/-o viraw/-s,
-                 typeset -H/-L/-R/-Z/-A/-ft/-fu/-fx/-l/-u/-t, whence
+                 typeset -H/-L/-R/-Z/-A/-ft/-fu/-fx/-t, whence
        using environment to pass attributes of exported variables
        arithmetic evaluation done on arguments to some builtins
        reads .profile from $PWD when invoked as login shell
@@ -848,33 +1006,48 @@ Implementation differences:
 
 C3)  Which new features in ksh-93 are not in bash, and which are?
 
-New things in ksh-93 not in bash-3.2:
-       associative arrays
+This list is current through ksh93t (11/04/2008)
+
+New things in ksh-93 not in bash-4.0:
        floating point arithmetic and variables
        math library functions
        ${!name[sub]} name of subscript for associative array
        `.' is allowed in variable names to create a hierarchical namespace
        more extensive compound assignment syntax
        discipline functions
-       `sleep' and `getconf' builtins (bash has loadable versions)
-       typeset -n and `nameref' variables
        KEYBD trap
        variables: .sh.edchar, .sh.edmode, .sh.edcol, .sh.edtext, .sh.version,
                   .sh.name, .sh.subscript, .sh.value, .sh.match, HISTEDIT
        backreferences in pattern matching (\N)
-       `&' operator in pattern lists for matching
-       print -f (bash uses printf)
-       `fc' has been renamed to `hist'
-       `.' can execute shell functions
+       `&' operator in pattern lists for matching (match all instead of any)
        exit statuses between 0 and 255
        FPATH and PATH mixing
-       getopts -a
-       -I invocation option
-       printf %H, %P, %T, %Z modifiers, output base for %d
        lexical scoping for local variables in `ksh' functions
        no scoping for local variables in `POSIX' functions
-
-New things in ksh-93 present in bash-3.2:
+       $''  \C[.collating-element.] escape sequence
+       -C/-I invocation options
+       print -f (bash uses printf)
+       `fc' has been renamed to `hist'
+       `.' can execute shell functions
+       getopts -a
+       printf %B, %H, %P, %R, %T, %Z modifiers, output base for %d, `=' flag
+       read -N (read -n differs, too)/-v
+       set -o showme/-o multiline (bash default)
+       `sleep' and `getconf' builtins (bash has loadable versions)
+       typeset -n and `nameref' variables
+       typeset -C/-S/-T/-X/-h/-s
+       experimental `type' definitions (a la typedef) using typeset
+       negative subscripts for indexed array variables
+       array expansions ${array[sub1..sub2]} and ${!array[sub1..sub2]}
+       associative array assignments using `;' as element separator
+       command substitution $(n<#) expands to current byte offset for fd N
+       new '${ ' form of command substitution, executed in current shell
+       new >;/<#pat/<##pat/<#/># redirections
+       redirection operators preceded with {varname} to store fd number in varname
+       brace expansion printf-like formats 
+
+New things in ksh-93 present in bash-4.0:
+       associative arrays
        [n]<&word- and [n]>&word- redirections (combination dup and close)
         for (( expr1; expr2; expr3 )) ; do list; done - arithmetic for command
         ?:, ++, --, `expr1 , expr2' arithmetic operators
@@ -883,24 +1056,30 @@ New things in ksh-93 present in bash-3.2:
        compound array assignment
        the `!' reserved word
        loadable builtins -- but ksh uses `builtin' while bash uses `enable'
-       `command', `builtin', `disown' builtins
        new $'...' and $"..." quoting
        FIGNORE (but bash uses GLOBIGNORE), HISTCMD
-       set -o notify/-C
+       brace expansion and set -B
        changes to kill builtin
+       `command', `builtin', `disown' builtins
+       echo -e
+       exec -c/-a
        read -A (bash uses read -a)
         read -t/-d
        trap -p
-       exec -c/-a
        `.' restores the positional parameters when it completes
+       set -o notify/-C
+       set -o pipefail
+       set -G (-o globstar) and **
        POSIX.2 `test'
        umask -S
        unalias -a
        command and arithmetic substitution performed on PS1, PS4, and ENV
-       command name completion
+       command name completion, TAB displaying possible completions
        ENV processed only for interactive shells
-       set -o pipefail
        The `+=' assignment operator
+       the `;&' case statement "fallthrough" pattern list terminator
+       csh-style history expansion and set -H
+       negative offsets in ${param:offset:length}
 
 Section D:  Why does bash do some things differently than other Unix shells?
 
@@ -1457,6 +1636,11 @@ when assigning the variable, then expand the values to a single string that
 may contain whitespace.  The first problem may be solved by using backslashes
 or any other quoting mechanism to escape the white space in the patterns.
 
+Bash-4.0 introduces the concept of a `compatibility level', controlled by
+several options to the `shopt' builtin.  If the `compat31' option is enabled,
+bash reverts to the bash-3.1 behavior with respect to quoting the rhs of
+the =~ operator.
+
 Section F:  Things to watch out for on certain Unix versions
 
 F1) Why can't I use command line editing in my `cmdtool'?
@@ -1847,9 +2031,7 @@ H3) What's coming in future versions?
 
 These are features I hope to include in a future version of bash.
 
-Rocky Bernstein's bash debugger (support is included with bash-3.0)
-associative arrays
-co-processes, but with a new-style syntax that looks like function declaration
+Rocky Bernstein's bash debugger (support is included with bash-4.0)
 
 H4) What's on the bash `wish list' for future versions?
 
@@ -1867,9 +2049,9 @@ Some of the new ksh93 pattern matching operators, like backreferencing
 
 H5) When will the next release appear?
 
-The next version will appear sometime in 2007.  Never make predictions. 
+The next version will appear sometime in 2009.  Never make predictions. 
 
-This document is Copyright 1995-2006 by Chester Ramey.
+This document is Copyright 1995-2009 by Chester Ramey.
 
 Permission is hereby granted, without written agreement and
 without license or royalty fees, to use, copy, and distribute
diff --git a/doc/article.pdf b/doc/article.pdf
new file mode 100644 (file)
index 0000000..d2aaf9e
Binary files /dev/null and b/doc/article.pdf differ
diff --git a/doc/article.ps b/doc/article.ps
new file mode 100644 (file)
index 0000000..3aadf2f
--- /dev/null
@@ -0,0 +1,1418 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.16.1
+%%CreationDate: Mon Nov 19 13:06:55 2001
+%%DocumentNeededResources: font Times-Bold
+%%+ font Times-Italic
+%%+ font Times-Roman
+%%+ font Courier
+%%DocumentSuppliedResources: procset grops 1.16 1
+%%Pages: 11
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.16 1
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Courier
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Courier@0 ENC0/Courier RE/Times-Roman@0 ENC0/Times-Roman RE
+/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 12/Times-Bold@0 SF(Bash \255 The GNU shell*)227.904 123 Q/F1 10
+/Times-Italic@0 SF(Chet Rame)263.85 147 Q(y)-.3 E(Case W)221.72 159 Q
+(estern Reserve Univer)-.92 E(sity)-.1 E -.15(ch)250.425 171 S
+(et@po.cwru.edu).15 E/F2 10/Times-Bold@0 SF 2.5(1. Intr)72 207 R
+(oduction)-.18 E(Bash)97 222.6 Q/F3 10/Times-Roman@0 SF .904
+(is the shell, or command language interpreter)3.404 F 3.404(,t)-.4 G
+.904(hat will appear in the GNU operating system.)-3.404 F 1.075
+(The name is an acron)72 234.6 R 1.075(ym for the \231Bourne-Ag)-.15 F
+1.075(ain SHell\232, a pun on Ste)-.05 F 1.375 -.15(ve B)-.25 H 1.075
+(ourne, the author of the direct).15 F .206(ancestor of the current)72
+246.6 R/F4 8/Times-Roman@0 SF(UNIX)2.706 E F3 2.706<ae73>C(hell)-2.706 E
+F1(/bin/sh)2.706 E F3 2.706(,w)C .205(hich appeared in the Se)-2.706 F
+-.15(ve)-.25 G .205(nth Edition Bell Labs Research v).15 F(er)-.15 E(-)
+-.2 E(sion of)72 258.6 Q/F5 9/Times-Roman@0 SF(UNIX)2.5 E F3(.)A .387
+(Bash is an)97 274.2 R F2(sh)2.887 E F3 .387
+(\255compatible shell that incorporates useful features from the K)B
+.388(orn shell \()-.35 F F2(ksh)A F3 2.888(\)a)C .388(nd the C)-2.888 F
+.023(shell \()72 286.2 R F2(csh)A F3 .023
+(\), described later in this article.)B .022
+(It is ultimately intended to be a conformant implementation of the)
+5.022 F 3.568(IEEE POSIX Shell and Utilities speci\214cation \(IEEE W)72
+298.2 R 3.568(orking Group 1003.2\).)-.8 F 3.569(It of)8.569 F 3.569
+(fers functional)-.25 F(impro)72 310.2 Q -.15(ve)-.15 G(ments o).15 E
+-.15(ve)-.15 G 2.5(rs).15 G 2.5(hf)-2.5 G(or both interacti)-2.5 E .3
+-.15(ve a)-.25 H(nd programming use.).15 E .697
+(While the GNU operating system will most lik)97 325.8 R .697
+(ely include a v)-.1 F .697(ersion of the Berk)-.15 F(ele)-.1 E 3.197
+(ys)-.15 G .696(hell csh, Bash)-3.197 F .015(will be the def)72 337.8 R
+.015(ault shell.)-.1 F(Lik)5.015 E 2.515(eo)-.1 G .015(ther GNU softw)
+-2.515 F .016(are, Bash is quite portable.)-.1 F .016
+(It currently runs on nearly e)5.016 F -.15(ve)-.25 G(ry).15 E -.15(ve)
+72 349.8 S .523(rsion of).15 F F4(UNIX)3.023 E F3 .523(and a fe)3.023 F
+3.023(wo)-.25 G .523
+(ther operating systems \255 an independently-supported port e)-3.023 F
+.523(xists for OS/2, and)-.15 F .706
+(there are rumors of ports to DOS and W)72 361.8 R(indo)-.4 E .706
+(ws NT)-.25 F 5.706(.P)-.74 G .706(orts to)-5.706 F F5(UNIX)3.206 E F3
+(-lik)A 3.206(es)-.1 G .706(ystems such as QNX and Minix)-3.206 F
+(are part of the distrib)72 373.8 Q(ution.)-.2 E .405
+(The original author of Bash w)97 389.4 R .405(as Brian F)-.1 F .405
+(ox, an emplo)-.15 F .405(yee of the Free Softw)-.1 F .405(are F)-.1 F
+2.905(oundation. The)-.15 F(cur)2.905 E(-)-.2 E(rent de)72 401.4 Q -.15
+(ve)-.25 G(loper and maintainer is Chet Rame).15 E 1.3 -.65(y, a v)-.15
+H(olunteer who w).45 E(orks at Case W)-.1 E(estern Reserv)-.8 E 2.5(eU)
+-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E(.)-.65 E F2 2.5(2. What')72
+425.4 R 2.5(sP)-.37 G(OSIX, anyway?)-2.5 E F1(POSIX)97 441 Q F3 .343
+(is a name originally coined by Richard Stallman for a f)2.843 F .343
+(amily of open system standards based)-.1 F(on)72 453 Q F5(UNIX)3.24 E
+F3 5.74(.T)C .74(here are a number of aspects of)-5.74 F F5(UNIX)3.24 E
+F3 .74(under consideration for standardization, from the basic)3.24 F
+.192(system services at the system call and C library le)72 465 R -.15
+(ve)-.25 G 2.692(lt).15 G 2.692(oa)-2.692 G .192
+(pplications and tools to system administration and)-2.692 F 2.5
+(management. Each)72 477 R(area of standardization is assigned to a w)
+2.5 E(orking group in the 1003 series.)-.1 E 2.814
+(The POSIX Shell and Utilities standard has been de)97 492.6 R -.15(ve)
+-.25 G 2.814(loped by IEEE W).15 F 2.813(orking Group 1003.2)-.8 F .254
+(\(POSIX.2\).\210 It concentrates on the command interpreter interf)72
+504.6 R .253(ace and utility programs commonly e)-.1 F -.15(xe)-.15 G
+(cuted).15 E 1.112(from the command line or by other programs.)72 516.6
+R 1.112(An initial v)6.112 F 1.113
+(ersion of the standard has been appro)-.15 F -.15(ve)-.15 G 3.613(da)
+.15 G(nd)-3.613 E .365(published by the IEEE, and w)72 528.6 R .365
+(ork is currently underw)-.1 F .365(ay to update it.)-.1 F .365
+(There are four primary areas of w)5.365 F(ork)-.1 E
+(in the 1003.2 standard:)72 540.6 Q 21.5<8341>72 556.2 S .835
+(spects of the shell')-21.5 F 3.335(ss)-.55 G .835
+(yntax and command language.)-3.335 F 3.335(An)5.835 G .835
+(umber of special b)-3.335 F .835(uiltins such as)-.2 F F2(cd)3.335 E F3
+(and)3.335 E F2(exec)97 568.2 Q F3 .545(are being speci\214ed as part o\
+f the shell, since their functionality usually cannot be implemented)
+3.046 F(by a separate e)97 580.2 Q -.15(xe)-.15 G(cutable;).15 E 21.5
+<8341>72 595.8 S .926
+(set of utilities to be called by shell scripts and applications.)
+-18.074 F .927(Examples are programs lik)5.927 F(e)-.1 E F1 .927
+(sed, tr)3.427 F(,)-1.11 E F3(and)97 607.8 Q F1(awk.)2.797 E F3 .297
+(Utilities commonly implemented as shell b)5.297 F .296
+(uiltins are described in this section, such as)-.2 F F2(test)2.796 E F3
+(and)97 619.8 Q F2(kill)3.422 E F3 5.922(.A)C 3.422(ne)-5.922 G .922
+(xpansion of this section')-3.572 F 3.423(ss)-.55 G .923
+(cope, termed the User Portability Extension, or UPE, has)-3.423 F
+(standardized interacti)97 631.8 Q .3 -.15(ve p)-.25 H(rograms such as)
+.15 E F1(vi)2.5 E F3(and)2.5 E F1(mailx;)2.5 E F3 21.5<8341>72 647.4 S
+.288(group of functional interf)-18.712 F .287(aces to services pro)-.1
+F .287(vided by the shell, such as the traditional)-.15 F/F6 10
+/Courier@0 SF(system\(\))2.787 E F3 3.289(Cl)97 659.4 S .789
+(ibrary function.)-3.289 F .789(There are functions to perform shell w)
+5.789 F .789(ord e)-.1 F .79(xpansions, perform \214lename e)-.15 F
+(xpan-)-.15 E .324(sion \()97 671.4 R F1(globbing)A F3 .324
+(\), obtain v)B .323(alues of POSIX.2 system con\214guration v)-.25 F
+.323(ariables, retrie)-.25 F .623 -.15(ve v)-.25 H .323(alues of en)-.1
+F(viron-)-.4 E(ment v)97 683.4 Q(ariables \()-.25 E F6(getenv\(\))A F3
+(\), and other services;).833 E .32 LW 144 691.4 72 691.4 DL F4
+(*An earlier v)72 703.2 Q
+(ersion of this article appeared in The Linux Journal.)-.12 E(\210IEEE,)
+72 715 Q/F7 8/Times-Italic@0 SF 1.231(IEEE Standar)3.231 F 3.231(df)
+-.296 G 1.231(or Information T)-3.231 F(ec)-.736 E(hnolo)-.12 E 1.231
+(gy -- P)-.08 F 1.231(ortable Oper)-.64 F 1.232
+(ating System Interface \(POSIX\) P)-.12 F 1.232(art 2:)-.64 F
+(Shell and Utilities)72 725 Q F4 2(,1)C(992.)-2 E EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-2-)282.17 48 Q 21.5<8341>72 84 S
+(suite of \231de)-19 E -.15(ve)-.25 G(lopment\232 utilities such as).15
+E/F1 10/Times-Italic@0 SF(c89)2.5 E F0(\(the POSIX.2 v)2.5 E(ersion of)
+-.15 E F1(cc)2.5 E F0(\), and)A F1(yacc.)2.5 E F0 .483
+(Bash is concerned with the aspects of the shell')97 99.6 R 2.983(sb)
+-.55 G(eha)-2.983 E .484(vior de\214ned by POSIX.2.)-.2 F .484
+(The shell command)5.484 F 1.439
+(language has of course been standardized, including the basic \215o)72
+111.6 R 3.938(wc)-.25 G 1.438(ontrol and program e)-3.938 F -.15(xe)-.15
+G 1.438(cution con-).15 F 1.284
+(structs, I/O redirection and pipelining, ar)72 123.6 R 1.284
+(gument handling, v)-.18 F 1.284(ariable e)-.25 F 1.284
+(xpansion, and quoting.)-.15 F(The)6.285 E F1(special)3.785 E F0 -.2(bu)
+72 135.6 S .676
+(iltins, which must be implemented as part of the shell to pro).2 F .676
+(vide the desired functionality)-.15 F 3.176(,a)-.65 G .676
+(re speci\214ed)-3.176 F .7(as being part of the shell; e)72 147.6 R .7
+(xamples of these are)-.15 F/F2 10/Times-Bold@0 SF -2.3 -.15(ev a)3.201
+H(l).15 E F0(and)3.201 E F2(export)3.201 E F0 5.701(.O)C .701
+(ther utilities appear in the sections of)-5.701 F .256(POSIX.2 not de)
+72 159.6 R -.2(vo)-.25 G .256(ted to the shell which are commonly \(and\
+ in some cases must be\) implemented as b).2 F(uiltin)-.2 E .213
+(commands, such as)72 171.6 R F2 -.18(re)2.713 G(ad).18 E F0(and)2.713 E
+F2(test)2.713 E F0 5.213(.P)C .213
+(OSIX.2 also speci\214es aspects of the shell')-5.213 F 2.713(si)-.55 G
+(nteracti)-2.713 E .513 -.15(ve b)-.25 H(eha).15 E .214(vior as part)-.2
+F .598(of the UPE, including job control and command line editing.)72
+183.6 R .598(Interestingly enough, only)5.598 F F1(vi)3.098 E F0 .598
+(-style line edit-)B(ing commands ha)72 195.6 Q .3 -.15(ve b)-.2 H
+(een standardized;).15 E F1(emacs)2.5 E F0
+(editing commands were left out due to objections.)2.5 E 1.128
+(While POSIX.2 includes much of what the shell has traditionally pro)97
+211.2 R 1.129(vided, some important things)-.15 F(ha)72 223.2 Q .344
+-.15(ve b)-.2 H .044(een omitted as being \231be).15 F .044
+(yond its scope.)-.15 F 5.043<9a54>-.7 G .043
+(here is, for instance, no mention of a dif)-5.043 F .043
+(ference between a)-.25 F F1(lo)72 235.2 Q(gin)-.1 E F0 1.445
+(shell and an)3.945 F 3.945(yo)-.15 G 1.445(ther interacti)-3.945 F
+1.745 -.15(ve s)-.25 H 1.446
+(hell \(since POSIX.2 does not specify a login program\).).15 F 1.446
+(No \214x)6.446 F(ed)-.15 E(startup \214les are de\214ned, either \255 \
+the standard does not mention)72 247.2 Q F1(.pr)2.5 E(o\214le)-.45 E F0
+(.)A F2 2.5(3. Basic)72 271.2 R(Bash featur)2.5 E(es)-.18 E F0 1.448
+(Since the Bourne shell pro)97 286.8 R 1.448
+(vides Bash with most of its philosophical underpinnings, Bash inherits)
+-.15 F .64(most of its features and functionality from sh.)72 298.8 R
+.641(Bash implements all of the traditional sh \215o)5.641 F 3.141(wc)
+-.25 G .641(ontrol con-)-3.141 F .8(structs \()72 310.8 R F1(for)A F0(,)
+A F1(if)3.3 E F0(,)A F1(while)3.3 E F0 3.3(,e)C 3.3(tc.\). All)-3.3 F
+.799(of the Bourne shell b)3.3 F .799
+(uiltins, including those not speci\214ed in the POSIX.2)-.2 F .536
+(standard, appear in Bash.)72 322.8 R(Shell)5.536 E F1(functions)3.036 E
+F0 3.036(,i)C .536(ntroduced in the SVR2 v)-3.036 F .537
+(ersion of the Bourne shell, are similar)-.15 F .779
+(to shell scripts, b)72 334.8 R .779
+(ut are de\214ned using a special syntax and are e)-.2 F -.15(xe)-.15 G
+.779(cuted in the same process as the calling).15 F 2.841(shell. Bash)72
+346.8 R .341(has shell functions which beha)2.841 F .641 -.15(ve i)-.2 H
+2.841(naf).15 G .341(ashion upw)-2.941 F .342
+(ard-compatible with sh functions.)-.1 F .342(There are)5.342 F 1.447
+(certain shell v)72 358.8 R 1.446
+(ariables that Bash interprets in the same w)-.25 F 1.446
+(ay as sh, such as)-.1 F F2(PS1)3.946 E F0(,)A F2(IFS)3.946 E F0 3.946
+(,a)C(nd)-3.946 E F2 -.74(PA)3.946 G(TH)-.21 E F0 6.446(.B)C(ash)-6.446
+E 1.423(implements essentially the same grammar)72 370.8 R 3.924(,p)-.4
+G 1.424(arameter and v)-3.924 F 1.424(ariable e)-.25 F 1.424
+(xpansion semantics, redirection, and)-.15 F 1.06
+(quoting as the Bourne shell.)72 382.8 R 1.06(Where dif)6.06 F 1.06
+(ferences appear between the POSIX.2 standard and traditional sh)-.25 F
+(beha)72 394.8 Q(vior)-.2 E 2.5(,B)-.4 G(ash follo)-2.5 E(ws POSIX.)-.25
+E 1.608(The K)97 410.4 R 1.608(orn Shell \()-.35 F F2(ksh)A F0 4.108
+(\)i)C 4.108(sad)-4.108 G 1.608
+(escendent of the Bourne shell written at A)-4.108 F 1.609
+(T&T Bell Laboratories by)-1.11 F(Da)72 422.4 Q 1.059(vid K)-.2 F 3.559
+(orn\207. It)-.35 F(pro)3.559 E 1.059
+(vides a number of useful features that POSIX and Bash ha)-.15 F 1.359
+-.15(ve a)-.2 H 3.558(dopted. Man).15 F 3.558(yo)-.15 G 3.558(ft)-3.558
+G(he)-3.558 E(interacti)72 434.4 Q 1.312 -.15(ve f)-.25 H 1.012
+(acilities in POSIX.2 ha).05 F 1.312 -.15(ve t)-.2 H 1.012
+(heir roots in the ksh: for e).15 F 1.013
+(xample, the POSIX and ksh job control)-.15 F -.1(fa)72 446.4 S .513
+(cilities are nearly identical. Bash includes features from the K).1 F
+.513(orn Shell for both interacti)-.35 F .813 -.15(ve u)-.25 H .513
+(se and shell).15 F 3.905(programming. F)72 458.4 R 1.405
+(or programming, Bash pro)-.15 F 1.405(vides v)-.15 F 1.405
+(ariables such as)-.25 F F2(RANDOM)3.905 E F0(and)3.905 E F2(REPL)3.905
+E(Y)-.92 E F0 3.905(,t)C(he)-3.905 E F2(typeset)3.905 E F0 -.2(bu)72
+470.4 S .398(iltin, the ability to remo).2 F .698 -.15(ve s)-.15 H .398
+(ubstrings from v).15 F .398
+(ariables based on patterns, and shell arithmetic.)-.25 F F2(RANDOM)
+5.397 E F0 -.15(ex)72 482.4 S .489
+(pands to a random number each time it is referenced; assigning a v).15
+F .49(alue to)-.25 F F2(RANDOM)2.99 E F0 .49(seeds the random)2.99 F
+.055(number generator)72 494.4 R(.)-.55 E F2(REPL)5.055 E(Y)-.92 E F0
+.054(is the def)2.554 F .054(ault v)-.1 F .054(ariable used by the)-.25
+F F2 -.18(re)2.554 G(ad).18 E F0 -.2(bu)2.554 G .054(iltin when no v).2
+F .054(ariable names are sup-)-.25 F .742(plied as ar)72 506.4 R 3.243
+(guments. The)-.18 F F2(typeset)3.243 E F0 -.2(bu)3.243 G .743
+(iltin is used to de\214ne v).2 F .743(ariables and gi)-.25 F 1.043 -.15
+(ve t)-.25 H .743(hem attrib).15 F .743(utes such as)-.2 F F2 -.18(re)
+3.243 G(ad-).18 E(only)72 518.4 Q F0 5.512(.B)C .512
+(ash arithmetic allo)-5.512 F .512(ws the e)-.25 F -.25(va)-.25 G .511
+(luation of an e).25 F .511
+(xpression and the substitution of the result.)-.15 F .511(Shell v)5.511
+F(ari-)-.25 E .222
+(ables may be used as operands, and the result of an e)72 530.4 R .222
+(xpression may be assigned to a v)-.15 F 2.722(ariable. Nearly)-.25 F
+.222(all of)2.722 F(the operators from the C language are a)72 542.4 Q
+-.25(va)-.2 G(ilable, with the same precedence rules:).25 E/F3 10
+/Courier@0 SF 6($e)97 560.4 S(cho $\(\(3 + 5 * 32\)\))-6 E(163)97 572.4
+Q F0 -.15(Fo)72 594 S 3.24(ri).15 G(nteracti)-3.24 E 1.04 -.15(ve u)-.25
+H .74(se, Bash implements ksh-style aliases and b).15 F .74
+(uiltins such as)-.2 F F2(fc)3.24 E F0 .74(\(discussed belo)3.24 F .74
+(w\) and)-.25 F F2(jobs)3.24 E F0(.)A .291(Bash aliases allo)72 606 R
+2.791(was)-.25 G .291(tring to be substituted for a command name.)-2.791
+F(The)5.291 E 2.791(yc)-.15 G .291(an be used to create a mnemonic)
+-2.791 F .568(for a)72 618 R/F4 9/Times-Roman@0 SF(UNIX)3.068 E F0 .568
+(command name \()3.068 F F3 .568(alias del=rm)B F0 .568(\), to e)B .567
+(xpand a single w)-.15 F .567(ord to a comple)-.1 F 3.067(xc)-.15 G .567
+(ommand \()-3.067 F F3(alias)A .255
+(news='xterm -g 80x45 -title trn -e trn -e -S1 -N &')72 630 R F0 .255
+(\), or to ensure that a command)B(is in)72 642 Q -.2(vo)-.4 G -.1(ke).2
+G 2.5(dw).1 G(ith a basic set of options \()-2.5 E F3
+(alias ls="/bin/ls -F")A F0(\).)A .293(The C shell \()97 657.6 R F2(csh)
+A F0 .293(\)\207, originally written by Bill Jo)B 2.792(yw)-.1 G .292
+(hile at Berk)-2.792 F(ele)-.1 E 1.592 -.65(y, i)-.15 H 2.792(sw).65 G
+.292(idely used and quite popular)-2.792 F 1.499(for its interacti)72
+669.6 R 1.799 -.15(ve f)-.25 H 3.999(acilities. Bash).05 F 1.499
+(includes a csh-compatible history e)3.999 F 1.5
+(xpansion mechanism \(\231! history\232\),)-.15 F .019(brace e)72 681.6
+R .018(xpansion, access to a stack of directories via the)-.15 F F2
+(pushd)2.518 E F0(,)A F2(popd)2.518 E F0 2.518(,a)C(nd)-2.518 E F2(dirs)
+2.518 E F0 -.2(bu)2.518 G .018(iltins, and tilde e).2 F(xpansion,)-.15 E
+1.293(to generate users' home directories.)72 693.6 R -.35(Ti)6.294 G
+1.294(lde e).35 F 1.294(xpansion has also been adopted by both the K)
+-.15 F 1.294(orn Shell and)-.35 F .32 LW 144 708.2 72 708.2 DL/F5 8
+/Times-Roman@0 SF(\207Morris Bolsk)72 720 Q 2(ya)-.12 G(nd Da)-2 E
+(vid K)-.16 E(orn,)-.28 E/F6 8/Times-Italic@0 SF(The K)2 E
+(ornShell Command and Pr)-.32 E -.08(og)-.36 G -.12(ra).08 G
+(mming Langua).12 E -.08(ge)-.08 G F5 2(,P).08 G(rentice Hall, 1989.)-2
+E EP
+%%Page: 3 3
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-3-)282.17 48 Q(POSIX.2.)72 84 Q .148
+(There were certain areas in which POSIX.2 felt standardization w)97
+99.6 R .149(as necessary)-.1 F 2.649(,b)-.65 G .149(ut no e)-2.849 F
+.149(xisting imple-)-.15 F 1.598(mentation pro)72 111.6 R 1.598
+(vided the proper beha)-.15 F(vior)-.2 E 6.598(.T)-.55 G 1.598(he w)
+-6.598 F 1.597(orking group in)-.1 F -.15(ve)-.4 G 1.597
+(nted and standardized functionality in).15 F .674
+(these areas, which Bash implements.)72 123.6 R(The)5.674 E/F1 10
+/Times-Bold@0 SF(command)3.174 E F0 -.2(bu)3.174 G .674(iltin w).2 F
+.674(as in)-.1 F -.15(ve)-.4 G .674
+(nted so that shell functions could be).15 F .996(written to replace b)
+72 135.6 R .996(uiltins; it mak)-.2 F .996(es the capabilities of the b)
+-.1 F .995(uiltin a)-.2 F -.25(va)-.2 G .995(ilable to the function.).25
+F .995(The reserv)5.995 F(ed)-.15 E -.1(wo)72 147.6 S 1.731
+(rd \231!\232 w).1 F 1.731(as added to ne)-.1 F -.05(ga)-.15 G 1.731
+(te the return v).05 F 1.731(alue of a command or pipeline; it w)-.25 F
+1.732(as nearly impossible to)-.1 F -.15(ex)72 159.6 S .286
+(press \231if not x\232 cleanly using the sh language.).15 F .286
+(There e)5.286 F .286(xist multiple incompatible implementations of the)
+-.15 F F1(test)72 171.6 Q F0 -.2(bu)3.163 G .663
+(iltin, which tests \214les for type and other attrib).2 F .664
+(utes and performs arithmetic and string comparisons.)-.2 F .5
+(POSIX considered none of these correct, so the standard beha)72 183.6 R
+.5(vior w)-.2 F .5(as speci\214ed in terms of the number of)-.1 F(ar)72
+195.6 Q .412(guments to the command.)-.18 F .412(POSIX.2 dictates e)
+5.412 F .412(xactly what will happen when four or fe)-.15 F .412(wer ar)
+-.25 F .412(guments are)-.18 F(gi)72 207.6 Q -.15(ve)-.25 G 5.01(nt).15
+G(o)-5.01 E F1(test)5.01 E F0 5.01(,a)C 2.51(nd lea)-5.01 F -.15(ve)-.2
+G 5.01(st).15 G 2.51(he beha)-5.01 F 2.51(vior unde\214ned when more ar)
+-.2 F 2.51(guments are supplied.)-.18 F 2.51(Bash uses the)7.51 F
+(POSIX.2 algorithm, which w)72 219.6 Q(as concei)-.1 E -.15(ve)-.25 G
+2.5(db).15 G 2.5(yD)-2.5 G -.2(av)-2.5 G(id K).2 E(orn.)-.35 E F1 2.5
+(3.1. F)72 243.6 R(eatur)-.25 E(es not in the Bour)-.18 E(ne Shell)-.15
+E F0 .718(There are a number of minor dif)97 259.2 R .719
+(ferences between Bash and the v)-.25 F .719
+(ersion of sh present on most other)-.15 F -.15(ve)72 271.2 S .874
+(rsions of).15 F/F2 9/Times-Roman@0 SF(UNIX)3.374 E F0 5.873(.T)C .873
+(he majority of these are due to the POSIX standard, b)-5.873 F .873
+(ut some are the result of Bash)-.2 F .386
+(adopting features from other shells.)72 283.2 R -.15(Fo)5.386 G 2.886
+(ri).15 G .386(nstance, Bash includes the ne)-2.886 F 2.886<7799>-.25 G
+.386(!\232 reserv)-2.886 F .386(ed w)-.15 F .386(ord, the)-.1 F F1
+(command)2.886 E F0 -.2(bu)72 295.2 S .116(iltin, the ability of the).2
+F F1 -.18(re)2.616 G(ad).18 E F0 -.2(bu)2.615 G .115
+(iltin to correctly return a line ending with a backslash, symbolic ar)
+.2 F(guments)-.18 E .798(to the)72 307.2 R F1(umask)3.298 E F0 -.2(bu)
+3.298 G .798(iltin, v).2 F .798(ariable substring remo)-.25 F -.25(va)
+-.15 G .798(l, a w).25 F .799(ay to get the length of a v)-.1 F .799
+(ariable, and the ne)-.25 F 3.299(wa)-.25 G(lgo-)-3.299 E(rithm for the)
+72 319.2 Q F1(test)2.5 E F0 -.2(bu)2.5 G
+(iltin from the POSIX.2 standard, none of which appear in sh.).2 E 1.225
+(Bash also implements the \231$\(...\)\232 command substitution syntax,\
+ which supersedes the sh `...` con-)97 334.8 R 2.851(struct. The)72
+346.8 R .351(\231$\(...\)\232 construct e)2.851 F .351(xpands to the ou\
+tput of the command contained within the parentheses, with)-.15 F .664
+(trailing ne)72 358.8 R .664(wlines remo)-.25 F -.15(ve)-.15 G 3.164
+(d. The).15 F .664(sh syntax is accepted for backw)3.164 F .664
+(ards compatibility)-.1 F 3.164(,b)-.65 G .664
+(ut the \231$\(...\)\232 form is)-3.364 F(preferred because its quoting\
+ rules are much simpler and it is easier to nest.)72 370.8 Q .772
+(The Bourne shell does not pro)97 386.4 R .772
+(vide such features as brace e)-.15 F .772
+(xpansion, the ability to de\214ne a v)-.15 F(ariable)-.25 E .283
+(and a function with the same name, local v)72 398.4 R .282
+(ariables in shell functions, the ability to enable and disable indi-)
+-.25 F .547(vidual b)72 410.4 R .547
+(uiltins or write a function to replace a b)-.2 F .547
+(uiltin, or a means to e)-.2 F .547
+(xport a shell function to a child pro-)-.15 F(cess.)72 422.4 Q .32
+(Bash has closed a long-standing shell security hole by not using the)97
+438 R F1($IFS)2.82 E F0 -.25(va)2.82 G .32(riable to split each w).25 F
+(ord)-.1 E 1.254(read by the shell, b)72 450 R 1.254
+(ut splitting only the results of e)-.2 F 1.255
+(xpansion \(ksh and the 4.4 BSD sh ha)-.15 F 1.555 -.15(ve \214)-.2 H
+-.15(xe).15 G 3.755(dt).15 G 1.255(his as)-3.755 F 2.907(well\). Useful)
+72 462 R(beha)2.907 E .407(vior such as a means to abort e)-.2 F -.15
+(xe)-.15 G .407(cution of a script read with the \231.).15 F 2.906<9a63>
+-.7 G .406(ommand using the)-2.906 F F1 -.18(re)72 474 S(tur).18 E(n)
+-.15 E F0 -.2(bu)2.742 G .242(iltin or automatically e).2 F .242
+(xporting v)-.15 F .243(ariables in the shell')-.25 F 2.743(se)-.55 G
+-.4(nv)-2.743 G .243(ironment to children is also not present).4 F .969
+(in the Bourne shell.)72 486 R .968(Bash pro)5.968 F .968
+(vides a much more po)-.15 F .968(werful en)-.25 F .968
+(vironment for both interacti)-.4 F 1.268 -.15(ve u)-.25 H .968
+(se and pro-).15 F(gramming.)72 498 Q F1 2.5(4. Bash-speci\214c)72 522 R
+-.25(Fe)2.5 G(atur).25 E(es)-.18 E F0 .491(This section details a fe)97
+537.6 R 2.991(wo)-.25 G 2.991(ft)-2.991 G .491(he features which mak)
+-2.991 F 2.991(eB)-.1 G .491(ash unique.)-2.991 F .492(Most of them pro)
+5.491 F .492(vide impro)-.15 F -.15(ve)-.15 G(d).15 E(interacti)72 549.6
+Q 1.182 -.15(ve u)-.25 H .882(se, b).15 F .882(ut a fe)-.2 F 3.382(wp)
+-.25 G .882(rogramming impro)-3.382 F -.15(ve)-.15 G .882
+(ments are present as well.).15 F .882(Full descriptions of these fea-)
+5.882 F(tures can be found in the Bash documentation.)72 561.6 Q F1 2.5
+(4.1. Startup)72 585.6 R(Files)2.5 E F0 .161(Bash e)97 601.2 R -.15(xe)
+-.15 G .161(cutes startup \214les dif).15 F .161
+(ferently than other shells.)-.25 F .162(The Bash beha)5.161 F .162
+(vior is a compromise between)-.2 F .29
+(the csh principle of startup \214les with \214x)72 613.2 R .29
+(ed names e)-.15 F -.15(xe)-.15 G .29
+(cuted for each shell and the sh \231minimalist\232 beha).15 F(vior)-.2
+E(.)-.55 E 2.955(An interacti)72 625.2 R 3.255 -.15(ve i)-.25 H 2.955
+(nstance of Bash started as a login shell reads and e).15 F -.15(xe)-.15
+G(cutes).15 E/F3 10/Times-Italic@0 SF(~/.bash_pr)5.456 E(o\214le)-.45 E
+F0 2.956(\(the \214le)5.456 F .954(.bash_pro\214le in the user')72 637.2
+R 3.454(sh)-.55 G .953(ome directory\), if it e)-3.454 F 3.453
+(xists. An)-.15 F(interacti)3.453 E 1.253 -.15(ve n)-.25 H .953
+(on-login shell reads and e).15 F -.15(xe)-.15 G(cutes).15 E F3
+(~/.bashr)72 649.2 Q(c)-.37 E F0 5.641(.A)C(non-interacti)-2.5 E .942
+-.15(ve s)-.25 H .642(hell \(one be).15 F .642(gun to e)-.15 F -.15(xe)
+-.15 G .642(cute a shell script, for e).15 F .642
+(xample\) reads no \214x)-.15 F .642(ed startup)-.15 F .342(\214le, b)72
+661.2 R .342(ut uses the v)-.2 F .342(alue of the v)-.25 F(ariable)-.25
+E F1($ENV)2.842 E F0 2.841(,i)C 2.841(fs)-2.841 G .341
+(et, as the name of a startup \214le.)-2.841 F .341
+(The ksh practice of read-)5.341 F(ing)72 673.2 Q F1($ENV)3.114 E F0
+.614(for e)3.114 F -.15(ve)-.25 G .614(ry shell, with the accompan).15 F
+.615(ying dif)-.15 F .615(\214culty of de\214ning the proper v)-.25 F
+.615(ariables and functions)-.25 F .721(for interacti)72 685.2 R 1.021
+-.15(ve a)-.25 H .721(nd non-interacti).15 F 1.021 -.15(ve s)-.25 H .721
+(hells or ha).15 F .721(ving the \214le read only for interacti)-.2 F
+1.02 -.15(ve s)-.25 H .72(hells, w).15 F .72(as considered)-.1 F .158
+(too comple)72 697.2 R 2.658(x. Ease)-.15 F .158(of use w)2.658 F .158
+(on out here.)-.1 F(Interestingly)5.158 E 2.658(,t)-.65 G .158(he ne)
+-2.658 F .159(xt release of ksh will change to reading)-.15 F F1($ENV)
+2.659 E .32 LW 144 705.2 72 705.2 DL/F4 8/Times-Roman@0 SF .559
+(\207Bill Jo)72 717 R 1.599 -.52(y, A)-.08 H 2.559(nI).52 G .559
+(ntroduction to the C Shell,)-2.559 F/F5 8/Times-Italic@0 SF .558
+(UNIX User')2.558 F 2.558(sS)-.32 G .558(upplementary Documents)-2.558 F
+F4 2.558(,U)C(ni)-2.558 E -.12(ve)-.2 G .558(rsity of California at).12
+F(Berk)72 727 Q(ele)-.08 E 1.04 -.52(y, 1)-.12 H(986.).52 E EP
+%%Page: 4 4
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-4-)282.17 48 Q(only for interacti)72 84 Q .3
+-.15(ve s)-.25 H(hells.).15 E/F1 10/Times-Bold@0 SF 2.5(4.2. New)72 108
+R(Builtin Commands)2.5 E F0 1.02(There are a fe)97 123.6 R 3.52(wb)-.25
+G 1.02(uiltins which are ne)-3.72 F 3.52(wo)-.25 G 3.52(rh)-3.52 G -2.25
+-.2(av e)-3.52 H 1.02(been e)3.72 F 1.02(xtended in Bash.)-.15 F(The)
+6.02 E F1(enable)3.52 E F0 -.2(bu)3.52 G 1.02(iltin allo).2 F(ws)-.25 E
+-.2(bu)72 135.6 S .824(iltin commands to be turned on and of).2 F 3.324
+(fa)-.25 G(rbitrarily)-3.324 E 5.824(.T)-.65 G 3.324(ou)-6.624 G .824
+(se the v)-3.324 F .824(ersion of)-.15 F/F2 10/Times-Italic@0 SF(ec)
+3.324 E(ho)-.15 E F0 .825(found in a user')3.324 F 3.325(ss)-.55 G
+(earch)-3.325 E .625(path rather than the Bash b)72 147.6 R(uiltin,)-.2
+E/F3 10/Courier@0 SF .625(enable -n echo)3.125 F F0(suf)3.125 E 3.125
+(\214ces. The)-.25 F F1(help)3.124 E F0 -.2(bu)3.124 G .624(iltin pro).2
+F .624(vides quick synopses)-.15 F .703(of the shell f)72 159.6 R .704
+(acilities without requiring access to a manual page.)-.1 F F1(Builtin)
+5.704 E F0 .704(is similar to)3.204 F F1(command)3.204 E F0 .704
+(in that it)3.204 F .342(bypasses shell functions and directly e)72
+171.6 R -.15(xe)-.15 G .342(cutes b).15 F .342(uiltin commands.)-.2 F
+.342(Access to a csh-style stack of directories)5.342 F .072(is pro)72
+183.6 R .073(vided via the)-.15 F F1(pushd)2.573 E F0(,)A F1(popd)2.573
+E F0 2.573(,a)C(nd)-2.573 E F1(dirs)2.573 E F0 -.2(bu)2.573 G(iltins.).2
+E F1(Pushd)5.073 E F0(and)2.573 E F1(popd)2.573 E F0 .073
+(insert and remo)2.573 F .373 -.15(ve d)-.15 H .073(irectories from the)
+.15 F 2.858(stack, respecti)72 195.6 R -.15(ve)-.25 G(ly).15 E 5.358(,a)
+-.65 G(nd)-5.358 E F1(dirs)5.358 E F0 2.858(lists the stack contents.)
+5.358 F 2.858(On systems that allo)7.858 F 5.358<778c>-.25 G 2.857
+(ne-grained control of)-5.358 F 1.339(resources, the)72 207.6 R F1
+(ulimit)3.839 E F0 -.2(bu)3.839 G 1.339
+(iltin can be used to tune these settings.).2 F F1(Ulimit)6.34 E F0
+(allo)3.84 E 1.34(ws a user to control, among)-.25 F 1.086
+(other things, whether core dumps are to be generated, ho)72 219.6 R
+3.586(wm)-.25 G 1.086(uch memory the shell or a child process is)-3.586
+F(allo)72 231.6 Q .496(wed to allocate, and ho)-.25 F 2.996(wl)-.25 G
+(ar)-2.996 E .496(ge a \214le created by a child process can gro)-.18 F
+4.296 -.65(w. T)-.25 H(he).65 E F1(suspend)2.996 E F0 .497(command will)
+2.997 F .744(stop the shell process when job control is acti)72 243.6 R
+-.15(ve)-.25 G 3.243(;m).15 G .743(ost other shells do not allo)-3.243 F
+3.243(wt)-.25 G(hemselv)-3.243 E .743(es to be stopped)-.15 F(lik)72
+255.6 Q 2.717(et)-.1 G(hat.)-2.717 E F1 -.74(Ty)5.217 G(pe,).74 E F0
+.217(the Bash answer to)2.717 F F1(which)2.717 E F0(and)2.717 E F1
+(whence,)2.717 E F0(sho)2.717 E .218(ws what will happen when a w)-.25 F
+.218(ord is typed as a)-.1 F(command:)72 267.6 Q F3 6($t)97 285.6 S
+(ype export)-6 E(export is a shell builtin)97 297.6 Q 6($t)97 309.6 S
+(ype -t export)-6 E(builtin)97 321.6 Q 6($t)97 333.6 S(ype bash)-6 E
+(bash is /bin/bash)97 345.6 Q 6($t)97 357.6 S(ype cd)-6 E
+(cd is a function)97 369.6 Q(cd \(\))97 381.6 Q({)97 393.6 Q
+(builtin cd ${1+"$@"} && xtitle $HOST: $PWD)121 405.6 Q(})97 417.6 Q F0
+-1.11(Va)72 439.2 S .682(rious modes tell what a command w)1.11 F .681
+(ord is \(reserv)-.1 F .681(ed w)-.15 F .681(ord, alias, function, b)-.1
+F .681(uiltin, or \214le\) or which v)-.2 F(er)-.15 E(-)-.2 E 1.15
+(sion of a command will be e)72 451.2 R -.15(xe)-.15 G 1.15
+(cuted based on a user').15 F 3.65(ss)-.55 G 1.15(earch path.)-3.65 F
+1.15(Some of this functionality has been)6.15 F
+(adopted by POSIX.2 and folded into the)72 463.2 Q F1(command)2.5 E F0
+(utility)2.5 E(.)-.65 E F1 2.5(4.3. Editing)72 487.2 R(and Completion)
+2.5 E F0 .682(One area in which Bash shines is command line editing.)97
+502.8 R .682(Bash uses the)5.682 F F2 -.37(re)3.182 G(adline).37 E F0
+.681(library to read and)3.181 F .942(edit lines when interacti)72 514.8
+R -.15(ve)-.25 G 5.942(.R).15 G .942(eadline is a po)-5.942 F .942
+(werful and \215e)-.25 F .942(xible input f)-.15 F .943
+(acility that a user can con\214gure to)-.1 F(indi)72 526.8 Q .732
+(vidual tastes.)-.25 F .732(It allo)5.732 F .732(ws lines to be edited \
+using either emacs or vi commands, where those commands)-.25 F .2
+(are appropriate.)72 538.8 R .2
+(The full capability of emacs is not present \255 there is no w)5.2 F .2
+(ay to e)-.1 F -.15(xe)-.15 G .2(cute a named command).15 F 1.15
+(with M-x, for instance \255 b)72 550.8 R 1.15(ut the e)-.2 F 1.149
+(xisting commands are more than adequate.)-.15 F 1.149
+(The vi mode is compliant)6.149 F
+(with the command line editing standardized by POSIX.2.)72 562.8 Q 1.69
+(Readline is fully customizable.)97 578.4 R 1.691
+(In addition to the basic commands and k)6.69 F 1.991 -.15(ey b)-.1 H
+1.691(indings, the library).15 F(allo)72 590.4 Q .028
+(ws users to de\214ne additional k)-.25 F .327 -.15(ey b)-.1 H .027
+(indings using a startup \214le.).15 F(The)5.027 E F2(inputr)2.527 E(c)
+-.37 E F0 .027(\214le, which def)2.527 F .027(aults to the \214le)-.1 F
+F2(~/.inputr)72 602.4 Q(c)-.37 E F0 3.002(,i)C 3.002(sr)-3.002 G .503(e\
+ad each time readline initializes, permitting users to maintain a consi\
+stent interf)-3.002 F .503(ace across a)-.1 F .893(set of programs.)72
+614.4 R .893(Readline includes an e)5.893 F .893(xtensible interf)-.15 F
+.892(ace, so each program using the library can add its)-.1 F -.25(ow)72
+626.4 S 3.56(nb).25 G 1.06(indable commands and program-speci\214c k)
+-3.56 F 1.361 -.15(ey b)-.1 H 3.561(indings. Bash).15 F 1.061
+(uses this f)3.561 F 1.061(acility to add bindings that)-.1 F
+(perform history e)72 638.4 Q(xpansion or shell w)-.15 E(ord e)-.1 E
+(xpansions on the current input line.)-.15 E .707
+(Readline interprets a number of v)97 654 R .706
+(ariables which further tune its beha)-.25 F(vior)-.2 E 5.706(.V)-.55 G
+.706(ariables e)-6.816 F .706(xist to control)-.15 F .157
+(whether or not eight-bit characters are directly read as input or con)
+72 666 R -.15(ve)-.4 G .158(rted to meta-pre\214x).15 F .158(ed k)-.15 F
+.458 -.15(ey s)-.1 H .158(equences \(a).15 F(meta-pre\214x)72 678 Q .082
+(ed k)-.15 F .382 -.15(ey s)-.1 H .081(equence consists of the characte\
+r with the eighth bit zeroed, preceded by the).15 F F2(meta-pr)2.581 E
+(e\214x)-.37 E F0(character)72 690 Q 3.233(,u)-.4 G .733
+(sually escape, which selects an alternate k)-3.233 F -.15(ey)-.1 G .734
+(map\), to decide whether to output characters with).15 F .624
+(the eighth bit set directly or as a meta-pre\214x)72 702 R .624(ed k)
+-.15 F .924 -.15(ey s)-.1 H .623
+(equence, whether or not to wrap to a ne).15 F 3.123(ws)-.25 G .623
+(creen line)-3.123 F 1.196
+(when a line being edited is longer than the screen width, the k)72 714
+R -.15(ey)-.1 G 1.196(map to which subsequent k).15 F 1.496 -.15(ey b)
+-.1 H(indings).15 E .531(should apply)72 726 R 3.031(,o)-.65 G 3.031(re)
+-3.031 G -.15(ve)-3.281 G 3.031(nw).15 G .531
+(hat happens when readline w)-3.031 F .531(ants to ring the terminal')
+-.1 F 3.03(sb)-.55 G 3.03(ell. All)-3.03 F .53(of these v)3.03 F
+(ariables)-.25 E EP
+%%Page: 5 5
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-5-)282.17 48 Q
+(can be set in the inputrc \214le.)72 84 Q .284
+(The startup \214le understands a set of C preprocessor)97 99.6 R(-lik)
+-.2 E 2.785(ec)-.1 G .285(onditional constructs which allo)-2.785 F
+2.785(wv)-.25 G(ariables)-3.035 E .12(or k)72 111.6 R .42 -.15(ey b)-.1
+H .119(indings to be assigned based on the application using readline, \
+the terminal currently being used, or).15 F .338(the editing mode.)72
+123.6 R .338(Users can add program-speci\214c bindings to mak)5.338 F
+2.838(et)-.1 G .338(heir li)-2.838 F -.15(ve)-.25 G 2.838(se).15 G 2.838
+(asier: I)-2.838 F(ha)2.838 E .639 -.15(ve b)-.2 H .339(indings that).15
+F(let me edit the v)72 135.6 Q(alue of)-.25 E/F1 10/Times-Bold@0 SF($P)
+2.5 E -.95(AT)-.74 G(H).95 E F0(and double-quote the current or pre)2.5
+E(vious w)-.25 E(ord:)-.1 E/F2 10/Courier@0 SF 6(#M)97 153.6 S
+(acros that are convenient for shell interaction)-6 E($if Bash)97 165.6
+Q 6(#e)97 177.6 S(dit the path)-6 E
+("\\C-xp": "PATH=${PATH}\\e\\C-e\\C-a\\ef\\C-f")97 189.6 Q 6(#p)97 201.6
+S(repare to type a quoted word -- insert open and close double)-6 E 6
+(#q)97 213.6 S(uotes and move to just after the open quote)-6 E
+("\\C-x\\"": "\\"\\"\\C-b")97 225.6 Q 6(#Q)97 237.6 S
+(uote the current or previous word)-6 E("\\C-xq": "\\eb\\"\\ef\\"")97
+249.6 Q($endif)97 261.6 Q F0 .322(There is a readline command to re-rea\
+d the \214le, so users can edit the \214le, change some bindings, and b\
+e)72 283.2 R(gin)-.15 E(to use them almost immediately)72 295.2 Q(.)-.65
+E .851(Bash implements the)97 310.8 R F1(bind)3.351 E F0 -.2(bu)3.351 G
+.851(iltin for more dyamic control of readline than the startup \214le \
+permits.).2 F F1(Bind)72 322.8 Q F0 .25(is used in se)2.75 F -.15(ve)
+-.25 G .25(ral w).15 F 2.75(ays. In)-.1 F/F3 10/Times-Italic@0 SF(list)
+2.75 E F0 .25(mode, it can display the current k)2.75 F .55 -.15(ey b)
+-.1 H .25(indings, list all the readline edit-).15 F .149(ing directi)72
+334.8 R -.15(ve)-.25 G 2.649(sa).15 G -.25(va)-2.849 G .149
+(ilable for binding, list which k).25 F -.15(ey)-.1 G 2.649(si).15 G
+-1.9 -.4(nv o)-2.649 H .349 -.1(ke a g).4 H -2.15 -.25(iv e).1 H 2.65
+(nd).25 G(irecti)-2.65 E -.15(ve)-.25 G 2.65(,o).15 G 2.65(ro)-2.65 G
+.15(utput the current set of k)-2.65 F -.15(ey)-.1 G .042(bindings in a\
+ format that can be incorporated directly into an inputrc \214le.)72
+346.8 R(In)5.041 E F3(batc)2.541 E(h)-.15 E F0 .041
+(mode, it reads a series of)2.541 F -.1(ke)72 358.8 S 2.858(yb)-.05 G
+.359(indings directly from a \214le and passes them to readline.)-2.858
+F .359(In its most common usage,)5.359 F F1(bind)2.859 E F0(tak)2.859 E
+.359(es a sin-)-.1 F 1.117(gle string and passes it directly to readlin\
+e, which interprets the line as if it had just been read from the)72
+370.8 R(inputrc \214le.)72 382.8 Q(Both k)5 E .3 -.15(ey b)-.1 H
+(indings and v).15 E(ariable assignments may appear in the string gi)
+-.25 E -.15(ve)-.25 G 2.5(nt).15 G(o)-2.5 E F1(bind)2.5 E F0(.)A .53
+(The readline library also pro)97 398.4 R .53(vides an interf)-.15 F .53
+(ace for)-.1 F F3(wor)3.03 E 3.03(dc)-.37 G(ompletion)-3.03 E F0 5.53
+(.W)C .53(hen the)-5.53 F F3(completion)3.03 E F0(character)3.03 E 1.261
+(\(usually T)72 410.4 R 1.261(AB\) is typed, readline looks at the w)
+-.93 F 1.26(ord currently being entered and computes the set of \214le-)
+-.1 F .523(names of which the current w)72 422.4 R .523(ord is a v)-.1 F
+.523(alid pre\214x.)-.25 F .524
+(If there is only one possible completion, the rest of the)5.523 F .358
+(characters are inserted directly)72 434.4 R 2.858(,o)-.65 G .358(therw\
+ise the common pre\214x of the set of \214lenames is added to the curre\
+nt)-2.858 F -.1(wo)72 446.4 S 3.199(rd. A).1 F .699(second T)3.199 F
+.699(AB character entered immediately after a non-unique completion cau\
+ses readline to list)-.93 F 1.814
+(the possible completions; there is an option to ha)72 458.4 R 2.113
+-.15(ve t)-.2 H 1.813(he list displayed immediately).15 F 6.813(.R)-.65
+G 1.813(eadline pro)-6.813 F(vides)-.15 E .482
+(hooks so that applications can pro)72 470.4 R .482
+(vide speci\214c types of completion before the def)-.15 F .483
+(ault \214lename completion)-.1 F .132(is attempted.)72 482.4 R .132
+(This is quite \215e)5.132 F .132
+(xible, though it is not completely user)-.15 F 2.632
+(-programmable. Bash,)-.2 F .132(for e)2.632 F .132(xample, can)-.15 F
+.37(complete \214lenames, command names \(including aliases, b)72 494.4
+R .37(uiltins, shell reserv)-.2 F .37(ed w)-.15 F .37
+(ords, shell functions, and)-.1 F -.15(exe)72 506.4 S .424
+(cutables found in the \214le system\), shell v).15 F .424
+(ariables, usernames, and hostnames.)-.25 F .423
+(It uses a set of heuristics)5.424 F(that, while not perfect, is genera\
+lly quite good at determining what type of completion to attempt.)72
+518.4 Q F1 2.5(4.4. History)72 542.4 R F0 .144
+(Access to the list of commands pre)97 558 R .144(viously entered \(the)
+-.25 F F3 .144(command history)2.644 F F0 2.644(\)i)C 2.644(sp)-2.644 G
+(ro)-2.644 E .144(vided jointly by Bash)-.15 F .078
+(and the readline library)72 570 R 5.077(.B)-.65 G .077(ash pro)-5.077 F
+.077(vides v)-.15 F .077(ariables \()-.25 F F1($HISTFILE)A F0(,)A F1
+($HISTSIZE)2.577 E F0 2.577(,a)C(nd)-2.577 E F1($HISTCONTR)2.577 E(OL)
+-.3 E F0 2.577(\)a)C(nd)-2.577 E(the)72 582 Q F1(history)2.89 E F0(and)
+2.89 E F1(fc)2.89 E F0 -.2(bu)2.89 G .39
+(iltins to manipulate the history list.).2 F .391(The v)5.391 F .391
+(alue of)-.25 F F1($HISTFILE)2.891 E F0 .391(specifes the \214le where)
+2.891 F .49(Bash writes the command history on e)72 594 R .489
+(xit and reads it on startup.)-.15 F F1($HISTSIZE)5.489 E F0 .489
+(is used to limit the number)2.989 F .642(of commands sa)72 606 R -.15
+(ve)-.2 G 3.142(di).15 G 3.142(nt)-3.142 G .642(he history)-3.142 F(.)
+-.65 E F1($HISTCONTR)5.642 E(OL)-.3 E F0(pro)3.142 E .642
+(vides a crude form of control o)-.15 F -.15(ve)-.15 G 3.142(rw).15 G
+.642(hich com-)-3.142 F .025(mands are sa)72 618 R -.15(ve)-.2 G 2.525
+(do).15 G 2.525(nt)-2.525 G .025(he history list: a v)-2.525 F .025
+(alue of)-.25 F F3(ignor)2.525 E(espace)-.37 E F0 .025(means to not sa)
+2.525 F .324 -.15(ve c)-.2 H .024(ommands which be).15 F .024
+(gin with a)-.15 F .927(space; a v)72 630 R .927(alue of)-.25 F F3
+(ignor)3.427 E(edups)-.37 E F0 .927(means to not sa)3.427 F 1.228 -.15
+(ve c)-.2 H .928(ommands identical to the last command sa).15 F -.15(ve)
+-.2 G(d.).15 E F1($HIST)5.928 E(-)-.92 E(CONTR)72 642 Q(OL)-.3 E F0 -.1
+(wa)3.778 G 3.778(sn).1 G(amed)-3.778 E F1($history_contr)3.778 E(ol)
+-.18 E F0 1.278(in earlier v)3.778 F 1.278
+(ersions of Bash; the old name is still accepted for)-.15 F(backw)72 654
+Q .575(ards compatibility)-.1 F 5.575(.T)-.65 G(he)-5.575 E F1(history)
+3.075 E F0 .575
+(command can read or write \214les containing the history list and dis-)
+3.075 F .167(play the current list contents.)72 666 R(The)5.167 E F1(fc)
+2.667 E F0 -.2(bu)2.667 G .167(iltin, adopted from POSIX.2 and the K).2
+F .167(orn Shell, allo)-.35 F .167(ws display and)-.25 F(re-e)72 678 Q
+-.15(xe)-.15 G .58
+(cution, with optional editing, of commands from the history list.).15 F
+.58(The readline library of)5.58 F .58(fers a set of)-.25 F 1.255(comma\
+nds to search the history list for a portion of the current input line \
+or a string typed by the user)72 690 R(.)-.55 E(Finally)72 702 Q 2.535
+(,t)-.65 G(he)-2.535 E F3(history)2.535 E F0(library)2.535 E 2.535(,g)
+-.65 G .036(enerally incorporated directly into the readline library)
+-2.535 F 2.536(,i)-.65 G .036(mplements a f)-2.536 F .036(acility for)
+-.1 F 1.023(history recall, e)72 714 R 1.022(xpansion, and re-e)-.15 F
+-.15(xe)-.15 G 1.022(cution of pre).15 F 1.022(vious commands v)-.25 F
+1.022(ery similar to csh \(\231bang history\232, so)-.15 F
+(called because the e)72 726 Q
+(xclamation point introduces a history substitution\):)-.15 E EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-6-)282.17 48 Q/F1 10/Courier@0 SF 6($e)97 84 S
+(cho a b c d e)-6 E 6(abcde)97 96 S 6($!)97 108 S 6(!fghi)-6 G
+(echo a b c d e f g h i)97 120 Q 6(abcdefghi)97 132 S 6($!)97 144 S(-2)
+-6 E(echo a b c d e)97 156 Q 6(abcde)97 168 S 6($e)97 180 S(cho !-2:1-4)
+-6 E(echo a b c d)97 192 Q 6(abcd)97 204 S F0 1.456
+(The command history is only sa)72 225.6 R -.15(ve)-.2 G 3.957(dw).15 G
+1.457(hen the shell is interacti)-3.957 F -.15(ve)-.25 G 3.957(,s).15 G
+3.957(oi)-3.957 G 3.957(ti)-3.957 G 3.957(sn)-3.957 G 1.457(ot a)-3.957
+F -.25(va)-.2 G 1.457(ilable for use by shell).25 F(scripts.)72 237.6 Q
+/F2 10/Times-Bold@0 SF 2.5(4.5. New)72 261.6 R(Shell V)2.5 E(ariables)
+-.92 E F0 .59(There are a number of con)97 277.2 R -.15(ve)-.4 G .589
+(nience v).15 F .589(ariables that Bash interprets to mak)-.25 F 3.089
+(el)-.1 G .589(ife easier)-3.089 F 5.589(.T)-.55 G .589(hese include)
+-5.589 F F2(FIGNORE)72 289.2 Q F0 3.973(,w)C 1.473
+(hich is a set of \214lename suf)-3.973 F<8c78>-.25 E 1.474
+(es identifying \214les to e)-.15 F 1.474
+(xclude when completing \214lenames;)-.15 F F2(HOSTTYPE)72 301.2 Q F0
+2.932(,w)C .432
+(hich is automatically set to a string describing the type of hardw)
+-2.932 F .431(are on which Bash is cur)-.1 F(-)-.2 E .335(rently e)72
+313.2 R -.15(xe)-.15 G(cuting;).15 E F2(command_oriented_history)2.835 E
+F0 2.835(,w)C .335(hich directs Bash to sa)-2.835 F .635 -.15(ve a)-.2 H
+.336(ll lines of a multiple-line com-).15 F 1.071(mand such as a)72
+325.2 R/F3 10/Times-Italic@0 SF(while)3.571 E F0(or)3.571 E F3(for)3.571
+E F0 1.071(loop in a single history entry)3.571 F 3.57(,a)-.65 G(llo)
+-3.57 E 1.07(wing easy re-editing; and)-.25 F F2(IGNOREEOF)3.57 E F0(,)A
+.747(whose v)72 337.2 R .747(alue indicates the number of consecuti)-.25
+F 1.047 -.15(ve E)-.25 H .747(OF characters that an interacti).15 F
+1.048 -.15(ve s)-.25 H .748(hell will read before).15 F -.15(ex)72 349.2
+S 1.432(iting \255 an easy w).15 F 1.432(ay to k)-.1 F 1.432
+(eep yourself from being logged out accidentally)-.1 F 6.432(.T)-.65 G
+(he)-6.432 E F2(auto_r)3.932 E(esume)-.18 E F0 -.25(va)3.932 G(riable)
+.25 E .571(alters the w)72 361.2 R .571
+(ay the shell treats simple command names: if job control is acti)-.1 F
+-.15(ve)-.25 G 3.071(,a).15 G .571(nd this v)-3.071 F .571
+(ariable is set, sin-)-.25 F(gle-w)72 373.2 Q .239(ord simple commands \
+without redirections cause the shell to \214rst look for and restart a \
+suspended job)-.1 F(with that name before starting a ne)72 385.2 Q 2.5
+(wp)-.25 G(rocess.)-2.5 E F2 2.5(4.6. Brace)72 409.2 R(Expansion)2.5 E
+F0 .653(Since sh of)97 424.8 R .653(fers no con)-.25 F -.15(ve)-.4 G
+.653(nient w).15 F .653
+(ay to generate arbitrary strings that share a common pre\214x or suf)
+-.1 F<8c78>-.25 E 2.124(\(\214lename e)72 436.8 R 2.124
+(xpansion requires that the \214lenames e)-.15 F 2.123
+(xist\), Bash implements)-.15 F F3(br)4.623 E 2.123(ace e)-.15 F
+(xpansion)-.2 E F0 4.623(,ac)C(apability)-4.623 E(pick)72 448.8 Q .773
+(ed up from csh.)-.1 F .774(Brace e)5.773 F .774
+(xpansion is similar to \214lename e)-.15 F .774(xpansion, b)-.15 F .774
+(ut the strings generated need not)-.2 F 1.211(correspond to e)72 460.8
+R 1.211(xisting \214les.)-.15 F 3.711(Ab)6.211 G 1.211(race e)-3.711 F
+1.211(xpression consists of an optional)-.15 F F3(pr)3.71 E(eamble)-.37
+E F0 3.71(,f)C(ollo)-3.71 E 1.21(wed by a pair of)-.25 F 2.938
+(braces enclosing a series of comma-separated strings, and an optional)
+72 472.8 R F3(postamble)5.438 E F0 7.938(.T)C 2.938(he preamble is)
+-7.938 F(prepended to each string within the braces, and the postamble \
+is then appended to each resulting string:)72 484.8 Q F1 6($e)97 502.8 S
+(cho a{d,c,b}e)-6 E(ade ace abe)97 514.8 Q F0 .306(As this e)72 536.4 R
+.306(xample demonstrates, the results of brace e)-.15 F .305
+(xpansion are not sorted, as the)-.15 F 2.805(ya)-.15 G .305
+(re by \214lename e)-2.805 F(xpan-)-.15 E(sion.)72 548.4 Q F2 2.5
+(4.7. Pr)72 572.4 R(ocess Substitution)-.18 E F0 .457
+(On systems that can support it, Bash pro)97 588 R .457(vides a f)-.15 F
+.457(acility kno)-.1 F .458(wn as)-.25 F F3(pr)2.958 E .458
+(ocess substitution)-.45 F F0 5.458(.P)C .458(rocess sub-)-5.458 F .347
+(stitution is similar to command substitution in that its speci\214cati\
+on includes a command to e)72 600 R -.15(xe)-.15 G .346(cute, b).15 F
+.346(ut the)-.2 F .181(shell does not collect the command')72 612 R
+2.681(so)-.55 G .181(utput and insert it into the command line.)-2.681 F
+(Rather)5.181 E 2.681(,B)-.4 G .182(ash opens a pipe)-2.681 F 1.861
+(to the command, which is run in the background.)72 624 R 1.861
+(The shell uses named pipes \(FIFOs\) or the)6.861 F F3(/de)4.361 E
+(v/fd)-.15 E F0 .961(method of naming open \214les to e)72 636 R .962(x\
+pand the process substitution to a \214lename which connects to the pip\
+e)-.15 F .104(when opened.)72 648 R .103
+(This \214lename becomes the result of the e)5.104 F 2.603
+(xpansion. Process)-.15 F .103(substitution can be used to com-)2.603 F
+(pare the outputs of tw)72 660 Q 2.5(od)-.1 G(if)-2.5 E(ferent v)-.25 E
+(ersions of an application as part of a re)-.15 E(gression test:)-.15 E
+F1 6($c)97 678 S(mp <\(old_prog\) <\(new_prog\))-6 E EP
+%%Page: 7 7
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-7-)282.17 48 Q/F1 10/Times-Bold@0 SF 2.5
+(4.8. Pr)72 84 R(ompt Customization)-.18 E F0 2.229
+(One of the more popular interacti)97 99.6 R 2.529 -.15(ve f)-.25 H
+2.229(eatures that Bash pro).15 F 2.23
+(vides is the ability to customize the)-.15 F 3.234(prompt. Both)72
+111.6 R F1($PS1)3.234 E F0(and)3.234 E F1($PS2,)3.234 E F0 .734
+(the primary and secondary prompts, are e)3.234 F .733
+(xpanded before being displayed.)-.15 F -.15(Pa)72 123.6 S .804
+(rameter and v).15 F .804(ariable e)-.25 F .805
+(xpansion is performed when the prompt string is e)-.15 F .805
+(xpanded, so an)-.15 F 3.305(ys)-.15 G .805(hell v)-3.305 F(ariable)-.25
+E .729(can be put into the prompt \(e.g.,)72 135.6 R F1($SHL)3.228 E(VL)
+-.92 E F0 3.228(,w)C .728(hich indicates ho)-3.228 F 3.228(wd)-.25 G
+.728(eeply the current shell is nested\).)-3.228 F(Bash)5.728 E 1.895(s\
+pecially interprets characters in the prompt string preceded by a backs\
+lash.)72 147.6 R 1.895(Some of these backslash)6.895 F .874
+(escapes are replaced with the current time, the date, the current w)72
+159.6 R .874(orking directory)-.1 F 3.373(,t)-.65 G .873
+(he username, and the)-3.373 F .78
+(command number or history number of the command being entered.)72 171.6
+R .781(There is e)5.781 F -.15(ve)-.25 G 3.281(nab).15 G .781
+(ackslash escape to)-3.281 F .007
+(cause the shell to change its prompt when running as root after an)72
+183.6 R/F2 10/Times-Italic@0 SF(su)2.507 E F0 5.007(.B)C .007
+(efore printing each primary prompt,)-5.007 F .305(Bash e)72 195.6 R
+.305(xpands the v)-.15 F(ariable)-.25 E F1($PR)2.805 E(OMPT_COMMAND)-.3
+E F0 .305(and, if it has a v)2.805 F .306(alue, e)-.25 F -.15(xe)-.15 G
+.306(cutes the e).15 F .306(xpanded v)-.15 F .306(alue as)-.25 F 3.735
+(ac)72 207.6 S 1.235(ommand, allo)-3.735 F 1.234
+(wing additional prompt customization.)-.25 F -.15(Fo)6.234 G 3.734(re)
+.15 G 1.234(xample, this assignment causes the current)-3.884 F(user)72
+219.6 Q 2.917(,t)-.4 G .417
+(he current host, the time, the last component of the current w)-2.917 F
+.417(orking directory)-.1 F 2.917(,t)-.65 G .418(he le)-2.917 F -.15(ve)
+-.25 G 2.918(lo).15 G 2.918(fs)-2.918 G .418(hell nest-)-2.918 F(ing, a\
+nd the history number of the current command to be embedded into the pr\
+imary prompt:)72 231.6 Q/F3 10/Courier@0 SF 6($P)97 249.6 S
+(S1='\\u@\\h [\\t] \\W\($SHLVL:\\!\)\\$ ')-6 E
+(chet@odin [21:03:44] documentation\(2:636\)$ cd ..)97 261.6 Q
+(chet@odin [21:03:54] src\(2:637\)$)97 273.6 Q F0 .146(The string being\
+ assigned is surrounded by single quotes so that if it is e)72 295.2 R
+.146(xported, the v)-.15 F .146(alue of)-.25 F F1($SHL)2.646 E(VL)-.92 E
+F0(will)2.646 E(be updated by a child shell:)72 307.2 Q F3
+(chet@odin [21:17:35] src\(2:638\)$ export PS1)97 325.2 Q
+(chet@odin [21:17:40] src\(2:639\)$ bash)97 337.2 Q
+(chet@odin [21:17:46] src\(3:696\)$)97 349.2 Q F0
+(The \\$ escape is displayed as \231)72 370.8 Q F1($)A F0 2.5<9a77>C
+(hen running as a normal user)-2.5 E 2.5(,b)-.4 G(ut as \231)-2.7 E F1
+(#)A F0 2.5<9a77>C(hen running as root.)-2.5 E F1 2.5(4.9. File)72 394.8
+R(System V)2.5 E(iews)-.37 E F0 .029(Since Berk)97 410.4 R(ele)-.1 E
+2.529(yi)-.15 G .029
+(ntroduced symbolic links in 4.2 BSD, one of their most anno)-2.529 F
+.03(ying properties has been)-.1 F .764(the \231w)72 422.4 R .764
+(arping\232 to a completely dif)-.1 F .764
+(ferent area of the \214le system when using)-.25 F F1(cd)3.263 E F0
+3.263(,a)C .763(nd the resultant non-intu-)-3.263 F(iti)72 434.4 Q .704
+-.15(ve b)-.25 H(eha).15 E .405(vior of \231)-.2 F F1 .405(cd ..)B F0
+2.905(\232. The)B/F4 9/Times-Roman@0 SF(UNIX)2.905 E F0 -.1(ke)2.905 G
+.405(rnel treats symbolic links).1 F F2(physically)2.905 E F0 5.405(.W)C
+.405(hen the k)-5.405 F .405(ernel is translating)-.1 F 3.223(ap)72
+446.4 S .723(athname in which one component is a symbolic link, it repl\
+aces all or part of the pathname while pro-)-3.223 F .668
+(cessing the link.)72 458.4 R .668
+(If the contents of the symbolic link be)5.668 F .669
+(gin with a slash, the k)-.15 F .669(ernel replaces the pathname)-.1 F
+.219(entirely; if not, the link contents replace the current component.)
+72 470.4 R .219(In either case, the symbolic link is visible.)5.219 F
+.058(If the link v)72 482.4 R .058(alue is an absolute pathname, the us\
+er \214nds himself in a completely dif)-.25 F .059
+(ferent part of the \214le sys-)-.25 F(tem.)72 494.4 Q .704(Bash pro)97
+510 R .704(vides a)-.15 F F2(lo)3.203 E(gical)-.1 E F0(vie)3.203 E 3.203
+(wo)-.25 G 3.203(ft)-3.203 G .703(he \214le system.)-3.203 F .703
+(In this def)5.703 F .703(ault mode, command and \214lename com-)-.1 F
+.522(pletion and b)72 522 R .522(uiltin commands such as)-.2 F F1(cd)
+3.022 E F0(and)3.022 E F1(pushd)3.022 E F0 .522
+(which change the current w)3.022 F .522(orking directory transpar)-.1 F
+(-)-.2 E .127(ently follo)72 534 R 2.627(ws)-.25 G .127
+(ymbolic links as if the)-2.627 F 2.627(yw)-.15 G .127(ere directories.)
+-2.627 F(The)5.126 E F1($PWD)2.626 E F0 -.25(va)2.626 G .126
+(riable, which holds the shell').25 F 2.626(si)-.55 G .126(dea of)-2.626
+F .366(the current w)72 546 R .366(orking directory)-.1 F 2.866(,d)-.65
+G .367
+(epends on the path used to reach the directory rather than its ph)
+-2.866 F .367(ysical loca-)-.05 F
+(tion in the local \214le system hierarch)72 558 Q 3.8 -.65(y. F)-.05 H
+(or e).5 E(xample:)-.15 E F3 6($c)97 576 S 6(d/)-6 G(usr/local/bin)-6 E
+6($e)97 588 S(cho $PWD)-6 E(/usr/local/bin)97 600 Q 6($p)97 612 S(wd)-6
+E(/usr/local/bin)97 624 Q 6($/)97 636 S(bin/pwd)-6 E
+(/net/share/sun4/local/bin)97 648 Q 6($c)97 660 S 6(d.)-6 G(.)-6 E 6($p)
+97 672 S(wd)-6 E(/usr/local)97 684 Q 6($/)97 696 S(bin/pwd)-6 E
+(/net/share/sun4/local)97 708 Q 6($c)97 720 S 6(d.)-6 G(.)-6 E EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-8-)282.17 48 Q/F1 10/Courier@0 SF 6($p)97 84 S
+(wd)-6 E(/usr)97 96 Q 6($/)97 108 S(bin/pwd)-6 E(/usr)97 120 Q F0 .3(On\
+e problem with this, of course, arises when programs that do not unders\
+tand the shell')72 141.6 R 2.8(sl)-.55 G .3(ogical notion of)-2.8 F .217
+(the \214le system interpret \231..)72 153.6 R 2.718<9a64>-.7 G(if)
+-2.718 E(ferently)-.25 E 5.218(.T)-.65 G .218
+(his generally happens when Bash completes \214lenames containing)-5.218
+F(\231..)72 165.6 Q 3.384<9a61>-.7 G .884
+(ccording to a logical hierarch)-3.384 F 3.384(yw)-.05 G .884
+(hich does not correspond to their ph)-3.384 F .883(ysical location.)
+-.05 F -.15(Fo)5.883 G 3.383(ru).15 G .883(sers who)-3.383 F
+(\214nd this troublesome, a corresponding)72 177.6 Q/F2 10
+/Times-Italic@0 SF(physical)2.5 E F0(vie)2.5 E 2.5(wo)-.25 G 2.5(ft)-2.5
+G(he \214le system is a)-2.5 E -.25(va)-.2 G(ilable:).25 E F1 6($c)97
+195.6 S 6(d/)-6 G(usr/local/bin)-6 E 6($p)97 207.6 S(wd)-6 E
+(/usr/local/bin)97 219.6 Q 6($s)97 231.6 S(et -o physical)-6 E 6($p)97
+243.6 S(wd)-6 E(/net/share/sun4/local/bin)97 255.6 Q/F3 10/Times-Bold@0
+SF 2.5(4.10. Inter)72 285.6 R(nationalization)-.15 E F0 .145
+(One of the most signi\214cant impro)97 301.2 R -.15(ve)-.15 G .145
+(ments in v).15 F .145(ersion 1.13 of Bash w)-.15 F .145
+(as the change to \231eight-bit clean-)-.1 F 2.933(liness\232. Pre)72
+313.2 R .433(vious v)-.25 F .432
+(ersions used the eighth bit of characters to mark whether or not the)
+-.15 F 2.932(yw)-.15 G .432(ere quoted when)-2.932 F 1.495(performing w)
+72 325.2 R 1.495(ord e)-.1 F 3.995(xpansions. While)-.15 F 1.495
+(this did not af)3.995 F 1.496
+(fect the majority of users, most of whom used only)-.25 F(se)72 337.2 Q
+-.15(ve)-.25 G 1.236(n-bit ASCII characters, some found it con\214ning.)
+.15 F(Be)6.236 E 1.236(ginning with v)-.15 F 1.236
+(ersion 1.13, Bash implemented a)-.15 F(dif)72 349.2 Q .02(ferent quoti\
+ng mechanism that did not alter the eighth bit of characters.)-.25 F
+.021(This allo)5.021 F .021(wed Bash to manipulate)-.25 F .427
+(\214les with \231odd\232 characters in their names, b)72 361.2 R .427
+(ut did nothing to help users enter those names, so v)-.2 F .426
+(ersion 1.13)-.15 F 1.458
+(introduced changes to readline that made it eight-bit clean as well.)72
+373.2 R 1.458(Options e)6.458 F 1.458(xist that force readline to)-.15 F
+.744(attach no special signi\214cance to characters with the eighth bit\
+ set \(the def)72 385.2 R .744(ault beha)-.1 F .744(vior is to con)-.2 F
+-.15(ve)-.4 G .744(rt these).15 F .641(characters to meta-pre\214x)72
+397.2 R .641(ed k)-.15 F .941 -.15(ey s)-.1 H .642
+(equences\) and to output these characters without con).15 F -.15(ve)-.4
+G .642(rsion to meta-pre-).15 F<8c78>72 409.2 Q .008(ed sequences.)-.15
+F .007(These changes, along with the e)5.007 F .007(xpansion of k)-.15 F
+-.15(ey)-.1 G .007(maps to a full eight bits, enable readline to).15 F
+-.1(wo)72 421.2 S(rk with most of the ISO-8859 f).1 E
+(amily of character sets, used by man)-.1 E 2.5(yE)-.15 G
+(uropean countries.)-2.5 E F3 2.5(4.11. POSIX)72 445.2 R(Mode)2.5 E F0
+.584(Although Bash is intended to be POSIX.2 conformant, there are area\
+s in which the def)97 460.8 R .584(ault beha)-.1 F(vior)-.2 E .463
+(is not compatible with the standard.)72 472.8 R -.15(Fo)5.463 G 2.962
+(ru).15 G .462(sers who wish to operate in a strict POSIX.2 en)-2.962 F
+.462(vironment, Bash)-.4 F .505(implements a)72 484.8 R F2 .505
+(POSIX mode)3.005 F F0 5.505(.W)C .505(hen this mode is acti)-5.505 F
+-.15(ve)-.25 G 3.005(,B).15 G .505(ash modi\214es its def)-3.005 F .505
+(ault operation where it dif)-.1 F(fers)-.25 E .267
+(from POSIX.2 to match the standard.)72 496.8 R .266
+(POSIX mode is entered when Bash is started with the)5.267 F F3(-posix)
+2.766 E F0(option.)2.766 E .149(This feature is also a)72 508.8 R -.25
+(va)-.2 G .149(ilable as an option to the).25 F F3(set)2.649 E F0 -.2
+(bu)2.649 G(iltin,).2 E F3 .149(set -o posix)2.649 F F0 5.149(.F)C .149
+(or compatibility with other GNU)-5.299 F(softw)72 520.8 Q 4.02(are tha\
+t attempts to be POSIX.2 compliant, Bash also enters POSIX mode if the \
+v)-.1 F(ariable)-.25 E F3($POSIXL)72 532.8 Q(Y_CORRECT)-.92 E F0 5.824
+(is set when Bash is started or assigned a v)8.324 F 5.825
+(alue during e)-.25 F -.15(xe)-.15 G(cution.).15 E F3($POSIX_PED)72
+544.8 Q(ANTIC)-.35 E F0 .27
+(is accepted as well, to be compatible with some older GNU utilities.)
+2.77 F .27(When Bash is)5.27 F .506(started in POSIX mode, for e)72
+556.8 R .506(xample, it sources the \214le named by the v)-.15 F .507
+(alue of)-.25 F F3($ENV)3.007 E F0 .507(rather than the \231nor)3.007 F
+(-)-.2 E(mal\232 startup \214les, and does not allo)72 568.8 Q 2.5(wr)
+-.25 G(eserv)-2.5 E(ed w)-.15 E(ords to be aliased.)-.1 E F3 2.5(5. New)
+72 592.8 R -.25(Fe)2.5 G(atur).25 E(es and Futur)-.18 E 2.5(eP)-.18 G
+(lans)-2.5 E F0 1.632(There are se)97 608.4 R -.15(ve)-.25 G 1.632
+(ral features introduced in the current v).15 F 1.631(ersion of Bash, v)
+-.15 F 1.631(ersion 1.14, and a number)-.15 F .241
+(under consideration for future releases.)72 620.4 R .242
+(This section will brie\215y detail the ne)5.242 F 2.742(wf)-.25 G .242
+(eatures in v)-2.742 F .242(ersion 1.14 and)-.15 F(describe se)72 632.4
+Q -.15(ve)-.25 G(ral features that may appear in later v).15 E(ersions.)
+-.15 E F3 2.5(5.1. New)72 656.4 R -.25(Fe)2.5 G(atur).25 E
+(es in Bash-1.14)-.18 E F0 .884(The ne)97 672 R 3.384(wf)-.25 G .884
+(eatures a)-3.384 F -.25(va)-.2 G .884(ilable in Bash-1.14 answer se).25
+F -.15(ve)-.25 G .883(ral of the most common requests for enhance-).15 F
+2.931(ments. Most)72 684 R(notably)2.931 E 2.931(,t)-.65 G .432(here is\
+ a mechanism for including non-visible character sequences in prompts, \
+such)-2.931 F .136
+(as those which cause a terminal to print characters in dif)72 696 R
+.135(ferent colors or in standout mode.)-.25 F .135(There w)5.135 F .135
+(as noth-)-.1 F .558(ing pre)72 708 R -.15(ve)-.25 G .558
+(nting the use of these sequences in earlier v).15 F .559(ersions, b)
+-.15 F .559(ut the readline redisplay algorithm assumed)-.2 F
+(each character occupied ph)72 720 Q(ysical screen space and w)-.05 E
+(ould wrap lines prematurely)-.1 E(.)-.65 E EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-9-)282.17 48 Q .13(Readline has a fe)97 84 R
+2.63(wn)-.25 G .63 -.25(ew va)-2.63 H .13(riables, se).25 F -.15(ve)-.25
+G .13(ral ne).15 F 2.63(wb)-.25 G .13
+(indable commands, and some additional emacs mode)-2.63 F(def)72 96 Q
+.918(ault k)-.1 F 1.218 -.15(ey b)-.1 H 3.418(indings. A).15 F(ne)3.418
+E 3.418(wh)-.25 G .919(istory search mode has been implemented: in this\
+ mode, readline searches)-3.418 F .336(the history for lines be)72 108 R
+.336(ginning with the characters between the be)-.15 F .336
+(ginning of the current line and the cursor)-.15 F(.)-.55 E .555(The e)
+72 120 R .556(xisting readline incremental search commands no longer ma\
+tch identical lines more than once.)-.15 F(File-)5.556 E 1.979
+(name completion no)72 132 R 4.479(we)-.25 G 1.979(xpands v)-4.629 F
+1.979(ariables in directory names.)-.25 F 1.978(The history e)6.978 F
+1.978(xpansion f)-.15 F 1.978(acilities are no)-.1 F(w)-.25 E 1.449
+(nearly completely csh-compatible: missing modi\214ers ha)72 144 R 1.749
+-.15(ve b)-.2 H 1.449(een added and history substitution has been).15 F
+-.15(ex)72 156 S(tended.).15 E(Se)97 171.6 Q -.15(ve)-.25 G .474
+(ral of the features described earlier).15 F 2.973(,s)-.4 G .473(uch as)
+-2.973 F/F1 10/Times-Bold@0 SF .473(set -o posix)2.973 F F0(and)2.973 E
+F1($POSIX_PED)2.973 E(ANTIC)-.35 E F0 2.973(,a)C .473(re ne)-2.973 F
+2.973(wi)-.25 G(n)-2.973 E -.15(ve)72 183.6 S .106(rsion 1.14.).15 F
+.106(There is a ne)5.106 F 2.606(ws)-.25 G .106(hell v)-2.606 F
+(ariable,)-.25 E F1(OSTYPE)2.606 E F0 2.606(,t)C 2.606(ow)-2.606 G .106
+(hich Bash assigns a v)-2.606 F .106(alue that identi\214es the v)-.25 F
+(er)-.15 E(-)-.2 E 1.38(sion of)72 195.6 R/F2 9/Times-Roman@0 SF(UNIX)
+3.88 E F0(it')3.88 E 3.879(sr)-.55 G 1.379(unning on \(great for puttin\
+g architecture-speci\214c binary directories into the)-3.879 F F1($P)
+3.879 E -.95(AT)-.74 G(H).95 E F0(\).)A -1 -.8(Tw o)72 207.6 T -.25(va)
+6.215 G 2.915(riables ha).25 F 3.215 -.15(ve b)-.2 H 2.915(een renamed:)
+.15 F F1($HISTCONTR)5.416 E(OL)-.3 E F0(replaces)5.416 E F1
+($history_contr)5.416 E(ol)-.18 E F0 5.416(,a)C(nd)-5.416 E F1
+($HOSTFILE)5.416 E F0(replaces)72 219.6 Q F1
+($hostname_completion_\214le)2.521 E F0 5.021(.I)C 2.521(nb)-5.021 G
+.021(oth cases, the old names are accepted for backw)-2.521 F .02
+(ards compatibil-)-.1 F(ity)72 231.6 Q 5.788(.T)-.65 G .788(he ksh)
+-5.788 F/F3 10/Times-Italic@0 SF(select)3.288 E F0 .788
+(construct, which allo)3.288 F .788
+(ws the generation of simple menus, has been implemented.)-.25 F(Ne)
+5.788 E(w)-.25 E 1.496(capabilities ha)72 243.6 R 1.796 -.15(ve b)-.2 H
+1.496(een added to e).15 F 1.495(xisting v)-.15 F(ariables:)-.25 E F1
+($auto_r)3.995 E(esume)-.18 E F0 1.495(can no)3.995 F 3.995(wt)-.25 G
+(ak)-3.995 E 3.995(ev)-.1 G 1.495(alues of)-4.245 F F3 -.2(ex)3.995 G
+(act).2 E F0(or)3.995 E F3(sub-)3.995 E(string)72 255.6 Q F0 4.843(,a)C
+(nd)-4.843 E F1($HISTCONTR)4.843 E(OL)-.3 E F0 2.343(understands the v)
+4.843 F(alue)-.25 E F3(ignor)4.844 E(eboth)-.37 E F0 4.844(,w)C 2.344
+(hich combines the tw)-4.844 F 4.844(op)-.1 G(re)-4.844 E(viously)-.25 E
+1.556(acceptable v)72 267.6 R 4.056(alues. The)-.25 F F1(dirs)4.056 E F0
+-.2(bu)4.056 G 1.556(iltin has acquired options to print out speci\214c\
+ members of the directory).2 F 3.062(stack. The)72 279.6 R F1($nolinks)
+3.062 E F0 -.25(va)3.062 G .562(riable, which forces a ph).25 F .562
+(ysical vie)-.05 F 3.062(wo)-.25 G 3.062(ft)-3.062 G .563
+(he \214le system, has been superseded by the)-3.062 F F1<ad50>72 291.6
+Q F0 .494(option to the)2.994 F F1(set)2.994 E F0 -.2(bu)2.994 G .494
+(iltin \(equi).2 F -.25(va)-.25 G .494(lent to).25 F F1 .494(set -o ph)
+2.994 F(ysical)-.15 E F0 .493(\); the v)B .493
+(ariable is retained for backw)-.25 F .493(ards compati-)-.1 F(bility)72
+303.6 Q 5.196(.T)-.65 G .196(he v)-5.196 F .196
+(ersion string contained in)-.15 F F1($B)2.696 E(ASH_VERSION)-.3 E F0
+(no)2.696 E 2.696(wi)-.25 G .196(ncludes an indication of the patch le)
+-2.696 F -.15(ve)-.25 G 2.696(la).15 G(s)-2.696 E .85(well as the \231b)
+72 315.6 R .85(uild v)-.2 F 3.35(ersion\232. Some)-.15 F .85
+(little-used features ha)3.35 F 1.15 -.15(ve b)-.2 H .85(een remo).15 F
+-.15(ve)-.15 G 3.35(d: the).15 F F1(by)3.35 E(e)-.1 E F0(synon)3.35 E
+.85(ym for)-.15 F F1(exit)3.35 E F0(and)3.35 E(the)72 327.6 Q F1($NO_PR)
+3.498 E(OMPT_V)-.3 E(ARS)-1.35 E F0 -.25(va)3.498 G .998
+(riable are gone.).25 F .998(There is no)5.998 F 3.498(wa)-.25 G 3.498
+(no)-3.498 G -2.19 -.18(rg a)-3.498 H .998
+(nized test suite that can be run as a).18 F(re)72 339.6 Q
+(gression test when b)-.15 E(uilding a ne)-.2 E 2.5(wv)-.25 G
+(ersion of Bash.)-2.65 E 1.696(The documentation has been thoroughly o)
+97 355.2 R -.15(ve)-.15 G 1.696(rhauled: there is a ne).15 F 4.196(wm)
+-.25 G 1.695(anual page on the readline)-4.196 F .467(library and the)72
+367.2 R F3(info)2.967 E F0 .467
+(\214le has been updated to re\215ect the current v)2.967 F 2.968
+(ersion. As)-.15 F(al)2.968 E -.1(wa)-.1 G .468(ys, as man).1 F 2.968
+(yb)-.15 G .468(ugs as possi-)-3.168 F(ble ha)72 379.2 Q .3 -.15(ve b)
+-.2 H(een \214x).15 E(ed, although some surely remain.)-.15 E F1 2.5
+(5.2. Other)72 403.2 R -.25(Fe)2.5 G(atur).25 E(es)-.18 E F0 1.68
+(There are a fe)97 418.8 R 4.18(wf)-.25 G 1.68
+(eatures that I hope to include in later Bash releases.)-4.18 F 1.68
+(Some are based on w)6.68 F(ork)-.1 E(already done in other shells.)72
+430.8 Q .958(In addition to simple v)97 446.4 R .959(ariables, a future\
+ release of Bash will include one-dimensional arrays, using)-.25 F .206
+(the ksh implementation of arrays as a model.)72 458.4 R .205
+(Additions to the ksh syntax, such as)5.205 F F3(varname)2.705 E F0 .205
+(=\( ... \) to assign)B 2.587(al)72 470.4 S .087(ist of w)-2.587 F .088
+(ords directly to an array and a mechanism to allo)-.1 F 2.588(wt)-.25 G
+(he)-2.588 E F1 -.18(re)2.588 G(ad).18 E F0 -.2(bu)2.588 G .088
+(iltin to read a list of v).2 F .088(alues directly)-.25 F .092
+(into an array)72 482.4 R 2.592(,w)-.65 G .092(ould be desirable.)-2.692
+F(Gi)5.092 E -.15(ve)-.25 G 2.592(nt).15 G .092(hose e)-2.592 F .092
+(xtensions, the ksh)-.15 F F1 .092(set \255A)2.592 F F0 .091
+(syntax may not be w)2.591 F .091(orth support-)-.1 F(ing \(the)72 494.4
+Q F1<ad41>2.5 E F0(option assigns a list of v)2.5 E(alues to an array)
+-.25 E 2.5(,b)-.65 G(ut is a rather peculiar special case\).)-2.7 E .76
+(Some shells include a means of)97 510 R F3(pr)3.26 E -.1(og)-.45 G -.15
+(ra).1 G(mmable).15 E F0 -.1(wo)3.26 G .76
+(rd completion, where the user speci\214es on a per).1 F(-)-.2 E .163
+(command basis ho)72 522 R 2.663(wt)-.25 G .163(he ar)-2.663 F .163(gum\
+ents of the command are to be treated when completion is attempted: as \
+\214le-)-.18 F .194(names, hostnames, e)72 534 R -.15(xe)-.15 G .194
+(cutable \214les, and so on.).15 F .195
+(The other aspects of the current Bash implementation could)5.195 F .482
+(remain as-is; the e)72 546 R .482(xisting heuristics w)-.15 F .481
+(ould still be v)-.1 F 2.981(alid. Only)-.25 F .481
+(when completing the ar)2.981 F .481(guments to a simple)-.18 F
+(command w)72 558 Q(ould the programmable completion be in ef)-.1 E
+(fect.)-.25 E .479(It w)97 573.6 R .479(ould also be nice to gi)-.1 F
+.779 -.15(ve t)-.25 H .479(he user \214ner).15 F .479
+(-grained control o)-.2 F -.15(ve)-.15 G 2.98(rw).15 G .48
+(hich commands are sa)-2.98 F -.15(ve)-.2 G 2.98(do).15 G .48(nto the)
+-2.98 F 1.786(history list.)72 585.6 R 1.786(One proposal is for a v)
+6.786 F 1.786(ariable, tentati)-.25 F -.15(ve)-.25 G 1.786(ly named).15
+F F1(HISTIGNORE)4.286 E F0 4.285(,w)C 1.785(hich w)-4.285 F 1.785
+(ould contain a)-.1 F .496(colon-separated list of commands.)72 597.6 R
+.496(Lines be)5.496 F .496
+(ginning with these commands, after the restrictions of)-.15 F F1($HIST)
+2.997 E(-)-.92 E(CONTR)72 609.6 Q(OL)-.3 E F0(ha)2.65 E .45 -.15(ve b)
+-.2 H .15(een applied, w).15 F .15
+(ould not be placed onto the history list.)-.1 F .15
+(The shell pattern-matching capa-)5.15 F(bilities could also be a)72
+621.6 Q -.25(va)-.2 G(ilable when specifying the contents of).25 E F1
+($HISTIGNORE)2.5 E F0(.)A .729(One thing that ne)97 637.2 R .729
+(wer shells such as)-.25 F F1(wksh)3.229 E F0 .729(\(also kno)3.229 F
+.729(wn as)-.25 F F1(dtksh)3.23 E F0 3.23(\)p)C(ro)-3.23 E .73
+(vide is a command to dynami-)-.15 F 1.189
+(cally load code implementing additional b)72 649.2 R 1.189
+(uiltin commands into a running shell.)-.2 F 1.188(This ne)6.188 F 3.688
+(wb)-.25 G 1.188(uiltin w)-3.888 F(ould)-.1 E(tak)72 661.2 Q 2.875(ea)
+-.1 G 2.875(no)-2.875 G .375
+(bject \214le or shared library implementing the \231body\232 of the b)
+-2.875 F .375(uiltin \()-.2 F F3(xxx_b)A(uiltin\(\))-.2 E F0 .375
+(for those f)2.875 F(amiliar)-.1 E .052
+(with Bash internals\) and a structure containing the name of the ne)72
+673.2 R 2.552(wc)-.25 G .051(ommand, the function to call when the)
+-2.552 F(ne)72 685.2 Q 3.458(wb)-.25 G .958(uiltin is in)-3.658 F -.2
+(vo)-.4 G -.1(ke).2 G 3.458(d\().1 G .959
+(presumably de\214ned in the shared object speci\214ed as an ar)-3.458 F
+.959(gument\), and the docu-)-.18 F 1.352
+(mentation to be printed by the)72 697.2 R F1(help)3.851 E F0 1.351
+(command \(possibly present in the shared object as well\).)3.851 F
+1.351(It w)6.351 F(ould)-.1 E(manage the details of e)72 709.2 Q
+(xtending the internal table of b)-.15 E(uiltins.)-.2 E EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-10-)279.67 48 Q 3.291(Af)97 84 S 1.291 -.25
+(ew o)-3.291 H .791(ther b).25 F .791(uiltins w)-.2 F .791
+(ould also be desirable: tw)-.1 F 3.291(oa)-.1 G .791(re the POSIX.2)
+-3.291 F/F1 10/Times-Bold@0 SF(getconf)3.292 E F0 .792
+(command, which prints)3.292 F 1.412(the v)72 96 R 1.412
+(alues of system con\214guration v)-.25 F 1.411
+(ariables de\214ned by POSIX.2, and a)-.25 F F1(diso)3.911 E(wn)-.1 E F0
+-.2(bu)3.911 G 1.411(iltin, which causes a).2 F 1.347
+(shell running with job control acti)72 108 R 1.647 -.15(ve t)-.25 H
+3.847<6f99>.15 G(for)-3.847 E 1.347
+(get about\232 one or more background jobs in its internal jobs)-.18 F
+3.465(table. Using)72 120 R F1(getconf)3.465 E F0 3.465(,f)C .965(or e)
+-3.465 F .965(xample, a user could retrie)-.15 F 1.264 -.15(ve a v)-.25
+H .964(alue for)-.1 F F1($P)3.464 E -.95(AT)-.74 G(H).95 E F0 .964
+(guaranteed to \214nd all of the)3.464 F .884
+(POSIX standard utilities, or \214nd out ho)72 132 R 3.385(wl)-.25 G
+.885
+(ong \214lenames may be in the \214le system containing a speci\214ed)
+-3.385 F(directory)72 144 Q(.)-.65 E 1.521
+(There are no implementation timetables for an)97 159.6 R 4.021(yo)-.15
+G 4.021(ft)-4.021 G 1.52(hese features, nor are there concrete plans to)
+-4.021 F(include them.)72 171.6 Q(If an)5 E(yone has comments on these \
+proposals, feel free to send me electronic mail.)-.15 E F1 2.5
+(6. Re\215ections)72 195.6 R(and Lessons Lear)2.5 E(ned)-.15 E F0 .433
+(The lesson that has been repeated most often during Bash de)97 211.2 R
+-.15(ve)-.25 G .433(lopment is that there are dark corners).15 F .181
+(in the Bourne shell, and people use all of them.)72 223.2 R .18
+(In the original description of the Bourne shell, quoting and)5.181 F
+.073(the shell grammar are both poorly speci\214ed and incomplete; subs\
+equent descriptions ha)72 235.2 R .373 -.15(ve n)-.2 H .073
+(ot helped much.).15 F 1.856(The grammar presented in Bourne')72 247.2 R
+4.356(sp)-.55 G 1.856(aper describing the shell distrib)-4.356 F 1.855
+(uted with the Se)-.2 F -.15(ve)-.25 G 1.855(nth Edition of).15 F/F2 9
+/Times-Roman@0 SF(UNIX)72 259.2 Q F0 2.5<8769>C 2.5(ss)-2.5 G 2.5(of)
+-2.5 G(ar of)-2.6 E 2.5(ft)-.25 G(hat it does not allo)-2.5 E 2.5(wt)
+-.25 G(he command)-2.5 E/F3 10/Courier@0 SF(who|wc)2.5 E F0 5(.I)C 2.5
+(nf)-5 G(act, as T)-2.6 E(om Duf)-.8 E 2.5(fs)-.25 G(tates:)-2.5 E 1.375
+(Nobody really kno)97 274.8 R 1.375(ws what the Bourne shell')-.25 F
+3.875(sg)-.55 G 1.375(rammar is.)-3.875 F(Ev)6.376 E 1.376(en e)-.15 F
+1.376(xamination of the source)-.15 F(code is little help.\210)97 286.8
+Q .382(The POSIX.2 standard includes a)72 302.4 R/F4 10/Times-Italic@0
+SF(yacc)2.882 E F0 .382
+(grammar that comes close to capturing the Bourne shell')2.882 F 2.882
+(sb)-.55 G(eha)-2.882 E(vior)-.2 E(,)-.4 E -.2(bu)72 314.4 S 3.246(ti).2
+G 3.246(td)-3.246 G(isallo)-3.246 E .747(ws some constructs which sh ac\
+cepts without complaint \255 and there are scripts out there that)-.25 F
+.501(use them.)72 326.4 R .501(It took a fe)5.501 F 3.001(wv)-.25 G .501
+(ersions and se)-3.151 F -.15(ve)-.25 G .501(ral b).15 F .5
+(ug reports before Bash implemented sh-compatible quoting,)-.2 F .279
+(and there are still some \231le)72 338.4 R -.05(ga)-.15 G .279
+(l\232 sh constructs which Bash \215ags as syntax errors.).05 F .28
+(Complete sh compatibility)5.28 F(is a tough nut.)72 350.4 Q 1.231
+(The shell is bigger and slo)97 366 R 1.231(wer than I w)-.25 F 1.231
+(ould lik)-.1 F 1.23(e, though the current v)-.1 F 1.23
+(ersion is substantially f)-.15 F(aster)-.1 E .086(than pre)72 378 R
+(viously)-.25 E 5.086(.T)-.65 G .087
+(he readline library could stand a substantial re)-5.086 F 2.587
+(write. A)-.25 F .087(hand-written parser to replace the)2.587 F
+(current)72 390 Q F4(yacc)2.978 E F0 .478(-generated one w)B .477
+(ould probably result in a speedup, and w)-.1 F .477(ould solv)-.1 F
+2.977(eo)-.15 G .477(ne glaring problem:)-2.977 F(the)5.477 E .384
+(shell could parse commands in \231$\(...\)\232 constructs as the)72 402
+R 2.884(ya)-.15 G .385
+(re entered, rather than reporting errors when the)-2.884 F
+(construct is e)72 414 Q(xpanded.)-.15 E 1.064(As al)97 429.6 R -.1(wa)
+-.1 G 1.064(ys, there is some chaf).1 F 3.564(ft)-.25 G 3.564(og)-3.564
+G 3.564(ow)-3.564 G 1.064(ith the wheat.)-3.564 F 1.063
+(Areas of duplicated functionality need to be)6.063 F .382(cleaned up.)
+72 441.6 R .382(There are se)5.382 F -.15(ve)-.25 G .382
+(ral cases where Bash treats a v).15 F .382
+(ariable specially to enable functionality a)-.25 F -.25(va)-.2 G
+(ilable).25 E .185(another w)72 453.6 R .185(ay \()-.1 F F1($notify)A F0
+(vs.)2.684 E F1 .184(set -o notify)5.184 F F0(and)2.684 E F1($nolinks)
+2.684 E F0(vs.)2.684 E F1 .184(set -o ph)2.684 F(ysical)-.15 E F0 2.684
+(,f)C .184(or instance\); the special treatment)-2.684 F 3.421(of the v)
+72 465.6 R 3.421(ariable name should probably be remo)-.25 F -.15(ve)
+-.15 G 5.921(d. A).15 F(fe)5.921 E 5.921(wm)-.25 G 3.422
+(ore things could stand remo)-5.921 F -.25(va)-.15 G 3.422(l; the).25 F
+F1($allo)72 477.6 Q(w_null_glob_expansion)-.1 E F0(and)4.112 E F1
+($glob_dot_\214lenames)4.112 E F0 -.25(va)4.111 G 1.611
+(riables are of particularly questionable v).25 F(alue.)-.25 E(The)72
+489.6 Q F1($[...])3.977 E F0 1.477(arithmetic e)3.977 F -.25(va)-.25 G
+1.478(luation syntax is redundant no).25 F 3.978(wt)-.25 G 1.478
+(hat the POSIX-mandated)-3.978 F F1($\(\(...\)\))3.978 E F0 1.478
+(construct has)3.978 F .326(been implemented, and could be deleted.)72
+501.6 R .326(It w)5.326 F .326(ould be nice if the te)-.1 F .326
+(xt output by the)-.15 F F1(help)2.825 E F0 -.2(bu)2.825 G .325
+(iltin were e).2 F(xter)-.15 E(-)-.2 E .061
+(nal to the shell rather than compiled into it.)72 513.6 R .062
+(The beha)5.062 F .062(vior enabled by)-.2 F F1
+($command_oriented_history)2.562 E F0 2.562(,w)C(hich)-2.562 E 1.125
+(causes the shell to attempt to sa)72 525.6 R 1.424 -.15(ve a)-.2 H
+1.124(ll lines of a multi-line command in a single history entry).15 F
+3.624(,s)-.65 G 1.124(hould be)-3.624 F(made the def)72 537.6 Q
+(ault and the v)-.1 E(ariable remo)-.25 E -.15(ve)-.15 G(d.).15 E F1 2.5
+(7. A)72 561.6 R -.1(va)-1 G(ilability).1 E F0 .047
+(As with all other GNU softw)97 577.2 R .047(are, Bash is a)-.1 F -.25
+(va)-.2 G .047(ilable for anon).25 F .047(ymous FTP from)-.15 F F4(pr)
+2.547 E(ep.ai.mit.edu:/pub/gnu)-.37 E F0 1.05(and from other GNU softw)
+72 589.2 R 1.05(are mirror sites.)-.1 F 1.049(The current v)6.049 F
+1.049(ersion is in)-.15 F F4(bash-1.14.1.tar)3.549 E(.gz)-1.11 E F0
+1.049(in that directory)3.549 F(.)-.65 E(Use)72 601.2 Q F4(ar)5.965 E
+-.15(ch)-.37 G(ie).15 E F0 3.465(to \214nd the nearest archi)5.965 F
+3.766 -.15(ve s)-.25 H 5.966(ite. The).15 F 3.466(latest v)5.966 F 3.466
+(ersion is al)-.15 F -.1(wa)-.1 G 3.466(ys a).1 F -.25(va)-.2 G 3.466
+(ilable for FTP from).25 F F4(bash.CWR)72 613.2 Q -.25(U.)-.4 G
+(Edu:/pub/dist.).25 E F0(Bash documentation is a)5 E -.25(va)-.2 G
+(ilable for FTP from).25 E F4(bash.CWR)2.5 E -.25(U.)-.4 G
+(Edu:/pub/bash.).25 E F0 1.169(The Free Softw)97 628.8 R 1.169(are F)-.1
+F 1.169(oundation sells tapes and CD-R)-.15 F 1.168
+(OMs containing Bash; send electronic mail to)-.4 F F3
+(gnu@prep.ai.mit.edu)72 640.8 Q F0(or call)2.5 E F3(+1-617-876-3296)2.5
+E F0(for more information.)2.5 E .694(Bash is also distrib)97 656.4 R
+.694(uted with se)-.2 F -.15(ve)-.25 G .694(ral v).15 F .694(ersions of)
+-.15 F F2(UNIX)3.194 E F0 .694(-compatible systems.)B .695
+(It is included as /bin/sh)5.694 F .948(and /bin/bash on se)72 668.4 R
+-.15(ve)-.25 G .948(ral Linux distrib).15 F .948
+(utions \(more about the dif)-.2 F .948
+(ference in a moment\), and as contrib)-.25 F(uted)-.2 E .32 LW 144
+676.4 72 676.4 DL/F5 8/Times-Roman@0 SF .781
+(\207S. R. Bourne, \231UNIX T)72 688.2 R .781(ime-Sharing System:)-.28 F
+.781(The UNIX Shell\232,)4.781 F/F6 8/Times-Italic@0 SF .78
+(Bell System T)2.78 F(ec)-.736 E .78(hnical J)-.12 F(ournal)-.2 E F5
+2.78(,5)C .78(7\(6\), July-)-2.78 F(August, 1978, pp. 1971-1990.)72
+698.2 Q<8854>72 710 Q .431(om Duf)-.64 F .431
+(f, \231Rc \255 A Shell for Plan 9 and)-.2 F/F7 7/Times-Roman@0 SF(UNIX)
+2.432 E F5(systems\232,)2.432 E F6(Pr)2.432 E .432
+(oc. of the Summer 1990 EUUG Confer)-.36 F(ence)-.296 E F5 2.432(,L)C
+(on-)-2.432 E(don, July)72 720 Q 2(,1)-.52 G(990, pp. 21-33.)-2 E EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-11-)279.67 48 Q(softw)72 84 Q(are in BSDI')-.1
+E 2.5(sB)-.55 G(SD/386* and FreeBSD.)-2.5 E .598(The Linux distrib)97
+99.6 R .598(ution deserv)-.2 F .598(es special mention.)-.15 F .598
+(There are tw)5.598 F 3.099(oc)-.1 G .599
+(on\214gurations included in the stan-)-3.099 F .733(dard Bash distrib)
+72 111.6 R .732(ution: a \231normal\232 con\214guration, in which all o\
+f the standard features are included, and a)-.2 F .519(\231minimal\232 \
+con\214guration, which omits job control, aliases, history and command \
+line editing, the directory)72 123.6 R .886(stack and)72 135.6 R/F1 10
+/Times-Bold@0 SF(pushd/popd/dirs,)3.386 E F0 .886(process substitution,\
+ prompt string special character decoding, and the)3.386 F/F2 10
+/Times-Italic@0 SF(select)3.385 E F0 3.368(construct. This)72 147.6 R
+.868(minimal v)3.368 F .869
+(ersion is designed to be a drop-in replacement for the traditional)-.15
+F/F3 9/Times-Roman@0 SF(UNIX)3.369 E F0(/bin/sh,)3.369 E
+(and is included as the Linux /bin/sh in se)72 159.6 Q -.15(ve)-.25 G
+(ral packagings.).15 E F1 2.5(8. Conclusion)72 183.6 R F0 .8
+(Bash is a w)97 199.2 R(orth)-.1 E 3.3(ys)-.05 G .8(uccessor to sh.)-3.3
+F .8(It is suf)5.8 F .8(\214ciently portable to run on nearly e)-.25 F
+-.15(ve)-.25 G .8(ry v).15 F .8(ersion of)-.15 F F3(UNIX)3.299 E F0 .31
+(from 4.3 BSD to SVR4.2, and se)72 211.2 R -.15(ve)-.25 G(ral).15 E F3
+(UNIX)2.81 E F0 -.1(wo)2.81 G(rkalik).1 E 2.81(es. It)-.1 F .311(is rob)
+2.81 F .311(ust enough to replace sh on most of those)-.2 F 1.515
+(systems, and pro)72 223.2 R 1.515(vides more functionality)-.15 F 6.515
+(.I)-.65 G 4.015(th)-6.515 G 1.515(as se)-4.015 F -.15(ve)-.25 G 1.515
+(ral thousand re).15 F 1.515(gular users, and their feedback has)-.15 F
+(helped to mak)72 235.2 Q 2.5(ei)-.1 G 2.5(ta)-2.5 G 2.5(sg)-2.5 G
+(ood as it is today \255 a testament to the bene\214ts of free softw)
+-2.5 E(are.)-.1 E .32 LW 144 708.2 72 708.2 DL/F4 8/Times-Roman@0 SF
+(*BSD/386 is a trademark of Berk)72 720 Q(ele)-.08 E 2(yS)-.12 G(oftw)-2
+E(are Design, Inc.)-.08 E EP
+%%Trailer
+end
+%%EOF
diff --git a/doc/article.txt b/doc/article.txt
new file mode 100644 (file)
index 0000000..c19ff92
--- /dev/null
@@ -0,0 +1,1111 @@
+
+
+
+
+
+
+
+
+
+                   Bash - The GNU shell*
+
+
+                         Chet Ramey
+              Case Western Reserve University
+                      chet@po.cwru.edu
+
+
+
+
+
+
+_\b1.  _\bI_\bn_\bt_\br_\bo_\bd_\bu_\bc_\bt_\bi_\bo_\bn
+
+     _\bB_\ba_\bs_\bh is the shell,  or  command  language  interpreter,
+that  will  appear in the GNU operating system.  The name is
+an acronym for the "Bourne-Again  SHell",  a  pun  on  Steve
+Bourne,  the  author  of  the direct ancestor of the current
+UNIX|\b- shell /_\bb_\bi_\bn/_\bs_\bh, which appeared in the  Seventh  Edition
+Bell Labs Research version of UNIX.
+
+     Bash is an sh-compatible shell that incorporates useful
+features  from  the  Korn shell (ksh) and the C shell (csh),
+described later in this article.  It is ultimately  intended
+to  be  a  conformant implementation of the IEEE POSIX Shell
+and Utilities specification (IEEE Working Group 1003.2).  It
+offers  functional improvements over sh for both interactive
+and programming use.
+
+     While the GNU operating system will most likely include
+a  version  of  the  Berkeley  shell  csh,  Bash will be the
+default shell.  Like other GNU software, Bash is quite port-
+able.  It currently runs on nearly every version of UNIX and
+a few other operating systems -  an  independently-supported
+port  exists  for OS/2, and there are rumors of ports to DOS
+and Windows NT.  Ports to UNIX-like systems such as QNX  and
+Minix are part of the distribution.
+
+     The original author of Bash was Brian Fox, an  employee
+of  the Free Software Foundation.  The current developer and
+maintainer is Chet Ramey, a  volunteer  who  works  at  Case
+Western Reserve University.
+
+_\b2.  _\bW_\bh_\ba_\bt'_\bs _\bP_\bO_\bS_\bI_\bX, _\ba_\bn_\by_\bw_\ba_\by?
+
+     _\bP_\bO_\bS_\bI_\bX is a name originally coined by  Richard  Stallman
+_________________________
+*An earlier version of this  article  appeared  in  The
+Linux Journal.
+|\b- UNIX is a trademark of Bell Laboratories.
+
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 2 -
+
+
+for a family of open system standards based on UNIX.   There
+are  a  number  of  aspects  of UNIX under consideration for
+standardization, from the basic system services at the  sys-
+tem  call  and  C library level to applications and tools to
+system administration and management.  Each  area  of  stan-
+dardization  is  assigned  to  a  working  group in the 1003
+series.
+
+     The  POSIX  Shell  and  Utilities  standard  has   been
+developed by IEEE Working Group 1003.2 (POSIX.2).|\b=  It  con-
+centrates  on  the command interpreter interface and utility
+programs commonly executed from the command line or by other
+programs.   An  initial  version  of  the  standard has been
+approved and published by the IEEE, and  work  is  currently
+underway to update it.  There are four primary areas of work
+in the 1003.2 standard:
+
+o\b+    Aspects of the shell's syntax and command language.   A
+     number  of  special  builtins  such  as _\bc_\bd and _\be_\bx_\be_\bc are
+     being specified as part of the shell, since their func-
+     tionality  usually  cannot be implemented by a separate
+     executable;
+
+o\b+    A set of utilities to be called by  shell  scripts  and
+     applications.   Examples are programs like _\bs_\be_\bd, _\bt_\br, and
+     _\ba_\bw_\bk.  Utilities commonly implemented as shell  builtins
+     are  described  in this section, such as _\bt_\be_\bs_\bt and _\bk_\bi_\bl_\bl.
+     An expansion of this section's scope, termed  the  User
+     Portability   Extension,   or   UPE,  has  standardized
+     interactive programs such as _\bv_\bi and _\bm_\ba_\bi_\bl_\bx;
+
+o\b+    A group of functional interfaces to  services  provided
+     by  the  shell,  such  as  the  traditional  system() C
+     library function.  There are functions to perform shell
+     word expansions, perform filename expansion (_\bg_\bl_\bo_\bb_\bb_\bi_\bn_\bg),
+     obtain values of  POSIX.2  system  configuration  vari-
+     ables,   retrieve   values   of  environment  variables
+     (getenv()), _\ba_\bn_\bd _\bo_\bt_\bh_\be_\br _\bs_\be_\br_\bv_\bi_\bc_\be_\bs;
+
+o\b+    A suite of "development" utilities  such  as  _\bc_\b8_\b9  (the
+     POSIX.2 version of _\bc_\bc), and _\by_\ba_\bc_\bc.
+
+     Bash is concerned  with  the  aspects  of  the  shell's
+behavior defined by POSIX.2.  The shell command language has
+of course been standardized, including the basic  flow  con-
+trol  and  program execution constructs, I/O redirection and
+pipelining, argument handling, variable expansion, and quot-
+ing.   The  _\bs_\bp_\be_\bc_\bi_\ba_\bl  builtins,  which must be implemented as
+part of the shell to provide the desired functionality,  are
+_________________________
+|\b=IEEE, _\bI_\bE_\bE_\bE  _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd  _\bf_\bo_\br  _\bI_\bn_\bf_\bo_\br_\bm_\ba_\bt_\bi_\bo_\bn  _\bT_\be_\bc_\bh_\bn_\bo_\bl_\bo_\bg_\by  --
+_\bP_\bo_\br_\bt_\ba_\bb_\bl_\be  _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg  _\bS_\by_\bs_\bt_\be_\bm  _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be  (_\bP_\bO_\bS_\bI_\bX) _\bP_\ba_\br_\bt _\b2:
+_\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\bt_\bi_\be_\bs, 1992.
+
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 3 -
+
+
+specified as being part of the shell; examples of these  are
+_\be_\bv_\ba_\bl  and _\be_\bx_\bp_\bo_\br_\bt.  Other utilities appear in the sections of
+POSIX.2 not devoted to the shell which are commonly (and  in
+some cases must be) implemented as builtin commands, such as
+_\br_\be_\ba_\bd and  _\bt_\be_\bs_\bt.   POSIX.2  also  specifies  aspects  of  the
+shell's  interactive  behavior as part of the UPE, including
+job control and command line editing.  Interestingly enough,
+only  _\bv_\bi-style line editing commands have been standardized;
+_\be_\bm_\ba_\bc_\bs editing commands were left out due to objections.
+
+     While POSIX.2 includes much of what the shell has trad-
+itionally  provided, some important things have been omitted
+as being "beyond its scope."  There  is,  for  instance,  no
+mention  of a difference between a _\bl_\bo_\bg_\bi_\bn shell and any other
+interactive shell (since POSIX.2 does not  specify  a  login
+program).   No fixed startup files are defined, either - the
+standard does not mention ._\bp_\br_\bo_\bf_\bi_\bl_\be.
+
+_\b3.  _\bB_\ba_\bs_\bi_\bc _\bB_\ba_\bs_\bh _\bf_\be_\ba_\bt_\bu_\br_\be_\bs
+
+     Since the Bourne shell provides Bash with most  of  its
+philosophical  underpinnings,  Bash  inherits  most  of  its
+features and functionality from sh.  Bash implements all  of
+the  traditional sh flow control constructs (_\bf_\bo_\br, _\bi_\bf, _\bw_\bh_\bi_\bl_\be,
+etc.).  All of the Bourne shell  builtins,  including  those
+not  specified  in  the  POSIX.2  standard,  appear in Bash.
+Shell _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs, introduced  in  the  SVR2  version  of  the
+Bourne  shell, are similar to shell scripts, but are defined
+using a special syntax and are executed in the same  process
+as the calling shell.  Bash has shell functions which behave
+in a fashion upward-compatible with sh functions.  There are
+certain shell variables that Bash interprets in the same way
+as sh, such as _\bP_\bS_\b1, _\bI_\bF_\bS, and _\bP_\bA_\bT_\bH.  Bash  implements  essen-
+tially  the  same  grammar, parameter and variable expansion
+semantics, redirection, and quoting  as  the  Bourne  shell.
+Where  differences  appear  between the POSIX.2 standard and
+traditional sh behavior, Bash follows POSIX.
+
+     The Korn Shell (ksh) is  a  descendent  of  the  Bourne
+shell  written at AT&T Bell Laboratories by David Korn|\b-.  It
+provides a number of useful features  that  POSIX  and  Bash
+have adopted.  Many of the interactive facilities in POSIX.2
+have their roots in the ksh: for example, the POSIX and  ksh
+job  control  facilities are nearly identical. Bash includes
+features from the Korn Shell for both  interactive  use  and
+shell programming.  For programming, Bash provides variables
+such as _\bR_\bA_\bN_\bD_\bO_\bM and _\bR_\bE_\bP_\bL_\bY, the _\bt_\by_\bp_\be_\bs_\be_\bt builtin,  the  ability
+to  remove  substrings from variables based on patterns, and
+shell arithmetic.  _\bR_\bA_\bN_\bD_\bO_\bM expands to a  random  number  each
+time it is referenced; assigning a value to _\bR_\bA_\bN_\bD_\bO_\bM seeds the
+_________________________
+|\b-Morris Bolsky and David Korn,  _\bT_\bh_\be  _\bK_\bo_\br_\bn_\bS_\bh_\be_\bl_\bl  _\bC_\bo_\bm_\bm_\ba_\bn_\bd
+_\ba_\bn_\bd _\bP_\br_\bo_\bg_\br_\ba_\bm_\bm_\bi_\bn_\bg _\bL_\ba_\bn_\bg_\bu_\ba_\bg_\be, Prentice Hall, 1989.
+
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 4 -
+
+
+random number generator.  _\bR_\bE_\bP_\bL_\bY is the default variable used
+by  the  _\br_\be_\ba_\bd builtin when no variable names are supplied as
+arguments.  The _\bt_\by_\bp_\be_\bs_\be_\bt builtin is used to define  variables
+and  give them attributes such as readonly.  Bash arithmetic
+allows the evaluation of an expression and the  substitution
+of the result.  Shell variables may be used as operands, and
+the result of an expression may be assigned to  a  variable.
+Nearly  all  of the operators from the C language are avail-
+able, with the same precedence rules:
+\e9     $ echo $((3 + 5 * 32))
+     163
+\e9
+For interactive use, Bash implements ksh-style  aliases  and
+builtins  such  as  _\bf_\bc  (discussed  below)  and  _\bj_\bo_\bb_\bs.  Bash
+aliases allow a string to be substituted for a command name.
+They  can  be  used  to create a mnemonic for a UNIX command
+name (alias del=rm), to expand a single word  to  a  complex
+command (alias news='xterm -g 80x45 -title trn -e trn -e -S1
+-N &'), or to ensure that a command is invoked with a  basic
+set of options (alias ls="/bin/ls -F").
+
+     The C shell (csh)|\b-,  originally  written  by  Bill  Joy
+while  at Berkeley, is widely used and quite popular for its
+interactive facilities.  Bash includes a csh-compatible his-
+tory  expansion  mechanism  ("!  history"), brace expansion,
+access to a stack of directories via the  _\bp_\bu_\bs_\bh_\bd,  _\bp_\bo_\bp_\bd,  and
+_\bd_\bi_\br_\bs  builtins, and tilde expansion, to generate users' home
+directories.  Tilde expansion has also been adopted by  both
+the Korn Shell and POSIX.2.
+
+     There were certain areas in which  POSIX.2  felt  stan-
+dardization  was  necessary,  but no existing implementation
+provided the proper behavior.  The  working  group  invented
+and  standardized  functionality  in these areas, which Bash
+implements.  The _\bc_\bo_\bm_\bm_\ba_\bn_\bd builtin was invented so that  shell
+functions could be written to replace builtins; it makes the
+capabilities of the builtin available to the function.   The
+reserved  word "!" was added to negate the return value of a
+command or pipeline; it was nearly impossible to express "if
+not  x" cleanly using the sh language.  There exist multiple
+incompatible implementations  of  the  _\bt_\be_\bs_\bt  builtin,  which
+tests  files  for  type  and  other  attributes and performs
+arithmetic and string comparisons.  POSIX considered none of
+these  correct,  so  the  standard behavior was specified in
+terms of the number of arguments to  the  command.   POSIX.2
+dictates  exactly  what will happen when four or fewer argu-
+ments are given to _\bt_\be_\bs_\bt, and leaves the  behavior  undefined
+when  more  arguments  are  supplied.  Bash uses the POSIX.2
+_________________________
+|\b-Bill Joy, An Introduction to the C Shell, _\bU_\bN_\bI_\bX  _\bU_\bs_\be_\br'_\bs
+_\bS_\bu_\bp_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\br_\by  _\bD_\bo_\bc_\bu_\bm_\be_\bn_\bt_\bs,  University  of California at
+Berkeley, 1986.
+
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 5 -
+
+
+algorithm, which was conceived by David Korn.
+
+_\b3._\b1.  _\bF_\be_\ba_\bt_\bu_\br_\be_\bs _\bn_\bo_\bt _\bi_\bn _\bt_\bh_\be _\bB_\bo_\bu_\br_\bn_\be _\bS_\bh_\be_\bl_\bl
+
+     There are a number of minor  differences  between  Bash
+and  the  version  of  sh  present on most other versions of
+UNIX.  The majority of these are due to the POSIX  standard,
+but some are the result of Bash adopting features from other
+shells.  For instance, Bash includes the  new  "!"  reserved
+word,  the  _\bc_\bo_\bm_\bm_\ba_\bn_\bd builtin, the ability of the _\br_\be_\ba_\bd builtin
+to correctly return a line ending with a backslash, symbolic
+arguments  to the _\bu_\bm_\ba_\bs_\bk builtin, variable substring removal,
+a way to get the length of a variable, and the new algorithm
+for  the  _\bt_\be_\bs_\bt  builtin  from  the POSIX.2 standard, none of
+which appear in sh.
+
+     Bash also implements the "$(...)" command  substitution
+syntax,  which  supersedes  the  sh  `...`  construct.   The
+"$(...)" construct expands to the output of the command con-
+tained   within  the  parentheses,  with  trailing  newlines
+removed.  The sh syntax is accepted for  backwards  compati-
+bility, but the "$(...)" form is preferred because its quot-
+ing rules are much simpler and it is easier to nest.
+
+     The Bourne shell does  not  provide  such  features  as
+brace  expansion,  the  ability  to  define a variable and a
+function with the same name, local variables in shell  func-
+tions, the ability to enable and disable individual builtins
+or write a function to replace a  builtin,  or  a  means  to
+export a shell function to a child process.
+
+     Bash has closed a long-standing shell security hole  by
+not  using  the $_\bI_\bF_\bS variable to split each word read by the
+shell, but splitting only the results of expansion (ksh  and
+the  4.4  BSD  sh have fixed this as well).  Useful behavior
+such as a means to abort execution of a script read with the
+"."  command  using  the  return  builtin  or  automatically
+exporting variables in the shell's environment  to  children
+is  also  not  present in the Bourne shell.  Bash provides a
+much more powerful environment for both interactive use  and
+programming.
+
+_\b4.  _\bB_\ba_\bs_\bh-_\bs_\bp_\be_\bc_\bi_\bf_\bi_\bc _\bF_\be_\ba_\bt_\bu_\br_\be_\bs
+
+     This section details a few of the features  which  make
+Bash unique.  Most of them provide improved interactive use,
+but a few programming  improvements  are  present  as  well.
+Full descriptions of these features can be found in the Bash
+documentation.
+
+_\b4._\b1.  _\bS_\bt_\ba_\br_\bt_\bu_\bp _\bF_\bi_\bl_\be_\bs
+
+     Bash executes  startup  files  differently  than  other
+shells.   The  Bash behavior is a compromise between the csh
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 6 -
+
+
+principle of startup files with  fixed  names  executed  for
+each shell and the sh "minimalist" behavior.  An interactive
+instance of Bash started as a login shell reads and executes
+~/._\bb_\ba_\bs_\bh__\bp_\br_\bo_\bf_\bi_\bl_\be  (the  file .bash_profile in the user's home
+directory), if it exists.  An  interactive  non-login  shell
+reads  and executes ~/._\bb_\ba_\bs_\bh_\br_\bc.  A non-interactive shell (one
+begun to execute a shell script, for example) reads no fixed
+startup  file,  but  uses the value of the variable $_\bE_\bN_\bV, if
+set, as the name of a startup file.   The  ksh  practice  of
+reading  $_\bE_\bN_\bV  for every shell, with the accompanying diffi-
+culty of defining the proper  variables  and  functions  for
+interactive  and  non-interactive  shells or having the file
+read only for interactive shells, was  considered  too  com-
+plex.   Ease  of  use won out here.  Interestingly, the next
+release of ksh will change to reading $_\bE_\bN_\bV only for interac-
+tive shells.
+
+_\b4._\b2.  _\bN_\be_\bw _\bB_\bu_\bi_\bl_\bt_\bi_\bn _\bC_\bo_\bm_\bm_\ba_\bn_\bd_\bs
+
+     There are a few builtins which are  new  or  have  been
+extended  in  Bash.   The _\be_\bn_\ba_\bb_\bl_\be builtin allows builtin com-
+mands to be turned on and off arbitrarily.  To use the  ver-
+sion  of  _\be_\bc_\bh_\bo found in a user's search path rather than the
+Bash builtin, enable -n echo  suffices.   The  _\bh_\be_\bl_\bp  builtin
+provides  quick  synopses  of  the  shell facilities without
+requiring access to a manual page.  _\bB_\bu_\bi_\bl_\bt_\bi_\bn  is  similar  to
+_\bc_\bo_\bm_\bm_\ba_\bn_\bd  in  that  it  bypasses shell functions and directly
+executes builtin commands.  Access to a csh-style  stack  of
+directories  is provided via the _\bp_\bu_\bs_\bh_\bd, _\bp_\bo_\bp_\bd, and _\bd_\bi_\br_\bs buil-
+tins.  _\bP_\bu_\bs_\bh_\bd and _\bp_\bo_\bp_\bd insert and remove directories from the
+stack,  respectively, and _\bd_\bi_\br_\bs lists the stack contents.  On
+systems that allow fine-grained control  of  resources,  the
+_\bu_\bl_\bi_\bm_\bi_\bt  builtin  can be used to tune these settings.  _\bU_\bl_\bi_\bm_\bi_\bt
+allows a user to control, among other things,  whether  core
+dumps  are  to  be generated, how much memory the shell or a
+child process is allowed to allocate, and how large  a  file
+created  by  a  child process can grow.  The _\bs_\bu_\bs_\bp_\be_\bn_\bd command
+will stop the shell process when job control is active; most
+other  shells  do  not  allow  themselves to be stopped like
+that.  _\bT_\by_\bp_\be, the Bash answer to _\bw_\bh_\bi_\bc_\bh and _\bw_\bh_\be_\bn_\bc_\be, shows what
+will happen when a word is typed as a command:
+\e9     $ type export
+     export is a shell builtin
+     $ type -t export
+     builtin
+     $ type bash
+     bash is /bin/bash
+     $ type cd
+     cd is a function
+     cd ()
+     {
+         builtin cd ${1+"$@"} && xtitle $HOST: $PWD
+     }
+\e9
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 7 -
+
+
+Various modes tell what a command word  is  (reserved  word,
+alias,  function,  builtin,  or  file) or which version of a
+command will be executed based  on  a  user's  search  path.
+Some  of  this functionality has been adopted by POSIX.2 and
+folded into the _\bc_\bo_\bm_\bm_\ba_\bn_\bd utility.
+
+_\b4._\b3.  _\bE_\bd_\bi_\bt_\bi_\bn_\bg _\ba_\bn_\bd _\bC_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn
+
+     One area in which Bash shines is command line  editing.
+Bash  uses  the _\br_\be_\ba_\bd_\bl_\bi_\bn_\be library to read and edit lines when
+interactive.  Readline is  a  powerful  and  flexible  input
+facility that a user can configure to individual tastes.  It
+allows lines to be edited using either emacs or vi commands,
+where  those  commands are appropriate.  The full capability
+of emacs is not present - there is no way to execute a named
+command  with  M-x, for instance - but the existing commands
+are more than adequate.  The vi mode is compliant  with  the
+command line editing standardized by POSIX.2.
+
+     Readline is fully customizable.   In  addition  to  the
+basic commands and key bindings, the library allows users to
+define additional key bindings using a  startup  file.   The
+_\bi_\bn_\bp_\bu_\bt_\br_\bc file, which defaults to the file ~/._\bi_\bn_\bp_\bu_\bt_\br_\bc, is read
+each time readline initializes, permitting users to maintain
+a  consistent  interface across a set of programs.  Readline
+includes an extensible interface, so each program using  the
+library  can  add  its  own  bindable  commands and program-
+specific key bindings.  Bash uses this facility to add bind-
+ings that perform history expansion or shell word expansions
+on the current input line.
+
+     Readline interprets a number of variables which further
+tune  its  behavior.   Variables exist to control whether or
+not eight-bit characters are directly read as input or  con-
+verted  to  meta-prefixed key sequences (a meta-prefixed key
+sequence consists of  the  character  with  the  eighth  bit
+zeroed,  preceded  by  the  _\bm_\be_\bt_\ba-_\bp_\br_\be_\bf_\bi_\bx  character,  usually
+escape,  which  selects  an  alternate  keymap),  to  decide
+whether  to  output  characters  with  the  eighth  bit  set
+directly or as a meta-prefixed key sequence, whether or  not
+to  wrap  to  a  new screen line when a line being edited is
+longer than the screen width, the keymap to which subsequent
+key  bindings  should apply, or even what happens when read-
+line wants to ring the terminal's bell.  All of these  vari-
+ables can be set in the inputrc file.
+
+     The startup file understands a set of  C  preprocessor-
+like  conditional  constructs  which  allow variables or key
+bindings to be assigned based on the application using read-
+line,  the  terminal  currently  being  used, or the editing
+mode.  Users can add program-specific bindings to make their
+lives easier:  I have bindings that let me edit the value of
+$_\bP_\bA_\bT_\bH and double-quote the current or previous word:
+\e9     # Macros that are convenient for shell interaction
+
+
+\e9                      October 28, 1994
+
+
+
+
+
+                           - 8 -
+
+
+     $if Bash
+     # edit the path
+     "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
+     # prepare to type a quoted word -- insert open and close double
+     # quotes and move to just after the open quote
+     "\C-x\"": "\"\"\C-b"
+     # Quote the current or previous word
+     "\C-xq": "\eb\"\ef\""
+     $endif
+\e9
+There is a readline command to re-read the  file,  so  users
+can  edit  the  file, change some bindings, and begin to use
+them almost immediately.
+
+     Bash implements the _\bb_\bi_\bn_\bd builtin for more  dyamic  con-
+trol  of  readline  than  the startup file permits.  _\bB_\bi_\bn_\bd is
+used in several ways.  In _\bl_\bi_\bs_\bt  mode,  it  can  display  the
+current  key  bindings, list all the readline editing direc-
+tives available for binding, list which keys invoke a  given
+directive,  or  output  the current set of key bindings in a
+format that can be incorporated  directly  into  an  inputrc
+file.   In  _\bb_\ba_\bt_\bc_\bh  mode,  it  reads a series of key bindings
+directly from a file and passes them to  readline.   In  its
+most  common usage, _\bb_\bi_\bn_\bd takes a single string and passes it
+directly to readline, which interprets the line as if it had
+just been read from the inputrc file.  Both key bindings and
+variable assignments may appear in the string given to _\bb_\bi_\bn_\bd.
+
+     The readline library also  provides  an  interface  for
+_\bw_\bo_\br_\bd  _\bc_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn.   When  the  _\bc_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn character (usually
+TAB) is typed, readline looks at the  word  currently  being
+entered  and  computes  the  set  of  filenames of which the
+current word is a valid prefix.  If there is only one possi-
+ble  completion,  the  rest  of  the characters are inserted
+directly,  otherwise  the  common  prefix  of  the  set   of
+filenames  is added to the current word.  A second TAB char-
+acter entered  immediately  after  a  non-unique  completion
+causes  readline  to list the possible completions; there is
+an option to have the list displayed immediately.   Readline
+provides  hooks  so  that  applications can provide specific
+types of completion before the default  filename  completion
+is attempted.  This is quite flexible, though it is not com-
+pletely user-programmable.  Bash, for example, can  complete
+filenames, command names (including aliases, builtins, shell
+reserved words, shell functions, and  executables  found  in
+the file system), shell variables, usernames, and hostnames.
+It uses a set of heuristics that, while not perfect, is gen-
+erally  quite good at determining what type of completion to
+attempt.
+
+_\b4._\b4.  _\bH_\bi_\bs_\bt_\bo_\br_\by
+
+     Access to the list of commands previously entered  (the
+_\bc_\bo_\bm_\bm_\ba_\bn_\bd  _\bh_\bi_\bs_\bt_\bo_\br_\by)  is  provided  jointly  by  Bash  and  the
+
+
+\e9                      October 28, 1994
+
+
+
+
+
+                           - 9 -
+
+
+readline  library.   Bash  provides  variables   ($HISTFILE,
+$HISTSIZE, and $HISTCONTROL) and the _\bh_\bi_\bs_\bt_\bo_\br_\by and _\bf_\bc builtins
+to manipulate the history  list.   The  value  of  $_\bH_\bI_\bS_\bT_\bF_\bI_\bL_\bE
+specifes  the  file where Bash writes the command history on
+exit and reads it on startup.  $_\bH_\bI_\bS_\bT_\bS_\bI_\bZ_\bE is  used  to  limit
+the  number  of commands saved in the history.  $_\bH_\bI_\bS_\bT_\bC_\bO_\bN_\bT_\bR_\bO_\bL
+provides a crude form of control  over  which  commands  are
+saved  on  the history list: a value of _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be means to
+not save commands which begin  with  a  space;  a  value  of
+_\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs  means to not save commands identical to the last
+command saved.  $HISTCONTROL was named  $history_control  in
+earlier versions of Bash; the old name is still accepted for
+backwards compatibility.  The _\bh_\bi_\bs_\bt_\bo_\br_\by command  can  read  or
+write  files  containing  the  history  list and display the
+current list contents.  The _\bf_\bc builtin, adopted from POSIX.2
+and  the  Korn  Shell, allows display and re-execution, with
+optional editing, of commands from the  history  list.   The
+readline library offers a set of commands to search the his-
+tory list for a portion of  the  current  input  line  or  a
+string  typed  by  the  user.  Finally, the _\bh_\bi_\bs_\bt_\bo_\br_\by library,
+generally incorporated directly into the  readline  library,
+implements  a  facility  for  history recall, expansion, and
+re-execution of previous commands very similar to csh ("bang
+history", so called because the exclamation point introduces
+a history substitution):
+\e9     $ echo a b c d e
+     a b c d e
+     $ !! f g h i
+     echo a b c d e f g h i
+     a b c d e f g h i
+     $ !-2
+     echo a b c d e
+     a b c d e
+     $ echo !-2:1-4
+     echo a b c d
+     a b c d
+\e9
+The command history is only saved when the shell is interac-
+tive, so it is not available for use by shell scripts.
+
+_\b4._\b5.  _\bN_\be_\bw _\bS_\bh_\be_\bl_\bl _\bV_\ba_\br_\bi_\ba_\bb_\bl_\be_\bs
+
+     There are a number of convenience variables  that  Bash
+interprets  to  make  life  easier.   These include _\bF_\bI_\bG_\bN_\bO_\bR_\bE,
+which is a set of filename  suffixes  identifying  files  to
+exclude   when  completing  filenames;  _\bH_\bO_\bS_\bT_\bT_\bY_\bP_\bE,  which  is
+automatically  set  to  a  string  describing  the  type  of
+hardware    on    which   Bash   is   currently   executing;
+_\bc_\bo_\bm_\bm_\ba_\bn_\bd__\bo_\br_\bi_\be_\bn_\bt_\be_\bd__\bh_\bi_\bs_\bt_\bo_\br_\by, which directs  Bash  to  save  all
+lines of a multiple-line command such as a _\bw_\bh_\bi_\bl_\be or _\bf_\bo_\br loop
+in a single history entry,  allowing  easy  re-editing;  and
+_\bI_\bG_\bN_\bO_\bR_\bE_\bE_\bO_\bF,  whose  value indicates the number of consecutive
+EOF characters that an interactive shell  will  read  before
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 10 -
+
+
+exiting - an easy way to keep yourself from being logged out
+accidentally.  The _\ba_\bu_\bt_\bo__\br_\be_\bs_\bu_\bm_\be variable alters the  way  the
+shell treats simple command names: if job control is active,
+and  this  variable  is  set,  single-word  simple  commands
+without  redirections  cause the shell to first look for and
+restart a suspended job with that name before starting a new
+process.
+
+_\b4._\b6.  _\bB_\br_\ba_\bc_\be _\bE_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn
+
+     Since sh offers no convenient way to generate arbitrary
+strings  that  share  a  common  prefix  or suffix (filename
+expansion requires that the filenames  exist),  Bash  imple-
+ments  _\bb_\br_\ba_\bc_\be  _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,  a  capability  picked up from csh.
+Brace expansion is similar to filename  expansion,  but  the
+strings  generated need not correspond to existing files.  A
+brace expression consists of an optional _\bp_\br_\be_\ba_\bm_\bb_\bl_\be,  followed
+by  a  pair  of braces enclosing a series of comma-separated
+strings,  and  an  optional  _\bp_\bo_\bs_\bt_\ba_\bm_\bb_\bl_\be.   The  preamble   is
+prepended  to each string within the braces, and the postam-
+ble is then appended to each resulting string:
+\e9     $ echo a{d,c,b}e
+     ade ace abe
+\e9
+As this example demonstrates, the results of brace expansion
+are not sorted, as they are by filename expansion.
+
+_\b4._\b7.  _\bP_\br_\bo_\bc_\be_\bs_\bs _\bS_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn
+
+     On systems that can support it, Bash provides a  facil-
+ity  known as _\bp_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn.  Process substitution is
+similar to command substitution in  that  its  specification
+includes  a  command to execute, but the shell does not col-
+lect the command's output and insert  it  into  the  command
+line.   Rather,  Bash  opens a pipe to the command, which is
+run in the background.  The shell uses named  pipes  (FIFOs)
+or  the  /_\bd_\be_\bv/_\bf_\bd  method  of naming open files to expand the
+process substitution to a filename  which  connects  to  the
+pipe  when  opened.  This filename becomes the result of the
+expansion.  Process substitution can be used to compare  the
+outputs  of two different versions of an application as part
+of a regression test:
+\e9     $ cmp <(old_prog) <(new_prog)
+\e9
+_\b4._\b8.  _\bP_\br_\bo_\bm_\bp_\bt _\bC_\bu_\bs_\bt_\bo_\bm_\bi_\bz_\ba_\bt_\bi_\bo_\bn
+
+     One of the more popular interactive features that  Bash
+provides  is the ability to customize the prompt.  Both $_\bP_\bS_\b1
+and $_\bP_\bS_\b2, the primary and secondary  prompts,  are  expanded
+before being displayed.  Parameter and variable expansion is
+performed when the prompt string is expanded, so  any  shell
+variable  can  be  put  into the prompt (e.g., $_\bS_\bH_\bL_\bV_\bL, which
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 11 -
+
+
+indicates how deeply the current  shell  is  nested).   Bash
+specially  interprets  characters  in the prompt string pre-
+ceded by a backslash.  Some of these backslash  escapes  are
+replaced  with the current time, the date, the current work-
+ing directory, the username, and the command number or  his-
+tory  number  of the command being entered.  There is even a
+backslash escape to cause the shell  to  change  its  prompt
+when running as root after an _\bs_\bu.  Before printing each pri-
+mary prompt, Bash expands the variable $_\bP_\bR_\bO_\bM_\bP_\bT__\bC_\bO_\bM_\bM_\bA_\bN_\bD  and,
+if it has a value, executes the expanded value as a command,
+allowing additional prompt customization.  For example, this
+assignment  causes  the  current user, the current host, the
+time, the last component of the current  working  directory,
+the  level  of  shell nesting, and the history number of the
+current command to be embedded into the primary prompt:
+\e9     $ PS1='\u@\h [\t] \W($SHLVL:\!)\$ '
+     chet@odin [21:03:44] documentation(2:636)$ cd ..
+     chet@odin [21:03:54] src(2:637)$
+\e9
+The string being assigned is surrounded by single quotes  so
+that  if it is exported, the value of $_\bS_\bH_\bL_\bV_\bL will be updated
+by a child shell:
+\e9     chet@odin [21:17:35] src(2:638)$ export PS1
+     chet@odin [21:17:40] src(2:639)$ bash
+     chet@odin [21:17:46] src(3:696)$
+\e9
+The \$ escape is displayed as "$" when running as  a  normal
+user, but as "#" when running as root.
+
+_\b4._\b9.  _\bF_\bi_\bl_\be _\bS_\by_\bs_\bt_\be_\bm _\bV_\bi_\be_\bw_\bs
+
+     Since Berkeley introduced symbolic links  in  4.2  BSD,
+one of their most annoying properties has been the "warping"
+to a completely different area of the file system when using
+_\bc_\bd,  and  the  resultant  non-intuitive behavior of "cd ..".
+The UNIX kernel treats symbolic links _\bp_\bh_\by_\bs_\bi_\bc_\ba_\bl_\bl_\by.  When  the
+kernel is translating a pathname in which one component is a
+symbolic link, it replaces all or part of the pathname while
+processing  the  link.  If the contents of the symbolic link
+begin  with  a  slash,  the  kernel  replaces  the  pathname
+entirely; if not, the link contents replace the current com-
+ponent.  In either case, the symbolic link is  visible.   If
+the  link value is an absolute pathname, the user finds him-
+self in a completely different part of the file system.
+
+     Bash provides a _\bl_\bo_\bg_\bi_\bc_\ba_\bl view of the  file  system.   In
+this default mode, command and filename completion and buil-
+tin commands such as _\bc_\bd and _\bp_\bu_\bs_\bh_\bd which change  the  current
+working  directory transparently follow symbolic links as if
+they were directories.  The $_\bP_\bW_\bD variable, which  holds  the
+shell's  idea  of  the current working directory, depends on
+the path  used  to  reach  the  directory  rather  than  its
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 12 -
+
+
+physical  location  in the local file system hierarchy.  For
+example:
+\e9     $ cd /usr/local/bin
+     $ echo $PWD
+     /usr/local/bin
+     $ pwd
+     /usr/local/bin
+     $ /bin/pwd
+     /net/share/sun4/local/bin
+     $ cd ..
+     $ pwd
+     /usr/local
+     $ /bin/pwd
+     /net/share/sun4/local
+     $ cd ..
+     $ pwd
+     /usr
+     $ /bin/pwd
+     /usr
+\e9
+One problem with this, of course, arises when programs  that
+do  not  understand  the  shell's logical notion of the file
+system interpret ".." differently.  This  generally  happens
+when Bash completes filenames containing ".." according to a
+logical hierarchy which does not correspond to their  physi-
+cal  location.  For  users  who  find  this  troublesome,  a
+corresponding _\bp_\bh_\by_\bs_\bi_\bc_\ba_\bl view of the file system is available:
+\e9     $ cd /usr/local/bin
+     $ pwd
+     /usr/local/bin
+     $ set -o physical
+     $ pwd
+     /net/share/sun4/local/bin
+\e9
+_\b4._\b1_\b0.  _\bI_\bn_\bt_\be_\br_\bn_\ba_\bt_\bi_\bo_\bn_\ba_\bl_\bi_\bz_\ba_\bt_\bi_\bo_\bn
+
+     One of the most  significant  improvements  in  version
+1.13  of  Bash  was  the  change to "eight-bit cleanliness".
+Previous versions used the eighth bit of characters to  mark
+whether  or not they were quoted when performing word expan-
+sions.  While this did not affect  the  majority  of  users,
+most  of  whom  used  only  seven-bit ASCII characters, some
+found it  confining.   Beginning  with  version  1.13,  Bash
+implemented a different quoting mechanism that did not alter
+the eighth bit of characters.  This allowed Bash to  manipu-
+late  files  with  "odd"  characters in their names, but did
+nothing to help users enter those  names,  so  version  1.13
+introduced  changes to readline that made it eight-bit clean
+as well.  Options exist that force  readline  to  attach  no
+special  significance  to characters with the eighth bit set
+(the default behavior is  to  convert  these  characters  to
+meta-prefixed  key sequences) and to output these characters
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 13 -
+
+
+without  conversion  to  meta-prefixed   sequences.    These
+changes, along with the expansion of keymaps to a full eight
+bits, enable readline to work with most of the ISO-8859 fam-
+ily of character sets, used by many European countries.
+
+_\b4._\b1_\b1.  _\bP_\bO_\bS_\bI_\bX _\bM_\bo_\bd_\be
+
+     Although Bash is intended  to  be  POSIX.2  conformant,
+there  are areas in which the default behavior is not compa-
+tible with the standard.  For users who wish to operate in a
+strict  POSIX.2  environment,  Bash implements a _\bP_\bO_\bS_\bI_\bX _\bm_\bo_\bd_\be.
+When this mode is active, Bash modifies its  default  opera-
+tion  where  it  differs from POSIX.2 to match the standard.
+POSIX mode is entered when Bash is started with  the  -_\bp_\bo_\bs_\bi_\bx
+option.   This feature is also available as an option to the
+set builtin, set -o posix.  For compatibility with other GNU
+software  that  attempts  to be POSIX.2 compliant, Bash also
+enters POSIX mode if the variable  $_\bP_\bO_\bS_\bI_\bX_\bL_\bY__\bC_\bO_\bR_\bR_\bE_\bC_\bT  is  set
+when  Bash  is started or assigned a value during execution.
+$_\bP_\bO_\bS_\bI_\bX__\bP_\bE_\bD_\bA_\bN_\bT_\bI_\bC is accepted as well, to be  compatible  with
+some  older  GNU  utilities.   When Bash is started in POSIX
+mode, for example, it sources the file named by the value of
+$_\bE_\bN_\bV  rather  than  the "normal" startup files, and does not
+allow reserved words to be aliased.
+
+_\b5.  _\bN_\be_\bw _\bF_\be_\ba_\bt_\bu_\br_\be_\bs _\ba_\bn_\bd _\bF_\bu_\bt_\bu_\br_\be _\bP_\bl_\ba_\bn_\bs
+
+     There are several features introduced  in  the  current
+version of Bash, version 1.14, and a number under considera-
+tion for future releases.  This section will briefly  detail
+the  new  features  in  version  1.14  and  describe several
+features that may appear in later versions.
+
+_\b5._\b1.  _\bN_\be_\bw _\bF_\be_\ba_\bt_\bu_\br_\be_\bs _\bi_\bn _\bB_\ba_\bs_\bh-_\b1._\b1_\b4
+
+     The new features available in Bash-1.14 answer  several
+of the most common requests for enhancements.  Most notably,
+there is a mechanism  for  including  non-visible  character
+sequences  in  prompts, such as those which cause a terminal
+to print characters in different colors or in standout mode.
+There  was  nothing preventing the use of these sequences in
+earlier  versions,  but  the  readline  redisplay  algorithm
+assumed  each  character  occupied physical screen space and
+would wrap lines prematurely.
+
+     Readline has a few new variables, several new  bindable
+commands,  and  some additional emacs mode default key bind-
+ings.  A new history search mode has  been  implemented:  in
+this mode, readline searches the history for lines beginning
+with the characters between the  beginning  of  the  current
+line  and  the  cursor.   The  existing readline incremental
+search commands no longer match identical  lines  more  than
+once.   Filename  completion now expands variables in direc-
+tory names.  The history expansion facilities are now nearly
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 14 -
+
+
+completely csh-compatible: missing modifiers have been added
+and history substitution has been extended.
+
+     Several of the features described earlier, such as  _\bs_\be_\bt
+-_\bo  _\bp_\bo_\bs_\bi_\bx  and  $_\bP_\bO_\bS_\bI_\bX__\bP_\bE_\bD_\bA_\bN_\bT_\bI_\bC,  are  new  in version 1.14.
+There is a new shell variable, _\bO_\bS_\bT_\bY_\bP_\bE, to which Bash assigns
+a  value that identifies the version of UNIX it's running on
+(great for putting architecture-specific binary  directories
+into the $PATH).  Two variables have been renamed: $_\bH_\bI_\bS_\bT_\bC_\bO_\bN_\b-
+_\bT_\bR_\bO_\bL  replaces  $_\bh_\bi_\bs_\bt_\bo_\br_\by__\bc_\bo_\bn_\bt_\br_\bo_\bl,  and  $_\bH_\bO_\bS_\bT_\bF_\bI_\bL_\bE   replaces
+$_\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be__\bc_\bo_\bm_\bp_\bl_\be_\bt_\bi_\bo_\bn__\bf_\bi_\bl_\be.  In both cases, the old names are
+accepted for backwards compatibility.  The ksh  _\bs_\be_\bl_\be_\bc_\bt  con-
+struct,  which  allows  the  generation of simple menus, has
+been implemented.   New  capabilities  have  been  added  to
+existing  variables:  $_\ba_\bu_\bt_\bo__\br_\be_\bs_\bu_\bm_\be  can  now  take values of
+_\be_\bx_\ba_\bc_\bt or _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg, and $_\bH_\bI_\bS_\bT_\bC_\bO_\bN_\bT_\bR_\bO_\bL understands  the  value
+_\bi_\bg_\bn_\bo_\br_\be_\bb_\bo_\bt_\bh,  which  combines  the  two previously acceptable
+values.  The _\bd_\bi_\br_\bs builtin has acquired options to print  out
+specific members of the directory stack.  The $_\bn_\bo_\bl_\bi_\bn_\bk_\bs vari-
+able, which forces a physical view of the file  system,  has
+been  superseded  by  the  -_\bP  option  to  the  _\bs_\be_\bt  builtin
+(equivalent to set -o physical); the  variable  is  retained
+for  backwards  compatibility.  The version string contained
+in $_\bB_\bA_\bS_\bH__\bV_\bE_\bR_\bS_\bI_\bO_\bN now includes an  indication  of  the  patch
+level  as  well  as  the  "build version".  Some little-used
+features have been removed:  the _\bb_\by_\be synonym  for  _\be_\bx_\bi_\bt  and
+the  $_\bN_\bO__\bP_\bR_\bO_\bM_\bP_\bT__\bV_\bA_\bR_\bS  variable  are  gone.   There is now an
+organized test suite that can be run as  a  regression  test
+when building a new version of Bash.
+
+     The documentation has been thoroughly overhauled: there
+is  a  new  manual page on the readline library and the _\bi_\bn_\bf_\bo
+file has been updated to reflect the  current  version.   As
+always,  as  many bugs as possible have been fixed, although
+some surely remain.
+
+_\b5._\b2.  _\bO_\bt_\bh_\be_\br _\bF_\be_\ba_\bt_\bu_\br_\be_\bs
+
+     There are a few features that  I  hope  to  include  in
+later Bash releases.  Some are based on work already done in
+other shells.
+
+     In addition to simple variables, a  future  release  of
+Bash  will  include  one-dimensional  arrays,  using the ksh
+implementation of arrays as a model.  Additions to  the  ksh
+syntax,  such  as  _\bv_\ba_\br_\bn_\ba_\bm_\be=( ... ) to assign a list of words
+directly to an array and a mechanism to allow the _\br_\be_\ba_\bd buil-
+tin  to  read a list of values directly into an array, would
+be desirable.  Given those extensions, the ksh _\bs_\be_\bt -_\bA syntax
+may not be worth supporting (the -_\bA option assigns a list of
+values to an array, but is a rather peculiar special case).
+
+     Some shells include a means of _\bp_\br_\bo_\bg_\br_\ba_\bm_\bm_\ba_\bb_\bl_\be  word  com-
+pletion, where the user specifies on a per-command basis how
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 15 -
+
+
+the arguments of the command are to be treated when  comple-
+tion  is  attempted:  as  filenames,  hostnames,  executable
+files, and so on.  The other aspects  of  the  current  Bash
+implementation  could  remain as-is; the existing heuristics
+would still be valid.  Only when completing the arguments to
+a  simple  command  would  the programmable completion be in
+effect.
+
+     It would also be nice to give  the  user  finer-grained
+control over which commands are saved onto the history list.
+One proposal is for a variable,  tentatively  named  _\bH_\bI_\bS_\bT_\bI_\bG_\b-
+_\bN_\bO_\bR_\bE,  which  would  contain  a colon-separated list of com-
+mands.  Lines beginning with these commands, after the  res-
+trictions  of  $_\bH_\bI_\bS_\bT_\bC_\bO_\bN_\bT_\bR_\bO_\bL  have been applied, would not be
+placed onto the history list.   The  shell  pattern-matching
+capabilities  could  also  be  available when specifying the
+contents of $_\bH_\bI_\bS_\bT_\bI_\bG_\bN_\bO_\bR_\bE.
+
+     One thing that newer shells such as _\bw_\bk_\bs_\bh (also known as
+_\bd_\bt_\bk_\bs_\bh)  provide is a command to dynamically load code imple-
+menting additional builtin commands into  a  running  shell.
+This new builtin would take an object file or shared library
+implementing the "body" of the  builtin  (_\bx_\bx_\bx__\bb_\bu_\bi_\bl_\bt_\bi_\bn()  for
+those familiar with Bash internals) and a structure contain-
+ing the name of the new command, the function to  call  when
+the new builtin is invoked (presumably defined in the shared
+object specified as an argument), and the  documentation  to
+be  printed  by  the  _\bh_\be_\bl_\bp  command (possibly present in the
+shared object as well).  It  would  manage  the  details  of
+extending the internal table of builtins.
+
+     A few other builtins would also be desirable:  two  are
+the POSIX.2 _\bg_\be_\bt_\bc_\bo_\bn_\bf command, which prints the values of sys-
+tem configuration variables defined by POSIX.2, and a _\bd_\bi_\bs_\bo_\bw_\bn
+builtin,  which  causes  a  shell  running  with job control
+active to "forget about" one or more background jobs in  its
+internal  jobs  table.   Using  _\bg_\be_\bt_\bc_\bo_\bn_\bf, for example, a user
+could retrieve a value for $_\bP_\bA_\bT_\bH guaranteed to find  all  of
+the POSIX standard utilities, or find out how long filenames
+may be in the file system containing a specified directory.
+
+     There are no implementation timetables for any of these
+features,  nor are there concrete plans to include them.  If
+anyone has comments on these proposals, feel free to send me
+electronic mail.
+
+_\b6.  _\bR_\be_\bf_\bl_\be_\bc_\bt_\bi_\bo_\bn_\bs _\ba_\bn_\bd _\bL_\be_\bs_\bs_\bo_\bn_\bs _\bL_\be_\ba_\br_\bn_\be_\bd
+
+     The lesson that has been  repeated  most  often  during
+Bash  development  is  that  there  are  dark corners in the
+Bourne shell, and people use all of them.  In  the  original
+description of the Bourne shell, quoting and the shell gram-
+mar are both poorly  specified  and  incomplete;  subsequent
+descriptions have not helped much.  The grammar presented in
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 16 -
+
+
+Bourne's paper describing the  shell  distributed  with  the
+Seventh  Edition  of  UNIX|\b-  is  so far off that it does not
+allow the command who|wc.  In fact, as Tom Duff states:
+
+     Nobody really knows what the Bourne shell's  gram-
+     mar  is.   Even  examination of the source code is
+     little help.|\b=
+
+The POSIX.2 standard includes  a  _\by_\ba_\bc_\bc  grammar  that  comes
+close  to  capturing  the  Bourne  shell's  behavior, but it
+disallows some constructs which sh accepts without complaint
+-  and there are scripts out there that use them.  It took a
+few versions and several bug reports before Bash implemented
+sh-compatible  quoting,  and there are still some "legal" sh
+constructs which Bash flags as syntax errors.   Complete  sh
+compatibility is a tough nut.
+
+     The shell is bigger  and  slower  than  I  would  like,
+though the current version is substantially faster than pre-
+viously.  The readline library  could  stand  a  substantial
+rewrite.   A  hand-written  parser  to  replace  the current
+_\by_\ba_\bc_\bc-generated one would probably result in a  speedup,  and
+would solve one glaring problem:  the shell could parse com-
+mands in "$(...)" constructs as  they  are  entered,  rather
+than reporting errors when the construct is expanded.
+
+     As always, there is some chaff to go  with  the  wheat.
+Areas  of  duplicated  functionality  need to be cleaned up.
+There are several cases where Bash treats  a  variable  spe-
+cially   to   enable  functionality  available  another  way
+($notify vs.  set -o notify and $nolinks vs. set  -o  physi-
+cal,  for  instance);  the special treatment of the variable
+name should probably be removed.  A few  more  things  could
+stand    removal;    the    $_\ba_\bl_\bl_\bo_\bw__\bn_\bu_\bl_\bl__\bg_\bl_\bo_\bb__\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn   and
+$_\bg_\bl_\bo_\bb__\bd_\bo_\bt__\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\bs variables are of particularly  question-
+able  value.   The  $[...]  arithmetic  evaluation syntax is
+redundant now that the POSIX-mandated $((...)) construct has
+been implemented, and could be deleted.  It would be nice if
+the text output by the _\bh_\be_\bl_\bp builtin  were  external  to  the
+shell rather than compiled into it.  The behavior enabled by
+$_\bc_\bo_\bm_\bm_\ba_\bn_\bd__\bo_\br_\bi_\be_\bn_\bt_\be_\bd__\bh_\bi_\bs_\bt_\bo_\br_\by, which causes the shell to attempt
+to  save  all lines of a multi-line command in a single his-
+tory entry, should be made  the  default  and  the  variable
+removed.
+
+
+_________________________
+|\b-S. R. Bourne, "UNIX  Time-Sharing  System:   The  UNIX
+Shell",  _\bB_\be_\bl_\bl  _\bS_\by_\bs_\bt_\be_\bm  _\bT_\be_\bc_\bh_\bn_\bi_\bc_\ba_\bl  _\bJ_\bo_\bu_\br_\bn_\ba_\bl, 57(6), July-
+August, 1978, pp. 1971-1990.
+|\b=Tom Duff, "Rc - A Shell for Plan 9 and UNIX  systems",
+_\bP_\br_\bo_\bc. _\bo_\bf _\bt_\bh_\be _\bS_\bu_\bm_\bm_\be_\br _\b1_\b9_\b9_\b0 _\bE_\bU_\bU_\bG _\bC_\bo_\bn_\bf_\be_\br_\be_\bn_\bc_\be, London, July,
+1990, pp. 21-33.
+
+
+
+
+                      October 28, 1994
+
+
+
+
+
+                           - 17 -
+
+
+_\b7.  _\bA_\bv_\ba_\bi_\bl_\ba_\bb_\bi_\bl_\bi_\bt_\by
+
+     As with all other GNU software, Bash is  available  for
+anonymous  FTP  from _\bp_\br_\be_\bp._\ba_\bi._\bm_\bi_\bt._\be_\bd_\bu:/_\bp_\bu_\bb/_\bg_\bn_\bu and from other
+GNU software mirror sites.  The current version is in  _\bb_\ba_\bs_\bh-
+_\b1._\b1_\b4._\b1._\bt_\ba_\br._\bg_\bz  in  that  directory.   Use _\ba_\br_\bc_\bh_\bi_\be to find the
+nearest archive site.  The latest version is  always  avail-
+able  for FTP from _\bb_\ba_\bs_\bh._\bC_\bW_\bR_\bU._\bE_\bd_\bu:/_\bp_\bu_\bb/_\bd_\bi_\bs_\bt.  Bash documenta-
+tion is available for FTP from _\bb_\ba_\bs_\bh._\bC_\bW_\bR_\bU._\bE_\bd_\bu:/_\bp_\bu_\bb/_\bb_\ba_\bs_\bh.
+
+     The Free Software Foundation sells  tapes  and  CD-ROMs
+containing Bash; send electronic mail to gnu@prep.ai.mit.edu
+or call +1-617-876-3296 for more information.
+
+     Bash is  also  distributed  with  several  versions  of
+UNIX-compatible  systems.   It  is  included  as /bin/sh and
+/bin/bash on several Linux  distributions  (more  about  the
+difference  in  a  moment),  and  as contributed software in
+BSDI's BSD/386* and FreeBSD.
+
+     The Linux distribution deserves special mention.  There
+are two configurations included in the standard Bash distri-
+bution: a "normal" configuration, in which all of the  stan-
+dard  features  are included, and a "minimal" configuration,
+which omits job control, aliases, history and  command  line
+editing,  the  directory  stack and _\bp_\bu_\bs_\bh_\bd/_\bp_\bo_\bp_\bd/_\bd_\bi_\br_\bs, process
+substitution, prompt string special character decoding,  and
+the  _\bs_\be_\bl_\be_\bc_\bt  construct.  This minimal version is designed to
+be a drop-in replacement for the traditional  UNIX  /bin/sh,
+and is included as the Linux /bin/sh in several packagings.
+
+_\b8.  _\bC_\bo_\bn_\bc_\bl_\bu_\bs_\bi_\bo_\bn
+
+     Bash is a worthy successor to sh.  It  is  sufficiently
+portable to run on nearly every version of UNIX from 4.3 BSD
+to SVR4.2, and several UNIX workalikes.  It is robust enough
+to  replace  sh  on most of those systems, and provides more
+functionality.  It has several thousand regular  users,  and
+their  feedback has helped to make it as good as it is today
+- a testament to the benefits of free software.
+
+
+
+
+
+
+
+
+
+
+_________________________
+*BSD/386 is a trademark of  Berkeley  Software  Design,
+Inc.
+
+
+
+
+                      October 28, 1994
+
+
diff --git a/doc/bash.0 b/doc/bash.0
new file mode 100644 (file)
index 0000000..82ef065
--- /dev/null
@@ -0,0 +1,5217 @@
+BASH(1)                                                                BASH(1)
+
+
+
+N\bNA\bAM\bME\bE
+       bash - GNU Bourne-Again SHell
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       b\bba\bas\bsh\bh [options] [file]
+
+C\bCO\bOP\bPY\bYR\bRI\bIG\bGH\bHT\bT
+       Bash is Copyright (C) 1989-2009 by the Free Software Foundation, Inc.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       B\bBa\bas\bsh\bh  is  an  s\bsh\bh-compatible  command language interpreter that executes
+       commands read from the standard input or from a file.  B\bBa\bas\bsh\bh also incor-
+       porates useful features from the _\bK_\bo_\br_\bn and _\bC shells (k\bks\bsh\bh and c\bcs\bsh\bh).
+
+       B\bBa\bas\bsh\bh  is  intended  to  be a conformant implementation of the Shell and
+       Utilities portion  of  the  IEEE  POSIX  specification  (IEEE  Standard
+       1003.1).  B\bBa\bas\bsh\bh can be configured to be POSIX-conformant by default.
+
+O\bOP\bPT\bTI\bIO\bON\bNS\bS
+       In  addition  to  the  single-character shell options documented in the
+       description of the s\bse\bet\bt builtin command, b\bba\bas\bsh\bh interprets  the  following
+       options when it is invoked:
+
+       -\b-c\bc _\bs_\bt_\br_\bi_\bn_\bg If  the  -\b-c\bc  option  is  present, then commands are read from
+                 _\bs_\bt_\br_\bi_\bn_\bg.  If there are arguments after the  _\bs_\bt_\br_\bi_\bn_\bg,  they  are
+                 assigned to the positional parameters, starting with $\b$0\b0.
+       -\b-i\bi        If the -\b-i\bi option is present, the shell is _\bi_\bn_\bt_\be_\br_\ba_\bc_\bt_\bi_\bv_\be.
+       -\b-l\bl        Make b\bba\bas\bsh\bh act as if it had been invoked as a login shell (see
+                 I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN below).
+       -\b-r\br        If the -\b-r\br option is present,  the  shell  becomes  _\br_\be_\bs_\bt_\br_\bi_\bc_\bt_\be_\bd
+                 (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).
+       -\b-s\bs        If  the -\b-s\bs 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 when invoking an interactive shell.
+       -\b-D\bD        A list of all double-quoted strings preceded by $\b$ is  printed
+                 on  the standard output.  These are the strings that are sub-
+                 ject to language translation when the current locale is not C\bC
+                 or  P\bPO\bOS\bSI\bIX\bX.   This  implies the -\b-n\bn option; no commands will be
+                 executed.
+       [\b[-\b-+\b+]\b]O\bO [\b[_\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn]\b]
+                 _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn is one of the  shell  options  accepted  by  the
+                 s\bsh\bho\bop\bpt\bt   builtin  (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  below).   If
+                 _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn is present, -\b-O\bO sets the value of that option; +\b+O\bO
+                 unsets  it.   If  _\bs_\bh_\bo_\bp_\bt_\b__\bo_\bp_\bt_\bi_\bo_\bn is not supplied, the names and
+                 values of the shell options accepted by s\bsh\bho\bop\bpt\bt are printed  on
+                 the  standard  output.   If  the invocation option is +\b+O\bO, the
+                 output is displayed in a format that may be reused as  input.
+       -\b--\b-        A  -\b--\b-  signals the end of options and disables further option
+                 processing.  Any arguments after the -\b--\b- are treated as  file-
+                 names and arguments.  An argument of -\b- is equivalent to -\b--\b-.
+
+       B\bBa\bas\bsh\bh  also  interprets  a  number  of  multi-character  options.  These
+       options must appear on the command  line  before  the  single-character
+       options to be recognized.
+
+       -\b--\b-d\bde\beb\bbu\bug\bgg\bge\ber\br
+              Arrange for the debugger profile to be executed before the shell
+              starts.  Turns on extended debugging mode (see  the  description
+              of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg  option  to the s\bsh\bho\bop\bpt\bt builtin below) and shell
+              function tracing (see the description of the -\b-o\bo f\bfu\bun\bnc\bct\btr\bra\bac\bce\be option
+              to the s\bse\bet\bt builtin below).
+       -\b--\b-d\bdu\bum\bmp\bp-\b-p\bpo\bo-\b-s\bst\btr\bri\bin\bng\bgs\bs
+              Equivalent  to -\b-D\bD, but the output is in the GNU _\bg_\be_\bt_\bt_\be_\bx_\bt p\bpo\bo (por-
+              table object) file format.
+       -\b--\b-d\bdu\bum\bmp\bp-\b-s\bst\btr\bri\bin\bng\bgs\bs
+              Equivalent to -\b-D\bD.
+       -\b--\b-h\bhe\bel\blp\bp Display a usage message on standard  output  and  exit  success-
+              fully.
+       -\b--\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be _\bf_\bi_\bl_\be
+       -\b--\b-r\brc\bcf\bfi\bil\ble\be _\bf_\bi_\bl_\be
+              Execute commands from _\bf_\bi_\bl_\be instead of the standard personal ini-
+              tialization file _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc if  the  shell  is  interactive  (see
+              I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN below).
+
+       -\b--\b-l\blo\bog\bgi\bin\bn
+              Equivalent to -\b-l\bl.
+
+       -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg
+              Do  not  use the GNU r\bre\bea\bad\bdl\bli\bin\bne\be library to read command lines when
+              the shell is interactive.
+
+       -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be
+              Do not read either the system-wide startup file _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be  or
+              any   of  the  personal  initialization  files  _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bp_\br_\bo_\bf_\bi_\bl_\be,
+              _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bi_\bn, or _\b~_\b/_\b._\bp_\br_\bo_\bf_\bi_\bl_\be.   By  default,  b\bba\bas\bsh\bh  reads  these
+              files  when  it  is  invoked  as  a  login shell (see I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN
+              below).
+
+       -\b--\b-n\bno\bor\brc\bc Do  not  read  and  execute  the  personal  initialization  file
+              _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc  if  the  shell  is interactive.  This option is on by
+              default if the shell is invoked as s\bsh\bh.
+
+       -\b--\b-p\bpo\bos\bsi\bix\bx
+              Change the behavior of b\bba\bas\bsh\bh where the default operation  differs
+              from the POSIX standard to match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
+
+       -\b--\b-r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd
+              The shell becomes restricted (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).
+
+       -\b--\b-v\bve\ber\brb\bbo\bos\bse\be
+              Equivalent to  -\b-v\bv.
+
+       -\b--\b-v\bve\ber\brs\bsi\bio\bon\bn
+              Show  version information for this instance of b\bba\bas\bsh\bh on the stan-
+              dard output and exit successfully.
+
+A\bAR\bRG\bGU\bUM\bME\bEN\bNT\bTS\bS
+       If arguments remain after option processing, and neither the -\b-c\bc nor the
+       -\b-s\bs  option  has  been supplied, the first argument is assumed to be the
+       name of a file containing shell commands.  If b\bba\bas\bsh\bh is invoked  in  this
+       fashion,  $\b$0\b0 is set to the name of the file, and the positional parame-
+       ters are set to the remaining arguments.  B\bBa\bas\bsh\bh reads and executes  com-
+       mands  from this file, then exits.  B\bBa\bas\bsh\bh's exit status is the exit sta-
+       tus of the last command executed in the script.   If  no  commands  are
+       executed,  the  exit status is 0.  An attempt is first made to open the
+       file in the current directory, and, if no file is found, then the shell
+       searches the directories in P\bPA\bAT\bTH\bH for the script.
+
+I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN
+       A  _\bl_\bo_\bg_\bi_\bn _\bs_\bh_\be_\bl_\bl is one whose first character of argument zero is a -\b-, or
+       one started with the -\b--\b-l\blo\bog\bgi\bin\bn option.
+
+       An _\bi_\bn_\bt_\be_\br_\ba_\bc_\bt_\bi_\bv_\be shell is one started without  non-option  arguments  and
+       without the -\b-c\bc option whose standard input and error are both connected
+       to terminals (as determined by _\bi_\bs_\ba_\bt_\bt_\by(3)), or one started with  the  -\b-i\bi
+       option.   P\bPS\bS1\b1 is set and $\b$-\b- includes i\bi if b\bba\bas\bsh\bh is interactive, allowing
+       a shell script or a startup file to test this state.
+
+       The following paragraphs describe how b\bba\bas\bsh\bh executes its startup  files.
+       If  any  of  the files exist but cannot be read, b\bba\bas\bsh\bh reports an error.
+       Tildes are expanded in file names as described below under T\bTi\bil\bld\bde\be E\bEx\bxp\bpa\ban\bn-\b-
+       s\bsi\bio\bon\bn in the E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN section.
+
+       When  b\bba\bas\bsh\bh is invoked as an interactive login shell, or as a non-inter-
+       active shell with the -\b--\b-l\blo\bog\bgi\bin\bn option, it first reads and executes  com-
+       mands  from  the file _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be, if that file exists.  After reading
+       that file, it looks for _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bp_\br_\bo_\bf_\bi_\bl_\be, _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bi_\bn, and _\b~_\b/_\b._\bp_\br_\bo_\bf_\bi_\bl_\be,
+       in  that order, and reads and executes commands from the first one that
+       exists and is readable.  The -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be option may be  used  when  the
+       shell is started to inhibit this behavior.
+
+       When  a  login  shell  exits, b\bba\bas\bsh\bh reads and executes commands from the
+       file _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt, if it exists.
+
+       When an interactive shell that is not a login shell  is  started,  b\bba\bas\bsh\bh
+       reads  and executes commands from _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that file exists.  This
+       may be inhibited by using the -\b--\b-n\bno\bor\brc\bc option.  The -\b--\b-r\brc\bcf\bfi\bil\ble\be _\bf_\bi_\bl_\be  option
+       will  force  b\bba\bas\bsh\bh  to  read  and  execute commands from _\bf_\bi_\bl_\be instead of
+       _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc.
+
+       When b\bba\bas\bsh\bh is started non-interactively, to  run  a  shell  script,  for
+       example, it looks for the variable B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV in the environment, expands
+       its value if it appears there, and uses the expanded value as the  name
+       of  a  file to read and execute.  B\bBa\bas\bsh\bh behaves as if the following com-
+       mand were executed:
+              if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
+       but the value of the P\bPA\bAT\bTH\bH variable is not used to search for  the  file
+       name.
+
+       If  b\bba\bas\bsh\bh  is  invoked  with  the name s\bsh\bh, it tries to mimic the startup
+       behavior of historical versions of s\bsh\bh as  closely  as  possible,  while
+       conforming  to the POSIX standard as well.  When invoked as an interac-
+       tive login shell, or a non-interactive shell with the  -\b--\b-l\blo\bog\bgi\bin\bn  option,
+       it  first  attempts  to read and execute commands from _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be and
+       _\b~_\b/_\b._\bp_\br_\bo_\bf_\bi_\bl_\be, in that order.  The  -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be  option  may  be  used  to
+       inhibit  this  behavior.  When invoked as an interactive shell with the
+       name s\bsh\bh, b\bba\bas\bsh\bh looks for the variable E\bEN\bNV\bV, expands its value  if  it  is
+       defined,  and uses the expanded value as the name of a file to read and
+       execute.  Since a shell invoked as s\bsh\bh does not attempt to read and exe-
+       cute  commands from any other startup files, the -\b--\b-r\brc\bcf\bfi\bil\ble\be option has no
+       effect.  A non-interactive shell invoked with  the  name  s\bsh\bh  does  not
+       attempt  to  read  any  other  startup files.  When invoked as s\bsh\bh, b\bba\bas\bsh\bh
+       enters _\bp_\bo_\bs_\bi_\bx mode after the startup files are read.
+
+       When b\bba\bas\bsh\bh is started in _\bp_\bo_\bs_\bi_\bx mode, as with the  -\b--\b-p\bpo\bos\bsi\bix\bx  command  line
+       option, it follows the POSIX standard for startup files.  In this mode,
+       interactive shells expand the E\bEN\bNV\bV variable and commands  are  read  and
+       executed  from  the  file  whose  name is the expanded value.  No other
+       startup files are read.
+
+       B\bBa\bas\bsh\bh attempts to determine when it is being run with its standard input
+       connected  to a a network connection, as if by the remote shell daemon,
+       usually _\br_\bs_\bh_\bd, or the secure shell daemon _\bs_\bs_\bh_\bd.  If b\bba\bas\bsh\bh  determines  it
+       is  being  run  in  this  fashion,  it reads and executes commands from
+       _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that file exists and is readable.  It will not do this if
+       invoked as s\bsh\bh.  The -\b--\b-n\bno\bor\brc\bc option may be used to inhibit this behavior,
+       and the -\b--\b-r\brc\bcf\bfi\bil\ble\be option may be used to force another file to  be  read,
+       but  _\br_\bs_\bh_\bd  does  not  generally  invoke the shell with those options or
+       allow them to be specified.
+
+       If the shell is started with the effective user (group) id not equal to
+       the real user (group) id, and the -\b-p\bp option is not supplied, no startup
+       files are read, shell functions are not inherited from the environment,
+       the  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS  variable, if it appears in the environment, is ignored,
+       and the effective user id is set to the real user id.  If the -\b-p\bp option
+       is  supplied  at  invocation, the startup behavior is the same, but the
+       effective user id is not reset.
+
+D\bDE\bEF\bFI\bIN\bNI\bIT\bTI\bIO\bON\bNS\bS
+       The following definitions are used throughout the rest  of  this  docu-
+       ment.
+       b\bbl\bla\ban\bnk\bk  A space or tab.
+       w\bwo\bor\brd\bd   A  sequence  of  characters  considered  as a single unit by the
+              shell.  Also known as a t\bto\bok\bke\ben\bn.
+       n\bna\bam\bme\be   A _\bw_\bo_\br_\bd consisting only of  alphanumeric  characters  and  under-
+              scores,  and beginning with an alphabetic character or an under-
+              score.  Also referred to as an i\bid\bde\ben\bnt\bti\bif\bfi\bie\ber\br.
+       m\bme\bet\bta\bac\bch\bha\bar\bra\bac\bct\bte\ber\br
+              A character that, when unquoted, separates words.   One  of  the
+              following:
+              |\b|  &\b& ;\b; (\b( )\b) <\b< >\b> s\bsp\bpa\bac\bce\be t\bta\bab\bb
+       c\bco\bon\bnt\btr\bro\bol\bl o\bop\bpe\ber\bra\bat\bto\bor\br
+              A _\bt_\bo_\bk_\be_\bn that performs a control function.  It is one of the fol-
+              lowing symbols:
+              |\b||\b| &\b& &\b&&\b& ;\b; ;\b;;\b; (\b( )\b) |\b| |\b|&\b& <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>
+
+R\bRE\bES\bSE\bER\bRV\bVE\bED\bD W\bWO\bOR\bRD\bDS\bS
+       _\bR_\be_\bs_\be_\br_\bv_\be_\bd _\bw_\bo_\br_\bd_\bs are words that have a special meaning to the shell.  The
+       following words are recognized as reserved when unquoted and either the
+       first word of a simple command (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR below) or  the  third
+       word of a c\bca\bas\bse\be or f\bfo\bor\br command:
+
+       !\b!  c\bca\bas\bse\be  d\bdo\bo d\bdo\bon\bne\be e\bel\bli\bif\bf e\bel\bls\bse\be e\bes\bsa\bac\bc f\bfi\bi f\bfo\bor\br f\bfu\bun\bnc\bct\bti\bio\bon\bn i\bif\bf i\bin\bn s\bse\bel\ble\bec\bct\bt t\bth\bhe\ben\bn u\bun\bnt\bti\bil\bl
+       w\bwh\bhi\bil\ble\be {\b{ }\b} t\bti\bim\bme\be [\b[[\b[ ]\b]]\b]
+
+S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
+   S\bSi\bim\bmp\bpl\ble\be C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+       A _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd is a sequence of optional  variable  assignments  fol-
+       lowed  by  b\bbl\bla\ban\bnk\bk-separated  words and redirections, and terminated by a
+       _\bc_\bo_\bn_\bt_\br_\bo_\bl _\bo_\bp_\be_\br_\ba_\bt_\bo_\br.  The first word specifies the command to be executed,
+       and  is  passed  as  argument  zero.  The remaining words are passed as
+       arguments to the invoked command.
+
+       The return value of a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd is its exit status,  or  128+_\bn  if
+       the command is terminated by signal _\bn.
+
+   P\bPi\bip\bpe\bel\bli\bin\bne\bes\bs
+       A  _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be  is  a sequence of one or more commands separated by one of
+       the control operators |\b| or |\b|&\b&.  The format for a pipeline is:
+
+              [t\bti\bim\bme\be [-\b-p\bp]] [ ! ] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [ [|\b|||\b|&\b&] _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2 ... ]
+
+       The standard output of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected via a pipe to the  standard
+       input  of  _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2.   This connection is performed before any redirec-
+       tions specified by the command (see R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN below).  If |\b|&\b& is used,
+       the standard error of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected to _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2's standard input
+       through the pipe; it is shorthand for 2\b2>\b>&\b&1\b1 |\b|.  This implicit  redirect-
+       ion of the standard error is performed after any redirections specified
+       by the command.
+
+       The return status of a pipeline is the exit status of the last command,
+       unless  the  p\bpi\bip\bpe\bef\bfa\bai\bil\bl  option  is enabled.  If p\bpi\bip\bpe\bef\bfa\bai\bil\bl is enabled, the
+       pipeline's return status is the value of the last  (rightmost)  command
+       to  exit  with a non-zero status, or zero if all commands exit success-
+       fully.  If the reserved word !\b!  precedes a pipeline, the exit status of
+       that  pipeline  is the logical negation of the exit status as described
+       above.  The shell waits for all commands in the pipeline  to  terminate
+       before returning a value.
+
+       If  the  t\bti\bim\bme\be reserved word precedes a pipeline, the elapsed as well as
+       user and system time consumed by its execution are  reported  when  the
+       pipeline  terminates.   The -\b-p\bp option changes the output format to that
+       specified by POSIX.  The T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable may be  set  to  a  format
+       string  that  specifies how the timing information should be displayed;
+       see the description of T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs below.
+
+       Each command in a pipeline is executed as a separate process (i.e.,  in
+       a subshell).
+
+   L\bLi\bis\bst\bts\bs
+       A  _\bl_\bi_\bs_\bt  is a sequence of one or more pipelines separated by one of the
+       operators ;\b;, &\b&, &\b&&\b&, or |\b||\b|, and optionally terminated by one of ;\b;, &\b&, or
+       <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>.
+
+       Of these list operators, &\b&&\b& and |\b||\b| have equal precedence, followed by ;\b;
+       and &\b&, which have equal precedence.
+
+       A sequence of one or more newlines may appear in a _\bl_\bi_\bs_\bt  instead  of  a
+       semicolon to delimit commands.
+
+       If  a  command  is terminated by the control operator &\b&, the shell exe-
+       cutes the command in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd in a subshell.  The shell does  not
+       wait  for  the command to finish, and the return status is 0.  Commands
+       separated by a ;\b; are executed sequentially; the shell  waits  for  each
+       command  to terminate in turn.  The return status is the exit status of
+       the last command executed.
+
+       AND and OR lists are sequences of one of more  pipelines  separated  by
+       the  &\b&&\b&  and  |\b||\b| control operators, respectively.  AND and OR lists are
+       executed with left associativity.  An AND list has the form
+
+              _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 &\b&&\b& _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2
+
+       _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2 is executed if, and only if, _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns an  exit  status
+       of zero.
+
+       An OR list has the form
+
+              _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 |\b||\b| _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2
+
+
+       _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2  is  executed  if and only if _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns a non-zero exit
+       status.  The return status of AND and OR lists is the  exit  status  of
+       the last command executed in the list.
+
+   C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+       A _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd is one of the following:
+
+       (_\bl_\bi_\bs_\bt) _\bl_\bi_\bs_\bt  is  executed in a subshell environment (see C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bU-\b-
+              T\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT below).  Variable assignments and builtin  com-
+              mands  that  affect  the  shell's  environment  do not remain in
+              effect after the command completes.  The return  status  is  the
+              exit status of _\bl_\bi_\bs_\bt.
+
+       { _\bl_\bi_\bs_\bt; }
+              _\bl_\bi_\bs_\bt  is simply executed in the current shell environment.  _\bl_\bi_\bs_\bt
+              must be terminated with a newline or semicolon.  This  is  known
+              as  a  _\bg_\br_\bo_\bu_\bp  _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   The return status is the exit status of
+              _\bl_\bi_\bs_\bt.  Note that unlike the metacharacters (\b( and )\b), {\b{ and }\b}  are
+              _\br_\be_\bs_\be_\br_\bv_\be_\bd _\bw_\bo_\br_\bd_\bs and must occur where a reserved word is permitted
+              to be recognized.  Since they do not cause a  word  break,  they
+              must  be  separated  from  _\bl_\bi_\bs_\bt  by  whitespace or another shell
+              metacharacter.
+
+       ((_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn))
+              The _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is evaluated according  to  the  rules  described
+              below  under A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN.  If the value of the expres-
+              sion is non-zero, the return status is 0; otherwise  the  return
+              status is 1.  This is exactly equivalent to l\ble\bet\bt "\b"_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn"\b".
+
+       [\b[[\b[ _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn ]\b]]\b]
+              Return  a  status  of  0 or 1 depending on the evaluation of the
+              conditional expression _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn.  Expressions are composed  of
+              the  primaries  described  below  under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
+              Word splitting and pathname expansion are not performed  on  the
+              words  between  the  [\b[[\b[  and  ]\b]]\b]; tilde expansion, parameter and
+              variable expansion, arithmetic expansion, command  substitution,
+              process  substitution,  and quote removal are performed.  Condi-
+              tional operators such as -\b-f\bf must be unquoted to be recognized as
+              primaries.
+
+              When  the  =\b==\b= and !\b!=\b= operators are used, the string to the right
+              of the operator is considered a pattern and matched according to
+              the  rules described below under P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg.  If the shell
+              option n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh is enabled, the match  is  performed  without
+              regard  to  the case of alphabetic characters.  The return value
+              is 0 if the string matches (=\b==\b=) or does not match (!\b!=\b=) the  pat-
+              tern, and 1 otherwise.  Any part of the pattern may be quoted to
+              force it to be matched as a string.
+
+              An additional binary operator, =\b=~\b~, is available, with  the  same
+              precedence  as  =\b==\b=  and  !\b!=\b=.  When it is used, the string to the
+              right of the operator is considered an extended regular  expres-
+              sion and matched accordingly (as in _\br_\be_\bg_\be_\bx(3)).  The return value
+              is 0 if the string matches the pattern, and 1 otherwise.  If the
+              regular  expression  is syntactically incorrect, the conditional
+              expression's return value is 2.  If the shell option n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
+              is enabled, the match is performed without regard to the case of
+              alphabetic characters.  Any part of the pattern may be quoted to
+              force  it  to  be  matched  as  a string.  Substrings matched by
+              parenthesized subexpressions within the regular  expression  are
+              saved  in  the  array  variable  B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH.   The  element of
+              B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with index 0 is the portion of the string  matching
+              the entire regular expression.  The element of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with
+              index _\bn is the portion of the string matching the _\bnth  parenthe-
+              sized subexpression.
+
+              Expressions  may  be  combined  using  the  following operators,
+              listed in decreasing order of precedence:
+
+              (\b( _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn )\b)
+                     Returns the value of _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn.  This  may  be  used  to
+                     override the normal precedence of operators.
+              !\b! _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
+                     True if _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is false.
+              _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 &\b&&\b& _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2
+                     True if both _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 and _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 are true.
+              _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 |\b||\b| _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2
+                     True if either _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 or _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 is true.
+
+              The &\b&&\b& and |\b||\b| operators do not evaluate _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 if the value
+              of _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 is sufficient to determine the  return  value  of
+              the entire conditional expression.
+
+       f\bfo\bor\br _\bn_\ba_\bm_\be [ i\bin\bn _\bw_\bo_\br_\bd ] ; d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
+              The list of words following i\bin\bn is expanded, generating a list of
+              items.  The variable _\bn_\ba_\bm_\be is set to each element of this list in
+              turn,  and  _\bl_\bi_\bs_\bt is executed each time.  If the i\bin\bn _\bw_\bo_\br_\bd is omit-
+              ted, the f\bfo\bor\br command executes  _\bl_\bi_\bs_\bt  once  for  each  positional
+              parameter that is set (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below).  The return status
+              is the exit status of the last command that  executes.   If  the
+              expansion of the items following i\bin\bn results in an empty list, no
+              commands are executed, and the return status is 0.
+
+       f\bfo\bor\br (( _\be_\bx_\bp_\br_\b1 ; _\be_\bx_\bp_\br_\b2 ; _\be_\bx_\bp_\br_\b3 )) ; d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
+              First, the arithmetic expression _\be_\bx_\bp_\br_\b1 is evaluated according to
+              the  rules  described  below  under  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN.  The
+              arithmetic expression _\be_\bx_\bp_\br_\b2 is then evaluated  repeatedly  until
+              it  evaluates  to zero.  Each time _\be_\bx_\bp_\br_\b2 evaluates to a non-zero
+              value, _\bl_\bi_\bs_\bt is executed and the arithmetic expression  _\be_\bx_\bp_\br_\b3  is
+              evaluated.   If  any  expression is omitted, it behaves as if it
+              evaluates to 1.  The return value is the exit status of the last
+              command in _\bl_\bi_\bs_\bt that is executed, or false if any of the expres-
+              sions is invalid.
+
+       s\bse\bel\ble\bec\bct\bt _\bn_\ba_\bm_\be [ i\bin\bn _\bw_\bo_\br_\bd ] ; d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
+              The list of words following i\bin\bn is expanded, generating a list of
+              items.   The  set  of  expanded words is printed on the standard
+              error, each preceded by a number.  If the i\bin\bn  _\bw_\bo_\br_\bd  is  omitted,
+              the  positional  parameters  are printed (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below).
+              The P\bPS\bS3\b3 prompt is then displayed and a line read from the  stan-
+              dard  input.   If the line consists of a number corresponding to
+              one of the displayed words, then the value of  _\bn_\ba_\bm_\be  is  set  to
+              that  word.  If the line is empty, the words and prompt are dis-
+              played again.  If EOF is read, the command completes.  Any other
+              value  read  causes  _\bn_\ba_\bm_\be  to  be set to null.  The line read is
+              saved in the variable R\bRE\bEP\bPL\bLY\bY.  The _\bl_\bi_\bs_\bt is  executed  after  each
+              selection until a b\bbr\bre\bea\bak\bk command is executed.  The exit status of
+              s\bse\bel\ble\bec\bct\bt is the exit status of the last command executed in  _\bl_\bi_\bs_\bt,
+              or zero if no commands were executed.
+
+       c\bca\bas\bse\be _\bw_\bo_\br_\bd i\bin\bn [ [(] _\bp_\ba_\bt_\bt_\be_\br_\bn [ |\b| _\bp_\ba_\bt_\bt_\be_\br_\bn ] ... ) _\bl_\bi_\bs_\bt ;; ] ... e\bes\bsa\bac\bc
+              A c\bca\bas\bse\be command first expands _\bw_\bo_\br_\bd, and tries to match it against
+              each _\bp_\ba_\bt_\bt_\be_\br_\bn in turn, using the same matching rules as for path-
+              name  expansion  (see  P\bPa\bat\bth\bhn\bna\bam\bme\be  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn  below).  The _\bw_\bo_\br_\bd is
+              expanded using tilde expansion, parameter  and  variable  expan-
+              sion,  arithmetic  substitution,  command  substitution, process
+              substitution  and  quote  removal.   Each  _\bp_\ba_\bt_\bt_\be_\br_\bn  examined  is
+              expanded  using  tilde  expansion, parameter and variable expan-
+              sion, arithmetic substitution, command substitution, and process
+              substitution.   If  the shell option n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh is enabled, the
+              match is performed without regard  to  the  case  of  alphabetic
+              characters.   When  a  match is found, the corresponding _\bl_\bi_\bs_\bt is
+              executed.  If the ;\b;;\b; operator is used, no subsequent matches are
+              attempted  after  the first pattern match.  Using ;\b;&\b& in place of
+              ;\b;;\b; causes execution to continue with the  _\bl_\bi_\bs_\bt  associated  with
+              the  next  set of patterns.  Using ;\b;;\b;&\b& in place of ;\b;;\b; causes the
+              shell to test the next pattern list in the  statement,  if  any,
+              and execute any associated _\bl_\bi_\bs_\bt on a successful match.  The exit
+              status is zero if no pattern matches.  Otherwise, it is the exit
+              status of the last command executed in _\bl_\bi_\bs_\bt.
+
+       i\bif\bf _\bl_\bi_\bs_\bt; t\bth\bhe\ben\bn _\bl_\bi_\bs_\bt_\b; [ e\bel\bli\bif\bf _\bl_\bi_\bs_\bt; t\bth\bhe\ben\bn _\bl_\bi_\bs_\bt; ] ... [ e\bel\bls\bse\be _\bl_\bi_\bs_\bt; ] f\bfi\bi
+              The  i\bif\bf  _\bl_\bi_\bs_\bt is executed.  If its exit status is zero, the t\bth\bhe\ben\bn
+              _\bl_\bi_\bs_\bt is executed.  Otherwise, each  e\bel\bli\bif\bf  _\bl_\bi_\bs_\bt  is  executed  in
+              turn,  and  if  its  exit status is zero, the corresponding t\bth\bhe\ben\bn
+              _\bl_\bi_\bs_\bt is executed and the command completes.  Otherwise, the e\bel\bls\bse\be
+              _\bl_\bi_\bs_\bt  is executed, if present.  The exit status is the exit sta-
+              tus of the last command executed, or zero if no condition tested
+              true.
+
+       w\bwh\bhi\bil\ble\be _\bl_\bi_\bs_\bt; d\bdo\bo _\bl_\bi_\bs_\bt; d\bdo\bon\bne\be
+       u\bun\bnt\bti\bil\bl _\bl_\bi_\bs_\bt; d\bdo\bo _\bl_\bi_\bs_\bt; d\bdo\bon\bne\be
+              The  w\bwh\bhi\bil\ble\be  command continuously executes the d\bdo\bo _\bl_\bi_\bs_\bt as long as
+              the last command in _\bl_\bi_\bs_\bt returns an exit status  of  zero.   The
+              u\bun\bnt\bti\bil\bl command is identical to the w\bwh\bhi\bil\ble\be command, except that the
+              test is negated; the d\bdo\bo _\bl_\bi_\bs_\bt is executed as  long  as  the  last
+              command in _\bl_\bi_\bs_\bt returns a non-zero exit status.  The exit status
+              of the w\bwh\bhi\bil\ble\be and u\bun\bnt\bti\bil\bl commands is the exit status of  the  last
+              d\bdo\bo _\bl_\bi_\bs_\bt command executed, or zero if none was executed.
+
+   C\bCo\bop\bpr\bro\boc\bce\bes\bss\bse\bes\bs
+       A _\bc_\bo_\bp_\br_\bo_\bc_\be_\bs_\bs is a shell command preceded by the c\bco\bop\bpr\bro\boc\bc reserved word.  A
+       coprocess is executed asynchronously in a subshell, as if  the  command
+       had  been  terminated  with the &\b& control operator, with a two-way pipe
+       established between the executing shell and the coprocess.
+
+       The format for a coprocess is:
+
+              c\bco\bop\bpr\bro\boc\bc [_\bN_\bA_\bM_\bE] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn_\bs]
+
+       This creates a coprocess named _\bN_\bA_\bM_\bE.  If  _\bN_\bA_\bM_\bE  is  not  supplied,  the
+       default name is _\bC_\bO_\bP_\bR_\bO_\bC.  _\bN_\bA_\bM_\bE must not be supplied if _\bc_\bo_\bm_\bm_\ba_\bn_\bd is a _\bs_\bi_\bm_\b-
+       _\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd (see above); otherwise, it is interpreted as the first word
+       of  the simple command.  When the coproc is executed, the shell creates
+       an array variable (see A\bAr\brr\bra\bay\bys\bs below) named _\bN_\bA_\bM_\bE in the context  of  the
+       executing  shell.   The  standard  output of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected via a
+       pipe to a file  descriptor  in  the  executing  shell,  and  that  file
+       descriptor  is  assigned  to _\bN_\bA_\bM_\bE[0].  The standard input of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is
+       connected via a pipe to a file descriptor in the executing  shell,  and
+       that  file descriptor is assigned to _\bN_\bA_\bM_\bE[1].  This pipe is established
+       before any redirections  specified  by  the  command  (see  R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
+       below).   The  file  descriptors  can be utilized as arguments to shell
+       commands and redirections using standard word expansions.  The  process
+       id  of  the  shell spawned to execute the coprocess is available as the
+       value of the variable _\bN_\bA_\bM_\bE_PID.  The w\bwa\bai\bit\bt builtin command may  be  used
+       to wait for the coprocess to terminate.
+
+       The return status of a coprocess is the exit status of _\bc_\bo_\bm_\bm_\ba_\bn_\bd.
+
+   S\bSh\bhe\bel\bll\bl F\bFu\bun\bnc\bct\bti\bio\bon\bn D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bns\bs
+       A  shell function is an object that is called like a simple command and
+       executes a compound command with a new set  of  positional  parameters.
+       Shell functions are declared as follows:
+
+       [ f\bfu\bun\bnc\bct\bti\bio\bon\bn ] _\bn_\ba_\bm_\be () _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\br_\be_\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn]
+              This  defines a function named _\bn_\ba_\bm_\be.  The reserved word f\bfu\bun\bnc\bct\bti\bio\bon\bn
+              is optional.  If the f\bfu\bun\bnc\bct\bti\bio\bon\bn reserved  word  is  supplied,  the
+              parentheses  are optional.  The _\bb_\bo_\bd_\by of the function is the com-
+              pound command _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd (see  C\bCo\bom\bmp\bpo\bou\bun\bnd\bd  C\bCo\bom\bmm\bma\ban\bnd\bds\bs  above).
+              That  command is usually a _\bl_\bi_\bs_\bt of commands between { and }, but
+              may be any command listed under C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs  above.   _\bc_\bo_\bm_\b-
+              _\bp_\bo_\bu_\bn_\bd_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed whenever _\bn_\ba_\bm_\be is specified as the name
+              of a simple command.  Any redirections (see  R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN  below)
+              specified  when  a  function  is  defined are performed when the
+              function is executed.  The exit status of a function  definition
+              is zero unless a syntax error occurs or a readonly function with
+              the same name already exists.  When executed, the exit status of
+              a  function  is  the exit status of the last command executed in
+              the body.  (See F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS below.)
+
+C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS
+       In a non-interactive shell, or an interactive shell in which the i\bin\bnt\bte\ber\br-\b-
+       a\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs  option  to  the  s\bsh\bho\bop\bpt\bt  builtin  is enabled (see S\bSH\bHE\bEL\bLL\bL
+       B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), a word beginning with #\b# causes that  word  and
+       all  remaining  characters  on that line to be ignored.  An interactive
+       shell without the i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs option enabled  does  not  allow
+       comments.  The i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs option is on by default in interac-
+       tive shells.
+
+Q\bQU\bUO\bOT\bTI\bIN\bNG\bG
+       _\bQ_\bu_\bo_\bt_\bi_\bn_\bg is used to remove the special meaning of certain characters  or
+       words  to  the shell.  Quoting can be used to disable special treatment
+       for special characters, to prevent reserved words from being recognized
+       as such, and to prevent parameter expansion.
+
+       Each  of  the _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs listed above under D\bDE\bEF\bFI\bIN\bNI\bIT\bTI\bIO\bON\bNS\bS 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  H\bHI\bIS\bS-\b-
+       T\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below), the _\bh_\bi_\bs_\bt_\bo_\br_\by _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn character, usually !\b!, must
+       be quoted to prevent history expansion.
+
+       There are  three  quoting  mechanisms:  the  _\be_\bs_\bc_\ba_\bp_\be  _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br,  single
+       quotes, and double quotes.
+
+       A  non-quoted  backslash (\\b\) is the _\be_\bs_\bc_\ba_\bp_\be _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br.  It preserves the
+       literal value of the next character that follows, with the exception of
+       <newline>.   If  a  \\b\<newline>  pair  appears, and the backslash is not
+       itself quoted, the \\b\<newline> is treated as a line  continuation  (that
+       is, it is removed from the input stream and effectively ignored).
+
+       Enclosing  characters  in  single quotes preserves the literal value of
+       each character within the quotes.  A single quote may not occur between
+       single quotes, even when preceded by a backslash.
+
+       Enclosing  characters  in  double quotes preserves the literal value of
+       all characters within the quotes, with the exception of $\b$, `\b`,  \\b\,  and,
+       when  history  expansion  is enabled, !\b!.  The characters $\b$ and `\b` retain
+       their special meaning within double quotes.  The backslash retains  its
+       special  meaning only when followed by one of the following characters:
+       $\b$, `\b`, "\b", \\b\, or <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>.  A double quote may be quoted  within  double
+       quotes by preceding it with a backslash.  If enabled, history expansion
+       will be performed unless an !\b!  appearing in double  quotes  is  escaped
+       using a backslash.  The backslash preceding the !\b!  is not removed.
+
+       The  special  parameters  *\b*  and  @\b@ have special meaning when in double
+       quotes (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below).
+
+       Words of the form $\b$'_\bs_\bt_\br_\bi_\bn_\bg' are treated specially.  The word expands to
+       _\bs_\bt_\br_\bi_\bn_\bg,  with backslash-escaped characters replaced as specified by the
+       ANSI C standard.  Backslash escape sequences, if present,  are  decoded
+       as follows:
+              \\b\a\ba     alert (bell)
+              \\b\b\bb     backspace
+              \\b\e\be     an escape character
+              \\b\f\bf     form feed
+              \\b\n\bn     new line
+              \\b\r\br     carriage return
+              \\b\t\bt     horizontal tab
+              \\b\v\bv     vertical tab
+              \\b\\\b\     backslash
+              \\b\'\b'     single quote
+              \\b\_\bn_\bn_\bn   the  eight-bit  character  whose value is the octal value
+                     _\bn_\bn_\bn (one to three digits)
+              \\b\x\bx_\bH_\bH   the eight-bit character whose value  is  the  hexadecimal
+                     value _\bH_\bH (one or two hex digits)
+              \\b\c\bc_\bx    a control-_\bx character
+
+       The  expanded  result  is  single-quoted, as if the dollar sign had not
+       been present.
+
+       A double-quoted string preceded by a dollar sign  ($\b$)  will  cause  the
+       string  to  be translated according to the current locale.  If the cur-
+       rent locale is C\bC or P\bPO\bOS\bSI\bIX\bX, the dollar sign is ignored.  If  the  string
+       is translated and replaced, the replacement is double-quoted.
+
+P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
+       A  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an entity that stores values.  It can be a _\bn_\ba_\bm_\be, a num-
+       ber, or one of the special characters listed below under S\bSp\bpe\bec\bci\bia\bal\bl P\bPa\bar\bra\bam\bm-\b-
+       e\bet\bte\ber\brs\bs.   A _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be is a parameter denoted by a _\bn_\ba_\bm_\be.  A variable has a
+       _\bv_\ba_\bl_\bu_\be and zero or more _\ba_\bt_\bt_\br_\bi_\bb_\bu_\bt_\be_\bs.  Attributes are assigned  using  the
+       d\bde\bec\bcl\bla\bar\bre\be  builtin command (see d\bde\bec\bcl\bla\bar\bre\be below in S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS).
+
+       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
+       the u\bun\bns\bse\bet\bt builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
+
+       A _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be may be assigned to by a statement of the form
+
+              _\bn_\ba_\bm_\be=[_\bv_\ba_\bl_\bu_\be]
+
+       If _\bv_\ba_\bl_\bu_\be is not given, the variable is assigned the null  string.   All
+       _\bv_\ba_\bl_\bu_\be_\bs  undergo tilde expansion, parameter and variable expansion, com-
+       mand substitution, arithmetic expansion, and quote removal (see  E\bEX\bXP\bPA\bAN\bN-\b-
+       S\bSI\bIO\bON\bN below).  If the variable has its i\bin\bnt\bte\beg\bge\ber\br attribute set, then _\bv_\ba_\bl_\bu_\be
+       is evaluated as an arithmetic expression even if the $((...)) expansion
+       is  not  used  (see A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn below).  Word splitting is not
+       performed, with the exception of "\b"$\b$@\b@"\b" as explained below under  S\bSp\bpe\bec\bci\bia\bal\bl
+       P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs.   Pathname  expansion  is not performed.  Assignment state-
+       ments may also appear as arguments  to  the  a\bal\bli\bia\bas\bs,  d\bde\bec\bcl\bla\bar\bre\be,  t\bty\byp\bpe\bes\bse\bet\bt,
+       e\bex\bxp\bpo\bor\brt\bt, r\bre\bea\bad\bdo\bon\bnl\bly\by, and l\blo\boc\bca\bal\bl builtin commands.
+
+       In  the context where an assignment statement is assigning a value to a
+       shell variable or array index, the += operator can be used to append to
+       or add to the variable's previous value.  When += is applied to a vari-
+       able for which the integer attribute has been set, _\bv_\ba_\bl_\bu_\be  is  evaluated
+       as  an arithmetic expression and added to the variable's current value,
+       which is also evaluated.  When += is applied to an array variable using
+       compound  assignment  (see  A\bAr\brr\bra\bay\bys\bs  below), the variable's value is not
+       unset (as it is when using =), and new values are appended to the array
+       beginning  at  one  greater than the array's maximum index (for indexed
+       arrays) or added as additional key-value pairs in an associative array.
+       When  applied  to  a  string-valued  variable,  _\bv_\ba_\bl_\bu_\be  is  expanded and
+       appended to the variable's value.
+
+   P\bPo\bos\bsi\bit\bti\bio\bon\bna\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
+       A _\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn_\ba_\bl _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a parameter denoted by one  or  more  digits,
+       other than the single digit 0.  Positional parameters are assigned from
+       the shell's arguments when it is invoked, and may be  reassigned  using
+       the  s\bse\bet\bt builtin command.  Positional parameters may not be assigned to
+       with assignment statements.  The positional parameters are  temporarily
+       replaced when a shell function is executed (see F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS below).
+
+       When  a  positional parameter consisting of more than a single digit is
+       expanded, it must be enclosed in braces (see E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below).
+
+   S\bSp\bpe\bec\bci\bia\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
+       The shell treats several parameters specially.   These  parameters  may
+       only be referenced; assignment to them is not allowed.
+       *\b*      Expands  to  the positional parameters, starting from one.  When
+              the expansion occurs within double quotes, it expands to a  sin-
+              gle word with the value of each parameter separated by the first
+              character of the I\bIF\bFS\bS special variable.  That is, "$\b$*\b*" is equiva-
+              lent to "$\b$1\b1_\bc$\b$2\b2_\bc.\b..\b..\b.", where _\bc is the first character of the value
+              of the I\bIF\bFS\bS variable.  If I\bIF\bFS\bS is unset, the parameters are  sepa-
+              rated  by  spaces.   If  I\bIF\bFS\bS  is null, the parameters are joined
+              without intervening separators.
+       @\b@      Expands to the positional parameters, starting from  one.   When
+              the  expansion  occurs  within  double  quotes,  each  parameter
+              expands to a separate word.  That is, "$\b$@\b@" is equivalent to "$\b$1\b1"
+              "$\b$2\b2"  ...   If the double-quoted expansion occurs within a word,
+              the expansion of the first parameter is joined with  the  begin-
+              ning  part  of  the original word, and the expansion of the last
+              parameter is joined with the last part  of  the  original  word.
+              When  there  are no positional parameters, "$\b$@\b@" and $\b$@\b@ expand to
+              nothing (i.e., they are removed).
+       #\b#      Expands to the number of positional parameters in decimal.
+       ?\b?      Expands to the exit status of the most recently  executed  fore-
+              ground pipeline.
+       -\b-      Expands  to  the  current option flags as specified upon invoca-
+              tion, by the s\bse\bet\bt builtin command, or  those  set  by  the  shell
+              itself (such as the -\b-i\bi option).
+       $\b$      Expands  to  the  process ID of the shell.  In a () subshell, it
+              expands to the process ID of the current  shell,  not  the  sub-
+              shell.
+       !\b!      Expands  to  the  process ID of the most recently executed back-
+              ground (asynchronous) command.
+       0\b0      Expands to the name of the shell or shell script.  This  is  set
+              at shell initialization.  If b\bba\bas\bsh\bh is invoked with a file of com-
+              mands, $\b$0\b0 is set to the name of that file.  If b\bba\bas\bsh\bh  is  started
+              with  the  -\b-c\bc option, then $\b$0\b0 is set to the first argument after
+              the string to be executed, if one is present.  Otherwise, it  is
+              set  to  the file name used to invoke b\bba\bas\bsh\bh, as given by argument
+              zero.
+       _\b_      At shell startup, set to the absolute pathname  used  to  invoke
+              the  shell or shell script being executed as passed in the envi-
+              ronment or argument list.  Subsequently,  expands  to  the  last
+              argument  to the previous command, after expansion.  Also set to
+              the full pathname used  to  invoke  each  command  executed  and
+              placed in the environment exported to that command.  When check-
+              ing mail, this parameter holds the name of the  mail  file  cur-
+              rently being checked.
+
+   S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
+       The following variables are set by the shell:
+
+       B\bBA\bAS\bSH\bH   Expands  to  the  full file name used to invoke this instance of
+              b\bba\bas\bsh\bh.
+       B\bBA\bAS\bSH\bHP\bPI\bID\bD
+              Expands to the process id of the  current  b\bba\bas\bsh\bh  process.   This
+              differs  from  $\b$$\b$ under certain circumstances, such as subshells
+              that do not require b\bba\bas\bsh\bh to be re-initialized.
+       B\bBA\bAS\bSH\bH_\b_A\bAL\bLI\bIA\bAS\bSE\bES\bS
+              An associative array variable whose members  correspond  to  the
+              internal list of aliases as maintained by the a\bal\bli\bia\bas\bs builtin Ele-
+              ments added to this array appear in the  alias  list;  unsetting
+              array  elements cause aliases to be removed from the alias list.
+       B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC
+              An array variable whose values are the number of  parameters  in
+              each frame of the current b\bba\bas\bsh\bh execution call stack.  The number
+              of parameters to  the  current  subroutine  (shell  function  or
+              script  executed  with  .\b. or s\bso\bou\bur\brc\bce\be) is at the top of the stack.
+              When a subroutine is executed, the number of  parameters  passed
+              is pushed onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC.  The shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC only when in
+              extended debugging mode (see the  description  of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg
+              option to the s\bsh\bho\bop\bpt\bt builtin below)
+       B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV
+              An  array  variable containing all of the parameters in the cur-
+              rent b\bba\bas\bsh\bh 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 at the bottom.  When a subroutine is exe-
+              cuted,  the  parameters supplied are pushed onto B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV.  The
+              shell sets B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV only when in extended debugging  mode  (see
+              the  description  of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg  option to the s\bsh\bho\bop\bpt\bt builtin
+              below)
+       B\bBA\bAS\bSH\bH_\b_C\bCM\bMD\bDS\bS
+              An associative array variable whose members  correspond  to  the
+              internal  hash  table  of  commands  as  maintained  by the h\bha\bas\bsh\bh
+              builtin.  Elements added to this array appear in the hash table;
+              unsetting  array  elements cause commands to be removed from the
+              hash table.
+       B\bBA\bAS\bSH\bH_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD
+              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.
+       B\bBA\bAS\bSH\bH_\b_E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN_\b_S\bST\bTR\bRI\bIN\bNG\bG
+              The command argument to the -\b-c\bc invocation option.
+       B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO
+              An  array  variable whose members are the line numbers in source
+              files   corresponding    to    each    member    of    F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE.
+              $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b}  is  the line number in the source file where
+              $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} was called (or  $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b}  if  refer-
+              enced  within another shell function).  The corresponding source
+              file name is $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}.\b.  U\bUs\bse\be L\bLI\bIN\bNE\bEN\bNO\bO t\bto\bo o\bob\bbt\bta\bai\bin\bn t\bth\bhe\be  c\bcu\bur\br-\b-
+              r\bre\ben\bnt\bt l\bli\bin\bne\be n\bnu\bum\bmb\bbe\ber\br.\b.
+       B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH
+              An  array  variable  whose members are assigned by the =\b=~\b~ binary
+              operator to the [\b[[\b[ conditional command.  The element with  index
+              0  is  the  portion  of  the  string matching the entire regular
+              expression.  The element with index _\bn  is  the  portion  of  the
+              string matching the _\bnth parenthesized subexpression.  This vari-
+              able is read-only.
+       B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE
+              An array variable whose members are the source filenames  corre-
+              sponding to the elements in the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE array variable.
+       B\bBA\bAS\bSH\bH_\b_S\bSU\bUB\bBS\bSH\bHE\bEL\bLL\bL
+              Incremented  by one each time a subshell or subshell environment
+              is spawned.  The initial value is 0.
+       B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO
+              A readonly array variable whose members hold version information
+              for  this  instance  of  b\bba\bas\bsh\bh.  The values assigned to the array
+              members are as follows:
+              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[0]\b]        The major version number (the  _\br_\be_\bl_\be_\ba_\bs_\be).
+              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[1]\b]        The  minor version number (the _\bv_\be_\br_\bs_\bi_\bo_\bn).
+              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[2]\b]        The patch level.
+              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[3]\b]        The build version.
+              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[4]\b]        The release status (e.g., _\bb_\be_\bt_\ba_\b1).
+              B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIN\bNF\bFO\bO[\b[5]\b]        The value of M\bMA\bAC\bCH\bHT\bTY\bYP\bPE\bE.
+
+       B\bBA\bAS\bSH\bH_\b_V\bVE\bER\bRS\bSI\bIO\bON\bN
+              Expands to a string describing the version of this  instance  of
+              b\bba\bas\bsh\bh.
+
+       C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD
+              An  index  into $\b${\b{C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS}\b} of the word containing the current
+              cursor position.  This variable is available only in shell func-
+              tions  invoked  by  the  programmable completion facilities (see
+              P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
+
+       C\bCO\bOM\bMP\bP_\b_K\bKE\bEY\bY
+              The key (or final key of a key sequence) used to invoke the cur-
+              rent completion function.
+
+       C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE
+              The  current  command  line.  This variable is available only in
+              shell functions  and  external  commands  invoked  by  the  pro-
+              grammable  completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+              below).
+
+       C\bCO\bOM\bMP\bP_\b_P\bPO\bOI\bIN\bNT\bT
+              The index of the current cursor position relative to the  begin-
+              ning  of the current command.  If the current cursor position is
+              at the end of the current command, the value of this variable is
+              equal  to  $\b${\b{#\b#C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE}\b}.   This  variable  is available only in
+              shell functions  and  external  commands  invoked  by  the  pro-
+              grammable  completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+              below).
+
+       C\bCO\bOM\bMP\bP_\b_T\bTY\bYP\bPE\bE
+              Set to an integer value corresponding to the type of  completion
+              attempted  that  caused a completion function to be called: _\bT_\bA_\bB,
+              for normal completion, _\b?, for listing completions after  succes-
+              sive  tabs,  _\b!, for listing alternatives on partial word comple-
+              tion, _\b@, to list completions if the word is not  unmodified,  or
+              _\b%,  for  menu  completion.   This  variable is available only in
+              shell functions  and  external  commands  invoked  by  the  pro-
+              grammable  completion  facilities  (see  P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+              below).
+
+       C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
+              The set of characters that the Readline library treats  as  word
+              separators  when performing word completion.  If C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
+              is unset, it loses its special properties, even if it is  subse-
+              quently reset.
+
+       C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS
+              An  array variable (see A\bAr\brr\bra\bay\bys\bs below) consisting of the individ-
+              ual words in the current command line.  The words are  split  on
+              shell  metacharacters  as  the shell parser would separate them.
+              This variable is available only in shell  functions  invoked  by
+              the programmable completion facilities (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\be-\b-
+              t\bti\bio\bon\bn below).
+
+       D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK
+              An array variable (see A\bAr\brr\bra\bay\bys\bs below) containing the current con-
+              tents  of  the directory stack.  Directories appear in the stack
+              in the order they are displayed by the d\bdi\bir\brs\bs builtin.   Assigning
+              to members of this array variable may be used to modify directo-
+              ries already in the stack, but the p\bpu\bus\bsh\bhd\bd and p\bpo\bop\bpd\bd builtins  must
+              be used to add and remove directories.  Assignment to this vari-
+              able will not change the  current  directory.   If  D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK  is
+              unset,  it  loses  its  special properties, even if it is subse-
+              quently reset.
+
+       E\bEU\bUI\bID\bD   Expands to the effective user ID of the current  user,  initial-
+              ized at shell startup.  This variable is readonly.
+
+       F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE
+              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 shell function.  The bot-
+              tom-most element is "main".  This variable exists  only  when  a
+              shell  function  is  executing.  Assignments to F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE have no
+              effect and return an error status.  If  F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE  is  unset,  it
+              loses  its special properties, even if it is subsequently reset.
+
+       G\bGR\bRO\bOU\bUP\bPS\bS An array variable containing the list of  groups  of  which  the
+              current  user is a member.  Assignments to G\bGR\bRO\bOU\bUP\bPS\bS have no effect
+              and return an error status.  If G\bGR\bRO\bOU\bUP\bPS\bS is unset,  it  loses  its
+              special properties, even if it is subsequently reset.
+
+       H\bHI\bIS\bST\bTC\bCM\bMD\bD
+              The history number, or index in the history list, of the current
+              command.  If H\bHI\bIS\bST\bTC\bCM\bMD\bD is unset, it loses its special  properties,
+              even if it is subsequently reset.
+
+       H\bHO\bOS\bST\bTN\bNA\bAM\bME\bE
+              Automatically set to the name of the current host.
+
+       H\bHO\bOS\bST\bTT\bTY\bYP\bPE\bE
+              Automatically  set  to a string that uniquely describes the type
+              of machine on which b\bba\bas\bsh\bh is executing.  The default  is  system-
+              dependent.
+
+       L\bLI\bIN\bNE\bEN\bNO\bO Each  time this parameter is referenced, the shell substitutes a
+              decimal number representing the current sequential  line  number
+              (starting  with  1)  within a script or function.  When not in a
+              script or function, the value substituted is not  guaranteed  to
+              be meaningful.  If L\bLI\bIN\bNE\bEN\bNO\bO is unset, it loses its special proper-
+              ties, even if it is subsequently reset.
+
+       M\bMA\bAC\bCH\bHT\bTY\bYP\bPE\bE
+              Automatically set to a string that fully  describes  the  system
+              type  on  which  b\bba\bas\bsh\bh is executing, in the standard GNU _\bc_\bp_\bu_\b-_\bc_\bo_\bm_\b-
+              _\bp_\ba_\bn_\by_\b-_\bs_\by_\bs_\bt_\be_\bm format.  The default is system-dependent.
+
+       O\bOL\bLD\bDP\bPW\bWD\bD The previous working directory as set by the c\bcd\bd command.
+
+       O\bOP\bPT\bTA\bAR\bRG\bG The value of the last option argument processed by  the  g\bge\bet\bto\bop\bpt\bts\bs
+              builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
+
+       O\bOP\bPT\bTI\bIN\bND\bD The  index  of  the next argument to be processed by the g\bge\bet\bto\bop\bpt\bts\bs
+              builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
+
+       O\bOS\bST\bTY\bYP\bPE\bE Automatically set to a string that describes the operating  sys-
+              tem  on  which  b\bba\bas\bsh\bh is executing.  The default is system-depen-
+              dent.
+
+       P\bPI\bIP\bPE\bES\bST\bTA\bAT\bTU\bUS\bS
+              An array variable (see A\bAr\brr\bra\bay\bys\bs below) 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\bPP\bPI\bID\bD   The process ID of the shell's parent.  This  variable  is  read-
+              only.
+
+       P\bPW\bWD\bD    The current working directory as set by the c\bcd\bd command.
+
+       R\bRA\bAN\bND\bDO\bOM\bM Each time this parameter is referenced, a random integer between
+              0 and 32767 is generated.  The sequence of random numbers may be
+              initialized by assigning a value to R\bRA\bAN\bND\bDO\bOM\bM.  If R\bRA\bAN\bND\bDO\bOM\bM is unset,
+              it loses its special properties,  even  if  it  is  subsequently
+              reset.
+
+       R\bRE\bEP\bPL\bLY\bY  Set  to  the line of input read by the r\bre\bea\bad\bd builtin command when
+              no arguments are supplied.
+
+       S\bSE\bEC\bCO\bON\bND\bDS\bS
+              Each time this parameter is referenced, the  number  of  seconds
+              since  shell  invocation is returned.  If a value is assigned to
+              S\bSE\bEC\bCO\bON\bND\bDS\bS, the value returned upon subsequent  references  is  the
+              number  of seconds since the assignment plus the value assigned.
+              If S\bSE\bEC\bCO\bON\bND\bDS\bS is unset, it loses its special properties, even if it
+              is subsequently reset.
+
+       S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS
+              A  colon-separated  list of enabled shell options.  Each word in
+              the list is a valid argument  for  the  -\b-o\bo  option  to  the  s\bse\bet\bt
+              builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  The options
+              appearing in S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS are those reported as _\bo_\bn by s\bse\bet\bt  -\b-o\bo.   If
+              this  variable  is  in the environment when b\bba\bas\bsh\bh starts up, each
+              shell option in the list will  be  enabled  before  reading  any
+              startup files.  This variable is read-only.
+
+       S\bSH\bHL\bLV\bVL\bL  Incremented by one each time an instance of b\bba\bas\bsh\bh is started.
+
+       U\bUI\bID\bD    Expands to the user ID of the current user, initialized at shell
+              startup.  This variable is readonly.
+
+       The following variables are used by the shell.   In  some  cases,  b\bba\bas\bsh\bh
+       assigns a default value to a variable; these cases are noted below.
+
+       B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV
+              If  this parameter is set when b\bba\bas\bsh\bh is executing a shell script,
+              its value is interpreted as a filename  containing  commands  to
+              initialize the shell, as in _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc.  The value of B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV is
+              subjected to  parameter  expansion,  command  substitution,  and
+              arithmetic  expansion  before  being interpreted as a file name.
+              P\bPA\bAT\bTH\bH is not used to search for the resultant file name.
+       C\bCD\bDP\bPA\bAT\bTH\bH The search path for the c\bcd\bd command.  This is  a  colon-separated
+              list  of  directories  in  which the shell looks for destination
+              directories specified by the c\bcd\bd  command.   A  sample  value  is
+              ".:~:/usr".
+       C\bCO\bOL\bLU\bUM\bMN\bNS\bS
+              Used  by  the  s\bse\bel\ble\bec\bct\bt  builtin command to determine the terminal
+              width when printing selection  lists.   Automatically  set  upon
+              receipt of a SIGWINCH.
+       C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
+              An array variable from which b\bba\bas\bsh\bh reads the possible completions
+              generated by a shell function invoked by the  programmable  com-
+              pletion facility (see P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
+       E\bEM\bMA\bAC\bCS\bS  If  b\bba\bas\bsh\bh  finds  this variable in the environment when the shell
+              starts with value "t", it assumes that the shell is  running  in
+              an emacs shell buffer and disables line editing.
+       F\bFC\bCE\bED\bDI\bIT\bT The default editor for the f\bfc\bc builtin command.
+       F\bFI\bIG\bGN\bNO\bOR\bRE\bE
+              A  colon-separated  list  of  suffixes to ignore when performing
+              filename completion (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE below).  A filename whose suf-
+              fix  matches  one of the entries in F\bFI\bIG\bGN\bNO\bOR\bRE\bE is excluded from the
+              list of matched filenames.  A sample value is ".o:~".
+       G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE
+              A colon-separated list of patterns defining the set of filenames
+              to be ignored by pathname expansion.  If a filename matched by a
+              pathname expansion pattern also matches one of the  patterns  in
+              G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE, it is removed from the list of matches.
+       H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL
+              A  colon-separated  list  of values controlling how commands are
+              saved on the history list.   If  the  list  of  values  includes
+              _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be,  lines  which  begin with a s\bsp\bpa\bac\bce\be character are not
+              saved in the history list.  A value of _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs  causes  lines
+              matching the previous history entry to not be saved.  A value of
+              _\bi_\bg_\bn_\bo_\br_\be_\bb_\bo_\bt_\bh is shorthand for _\bi_\bg_\bn_\bo_\br_\be_\bs_\bp_\ba_\bc_\be and _\bi_\bg_\bn_\bo_\br_\be_\bd_\bu_\bp_\bs.  A value
+              of _\be_\br_\ba_\bs_\be_\bd_\bu_\bp_\bs causes all previous lines matching the current line
+              to be removed from the history list before that line  is  saved.
+              Any  value  not in the above list is ignored.  If H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL is
+              unset, or does not include a valid value, all lines read by  the
+              shell parser are saved on the history list, subject to the value
+              of H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE.  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 H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL.
+       H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE
+              The name of the file in which command history is saved (see H\bHI\bIS\bS-\b-
+              T\bTO\bOR\bRY\bY  below).   The default value is _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by.  If unset,
+              the command history is  not  saved  when  an  interactive  shell
+              exits.
+       H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE
+              The maximum number of lines contained in the history file.  When
+              this variable is assigned a value, the  history  file  is  trun-
+              cated,  if necessary, by removing the oldest entries, to contain
+              no more than that number of lines.  The default  value  is  500.
+              The history file is also truncated to this size after writing it
+              when an interactive shell exits.
+       H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE
+              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  com-
+              plete  line  (no  implicit  `*\b*'  is  appended).  Each pattern is
+              tested against the line after the checks specified  by  H\bHI\bIS\bST\bTC\bCO\bON\bN-\b-
+              T\bTR\bRO\bOL\bL  are  applied.   In  addition  to  the normal shell pattern
+              matching characters, `&\b&' matches the previous history line.  `&\b&'
+              may  be  escaped  using  a  backslash;  the backslash is removed
+              before attempting a match.  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 H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE.
+       H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE
+              The number of commands to remember in the command  history  (see
+              H\bHI\bIS\bST\bTO\bOR\bRY\bY below).  The default value is 500.
+       H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT
+              If  this  variable  is  set and not null, its value is used as a
+              format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to print the time stamp associated
+              with  each  history  entry displayed by the h\bhi\bis\bst\bto\bor\bry\by builtin.  If
+              this variable is set, time stamps are  written  to  the  history
+              file  so they may be preserved across shell sessions.  This uses
+              the history comment character  to  distinguish  timestamps  from
+              other history lines.
+       H\bHO\bOM\bME\bE   The home directory of the current user; the default argument for
+              the c\bcd\bd builtin command.  The value of this variable is also used
+              when performing tilde expansion.
+       H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE
+              Contains  the  name  of  a file in the same format as _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs
+              that should be read when the shell needs to complete a hostname.
+              The  list  of possible hostname completions may be changed while
+              the shell is running;  the  next  time  hostname  completion  is
+              attempted  after the value is changed, b\bba\bas\bsh\bh adds the contents of
+              the new file to the existing list.  If H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE is set, but  has
+              no value, b\bba\bas\bsh\bh attempts to read _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs to obtain the list of
+              possible hostname completions.   When  H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE  is  unset,  the
+              hostname list is cleared.
+       I\bIF\bFS\bS    The  _\bI_\bn_\bt_\be_\br_\bn_\ba_\bl  _\bF_\bi_\be_\bl_\bd  _\bS_\be_\bp_\ba_\br_\ba_\bt_\bo_\br  that is used for word splitting
+              after expansion and to split lines  into  words  with  the  r\bre\bea\bad\bd
+              builtin  command.   The  default  value  is  ``<space><tab><new-
+              line>''.
+       I\bIG\bGN\bNO\bOR\bRE\bEE\bEO\bOF\bF
+              Controls the action of an interactive shell on receipt of an E\bEO\bOF\bF
+              character as the sole input.  If set, the value is the number of
+              consecutive E\bEO\bOF\bF characters which must  be  typed  as  the  first
+              characters  on an input line before b\bba\bas\bsh\bh exits.  If the variable
+              exists but does not have a numeric value, or has no  value,  the
+              default  value  is  10.  If it does not exist, E\bEO\bOF\bF signifies the
+              end of input to the shell.
+       I\bIN\bNP\bPU\bUT\bTR\bRC\bC
+              The filename for  the  r\bre\bea\bad\bdl\bli\bin\bne\be  startup  file,  overriding  the
+              default of _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE below).
+       L\bLA\bAN\bNG\bG   Used  to  determine  the  locale  category  for any category not
+              specifically selected with a variable starting with L\bLC\bC_\b_.
+       L\bLC\bC_\b_A\bAL\bLL\bL This variable overrides the value of  L\bLA\bAN\bNG\bG  and  any  other  L\bLC\bC_\b_
+              variable specifying a locale category.
+       L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE
+              This  variable  determines the collation order used when sorting
+              the results of pathname expansion, and determines  the  behavior
+              of   range   expressions,  equivalence  classes,  and  collating
+              sequences within pathname expansion and pattern matching.
+       L\bLC\bC_\b_C\bCT\bTY\bYP\bPE\bE
+              This variable determines the interpretation  of  characters  and
+              the  behavior of character classes within pathname expansion and
+              pattern matching.
+       L\bLC\bC_\b_M\bME\bES\bSS\bSA\bAG\bGE\bES\bS
+              This variable determines the locale used  to  translate  double-
+              quoted strings preceded by a $\b$.
+       L\bLC\bC_\b_N\bNU\bUM\bME\bER\bRI\bIC\bC
+              This  variable  determines  the  locale category used for number
+              formatting.
+       L\bLI\bIN\bNE\bES\bS  Used by the s\bse\bel\ble\bec\bct\bt  builtin  command  to  determine  the  column
+              length  for  printing  selection  lists.  Automatically set upon
+              receipt of a SIGWINCH.
+       M\bMA\bAI\bIL\bL   If this parameter is set to a file name and the  M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH  vari-
+              able is not set, b\bba\bas\bsh\bh informs the user of the arrival of mail in
+              the specified file.
+       M\bMA\bAI\bIL\bLC\bCH\bHE\bEC\bCK\bK
+              Specifies how often (in seconds)  b\bba\bas\bsh\bh  checks  for  mail.   The
+              default  is  60 seconds.  When it is time to check for mail, the
+              shell does so before displaying the  primary  prompt.   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.
+       M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH
+              A  colon-separated  list  of  file names to be checked for mail.
+              The message to be printed when mail arrives in a particular file
+              may  be  specified  by separating the file name from the message
+              with a `?'.  When used in the text of the message, $\b$_\b_ expands to
+              the name of the current mailfile.  Example:
+              M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH='/var/mail/bfox?"You  have  mail":~/shell-mail?"$_  has
+              mail!"'
+              B\bBa\bas\bsh\bh supplies a default value for this variable, but  the  loca-
+              tion  of  the  user  mail files that it uses is system dependent
+              (e.g., /var/mail/$\b$U\bUS\bSE\bER\bR).
+       O\bOP\bPT\bTE\bER\bRR\bR If set to the value 1, b\bba\bas\bsh\bh displays error messages generated by
+              the  g\bge\bet\bto\bop\bpt\bts\bs builtin command (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
+              O\bOP\bPT\bTE\bER\bRR\bR is initialized to 1 each time the shell is invoked  or  a
+              shell script is executed.
+       P\bPA\bAT\bTH\bH   The  search  path for commands.  It is a colon-separated list of
+              directories in which the shell looks for commands  (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD
+              E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN  below).   A  zero-length (null) directory name in the
+              value of P\bPA\bAT\bTH\bH indicates the current directory.  A null directory
+              name  may  appear  as  two  adjacent colons, or as an initial or
+              trailing colon.  The default path is  system-dependent,  and  is
+              set  by  the administrator who installs b\bba\bas\bsh\bh.  A common value is
+              ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''.
+       P\bPO\bOS\bSI\bIX\bXL\bLY\bY_\b_C\bCO\bOR\bRR\bRE\bEC\bCT\bT
+              If this variable is in the environment  when  b\bba\bas\bsh\bh  starts,  the
+              shell  enters _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be before reading the startup files, as if
+              the -\b--\b-p\bpo\bos\bsi\bix\bx invocation option had been supplied.  If it  is  set
+              while  the  shell is running, b\bba\bas\bsh\bh enables _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, as if the
+              command _\bs_\be_\bt _\b-_\bo _\bp_\bo_\bs_\bi_\bx had been executed.
+       P\bPR\bRO\bOM\bMP\bPT\bT_\b_C\bCO\bOM\bMM\bMA\bAN\bND\bD
+              If set, the value is executed as a command prior to issuing each
+              primary prompt.
+       P\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM
+              If  set  to a number greater than zero, the value is used as the
+              number of trailing directory components to retain when expanding
+              the  \\b\w\bw  a\ban\bnd\bd  \\b\W\bW  p\bpr\bro\bom\bmp\bpt\bt  s\bst\btr\bri\bin\bng\bg  e\bes\bsc\bca\bap\bpe\bes\bs (\b(s\bse\bee\be P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG below).
+              Characters removed are replaced with an ellipsis.
+       P\bPS\bS1\b1    The value of this parameter is expanded  (see  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG  below)
+              and  used  as  the  primary prompt string.  The default value is
+              ``\\b\s\bs-\b-\\b\v\bv\\b\$\b$ ''.
+       P\bPS\bS2\b2    The value of this parameter is expanded as with P\bPS\bS1\b1 and used  as
+              the secondary prompt string.  The default is ``>\b> ''.
+       P\bPS\bS3\b3    The value of this parameter is used as the prompt for the s\bse\bel\ble\bec\bct\bt
+              command (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above).
+       P\bPS\bS4\b4    The value of this parameter is expanded  as  with  P\bPS\bS1\b1  and  the
+              value  is  printed  before  each command b\bba\bas\bsh\bh displays during an
+              execution trace.  The first character of P\bPS\bS4\b4 is replicated  mul-
+              tiple  times, as necessary, to indicate multiple levels of indi-
+              rection.  The default is ``+\b+ ''.
+       S\bSH\bHE\bEL\bLL\bL  The full pathname to the shell is kept in this environment vari-
+              able.   If  it is not set when the shell starts, b\bba\bas\bsh\bh assigns to
+              it the full pathname of the current user's login shell.
+       T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT
+              The value of this parameter is used as a format string  specify-
+              ing  how  the timing information for pipelines prefixed with the
+              t\bti\bim\bme\be reserved word should be displayed.  The %\b% character  intro-
+              duces  an  escape  sequence  that is expanded to a time value or
+              other information.  The escape sequences and their meanings  are
+              as follows; the braces denote optional portions.
+              %\b%%\b%        A literal %\b%.
+              %\b%[\b[_\bp]\b][\b[l\bl]\b]R\bR  The elapsed time in seconds.
+              %\b%[\b[_\bp]\b][\b[l\bl]\b]U\bU  The number of CPU seconds spent in user mode.
+              %\b%[\b[_\bp]\b][\b[l\bl]\b]S\bS  The number of CPU seconds spent in system mode.
+              %\b%P\bP        The CPU percentage, computed as (%U + %S) / %R.
+
+              The  optional  _\bp is a digit specifying the _\bp_\br_\be_\bc_\bi_\bs_\bi_\bo_\bn, the number
+              of fractional digits after a decimal point.  A value of 0 causes
+              no decimal point or fraction to be output.  At most three places
+              after the decimal point may be specified; values  of  _\bp  greater
+              than  3 are changed to 3.  If _\bp is not specified, the value 3 is
+              used.
+
+              The optional l\bl specifies a longer format, including minutes,  of
+              the  form  _\bM_\bMm_\bS_\bS._\bF_\bFs.   The value of _\bp determines whether or not
+              the fraction is included.
+
+              If this variable is not set, b\bba\bas\bsh\bh acts as if it  had  the  value
+              $\b$'\b'\\b\n\bnr\bre\bea\bal\bl\\b\t\bt%\b%3\b3l\blR\bR\\b\n\bnu\bus\bse\ber\br\\b\t\bt%\b%3\b3l\blU\bU\\b\n\bns\bsy\bys\bs%\b%3\b3l\blS\bS'\b'.   If the value is null, no
+              timing information is displayed.  A trailing  newline  is  added
+              when the format string is displayed.
+
+       T\bTM\bMO\bOU\bUT\bT  If  set  to  a  value greater than zero, T\bTM\bMO\bOU\bUT\bT is treated as the
+              default timeout for the r\bre\bea\bad\bd builtin.  The s\bse\bel\ble\bec\bct\bt command termi-
+              nates if input does not arrive after T\bTM\bMO\bOU\bUT\bT seconds when input is
+              coming from a terminal.  In an interactive shell, the  value  is
+              interpreted  as  the  number  of seconds to wait for input after
+              issuing the primary prompt.  B\bBa\bas\bsh\bh terminates after  waiting  for
+              that number of seconds if input does not arrive.
+
+       T\bTM\bMP\bPD\bDI\bIR\bR If  set, B\bBa\bas\bsh\bh uses its value as the name of a directory in which
+              B\bBa\bas\bsh\bh creates temporary files for the shell's use.
+
+       a\bau\but\bto\bo_\b_r\bre\bes\bsu\bum\bme\be
+              This variable controls how the shell interacts with the user and
+              job  control.   If this variable is set, single word simple com-
+              mands without redirections are treated as candidates for resump-
+              tion of an existing stopped job.  There is no ambiguity allowed;
+              if there is more than one job beginning with the  string  typed,
+              the  job  most  recently  accessed  is  selected.  The _\bn_\ba_\bm_\be of a
+              stopped job, in this context, is the command line used to  start
+              it.   If  set to the value _\be_\bx_\ba_\bc_\bt, the string supplied must match
+              the name of a stopped job exactly;  if  set  to  _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg,  the
+              string  supplied  needs  to  match  a substring of the name of a
+              stopped job.  The _\bs_\bu_\bb_\bs_\bt_\br_\bi_\bn_\bg value provides functionality  analo-
+              gous  to the %\b%?\b?  job identifier (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL below).  If set
+              to any other value, the supplied string must be a  prefix  of  a
+              stopped job's name; this provides functionality analogous to the
+              %\b%_\bs_\bt_\br_\bi_\bn_\bg job identifier.
+
+       h\bhi\bis\bst\btc\bch\bha\bar\brs\bs
+              The two or three characters which control history expansion  and
+              tokenization (see H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below).  The first character
+              is the _\bh_\bi_\bs_\bt_\bo_\br_\by _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn character, the character which  signals
+              the  start  of  a  history  expansion, normally `!\b!'.  The second
+              character is the _\bq_\bu_\bi_\bc_\bk _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn character, which is used  as
+              shorthand  for  re-running the previous command entered, substi-
+              tuting one string for another in the command.   The  default  is
+              `^\b^'.   The optional third character is the character which indi-
+              cates that the remainder of the line is a comment when found  as
+              the  first  character of a word, normally `#\b#'.  The history com-
+              ment character causes history substitution to be skipped for the
+              remaining  words on the line.  It does not necessarily cause the
+              shell parser to treat the rest of the line as a comment.
+
+   A\bAr\brr\bra\bay\bys\bs
+       B\bBa\bas\bsh\bh provides one-dimensional indexed and associative array  variables.
+       Any  variable may be used as an indexed array; the d\bde\bec\bcl\bla\bar\bre\be builtin will
+       explicitly declare an array.  There is no maximum limit on the size  of
+       an  array, nor any requirement that members be indexed or assigned con-
+       tiguously.  Indexed arrays are  referenced  using  integers  (including
+       arithmetic  expressions)   and  are  zero-based; associative arrays are
+       referenced using arbitrary strings.
+
+       An indexed array is created automatically if any variable  is  assigned
+       to using the syntax _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bv_\ba_\bl_\bu_\be.  The _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is treated as
+       an arithmetic expression that must evaluate to a number greater than or
+       equal  to zero.  To explicitly declare an indexed array, use d\bde\bec\bcl\bla\bar\bre\be -\b-a\ba
+       _\bn_\ba_\bm_\be (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  d\bde\bec\bcl\bla\bar\bre\be -\b-a\ba _\bn_\ba_\bm_\be[\b[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]\b] is
+       also accepted; the _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is ignored.
+
+       Associative arrays are created using d\bde\bec\bcl\bla\bar\bre\be -\b-A\bA _\bn_\ba_\bm_\be.
+
+       Attributes may be specified for an array variable using the d\bde\bec\bcl\bla\bar\bre\be and
+       r\bre\bea\bad\bdo\bon\bnl\bly\by builtins.  Each attribute applies to all members of an  array.
+
+       Arrays   are  assigned  to  using  compound  assignments  of  the  form
+       _\bn_\ba_\bm_\be=(\b(value_\b1 ... value_\bn)\b),  where  each  _\bv_\ba_\bl_\bu_\be  is  of  the  form  [_\bs_\bu_\bb_\b-
+       _\bs_\bc_\br_\bi_\bp_\bt]=_\bs_\bt_\br_\bi_\bn_\bg.   Indexed  array assignments do not require the bracket
+       and subscript.  When assigning  to  indexed  arrays,  if  the  optional
+       brackets  and subscript are supplied, that index is assigned to; other-
+       wise the index of the element assigned is the last index assigned to by
+       the statement plus one.  Indexing starts at zero.
+
+       When assigning to an associative array, the subscript is required.
+
+       This  syntax is also accepted by the d\bde\bec\bcl\bla\bar\bre\be builtin.  Individual array
+       elements may be assigned  to  using  the  _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]=_\bv_\ba_\bl_\bu_\be  syntax
+       introduced above.
+
+       Any  element  of  an  array may be referenced using ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}.
+       The braces are required to avoid conflicts with pathname expansion.  If
+       _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt  is  @\b@  or *\b*, the word expands to all members of _\bn_\ba_\bm_\be.  These
+       subscripts differ only when the word appears within double quotes.   If
+       the word is double-quoted, ${_\bn_\ba_\bm_\be[*]} expands to a single word with the
+       value of each array member separated by the first character of the  I\bIF\bFS\bS
+       special variable, and ${_\bn_\ba_\bm_\be[@]} expands each element of _\bn_\ba_\bm_\be to a sep-
+       arate word.  When there are no array  members,  ${_\bn_\ba_\bm_\be[@]}  expands  to
+       nothing.   If  the  double-quoted  expansion  occurs within a word, the
+       expansion of the first parameter is joined with the beginning  part  of
+       the  original  word,  and the expansion of the last parameter is joined
+       with the last part of the original word.   This  is  analogous  to  the
+       expansion  of  the  special  parameters *\b* and @\b@ (see S\bSp\bpe\bec\bci\bia\bal\bl P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
+       above).  ${#_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]}  expands  to  the  length  of  ${_\bn_\ba_\bm_\be[_\bs_\bu_\bb_\b-
+       _\bs_\bc_\br_\bi_\bp_\bt]}.   If _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is *\b* or @\b@, the expansion is the number of ele-
+       ments in the array.  Referencing an array variable without a  subscript
+       is equivalent to referencing the array with a subscript of 0.
+
+       The  u\bun\bns\bse\bet\bt  builtin  is  used to destroy arrays.  u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt]
+       destroys the array element at index _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt.  Care must be  taken  to
+       avoid unwanted side effects caused by filename generation.  u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be,
+       where _\bn_\ba_\bm_\be is an array, or u\bun\bns\bse\bet\bt _\bn_\ba_\bm_\be[_\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt], where _\bs_\bu_\bb_\bs_\bc_\br_\bi_\bp_\bt is  *\b*
+       or @\b@, removes the entire array.
+
+       The  d\bde\bec\bcl\bla\bar\bre\be,  l\blo\boc\bca\bal\bl,  and r\bre\bea\bad\bdo\bon\bnl\bly\by builtins each accept a -\b-a\ba option to
+       specify an indexed array and a -\b-A\bA  option  to  specify  an  associative
+       array.   The r\bre\bea\bad\bd builtin accepts a -\b-a\ba option to assign a list of words
+       read from the standard input to an array.  The s\bse\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtins
+       display  array values in a way that allows them to be reused as assign-
+       ments.
+
+E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
+       Expansion is performed on the command line after it has been split into
+       words.   There are seven kinds of expansion performed: _\bb_\br_\ba_\bc_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,
+       _\bt_\bi_\bl_\bd_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br _\ba_\bn_\bd _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be  _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn,  _\bc_\bo_\bm_\bm_\ba_\bn_\bd  _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\b-
+       _\bt_\bi_\bo_\bn, _\ba_\br_\bi_\bt_\bh_\bm_\be_\bt_\bi_\bc _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, _\bw_\bo_\br_\bd _\bs_\bp_\bl_\bi_\bt_\bt_\bi_\bn_\bg, and _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn.
+
+       The  order  of expansions is: brace expansion, tilde expansion, parame-
+       ter, variable and arithmetic expansion and command  substitution  (done
+       in a left-to-right fashion), word splitting, and pathname expansion.
+
+       On systems that can support it, there is an additional expansion avail-
+       able: _\bp_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn.
+
+       Only brace expansion, word splitting, and pathname expansion can change
+       the  number of words of the expansion; other expansions expand a single
+       word to a single word.  The only exceptions to this are the  expansions
+       of "$\b$@\b@" and "$\b${\b{_\bn_\ba_\bm_\be[\b[@\b@]\b]}\b}" as explained above (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS).
+
+   B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+       _\bB_\br_\ba_\bc_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn is a mechanism by which arbitrary strings may be gener-
+       ated.  This mechanism is similar to _\bp_\ba_\bt_\bh_\bn_\ba_\bm_\be _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn, but  the  file-
+       names generated need not exist.  Patterns to be brace expanded take the
+       form of an optional _\bp_\br_\be_\ba_\bm_\bb_\bl_\be, followed by either a series of comma-sep-
+       arated  strings or a sequence expression between a pair of braces, fol-
+       lowed by an optional _\bp_\bo_\bs_\bt_\bs_\bc_\br_\bi_\bp_\bt.  The  preamble  is  prefixed  to  each
+       string contained within the braces, and the postscript is then appended
+       to each resulting string, expanding left to right.
+
+       Brace expansions may be nested.  The results of  each  expanded  string
+       are  not  sorted;  left  to  right  order  is  preserved.  For example,
+       a{\b{d,c,b}\b}e expands into `ade ace abe'.
+
+       A sequence expression takes the form {\b{_\bx.\b..\b._\by[\b[.\b..\b._\bi_\bn_\bc_\br]\b]}\b}, where _\bx and _\by  are
+       either  integers or single characters, and _\bi_\bn_\bc_\br, an optional increment,
+       is an integer.  When integers are supplied, the expression  expands  to
+       each  number between _\bx and _\by, inclusive.  Supplied integers may be pre-
+       fixed with _\b0 to force each term to have the same width.  When either  _\bx
+       or  _\by  begins  with  a  zero, the shell attempts to force all generated
+       terms to contain the same number of digits, zero-padding  where  neces-
+       sary.   When  characters  are  supplied, the expression expands to each
+       character lexicographically between _\bx and _\by, inclusive.  Note that both
+       _\bx  and  _\by must be of the same type.  When the increment is supplied, it
+       is used as the difference between each term.  The default increment  is
+       1 or -1 as appropriate.
+
+       Brace expansion is performed before any other expansions, and any char-
+       acters special to other expansions are preserved in the result.  It  is
+       strictly  textual.  B\bBa\bas\bsh\bh does not apply any syntactic interpretation to
+       the context of the expansion or the text between the braces.
+
+       A correctly-formed brace expansion must contain  unquoted  opening  and
+       closing  braces,  and  at  least one unquoted comma or a valid sequence
+       expression.  Any incorrectly formed brace expansion is left  unchanged.
+       A {\b{ or ,\b, may be quoted with a backslash to prevent its being considered
+       part of a brace expression.  To avoid conflicts with  parameter  expan-
+       sion, the string $\b${\b{ is not considered eligible for brace expansion.
+
+       This construct is typically used as shorthand when the common prefix of
+       the strings to be generated is longer than in the above example:
+
+              mkdir /usr/local/src/bash/{old,new,dist,bugs}
+       or
+              chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
+
+       Brace expansion introduces a  slight  incompatibility  with  historical
+       versions  of s\bsh\bh.  s\bsh\bh does not treat opening or closing braces specially
+       when they appear as part of a word, and preserves them in  the  output.
+       B\bBa\bas\bsh\bh  removes  braces  from  words as a consequence of brace expansion.
+       For example, a word entered to s\bsh\bh as _\bf_\bi_\bl_\be_\b{_\b1_\b,_\b2_\b} appears  identically  in
+       the  output.  The same word is output as _\bf_\bi_\bl_\be_\b1 _\bf_\bi_\bl_\be_\b2 after expansion by
+       b\bba\bas\bsh\bh.  If strict compatibility with s\bsh\bh is desired, start b\bba\bas\bsh\bh with  the
+       +\b+B\bB option or disable brace expansion with the +\b+B\bB option to the s\bse\bet\bt com-
+       mand (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
+
+   T\bTi\bil\bld\bde\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+       If a word begins with an unquoted tilde character  (`~\b~'),  all  of  the
+       characters  preceding  the  first unquoted slash (or all characters, if
+       there is no unquoted slash) are considered a _\bt_\bi_\bl_\bd_\be_\b-_\bp_\br_\be_\bf_\bi_\bx.  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 _\bl_\bo_\bg_\bi_\bn  _\bn_\ba_\bm_\be.
+       If  this  login name is the null string, the tilde is replaced with the
+       value of the shell parameter H\bHO\bOM\bME\bE.  If H\bHO\bOM\bME\bE is unset, the  home  direc-
+       tory  of  the  user executing the shell is substituted instead.  Other-
+       wise, the tilde-prefix is replaced with the home  directory  associated
+       with the specified login name.
+
+       If  the  tilde-prefix  is  a  `~+', the value of the shell variable P\bPW\bWD\bD
+       replaces the tilde-prefix.  If the tilde-prefix is a `~-', the value of
+       the  shell variable O\bOL\bLD\bDP\bPW\bWD\bD, if it is set, is substituted.  If the char-
+       acters following the tilde in the tilde-prefix consist of a  number  _\bN,
+       optionally  prefixed  by  a  `+' or a `-', the tilde-prefix is replaced
+       with the corresponding element from the directory stack, as it would be
+       displayed by the d\bdi\bir\brs\bs builtin invoked with the tilde-prefix as an argu-
+       ment.  If the characters following the tilde in the  tilde-prefix  con-
+       sist of a number without a leading `+' or `-', `+' is assumed.
+
+       If the login name is invalid, or the tilde expansion fails, the word is
+       unchanged.
+
+       Each variable assignment is checked for unquoted tilde-prefixes immedi-
+       ately following a :\b: or the first =\b=.  In these cases, tilde expansion is
+       also performed.  Consequently, one may use file names  with  tildes  in
+       assignments  to  P\bPA\bAT\bTH\bH,  M\bMA\bAI\bIL\bLP\bPA\bAT\bTH\bH, and C\bCD\bDP\bPA\bAT\bTH\bH, and the shell assigns the
+       expanded value.
+
+   P\bPa\bar\bra\bam\bme\bet\bte\ber\br E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+       The `$\b$' character introduces parameter expansion, command substitution,
+       or  arithmetic  expansion.  The parameter name or symbol to be expanded
+       may be enclosed in braces, which are optional but serve to protect  the
+       variable  to be expanded from characters immediately following it which
+       could be interpreted as part of the name.
+
+       When braces are used, the matching ending brace is the  first  `}\b}'  not
+       escaped  by  a  backslash  or within a quoted string, and not within an
+       embedded  arithmetic  expansion,  command  substitution,  or  parameter
+       expansion.
+
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}
+              The  value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is substituted.  The braces are required
+              when _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is a positional  parameter  with  more  than  one
+              digit, or when _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is followed by a character which is not
+              to be interpreted as part of its name.
+
+       If the first character of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an exclamation point, a level of
+       variable  indirection  is introduced.  B\bBa\bas\bsh\bh uses the value of the vari-
+       able formed from the rest of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br as the  name  of  the  variable;
+       this  variable  is  then expanded and that value is used in the rest of
+       the substitution, rather than the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br itself.   This  is
+       known as _\bi_\bn_\bd_\bi_\br_\be_\bc_\bt _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn.  The exceptions to this are the expansions
+       of ${!_\bp_\br_\be_\bf_\bi_\bx*} and ${!\b!_\bn_\ba_\bm_\be[_\b@]} described below.  The exclamation  point
+       must  immediately  follow the left brace in order to introduce indirec-
+       tion.
+
+       In each of the cases below, _\bw_\bo_\br_\bd is subject to tilde expansion, parame-
+       ter expansion, command substitution, and arithmetic expansion.
+
+       When  not  performing  substring  expansion, using the forms documented
+       below, b\bba\bas\bsh\bh tests for a parameter that is unset or null.  Omitting  the
+       colon results in a test only for a parameter that is unset.
+
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:-\b-_\bw_\bo_\br_\bd}
+              U\bUs\bse\be  D\bDe\bef\bfa\bau\bul\blt\bt  V\bVa\bal\blu\bue\bes\bs.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is unset or null, the expan-
+              sion of _\bw_\bo_\br_\bd is substituted.  Otherwise, the value of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
+              is substituted.
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:=\b=_\bw_\bo_\br_\bd}
+              A\bAs\bss\bsi\big\bgn\bn  D\bDe\bef\bfa\bau\bul\blt\bt  V\bVa\bal\blu\bue\bes\bs.   If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  unset or null, the
+              expansion of _\bw_\bo_\br_\bd is assigned to _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.  The value of _\bp_\ba_\br_\ba_\bm_\b-
+              _\be_\bt_\be_\br  is  then  substituted.   Positional parameters and special
+              parameters may not be assigned to in this way.
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:?\b?_\bw_\bo_\br_\bd}
+              D\bDi\bis\bsp\bpl\bla\bay\by E\bEr\brr\bro\bor\br i\bif\bf N\bNu\bul\bll\bl o\bor\br U\bUn\bns\bse\bet\bt.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or  unset,
+              the  expansion  of  _\bw_\bo_\br_\bd (or a message to that effect if _\bw_\bo_\br_\bd is
+              not present) is written to the standard error and the shell,  if
+              it is not interactive, exits.  Otherwise, the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
+              is substituted.
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:+\b+_\bw_\bo_\br_\bd}
+              U\bUs\bse\be A\bAl\blt\bte\ber\brn\bna\bat\bte\be V\bVa\bal\blu\bue\be.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is null or unset, nothing  is
+              substituted, otherwise the expansion of _\bw_\bo_\br_\bd is substituted.
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:_\bo_\bf_\bf_\bs_\be_\bt}
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br:\b:_\bo_\bf_\bf_\bs_\be_\bt:\b:_\bl_\be_\bn_\bg_\bt_\bh}
+              S\bSu\bub\bbs\bst\btr\bri\bin\bng\bg  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn.\b.   Expands  to  up  to _\bl_\be_\bn_\bg_\bt_\bh characters of
+              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br starting at the character  specified  by  _\bo_\bf_\bf_\bs_\be_\bt.   If
+              _\bl_\be_\bn_\bg_\bt_\bh  is omitted, expands to the substring of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br start-
+              ing at the character specified by _\bo_\bf_\bf_\bs_\be_\bt.  _\bl_\be_\bn_\bg_\bt_\bh and _\bo_\bf_\bf_\bs_\be_\bt are
+              arithmetic   expressions   (see  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC  E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN  below).
+              _\bl_\be_\bn_\bg_\bt_\bh must evaluate to a number greater than or equal to  zero.
+              If  _\bo_\bf_\bf_\bs_\be_\bt  evaluates  to  a number less than zero, the value is
+              used as an offset from the end of the value  of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.   If
+              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  @\b@,  the  result  is  _\bl_\be_\bn_\bg_\bt_\bh positional parameters
+              beginning at _\bo_\bf_\bf_\bs_\be_\bt.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an indexed array name sub-
+              scripted  by  @  or  *,  the result is the _\bl_\be_\bn_\bg_\bt_\bh members of the
+              array beginning with ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br[_\bo_\bf_\bf_\bs_\be_\bt]}.  A negative _\bo_\bf_\bf_\bs_\be_\bt is
+              taken  relative  to  one  greater  than the maximum index of the
+              specified array.  Substring expansion applied to an  associative
+              array  produces  undefined results.  Note that a negative offset
+              must be separated from the colon by at least one space to  avoid
+              being  confused  with  the  :- expansion.  Substring indexing is
+              zero-based unless the positional parameters are used,  in  which
+              case  the  indexing starts at 1 by default.  If _\bo_\bf_\bf_\bs_\be_\bt is 0, and
+              the positional parameters are used, $\b$0\b0 is prefixed to the  list.
+
+       ${!\b!_\bp_\br_\be_\bf_\bi_\bx*\b*}
+       ${!\b!_\bp_\br_\be_\bf_\bi_\bx@\b@}
+              N\bNa\bam\bme\bes\bs  m\bma\bat\btc\bch\bhi\bin\bng\bg p\bpr\bre\bef\bfi\bix\bx.\b.  Expands to the names of variables whose
+              names begin with _\bp_\br_\be_\bf_\bi_\bx, separated by the first character of the
+              I\bIF\bFS\bS  special variable.  When _\b@ is used and the expansion appears
+              within double quotes, each variable name expands to  a  separate
+              word.
+
+       ${!\b!_\bn_\ba_\bm_\be[_\b@]}
+       ${!\b!_\bn_\ba_\bm_\be[_\b*]}
+              L\bLi\bis\bst\bt  o\bof\bf  a\bar\brr\bra\bay\by  k\bke\bey\bys\bs.\b.  If _\bn_\ba_\bm_\be is an array variable, expands to
+              the list of array indices (keys) assigned in _\bn_\ba_\bm_\be.  If  _\bn_\ba_\bm_\be  is
+              not  an  array,  expands to 0 if _\bn_\ba_\bm_\be is set and null otherwise.
+              When _\b@ is used and the expansion appears within  double  quotes,
+              each key expands to a separate word.
+
+       ${#\b#_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}
+              P\bPa\bar\bra\bam\bme\bet\bte\ber\br  l\ble\ben\bng\bgt\bth\bh.\b.   The  length  in  characters of the value of
+              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is substituted.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is *\b*  or  @\b@,  the  value
+              substituted  is the number of positional parameters.  If _\bp_\ba_\br_\ba_\bm_\be_\b-
+              _\bt_\be_\br is an array name subscripted by *\b* or @\b@,  the  value  substi-
+              tuted is the number of elements in the array.
+
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br#\b#_\bw_\bo_\br_\bd}
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br#\b##\b#_\bw_\bo_\br_\bd}
+              R\bRe\bem\bmo\bov\bve\be m\bma\bat\btc\bch\bhi\bin\bng\bg p\bpr\bre\bef\bfi\bix\bx p\bpa\bat\btt\bte\ber\brn\bn.\b.  The _\bw_\bo_\br_\bd is expanded to produce
+              a pattern just as in pathname expansion.  If the pattern matches
+              the  beginning of the value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, then the result of the
+              expansion is the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br with  the  shortest
+              matching  pattern  (the ``#\b#'' case) or the longest matching pat-
+              tern (the ``#\b##\b#'' case) deleted.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is  @\b@  or  *\b*,  the
+              pattern  removal operation is applied to each positional parame-
+              ter in turn, and the expansion is the resultant list.  If _\bp_\ba_\br_\ba_\bm_\b-
+              _\be_\bt_\be_\br  is  an array variable subscripted with @\b@ or *\b*, the pattern
+              removal operation is applied to each  member  of  the  array  in
+              turn, and the expansion is the resultant list.
+
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br%\b%_\bw_\bo_\br_\bd}
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br%\b%%\b%_\bw_\bo_\br_\bd}
+              R\bRe\bem\bmo\bov\bve\be m\bma\bat\btc\bch\bhi\bin\bng\bg s\bsu\buf\bff\bfi\bix\bx p\bpa\bat\btt\bte\ber\brn\bn.\b.  The _\bw_\bo_\br_\bd is expanded to produce
+              a pattern just as in pathname expansion.  If the pattern matches
+              a  trailing portion of the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br, then the
+              result of the expansion is the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  with
+              the  shortest  matching  pattern (the ``%\b%'' case) or the longest
+              matching pattern (the ``%\b%%\b%'' case) deleted.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is  @\b@
+              or  *\b*,  the  pattern  removal operation is applied to each posi-
+              tional parameter in turn, and the  expansion  is  the  resultant
+              list.   If  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array variable subscripted with @\b@ or
+              *\b*, the pattern removal operation is applied to  each  member  of
+              the array in turn, and the expansion is the resultant list.
+
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br/\b/_\bp_\ba_\bt_\bt_\be_\br_\bn/\b/_\bs_\bt_\br_\bi_\bn_\bg}
+              P\bPa\bat\btt\bte\ber\brn\bn s\bsu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn.\b.  The _\bp_\ba_\bt_\bt_\be_\br_\bn is expanded to produce a pat-
+              tern just as in pathname expansion.  _\bP_\ba_\br_\ba_\bm_\be_\bt_\be_\br is  expanded  and
+              the  longest match of _\bp_\ba_\bt_\bt_\be_\br_\bn against its value is replaced with
+              _\bs_\bt_\br_\bi_\bn_\bg.  If _\bp_\ba_\bt_\bt_\be_\br_\bn begins with /\b/, all matches  of  _\bp_\ba_\bt_\bt_\be_\br_\bn  are
+              replaced   with  _\bs_\bt_\br_\bi_\bn_\bg.   Normally  only  the  first  match  is
+              replaced.  If _\bp_\ba_\bt_\bt_\be_\br_\bn begins with #\b#, it must match at the begin-
+              ning of the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.  If _\bp_\ba_\bt_\bt_\be_\br_\bn begins with
+              %\b%, it must match at the end of the expanded value of  _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.
+              If _\bs_\bt_\br_\bi_\bn_\bg is null, matches of _\bp_\ba_\bt_\bt_\be_\br_\bn are deleted and the /\b/ fol-
+              lowing _\bp_\ba_\bt_\bt_\be_\br_\bn may be omitted.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the sub-
+              stitution  operation  is applied to each positional parameter in
+              turn, and the expansion is the resultant list.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br  is
+              an  array  variable  subscripted  with  @\b@ or *\b*, the substitution
+              operation is applied to each member of the array  in  turn,  and
+              the expansion is the resultant list.
+
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br^\b^_\bp_\ba_\bt_\bt_\be_\br_\bn}
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br^\b^^\b^_\bp_\ba_\bt_\bt_\be_\br_\bn}
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br,\b,_\bp_\ba_\bt_\bt_\be_\br_\bn}
+       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br,\b,,\b,_\bp_\ba_\bt_\bt_\be_\br_\bn}
+              C\bCa\bas\bse\be  m\bmo\bod\bdi\bif\bfi\bic\bca\bat\bti\bio\bon\bn.\b.   This expansion modifies the case of alpha-
+              betic characters in _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.  The _\bp_\ba_\bt_\bt_\be_\br_\bn is expanded to  pro-
+              duce  a  pattern  just as in pathname expansion.  The ^\b^ operator
+              converts lowercase letters matching _\bp_\ba_\bt_\bt_\be_\br_\bn to uppercase; the  ,\b,
+              operator  converts matching uppercase letters to lowercase.  The
+              ^\b^^\b^ and ,\b,,\b, expansions  convert  each  matched  character  in  the
+              expanded  value;  the  ^\b^ and ,\b, expansions match and convert only
+              the first character in the expanded value..  If _\bp_\ba_\bt_\bt_\be_\br_\bn is omit-
+              ted,  it is treated like a ?\b?, which matches every character.  If
+              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the case modification operation is  applied
+              to  each  positional parameter in turn, and the expansion is the
+              resultant list.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array  variable  subscripted
+              with  @\b@ or *\b*, the case modification operation is applied to each
+              member of the array in turn, and the expansion is the  resultant
+              list.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+       _\bC_\bo_\bm_\bm_\ba_\bn_\bd _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn allows the output of a command to replace the com-
+       mand name.  There are two forms:
+
+
+              $\b$(\b(_\bc_\bo_\bm_\bm_\ba_\bn_\bd)\b)
+       or
+              `\b`_\bc_\bo_\bm_\bm_\ba_\bn_\bd`\b`
+
+       B\bBa\bas\bsh\bh performs the expansion by executing _\bc_\bo_\bm_\bm_\ba_\bn_\bd and replacing the com-
+       mand  substitution  with  the  standard output of the command, with any
+       trailing newlines deleted.  Embedded newlines are not deleted, but they
+       may  be  removed during word splitting.  The command substitution $\b$(\b(c\bca\bat\bt
+       _\bf_\bi_\bl_\be)\b) can be replaced by the equivalent but faster $\b$(\b(<\b< _\bf_\bi_\bl_\be)\b).
+
+       When the old-style backquote form of substitution  is  used,  backslash
+       retains  its  literal  meaning except when followed by $\b$, `\b`, or \\b\.  The
+       first backquote not preceded by a backslash terminates the command sub-
+       stitution.   When using the $(_\bc_\bo_\bm_\bm_\ba_\bn_\bd) form, all characters between the
+       parentheses make up the command; none are treated specially.
+
+       Command substitutions may be nested.  To nest when using the backquoted
+       form, escape the inner backquotes with backslashes.
+
+       If  the  substitution  appears within double quotes, word splitting and
+       pathname expansion are not performed on the results.
+
+   A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+       Arithmetic expansion allows the evaluation of an arithmetic  expression
+       and  the  substitution of the result.  The format for arithmetic expan-
+       sion is:
+
+              $\b$(\b((\b(_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn)\b))\b)
+
+       The _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is treated as if it were within  double  quotes,  but  a
+       double  quote  inside  the  parentheses  is not treated specially.  All
+       tokens in the expression undergo parameter expansion, string expansion,
+       command  substitution, and quote removal.  Arithmetic expansions may be
+       nested.
+
+       The evaluation is performed according to the rules listed  below  under
+       A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN.  If _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is invalid, b\bba\bas\bsh\bh prints a message
+       indicating failure and no substitution occurs.
+
+   P\bPr\bro\boc\bce\bes\bss\bs S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
+       _\bP_\br_\bo_\bc_\be_\bs_\bs _\bs_\bu_\bb_\bs_\bt_\bi_\bt_\bu_\bt_\bi_\bo_\bn is supported on systems that support  named  pipes
+       (_\bF_\bI_\bF_\bO_\bs)  or the /\b/d\bde\bev\bv/\b/f\bfd\bd method of naming open files.  It takes the form
+       of <\b<(\b(_\bl_\bi_\bs_\bt)\b) or >\b>(\b(_\bl_\bi_\bs_\bt)\b).  The process _\bl_\bi_\bs_\bt is run with its input or  out-
+       put connected to a _\bF_\bI_\bF_\bO or some file in /\b/d\bde\bev\bv/\b/f\bfd\bd.  The name of this file
+       is passed as an argument to the current command as the  result  of  the
+       expansion.   If the >\b>(\b(_\bl_\bi_\bs_\bt)\b) form is used, writing to the file will pro-
+       vide input for _\bl_\bi_\bs_\bt.  If the <\b<(\b(_\bl_\bi_\bs_\bt)\b) form is used, the file  passed  as
+       an argument should be read to obtain the output of _\bl_\bi_\bs_\bt.
+
+       When  available,  process substitution is performed simultaneously with
+       parameter and variable expansion, command substitution, and  arithmetic
+       expansion.
+
+   W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg
+       The  shell  scans the results of parameter expansion, command substitu-
+       tion, and arithmetic expansion that did not occur within double  quotes
+       for _\bw_\bo_\br_\bd _\bs_\bp_\bl_\bi_\bt_\bt_\bi_\bn_\bg.
+
+       The  shell  treats each character of I\bIF\bFS\bS as a delimiter, and splits the
+       results of the other expansions into words on these characters.  If I\bIF\bFS\bS
+       is  unset,  or its value is exactly <\b<s\bsp\bpa\bac\bce\be>\b><\b<t\bta\bab\bb>\b><\b<n\bne\bew\bwl\bli\bin\bne\be>\b>, the default,
+       then sequences of <\b<s\bsp\bpa\bac\bce\be>\b>, <\b<t\bta\bab\bb>\b>, and <\b<n\bne\bew\bwl\bli\bin\bne\be>\b> at  the  beginning  and
+       end  of  the  results  of  the previous expansions are ignored, and any
+       sequence of I\bIF\bFS\bS characters not  at  the  beginning  or  end  serves  to
+       delimit  words.   If  I\bIF\bFS\bS  has  a  value  other  than the default, then
+       sequences of the whitespace characters s\bsp\bpa\bac\bce\be and t\bta\bab\bb are ignored at the
+       beginning  and  end of the word, as long as the whitespace character is
+       in the value of I\bIF\bFS\bS (an I\bIF\bFS\bS whitespace character).   Any  character  in
+       I\bIF\bFS\bS  that is not I\bIF\bFS\bS whitespace, along with any adjacent I\bIF\bFS\bS whitespace
+       characters, delimits a field.  A sequence of I\bIF\bFS\bS whitespace  characters
+       is  also  treated as a delimiter.  If the value of I\bIF\bFS\bS is null, no word
+       splitting occurs.
+
+       Explicit null arguments ("\b""\b" or '\b''\b')  are  retained.   Unquoted  implicit
+       null arguments, resulting from the expansion of parameters that have no
+       values, are removed.  If a parameter with no value is  expanded  within
+       double quotes, a null argument results and is retained.
+
+       Note that if no expansion occurs, no splitting is performed.
+
+   P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+       After  word  splitting,  unless  the -\b-f\bf option has been set, b\bba\bas\bsh\bh scans
+       each word for the characters *\b*, ?\b?, and [\b[.  If one of  these  characters
+       appears,  then  the word is regarded as a _\bp_\ba_\bt_\bt_\be_\br_\bn, and replaced with an
+       alphabetically sorted list of file names matching the pattern.   If  no
+       matching  file  names  are  found, and the shell option n\bnu\bul\bll\blg\bgl\blo\bob\bb is not
+       enabled, the word is left unchanged.  If the n\bnu\bul\bll\blg\bgl\blo\bob\bb  option  is  set,
+       and  no  matches are found, the word is removed.  If the f\bfa\bai\bil\blg\bgl\blo\bob\bb shell
+       option is set, and no matches are found, an error  message  is  printed
+       and  the  command  is  not executed.  If the shell option n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb is
+       enabled, the match is performed without regard to the  case  of  alpha-
+       betic  characters.   When a pattern is used for pathname expansion, the
+       character `\b``\b`.\b.'\b''\b'  at the start of a  name  or  immediately  following  a
+       slash  must  be  matched explicitly, unless the shell option d\bdo\bot\btg\bgl\blo\bob\bb is
+       set.  When matching a pathname, the  slash  character  must  always  be
+       matched  explicitly.   In  other  cases,  the  `\b``\b`.\b.'\b''\b'   character is not
+       treated specially.  See the description  of  s\bsh\bho\bop\bpt\bt  below  under  S\bSH\bHE\bEL\bLL\bL
+       B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  for a description of the n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb, n\bnu\bul\bll\blg\bgl\blo\bob\bb, f\bfa\bai\bil\bl-\b-
+       g\bgl\blo\bob\bb, and d\bdo\bot\btg\bgl\blo\bob\bb shell options.
+
+       The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable may be used to restrict the set  of  file
+       names  matching  a  _\bp_\ba_\bt_\bt_\be_\br_\bn.   If G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set, each matching file
+       name that also matches one of the patterns  in  G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE  is  removed
+       from the list of matches.  The file names `\b``\b`.\b.'\b''\b'  and `\b``\b`.\b..\b.'\b''\b'  are always
+       ignored when G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is set and not null.  However, setting  G\bGL\bLO\bOB\bBI\bIG\bG-\b-
+       N\bNO\bOR\bRE\bE  to  a non-null value has the effect of enabling the d\bdo\bot\btg\bgl\blo\bob\bb shell
+       option, so all other file names beginning with a `\b``\b`.\b.'\b''\b'  will match.  To
+       get  the  old  behavior  of ignoring file names beginning with a `\b``\b`.\b.'\b''\b',
+       make `\b``\b`.\b.*\b*'\b''\b'  one of the patterns in G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE.  The d\bdo\bot\btg\bgl\blo\bob\bb option  is
+       disabled when G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE is unset.
+
+       P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg
+
+       Any character that appears in a pattern, other than the special pattern
+       characters described below, matches itself.  The NUL character may  not
+       occur  in  a pattern.  A backslash escapes the following character; the
+       escaping backslash is discarded when  matching.   The  special  pattern
+       characters must be quoted if they are to be matched literally.
+
+       The special pattern characters have the following meanings:
+
+       *\b*      Matches  any  string, including the null string.  When the g\bgl\blo\bob\bb-\b-
+              s\bst\bta\bar\br shell option is enabled, and *\b* is used in a filename expan-
+              sion  context,  two  adjacent  *\b*s  used as a single pattern will
+              match all files and zero or more directories and subdirectories.
+              If  followed by a /\b/, two adjacent *\b*s will match only directories
+              and subdirectories.
+       ?\b?      Matches any single character.
+       [\b[.\b..\b..\b.]\b]  Matches any one of the enclosed characters.  A pair  of  charac-
+              ters separated by a hyphen denotes a _\br_\ba_\bn_\bg_\be _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn; any char-
+              acter that sorts between those two characters, inclusive,  using
+              the  current  locale's  collating sequence and character set, is
+              matched.  If the first character following the [\b[ is a !\b!  or a  ^\b^
+              then  any  character not enclosed is matched.  The sorting order
+              of characters in range expressions is determined by the  current
+              locale  and  the value of the L\bLC\bC_\b_C\bCO\bOL\bLL\bLA\bAT\bTE\bE shell variable, if set.
+              A -\b- may be matched by including it as the first or last  charac-
+              ter in the set.  A ]\b] may be matched by including it as the first
+              character in the set.
+
+              Within [\b[ and ]\b], _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br _\bc_\bl_\ba_\bs_\bs_\be_\bs can  be  specified  using  the
+              syntax  [\b[:\b:_\bc_\bl_\ba_\bs_\bs:\b:]\b],  where  _\bc_\bl_\ba_\bs_\bs is one of the following classes
+              defined in the POSIX standard:
+              a\bal\bln\bnu\bum\bm a\bal\blp\bph\bha\ba a\bas\bsc\bci\bii\bi b\bbl\bla\ban\bnk\bk c\bcn\bnt\btr\brl\bl  d\bdi\big\bgi\bit\bt  g\bgr\bra\bap\bph\bh  l\blo\bow\bwe\ber\br  p\bpr\bri\bin\bnt\bt  p\bpu\bun\bnc\bct\bt
+              s\bsp\bpa\bac\bce\be u\bup\bpp\bpe\ber\br w\bwo\bor\brd\bd x\bxd\bdi\big\bgi\bit\bt
+              A character class matches any character belonging to that class.
+              The w\bwo\bor\brd\bd character class matches letters, digits, and the  char-
+              acter _.
+
+              Within  [\b[ and ]\b], an _\be_\bq_\bu_\bi_\bv_\ba_\bl_\be_\bn_\bc_\be _\bc_\bl_\ba_\bs_\bs can be specified using the
+              syntax [\b[=\b=_\bc=\b=]\b], which matches all characters with the same  colla-
+              tion  weight (as defined by the current locale) as the character
+              _\bc.
+
+              Within [\b[ and ]\b], the syntax [\b[.\b._\bs_\by_\bm_\bb_\bo_\bl.\b.]\b] matches the collating sym-
+              bol _\bs_\by_\bm_\bb_\bo_\bl.
+
+       If the e\bex\bxt\btg\bgl\blo\bob\bb shell option is enabled using the s\bsh\bho\bop\bpt\bt builtin, several
+       extended pattern matching operators are recognized.  In  the  following
+       description, a _\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt is a list of one or more patterns separated
+       by a |\b|.  Composite patterns may be formed using one or more of the fol-
+       lowing sub-patterns:
+
+              ?\b?(\b(_\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt)\b)
+                     Matches zero or one occurrence of the given patterns
+              *\b*(\b(_\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt)\b)
+                     Matches zero or more occurrences of the given patterns
+              +\b+(\b(_\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt)\b)
+                     Matches one or more occurrences of the given patterns
+              @\b@(\b(_\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt)\b)
+                     Matches one of the given patterns
+              !\b!(\b(_\bp_\ba_\bt_\bt_\be_\br_\bn_\b-_\bl_\bi_\bs_\bt)\b)
+                     Matches anything except one of the given patterns
+
+   Q\bQu\buo\bot\bte\be R\bRe\bem\bmo\bov\bva\bal\bl
+       After the preceding expansions, all unquoted occurrences of the charac-
+       ters \\b\, '\b', and "\b" that did not result from one of the  above  expansions
+       are removed.
+
+R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
+       Before  a  command  is executed, its input and output may be _\br_\be_\bd_\bi_\br_\be_\bc_\bt_\be_\bd
+       using a special notation interpreted by  the  shell.   Redirection  may
+       also  be  used  to open and close files for the current shell execution
+       environment.  The following redirection operators may precede or appear
+       anywhere within a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or may follow a _\bc_\bo_\bm_\bm_\ba_\bn_\bd.  Redirections
+       are processed in the order they appear, from left to right.
+
+       In the following descriptions, if the file descriptor number  is  omit-
+       ted,  and the first character of the redirection operator is <\b<, the re-
+       direction refers to the standard input (file  descriptor  0).   If  the
+       first  character  of  the  redirection  operator  is >\b>, the redirection
+       refers to the standard output (file descriptor 1).
+
+       The word following the redirection operator in the  following  descrip-
+       tions,  unless  otherwise noted, is subjected to brace expansion, tilde
+       expansion, parameter expansion, command substitution, arithmetic expan-
+       sion,  quote  removal,  pathname  expansion, and word splitting.  If it
+       expands to more than one word, b\bba\bas\bsh\bh reports an error.
+
+       Note that the order of redirections is significant.  For  example,  the
+       command
+
+              ls >\b> dirlist 2>\b>&\b&1
+
+       directs  both  standard  output and standard error to the file _\bd_\bi_\br_\bl_\bi_\bs_\bt,
+       while the command
+
+              ls 2>\b>&\b&1 >\b> dirlist
+
+       directs only the standard output to file _\bd_\bi_\br_\bl_\bi_\bs_\bt, because the  standard
+       error  was duplicated as standard output before the standard output was
+       redirected to _\bd_\bi_\br_\bl_\bi_\bs_\bt.
+
+       B\bBa\bas\bsh\bh handles several filenames specially when they are used in redirec-
+       tions, as described in the following table:
+
+              /\b/d\bde\bev\bv/\b/f\bfd\bd/\b/_\bf_\bd
+                     If  _\bf_\bd  is  a valid integer, file descriptor _\bf_\bd is dupli-
+                     cated.
+              /\b/d\bde\bev\bv/\b/s\bst\btd\bdi\bin\bn
+                     File descriptor 0 is duplicated.
+              /\b/d\bde\bev\bv/\b/s\bst\btd\bdo\bou\but\bt
+                     File descriptor 1 is duplicated.
+              /\b/d\bde\bev\bv/\b/s\bst\btd\bde\ber\brr\br
+                     File descriptor 2 is duplicated.
+              /\b/d\bde\bev\bv/\b/t\btc\bcp\bp/\b/_\bh_\bo_\bs_\bt/\b/_\bp_\bo_\br_\bt
+                     If _\bh_\bo_\bs_\bt is a valid hostname or Internet address, and _\bp_\bo_\br_\bt
+                     is  an integer port number or service name, b\bba\bas\bsh\bh attempts
+                     to open a TCP connection to the corresponding socket.
+              /\b/d\bde\bev\bv/\b/u\bud\bdp\bp/\b/_\bh_\bo_\bs_\bt/\b/_\bp_\bo_\br_\bt
+                     If _\bh_\bo_\bs_\bt is a valid hostname or Internet address, and _\bp_\bo_\br_\bt
+                     is  an integer port number or service name, b\bba\bas\bsh\bh attempts
+                     to open a UDP connection to the corresponding socket.
+
+       A failure to open or create a file causes the redirection to fail.
+
+       Redirections using file descriptors greater than 9 should be used  with
+       care,  as they may conflict with file descriptors the shell uses inter-
+       nally.
+
+   R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg I\bIn\bnp\bpu\but\bt
+       Redirection of input causes the file whose name results from the expan-
+       sion  of  _\bw_\bo_\br_\bd  to  be  opened for reading on file descriptor _\bn, or the
+       standard input (file descriptor 0) if _\bn is not specified.
+
+       The general format for redirecting input is:
+
+              [_\bn]<\b<_\bw_\bo_\br_\bd
+
+   R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg O\bOu\but\btp\bpu\but\bt
+       Redirection of output causes the  file  whose  name  results  from  the
+       expansion of _\bw_\bo_\br_\bd to be opened for writing on file descriptor _\bn, or the
+       standard output (file descriptor 1) if _\bn is not specified.  If the file
+       does  not exist it is created; if it does exist it is truncated to zero
+       size.
+
+       The general format for redirecting output is:
+
+              [_\bn]>\b>_\bw_\bo_\br_\bd
+
+       If the redirection operator is >\b>, and the n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br option to  the  s\bse\bet\bt
+       builtin  has  been enabled, the redirection will fail if the file whose
+       name results from the expansion of _\bw_\bo_\br_\bd exists and is a  regular  file.
+       If the redirection operator is >\b>|\b|, or the redirection operator is >\b> and
+       the n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br option to the s\bse\bet\bt builtin command is not enabled, the re-
+       direction is attempted even if the file named by _\bw_\bo_\br_\bd exists.
+
+   A\bAp\bpp\bpe\ben\bnd\bdi\bin\bng\bg R\bRe\bed\bdi\bir\bre\bec\bct\bte\bed\bd O\bOu\but\btp\bpu\but\bt
+       Redirection  of  output  in  this  fashion  causes  the file whose name
+       results from the expansion of _\bw_\bo_\br_\bd to be opened for appending  on  file
+       descriptor  _\bn,  or  the standard output (file descriptor 1) if _\bn is not
+       specified.  If the file does not exist it is created.
+
+       The general format for appending output is:
+
+              [_\bn]>\b>>\b>_\bw_\bo_\br_\bd
+
+
+   R\bRe\bed\bdi\bir\bre\bec\bct\bti\bin\bng\bg S\bSt\bta\ban\bnd\bda\bar\brd\bd O\bOu\but\btp\bpu\but\bt a\ban\bnd\bd S\bSt\bta\ban\bnd\bda\bar\brd\bd E\bEr\brr\bro\bor\br
+       This construct allows both the standard output (file descriptor 1)  and
+       the  standard  error output (file descriptor 2) to be redirected to the
+       file whose name is the expansion of _\bw_\bo_\br_\bd.
+
+       There are two formats for  redirecting  standard  output  and  standard
+       error:
+
+              &\b&>\b>_\bw_\bo_\br_\bd
+       and
+              >\b>&\b&_\bw_\bo_\br_\bd
+
+       Of the two forms, the first is preferred.  This is semantically equiva-
+       lent to
+
+              >\b>_\bw_\bo_\br_\bd 2>\b>&\b&1
+
+
+   A\bAp\bpp\bpe\ben\bnd\bdi\bin\bng\bg S\bSt\bta\ban\bnd\bda\bar\brd\bd O\bOu\but\btp\bpu\but\bt a\ban\bnd\bd S\bSt\bta\ban\bnd\bda\bar\brd\bd E\bEr\brr\bro\bor\br
+       This construct allows both the standard output (file descriptor 1)  and
+       the  standard  error  output  (file descriptor 2) to be appended to the
+       file whose name is the expansion of _\bw_\bo_\br_\bd.
+
+       The format for appending standard output and standard error is:
+
+              &\b&>\b>>\b>_\bw_\bo_\br_\bd
+
+       This is semantically equivalent to
+
+              >\b>>\b>_\bw_\bo_\br_\bd 2>\b>&\b&1
+
+   H\bHe\ber\bre\be D\bDo\boc\bcu\bum\bme\ben\bnt\bts\bs
+       This type of redirection instructs the shell to  read  input  from  the
+       current source until a line containing only _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br (with no trailing
+       blanks) is seen.  All of the lines read up to that point are then  used
+       as the standard input for a command.
+
+       The format of here-documents is:
+
+              <\b<<\b<[-\b-]_\bw_\bo_\br_\bd
+                      _\bh_\be_\br_\be_\b-_\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt
+              _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br
+
+       No  parameter expansion, command substitution, arithmetic expansion, or
+       pathname expansion is performed on _\bw_\bo_\br_\bd.  If any characters in _\bw_\bo_\br_\bd are
+       quoted,  the  _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br is the result of quote removal on _\bw_\bo_\br_\bd, and the
+       lines in the here-document are not expanded.  If _\bw_\bo_\br_\bd is unquoted,  all
+       lines  of  the here-document are subjected to parameter expansion, com-
+       mand substitution, and arithmetic expansion.  In the latter  case,  the
+       character  sequence  \\b\<\b<n\bne\bew\bwl\bli\bin\bne\be>\b> is ignored, and \\b\ must be used to quote
+       the characters \\b\, $\b$, and `\b`.
+
+       If the redirection operator is <\b<<\b<-\b-, then all leading tab characters are
+       stripped  from  input  lines  and  the line containing _\bd_\be_\bl_\bi_\bm_\bi_\bt_\be_\br.  This
+       allows here-documents within shell scripts to be indented in a  natural
+       fashion.
+
+   H\bHe\ber\bre\be S\bSt\btr\bri\bin\bng\bgs\bs
+       A variant of here documents, the format is:
+
+              <\b<<\b<<\b<_\bw_\bo_\br_\bd
+
+       The _\bw_\bo_\br_\bd is expanded and supplied to the command on its standard input.
+
+   D\bDu\bup\bpl\bli\bic\bca\bat\bti\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs
+       The redirection operator
+
+              [_\bn]<\b<&\b&_\bw_\bo_\br_\bd
+
+       is used to duplicate input file descriptors.  If _\bw_\bo_\br_\bd expands to one or
+       more  digits,  the file descriptor denoted by _\bn is made to be a copy of
+       that file descriptor.  If the digits in _\bw_\bo_\br_\bd  do  not  specify  a  file
+       descriptor  open for input, a redirection error occurs.  If _\bw_\bo_\br_\bd evalu-
+       ates to -\b-, file descriptor _\bn is closed.  If _\bn  is  not  specified,  the
+       standard input (file descriptor 0) is used.
+
+       The operator
+
+              [_\bn]>\b>&\b&_\bw_\bo_\br_\bd
+
+       is  used  similarly  to duplicate output file descriptors.  If _\bn is not
+       specified, the standard output (file descriptor 1)  is  used.   If  the
+       digits  in _\bw_\bo_\br_\bd do not specify a file descriptor open for output, a re-
+       direction error occurs.  As a special case, if _\bn is omitted,  and  _\bw_\bo_\br_\bd
+       does not expand to one or more digits, the standard output and standard
+       error are redirected as described previously.
+
+   M\bMo\bov\bvi\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs
+       The redirection operator
+
+              [_\bn]<\b<&\b&_\bd_\bi_\bg_\bi_\bt-\b-
+
+       moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or  the  standard
+       input (file descriptor 0) if _\bn is not specified.  _\bd_\bi_\bg_\bi_\bt is closed after
+       being duplicated to _\bn.
+
+       Similarly, the redirection operator
+
+              [_\bn]>\b>&\b&_\bd_\bi_\bg_\bi_\bt-\b-
+
+       moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or  the  standard
+       output (file descriptor 1) if _\bn is not specified.
+
+   O\bOp\bpe\ben\bni\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs f\bfo\bor\br R\bRe\bea\bad\bdi\bin\bng\bg a\ban\bnd\bd W\bWr\bri\bit\bti\bin\bng\bg
+       The redirection operator
+
+              [_\bn]<\b<>\b>_\bw_\bo_\br_\bd
+
+       causes  the  file  whose name is the expansion of _\bw_\bo_\br_\bd to be opened for
+       both reading and writing on file descriptor _\bn, or on file descriptor  0
+       if _\bn is not specified.  If the file does not exist, it is created.
+
+A\bAL\bLI\bIA\bAS\bSE\bES\bS
+       _\bA_\bl_\bi_\ba_\bs_\be_\bs  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 a\bal\bli\bia\bas\bs and u\bun\bna\bal\bli\bia\bas\bs builtin
+       commands (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  The first  word  of  each
+       simple  command, if unquoted, is checked to see if it has an alias.  If
+       so, that word is replaced by the text of the alias.  The characters  /\b/,
+       $\b$,  `\b`,  and =\b= and any of the shell _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs or quoting characters
+       listed above may not appear in an alias name.  The replacement text may
+       contain  any  valid  shell  input, including shell metacharacters.  The
+       first word of the replacement text is tested for aliases,  but  a  word
+       that  is  identical to an alias being expanded is not expanded a second
+       time.  This means that one may alias l\bls\bs to l\bls\bs  -\b-F\bF,  for  instance,  and
+       b\bba\bas\bsh\bh  does  not try to recursively expand the replacement text.  If the
+       last character of the alias value is a _\bb_\bl_\ba_\bn_\bk,  then  the  next  command
+       word following the alias is also checked for alias expansion.
+
+       Aliases are created and listed with the a\bal\bli\bia\bas\bs command, and removed with
+       the u\bun\bna\bal\bli\bia\bas\bs command.
+
+       There is no mechanism for using arguments in the replacement text.   If
+       arguments  are  needed,  a shell function should be used (see F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
+       below).
+
+       Aliases are not expanded when the shell is not interactive, unless  the
+       e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs  shell option is set using s\bsh\bho\bop\bpt\bt (see the description of
+       s\bsh\bho\bop\bpt\bt under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
+
+       The rules concerning the definition and use  of  aliases  are  somewhat
+       confusing.   B\bBa\bas\bsh\bh  always  reads  at  least  one complete line of input
+       before executing any  of  the  commands  on  that  line.   Aliases  are
+       expanded  when  a command is read, not when it is executed.  Therefore,
+       an alias definition appearing on the same line as another command  does
+       not  take  effect  until  the next line of input is read.  The commands
+       following the alias definition on that line are not affected by the new
+       alias.   This  behavior  is  also an issue when functions are executed.
+       Aliases are expanded when a function definition is read, not  when  the
+       function  is  executed,  because a function definition is itself a com-
+       pound command.  As a consequence, aliases defined in a function are not
+       available  until  after  that function is executed.  To be safe, always
+       put alias definitions on a separate line, and do not use a\bal\bli\bia\bas\bs in  com-
+       pound commands.
+
+       For almost every purpose, aliases are superseded by shell functions.
+
+F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
+       A  shell  function,  defined  as  described  above under S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR,
+       stores a series of commands for later execution.  When the  name  of  a
+       shell  function  is used as a simple command name, the list of commands
+       associated with that function name is executed.  Functions are executed
+       in  the  context  of  the  current  shell; no new process is created to
+       interpret them (contrast this with the execution of  a  shell  script).
+       When  a  function is executed, the arguments to the function become the
+       positional parameters during its execution.  The special parameter #\b# is
+       updated  to reflect the change.  Special parameter 0 is unchanged.  The
+       first element of the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE variable is set to the name of the  func-
+       tion  while  the function is executing.  All other aspects of the shell
+       execution environment are identical between a function and  its  caller
+       with the exception that the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps (see the description
+       of the t\btr\bra\bap\bp builtin under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) are not  inher-
+       ited  unless  the  function has been given the t\btr\bra\bac\bce\be attribute (see the
+       description of the d\bde\bec\bcl\bla\bar\bre\be builtin below) or  the  -\b-o\bo  f\bfu\bun\bnc\bct\btr\bra\bac\bce\be  shell
+       option  has  been enabled with the s\bse\bet\bt builtin (in which case all func-
+       tions inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps).
+
+       Variables local to the function may be declared with the l\blo\boc\bca\bal\bl  builtin
+       command.  Ordinarily, variables and their values are shared between the
+       function and its caller.
+
+       If the builtin command r\bre\bet\btu\bur\brn\bn is executed in a function,  the  function
+       completes  and  execution resumes with the next command after the func-
+       tion call.  Any command associated with the  R\bRE\bET\bTU\bUR\bRN\bN  trap  is  executed
+       before execution resumes.  When a function completes, the values of the
+       positional parameters and the special parameter #\b# are restored  to  the
+       values they had prior to the function's execution.
+
+       Function  names and definitions may be listed with the -\b-f\bf option to the
+       d\bde\bec\bcl\bla\bar\bre\be or t\bty\byp\bpe\bes\bse\bet\bt builtin commands.  The -\b-F\bF option to d\bde\bec\bcl\bla\bar\bre\be or t\bty\byp\bpe\be-\b-
+       s\bse\bet\bt  will  list the function names only (and optionally the source file
+       and line number, if the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is  enabled).   Functions
+       may  be exported so that subshells automatically have them defined with
+       the -\b-f\bf option to the e\bex\bxp\bpo\bor\brt\bt builtin.   A  function  definition  may  be
+       deleted  using  the  -\b-f\bf  option  to the u\bun\bns\bse\bet\bt builtin.  Note that shell
+       functions and variables with the same name may result in multiple iden-
+       tically-named  entries  in  the environment passed to the shell's chil-
+       dren.  Care should be taken in cases where this may cause a problem.
+
+       Functions may be recursive.  No limit  is  imposed  on  the  number  of
+       recursive calls.
+
+A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN
+       The  shell allows arithmetic expressions to be evaluated, under certain
+       circumstances (see the l\ble\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtin commands and  A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc
+       E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn).   Evaluation  is done in fixed-width integers with no check
+       for overflow, though division by 0 is trapped and flagged as an  error.
+       The  operators  and their precedence, associativity, and values are the
+       same as in the C language.  The following list of operators is  grouped
+       into  levels  of  equal-precedence operators.  The levels are listed in
+       order of decreasing precedence.
+
+       _\bi_\bd+\b++\b+ _\bi_\bd-\b--\b-
+              variable post-increment and post-decrement
+       +\b++\b+_\bi_\bd -\b--\b-_\bi_\bd
+              variable pre-increment and pre-decrement
+       -\b- +\b+    unary minus and plus
+       !\b! ~\b~    logical and bitwise negation
+       *\b**\b*     exponentiation
+       *\b* /\b/ %\b%  multiplication, division, remainder
+       +\b+ -\b-    addition, subtraction
+       <\b<<\b< >\b>>\b>  left and right bitwise shifts
+       <\b<=\b= >\b>=\b= <\b< >\b>
+              comparison
+       =\b==\b= !\b!=\b=  equality and inequality
+       &\b&      bitwise AND
+       ^\b^      bitwise exclusive OR
+       |\b|      bitwise OR
+       &\b&&\b&     logical AND
+       |\b||\b|     logical OR
+       _\be_\bx_\bp_\br?\b?_\be_\bx_\bp_\br:\b:_\be_\bx_\bp_\br
+              conditional operator
+       =\b= *\b*=\b= /\b/=\b= %\b%=\b= +\b+=\b= -\b-=\b= <\b<<\b<=\b= >\b>>\b>=\b= &\b&=\b= ^\b^=\b= |\b|=\b=
+              assignment
+       _\be_\bx_\bp_\br_\b1 ,\b, _\be_\bx_\bp_\br_\b2
+              comma
+
+       Shell variables are allowed as operands; parameter  expansion  is  per-
+       formed before the expression is evaluated.  Within an expression, shell
+       variables may also be referenced by name without  using  the  parameter
+       expansion  syntax.  A shell variable that is null or unset evaluates to
+       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  _\bi_\bn_\bt_\be_\bg_\be_\br
+       attribute using d\bde\bec\bcl\bla\bar\bre\be -\b-i\bi is assigned a value.  A null value evaluates
+       to 0.  A shell variable need not have its integer attribute  turned  on
+       to be used in an expression.
+
+       Constants with a leading 0 are interpreted as octal numbers.  A leading
+       0x or  0X  denotes  hexadecimal.   Otherwise,  numbers  take  the  form
+       [_\bb_\ba_\bs_\be_\b#]n,  where _\bb_\ba_\bs_\be is a decimal number between 2 and 64 representing
+       the arithmetic base, and _\bn is a number in that base.  If _\bb_\ba_\bs_\be_\b# is omit-
+       ted,  then  base 10 is used.  The digits greater than 9 are represented
+       by the lowercase letters, the uppercase letters,  @,  and  _,  in  that
+       order.   If  _\bb_\ba_\bs_\be  is less than or equal to 36, lowercase and uppercase
+       letters may be used interchangeably to represent numbers between 10 and
+       35.
+
+       Operators  are  evaluated  in  order of precedence.  Sub-expressions in
+       parentheses are evaluated first and may override the  precedence  rules
+       above.
+
+C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
+       Conditional  expressions  are  used  by the [\b[[\b[ compound command and the
+       t\bte\bes\bst\bt and [\b[ builtin commands to test file attributes and perform  string
+       and  arithmetic comparisons.  Expressions are formed from the following
+       unary or binary primaries.  If any _\bf_\bi_\bl_\be argument to  one  of  the  pri-
+       maries is of the form _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\bn, then file descriptor _\bn is checked.  If
+       the _\bf_\bi_\bl_\be argument to  one  of  the  primaries  is  one  of  _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn,
+       _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt,  or _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br, file descriptor 0, 1, or 2, respectively,
+       is checked.
+
+       Unless otherwise specified, primaries that operate on files follow sym-
+       bolic links and operate on the target of the link, rather than the link
+       itself.
+
+       -\b-a\ba _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists.
+       -\b-b\bb _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is a block special file.
+       -\b-c\bc _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is a character special file.
+       -\b-d\bd _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is a directory.
+       -\b-e\be _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists.
+       -\b-f\bf _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is a regular file.
+       -\b-g\bg _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is set-group-id.
+       -\b-h\bh _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is a symbolic link.
+       -\b-k\bk _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and its ``sticky'' bit is set.
+       -\b-p\bp _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is a named pipe (FIFO).
+       -\b-r\br _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is readable.
+       -\b-s\bs _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and has a size greater than zero.
+       -\b-t\bt _\bf_\bd  True if file descriptor _\bf_\bd is open and refers to a terminal.
+       -\b-u\bu _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and its set-user-id bit is set.
+       -\b-w\bw _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is writable.
+       -\b-x\bx _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is executable.
+       -\b-O\bO _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is owned by the effective user id.
+       -\b-G\bG _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is owned by the effective group id.
+       -\b-L\bL _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is a symbolic link.
+       -\b-S\bS _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and is a socket.
+       -\b-N\bN _\bf_\bi_\bl_\be
+              True if _\bf_\bi_\bl_\be exists and has been  modified  since  it  was  last
+              read.
+       _\bf_\bi_\bl_\be_\b1 -n\bnt\bt _\bf_\bi_\bl_\be_\b2
+              True  if  _\bf_\bi_\bl_\be_\b1  is  newer (according to modification date) than
+              _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b1 exists and _\bf_\bi_\bl_\be_\b2 does not.
+       _\bf_\bi_\bl_\be_\b1 -o\bot\bt _\bf_\bi_\bl_\be_\b2
+              True if _\bf_\bi_\bl_\be_\b1 is older than _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b2 exists and  _\bf_\bi_\bl_\be_\b1
+              does not.
+       _\bf_\bi_\bl_\be_\b1 -\b-e\bef\bf _\bf_\bi_\bl_\be_\b2
+              True  if _\bf_\bi_\bl_\be_\b1 and _\bf_\bi_\bl_\be_\b2 refer to the same device and inode num-
+              bers.
+       -\b-o\bo _\bo_\bp_\bt_\bn_\ba_\bm_\be
+              True if shell option  _\bo_\bp_\bt_\bn_\ba_\bm_\be  is  enabled.   See  the  list  of
+              options  under  the  description  of  the  -\b-o\bo  option to the s\bse\bet\bt
+              builtin below.
+       -\b-z\bz _\bs_\bt_\br_\bi_\bn_\bg
+              True if the length of _\bs_\bt_\br_\bi_\bn_\bg is zero.
+       _\bs_\bt_\br_\bi_\bn_\bg
+       -\b-n\bn _\bs_\bt_\br_\bi_\bn_\bg
+              True if the length of _\bs_\bt_\br_\bi_\bn_\bg is non-zero.
+
+       _\bs_\bt_\br_\bi_\bn_\bg_\b1 =\b==\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
+              True if the strings are equal.  =\b= may be used in place of =\b==\b= for
+              strict POSIX compliance.
+
+       _\bs_\bt_\br_\bi_\bn_\bg_\b1 !\b!=\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
+              True if the strings are not equal.
+
+       _\bs_\bt_\br_\bi_\bn_\bg_\b1 <\b< _\bs_\bt_\br_\bi_\bn_\bg_\b2
+              True  if  _\bs_\bt_\br_\bi_\bn_\bg_\b1  sorts before _\bs_\bt_\br_\bi_\bn_\bg_\b2 lexicographically in the
+              current locale.
+
+       _\bs_\bt_\br_\bi_\bn_\bg_\b1 >\b> _\bs_\bt_\br_\bi_\bn_\bg_\b2
+              True if _\bs_\bt_\br_\bi_\bn_\bg_\b1 sorts after  _\bs_\bt_\br_\bi_\bn_\bg_\b2  lexicographically  in  the
+              current locale.
+
+       _\ba_\br_\bg_\b1 O\bOP\bP _\ba_\br_\bg_\b2
+              O\bOP\bP  is one of -\b-e\beq\bq, -\b-n\bne\be, -\b-l\blt\bt, -\b-l\ble\be, -\b-g\bgt\bt, or -\b-g\bge\be.  These arithmetic
+              binary operators return true if _\ba_\br_\bg_\b1 is equal to, not equal  to,
+              less  than, less than or equal to, greater than, or greater than
+              or equal to _\ba_\br_\bg_\b2, respectively.  _\bA_\br_\bg_\b1 and _\ba_\br_\bg_\b2 may  be  positive
+              or negative integers.
+
+S\bSI\bIM\bMP\bPL\bLE\bE C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
+       When  a  simple  command  is executed, the shell performs the following
+       expansions, assignments, and redirections, from left to right.
+
+       1.     The words that the parser has  marked  as  variable  assignments
+              (those  preceding  the  command name) and redirections are saved
+              for later processing.
+
+       2.     The words that are not variable assignments or redirections  are
+              expanded.   If  any words remain after expansion, the first word
+              is taken to be the name of the command and the  remaining  words
+              are the arguments.
+
+       3.     Redirections are performed as described above under R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN.
+
+       4.     The text after the =\b= in each variable assignment undergoes tilde
+              expansion, parameter expansion, command substitution, arithmetic
+              expansion, and quote removal before being assigned to the  vari-
+              able.
+
+       If no command name results, the variable assignments affect the current
+       shell environment.  Otherwise, the variables are added to the  environ-
+       ment  of the executed command and do not affect the current shell envi-
+       ronment.  If any of the assignments attempts to assign  a  value  to  a
+       readonly  variable,  an error occurs, and the command exits with a non-
+       zero status.
+
+       If no command name results, redirections  are  performed,  but  do  not
+       affect  the  current shell environment.  A redirection error causes the
+       command to exit with a non-zero status.
+
+       If there is a command name left after expansion, execution proceeds  as
+       described  below.   Otherwise, the command exits.  If one of the expan-
+       sions contained a command substitution, the exit status of the  command
+       is  the  exit  status  of  the last command substitution performed.  If
+       there were no command substitutions, the command exits with a status of
+       zero.
+
+C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN
+       After  a  command  has been split into words, if it results in a simple
+       command and an optional list of arguments, the  following  actions  are
+       taken.
+
+       If  the  command name contains no slashes, the shell attempts to locate
+       it.  If there exists a shell function by that name,  that  function  is
+       invoked  as described above in F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS.  If the name does not match a
+       function, the shell searches for it in the list of shell builtins.   If
+       a match is found, that builtin is invoked.
+
+       If  the name is neither a shell function nor a builtin, and contains no
+       slashes, b\bba\bas\bsh\bh searches each element of the P\bPA\bAT\bTH\bH for  a  directory  con-
+       taining  an  executable  file  by that name.  B\bBa\bas\bsh\bh uses a hash table to
+       remember the full pathnames of executable files (see h\bha\bas\bsh\bh  under  S\bSH\bHE\bEL\bLL\bL
+       B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  below).  A full search of the directories in P\bPA\bAT\bTH\bH is
+       performed only if the command is not found in the hash table.   If  the
+       search is unsuccessful, the shell searches for a defined shell function
+       named c\bco\bom\bmm\bma\ban\bnd\bd_\b_n\bno\bot\bt_\b_f\bfo\bou\bun\bnd\bd_\b_h\bha\ban\bnd\bdl\ble\be.  If that function exists, it is invoked
+       with  the  original command and the original command's arguments as its
+       arguments, and the function's exit status becomes the  exit  status  of
+       the  shell.  If that function is not defined, the shell prints an error
+       message and returns an exit status of 127.
+
+       If the search is successful, or if the command  name  contains  one  or
+       more slashes, the shell executes the named program in a separate execu-
+       tion environment.  Argument 0 is set to the name given, and the remain-
+       ing arguments to the command are set to the arguments given, if any.
+
+       If  this  execution fails because the file is not in executable format,
+       and the file is not a directory, it is assumed to be a _\bs_\bh_\be_\bl_\bl _\bs_\bc_\br_\bi_\bp_\bt,  a
+       file  containing  shell commands.  A subshell is spawned to execute it.
+       This subshell reinitializes itself, so that the effect is as if  a  new
+       shell  had  been  invoked to handle the script, with the exception that
+       the locations of commands remembered by  the  parent  (see  h\bha\bas\bsh\bh  below
+       under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS) are retained by the child.
+
+       If  the program is a file beginning with #\b#!\b!, the remainder of the first
+       line specifies an interpreter for the program.  The shell executes  the
+       specified interpreter on operating systems that do not handle this exe-
+       cutable format themselves.  The arguments to the interpreter consist of
+       a  single optional argument following the interpreter name on the first
+       line of the program, followed by the name of the program,  followed  by
+       the command arguments, if any.
+
+C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+       The  shell  has an _\be_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt, which consists of the follow-
+       ing:
+
+
+       +\bo      open files inherited by the shell at invocation, as modified  by
+              redirections supplied to the e\bex\bxe\bec\bc builtin
+
+       +\bo      the  current  working directory as set by c\bcd\bd, p\bpu\bus\bsh\bhd\bd, or p\bpo\bop\bpd\bd, or
+              inherited by the shell at invocation
+
+       +\bo      the file creation mode mask as set by u\bum\bma\bas\bsk\bk  or  inherited  from
+              the shell's parent
+
+       +\bo      current traps set by t\btr\bra\bap\bp
+
+       +\bo      shell parameters that are set by variable assignment or with s\bse\bet\bt
+              or inherited from the shell's parent in the environment
+
+       +\bo      shell functions defined during execution or inherited  from  the
+              shell's parent in the environment
+
+       +\bo      options  enabled  at  invocation (either by default or with com-
+              mand-line arguments) or by s\bse\bet\bt
+
+       +\bo      options enabled by s\bsh\bho\bop\bpt\bt
+
+       +\bo      shell aliases defined with a\bal\bli\bia\bas\bs
+
+       +\bo      various process IDs, including those  of  background  jobs,  the
+              value of $\b$$\b$, and the value of $\b$P\bPP\bPI\bID\bD
+
+       When  a  simple command other than a builtin or shell function is to be
+       executed, it is invoked in a separate execution environment  that  con-
+       sists  of the following.  Unless otherwise noted, the values are inher-
+       ited from the shell.
+
+
+       +\bo      the shell's open files, plus  any  modifications  and  additions
+              specified by redirections to the command
+
+       +\bo      the current working directory
+
+       +\bo      the file creation mode mask
+
+       +\bo      shell  variables  and  functions  marked  for export, along with
+              variables exported for the command, passed in the environment
+
+       +\bo      traps caught by the shell are reset to the values inherited from
+              the shell's parent, and traps ignored by the shell are ignored
+
+       A  command  invoked  in  this  separate  environment  cannot affect the
+       shell's execution environment.
+
+       Command substitution, commands grouped with parentheses, and  asynchro-
+       nous commands are invoked in a subshell environment that is a duplicate
+       of the shell environment, except that traps caught  by  the  shell  are
+       reset to the values that the shell inherited from its parent at invoca-
+       tion.  Builtin commands that are invoked as part of a pipeline are also
+       executed in a subshell environment.  Changes made to the subshell envi-
+       ronment cannot affect the shell's execution environment.
+
+       Subshells spawned to execute command substitutions inherit the value of
+       the  -\b-e\be  option  from  the  parent shell.  When not in posix mode, Bash
+       clears the -\b-e\be option in such subshells.
+
+       If a command is followed by a &\b& and job  control  is  not  active,  the
+       default  standard  input  for  the command is the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl.
+       Otherwise, the invoked command inherits the  file  descriptors  of  the
+       calling shell as modified by redirections.
+
+E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+       When  a  program  is invoked it is given an array of strings called the
+       _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt.   This  is  a  list  of  _\bn_\ba_\bm_\be-_\bv_\ba_\bl_\bu_\be  pairs,  of  the  form
+       _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be.
+
+       The  shell  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 _\be_\bx_\bp_\bo_\br_\bt to child pro-
+       cesses.  Executed commands inherit the  environment.   The  e\bex\bxp\bpo\bor\brt\bt  and
+       d\bde\bec\bcl\bla\bar\bre\be  -\b-x\bx  commands allow parameters and functions to be added to and
+       deleted from the environment.  If the value of a parameter in the envi-
+       ronment  is  modified,  the  new value becomes part of the environment,
+       replacing the old.  The environment inherited by any  executed  command
+       consists  of the shell's initial environment, whose values may be modi-
+       fied in the shell, less any pairs removed by the  u\bun\bns\bse\bet\bt  command,  plus
+       any additions via the e\bex\bxp\bpo\bor\brt\bt and d\bde\bec\bcl\bla\bar\bre\be -\b-x\bx commands.
+
+       The  environment  for  any  _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or function may be augmented
+       temporarily by prefixing it with parameter  assignments,  as  described
+       above in P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS.  These assignment statements affect only the envi-
+       ronment seen by that command.
+
+       If the -\b-k\bk option is set (see the s\bse\bet\bt builtin command below),  then  _\ba_\bl_\bl
+       parameter  assignments are placed in the environment for a command, not
+       just those that precede the command name.
+
+       When b\bba\bas\bsh\bh invokes an external command, the variable _\b_  is  set  to  the
+       full  file  name of the command and passed to that command in its envi-
+       ronment.
+
+E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS
+       The exit status of an executed command is the  value  returned  by  the
+       _\bw_\ba_\bi_\bt_\bp_\bi_\bd system call or equivalent function.  Exit statuses fall between
+       0 and 255, though, as explained below, the shell may use  values  above
+       125 specially.  Exit statuses from shell builtins and compound commands
+       are also limited to this range. Under certain circumstances, the  shell
+       will use special values to indicate specific failure modes.
+
+       For the shell's purposes, a command which exits with a zero exit status
+       has succeeded.  An exit status of zero indicates success.   A  non-zero
+       exit  status  indicates  failure.  When a command terminates on a fatal
+       signal _\bN, b\bba\bas\bsh\bh uses the value of 128+_\bN as the exit status.
+
+       If a command is not found, the child  process  created  to  execute  it
+       returns  a status of 127.  If a command is found but is not executable,
+       the return status is 126.
+
+       If a command fails because of an error during expansion or redirection,
+       the exit status is greater than zero.
+
+       Shell  builtin  commands return a status of 0 (_\bt_\br_\bu_\be) if successful, and
+       non-zero (_\bf_\ba_\bl_\bs_\be) if an error occurs while they execute.   All  builtins
+       return an exit status of 2 to indicate incorrect usage.
+
+       B\bBa\bas\bsh\bh  itself  returns  the  exit  status  of the last command executed,
+       unless a syntax error occurs, in which case it exits  with  a  non-zero
+       value.  See also the e\bex\bxi\bit\bt builtin command below.
+
+S\bSI\bIG\bGN\bNA\bAL\bLS\bS
+       When  b\bba\bas\bsh\bh  is  interactive,  in  the  absence of any traps, it ignores
+       S\bSI\bIG\bGT\bTE\bER\bRM\bM (so that k\bki\bil\bll\bl 0\b0 does not kill an interactive shell), and S\bSI\bIG\bGI\bIN\bNT\bT
+       is  caught and handled (so that the w\bwa\bai\bit\bt builtin is interruptible).  In
+       all cases, b\bba\bas\bsh\bh ignores S\bSI\bIG\bGQ\bQU\bUI\bIT\bT.  If job control  is  in  effect,  b\bba\bas\bsh\bh
+       ignores S\bSI\bIG\bGT\bTT\bTI\bIN\bN, S\bSI\bIG\bGT\bTT\bTO\bOU\bU, and S\bSI\bIG\bGT\bTS\bST\bTP\bP.
+
+       Non-builtin commands run by b\bba\bas\bsh\bh have signal handlers set to the values
+       inherited by the shell from its parent.  When job  control  is  not  in
+       effect,  asynchronous commands ignore S\bSI\bIG\bGI\bIN\bNT\bT and S\bSI\bIG\bGQ\bQU\bUI\bIT\bT in addition to
+       these inherited handlers.  Commands run as a result of command  substi-
+       tution ignore the keyboard-generated job control signals S\bSI\bIG\bGT\bTT\bTI\bIN\bN, S\bSI\bIG\bGT\bT-\b-
+       T\bTO\bOU\bU, and S\bSI\bIG\bGT\bTS\bST\bTP\bP.
+
+       The shell exits by default upon receipt of a S\bSI\bIG\bGH\bHU\bUP\bP.   Before  exiting,
+       an  interactive  shell  resends  the  S\bSI\bIG\bGH\bHU\bUP\bP  to  all  jobs, running or
+       stopped.  Stopped jobs are sent S\bSI\bIG\bGC\bCO\bON\bNT\bT to ensure that they receive the
+       S\bSI\bIG\bGH\bHU\bUP\bP.   To  prevent the shell from sending the signal to a particular
+       job, it should be removed from the jobs table with the  d\bdi\bis\bso\bow\bwn\bn  builtin
+       (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  below)  or marked to not receive S\bSI\bIG\bGH\bHU\bUP\bP
+       using d\bdi\bis\bso\bow\bwn\bn -\b-h\bh.
+
+       If the h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt shell option has been set with  s\bsh\bho\bop\bpt\bt,  b\bba\bas\bsh\bh  sends  a
+       S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an interactive login shell exits.
+
+       If  b\bba\bas\bsh\bh is waiting for a command to complete and receives a signal for
+       which a trap has been set, the trap will not be executed until the com-
+       mand  completes.   When b\bba\bas\bsh\bh is waiting for an asynchronous command via
+       the w\bwa\bai\bit\bt builtin, the reception of a signal for which a trap  has  been
+       set will cause the w\bwa\bai\bit\bt builtin to return immediately with an exit sta-
+       tus greater than 128, immediately after which the trap is executed.
+
+J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL
+       _\bJ_\bo_\bb _\bc_\bo_\bn_\bt_\br_\bo_\bl refers to the ability to  selectively  stop  (_\bs_\bu_\bs_\bp_\be_\bn_\bd)  the
+       execution of processes and continue (_\br_\be_\bs_\bu_\bm_\be) their execution at a later
+       point.  A user typically  employs  this  facility  via  an  interactive
+       interface supplied jointly by the system's terminal driver and b\bba\bas\bsh\bh.
+
+       The  shell  associates  a  _\bj_\bo_\bb with each pipeline.  It keeps a table of
+       currently executing jobs, which may be listed with  the  j\bjo\bob\bbs\bs  command.
+       When  b\bba\bas\bsh\bh starts a job asynchronously (in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd), it prints a
+       line that looks like:
+
+              [1] 25647
+
+       indicating that this job is job number 1 and that the process ID of the
+       last process in the pipeline associated with this job is 25647.  All of
+       the processes in a single pipeline are members of the same  job.   B\bBa\bas\bsh\bh
+       uses the _\bj_\bo_\bb abstraction as the basis for job control.
+
+       To  facilitate the implementation of the user interface to job control,
+       the operating system maintains the notion of a _\bc_\bu_\br_\br_\be_\bn_\bt _\bt_\be_\br_\bm_\bi_\bn_\ba_\bl _\bp_\br_\bo_\bc_\be_\bs_\bs
+       _\bg_\br_\bo_\bu_\bp _\bI_\bD.  Members of this process group (processes whose process group
+       ID is equal to the current terminal process group ID) receive keyboard-
+       generated  signals  such  as S\bSI\bIG\bGI\bIN\bNT\bT.  These processes are said to be in
+       the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd.  _\bB_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd processes are those whose process group  ID
+       differs from the terminal's; such processes are immune to keyboard-gen-
+       erated signals.  Only foreground processes are allowed to read from  or
+       write to the terminal.  Background processes which attempt to read from
+       (write to) the terminal are sent a S\bSI\bIG\bGT\bTT\bTI\bIN\bN (\b(S\bSI\bIG\bGT\bTT\bTO\bOU\bU)\b) signal by the ter-
+       minal driver, which, unless caught, suspends the process.
+
+       If  the operating system on which b\bba\bas\bsh\bh is running supports job control,
+       b\bba\bas\bsh\bh contains facilities to use it.  Typing the _\bs_\bu_\bs_\bp_\be_\bn_\bd character (typ-
+       ically ^\b^Z\bZ, Control-Z) while a process is running causes that process to
+       be stopped and returns control to b\bba\bas\bsh\bh.   Typing  the  _\bd_\be_\bl_\ba_\by_\be_\bd  _\bs_\bu_\bs_\bp_\be_\bn_\bd
+       character  (typically  ^\b^Y\bY,  Control-Y) causes the process to be stopped
+       when it attempts to read input from the terminal,  and  control  to  be
+       returned  to b\bba\bas\bsh\bh.  The user may then manipulate the state of this job,
+       using the b\bbg\bg command to continue it in the background, the  f\bfg\bg  command
+       to continue it in the foreground, or the k\bki\bil\bll\bl command to kill it.  A ^\b^Z\bZ
+       takes effect immediately, and has the additional side effect of causing
+       pending output and typeahead to be discarded.
+
+       There are a number of ways to refer to a job in the shell.  The charac-
+       ter %\b% introduces a job specification (_\bj_\bo_\bb_\bs_\bp_\be_\bc).  Job number  _\bn  may  be
+       referred to as %\b%n\bn.  A job may also be referred to using a prefix of the
+       name used to start it, or using a substring that appears in its command
+       line.   For  example,  %\b%c\bce\be  refers  to  a  stopped c\bce\be job.  If a prefix
+       matches more than one job, b\bba\bas\bsh\bh reports an error.  Using %\b%?\b?c\bce\be,  on  the
+       other  hand,  refers to any job containing the string c\bce\be in its command
+       line.  If the substring matches more than  one  job,  b\bba\bas\bsh\bh  reports  an
+       error.   The  symbols %\b%%\b% and %\b%+\b+ refer to the shell's notion of the _\bc_\bu_\br_\b-
+       _\br_\be_\bn_\bt _\bj_\bo_\bb, which is the last job stopped while it was in the  foreground
+       or started in the background.  The _\bp_\br_\be_\bv_\bi_\bo_\bu_\bs _\bj_\bo_\bb may be referenced using
+       %\b%-\b-.  If there is only a single job, %\b%+\b+ and %\b%-\b- can both be used to refer
+       to  that  job.   In  output pertaining to jobs (e.g., the output of the
+       j\bjo\bob\bbs\bs command), the current job is always flagged with a +\b+, and the pre-
+       vious  job  with  a -\b-.  A single % (with no accompanying job specifica-
+       tion) also refers to the current job.
+
+       Simply naming a job can be used to bring it into the foreground: %\b%1\b1  is
+       a  synonym  for  `\b``\b`f\bfg\bg %\b%1\b1'\b''\b', bringing job 1 from the background into the
+       foreground.  Similarly, `\b``\b`%\b%1\b1 &\b&'\b''\b'  resumes  job  1  in  the  background,
+       equivalent to `\b``\b`b\bbg\bg %\b%1\b1'\b''\b'.
+
+       The  shell  learns immediately whenever a job changes state.  Normally,
+       b\bba\bas\bsh\bh 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 -\b-b\bb
+       option to the s\bse\bet\bt builtin command is enabled, b\bba\bas\bsh\bh reports such changes
+       immediately.   Any  trap  on  S\bSI\bIG\bGC\bCH\bHL\bLD\bD  is  executed for each child that
+       exits.
+
+       If an attempt to exit b\bba\bas\bsh\bh is made while jobs are stopped (or,  if  the
+       c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs  shell  option has been enabled using the s\bsh\bho\bop\bpt\bt builtin, run-
+       ning), the shell prints a warning message, and, if the c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs option
+       is  enabled,  lists  the jobs and their statuses.  The j\bjo\bob\bbs\bs command may
+       then be used to inspect their status.  If a second attempt to  exit  is
+       made  without  an intervening command, the shell does not print another
+       warning, and any stopped jobs are terminated.
+
+P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
+       When executing interactively, b\bba\bas\bsh\bh displays the primary prompt P\bPS\bS1\b1 when
+       it  is  ready  to  read a command, and the secondary prompt P\bPS\bS2\b2 when it
+       needs more input to complete  a  command.   B\bBa\bas\bsh\bh  allows  these  prompt
+       strings  to  be  customized  by inserting a number of backslash-escaped
+       special characters that are decoded as follows:
+              \\b\a\ba     an ASCII bell character (07)
+              \\b\d\bd     the date in "Weekday Month Date" format (e.g.,  "Tue  May
+                     26")
+              \\b\D\bD{\b{_\bf_\bo_\br_\bm_\ba_\bt}\b}
+                     the  _\bf_\bo_\br_\bm_\ba_\bt  is  passed  to _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) and the result is
+                     inserted into the prompt string; an empty _\bf_\bo_\br_\bm_\ba_\bt  results
+                     in a locale-specific time representation.  The braces are
+                     required
+              \\b\e\be     an ASCII escape character (033)
+              \\b\h\bh     the hostname up to the first `.'
+              \\b\H\bH     the hostname
+              \\b\j\bj     the number of jobs currently managed by the shell
+              \\b\l\bl     the basename of the shell's terminal device name
+              \\b\n\bn     newline
+              \\b\r\br     carriage return
+              \\b\s\bs     the name of the shell, the basename of  $\b$0\b0  (the  portion
+                     following the final slash)
+              \\b\t\bt     the current time in 24-hour HH:MM:SS format
+              \\b\T\bT     the current time in 12-hour HH:MM:SS format
+              \\b\@\b@     the current time in 12-hour am/pm format
+              \\b\A\bA     the current time in 24-hour HH:MM format
+              \\b\u\bu     the username of the current user
+              \\b\v\bv     the version of b\bba\bas\bsh\bh (e.g., 2.00)
+              \\b\V\bV     the release of b\bba\bas\bsh\bh, version + patch level (e.g., 2.00.0)
+              \\b\w\bw     the current working  directory,  with  $\b$H\bHO\bOM\bME\bE  abbreviated
+                     with a tilde (uses the $\b$P\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM variable)
+              \\b\W\bW     the basename of the current working directory, with $\b$H\bHO\bOM\bME\bE
+                     abbreviated with a tilde
+              \\b\!\b!     the history number of this command
+              \\b\#\b#     the command number of this command
+              \\b\$\b$     if the effective UID is 0, a #\b#, otherwise a $\b$
+              \\b\_\bn_\bn_\bn   the character corresponding to the octal number _\bn_\bn_\bn
+              \\b\\\b\     a backslash
+              \\b\[\b[     begin a sequence of non-printing characters, which  could
+                     be  used  to  embed  a terminal control sequence into the
+                     prompt
+              \\b\]\b]     end a sequence of non-printing characters
+
+       The command number and the history number are  usually  different:  the
+       history  number of a command is its position in the history list, which
+       may include commands  restored  from  the  history  file  (see  H\bHI\bIS\bST\bTO\bOR\bRY\bY
+       below),  while  the  command  number is the position in the sequence of
+       commands executed during the current shell session.  After  the  string
+       is  decoded,  it is expanded via parameter expansion, command substitu-
+       tion, arithmetic expansion, and quote removal, subject to the value  of
+       the  p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs  shell option (see the description of the s\bsh\bho\bop\bpt\bt command
+       under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
+
+R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
+       This is the library that handles reading input when using  an  interac-
+       tive shell, unless the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option is given at shell invocation.
+       Line editing is also used when using the -\b-e\be option to the r\bre\bea\bad\bd builtin.
+       By default, the line editing commands are similar to those of emacs.  A
+       vi-style line editing interface is also available.  Line editing can be
+       enabled  at  any  time  using  the -\b-o\bo e\bem\bma\bac\bcs\bs or -\b-o\bo v\bvi\bi options to the s\bse\bet\bt
+       builtin (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  To turn off  line  editing
+       after  the  shell  is running, use the +\b+o\bo e\bem\bma\bac\bcs\bs or +\b+o\bo v\bvi\bi options to the
+       s\bse\bet\bt builtin.
+
+   R\bRe\bea\bad\bdl\bli\bin\bne\be N\bNo\bot\bta\bat\bti\bio\bon\bn
+       In this section, the emacs-style notation is used to denote keystrokes.
+       Control  keys  are  denoted by C-_\bk_\be_\by, e.g., C-n means Control-N.  Simi-
+       larly, _\bm_\be_\bt_\ba keys are denoted by M-_\bk_\be_\by, so M-x means Meta-X.   (On  key-
+       boards  without a _\bm_\be_\bt_\ba key, M-_\bx means ESC _\bx, i.e., press the Escape key
+       then the _\bx key.  This makes ESC the _\bm_\be_\bt_\ba _\bp_\br_\be_\bf_\bi_\bx.  The combination M-C-_\bx
+       means  ESC-Control-_\bx, or press the Escape key then hold the Control key
+       while pressing the _\bx key.)
+
+       Readline commands may be given numeric _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs, which normally act as
+       a  repeat  count.   Sometimes,  however, it is the sign of the argument
+       that is significant.  Passing a negative argument  to  a  command  that
+       acts  in the forward direction (e.g., k\bki\bil\bll\bl-\b-l\bli\bin\bne\be) causes that command to
+       act in a backward direction.  Commands whose  behavior  with  arguments
+       deviates from this are noted below.
+
+       When  a command is described as _\bk_\bi_\bl_\bl_\bi_\bn_\bg text, the text deleted is saved
+       for possible future retrieval (_\by_\ba_\bn_\bk_\bi_\bn_\bg).  The killed text is saved in a
+       _\bk_\bi_\bl_\bl _\br_\bi_\bn_\bg.  Consecutive kills cause the text to be accumulated into one
+       unit, which can be yanked all at once.  Commands which do not kill text
+       separate the chunks of text on the kill ring.
+
+   R\bRe\bea\bad\bdl\bli\bin\bne\be I\bIn\bni\bit\bti\bia\bal\bli\biz\bza\bat\bti\bio\bon\bn
+       Readline  is  customized  by putting commands in an initialization file
+       (the _\bi_\bn_\bp_\bu_\bt_\br_\bc file).  The name of this file is taken from the  value  of
+       the  I\bIN\bNP\bPU\bUT\bTR\bRC\bC  variable.   If  that  variable  is  unset, the default is
+       _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc.  When a program which uses the readline library starts  up,
+       the initialization file is read, and the key bindings and variables are
+       set.  There are only a few basic constructs  allowed  in  the  readline
+       initialization  file.  Blank lines are ignored.  Lines beginning with a
+       #\b# are comments.  Lines beginning with a  $\b$  indicate  conditional  con-
+       structs.  Other lines denote key bindings and variable settings.
+
+       The  default  key-bindings  may be changed with an _\bi_\bn_\bp_\bu_\bt_\br_\bc file.  Other
+       programs that use this library may add their own commands and bindings.
+
+       For example, placing
+
+              M-Control-u: universal-argument
+       or
+              C-Meta-u: universal-argument
+       into  the _\bi_\bn_\bp_\bu_\bt_\br_\bc would make M-C-u execute the readline command _\bu_\bn_\bi_\bv_\be_\br_\b-
+       _\bs_\ba_\bl_\b-_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.
+
+       The following symbolic character names  are  recognized:  _\bR_\bU_\bB_\bO_\bU_\bT,  _\bD_\bE_\bL,
+       _\bE_\bS_\bC, _\bL_\bF_\bD, _\bN_\bE_\bW_\bL_\bI_\bN_\bE, _\bR_\bE_\bT, _\bR_\bE_\bT_\bU_\bR_\bN, _\bS_\bP_\bC, _\bS_\bP_\bA_\bC_\bE, and _\bT_\bA_\bB.
+
+       In  addition  to  command  names, readline allows keys to be bound to a
+       string that is inserted when the key is pressed (a _\bm_\ba_\bc_\br_\bo).
+
+   R\bRe\bea\bad\bdl\bli\bin\bne\be K\bKe\bey\by B\bBi\bin\bnd\bdi\bin\bng\bgs\bs
+       The syntax for controlling key bindings in the _\bi_\bn_\bp_\bu_\bt_\br_\bc file is  simple.
+       All  that is required is the name of the command or the text of a macro
+       and a key sequence to which it should be bound. The name may be  speci-
+       fied in one of two ways: as a symbolic key name, possibly with _\bM_\be_\bt_\ba_\b- or
+       _\bC_\bo_\bn_\bt_\br_\bo_\bl_\b- prefixes, or as a key sequence.
+
+       When using the form k\bke\bey\byn\bna\bam\bme\be:_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be or _\bm_\ba_\bc_\br_\bo, _\bk_\be_\by_\bn_\ba_\bm_\be is the name
+       of a key spelled out in English.  For example:
+
+              Control-u: universal-argument
+              Meta-Rubout: backward-kill-word
+              Control-o: "> output"
+
+       In  the above example, _\bC_\b-_\bu is bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt,
+       _\bM_\b-_\bD_\bE_\bL is bound to the function b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd, and _\bC_\b-_\bo is bound  to
+       run  the macro expressed on the right hand side (that is, to insert the
+       text ``> output'' into the line).
+
+       In the second form, "\b"k\bke\bey\bys\bse\beq\bq"\b":_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be  or  _\bm_\ba_\bc_\br_\bo,  k\bke\bey\bys\bse\beq\bq  differs
+       from  k\bke\bey\byn\bna\bam\bme\be above in that strings denoting an entire key sequence may
+       be specified by placing the sequence within double  quotes.   Some  GNU
+       Emacs  style  key escapes can be used, as in the following example, but
+       the symbolic character names are not recognized.
+
+              "\C-u": universal-argument
+              "\C-x\C-r": re-read-init-file
+              "\e[11~": "Function Key 1"
+
+       In this example, _\bC_\b-_\bu is again bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt.
+       _\bC_\b-_\bx  _\bC_\b-_\br is bound to the function r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be, and _\bE_\bS_\bC _\b[ _\b1 _\b1 _\b~ is
+       bound to insert the text ``Function Key 1''.
+
+       The full set of GNU Emacs style escape sequences is
+              \\b\C\bC-\b-    control prefix
+              \\b\M\bM-\b-    meta prefix
+              \\b\e\be     an escape character
+              \\b\\\b\     backslash
+              \\b\"\b"     literal "
+              \\b\'\b'     literal '
+
+       In addition to the GNU Emacs style escape sequences, a  second  set  of
+       backslash escapes is available:
+              \\b\a\ba     alert (bell)
+              \\b\b\bb     backspace
+              \\b\d\bd     delete
+              \\b\f\bf     form feed
+              \\b\n\bn     newline
+              \\b\r\br     carriage return
+              \\b\t\bt     horizontal tab
+              \\b\v\bv     vertical tab
+              \\b\_\bn_\bn_\bn   the  eight-bit  character  whose value is the octal value
+                     _\bn_\bn_\bn (one to three digits)
+              \\b\x\bx_\bH_\bH   the eight-bit character whose value  is  the  hexadecimal
+                     value _\bH_\bH (one or two hex digits)
+
+       When entering the text of a macro, single or double quotes must be used
+       to indicate a macro definition.  Unquoted text is assumed to be a func-
+       tion  name.   In  the macro body, the backslash escapes described above
+       are expanded.  Backslash will quote any other character  in  the  macro
+       text, including " and '.
+
+       B\bBa\bas\bsh\bh  allows the current readline key bindings to be displayed or modi-
+       fied with the b\bbi\bin\bnd\bd builtin command.  The editing mode may  be  switched
+       during  interactive  use by using the -\b-o\bo option to the s\bse\bet\bt builtin com-
+       mand (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
+
+   R\bRe\bea\bad\bdl\bli\bin\bne\be V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
+       Readline has variables that can be used to further customize its behav-
+       ior.  A variable may be set in the _\bi_\bn_\bp_\bu_\bt_\br_\bc file with a statement of the
+       form
+
+              s\bse\bet\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be_\b-_\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
+
+       Except where noted, readline variables can take the values  O\bOn\bn  or  O\bOf\bff\bf
+       (without  regard  to  case).   Unrecognized variable names are ignored.
+       When a variable value is read, empty or null values, "on"  (case-insen-
+       sitive), and "1" are equivalent to O\bOn\bn.  All other values are equivalent
+       to O\bOf\bff\bf.  The variables and their default values are:
+
+       b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be (\b(a\bau\bud\bdi\bib\bbl\ble\be)\b)
+              Controls what happens when readline wants to ring  the  terminal
+              bell.  If set to n\bno\bon\bne\be, readline never rings the bell.  If set to
+              v\bvi\bis\bsi\bib\bbl\ble\be, readline uses a visible bell if one is  available.   If
+              set to a\bau\bud\bdi\bib\bbl\ble\be, readline attempts to ring the terminal's bell.
+       b\bbi\bin\bnd\bd-\b-t\btt\bty\by-\b-s\bsp\bpe\bec\bci\bia\bal\bl-\b-c\bch\bha\bar\brs\bs (\b(O\bOn\bn)\b)
+              If  set  to O\bOn\bn, readline attempts to bind the control characters
+              treated specially by the kernel's terminal driver to their read-
+              line equivalents.
+       c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn (\b(`\b``\b`#\b#'\b''\b')\b)
+              The  string  that  is  inserted when the readline i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt
+              command is executed.  This command is bound to M\bM-\b-#\b# in emacs mode
+              and to #\b# in vi command mode.
+       c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be (\b(O\bOf\bff\bf)\b)
+              If set to O\bOn\bn, readline performs filename matching and completion
+              in a case-insensitive fashion.
+       c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-p\bpr\bre\bef\bfi\bix\bx-\b-d\bdi\bis\bsp\bpl\bla\bay\by-\b-l\ble\ben\bng\bgt\bth\bh (\b(0\b0)\b)
+              The length in characters of the common prefix of a list of  pos-
+              sible  completions that is displayed without modification.  When
+              set to a value greater than zero, common  prefixes  longer  than
+              this  value are replaced with an ellipsis when displaying possi-
+              ble completions.
+       c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-q\bqu\bue\ber\bry\by-\b-i\bit\bte\bem\bms\bs (\b(1\b10\b00\b0)\b)
+              This determines when the user is queried about viewing the  num-
+              ber  of  possible  completions generated by the p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\be-\b-
+              t\bti\bio\bon\bns\bs command.  It may be set to any integer value greater  than
+              or  equal  to  zero.   If  the number of possible completions is
+              greater than or equal to the value of this variable, the user is
+              asked  whether or not he wishes to view them; otherwise they are
+              simply listed on the terminal.
+       c\bco\bon\bnv\bve\ber\brt\bt-\b-m\bme\bet\bta\ba (\b(O\bOn\bn)\b)
+              If set to O\bOn\bn, readline will convert characters with  the  eighth
+              bit set to an ASCII key sequence by stripping the eighth bit and
+              prefixing an escape character (in effect, using  escape  as  the
+              _\bm_\be_\bt_\ba _\bp_\br_\be_\bf_\bi_\bx).
+       d\bdi\bis\bsa\bab\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn (\b(O\bOf\bff\bf)\b)
+              If set to O\bOn\bn, readline will inhibit word completion.  Completion
+              characters will be inserted into the line as if  they  had  been
+              mapped to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt.
+       e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be (\b(e\bem\bma\bac\bcs\bs)\b)
+              Controls whether readline begins with a set of key bindings sim-
+              ilar to _\be_\bm_\ba_\bc_\bs or _\bv_\bi.  e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be can be set to either e\bem\bma\bac\bcs\bs or
+              v\bvi\bi.
+       e\ben\bna\bab\bbl\ble\be-\b-k\bke\bey\byp\bpa\bad\bd (\b(O\bOf\bff\bf)\b)
+              When set to O\bOn\bn, readline will try to enable the application key-
+              pad when it is called.  Some systems need  this  to  enable  the
+              arrow keys.
+       e\bex\bxp\bpa\ban\bnd\bd-\b-t\bti\bil\bld\bde\be (\b(O\bOf\bff\bf)\b)
+              If  set  to  o\bon\bn,  tilde  expansion  is  performed  when readline
+              attempts word completion.
+       h\bhi\bis\bst\bto\bor\bry\by-\b-p\bpr\bre\bes\bse\ber\brv\bve\be-\b-p\bpo\boi\bin\bnt\bt (\b(O\bOf\bff\bf)\b)
+              If set to o\bon\bn, the history code attempts to place  point  at  the
+              same  location on each history line retrieved with p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bs-\b-
+              t\bto\bor\bry\by or n\bne\bex\bxt\bt-\b-h\bhi\bis\bst\bto\bor\bry\by.
+       h\bhi\bis\bst\bto\bor\bry\by-\b-s\bsi\biz\bze\be (\b(0\b0)\b)
+              Set the maximum number of history entries saved in  the  history
+              list.  If set to zero, the number of entries in the history list
+              is not limited.
+       h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bl-\b-s\bsc\bcr\bro\bol\bll\bl-\b-m\bmo\bod\bde\be (\b(O\bOf\bff\bf)\b)
+              When set to O\bOn\bn, makes readline use a single  line  for  display,
+              scrolling the input horizontally on a single screen line when it
+              becomes longer than the screen width rather than wrapping  to  a
+              new line.
+       i\bin\bnp\bpu\but\bt-\b-m\bme\bet\bta\ba (\b(O\bOf\bff\bf)\b)
+              If  set to O\bOn\bn, readline will enable eight-bit input (that is, it
+              will not strip the high  bit  from  the  characters  it  reads),
+              regardless of what the terminal claims it can support.  The name
+              m\bme\bet\bta\ba-\b-f\bfl\bla\bag\bg is a synonym for this variable.
+       i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs (\b(`\b``\b`C\bC-\b-[\b[C\bC-\b-J\bJ'\b''\b')\b)
+              The string of characters that should  terminate  an  incremental
+              search  without  subsequently  executing the character as a com-
+              mand.  If this variable has not been given a value, the  charac-
+              ters _\bE_\bS_\bC and _\bC_\b-_\bJ will terminate an incremental search.
+       k\bke\bey\bym\bma\bap\bp (\b(e\bem\bma\bac\bcs\bs)\b)
+              Set  the current readline keymap.  The set of valid keymap names
+              is _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b,  _\bv_\bi_\b,  _\bv_\bi_\b-_\bc_\bo_\bm_\b-
+              _\bm_\ba_\bn_\bd,  and  _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.  _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs is
+              equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd.  The default value is  _\be_\bm_\ba_\bc_\bs;  the
+              value of e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be also affects the default keymap.
+       m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs (\b(O\bOn\bn)\b)
+              If set to O\bOn\bn, completed directory names have a slash appended.
+       m\bma\bar\brk\bk-\b-m\bmo\bod\bdi\bif\bfi\bie\bed\bd-\b-l\bli\bin\bne\bes\bs (\b(O\bOf\bff\bf)\b)
+              If  set  to  O\bOn\bn,  history lines that have been modified are dis-
+              played with a preceding asterisk (*\b*).
+       m\bma\bar\brk\bk-\b-s\bsy\bym\bml\bli\bin\bnk\bke\bed\bd-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs (\b(O\bOf\bff\bf)\b)
+              If set to O\bOn\bn, completed names which are symbolic links to direc-
+              tories   have   a  slash  appended  (subject  to  the  value  of
+              m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs).
+       m\bma\bat\btc\bch\bh-\b-h\bhi\bid\bdd\bde\ben\bn-\b-f\bfi\bil\ble\bes\bs (\b(O\bOn\bn)\b)
+              This variable, when set to O\bOn\bn, causes readline  to  match  files
+              whose  names  begin  with  a  `.' (hidden files) when performing
+              filename completion, unless the leading `.' is supplied  by  the
+              user in the filename to be completed.
+       o\bou\but\btp\bpu\but\bt-\b-m\bme\bet\bta\ba (\b(O\bOf\bff\bf)\b)
+              If  set  to O\bOn\bn, readline will display characters with the eighth
+              bit set directly rather than as a meta-prefixed escape sequence.
+       p\bpa\bag\bge\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(O\bOn\bn)\b)
+              If  set to O\bOn\bn, readline uses an internal _\bm_\bo_\br_\be-like pager to dis-
+              play a screenful of possible completions at a time.
+       p\bpr\bri\bin\bnt\bt-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs-\b-h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bll\bly\by (\b(O\bOf\bff\bf)\b)
+              If set to O\bOn\bn, readline will  display  completions  with  matches
+              sorted  horizontally in alphabetical order, rather than down the
+              screen.
+       r\bre\bev\bve\ber\brt\bt-\b-a\bal\bll\bl-\b-a\bat\bt-\b-n\bne\bew\bwl\bli\bin\bne\be (\b(O\bOf\bff\bf)\b)
+              If set to o\bon\bn, readline will undo all changes  to  history  lines
+              before returning when a\bac\bcc\bce\bep\bpt\bt-\b-l\bli\bin\bne\be is executed.  By default, his-
+              tory lines may be modified  and  retain  individual  undo  lists
+              across calls to r\bre\bea\bad\bdl\bli\bin\bne\be.
+       s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs (\b(O\bOf\bff\bf)\b)
+              This  alters  the  default behavior of the completion functions.
+              If set to o\bon\bn, words which have more than one possible completion
+              cause  the  matches  to be listed immediately instead of ringing
+              the bell.
+       s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-u\bun\bnm\bmo\bod\bdi\bif\bfi\bie\bed\bd (\b(O\bOf\bff\bf)\b)
+              This alters the default behavior of the completion functions  in
+              a fashion similar to s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs.  If set to o\bon\bn, words
+              which have more than one possible completion without any  possi-
+              ble  partial  completion (the possible completions don't share a
+              common prefix)  cause  the  matches  to  be  listed  immediately
+              instead of ringing the bell.
+       v\bvi\bis\bsi\bib\bbl\ble\be-\b-s\bst\bta\bat\bts\bs (\b(O\bOf\bff\bf)\b)
+              If  set to O\bOn\bn, a character denoting a file's type as reported by
+              _\bs_\bt_\ba_\bt(2) is appended to the filename when listing  possible  com-
+              pletions.
+
+   R\bRe\bea\bad\bdl\bli\bin\bne\be C\bCo\bon\bnd\bdi\bit\bti\bio\bon\bna\bal\bl C\bCo\bon\bns\bst\btr\bru\buc\bct\bts\bs
+       Readline  implements  a  facility  similar in spirit to the conditional
+       compilation features of the C preprocessor which  allows  key  bindings
+       and  variable  settings  to be performed as the result of tests.  There
+       are four parser directives used.
+
+       $\b$i\bif\bf    The $\b$i\bif\bf construct allows bindings to be made based on the  edit-
+              ing  mode,  the  terminal  being  used, or the application using
+              readline.  The text of the test extends to the end of the  line;
+              no characters are required to isolate it.
+
+              m\bmo\bod\bde\be   The  m\bmo\bod\bde\be=\b=  form  of  the  $\b$i\bif\bf  directive is used to test
+                     whether readline is in emacs or vi  mode.   This  may  be
+                     used  in  conjunction  with  the  s\bse\bet\bt k\bke\bey\bym\bma\bap\bp command, for
+                     instance, to  set  bindings  in  the  _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd  and
+                     _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx  keymaps  only  if readline is starting out in
+                     emacs mode.
+
+              t\bte\ber\brm\bm   The t\bte\ber\brm\bm=\b= form may be used to  include  terminal-specific
+                     key bindings, perhaps to bind the key sequences output by
+                     the terminal's function keys.  The word on the right side
+                     of the =\b= is tested against the both full name of the ter-
+                     minal and the portion of the  terminal  name  before  the
+                     first  -\b-.  This allows _\bs_\bu_\bn to match both _\bs_\bu_\bn and _\bs_\bu_\bn_\b-_\bc_\bm_\bd,
+                     for instance.
+
+              a\bap\bpp\bpl\bli\bic\bca\bat\bti\bio\bon\bn
+                     The a\bap\bpp\bpl\bli\bic\bca\bat\bti\bio\bon\bn construct is used to include application-
+                     specific  settings.   Each  program  using  the  readline
+                     library sets the _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn _\bn_\ba_\bm_\be, and an  initialization
+                     file can test for a particular value.  This could be used
+                     to bind key sequences to functions useful for a  specific
+                     program.   For instance, the following command adds a key
+                     sequence that quotes the  current  or  previous  word  in
+                     Bash:
+
+                     $\b$i\bif\bf Bash
+                     # Quote the current or previous word
+                     "\C-xq": "\eb\"\ef\""
+                     $\b$e\ben\bnd\bdi\bif\bf
+
+       $\b$e\ben\bnd\bdi\bif\bf This command, as seen in the previous example, terminates an $\b$i\bif\bf
+              command.
+
+       $\b$e\bel\bls\bse\be  Commands in this branch of the $\b$i\bif\bf directive are executed if the
+              test fails.
+
+       $\b$i\bin\bnc\bcl\blu\bud\bde\be
+              This  directive takes a single filename as an argument and reads
+              commands and bindings from that file.  For example, the  follow-
+              ing directive would read _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc:
+
+              $\b$i\bin\bnc\bcl\blu\bud\bde\be  _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc
+
+   S\bSe\bea\bar\brc\bch\bhi\bin\bng\bg
+       Readline  provides  commands  for searching through the command history
+       (see H\bHI\bIS\bST\bTO\bOR\bRY\bY below) for lines containing a specified string.  There are
+       two search modes: _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt_\ba_\bl and _\bn_\bo_\bn_\b-_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt_\ba_\bl.
+
+       Incremental  searches  begin  before  the  user has finished typing the
+       search string.  As each character of the search string is typed,  read-
+       line displays the next entry from the history matching the string typed
+       so far.  An incremental search requires  only  as  many  characters  as
+       needed  to  find  the desired history entry.  The characters present in
+       the value of the i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs variable are used to terminate  an
+       incremental search.  If that variable has not been assigned a value the
+       Escape and Control-J characters will terminate an  incremental  search.
+       Control-G  will  abort  an  incremental search and restore the original
+       line.  When the search is terminated, the history entry containing  the
+       search string becomes the current line.
+
+       To  find  other matching entries in the history list, type Control-S or
+       Control-R as appropriate.  This will search backward or forward in  the
+       history  for  the  next  entry matching the search string typed so far.
+       Any other key sequence bound to a readline command will  terminate  the
+       search  and  execute that command.  For instance, a _\bn_\be_\bw_\bl_\bi_\bn_\be will termi-
+       nate the search and accept the line, thereby executing the command from
+       the history list.
+
+       Readline remembers the last incremental search string.  If two Control-
+       Rs are typed without any intervening characters defining a  new  search
+       string, any remembered search string is used.
+
+       Non-incremental  searches read the entire search string before starting
+       to search for matching history lines.  The search string may  be  typed
+       by the user or be part of the contents of the current line.
+
+   R\bRe\bea\bad\bdl\bli\bin\bne\be C\bCo\bom\bmm\bma\ban\bnd\bd N\bNa\bam\bme\bes\bs
+       The  following  is  a list of the names of the commands and the default
+       key sequences to which they are bound.  Command names without an accom-
+       panying key sequence are unbound by default.  In the following descrip-
+       tions, _\bp_\bo_\bi_\bn_\bt refers to the current cursor position, and _\bm_\ba_\br_\bk refers  to
+       a  cursor position saved by the s\bse\bet\bt-\b-m\bma\bar\brk\bk command.  The text between the
+       point and mark is referred to as the _\br_\be_\bg_\bi_\bo_\bn.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br M\bMo\bov\bvi\bin\bng\bg
+       b\bbe\beg\bgi\bin\bnn\bni\bin\bng\bg-\b-o\bof\bf-\b-l\bli\bin\bne\be (\b(C\bC-\b-a\ba)\b)
+              Move to the start of the current line.
+       e\ben\bnd\bd-\b-o\bof\bf-\b-l\bli\bin\bne\be (\b(C\bC-\b-e\be)\b)
+              Move to the end of the line.
+       f\bfo\bor\brw\bwa\bar\brd\bd-\b-c\bch\bha\bar\br (\b(C\bC-\b-f\bf)\b)
+              Move forward a character.
+       b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-c\bch\bha\bar\br (\b(C\bC-\b-b\bb)\b)
+              Move back a character.
+       f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-f\bf)\b)
+              Move forward to the end of the next word.  Words are composed of
+              alphanumeric characters (letters and digits).
+       b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-b\bb)\b)
+              Move  back  to the start of the current or previous word.  Words
+              are composed of alphanumeric characters (letters and digits).
+       s\bsh\bhe\bel\bll\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
+              Move forward to the end of the next word.  Words  are  delimited
+              by non-quoted shell metacharacters.
+       s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
+              Move  back  to the start of the current or previous word.  Words
+              are delimited by non-quoted shell metacharacters.
+       c\bcl\ble\bea\bar\br-\b-s\bsc\bcr\bre\bee\ben\bn (\b(C\bC-\b-l\bl)\b)
+              Clear the screen leaving the current line  at  the  top  of  the
+              screen.   With  an  argument,  refresh  the current line without
+              clearing the screen.
+       r\bre\bed\bdr\bra\baw\bw-\b-c\bcu\bur\brr\bre\ben\bnt\bt-\b-l\bli\bin\bne\be
+              Refresh the current line.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br M\bMa\ban\bni\bip\bpu\bul\bla\bat\bti\bin\bng\bg t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by
+       a\bac\bcc\bce\bep\bpt\bt-\b-l\bli\bin\bne\be (\b(N\bNe\bew\bwl\bli\bin\bne\be,\b, R\bRe\bet\btu\bur\brn\bn)\b)
+              Accept the line regardless of where the cursor is.  If this line
+              is  non-empty, add it to the history list according to the state
+              of the H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL variable.  If the line is a modified  history
+              line, then restore the history line to its original state.
+       p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-p\bp)\b)
+              Fetch the previous command from the history list, moving back in
+              the list.
+       n\bne\bex\bxt\bt-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-n\bn)\b)
+              Fetch the next command from the history list, moving forward  in
+              the list.
+       b\bbe\beg\bgi\bin\bnn\bni\bin\bng\bg-\b-o\bof\bf-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-<\b<)\b)
+              Move to the first line in the history.
+       e\ben\bnd\bd-\b-o\bof\bf-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b->\b>)\b)
+              Move  to  the end of the input history, i.e., the line currently
+              being entered.
+       r\bre\bev\bve\ber\brs\bse\be-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-r\br)\b)
+              Search backward starting at the current  line  and  moving  `up'
+              through  the  history  as  necessary.   This  is  an incremental
+              search.
+       f\bfo\bor\brw\bwa\bar\brd\bd-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-s\bs)\b)
+              Search forward starting at the current line  and  moving  `down'
+              through  the  history  as  necessary.   This  is  an incremental
+              search.
+       n\bno\bon\bn-\b-i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bta\bal\bl-\b-r\bre\bev\bve\ber\brs\bse\be-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-p\bp)\b)
+              Search backward through the history starting at the current line
+              using  a  non-incremental  search  for  a string supplied by the
+              user.
+       n\bno\bon\bn-\b-i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bta\bal\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-n\bn)\b)
+              Search forward  through  the  history  using  a  non-incremental
+              search for a string supplied by the user.
+       h\bhi\bis\bst\bto\bor\bry\by-\b-s\bse\bea\bar\brc\bch\bh-\b-f\bfo\bor\brw\bwa\bar\brd\bd
+              Search  forward through the history for the string of characters
+              between the start of the current line and the point.  This is  a
+              non-incremental search.
+       h\bhi\bis\bst\bto\bor\bry\by-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd
+              Search backward through the history for the string of characters
+              between the start of the current line and the point.  This is  a
+              non-incremental search.
+       y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg (\b(M\bM-\b-C\bC-\b-y\by)\b)
+              Insert  the  first argument to the previous command (usually the
+              second word on the previous line) at point.  With an argument _\bn,
+              insert  the _\bnth word from the previous command (the words in the
+              previous command  begin  with  word  0).   A  negative  argument
+              inserts the _\bnth word from the end of the previous command.  Once
+              the argument _\bn is computed, the argument is extracted as if  the
+              "!_\bn" history expansion had been specified.
+       y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg (\b(M\bM-\b-.\b.,\b, M\bM-\b-_\b_)\b)
+              Insert  the last argument to the previous command (the last word
+              of the  previous  history  entry).   With  an  argument,  behave
+              exactly  like  y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg.   Successive calls to y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg
+              move back through the history list, inserting the last  argument
+              of each line in turn.  The history expansion facilities are used
+              to extract the last argument, as if the "!$"  history  expansion
+              had been specified.
+       s\bsh\bhe\bel\bll\bl-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be (\b(M\bM-\b-C\bC-\b-e\be)\b)
+              Expand the line as the shell does.  This performs alias and his-
+              tory expansion as well as all of the shell word expansions.  See
+              H\bHI\bIS\bST\bTO\bOR\bRY\bY  E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
+       h\bhi\bis\bst\bto\bor\bry\by-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be (\b(M\bM-\b-^\b^)\b)
+              Perform history expansion on  the  current  line.   See  H\bHI\bIS\bST\bTO\bOR\bRY\bY
+              E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
+       m\bma\bag\bgi\bic\bc-\b-s\bsp\bpa\bac\bce\be
+              Perform  history  expansion  on  the  current  line and insert a
+              space.  See H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history
+              expansion.
+       a\bal\bli\bia\bas\bs-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be
+              Perform  alias expansion on the current line.  See A\bAL\bLI\bIA\bAS\bSE\bES\bS above
+              for a description of alias expansion.
+       h\bhi\bis\bst\bto\bor\bry\by-\b-a\ban\bnd\bd-\b-a\bal\bli\bia\bas\bs-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be
+              Perform history and alias expansion on the current line.
+       i\bin\bns\bse\ber\brt\bt-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt (\b(M\bM-\b-.\b.,\b, M\bM-\b-_\b_)\b)
+              A synonym for y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg.
+       o\bop\bpe\ber\bra\bat\bte\be-\b-a\ban\bnd\bd-\b-g\bge\bet\bt-\b-n\bne\bex\bxt\bt (\b(C\bC-\b-o\bo)\b)
+              Accept the current line for execution and fetch  the  next  line
+              relative  to the current line from the history for editing.  Any
+              argument is ignored.
+       e\bed\bdi\bit\bt-\b-a\ban\bnd\bd-\b-e\bex\bxe\bec\bcu\but\bte\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd (\b(C\bC-\b-x\bxC\bC-\b-e\be)\b)
+              Invoke an editor on the current command line,  and  execute  the
+              result  as  shell  commands.   B\bBa\bas\bsh\bh  attempts to invoke $\b$V\bVI\bIS\bSU\bUA\bAL\bL,
+              $\b$E\bED\bDI\bIT\bTO\bOR\bR, and _\be_\bm_\ba_\bc_\bs as the editor, in that order.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br C\bCh\bha\ban\bng\bgi\bin\bng\bg T\bTe\bex\bxt\bt
+       d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br (\b(C\bC-\b-d\bd)\b)
+              Delete the character at point.  If point is at the beginning  of
+              the  line,  there  are  no  characters in the line, and the last
+              character typed was not bound to d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br, then return E\bEO\bOF\bF.
+       b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br (\b(R\bRu\bub\bbo\bou\but\bt)\b)
+              Delete the character behind the cursor.  When  given  a  numeric
+              argument, save the deleted text on the kill ring.
+       f\bfo\bor\brw\bwa\bar\brd\bd-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br
+              Delete  the  character under the cursor, unless the cursor is at
+              the end of the line, in which case the character behind the cur-
+              sor is deleted.
+       q\bqu\buo\bot\bte\bed\bd-\b-i\bin\bns\bse\ber\brt\bt (\b(C\bC-\b-q\bq,\b, C\bC-\b-v\bv)\b)
+              Add  the next character typed to the line verbatim.  This is how
+              to insert characters like C\bC-\b-q\bq, for example.
+       t\bta\bab\bb-\b-i\bin\bns\bse\ber\brt\bt (\b(C\bC-\b-v\bv T\bTA\bAB\bB)\b)
+              Insert a tab character.
+       s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt (\b(a\ba,\b, b\bb,\b, A\bA,\b, 1\b1,\b, !\b!,\b, .\b..\b..\b.)\b)
+              Insert the character typed.
+       t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-c\bch\bha\bar\brs\bs (\b(C\bC-\b-t\bt)\b)
+              Drag the character before point forward over  the  character  at
+              point,  moving point forward as well.  If point is at the end of
+              the line, then this transposes the two characters before  point.
+              Negative arguments have no effect.
+       t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-w\bwo\bor\brd\bds\bs (\b(M\bM-\b-t\bt)\b)
+              Drag  the  word  before  point past the word after point, moving
+              point over that word as well.  If point is at  the  end  of  the
+              line, this transposes the last two words on the line.
+       u\bup\bpc\bca\bas\bse\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-u\bu)\b)
+              Uppercase  the  current  (or  following)  word.  With a negative
+              argument, uppercase the previous word, but do not move point.
+       d\bdo\bow\bwn\bnc\bca\bas\bse\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-l\bl)\b)
+              Lowercase the current (or  following)  word.   With  a  negative
+              argument, lowercase the previous word, but do not move point.
+       c\bca\bap\bpi\bit\bta\bal\bli\biz\bze\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-c\bc)\b)
+              Capitalize  the  current  (or  following) word.  With a negative
+              argument, capitalize the previous word, but do not move point.
+       o\bov\bve\ber\brw\bwr\bri\bit\bte\be-\b-m\bmo\bod\bde\be
+              Toggle overwrite mode.  With an explicit positive numeric  argu-
+              ment, switches to overwrite mode.  With an explicit non-positive
+              numeric argument, switches to insert mode.  This command affects
+              only  e\bem\bma\bac\bcs\bs mode; v\bvi\bi mode does overwrite differently.  Each call
+              to _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b(_\b) starts in insert mode.  In overwrite mode, charac-
+              ters  bound to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt replace the text at point rather than
+              pushing the text  to  the  right.   Characters  bound  to  b\bba\bac\bck\bk-\b-
+              w\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br  replace  the  character  before  point  with a
+              space.  By default, this command is unbound.
+
+   K\bKi\bil\bll\bli\bin\bng\bg a\ban\bnd\bd Y\bYa\ban\bnk\bki\bin\bng\bg
+       k\bki\bil\bll\bl-\b-l\bli\bin\bne\be (\b(C\bC-\b-k\bk)\b)
+              Kill the text from point to the end of the line.
+       b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-l\bli\bin\bne\be (\b(C\bC-\b-x\bx R\bRu\bub\bbo\bou\but\bt)\b)
+              Kill backward to the beginning of the line.
+       u\bun\bni\bix\bx-\b-l\bli\bin\bne\be-\b-d\bdi\bis\bsc\bca\bar\brd\bd (\b(C\bC-\b-u\bu)\b)
+              Kill backward from point to the  beginning  of  the  line.   The
+              killed text is saved on the kill-ring.
+       k\bki\bil\bll\bl-\b-w\bwh\bho\bol\ble\be-\b-l\bli\bin\bne\be
+              Kill  all  characters on the current line, no matter where point
+              is.
+       k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-d\bd)\b)
+              Kill from point to the end of the current word,  or  if  between
+              words,  to  the  end  of the next word.  Word boundaries are the
+              same as those used by f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
+       b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-R\bRu\bub\bbo\bou\but\bt)\b)
+              Kill the word behind point.  Word boundaries  are  the  same  as
+              those used by b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
+       s\bsh\bhe\bel\bll\bl-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-d\bd)\b)
+              Kill  from  point  to the end of the current word, or if between
+              words, to the end of the next word.   Word  boundaries  are  the
+              same as those used by s\bsh\bhe\bel\bll\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
+       s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-R\bRu\bub\bbo\bou\but\bt)\b)
+              Kill  the  word  behind  point.  Word boundaries are the same as
+              those used by s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
+       u\bun\bni\bix\bx-\b-w\bwo\bor\brd\bd-\b-r\bru\bub\bbo\bou\but\bt (\b(C\bC-\b-w\bw)\b)
+              Kill the word behind point, using white space as a  word  bound-
+              ary.  The killed text is saved on the kill-ring.
+       u\bun\bni\bix\bx-\b-f\bfi\bil\ble\ben\bna\bam\bme\be-\b-r\bru\bub\bbo\bou\but\bt
+              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.
+       d\bde\bel\ble\bet\bte\be-\b-h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bl-\b-s\bsp\bpa\bac\bce\be (\b(M\bM-\b-\\b\)\b)
+              Delete all spaces and tabs around point.
+       k\bki\bil\bll\bl-\b-r\bre\beg\bgi\bio\bon\bn
+              Kill the text in the current region.
+       c\bco\bop\bpy\by-\b-r\bre\beg\bgi\bio\bon\bn-\b-a\bas\bs-\b-k\bki\bil\bll\bl
+              Copy the text in the region to the kill buffer.
+       c\bco\bop\bpy\by-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
+              Copy  the word before point to the kill buffer.  The word bound-
+              aries are the same as b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
+       c\bco\bop\bpy\by-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
+              Copy the word following point to  the  kill  buffer.   The  word
+              boundaries are the same as f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
+       y\bya\ban\bnk\bk (\b(C\bC-\b-y\by)\b)
+              Yank the top of the kill ring into the buffer at point.
+       y\bya\ban\bnk\bk-\b-p\bpo\bop\bp (\b(M\bM-\b-y\by)\b)
+              Rotate  the kill ring, and yank the new top.  Only works follow-
+              ing y\bya\ban\bnk\bk or y\bya\ban\bnk\bk-\b-p\bpo\bop\bp.
+
+   N\bNu\bum\bme\ber\bri\bic\bc A\bAr\brg\bgu\bum\bme\ben\bnt\bts\bs
+       d\bdi\big\bgi\bit\bt-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt (\b(M\bM-\b-0\b0,\b, M\bM-\b-1\b1,\b, .\b..\b..\b.,\b, M\bM-\b--\b-)\b)
+              Add this digit to the argument already accumulating, or start  a
+              new argument.  M-- starts a negative argument.
+       u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt
+              This  is another way to specify an argument.  If this command is
+              followed by one or more digits, optionally with a leading  minus
+              sign,  those digits define the argument.  If the command is fol-
+              lowed by digits, executing  u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt  again  ends  the
+              numeric  argument, but is otherwise ignored.  As a special case,
+              if this command is immediately followed by a character  that  is
+              neither  a  digit or minus sign, the argument count for the next
+              command is multiplied by four.  The argument count is  initially
+              one,  so  executing this function the first time makes the argu-
+              ment count four, a second time makes the argument count sixteen,
+              and so on.
+
+   C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg
+       c\bco\bom\bmp\bpl\ble\bet\bte\be (\b(T\bTA\bAB\bB)\b)
+              Attempt  to  perform  completion on the text before point.  B\bBa\bas\bsh\bh
+              attempts completion treating the text as a variable (if the text
+              begins  with  $\b$), username (if the text begins with ~\b~), hostname
+              (if the text begins with @\b@), or command (including  aliases  and
+              functions) in turn.  If none of these produces a match, filename
+              completion is attempted.
+       p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(M\bM-\b-?\b?)\b)
+              List the possible completions of the text before point.
+       i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(M\bM-\b-*\b*)\b)
+              Insert all completions of the text before point that would  have
+              been generated by p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs.
+       m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be
+              Similar  to c\bco\bom\bmp\bpl\ble\bet\bte\be, but replaces the word to be completed with
+              a single match from the list of possible completions.   Repeated
+              execution  of  m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be  steps through the list of possible
+              completions, inserting each match in turn.  At the  end  of  the
+              list of completions, the bell is rung (subject to the setting of
+              b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be) and the original text is restored.  An argument of _\bn
+              moves  _\bn  positions  forward  in the list of matches; a negative
+              argument may be used to move backward through  the  list.   This
+              command  is  intended  to  be  bound  to  T\bTA\bAB\bB, but is unbound by
+              default.
+       d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br-\b-o\bor\br-\b-l\bli\bis\bst\bt
+              Deletes the character under the cursor if not at  the  beginning
+              or  end  of  the  line (like d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br).  If at the end of the
+              line, behaves identically to p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs.  This command
+              is unbound by default.
+       c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-f\bfi\bil\ble\ben\bna\bam\bme\be (\b(M\bM-\b-/\b/)\b)
+              Attempt filename completion on the text before point.
+       p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-f\bfi\bil\ble\ben\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx /\b/)\b)
+              List the possible completions of the text before point, treating
+              it as a filename.
+       c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-u\bus\bse\ber\brn\bna\bam\bme\be (\b(M\bM-\b-~\b~)\b)
+              Attempt completion on the text before point, treating  it  as  a
+              username.
+       p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-u\bus\bse\ber\brn\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx ~\b~)\b)
+              List the possible completions of the text before point, treating
+              it as a username.
+       c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-v\bva\bar\bri\bia\bab\bbl\ble\be (\b(M\bM-\b-$\b$)\b)
+              Attempt completion on the text before point, treating  it  as  a
+              shell variable.
+       p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-v\bva\bar\bri\bia\bab\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx $\b$)\b)
+              List the possible completions of the text before point, treating
+              it as a shell variable.
+       c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-h\bho\bos\bst\btn\bna\bam\bme\be (\b(M\bM-\b-@\b@)\b)
+              Attempt completion on the text before point, treating  it  as  a
+              hostname.
+       p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-h\bho\bos\bst\btn\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx @\b@)\b)
+              List the possible completions of the text before point, treating
+              it as a hostname.
+       c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd (\b(M\bM-\b-!\b!)\b)
+              Attempt completion on the text before point, treating  it  as  a
+              command  name.   Command  completion  attempts to match the text
+              against  aliases,  reserved  words,   shell   functions,   shell
+              builtins, and finally executable filenames, in that order.
+       p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx !\b!)\b)
+              List the possible completions of the text before point, treating
+              it as a command name.
+       d\bdy\byn\bna\bam\bmi\bic\bc-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-T\bTA\bAB\bB)\b)
+              Attempt completion on the text before point, comparing the  text
+              against  lines  from  the  history  list for possible completion
+              matches.
+       d\bda\bab\bbb\bbr\bre\bev\bv-\b-e\bex\bxp\bpa\ban\bnd\bd
+              Attempt menu completion on the text before point, comparing  the
+              text against lines from the history list for possible completion
+              matches.
+       c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-i\bin\bnt\bto\bo-\b-b\bbr\bra\bac\bce\bes\bs (\b(M\bM-\b-{\b{)\b)
+              Perform filename completion and insert the list of possible com-
+              pletions  enclosed within braces so the list is available to the
+              shell (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
+
+   K\bKe\bey\byb\bbo\boa\bar\brd\bd M\bMa\bac\bcr\bro\bos\bs
+       s\bst\bta\bar\brt\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx (\b()\b)
+              Begin saving the characters  typed  into  the  current  keyboard
+              macro.
+       e\ben\bnd\bd-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx )\b))\b)
+              Stop saving the characters typed into the current keyboard macro
+              and store the definition.
+       c\bca\bal\bll\bl-\b-l\bla\bas\bst\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx e\be)\b)
+              Re-execute the last keyboard macro defined, by making the  char-
+              acters in the macro appear as if typed at the keyboard.
+
+   M\bMi\bis\bsc\bce\bel\bll\bla\ban\bne\beo\bou\bus\bs
+       r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be (\b(C\bC-\b-x\bx C\bC-\b-r\br)\b)
+              Read  in  the  contents of the _\bi_\bn_\bp_\bu_\bt_\br_\bc file, and incorporate any
+              bindings or variable assignments found there.
+       a\bab\bbo\bor\brt\bt (\b(C\bC-\b-g\bg)\b)
+              Abort the current editing command and ring the  terminal's  bell
+              (subject to the setting of b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be).
+       d\bdo\bo-\b-u\bup\bpp\bpe\ber\brc\bca\bas\bse\be-\b-v\bve\ber\brs\bsi\bio\bon\bn (\b(M\bM-\b-a\ba,\b, M\bM-\b-b\bb,\b, M\bM-\b-_\bx,\b, .\b..\b..\b.)\b)
+              If  the  metafied character _\bx is lowercase, run the command that
+              is bound to the corresponding uppercase character.
+       p\bpr\bre\bef\bfi\bix\bx-\b-m\bme\bet\bta\ba (\b(E\bES\bSC\bC)\b)
+              Metafy the next character typed.  E\bES\bSC\bC f\bf is equivalent to M\bMe\bet\bta\ba-\b-f\bf.
+       u\bun\bnd\bdo\bo (\b(C\bC-\b-_\b_,\b, C\bC-\b-x\bx C\bC-\b-u\bu)\b)
+              Incremental undo, separately remembered for each line.
+       r\bre\bev\bve\ber\brt\bt-\b-l\bli\bin\bne\be (\b(M\bM-\b-r\br)\b)
+              Undo  all changes made to this line.  This is like executing the
+              u\bun\bnd\bdo\bo command enough times to return  the  line  to  its  initial
+              state.
+       t\bti\bil\bld\bde\be-\b-e\bex\bxp\bpa\ban\bnd\bd (\b(M\bM-\b-&\b&)\b)
+              Perform tilde expansion on the current word.
+       s\bse\bet\bt-\b-m\bma\bar\brk\bk (\b(C\bC-\b-@\b@,\b, M\bM-\b-<\b<s\bsp\bpa\bac\bce\be>\b>)\b)
+              Set  the  mark to the point.  If a numeric argument is supplied,
+              the mark is set to that position.
+       e\bex\bxc\bch\bha\ban\bng\bge\be-\b-p\bpo\boi\bin\bnt\bt-\b-a\ban\bnd\bd-\b-m\bma\bar\brk\bk (\b(C\bC-\b-x\bx C\bC-\b-x\bx)\b)
+              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.
+       c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-s\bse\bea\bar\brc\bch\bh (\b(C\bC-\b-]\b])\b)
+              A character is read and point is moved to the next occurrence of
+              that  character.   A negative count searches for previous occur-
+              rences.
+       c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd (\b(M\bM-\b-C\bC-\b-]\b])\b)
+              A character is read and point is moved to  the  previous  occur-
+              rence  of  that character.  A negative count searches for subse-
+              quent occurrences.
+       i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt (\b(M\bM-\b-#\b#)\b)
+              Without a numeric argument,  the  value  of  the  readline  c\bco\bom\bm-\b-
+              m\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn  variable is inserted at the beginning of the current
+              line.  If a numeric argument is supplied, this command acts as a
+              toggle:   if  the characters at the beginning of the line do not
+              match the value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn, the value is inserted,  other-
+              wise the characters in c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn are deleted from the begin-
+              ning of the line.  In either case, the line is accepted as if  a
+              newline  had  been  typed.   The  default value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn
+              causes this command to make the current line  a  shell  comment.
+              If  a  numeric  argument  causes  the  comment  character  to be
+              removed, the line will be executed by the shell.
+       g\bgl\blo\bob\bb-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-g\bg)\b)
+              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.
+       g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bd (\b(C\bC-\b-x\bx *\b*)\b)
+              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, an
+              asterisk is appended before pathname expansion.
+       g\bgl\blo\bob\bb-\b-l\bli\bis\bst\bt-\b-e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bns\bs (\b(C\bC-\b-x\bx g\bg)\b)
+              The list  of  expansions  that  would  have  been  generated  by
+              g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bd  is  displayed,  and the line is redrawn.  If a
+              numeric argument is supplied, an  asterisk  is  appended  before
+              pathname expansion.
+       d\bdu\bum\bmp\bp-\b-f\bfu\bun\bnc\bct\bti\bio\bon\bns\bs
+              Print  all  of the functions and their key bindings to the read-
+              line output stream.  If a numeric argument is supplied, the out-
+              put  is  formatted  in such a way that it can be made part of an
+              _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
+       d\bdu\bum\bmp\bp-\b-v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
+              Print all of the settable readline 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 _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
+       d\bdu\bum\bmp\bp-\b-m\bma\bac\bcr\bro\bos\bs
+              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
+              _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
+       d\bdi\bis\bsp\bpl\bla\bay\by-\b-s\bsh\bhe\bel\bll\bl-\b-v\bve\ber\brs\bsi\bio\bon\bn (\b(C\bC-\b-x\bx C\bC-\b-v\bv)\b)
+              Display version information about the current instance of  b\bba\bas\bsh\bh.
+
+   P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+       When  word  completion  is  attempted  for an argument to a command for
+       which a completion specification (a _\bc_\bo_\bm_\bp_\bs_\bp_\be_\bc) has  been  defined  using
+       the  c\bco\bom\bmp\bpl\ble\bet\bte\be  builtin  (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), the pro-
+       grammable completion facilities are invoked.
+
+       First, the command name is identified.  If a compspec has been  defined
+       for that command, the compspec is used to generate the list of possible
+       completions for the word.  If the command word is a  full  pathname,  a
+       compspec  for  the full pathname is searched for first.  If no compspec
+       is found for the full pathname, an attempt is made to find  a  compspec
+       for the portion following the final slash.
+
+       Once  a  compspec  has  been  found, it is used to generate the list of
+       matching words.  If a compspec is not found, the default  b\bba\bas\bsh\bh  comple-
+       tion as described above under C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg is performed.
+
+       First,  the  actions  specified by the compspec are used.  Only matches
+       which are prefixed by the word being completed are returned.  When  the
+       -\b-f\bf  or -\b-d\bd option is used for filename or directory name completion, the
+       shell variable F\bFI\bIG\bGN\bNO\bOR\bRE\bE is used to filter the matches.
+
+       Any completions specified by a filename expansion  pattern  to  the  -\b-G\bG
+       option are generated next.  The words generated by the pattern need not
+       match the word being completed.  The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable  is  not
+       used to filter the matches, but the F\bFI\bIG\bGN\bNO\bOR\bRE\bE variable is used.
+
+       Next,  the string specified as the argument to the -\b-W\bW option is consid-
+       ered.  The string is first split using the characters in the  I\bIF\bFS\bS  spe-
+       cial  variable  as delimiters.  Shell quoting is honored.  Each word is
+       then expanded using brace expansion,  tilde  expansion,  parameter  and
+       variable  expansion, command substitution, and arithmetic expansion, as
+       described above under E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN.  The results are split using the rules
+       described above under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg.  The results of the expansion are
+       prefix-matched against the word being completed, and the matching words
+       become the possible completions.
+
+       After  these matches have been generated, any shell function or command
+       specified with the -\b-F\bF and -\b-C\bC options is invoked.  When the  command  or
+       function is invoked, the C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE, C\bCO\bOM\bMP\bP_\b_P\bPO\bOI\bIN\bNT\bT, C\bCO\bOM\bMP\bP_\b_K\bKE\bEY\bY, and C\bCO\bOM\bMP\bP_\b_T\bTY\bYP\bPE\bE
+       variables are assigned values as described above under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs.
+       If  a  shell  function  is being invoked, the C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS and C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD
+       variables are also set.  When the function or command is  invoked,  the
+       first  argument  is  the  name of the command whose arguments are being
+       completed, the second argument is the word  being  completed,  and  the
+       third  argument  is  the word preceding the word being completed on the
+       current command  line.   No  filtering  of  the  generated  completions
+       against  the word being completed is performed; the function or command
+       has complete freedom in generating the matches.
+
+       Any function specified with -\b-F\bF is invoked first.  The function may  use
+       any  of  the  shell facilities, including the c\bco\bom\bmp\bpg\bge\ben\bn builtin described
+       below, to generate the matches.  It must put the  possible  completions
+       in the C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY array variable.
+
+       Next,  any  command specified with the -\b-C\bC option is invoked in an envi-
+       ronment equivalent to command substitution.  It should print a list  of
+       completions,  one  per  line, to the standard output.  Backslash may be
+       used to escape a newline, if necessary.
+
+       After all of the possible completions are generated, any filter  speci-
+       fied  with  the -\b-X\bX option is applied to the list.  The filter is a pat-
+       tern as used for pathname expansion; a &\b& in  the  pattern  is  replaced
+       with  the text of the word being completed.  A literal &\b& may be escaped
+       with a backslash; the backslash is removed before attempting  a  match.
+       Any  completion that matches the pattern will be removed from the list.
+       A leading !\b! negates the pattern; in this case any completion not match-
+       ing the pattern will be removed.
+
+       Finally, any prefix and suffix specified with the -\b-P\bP and -\b-S\bS options are
+       added to each member of the completion list, and the result is returned
+       to the readline completion code as the list of possible completions.
+
+       If  the previously-applied actions do not generate any matches, and the
+       -\b-o\bo d\bdi\bir\brn\bna\bam\bme\bes\bs option was supplied  to  c\bco\bom\bmp\bpl\ble\bet\bte\be  when  the  compspec  was
+       defined, directory name completion is attempted.
+
+       If  the  -\b-o\bo  p\bpl\blu\bus\bsd\bdi\bir\brs\bs option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec
+       was defined, directory name completion is attempted and any matches are
+       added to the results of the other actions.
+
+       By  default,  if a compspec is found, whatever it generates is returned
+       to the completion code as the full set of  possible  completions.   The
+       default b\bba\bas\bsh\bh completions are not attempted, and the readline default of
+       filename completion is disabled.  If the -\b-o\bo b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt option was sup-
+       plied  to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was defined, the b\bba\bas\bsh\bh default com-
+       pletions are attempted if the compspec generates no matches.  If the -\b-o\bo
+       d\bde\bef\bfa\bau\bul\blt\bt  option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was defined,
+       readline's default completion will be performed if the  compspec  (and,
+       if attempted, the default b\bba\bas\bsh\bh completions) generate no matches.
+
+       When  a  compspec  indicates that directory name completion is desired,
+       the programmable completion functions force readline to append a  slash
+       to  completed names which are symbolic links to directories, subject to
+       the value of the m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs readline variable, regardless of  the
+       setting of the m\bma\bar\brk\bk-\b-s\bsy\bym\bml\bli\bin\bnk\bke\bed\bd-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs readline variable.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+       When  the  -\b-o\bo  h\bhi\bis\bst\bto\bor\bry\by  option to the s\bse\bet\bt builtin is enabled, the shell
+       provides access to the _\bc_\bo_\bm_\bm_\ba_\bn_\bd _\bh_\bi_\bs_\bt_\bo_\br_\by, the list of commands previously
+       typed.   The  value  of  the H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE variable is used as the number of
+       commands to save in a history list.  The text of the last H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE com-
+       mands  (default  500)  is  saved.  The shell stores each command in the
+       history list prior to parameter and variable expansion  (see  E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
+       above)  but after history expansion is performed, subject to the values
+       of the shell variables H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE and H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL.
+
+       On startup, the history is initialized from the file named by the vari-
+       able  H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE  (default _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by).  The file named by the value
+       of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is truncated, if necessary, to contain  no  more  than  the
+       number  of lines specified by the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE.  When the his-
+       tory file is read, lines beginning with the history  comment  character
+       followed  immediately  by a digit are interpreted as timestamps for the
+       preceding history line.   These  timestamps  are  optionally  displayed
+       depending  on the value of the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable.  When an inter-
+       active shell exits, the last $\b$H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE lines are copied from  the  his-
+       tory list to $\b$H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE.  If the h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd shell option is enabled (see
+       the description of s\bsh\bho\bop\bpt\bt under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), the lines
+       are  appended  to the history file, otherwise the history file is over-
+       written.  If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset, or if the history file  is  unwritable,
+       the  history  is  not  saved.   If the variable is set, time stamps are
+       written to the history file, marked with the history comment character,
+       so  they may be preserved across shell sessions.  This uses the history
+       comment character to distinguish timestamps from other  history  lines.
+       After  saving  the history, the history file is truncated to contain no
+       more than H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE lines.  If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE is not set,  no  trunca-
+       tion is performed.
+
+       The  builtin  command f\bfc\bc (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) may be used
+       to list or edit and re-execute a portion of the history list.  The h\bhi\bis\bs-\b-
+       t\bto\bor\bry\by  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.
+
+       The shell allows control over which commands are saved on  the  history
+       list.  The H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL and H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE variables may be set to cause the
+       shell to save only a subset of the commands entered.  The c\bcm\bmd\bdh\bhi\bis\bst\bt shell
+       option,  if enabled, causes the shell to attempt to save each line of a
+       multi-line command in the same history entry, adding  semicolons  where
+       necessary  to preserve syntactic correctness.  The l\bli\bit\bth\bhi\bis\bst\bt shell option
+       causes the shell to save the command with embedded newlines instead  of
+       semicolons.  See the description of the s\bsh\bho\bop\bpt\bt builtin below under S\bSH\bHE\bEL\bLL\bL
+       B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  for  information  on  setting  and  unsetting  shell
+       options.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
+       The  shell  supports a history expansion feature that is similar to the
+       history expansion in c\bcs\bsh\bh.\b.  This section describes what syntax  features
+       are  available.   This  feature  is  enabled by default for interactive
+       shells, and can be disabled using the +\b+H\bH option to the s\bse\bet\bt builtin com-
+       mand (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  Non-interactive shells do not
+       perform history expansion by default.
+
+       History expansions introduce words from the history list into the input
+       stream,  making  it  easy to repeat commands, insert the arguments to a
+       previous command into the current input line, or fix errors in previous
+       commands quickly.
+
+       History  expansion  is  performed  immediately after a complete line is
+       read, before the shell breaks it into words.  It  takes  place  in  two
+       parts.   The  first is to determine which line from the history list to
+       use during substitution.  The second is to select portions of that line
+       for inclusion into the current one.  The line selected from the history
+       is the _\be_\bv_\be_\bn_\bt, and the portions of that line that  are  acted  upon  are
+       _\bw_\bo_\br_\bd_\bs.   Various  _\bm_\bo_\bd_\bi_\bf_\bi_\be_\br_\bs  are  available  to manipulate the selected
+       words.  The line is broken into words in the same fashion as when read-
+       ing  input, so that several _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br-separated words surrounded by
+       quotes are considered one word.  History expansions are  introduced  by
+       the  appearance  of  the  history  expansion  character,  which is !\b! by
+       default.  Only backslash (\\b\) and single quotes can  quote  the  history
+       expansion character.
+
+       Several  characters inhibit history expansion if found immediately fol-
+       lowing the history expansion character, even if it is unquoted:  space,
+       tab,  newline,  carriage return, and =\b=.  If the e\bex\bxt\btg\bgl\blo\bob\bb shell option is
+       enabled, (\b( will also inhibit expansion.
+
+       Several shell options settable with the s\bsh\bho\bop\bpt\bt builtin may  be  used  to
+       tailor  the  behavior  of  history  expansion.  If the h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by shell
+       option is enabled (see the description of the s\bsh\bho\bop\bpt\bt builtin), and r\bre\bea\bad\bd-\b-
+       l\bli\bin\bne\be is being used, history substitutions are not immediately passed to
+       the shell parser.  Instead, the expanded  line  is  reloaded  into  the
+       r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer for further modification.  If r\bre\bea\bad\bdl\bli\bin\bne\be is being
+       used, and the h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt shell option is enabled, a failed history sub-
+       stitution will be reloaded into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer for correc-
+       tion.  The -\b-p\bp option to the h\bhi\bis\bst\bto\bor\bry\by builtin command may be used to  see
+       what a history expansion will do before using it.  The -\b-s\bs option to the
+       h\bhi\bis\bst\bto\bor\bry\by builtin may be used to add commands to the end of  the  history
+       list  without  actually  executing them, so that they are available for
+       subsequent recall.
+
+       The shell allows control of the various characters used by the  history
+       expansion mechanism (see the description of h\bhi\bis\bst\btc\bch\bha\bar\brs\bs above under S\bSh\bhe\bel\bll\bl
+       V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs).  The shell uses the history comment character to mark  his-
+       tory timestamps when writing the history file.
+
+   E\bEv\bve\ben\bnt\bt D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
+       An  event designator is a reference to a command line entry in the his-
+       tory list.
+
+       !\b!      Start a history substitution, except when followed by  a  b\bbl\bla\ban\bnk\bk,
+              newline,  carriage return, = or ( (when the e\bex\bxt\btg\bgl\blo\bob\bb shell option
+              is enabled using the s\bsh\bho\bop\bpt\bt builtin).
+       !\b!_\bn     Refer to command line _\bn.
+       !\b!-\b-_\bn    Refer to the current command line minus _\bn.
+       !\b!!\b!     Refer to the previous command.  This is a synonym for `!-1'.
+       !\b!_\bs_\bt_\br_\bi_\bn_\bg
+              Refer to the most recent command starting with _\bs_\bt_\br_\bi_\bn_\bg.
+       !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]
+              Refer to the most recent command containing _\bs_\bt_\br_\bi_\bn_\bg.  The  trail-
+              ing ?\b? may be omitted if _\bs_\bt_\br_\bi_\bn_\bg is followed immediately by a new-
+              line.
+       ^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b1^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b2^\b^
+              Quick substitution.  Repeat the last command, replacing  _\bs_\bt_\br_\bi_\bn_\bg_\b1
+              with _\bs_\bt_\br_\bi_\bn_\bg_\b2.  Equivalent to ``!!:s/_\bs_\bt_\br_\bi_\bn_\bg_\b1/_\bs_\bt_\br_\bi_\bn_\bg_\b2/'' (see M\bMo\bod\bd-\b-
+              i\bif\bfi\bie\ber\brs\bs below).
+       !\b!#\b#     The entire command line typed so far.
+
+   W\bWo\bor\brd\bd D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
+       Word designators are used to select desired words from the event.  A  :\b:
+       separates  the event specification from the word designator.  It may be
+       omitted if the word designator begins with a ^\b^, $\b$, *\b*, -\b-, or  %\b%.   Words
+       are  numbered from the beginning of the line, with the first word being
+       denoted by 0 (zero).  Words are inserted into the  current  line  sepa-
+       rated by single spaces.
+
+       0\b0 (\b(z\bze\ber\bro\bo)\b)
+              The zeroth word.  For the shell, this is the command word.
+       _\bn      The _\bnth word.
+       ^\b^      The first argument.  That is, word 1.
+       $\b$      The last argument.
+       %\b%      The word matched by the most recent `?_\bs_\bt_\br_\bi_\bn_\bg?' search.
+       _\bx-\b-_\by    A range of words; `-_\by' abbreviates `0-_\by'.
+       *\b*      All  of  the words but the zeroth.  This is a synonym for `_\b1_\b-_\b$'.
+              It is not an error to use *\b* if there is just  one  word  in  the
+              event; the empty string is returned in that case.
+       x\bx*\b*     Abbreviates _\bx_\b-_\b$.
+       x\bx-\b-     Abbreviates _\bx_\b-_\b$ like x\bx*\b*, but omits the last word.
+
+       If  a  word  designator is supplied without an event specification, the
+       previous command is used as the event.
+
+   M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs
+       After the optional word designator, there may appear a sequence of  one
+       or more of the following modifiers, each preceded by a `:'.
+
+       h\bh      Remove a trailing file name component, leaving only the head.
+       t\bt      Remove all leading file name components, leaving the tail.
+       r\br      Remove a trailing suffix of the form _\b._\bx_\bx_\bx, leaving the basename.
+       e\be      Remove all but the trailing suffix.
+       p\bp      Print the new command but do not execute it.
+       q\bq      Quote the substituted words, escaping further substitutions.
+       x\bx      Quote the substituted words as with q\bq, but break into  words  at
+              b\bbl\bla\ban\bnk\bks\bs and newlines.
+       s\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/
+              Substitute  _\bn_\be_\bw  for  the  first  occurrence of _\bo_\bl_\bd in the event
+              line.  Any delimiter can be used  in  place  of  /.   The  final
+              delimiter  is  optional if it is the last character of the event
+              line.  The delimiter may be quoted in _\bo_\bl_\bd and _\bn_\be_\bw with a  single
+              backslash.   If & appears in _\bn_\be_\bw, it is replaced by _\bo_\bl_\bd.  A sin-
+              gle backslash will quote the &.  If _\bo_\bl_\bd is null, it  is  set  to
+              the  last  _\bo_\bl_\bd substituted, or, if no previous history substitu-
+              tions took place, the last _\bs_\bt_\br_\bi_\bn_\bg in a !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]  search.
+       &\b&      Repeat the previous substitution.
+       g\bg      Cause changes to be applied over the entire event line.  This is
+              used  in  conjunction  with `:\b:s\bs' (e.g., `:\b:g\bgs\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/') or `:\b:&\b&'.
+              If used with `:\b:s\bs', any delimiter can be used in place of /,  and
+              the  final  delimiter is optional if it is the last character of
+              the event line.  An a\ba may be used as a synonym for g\bg.
+       G\bG      Apply the following `s\bs' modifier once to each word in the  event
+              line.
+
+S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
+       Unless otherwise noted, each builtin command documented in this section
+       as accepting options preceded by -\b- accepts -\b--\b- to signify the end of the
+       options.   For  example,  the  :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt builtins do not
+       accept options.
+       :\b: [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
+              No effect; the command does nothing beyond  expanding  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
+              and  performing any specified redirections.  A zero exit code is
+              returned.
+
+        .\b.  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
+       s\bso\bou\bur\brc\bce\be _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
+              Read and execute commands from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  in  the  current  shell
+              environment  and return the exit status of the last command exe-
+              cuted from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.  If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be does not contain a slash, file
+              names  in  P\bPA\bAT\bTH\bH  are used to find the directory containing _\bf_\bi_\bl_\be_\b-
+              _\bn_\ba_\bm_\be.  The file searched for in P\bPA\bAT\bTH\bH  need  not  be  executable.
+              When  b\bba\bas\bsh\bh  is  not  in  _\bp_\bo_\bs_\bi_\bx  _\bm_\bo_\bd_\be,  the  current directory is
+              searched if no file is found in P\bPA\bAT\bTH\bH.  If the s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh  option
+              to  the  s\bsh\bho\bop\bpt\bt  builtin  command  is turned off, the P\bPA\bAT\bTH\bH is not
+              searched.  If any _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs are supplied, they become the  posi-
+              tional  parameters  when  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  is  executed.  Otherwise the
+              positional parameters are unchanged.  The return status  is  the
+              status  of  the  last  command exited within the script (0 if no
+              commands are executed), and false if _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is  not  found  or
+              cannot be read.
+
+       a\bal\bli\bia\bas\bs [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+              A\bAl\bli\bia\bas\bs with no arguments or with the -\b-p\bp option prints the list of
+              aliases in the form a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be on standard  output.   When
+              arguments  are supplied, an alias is defined for each _\bn_\ba_\bm_\be whose
+              _\bv_\ba_\bl_\bu_\be is given.  A trailing space in  _\bv_\ba_\bl_\bu_\be causes the next word
+              to be checked for alias substitution when the alias is expanded.
+              For each _\bn_\ba_\bm_\be in the argument list for which no  _\bv_\ba_\bl_\bu_\be  is  sup-
+              plied,  the  name  and  value  of  the  alias is printed.  A\bAl\bli\bia\bas\bs
+              returns true unless a _\bn_\ba_\bm_\be is given for which no alias has  been
+              defined.
+
+       b\bbg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
+              Resume  each  suspended  job _\bj_\bo_\bb_\bs_\bp_\be_\bc in the background, as if it
+              had been started with &\b&.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell's
+              notion  of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used.  b\bbg\bg _\bj_\bo_\bb_\bs_\bp_\be_\bc returns 0 unless
+              run when job control is disabled or, when run with  job  control
+              enabled,  any  specified  _\bj_\bo_\bb_\bs_\bp_\be_\bc  was  not found or was started
+              without job control.
+
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-l\blp\bps\bsv\bvP\bPS\bSV\bV]
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-q\bq _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-u\bu _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-r\br _\bk_\be_\by_\bs_\be_\bq]
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-x\bx _\bk_\be_\by_\bs_\be_\bq:_\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] _\bk_\be_\by_\bs_\be_\bq:_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
+       b\bbi\bin\bnd\bd _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
+              Display current r\bre\bea\bad\bdl\bli\bin\bne\be key and function bindings, bind  a  key
+              sequence  to  a  r\bre\bea\bad\bdl\bli\bin\bne\be  function  or macro, or set a r\bre\bea\bad\bdl\bli\bin\bne\be
+              variable.  Each non-option argument is a  command  as  it  would
+              appear  in  _\b._\bi_\bn_\bp_\bu_\bt_\br_\bc, but each binding or command must be passed
+              as a separate argument; e.g.,  '"\C-x\C-r":  re-read-init-file'.
+              Options, if supplied, have the following meanings:
+              -\b-m\bm _\bk_\be_\by_\bm_\ba_\bp
+                     Use _\bk_\be_\by_\bm_\ba_\bp as the keymap to be affected by the subsequent
+                     bindings.  Acceptable _\bk_\be_\by_\bm_\ba_\bp names are _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\b-
+                     _\bd_\ba_\br_\bd_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b,  _\bv_\bi_\b, _\bv_\bi_\b-_\bm_\bo_\bv_\be_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd,
+                     and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.  _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs  is
+                     equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd.
+              -\b-l\bl     List the names of all r\bre\bea\bad\bdl\bli\bin\bne\be functions.
+              -\b-p\bp     Display  r\bre\bea\bad\bdl\bli\bin\bne\be  function  names and bindings in such a
+                     way that they can be re-read.
+              -\b-P\bP     List current r\bre\bea\bad\bdl\bli\bin\bne\be function names and bindings.
+              -\b-s\bs     Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to  macros  and  the
+                     strings  they  output  in such a way that they can be re-
+                     read.
+              -\b-S\bS     Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to  macros  and  the
+                     strings they output.
+              -\b-v\bv     Display  r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values in such a way
+                     that they can be re-read.
+              -\b-V\bV     List current r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values.
+              -\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+                     Read key bindings from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
+              -\b-q\bq _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
+                     Query about which keys invoke the named _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn.
+              -\b-u\bu _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
+                     Unbind all keys bound to the named _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn.
+              -\b-r\br _\bk_\be_\by_\bs_\be_\bq
+                     Remove any current binding for _\bk_\be_\by_\bs_\be_\bq.
+              -\b-x\bx _\bk_\be_\by_\bs_\be_\bq:\b:_\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                     Cause _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd to be  executed  whenever  _\bk_\be_\by_\bs_\be_\bq  is
+                     entered.   When _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed, the shell sets
+                     the R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE variable to the contents of  the  r\bre\bea\bad\bd-\b-
+                     l\bli\bin\bne\be  line  buffer and the R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT variable to the
+                     current location of the insertion point.  If the executed
+                     command  changes  the  value  of  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE  or R\bRE\bEA\bAD\bD-\b-
+                     L\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT, those new values will  be  reflected  in  the
+                     editing state.
+
+              The  return value is 0 unless an unrecognized option is given or
+              an error occurred.
+
+       b\bbr\bre\bea\bak\bk [_\bn]
+              Exit from within a f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or s\bse\bel\ble\bec\bct\bt loop.  If  _\bn  is
+              specified,  break  _\bn  levels.   _\bn must be >= 1.  If _\bn is greater
+              than the number of enclosing  loops,  all  enclosing  loops  are
+              exited.   The  return value is 0 unless _\bn is not greater than or
+              equal to 1.
+
+       b\bbu\bui\bil\blt\bti\bin\bn _\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
+              Execute the specified shell builtin, passing it  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs,  and
+              return its exit status.  This is useful when defining a function
+              whose name is the same as a shell builtin, retaining  the  func-
+              tionality of the builtin within the function.  The c\bcd\bd builtin is
+              commonly redefined this way.  The  return  status  is  false  if
+              _\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn is not a shell builtin command.
+
+       c\bca\bal\bll\ble\ber\br [_\be_\bx_\bp_\br]
+              Returns the context of any active subroutine call (a shell func-
+              tion or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins.   With-
+              out _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number and source filename of
+              the current subroutine call.  If a non-negative integer is  sup-
+              plied as _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number, subroutine name,
+              and source file corresponding to that position  in  the  current
+              execution  call  stack.  This extra information may be used, for
+              example, to print a stack trace.  The current frame is frame  0.
+              The  return  value is 0 unless the shell is not executing a sub-
+              routine call or _\be_\bx_\bp_\br does not correspond to a valid position  in
+              the call stack.
+
+       c\bcd\bd [-\b-L\bL|\b|-\b-P\bP] [_\bd_\bi_\br]
+              Change  the  current directory to _\bd_\bi_\br.  The variable H\bHO\bOM\bME\bE is the
+              default _\bd_\bi_\br.  The variable C\bCD\bDP\bPA\bAT\bTH\bH defines the  search  path  for
+              the  directory  containing  _\bd_\bi_\br.  Alternative directory names in
+              C\bCD\bDP\bPA\bAT\bTH\bH are separated by a colon (:).  A null directory  name  in
+              C\bCD\bDP\bPA\bAT\bTH\bH  is  the  same as the current directory, i.e., ``.\b.''.  If
+              _\bd_\bi_\br begins with a slash (/), then C\bCD\bDP\bPA\bAT\bTH\bH is  not  used.  The  -\b-P\bP
+              option  says  to use the physical directory structure instead of
+              following symbolic links (see also the  -\b-P\bP  option  to  the  s\bse\bet\bt
+              builtin command); the -\b-L\bL option forces symbolic links to be fol-
+              lowed.  An argument of -\b- is equivalent to $\b$O\bOL\bLD\bDP\bPW\bWD\bD.   If  a  non-
+              empty  directory  name from C\bCD\bDP\bPA\bAT\bTH\bH is used, or if -\b- is the first
+              argument, and the directory change is successful,  the  absolute
+              pathname of the new working directory is written to the standard
+              output.  The return value is true if the directory was  success-
+              fully changed; false otherwise.
+
+       c\bco\bom\bmm\bma\ban\bnd\bd [-\b-p\bpV\bVv\bv] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg ...]
+              Run  _\bc_\bo_\bm_\bm_\ba_\bn_\bd  with  _\ba_\br_\bg_\bs  suppressing  the normal shell function
+              lookup. Only builtin commands or commands found in the P\bPA\bAT\bTH\bH  are
+              executed.   If the -\b-p\bp option is given, the search for _\bc_\bo_\bm_\bm_\ba_\bn_\bd is
+              performed using a default value for P\bPA\bAT\bTH\bH that is  guaranteed  to
+              find  all  of  the  standard  utilities.  If either the -\b-V\bV or -\b-v\bv
+              option is supplied, a description of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is printed.  The -\b-v\bv
+              option  causes a single word indicating the command or file name
+              used to invoke _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be displayed; the -\b-V\bV option produces a
+              more  verbose  description.  If the -\b-V\bV or -\b-v\bv option is supplied,
+              the exit status is 0 if _\bc_\bo_\bm_\bm_\ba_\bn_\bd was found, and  1  if  not.   If
+              neither option is supplied and an error occurred or _\bc_\bo_\bm_\bm_\ba_\bn_\bd can-
+              not be found, the exit status is 127.  Otherwise, the exit  sta-
+              tus of the c\bco\bom\bmm\bma\ban\bnd\bd builtin is the exit status of _\bc_\bo_\bm_\bm_\ba_\bn_\bd.
+
+       c\bco\bom\bmp\bpg\bge\ben\bn [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bw_\bo_\br_\bd]
+              Generate  possible  completion matches for _\bw_\bo_\br_\bd according to the
+              _\bo_\bp_\bt_\bi_\bo_\bns, which may  be  any  option  accepted  by  the  c\bco\bom\bmp\bpl\ble\bet\bte\be
+              builtin  with  the exception of -\b-p\bp and -\b-r\br, and write the matches
+              to the standard output.  When using the -\b-F\bF or  -\b-C\bC  options,  the
+              various  shell  variables  set  by  the  programmable completion
+              facilities, while available, will not have useful values.
+
+              The matches will be generated in the same way  as  if  the  pro-
+              grammable  completion  code  had  generated them directly from a
+              completion specification with the same flags.  If _\bw_\bo_\br_\bd is speci-
+              fied, only those completions matching _\bw_\bo_\br_\bd will be displayed.
+
+              The  return  value is true unless an invalid option is supplied,
+              or no matches were generated.
+
+       c\bco\bom\bmp\bpl\ble\bet\bte\be [-\b-a\bab\bbc\bcd\bde\bef\bfg\bgj\bjk\bks\bsu\buv\bv] [-\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn] [-\b-E\bE] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn] [-\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt]
+       [-\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt] [-\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd]
+              [-\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt] [-\b-P\bP _\bp_\br_\be_\bf_\bi_\bx] [-\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be _\b._\b._\b.]
+       c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-p\bpr\br [-\b-E\bE] [_\bn_\ba_\bm_\be ...]
+              Specify how arguments to each _\bn_\ba_\bm_\be should be completed.  If  the
+              -\b-p\bp  option  is supplied, or if no options are supplied, existing
+              completion specifications are printed in a way that allows  them
+              to be reused as input.  The -\b-r\br option removes a completion spec-
+              ification for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are supplied, all  com-
+              pletion  specifications.   The  -\b-E\bE  option  indicates  that  the
+              remaining options and actions should apply to ``empty''  command
+              completion; that is, completion attempted on a blank line.
+
+              The  process  of  applying  these completion specifications when
+              word completion is  attempted  is  described  above  under  P\bPr\bro\bo-\b-
+              g\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn.
+
+              Other  options,  if specified, have the following meanings.  The
+              arguments to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary,  the
+              -\b-P\bP  and -\b-S\bS options) should be quoted to protect them from expan-
+              sion before the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin is invoked.
+              -\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn
+                      The _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn controls several aspects  of  the  comp-
+                      spec's  behavior beyond the simple generation of comple-
+                      tions.  _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn may be one of:
+                      b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt
+                              Perform the rest of the default b\bba\bas\bsh\bh completions
+                              if the compspec generates no matches.
+                      d\bde\bef\bfa\bau\bul\blt\bt Use  readline's  default  filename completion if
+                              the compspec generates no matches.
+                      d\bdi\bir\brn\bna\bam\bme\bes\bs
+                              Perform directory name completion if  the  comp-
+                              spec generates no matches.
+                      f\bfi\bil\ble\ben\bna\bam\bme\bes\bs
+                              Tell  readline that the compspec generates file-
+                              names, so it can perform  any  filename-specific
+                              processing  (like  adding  a  slash to directory
+                              names, quoting special characters, or  suppress-
+                              ing  trailing spaces).  Intended to be used with
+                              shell functions.
+                      n\bno\bos\bsp\bpa\bac\bce\be Tell  readline  not  to  append  a  space   (the
+                              default)  to  words  completed at the end of the
+                              line.
+                      p\bpl\blu\bus\bsd\bdi\bir\brs\bs
+                              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.
+              -\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn
+                      The  _\ba_\bc_\bt_\bi_\bo_\bn  may  be  one of the following to generate a
+                      list of possible completions:
+                      a\bal\bli\bia\bas\bs   Alias names.  May also be specified as -\b-a\ba.
+                      a\bar\brr\bra\bay\byv\bva\bar\br
+                              Array variable names.
+                      b\bbi\bin\bnd\bdi\bin\bng\bg R\bRe\bea\bad\bdl\bli\bin\bne\be key binding names.
+                      b\bbu\bui\bil\blt\bti\bin\bn Names of shell builtin commands.   May  also  be
+                              specified as -\b-b\bb.
+                      c\bco\bom\bmm\bma\ban\bnd\bd Command names.  May also be specified as -\b-c\bc.
+                      d\bdi\bir\bre\bec\bct\bto\bor\bry\by
+                              Directory names.  May also be specified as -\b-d\bd.
+                      d\bdi\bis\bsa\bab\bbl\ble\bed\bd
+                              Names of disabled shell builtins.
+                      e\ben\bna\bab\bbl\ble\bed\bd Names of enabled shell builtins.
+                      e\bex\bxp\bpo\bor\brt\bt  Names  of exported shell variables.  May also be
+                              specified as -\b-e\be.
+                      f\bfi\bil\ble\be    File names.  May also be specified as -\b-f\bf.
+                      f\bfu\bun\bnc\bct\bti\bio\bon\bn
+                              Names of shell functions.
+                      g\bgr\bro\bou\bup\bp   Group names.  May also be specified as -\b-g\bg.
+                      h\bhe\bel\blp\bpt\bto\bop\bpi\bic\bc
+                              Help topics as accepted by the h\bhe\bel\blp\bp builtin.
+                      h\bho\bos\bst\btn\bna\bam\bme\be
+                              Hostnames, as taken from the file  specified  by
+                              the H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE shell variable.
+                      j\bjo\bob\bb     Job  names,  if job control is active.  May also
+                              be specified as -\b-j\bj.
+                      k\bke\bey\byw\bwo\bor\brd\bd Shell reserved words.  May also be specified  as
+                              -\b-k\bk.
+                      r\bru\bun\bnn\bni\bin\bng\bg Names of running jobs, if job control is active.
+                      s\bse\ber\brv\bvi\bic\bce\be Service names.  May also be specified as -\b-s\bs.
+                      s\bse\bet\bto\bop\bpt\bt  Valid arguments for the -\b-o\bo  option  to  the  s\bse\bet\bt
+                              builtin.
+                      s\bsh\bho\bop\bpt\bt   Shell  option  names  as  accepted  by the s\bsh\bho\bop\bpt\bt
+                              builtin.
+                      s\bsi\big\bgn\bna\bal\bl  Signal names.
+                      s\bst\bto\bop\bpp\bpe\bed\bd Names of stopped jobs, if job control is active.
+                      u\bus\bse\ber\br    User names.  May also be specified as -\b-u\bu.
+                      v\bva\bar\bri\bia\bab\bbl\ble\be
+                              Names of all shell variables.  May also be spec-
+                              ified as -\b-v\bv.
+              -\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt
+                      The filename expansion pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt  is  expanded  to
+                      generate the possible completions.
+              -\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                      The  _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt  is  split using the characters in the I\bIF\bFS\bS
+                      special variable as delimiters, and each resultant  word
+                      is  expanded.   The possible completions are the members
+                      of the resultant list which match the  word  being  com-
+                      pleted.
+              -\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                      _\bc_\bo_\bm_\bm_\ba_\bn_\bd  is  executed in a subshell environment, and its
+                      output is used as the possible completions.
+              -\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
+                      The shell function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in  the  current
+                      shell  environment.  When it finishes, the possible com-
+                      pletions are retrieved from the value of  the  C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
+                      array variable.
+              -\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt
+                      _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt  is  a pattern as used for filename expansion.
+                      It is applied to the list of possible completions gener-
+                      ated  by  the  preceding options and arguments, and each
+                      completion matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed from the  list.
+                      A  leading  !\b!  in _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt negates the pattern; in this
+                      case, any completion not matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is  removed.
+              -\b-P\bP _\bp_\br_\be_\bf_\bi_\bx
+                      _\bp_\br_\be_\bf_\bi_\bx  is  added at the beginning of each possible com-
+                      pletion after all other options have been applied.
+              -\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx
+                      _\bs_\bu_\bf_\bf_\bi_\bx is appended to each possible completion after all
+                      other options have been applied.
+
+              The  return  value is true unless an invalid option is supplied,
+              an option other than -\b-p\bp or -\b-r\br is supplied without a  _\bn_\ba_\bm_\be  argu-
+              ment,  an  attempt  is made to remove a completion specification
+              for a _\bn_\ba_\bm_\be for which no specification exists, or an error occurs
+              adding a completion specification.
+
+       c\bco\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be]
+              Modify  completion  options  for  each  _\bn_\ba_\bm_\be  according  to  the
+              _\bo_\bp_\bt_\bi_\bo_\bns, or for the currently-execution completion if  no  _\bn_\ba_\bm_\bes
+              are  supplied.   If no _\bo_\bp_\bt_\bi_\bo_\bns are given, display the completion
+              options for each _\bn_\ba_\bm_\be or the current completion.   The  possible
+              values  of  _\bo_\bp_\bt_\bi_\bo_\bn  are  those  valid  for  the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin
+              described above.
+
+       The return value is true unless  an  invalid  option  is  supplied,  an
+       attempt  is  made to modify the options for a _\bn_\ba_\bm_\be for which no comple-
+       tion specification exists, or an output error occurs.
+
+       c\bco\bon\bnt\bti\bin\bnu\bue\be [_\bn]
+              Resume the next iteration of the enclosing f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or
+              s\bse\bel\ble\bec\bct\bt  loop.   If  _\bn  is specified, resume at the _\bnth enclosing
+              loop.  _\bn must be >= 1.  If _\bn  is  greater  than  the  number  of
+              enclosing  loops,  the  last  enclosing  loop (the ``top-level''
+              loop) is resumed.  The return value is 0 unless _\bn is not greater
+              than or equal to 1.
+
+       d\bde\bec\bcl\bla\bar\bre\be [-\b-a\baA\bAf\bfF\bFi\bil\blr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+       t\bty\byp\bpe\bes\bse\bet\bt [-\b-a\baA\bAf\bfF\bFi\bil\blr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+              Declare  variables and/or give them attributes.  If no _\bn_\ba_\bm_\bes are
+              given then display the values of variables.  The -\b-p\bp option  will
+              display the attributes and values of each _\bn_\ba_\bm_\be.  When -\b-p\bp is used
+              with _\bn_\ba_\bm_\be arguments, additional options are ignored.  When -\b-p\bp is
+              supplied  without _\bn_\ba_\bm_\be arguments, it will display the attributes
+              and values of all variables having the attributes  specified  by
+              the  additional  options.  If no other options are supplied with
+              -\b-p\bp, d\bde\bec\bcl\bla\bar\bre\be will display the attributes and values of all  shell
+              variables.   The  -\b-f\bf  option  will restrict the display to shell
+              functions.  The -\b-F\bF option inhibits the display of function defi-
+              nitions;  only the function name and attributes are printed.  If
+              the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is enabled  using  s\bsh\bho\bop\bpt\bt,  the  source
+              file name and line number where the function is defined are dis-
+              played as well.   The  -\b-F\bF  option  implies  -\b-f\bf.   The  following
+              options  can  be  used  to restrict output to variables with the
+              specified attribute or to give variables attributes:
+              -\b-a\ba     Each _\bn_\ba_\bm_\be  is  an  indexed  array  variable  (see  A\bAr\brr\bra\bay\bys\bs
+                     above).
+              -\b-A\bA     Each  _\bn_\ba_\bm_\be  is  an associative array variable (see A\bAr\brr\bra\bay\bys\bs
+                     above).
+              -\b-f\bf     Use function names only.
+              -\b-i\bi     The variable is treated as an integer; arithmetic evalua-
+                     tion  (see  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN )\b) is performed when the
+                     variable is assigned a value.
+              -\b-l\bl     When the variable is assigned  a  value,  all  upper-case
+                     characters  are  converted to lower-case.  The upper-case
+                     attribute is disabled.
+              -\b-r\br     Make _\bn_\ba_\bm_\bes readonly.  These names cannot then be assigned
+                     values by subsequent assignment statements or unset.
+              -\b-t\bt     Give  each  _\bn_\ba_\bm_\be  the  _\bt_\br_\ba_\bc_\be attribute.  Traced functions
+                     inherit the D\bDE\bEB\bBU\bUG\bG  and  R\bRE\bET\bTU\bUR\bRN\bN  traps  from  the  calling
+                     shell.   The  trace  attribute has no special meaning for
+                     variables.
+              -\b-u\bu     When the variable is assigned  a  value,  all  lower-case
+                     characters  are  converted to upper-case.  The lower-case
+                     attribute is disabled.
+              -\b-x\bx     Mark _\bn_\ba_\bm_\bes for export  to  subsequent  commands  via  the
+                     environment.
+
+              Using  `+'  instead of `-' turns off the attribute instead, with
+              the exceptions that +\b+a\ba may not be used to destroy an array vari-
+              able  and  +\b+r\br w\bwi\bil\bll\bl n\bno\bot\bt r\bre\bem\bmo\bov\bve\be t\bth\bhe\be r\bre\bea\bad\bdo\bon\bnl\bly\by a\bat\btt\btr\bri\bib\bbu\but\bte\be.\b.  W\bWh\bhe\ben\bn u\bus\bse\bed\bd
+              i\bin\bn a\ba f\bfu\bun\bnc\bct\bti\bio\bon\bn,\b, m\bma\bak\bke\bes\bs e\bea\bac\bch\bh _\bn_\ba_\bm_\be l\blo\boc\bca\bal\bl,\b, a\bas\bs w\bwi\bit\bth\bh t\bth\bhe\be l\blo\boc\bca\bal\bl command.
+              If a variable name is followed by =_\bv_\ba_\bl_\bu_\be, the value of the vari-
+              able is set to _\bv_\ba_\bl_\bu_\be.  The return value is 0 unless  an  invalid
+              option  is  encountered, an attempt is made to define a function
+              using ``-f foo=bar'', an attempt is made to assign a value to  a
+              readonly  variable,  an  attempt is made to assign a value to an
+              array variable without using the compound assignment syntax (see
+              A\bAr\brr\bra\bay\bys\bs  above),  one  of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable
+              name, an attempt is made to turn off readonly status for a read-
+              only  variable,  an attempt is made to turn off array status for
+              an array variable, or an attempt is made to display a  non-exis-
+              tent function with -\b-f\bf.
+
+       d\bdi\bir\brs\bs [\b[+\b+_\bn]\b] [\b[-\b-_\bn]\b] [\b[-\b-c\bcp\bpl\blv\bv]\b]
+              Without  options,  displays  the  list  of  currently remembered
+              directories.  The default display  is  on  a  single  line  with
+              directory  names  separated by spaces.  Directories are added to
+              the list with  the  p\bpu\bus\bsh\bhd\bd  command;  the  p\bpo\bop\bpd\bd  command  removes
+              entries from the list.
+              +\b+_\bn     Displays the _\bnth entry counting from the left of the list
+                     shown by d\bdi\bir\brs\bs when invoked without options, starting with
+                     zero.
+              -\b-_\bn     Displays  the  _\bnth  entry  counting from the right of the
+                     list shown by d\bdi\bir\brs\bs when invoked without options, starting
+                     with zero.
+              -\b-c\bc     Clears  the  directory  stack  by  deleting  all  of  the
+                     entries.
+              -\b-l\bl     Produces a longer listing;  the  default  listing  format
+                     uses a tilde to denote the home directory.
+              -\b-p\bp     Print the directory stack with one entry per line.
+              -\b-v\bv     Print  the  directory stack with one entry per line, pre-
+                     fixing each entry with its index in the stack.
+
+              The return value is 0 unless an invalid option is supplied or  _\bn
+              indexes beyond the end of the directory stack.
+
+       d\bdi\bis\bso\bow\bwn\bn [-\b-a\bar\br] [-\b-h\bh] [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
+              Without  options,  each  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is  removed  from the table of
+              active jobs.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, and neither -\b-a\ba  n\bno\bor\br  -\b-r\br
+              i\bis\bs  s\bsu\bup\bpp\bpl\bli\bie\bed\bd,\b, t\bth\bhe\be s\bsh\bhe\bel\bll\bl'\b's\bs n\bno\bot\bti\bio\bon\bn o\bof\bf t\bth\bhe\be _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb i\bis\bs u\bus\bse\bed\bd.\b.  I\bIf\bf
+              t\bth\bhe\be -\b-h\bh o\bop\bpt\bti\bio\bon\bn i\bis\bs g\bgi\biv\bve\ben\bn,\b, e\bea\bac\bch\bh _\bj_\bo_\bb_\bs_\bp_\be_\bc is not removed from the ta-
+              ble,  but is marked so that S\bSI\bIG\bGH\bHU\bUP\bP is not sent to the job if the
+              shell receives a S\bSI\bIG\bGH\bHU\bUP\bP.  If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is present, and  neither
+              the  -\b-a\ba  nor the -\b-r\br option is supplied, the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used.
+              If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, the -\b-a\ba option means to remove or mark
+              all  jobs;  the  -\b-r\br  option without a _\bj_\bo_\bb_\bs_\bp_\be_\bc argument restricts
+              operation to running jobs.  The return value is 0 unless a  _\bj_\bo_\bb_\b-
+              _\bs_\bp_\be_\bc does not specify a valid job.
+
+       e\bec\bch\bho\bo [-\b-n\bne\beE\bE] [_\ba_\br_\bg ...]
+              Output  the  _\ba_\br_\bgs,  separated  by spaces, followed by a newline.
+              The return status is always 0.  If -\b-n\bn is specified, the trailing
+              newline  is  suppressed.  If the -\b-e\be option is given, interpreta-
+              tion of the following backslash-escaped characters  is  enabled.
+              The  -\b-E\bE option disables the interpretation of these escape char-
+              acters, even on systems where they are interpreted  by  default.
+              The  x\bxp\bpg\bg_\b_e\bec\bch\bho\bo  shell option may be used to dynamically determine
+              whether or not e\bec\bch\bho\bo expands these escape characters by  default.
+              e\bec\bch\bho\bo  does  not  interpret  -\b--\b- to mean the end of options.  e\bec\bch\bho\bo
+              interprets the following escape sequences:
+              \\b\a\ba     alert (bell)
+              \\b\b\bb     backspace
+              \\b\c\bc     suppress further output
+              \\b\e\be     an escape character
+              \\b\f\bf     form feed
+              \\b\n\bn     new line
+              \\b\r\br     carriage return
+              \\b\t\bt     horizontal tab
+              \\b\v\bv     vertical tab
+              \\b\\\b\     backslash
+              \\b\0\b0_\bn_\bn_\bn  the eight-bit character whose value is  the  octal  value
+                     _\bn_\bn_\bn (zero to three octal digits)
+              \\b\x\bx_\bH_\bH   the  eight-bit  character  whose value is the hexadecimal
+                     value _\bH_\bH (one or two hex digits)
+
+       e\ben\bna\bab\bbl\ble\be [-\b-a\ba] [-\b-d\bdn\bnp\bps\bs] [-\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [_\bn_\ba_\bm_\be ...]
+              Enable and disable builtin shell commands.  Disabling a  builtin
+              allows a disk command which has the same name as a shell builtin
+              to be executed without specifying a full pathname,  even  though
+              the  shell  normally searches for builtins before disk commands.
+              If -\b-n\bn is used, each  _\bn_\ba_\bm_\be  is  disabled;  otherwise,  _\bn_\ba_\bm_\be_\bs  are
+              enabled.  For example, to use the t\bte\bes\bst\bt binary found via the P\bPA\bAT\bTH\bH
+              instead of the shell builtin version, run  ``enable  -n  test''.
+              The  -\b-f\bf  option  means to load the new builtin command _\bn_\ba_\bm_\be from
+              shared object _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, on systems that support dynamic loading.
+              The  -\b-d\bd  option will delete a builtin previously loaded with -\b-f\bf.
+              If no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied,
+              a list of shell builtins is printed.  With no other option argu-
+              ments, the list consists of all enabled shell builtins.   If  -\b-n\bn
+              is  supplied, only disabled builtins are printed.  If -\b-a\ba is sup-
+              plied, the list printed includes all builtins, with  an  indica-
+              tion  of whether or not each is enabled.  If -\b-s\bs is supplied, the
+              output is restricted to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins.  The  return
+              value  is  0 unless a _\bn_\ba_\bm_\be is not a shell builtin or there is an
+              error loading a new builtin from a shared object.
+
+       e\bev\bva\bal\bl [_\ba_\br_\bg ...]
+              The _\ba_\br_\bgs are read and concatenated together into a  single  com-
+              mand.   This command is then read and executed by the shell, and
+              its exit status is returned as the value of e\bev\bva\bal\bl.  If there  are
+              no _\ba_\br_\bg_\bs, or only null arguments, e\bev\bva\bal\bl returns 0.
+
+       e\bex\bxe\bec\bc [-\b-c\bcl\bl] [-\b-a\ba _\bn_\ba_\bm_\be] [_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]]
+              If  _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell.  No new process
+              is created.  The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   If
+              the -\b-l\bl option is supplied, the shell places a dash at the begin-
+              ning of the zeroth argument passed to  _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   This  is  what
+              _\bl_\bo_\bg_\bi_\bn(1) does.  The -\b-c\bc option causes _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be executed with
+              an empty environment.  If -\b-a\ba is supplied, the shell passes  _\bn_\ba_\bm_\be
+              as the zeroth argument to the executed command.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd can-
+              not be executed for some reason, a non-interactive shell  exits,
+              unless  the  shell  option e\bex\bxe\bec\bcf\bfa\bai\bil\bl is enabled, in which case it
+              returns failure.  An interactive shell returns  failure  if  the
+              file cannot be executed.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redi-
+              rections take effect in the current shell, and the return status
+              is  0.  If there is a redirection error, the return status is 1.
+
+       e\bex\bxi\bit\bt [_\bn]
+              Cause the shell to exit with a status of _\bn.  If  _\bn  is  omitted,
+              the exit status is that of the last command executed.  A trap on
+              E\bEX\bXI\bIT\bT is executed before the shell terminates.
+
+       e\bex\bxp\bpo\bor\brt\bt [-\b-f\bfn\bn] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd]] ...
+       e\bex\bxp\bpo\bor\brt\bt -\b-p\bp
+              The supplied _\bn_\ba_\bm_\be_\bs are marked for automatic export to the  envi-
+              ronment  of subsequently executed commands.  If the -\b-f\bf option is
+              given, the _\bn_\ba_\bm_\be_\bs refer to functions.  If no _\bn_\ba_\bm_\be_\bs are given,  or
+              if  the  -\b-p\bp  option  is  supplied,  a list of all names that are
+              exported in this shell is printed.  The  -\b-n\bn  option  causes  the
+              export  property  to  be  removed from each _\bn_\ba_\bm_\be.  If a variable
+              name is followed by =_\bw_\bo_\br_\bd, the value of the variable is  set  to
+              _\bw_\bo_\br_\bd.   e\bex\bxp\bpo\bor\brt\bt  returns  an  exit  status of 0 unless an invalid
+              option is encountered, one of the _\bn_\ba_\bm_\be_\bs is  not  a  valid  shell
+              variable name, or -\b-f\bf is supplied with a _\bn_\ba_\bm_\be that is not a func-
+              tion.
+
+       f\bfc\bc [-\b-e\be _\be_\bn_\ba_\bm_\be] [-\b-l\bln\bnr\br] [_\bf_\bi_\br_\bs_\bt] [_\bl_\ba_\bs_\bt]
+       f\bfc\bc -\b-s\bs [_\bp_\ba_\bt=_\br_\be_\bp] [_\bc_\bm_\bd]
+              Fix Command.  In the first form, a range of commands from  _\bf_\bi_\br_\bs_\bt
+              to  _\bl_\ba_\bs_\bt  is selected from the history list.  _\bF_\bi_\br_\bs_\bt and _\bl_\ba_\bs_\bt may
+              be specified as a string (to locate the last  command  beginning
+              with  that  string)  or  as  a number (an index into the history
+              list, where a negative number is used as an offset from the cur-
+              rent command number).  If _\bl_\ba_\bs_\bt is not specified it is set to the
+              current command for listing (so that ``fc -l  -10''  prints  the
+              last 10 commands) and to _\bf_\bi_\br_\bs_\bt otherwise.  If _\bf_\bi_\br_\bs_\bt is not spec-
+              ified it is set to the previous command for editing and -16  for
+              listing.
+
+              The  -\b-n\bn option suppresses the command numbers when listing.  The
+              -\b-r\br option reverses the order of the commands.  If the -\b-l\bl  option
+              is  given,  the  commands are listed on standard output.  Other-
+              wise, the editor given by _\be_\bn_\ba_\bm_\be is invoked on a file  containing
+              those  commands.  If _\be_\bn_\ba_\bm_\be is not given, the value of the F\bFC\bCE\bED\bDI\bIT\bT
+              variable is used, and the value of E\bED\bDI\bIT\bTO\bOR\bR if F\bFC\bCE\bED\bDI\bIT\bT is not  set.
+              If  neither  variable  is set, _\bv_\bi is used.  When editing is com-
+              plete, the edited commands are echoed and executed.
+
+              In the second form, _\bc_\bo_\bm_\bm_\ba_\bn_\bd is re-executed after  each  instance
+              of  _\bp_\ba_\bt  is replaced by _\br_\be_\bp.  A useful alias to use with this is
+              ``r="fc -s"'', so that typing ``r cc''  runs  the  last  command
+              beginning with ``cc'' and typing ``r'' re-executes the last com-
+              mand.
+
+              If the first form is used, the  return  value  is  0  unless  an
+              invalid  option  is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt specify history
+              lines out of range.  If the -\b-e\be option is  supplied,  the  return
+              value is the value of the last command executed or failure if an
+              error occurs with the temporary file of commands.  If the second
+              form  is  used, the return status is that of the command re-exe-
+              cuted, unless _\bc_\bm_\bd does not specify  a  valid  history  line,  in
+              which case f\bfc\bc returns failure.
+
+       f\bfg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc]
+              Resume  _\bj_\bo_\bb_\bs_\bp_\be_\bc  in the foreground, and make it the current job.
+              If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell's notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb
+              is  used.   The  return value is that of the command placed into
+              the foreground, or failure if run when job control  is  disabled
+              or, when run with job control enabled, if _\bj_\bo_\bb_\bs_\bp_\be_\bc does not spec-
+              ify a valid job or _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies  a  job  that  was  started
+              without job control.
+
+       g\bge\bet\bto\bop\bpt\bts\bs _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg _\bn_\ba_\bm_\be [_\ba_\br_\bg_\bs]
+              g\bge\bet\bto\bop\bpt\bts\bs  is used by shell procedures to parse positional parame-
+              ters.  _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg contains the option  characters  to  be  recog-
+              nized;  if  a  character  is  followed by a colon, the option is
+              expected to have an argument, which should be separated from  it
+              by  white space.  The colon and question mark characters may not
+              be used as option characters.  Each time it is invoked,  g\bge\bet\bto\bop\bpt\bts\bs
+              places  the next option in the shell variable _\bn_\ba_\bm_\be, initializing
+              _\bn_\ba_\bm_\be if it does not exist, and the index of the next argument to
+              be processed into the variable O\bOP\bPT\bTI\bIN\bND\bD.  O\bOP\bPT\bTI\bIN\bND\bD is initialized to
+              1 each time the shell or a shell script  is  invoked.   When  an
+              option  requires  an argument, g\bge\bet\bto\bop\bpt\bts\bs places that argument into
+              the variable O\bOP\bPT\bTA\bAR\bRG\bG.  The shell does not reset O\bOP\bPT\bTI\bIN\bND\bD  automati-
+              cally;  it  must  be  manually  reset  between multiple calls to
+              g\bge\bet\bto\bop\bpt\bts\bs within the same shell invocation if a new set of parame-
+              ters is to be used.
+
+              When  the  end  of  options is encountered, g\bge\bet\bto\bop\bpt\bts\bs exits with a
+              return value greater than zero.  O\bOP\bPT\bTI\bIN\bND\bD is set to the  index  of
+              the first non-option argument, and n\bna\bam\bme\be is set to ?.
+
+              g\bge\bet\bto\bop\bpt\bts\bs  normally  parses the positional parameters, but if more
+              arguments are given in _\ba_\br_\bg_\bs, g\bge\bet\bto\bop\bpt\bts\bs parses those instead.
+
+              g\bge\bet\bto\bop\bpt\bts\bs can report errors in two ways.  If the  first  character
+              of  _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg  is  a  colon, _\bs_\bi_\bl_\be_\bn_\bt error reporting is used.  In
+              normal operation diagnostic messages are  printed  when  invalid
+              options  or  missing  option  arguments are encountered.  If the
+              variable O\bOP\bPT\bTE\bER\bRR\bR is set to 0, no  error  messages  will  be  dis-
+              played, even if the first character of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is not a colon.
+
+              If an invalid option is seen, g\bge\bet\bto\bop\bpt\bts\bs places ? into _\bn_\ba_\bm_\be and, if
+              not  silent,  prints  an  error  message  and unsets O\bOP\bPT\bTA\bAR\bRG\bG.  If
+              g\bge\bet\bto\bop\bpt\bts\bs is silent, the  option  character  found  is  placed  in
+              O\bOP\bPT\bTA\bAR\bRG\bG and no diagnostic message is printed.
+
+              If  a required argument is not found, and g\bge\bet\bto\bop\bpt\bts\bs is not silent,
+              a question mark (?\b?) is placed in _\bn_\ba_\bm_\be, O\bOP\bPT\bTA\bAR\bRG\bG is  unset,  and  a
+              diagnostic  message  is  printed.   If g\bge\bet\bto\bop\bpt\bts\bs is silent, then a
+              colon (:\b:) is placed in _\bn_\ba_\bm_\be and O\bOP\bPT\bTA\bAR\bRG\bG  is  set  to  the  option
+              character found.
+
+              g\bge\bet\bto\bop\bpt\bts\bs  returns true if an option, specified or unspecified, is
+              found.  It returns false if the end of options is encountered or
+              an error occurs.
+
+       h\bha\bas\bsh\bh [-\b-l\blr\br] [-\b-p\bp _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [-\b-d\bdt\bt] [_\bn_\ba_\bm_\be]
+              For  each  _\bn_\ba_\bm_\be, the full file name of the command is determined
+              by searching the directories in $\b$P\bPA\bAT\bTH\bH and remembered.  If the -\b-p\bp
+              option is supplied, no path search is performed, and _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is
+              used as the full file name of the command.  The -\b-r\br option causes
+              the  shell  to  forget  all remembered locations.  The -\b-d\bd option
+              causes the shell to forget the remembered location of each _\bn_\ba_\bm_\be.
+              If  the  -\b-t\bt  option is supplied, the full pathname to which each
+              _\bn_\ba_\bm_\be corresponds is printed.  If  multiple  _\bn_\ba_\bm_\be  arguments  are
+              supplied  with  -\b-t\bt,  the  _\bn_\ba_\bm_\be is printed before the hashed full
+              pathname.  The -\b-l\bl option causes output to be displayed in a for-
+              mat  that may be reused as input.  If no arguments are given, or
+              if only -\b-l\bl is supplied, information about remembered commands is
+              printed.   The  return status is true unless a _\bn_\ba_\bm_\be is not found
+              or an invalid option is supplied.
+
+       h\bhe\bel\blp\bp [-\b-d\bdm\bms\bs] [_\bp_\ba_\bt_\bt_\be_\br_\bn]
+              Display helpful information about builtin commands.  If  _\bp_\ba_\bt_\bt_\be_\br_\bn
+              is  specified, h\bhe\bel\blp\bp gives detailed help on all commands matching
+              _\bp_\ba_\bt_\bt_\be_\br_\bn; otherwise help for all the builtins and  shell  control
+              structures is printed.
+              -\b-d\bd     Display a short description of each _\bp_\ba_\bt_\bt_\be_\br_\bn
+               -\b-m\bm    Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
+                     format
+              -\b-s\bs     Display only a short usage synopsis for each _\bp_\ba_\bt_\bt_\be_\br_\bn
+       The return status is 0 unless no command matches _\bp_\ba_\bt_\bt_\be_\br_\bn.
+
+       h\bhi\bis\bst\bto\bor\bry\by [\b[_\bn]\b]
+       h\bhi\bis\bst\bto\bor\bry\by -\b-c\bc
+       h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
+       h\bhi\bis\bst\bto\bor\bry\by -\b-a\ban\bnr\brw\bw [_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be]
+       h\bhi\bis\bst\bto\bor\bry\by -\b-p\bp _\ba_\br_\bg [_\ba_\br_\bg _\b._\b._\b.]
+       h\bhi\bis\bst\bto\bor\bry\by -\b-s\bs _\ba_\br_\bg [_\ba_\br_\bg _\b._\b._\b.]
+              With no options, display the command history list with line num-
+              bers.  Lines listed with a *\b* have been modified.  An argument of
+              _\bn lists only the last _\bn lines.  If the shell variable  H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
+              F\bFO\bOR\bRM\bMA\bAT\bT  is  set  and not null, it is used as a format string for
+              _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to display the time stamp associated with each  dis-
+              played  history  entry.  No intervening blank is printed between
+              the formatted time stamp and the history line.  If  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  is
+              supplied,  it  is  used as the name of the history file; if not,
+              the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is used.  Options, if supplied,  have  the
+              following meanings:
+              -\b-c\bc     Clear the history list by deleting all the entries.
+              -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
+                     Delete the history entry at position _\bo_\bf_\bf_\bs_\be_\bt.
+              -\b-a\ba     Append  the  ``new'' history lines (history lines entered
+                     since the beginning of the current b\bba\bas\bsh\bh session)  to  the
+                     history file.
+              -\b-n\bn     Read  the history lines not already read from the history
+                     file into the current  history  list.   These  are  lines
+                     appended  to  the history file since the beginning of the
+                     current b\bba\bas\bsh\bh session.
+              -\b-r\br     Read the contents of the history file and use them as the
+                     current history.
+              -\b-w\bw     Write  the current history to the history file, overwrit-
+                     ing the history file's contents.
+              -\b-p\bp     Perform history substitution on the  following  _\ba_\br_\bg_\bs  and
+                     display  the  result  on  the  standard output.  Does not
+                     store the results in the history list.  Each _\ba_\br_\bg must  be
+                     quoted to disable normal history expansion.
+              -\b-s\bs     Store  the  _\ba_\br_\bg_\bs  in  the history list as a single entry.
+                     The last command in the history list  is  removed  before
+                     the _\ba_\br_\bg_\bs are added.
+
+              If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT is set, the time stamp information associ-
+              ated with each history entry is written  to  the  history  file,
+              marked  with  the  history  comment character.  When the history
+              file is read, lines beginning with the history comment character
+              followed  immediately  by  a digit are interpreted as timestamps
+              for the previous history line.  The return value is 0 unless  an
+              invalid  option is encountered, an error occurs while reading or
+              writing the history file, an invalid _\bo_\bf_\bf_\bs_\be_\bt is  supplied  as  an
+              argument to -\b-d\bd, or the history expansion supplied as an argument
+              to -\b-p\bp fails.
+
+       j\bjo\bob\bbs\bs [-\b-l\bln\bnp\bpr\brs\bs] [ _\bj_\bo_\bb_\bs_\bp_\be_\bc ... ]
+       j\bjo\bob\bbs\bs -\b-x\bx _\bc_\bo_\bm_\bm_\ba_\bn_\bd [ _\ba_\br_\bg_\bs ... ]
+              The first form lists the active jobs.  The options have the fol-
+              lowing meanings:
+              -\b-l\bl     List process IDs in addition to the normal information.
+              -\b-p\bp     List  only  the  process  ID  of  the job's process group
+                     leader.
+              -\b-n\bn     Display information only about  jobs  that  have  changed
+                     status  since the user was last notified of their status.
+              -\b-r\br     Restrict output to running jobs.
+              -\b-s\bs     Restrict output to stopped jobs.
+
+              If _\bj_\bo_\bb_\bs_\bp_\be_\bc is given, output is restricted to  information  about
+              that  job.   The  return status is 0 unless an invalid option is
+              encountered or an invalid _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied.
+
+              If the -\b-x\bx option is supplied, j\bjo\bob\bbs\bs replaces any _\bj_\bo_\bb_\bs_\bp_\be_\bc found in
+              _\bc_\bo_\bm_\bm_\ba_\bn_\bd  or  _\ba_\br_\bg_\bs  with  the corresponding process group ID, and
+              executes _\bc_\bo_\bm_\bm_\ba_\bn_\bd passing it _\ba_\br_\bg_\bs, returning its exit status.
+
+       k\bki\bil\bll\bl [-\b-s\bs _\bs_\bi_\bg_\bs_\bp_\be_\bc | -\b-n\bn _\bs_\bi_\bg_\bn_\bu_\bm | -\b-_\bs_\bi_\bg_\bs_\bp_\be_\bc] [_\bp_\bi_\bd | _\bj_\bo_\bb_\bs_\bp_\be_\bc] ...
+       k\bki\bil\bll\bl -\b-l\bl [_\bs_\bi_\bg_\bs_\bp_\be_\bc | _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs]
+              Send the signal named by _\bs_\bi_\bg_\bs_\bp_\be_\bc  or  _\bs_\bi_\bg_\bn_\bu_\bm  to  the  processes
+              named  by  _\bp_\bi_\bd or _\bj_\bo_\bb_\bs_\bp_\be_\bc.  _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a case-insensitive
+              signal name such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix)  or
+              a  signal  number; _\bs_\bi_\bg_\bn_\bu_\bm is a signal number.  If _\bs_\bi_\bg_\bs_\bp_\be_\bc is not
+              present, then S\bSI\bIG\bGT\bTE\bER\bRM\bM is assumed.  An argument of -\b-l\bl  lists  the
+              signal  names.   If any arguments are supplied when -\b-l\bl is given,
+              the names of the signals  corresponding  to  the  arguments  are
+              listed, and the return status is 0.  The _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs argument to
+              -\b-l\bl is a number specifying either a signal  number  or  the  exit
+              status  of  a process terminated by a signal.  k\bki\bil\bll\bl returns true
+              if at least one signal was successfully sent,  or  false  if  an
+              error occurs or an invalid option is encountered.
+
+       l\ble\bet\bt _\ba_\br_\bg [_\ba_\br_\bg ...]
+              Each _\ba_\br_\bg is an arithmetic expression to be evaluated (see A\bAR\bRI\bIT\bTH\bH-\b-
+              M\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN).  If the last _\ba_\br_\bg evaluates to 0, l\ble\bet\bt  returns
+              1; 0 is returned otherwise.
+
+       l\blo\boc\bca\bal\bl [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+              For  each  argument, a local variable named _\bn_\ba_\bm_\be is created, and
+              assigned _\bv_\ba_\bl_\bu_\be.  The _\bo_\bp_\bt_\bi_\bo_\bn can be any of the  options  accepted
+              by d\bde\bec\bcl\bla\bar\bre\be.  When l\blo\boc\bca\bal\bl is used within a function, it causes the
+              variable _\bn_\ba_\bm_\be to have a visible scope restricted to  that  func-
+              tion and its children.  With no operands, l\blo\boc\bca\bal\bl writes a list of
+              local variables to the standard output.  It is an error  to  use
+              l\blo\boc\bca\bal\bl when not within a function.  The return status is 0 unless
+              l\blo\boc\bca\bal\bl is used outside a function, an invalid _\bn_\ba_\bm_\be  is  supplied,
+              or _\bn_\ba_\bm_\be is a readonly variable.
+
+       l\blo\bog\bgo\bou\but\bt Exit a login shell.
+
+       m\bma\bap\bpf\bfi\bil\ble\be  [-\b-n\bn  _\bc_\bo_\bu_\bn_\bt]  [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk]
+       [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
+       r\bre\bea\bad\bda\bar\brr\bra\bay\by  [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk]
+       [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
+              Read lines from the standard input into array variable _\ba_\br_\br_\ba_\by, or
+              from file descriptor _\bf_\bd if the -\b-u\bu option is supplied.  The vari-
+              able  M\bMA\bAP\bPF\bFI\bIL\bLE\bE  is the default _\ba_\br_\br_\ba_\by.  Options, if supplied, have
+              the following meanings:
+              -\b-n\bn     Copy at most _\bc_\bo_\bu_\bn_\bt lines.  If _\bc_\bo_\bu_\bn_\bt is 0, all  lines  are
+                     copied.
+              -\b-O\bO     Begin  assigning  to  _\ba_\br_\br_\ba_\by at index _\bo_\br_\bi_\bg_\bi_\bn.  The default
+                     index is 0.
+              -\b-s\bs     Discard the first _\bc_\bo_\bu_\bn_\bt lines read.
+              -\b-t\bt     Remove a trailing line from each line read.
+              -\b-u\bu     Read lines from file descriptor _\bf_\bd instead of  the  stan-
+                     dard input.
+              -\b-C\bC     Evaluate  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read.  The
+                     -\b-c\bc option specifies _\bq_\bu_\ba_\bn_\bt_\bu_\bm.
+              -\b-c\bc     Specify the number of lines read  between  each  call  to
+                     _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk.
+
+              If  -\b-C\bC  is  specified  without  -\b-c\bc, the default quantum is 5000.
+              When _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated, it is supplied the index of the next
+              array  element  to be assigned as an additional argument.  _\bc_\ba_\bl_\bl_\b-
+              _\bb_\ba_\bc_\bk is evaluated after the line is read but  before  the  array
+              element is assigned.
+
+              If  not  supplied  with  an  explicit origin, m\bma\bap\bpf\bfi\bil\ble\be will clear
+              _\ba_\br_\br_\ba_\by before assigning to it.
+
+              m\bma\bap\bpf\bfi\bil\ble\be returns successfully unless an invalid option or  option
+              argument is supplied, or _\ba_\br_\br_\ba_\by is invalid or unassignable.
+
+       p\bpo\bop\bpd\bd [-n\bn] [+_\bn] [-_\bn]
+              Removes  entries  from  the directory stack.  With no arguments,
+              removes the top directory from the stack, and performs a  c\bcd\bd  to
+              the new top directory.  Arguments, if supplied, have the follow-
+              ing meanings:
+              -\b-n\bn     Suppresses the normal change of directory  when  removing
+                     directories  from  the  stack,  so that only the stack is
+                     manipulated.
+              +\b+_\bn     Removes the _\bnth entry counting from the left of the  list
+                     shown  by  d\bdi\bir\brs\bs, starting with zero.  For example: ``popd
+                     +0'' removes the first directory, ``popd +1'' the second.
+              -\b-_\bn     Removes the _\bnth entry counting from the right of the list
+                     shown by d\bdi\bir\brs\bs, starting with zero.  For  example:  ``popd
+                     -0''  removes the last directory, ``popd -1'' the next to
+                     last.
+
+              If the p\bpo\bop\bpd\bd command is successful, a d\bdi\bir\brs\bs is performed as  well,
+              and  the  return  status is 0.  p\bpo\bop\bpd\bd returns false if an invalid
+              option is encountered, the directory stack is empty, a non-exis-
+              tent directory stack entry is specified, or the directory change
+              fails.
+
+       p\bpr\bri\bin\bnt\btf\bf [-\b-v\bv _\bv_\ba_\br] _\bf_\bo_\br_\bm_\ba_\bt [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
+              Write the formatted _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs to the standard output  under  the
+              control  of  the _\bf_\bo_\br_\bm_\ba_\bt.  The _\bf_\bo_\br_\bm_\ba_\bt is a character string which
+              contains three types of objects:  plain  characters,  which  are
+              simply  copied  to  standard output, character escape sequences,
+              which are converted and copied to the standard output, and  for-
+              mat  specifications,  each  of which causes printing of the next
+              successive _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.  In addition to the standard _\bp_\br_\bi_\bn_\bt_\bf(1) for-
+              mats,  %\b%b\bb  causes p\bpr\bri\bin\bnt\btf\bf to expand backslash escape sequences in
+              the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt (except that  \\b\c\bc  terminates  output,
+              backslashes in \\b\'\b', \\b\"\b", and \\b\?\b? are not removed, and octal escapes
+              beginning with \\b\0\b0 may contain up to four digits), and %\b%q\bq  causes
+              p\bpr\bri\bin\bnt\btf\bf to output the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in a format that can
+              be reused as shell input.
+
+              The -\b-v\bv option causes the output to be assigned to  the  variable
+              _\bv_\ba_\br rather than being printed to the standard output.
+
+              The  _\bf_\bo_\br_\bm_\ba_\bt  is  reused as necessary to consume all of the _\ba_\br_\bg_\bu_\b-
+              _\bm_\be_\bn_\bt_\bs.  If the _\bf_\bo_\br_\bm_\ba_\bt requires more _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs than are supplied,
+              the  extra  format  specifications  behave as if a zero value or
+              null string, as appropriate,  had  been  supplied.   The  return
+              value is zero on success, non-zero on failure.
+
+       p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [+_\bn] [-_\bn]
+       p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [_\bd_\bi_\br]
+              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, exchanges the top two directories
+              and returns 0, unless the directory stack is empty.   Arguments,
+              if supplied, have the following meanings:
+              -\b-n\bn     Suppresses  the  normal  change  of directory when adding
+                     directories to the stack,  so  that  only  the  stack  is
+                     manipulated.
+              +\b+_\bn     Rotates  the  stack  so  that the _\bnth directory (counting
+                     from the left of the list shown by  d\bdi\bir\brs\bs,  starting  with
+                     zero) is at the top.
+              -\b-_\bn     Rotates  the  stack  so  that the _\bnth directory (counting
+                     from the right of the list shown by d\bdi\bir\brs\bs,  starting  with
+                     zero) is at the top.
+              _\bd_\bi_\br    Adds _\bd_\bi_\br to the directory stack at the top, making it the
+                     new current working directory.
+
+              If the p\bpu\bus\bsh\bhd\bd command is successful, a d\bdi\bir\brs\bs is performed as well.
+              If  the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to _\bd_\bi_\br
+              fails.  With the second form, p\bpu\bus\bsh\bhd\bd returns 0 unless the  direc-
+              tory  stack  is empty, a non-existent directory stack element is
+              specified, or the directory change to the specified new  current
+              directory fails.
+
+       p\bpw\bwd\bd [-\b-L\bLP\bP]
+              Print  the  absolute  pathname of the current working directory.
+              The pathname printed contains no symbolic links if the -\b-P\bP option
+              is supplied or the -\b-o\bo p\bph\bhy\bys\bsi\bic\bca\bal\bl option to the s\bse\bet\bt builtin command
+              is enabled.  If the -\b-L\bL option is used, the pathname printed  may
+              contain  symbolic links.  The return status is 0 unless an error
+              occurs while reading the name of the  current  directory  or  an
+              invalid option is supplied.
+
+       r\bre\bea\bad\bd  [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b- _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt
+       _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
+              One  line  is  read  from  the  standard input, or from the file
+              descriptor _\bf_\bd supplied as an argument to the -\b-u\bu option, and  the
+              first word is assigned to the first _\bn_\ba_\bm_\be, the second word to the
+              second _\bn_\ba_\bm_\be, and so on, with leftover words and their  interven-
+              ing  separators  assigned  to the last _\bn_\ba_\bm_\be.  If there are fewer
+              words read from the input stream than names, the remaining names
+              are  assigned  empty  values.  The characters in I\bIF\bFS\bS are used to
+              split the line into words.  The backslash character (\\b\)  may  be
+              used  to  remove any special meaning for the next character read
+              and for line continuation.  Options, if supplied, have the  fol-
+              lowing meanings:
+              -\b-a\ba _\ba_\bn_\ba_\bm_\be
+                     The words are assigned to sequential indices of the array
+                     variable _\ba_\bn_\ba_\bm_\be, starting at 0.  _\ba_\bn_\ba_\bm_\be is unset before any
+                     new  values  are  assigned.   Other  _\bn_\ba_\bm_\be  arguments  are
+                     ignored.
+              -\b-d\bd _\bd_\be_\bl_\bi_\bm
+                     The first character of _\bd_\be_\bl_\bi_\bm is  used  to  terminate  the
+                     input line, rather than newline.
+              -\b-e\be     If the standard input is coming from a terminal, r\bre\bea\bad\bdl\bli\bin\bne\be
+                     (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE above) is used to obtain the  line.   Read-
+                     line  uses  the  current (or default, if line editing was
+                     not previously active) editing settings.
+              -\b-i\bi _\bt_\be_\bx_\bt
+                     If r\bre\bea\bad\bdl\bli\bin\bne\be is being used  to  read  the  line,  _\bt_\be_\bx_\bt  is
+                     placed into the editing buffer before editing begins.
+              -\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs
+                     r\bre\bea\bad\bd  returns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather than
+                     waiting for a complete line of input.
+              -\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt
+                     Display _\bp_\br_\bo_\bm_\bp_\bt on standard error, without a trailing new-
+                     line, before attempting to read any input.  The prompt is
+                     displayed only if input is coming from a terminal.
+              -\b-r\br     Backslash does not act as an escape character.  The back-
+                     slash  is considered to be part of the line.  In particu-
+                     lar, a backslash-newline pair may not be used as  a  line
+                     continuation.
+              -\b-s\bs     Silent mode.  If input is coming from a terminal, charac-
+                     ters are not echoed.
+              -\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt
+                     Cause r\bre\bea\bad\bd to time out and return failure if  a  complete
+                     line  of input is not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  _\bt_\bi_\bm_\be_\b-
+                     _\bo_\bu_\bt may be a decimal number  with  a  fractional  portion
+                     following  the decimal point.  This option is only effec-
+                     tive if r\bre\bea\bad\bd is reading input from a terminal,  pipe,  or
+                     other  special  file;  it has no effect when reading from
+                     regular files.  If _\bt_\bi_\bm_\be_\bo_\bu_\bt is 0, r\bre\bea\bad\bd returns success  if
+                     input  is  available  on  the  specified file descriptor,
+                     failure otherwise.  The exit status is greater  than  128
+                     if the timeout is exceeded.
+              -\b-u\bu _\bf_\bd  Read input from file descriptor _\bf_\bd.
+
+              If no _\bn_\ba_\bm_\be_\bs are supplied, the line read is assigned to the vari-
+              able R\bRE\bEP\bPL\bLY\bY.  The return code  is  zero,  unless  end-of-file  is
+              encountered,  r\bre\bea\bad\bd  times  out (in which case the return code is
+              greater than 128), or an invalid file descriptor is supplied  as
+              the argument to -\b-u\bu.
+
+       r\bre\bea\bad\bdo\bon\bnl\bly\by [-\b-a\baA\bAp\bpf\bf] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd] ...]
+              The  given  _\bn_\ba_\bm_\be_\bs are marked readonly; the values of these _\bn_\ba_\bm_\be_\bs
+              may not be changed by subsequent assignment.  If the  -\b-f\bf  option
+              is  supplied,  the  functions  corresponding to the _\bn_\ba_\bm_\be_\bs are so
+              marked.  The  -\b-a\ba  option  restricts  the  variables  to  indexed
+              arrays;  the  -\b-A\bA  option  restricts the variables to associative
+              arrays.  If no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option  is
+              supplied,  a  list  of  all  readonly  names is printed.  The -\b-p\bp
+              option causes output to be displayed in a  format  that  may  be
+              reused  as  input.  If a variable name is followed by =_\bw_\bo_\br_\bd, the
+              value of the variable is set to _\bw_\bo_\br_\bd.  The return  status  is  0
+              unless an invalid option is encountered, one of the _\bn_\ba_\bm_\be_\bs is not
+              a valid shell variable name, or -\b-f\bf is supplied with a _\bn_\ba_\bm_\be  that
+              is not a function.
+
+       r\bre\bet\btu\bur\brn\bn [_\bn]
+              Causes  a function to exit with the return value specified by _\bn.
+              If _\bn is omitted, the return status is that of the  last  command
+              executed  in the function body.  If used outside a function, but
+              during execution of a script by  the  .\b.   (s\bso\bou\bur\brc\bce\be)  command,  it
+              causes the shell to stop executing that script and return either
+              _\bn or the exit status of the last  command  executed  within  the
+              script  as  the  exit  status  of the script.  If used outside a
+              function and not during execution of a script by .\b.,  the  return
+              status is false.  Any command associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is
+              executed before execution resumes after the function or  script.
+
+       s\bse\bet\bt [-\b--\b-a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\ba_\br_\bg ...]
+       s\bse\bet\bt [+\b+a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\ba_\br_\bg ...]
+              Without  options,  the name and value of each shell variable are
+              displayed in a format that can be reused as input for setting or
+              resetting the currently-set variables.  Read-only variables can-
+              not be reset.  In _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, only shell variables  are  listed.
+              The  output  is  sorted  according  to the current locale.  When
+              options are specified, they set or unset shell attributes.   Any
+              arguments  remaining after option processing are treated as val-
+              ues for the positional parameters and are assigned, in order, to
+              $\b$1\b1,  $\b$2\b2,  .\b..\b..\b.   $\b$_\bn.   Options,  if specified, have the following
+              meanings:
+              -\b-a\ba      Automatically mark variables  and  functions  which  are
+                      modified  or  created  for  export to the environment of
+                      subsequent commands.
+              -\b-b\bb      Report the status of terminated background jobs  immedi-
+                      ately, rather than before the next primary prompt.  This
+                      is effective only when job control is enabled.
+              -\b-e\be      Exit immediately if a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd (see S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR
+                      above) exits with a non-zero status.  The shell does not
+                      exit if the command that fails is part  of  the  command
+                      list  immediately  following  a  w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword,
+                      part of the test in an i\bif\bf statement, part of  a  command
+                      executed  in  a &\b&&\b& or |\b||\b| list, any command in a pipeline
+                      but the last, or if the command's return value is  being
+                      inverted  via  !\b!.  Failing simple commands that are part
+                      of shell functions or command lists enclosed  in  braces
+                      or  parentheses  satisfying  the above conditions do not
+                      cause the shell to exit.  A trap on E\bER\bRR\bR, if set, is exe-
+                      cuted before the shell exits.
+              -\b-f\bf      Disable pathname expansion.
+              -\b-h\bh      Remember  the location of commands as they are looked up
+                      for execution.  This is enabled by default.
+              -\b-k\bk      All arguments in the form of assignment  statements  are
+                      placed  in the environment for a command, not just those
+                      that precede the command name.
+              -\b-m\bm      Monitor mode.  Job control is enabled.  This  option  is
+                      on  by  default  for  interactive shells on systems that
+                      support it (see J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL  above).   Background  pro-
+                      cesses  run  in a separate process group and a line con-
+                      taining their exit status is printed upon their  comple-
+                      tion.
+              -\b-n\bn      Read commands but do not execute them.  This may be used
+                      to check a shell script  for  syntax  errors.   This  is
+                      ignored by interactive shells.
+              -\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
+                      The _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be can be one of the following:
+                      a\bal\bll\ble\bex\bxp\bpo\bor\brt\bt
+                              Same as -\b-a\ba.
+                      b\bbr\bra\bac\bce\bee\bex\bxp\bpa\ban\bnd\bd
+                              Same as -\b-B\bB.
+                      e\bem\bma\bac\bcs\bs   Use  an  emacs-style command line editing inter-
+                              face.  This is enabled by default when the shell
+                              is interactive, unless the shell is started with
+                              the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option.  This also  affects  the
+                              editing interface used for r\bre\bea\bad\bd -\b-e\be.
+                      e\ber\brr\brt\btr\bra\bac\bce\be
+                              Same as -\b-E\bE.
+                      f\bfu\bun\bnc\bct\btr\bra\bac\bce\be
+                              Same as -\b-T\bT.
+                      e\ber\brr\bre\bex\bxi\bit\bt Same as -\b-e\be.
+                      h\bha\bas\bsh\bha\bal\bll\bl Same as -\b-h\bh.
+                      h\bhi\bis\bst\bte\bex\bxp\bpa\ban\bnd\bd
+                              Same as -\b-H\bH.
+                      h\bhi\bis\bst\bto\bor\bry\by Enable command history, as described above under
+                              H\bHI\bIS\bST\bTO\bOR\bRY\bY.  This option is on by default in inter-
+                              active shells.
+                      i\big\bgn\bno\bor\bre\bee\beo\bof\bf
+                              The   effect   is   as   if  the  shell  command
+                              ``IGNOREEOF=10'' had been  executed  (see  S\bSh\bhe\bel\bll\bl
+                              V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above).
+                      k\bke\bey\byw\bwo\bor\brd\bd Same as -\b-k\bk.
+                      m\bmo\bon\bni\bit\bto\bor\br Same as -\b-m\bm.
+                      n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br
+                              Same as -\b-C\bC.
+                      n\bno\boe\bex\bxe\bec\bc  Same as -\b-n\bn.
+                      n\bno\bog\bgl\blo\bob\bb  Same as -\b-f\bf.
+                      n\bno\bol\blo\bog\bg   Currently ignored.
+                      n\bno\bot\bti\bif\bfy\by  Same as -\b-b\bb.
+                      n\bno\bou\bun\bns\bse\bet\bt Same as -\b-u\bu.
+                      o\bon\bne\bec\bcm\bmd\bd  Same as -\b-t\bt.
+                      p\bph\bhy\bys\bsi\bic\bca\bal\bl
+                              Same as -\b-P\bP.
+                      p\bpi\bip\bpe\bef\bfa\bai\bil\bl
+                              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\bpo\bos\bsi\bix\bx   Change  the  behavior  of b\bba\bas\bsh\bh where the default
+                              operation differs from  the  POSIX  standard  to
+                              match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
+                      p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
+                              Same as -\b-p\bp.
+                      v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
+                      v\bvi\bi      Use  a  vi-style command line editing interface.
+                              This also affects the editing interface used for
+                              r\bre\bea\bad\bd -\b-e\be.
+                      x\bxt\btr\bra\bac\bce\be  Same as -\b-x\bx.
+                      If -\b-o\bo is supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, the values of the
+                      current options are printed.  If +\b+o\bo is supplied with  no
+                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be,  a  series  of s\bse\bet\bt commands to recreate the
+                      current option settings is  displayed  on  the  standard
+                      output.
+              -\b-p\bp      Turn  on  _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd  mode.   In this mode, the $\b$E\bEN\bNV\bV and
+                      $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV files are not processed, shell  functions  are
+                      not  inherited  from the environment, and the S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
+                      C\bCD\bDP\bPA\bAT\bTH\bH, and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they appear in  the
+                      environment,  are ignored.  If the shell is started with
+                      the effective user (group) id not equal to the real user
+                      (group)  id,  and  the  -\b-p\bp option is not supplied, these
+                      actions are taken and the effective user id  is  set  to
+                      the  real  user  id.   If  the  -\b-p\bp option is supplied at
+                      startup, the effective user id is  not  reset.   Turning
+                      this  option off causes the effective user and group ids
+                      to be set to the real user and group ids.
+              -\b-t\bt      Exit after reading and executing one command.
+              -\b-u\bu      Treat unset variables as an error when performing param-
+                      eter  expansion.   If expansion is attempted on an unset
+                      variable, the shell prints an error message, and, if not
+                      interactive, exits with a non-zero status.
+              -\b-v\bv      Print shell input lines as they are read.
+              -\b-x\bx      After  expanding  each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br command, c\bca\bas\bse\be
+                      command, s\bse\bel\ble\bec\bct\bt command, or arithmetic f\bfo\bor\br command, dis-
+                      play  the expanded value of P\bPS\bS4\b4, followed by the command
+                      and its expanded arguments or associated word list.
+              -\b-B\bB      The shell performs brace expansion (see B\bBr\bra\bac\bce\be  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+                      above).  This is on by default.
+              -\b-C\bC      If  set,  b\bba\bas\bsh\bh  does not overwrite an existing file with
+                      the >\b>, >\b>&\b&, and <\b<>\b> redirection operators.   This  may  be
+                      overridden when creating output files by using the redi-
+                      rection operator >\b>|\b| instead of >\b>.
+              -\b-E\bE      If set, any trap on E\bER\bRR\bR is inherited by shell functions,
+                      command  substitutions,  and commands executed in a sub-
+                      shell environment.  The E\bER\bRR\bR trap is normally not  inher-
+                      ited in such cases.
+              -\b-H\bH      Enable !\b!  style history substitution.  This option is on
+                      by default when the shell is interactive.
+              -\b-P\bP      If set, the shell does not follow  symbolic  links  when
+                      executing  commands  such  as c\bcd\bd that change the current
+                      working  directory.   It  uses  the  physical  directory
+                      structure instead.  By default, b\bba\bas\bsh\bh follows the logical
+                      chain of  directories  when  performing  commands  which
+                      change the current directory.
+              -\b-T\bT      If  set,  any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are inherited by
+                      shell functions,  command  substitutions,  and  commands
+                      executed  in  a  subshell  environment.   The  D\bDE\bEB\bBU\bUG\bG and
+                      R\bRE\bET\bTU\bUR\bRN\bN traps are normally not inherited in such cases.
+              -\b--\b-      If no arguments follow this option, then the  positional
+                      parameters are unset.  Otherwise, the positional parame-
+                      ters are set to the _\ba_\br_\bgs, even if  some  of  them  begin
+                      with a -\b-.
+              -\b-       Signal  the  end of options, cause all remaining _\ba_\br_\bgs to
+                      be assigned to the positional parameters.  The -\b-x\bx and -\b-v\bv
+                      options are turned off.  If there are no _\ba_\br_\bgs, the posi-
+                      tional parameters remain unchanged.
+
+              The options are off by default unless otherwise noted.  Using  +
+              rather  than  -  causes  these  options  to  be turned off.  The
+              options can also be specified as arguments to an  invocation  of
+              the  shell.  The current set of options may be found in $\b$-\b-.  The
+              return status is always true unless an invalid option is encoun-
+              tered.
+
+       s\bsh\bhi\bif\bft\bt [_\bn]
+              The  positional  parameters  from _\bn+1 ... are renamed to $\b$1\b1 .\b..\b..\b..\b.
+              Parameters represented by the numbers  $\b$#\b#  down  to  $\b$#\b#-_\bn+1  are
+              unset.   _\bn  must  be a non-negative number less than or equal to
+              $\b$#\b#.  If _\bn is 0, no parameters are changed.  If _\bn is  not  given,
+              it  is assumed to be 1.  If _\bn is greater than $\b$#\b#, the positional
+              parameters are not changed.  The return status is  greater  than
+              zero if _\bn is greater than $\b$#\b# or less than zero; otherwise 0.
+
+       s\bsh\bho\bop\bpt\bt [-\b-p\bpq\bqs\bsu\bu] [-\b-o\bo] [_\bo_\bp_\bt_\bn_\ba_\bm_\be ...]
+              Toggle the values of variables controlling optional shell behav-
+              ior.  With no options, or with the -\b-p\bp option, a list of all set-
+              table options is displayed, with an indication of whether or not
+              each is set.  The -\b-p\bp option causes output to be displayed  in  a
+              form  that  may be reused as input.  Other options have the fol-
+              lowing meanings:
+              -\b-s\bs     Enable (set) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
+              -\b-u\bu     Disable (unset) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
+              -\b-q\bq     Suppresses normal output (quiet mode); the return  status
+                     indicates whether the _\bo_\bp_\bt_\bn_\ba_\bm_\be is set or unset.  If multi-
+                     ple _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are given with -\b-q\bq, the return  sta-
+                     tus  is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero other-
+                     wise.
+              -\b-o\bo     Restricts the values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those  defined  for
+                     the -\b-o\bo option to the s\bse\bet\bt builtin.
+
+              If  either  -\b-s\bs or -\b-u\bu is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments, the dis-
+              play is limited to those options which are set or unset, respec-
+              tively.   Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are disabled
+              (unset) by default.
+
+              The return status when listing options is zero if  all  _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
+              are  enabled,  non-zero  otherwise.   When  setting or unsetting
+              options, the return status is zero unless an _\bo_\bp_\bt_\bn_\ba_\bm_\be  is  not  a
+              valid shell option.
+
+              The list of s\bsh\bho\bop\bpt\bt options is:
+
+              a\bau\but\bto\boc\bcd\bd  If  set,  a command name that is the name of a directory
+                      is executed as if it were the argument to  the  c\bcd\bd  com-
+                      mand.  This option is only used by interactive shells.
+              c\bcd\bda\bab\bbl\ble\be_\b_v\bva\bar\brs\bs
+                      If  set,  an  argument to the c\bcd\bd builtin command that is
+                      not a directory is assumed to be the name of a  variable
+                      whose value is the directory to change to.
+              c\bcd\bds\bsp\bpe\bel\bll\bl If set, minor errors in the spelling of a directory com-
+                      ponent in a c\bcd\bd command will be  corrected.   The  errors
+                      checked for are transposed characters, a missing charac-
+                      ter, and one character too many.   If  a  correction  is
+                      found,  the corrected file name is printed, and the com-
+                      mand proceeds.  This option is only used by  interactive
+                      shells.
+              c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
+                      If set, b\bba\bas\bsh\bh checks that a command found in the hash ta-
+                      ble exists before trying to execute  it.   If  a  hashed
+                      command  no  longer exists, a normal path search is per-
+                      formed.
+              c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
+                      If set, b\bba\bas\bsh\bh 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 intervening command
+                      (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above).   The  shell  always  postpones
+                      exiting if any jobs are stopped.
+              c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be
+                      If  set,  b\bba\bas\bsh\bh checks the window size after each command
+                      and, if necessary, updates the values of L\bLI\bIN\bNE\bES\bS and  C\bCO\bOL\bL-\b-
+                      U\bUM\bMN\bNS\bS.
+              c\bcm\bmd\bdh\bhi\bis\bst\bt If  set,  b\bba\bas\bsh\bh attempts to save all lines of a multiple-
+                      line command in the same  history  entry.   This  allows
+                      easy re-editing of multi-line commands.
+              c\bco\bom\bmp\bpa\bat\bt3\b31\b1
+                      If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.1
+                      with respect to quoted arguments to the conditional com-
+                      mand's =~ operator.
+              d\bdi\bir\brs\bsp\bpe\bel\bll\bl
+                      If  set,  b\bba\bas\bsh\bh attempts spelling correction on directory
+                      names during word completion if the directory name  ini-
+                      tially supplied does not exist.
+              d\bdo\bot\btg\bgl\blo\bob\bb If  set, b\bba\bas\bsh\bh includes filenames beginning with a `.' in
+                      the results of pathname expansion.
+              e\bex\bxe\bec\bcf\bfa\bai\bil\bl
+                      If set, a non-interactive shell will not exit if it can-
+                      not  execute  the  file  specified as an argument to the
+                      e\bex\bxe\bec\bc builtin command.  An  interactive  shell  does  not
+                      exit if e\bex\bxe\bec\bc fails.
+              e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs
+                      If  set,  aliases  are expanded as described above under
+                      A\bAL\bLI\bIA\bAS\bSE\bES\bS.  This option is enabled by default for interac-
+                      tive shells.
+              e\bex\bxt\btd\bde\beb\bbu\bug\bg
+                      If  set,  behavior  intended  for  use  by  debuggers is
+                      enabled:
+                      1\b1.\b.     The -\b-F\bF option to the d\bde\bec\bcl\bla\bar\bre\be builtin displays the
+                             source file name and line number corresponding to
+                             each function name supplied as an argument.
+                      2\b2.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
+                             non-zero  value,  the next command is skipped and
+                             not executed.
+                      3\b3.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
+                             value  of 2, and the shell is executing in a sub-
+                             routine (a shell function or a shell script  exe-
+                             cuted  by  the  .\b.  or s\bso\bou\bur\brc\bce\be builtins), a call to
+                             r\bre\bet\btu\bur\brn\bn is simulated.
+                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as  described
+                             in their descriptions above.
+                      5\b5.\b.     Function  tracing  is enabled:  command substitu-
+                             tion, shell functions, and subshells invoked with
+                             (\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
+                      6\b6.\b.     Error  tracing is enabled:  command substitution,
+                             shell functions, and  subshells  invoked  with  (\b(
+                             _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bRO\bOR\bR trap.
+              e\bex\bxt\btg\bgl\blo\bob\bb If set, the extended pattern matching features described
+                      above under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn are enabled.
+              e\bex\bxt\btq\bqu\buo\bot\bte\be
+                      If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg"  quoting  is  performed
+                      within   $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}   expansions  enclosed  in  double
+                      quotes.  This option is enabled by default.
+              f\bfa\bai\bil\blg\bgl\blo\bob\bb
+                      If set, patterns which fail to  match  filenames  during
+                      pathname expansion result in an expansion error.
+              f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
+                      If  set,  the  suffixes  specified  by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
+                      variable cause words to be ignored when performing  word
+                      completion even if the ignored words are the only possi-
+                      ble  completions.   See  S\bSH\bHE\bEL\bLL\bL  V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS  above  for  a
+                      description  of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled by
+                      default.
+              g\bgl\blo\bob\bbs\bst\bta\bar\br
+                      If set, the pattern *\b**\b* used in a filename expansion con-
+                      text will match a files and zero or more directories and
+                      subdirectories.  If the pattern is followed by a /\b/, only
+                      directories and subdirectories match.
+              g\bgn\bnu\bu_\b_e\ber\brr\brf\bfm\bmt\bt
+                      If set, shell error messages are written in the standard
+                      GNU error message format.
+              h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd
+                      If set, the history list is appended to the  file  named
+                      by  the  value  of  the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE variable when the shell
+                      exits, rather than overwriting the file.
+              h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt
+                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given  the
+                      opportunity to re-edit a failed history substitution.
+              h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by
+                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of his-
+                      tory substitution are  not  immediately  passed  to  the
+                      shell  parser.   Instead,  the  resulting line is loaded
+                      into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer, allowing further modi-
+                      fication.
+              h\bho\bos\bst\btc\bco\bom\bmp\bpl\ble\bet\bte\be
+                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will attempt to
+                      perform hostname completion when a word containing  a  @\b@
+                      is   being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg  under  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
+                      above).  This is enabled by default.
+              h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt
+                      If set, b\bba\bas\bsh\bh will send S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an inter-
+                      active login shell exits.
+              i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs
+                      If set, allow a word beginning with #\b# to cause that word
+                      and all remaining characters on that line to be  ignored
+                      in  an  interactive  shell  (see  C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS above).  This
+                      option is enabled by default.
+              l\bli\bit\bth\bhi\bis\bst\bt If set, and the c\bcm\bmd\bdh\bhi\bis\bst\bt option  is  enabled,  multi-line
+                      commands are saved to the history with embedded newlines
+                      rather than using semicolon separators where possible.
+              l\blo\bog\bgi\bin\bn_\b_s\bsh\bhe\bel\bll\bl
+                      The shell sets this option if it is started as  a  login
+                      shell  (see  I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN  above).   The  value may not be
+                      changed.
+              m\bma\bai\bil\blw\bwa\bar\brn\bn
+                      If set, and a file that b\bba\bas\bsh\bh is checking  for  mail  has
+                      been  accessed  since  the last time it was checked, the
+                      message ``The mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been read''  is  dis-
+                      played.
+              n\bno\bo_\b_e\bem\bmp\bpt\bty\by_\b_c\bcm\bmd\bd_\b_c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+                      If  set,  and  r\bre\bea\bad\bdl\bli\bin\bne\be  is  being  used,  b\bba\bas\bsh\bh will not
+                      attempt to search the P\bPA\bAT\bTH\bH for possible completions when
+                      completion is attempted on an empty line.
+              n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb
+                      If  set,  b\bba\bas\bsh\bh  matches  filenames in a case-insensitive
+                      fashion when performing pathname expansion (see P\bPa\bat\bth\bhn\bna\bam\bme\be
+                      E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
+              n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
+                      If  set,  b\bba\bas\bsh\bh  matches  patterns  in a case-insensitive
+                      fashion when performing matching while executing c\bca\bas\bse\be or
+                      [\b[[\b[ conditional commands.
+              n\bnu\bul\bll\blg\bgl\blo\bob\bb
+                      If  set,  b\bba\bas\bsh\bh allows patterns which match no files (see
+                      P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above) to expand to  a  null  string,
+                      rather than themselves.
+              p\bpr\bro\bog\bgc\bco\bom\bmp\bp
+                      If set, the programmable completion facilities (see P\bPr\bro\bo-\b-
+                      g\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn above) are enabled.  This option is
+                      enabled by default.
+              p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs
+                      If set, prompt strings undergo parameter expansion, com-
+                      mand  substitution,  arithmetic  expansion,  and   quote
+                      removal  after  being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
+                      above.  This option is enabled by default.
+              r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl
+                      The  shell  sets  this  option  if  it  is  started   in
+                      restricted mode (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).  The value
+                      may not be changed.  This is not reset when the  startup
+                      files  are  executed, allowing the startup files to dis-
+                      cover whether or not a shell is restricted.
+              s\bsh\bhi\bif\bft\bt_\b_v\bve\ber\brb\bbo\bos\bse\be
+                      If set, the s\bsh\bhi\bif\bft\bt builtin prints an error  message  when
+                      the shift count exceeds the number of positional parame-
+                      ters.
+              s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh
+                      If set, the s\bso\bou\bur\brc\bce\be (.\b.) builtin uses the value of P\bPA\bAT\bTH\bH to
+                      find  the  directory  containing the file supplied as an
+                      argument.  This option is enabled by default.
+              x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
+                      If  set,  the  e\bec\bch\bho\bo  builtin  expands   backslash-escape
+                      sequences by default.
+       s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
+              Suspend  the execution of this shell until it receives a S\bSI\bIG\bGC\bCO\bON\bNT\bT
+              signal.  A login shell cannot be suspended; the -\b-f\bf option can be
+              used to override this and force the suspension.  The return sta-
+              tus is 0 unless the shell is a login shell and -\b-f\bf  is  not  sup-
+              plied, or if job control is not enabled.
+       t\bte\bes\bst\bt _\be_\bx_\bp_\br
+       [\b[ _\be_\bx_\bp_\br ]\b]
+              Return  a  status  of  0 or 1 depending on the evaluation of the
+              conditional expression _\be_\bx_\bp_\br.  Each operator and operand must  be
+              a  separate argument.  Expressions are composed of the primaries
+              described above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.   t\bte\bes\bst\bt  does  not
+              accept any options, nor does it accept and ignore an argument of
+              -\b--\b- as signifying the end of options.
+
+              Expressions may  be  combined  using  the  following  operators,
+              listed  in  decreasing  order  of  precedence.   The  evaluation
+              depends on the number of arguments; see below.
+              !\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
+              (\b( _\be_\bx_\bp_\br )\b)
+                     Returns the value of _\be_\bx_\bp_\br.  This may be used to  override
+                     the normal precedence of operators.
+              _\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
+                     True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
+              _\be_\bx_\bp_\br_\b1 -o\bo _\be_\bx_\bp_\br_\b2
+                     True if either _\be_\bx_\bp_\br_\b1 or _\be_\bx_\bp_\br_\b2 is true.
+
+              t\bte\bes\bst\bt and [\b[ evaluate conditional expressions using a set of rules
+              based on the number of arguments.
+
+              0 arguments
+                     The expression is false.
+              1 argument
+                     The expression is true if and only if the argument is not
+                     null.
+              2 arguments
+                     If the first argument is !\b!, the expression is true if and
+                     only if the second argument is null.  If the first  argu-
+                     ment  is  one  of  the unary conditional operators listed
+                     above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS,  the  expression  is
+                     true if the unary test is true.  If the first argument is
+                     not a valid unary conditional operator, the expression is
+                     false.
+              3 arguments
+                     If  the  second argument is one of the binary conditional
+                     operators listed above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
+                     result of the expression is the result of the binary test
+                     using the first and third arguments as operands.  The  -\b-a\ba
+                     and  -\b-o\bo  operators  are  considered binary operators when
+                     there are three arguments.  If the first argument  is  !\b!,
+                     the  value is the negation of the two-argument test using
+                     the second and third arguments.  If the first argument is
+                     exactly (\b( and the third argument is exactly )\b), the result
+                     is the one-argument test of the second argument.   Other-
+                     wise, the expression is false.
+              4 arguments
+                     If the first argument is !\b!, the result is the negation of
+                     the three-argument expression composed of  the  remaining
+                     arguments.  Otherwise, the expression is parsed and eval-
+                     uated according to  precedence  using  the  rules  listed
+                     above.
+              5 or more arguments
+                     The  expression  is  parsed  and  evaluated  according to
+                     precedence using the rules listed above.
+
+       t\bti\bim\bme\bes\bs  Print the accumulated user and system times for  the  shell  and
+              for processes run from the shell.  The return status is 0.
+
+       t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\br_\bg] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
+              The  command  _\ba_\br_\bg  is  to  be  read  and executed when the shell
+              receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc.  If _\ba_\br_\bg is absent (and  there  is  a
+              single  _\bs_\bi_\bg_\bs_\bp_\be_\bc)  or  -\b-,  each  specified signal is reset to its
+              original disposition (the value it  had  upon  entrance  to  the
+              shell).   If _\ba_\br_\bg is the null string the signal specified by each
+              _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored by the shell and by the commands it  invokes.
+              If  _\ba_\br_\bg  is  not present and -\b-p\bp has been supplied, then the trap
+              commands associated with each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are  displayed.   If  no
+              arguments  are  supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
+              list of commands associated with each  signal.   The  -\b-l\bl  option
+              causes  the shell to print a list of signal names and their cor-
+              responding numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal  name
+              defined  in  <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>,  or  a signal number.  Signal names are
+              case insensitive and the SIG prefix is optional.  If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc
+              is  E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit from the shell.
+              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is executed before  every
+              _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command, _\bs_\be_\bl_\be_\bc_\bt command, every
+              arithmetic _\bf_\bo_\br command, and before the first command executes in
+              a  shell  function  (see  S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR  above).   Refer to the
+              description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option  to  the  s\bsh\bho\bop\bpt\bt  builtin  for
+              details  of  its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR,
+              the command _\ba_\br_\bg is executed whenever  a  simple  command  has  a
+              non-zero  exit status, subject to the following conditions.  The
+              E\bER\bRR\bR trap is not executed if the failed command is  part  of  the
+              command  list  immediately  following  a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword,
+              part of the test in an _\bi_\bf statement, part of a command  executed
+              in  a  &\b&&\b&  or |\b||\b| list, or if the command's return value is being
+              inverted via !\b!.  These are the same  conditions  obeyed  by  the
+              e\ber\brr\bre\bex\bxi\bit\bt option.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is exe-
+              cuted each time a shell function or a script executed with the .\b.
+              or  s\bso\bou\bur\brc\bce\be  builtins  finishes  executing.  Signals ignored upon
+              entry to the shell cannot be trapped or reset.  Trapped  signals
+              that are not being ignored are reset to their original values in
+              a child process when it is created.  The return status is  false
+              if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is invalid; otherwise t\btr\bra\bap\bp returns true.
+
+       t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
+              With  no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
+              used as a command name.  If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
+              string  which  is  one  of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
+              _\bf_\bi_\bl_\be if  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word,  function,
+              builtin,  or disk file, respectively.  If the _\bn_\ba_\bm_\be is not found,
+              then nothing  is  printed,  and  an  exit  status  of  false  is
+              returned.   If  the  -\b-p\bp  option is used, t\bty\byp\bpe\be either returns the
+              name of the disk file that would be executed if _\bn_\ba_\bm_\be were speci-
+              fied as a command name, or nothing if ``type -t name'' would not
+              return _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each  _\bn_\ba_\bm_\be,
+              even if ``type -t name'' would not return _\bf_\bi_\bl_\be.  If a command is
+              hashed, -\b-p\bp and -\b-P\bP print the hashed value,  not  necessarily  the
+              file that appears first in P\bPA\bAT\bTH\bH.  If the -\b-a\ba option is used, t\bty\byp\bpe\be
+              prints all of the places that contain an executable named  _\bn_\ba_\bm_\be.
+              This  includes  aliases  and  functions,  if  and only if the -\b-p\bp
+              option is not also used.  The table of hashed  commands  is  not
+              consulted  when  using -\b-a\ba.  The -\b-f\bf option suppresses shell func-
+              tion lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true  if
+              all of the arguments are found, false if any are not found.
+
+       u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bST\bTa\bab\bbc\bcd\bde\bef\bfi\bil\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bx [_\bl_\bi_\bm_\bi_\bt]]
+              Provides  control  over the resources available to the shell and
+              to processes started by it, on systems that allow such  control.
+              The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
+              for the given resource.  A hard limit cannot be increased  by  a
+              non-root  user  once it is set; a soft limit may be increased up
+              to the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is  speci-
+              fied, both the soft and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt
+              can be a number in the unit specified for the resource or one of
+              the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
+              current hard limit,  the  current  soft  limit,  and  no  limit,
+              respectively.   If  _\bl_\bi_\bm_\bi_\bt  is  omitted, the current value of the
+              soft limit of the resource is printed, unless the -\b-H\bH  option  is
+              given.  When more than one resource is specified, the limit name
+              and unit are printed before the value.  Other options are inter-
+              preted as follows:
+              -\b-a\ba     All current limits are reported
+              -\b-b\bb     The maximum socket buffer size
+              -\b-c\bc     The maximum size of core files created
+              -\b-d\bd     The maximum size of a process's data segment
+              -\b-e\be     The maximum scheduling priority ("nice")
+              -\b-f\bf     The  maximum  size  of files written by the shell and its
+                     children
+              -\b-i\bi     The maximum number of pending signals
+              -\b-l\bl     The maximum size that may be locked into memory
+              -\b-m\bm     The maximum resident set size
+              -\b-n\bn     The maximum number of open file descriptors (most systems
+                     do not allow this value to be set)
+              -\b-p\bp     The pipe size in 512-byte blocks (this may not be set)
+              -\b-q\bq     The maximum number of bytes in POSIX message queues
+              -\b-r\br     The maximum real-time scheduling priority
+              -\b-s\bs     The maximum stack size
+              -\b-t\bt     The maximum amount of cpu time in seconds
+              -\b-u\bu     The  maximum  number  of  processes available to a single
+                     user
+              -\b-v\bv     The maximum amount of virtual  memory  available  to  the
+                     shell
+              -\b-x\bx     The maximum number of file locks
+              -\b-T\bT     The maximum number of threads
+
+              If _\bl_\bi_\bm_\bi_\bt is given, it is the new value of the specified resource
+              (the -\b-a\ba option is display only).  If no option is given, then -\b-f\bf
+              is  assumed.  Values are in 1024-byte increments, except for -\b-t\bt,
+              which is in seconds, -\b-p\bp, which is in units of  512-byte  blocks,
+              and  -\b-T\bT,  -\b-b\bb, -\b-n\bn, and -\b-u\bu, which are unscaled values.  The return
+              status is 0 unless an invalid option or argument is supplied, or
+              an error occurs while setting a new limit.
+
+       u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
+              The user file-creation mask is set to _\bm_\bo_\bd_\be.  If _\bm_\bo_\bd_\be begins with
+              a digit, it is interpreted as an octal number; otherwise  it  is
+              interpreted  as a symbolic mode mask similar to that accepted by
+              _\bc_\bh_\bm_\bo_\bd(1).  If _\bm_\bo_\bd_\be is omitted, the current value of the mask  is
+              printed.   The  -\b-S\bS  option causes the mask to be printed in sym-
+              bolic form; the default output is an octal number.   If  the  -\b-p\bp
+              option is supplied, and _\bm_\bo_\bd_\be is omitted, the output is in a form
+              that may be reused as input.  The return status is 0 if the mode
+              was  successfully  changed  or if no _\bm_\bo_\bd_\be argument was supplied,
+              and false otherwise.
+
+       u\bun\bna\bal\bli\bia\bas\bs [-a\ba] [_\bn_\ba_\bm_\be ...]
+              Remove each _\bn_\ba_\bm_\be from the list of defined  aliases.   If  -\b-a\ba  is
+              supplied,  all  alias definitions are removed.  The return value
+              is true unless a supplied _\bn_\ba_\bm_\be is not a defined alias.
+
+       u\bun\bns\bse\bet\bt [-f\bfv\bv] [_\bn_\ba_\bm_\be ...]
+              For each _\bn_\ba_\bm_\be, remove the corresponding  variable  or  function.
+              If no options are supplied, or the -\b-v\bv option is given, each _\bn_\ba_\bm_\be
+              refers to a shell variable.   Read-only  variables  may  not  be
+              unset.   If  -\b-f\bf  is specified, each _\bn_\ba_\bm_\be refers to a shell func-
+              tion, and the function definition is removed.  Each unset  vari-
+              able  or function is removed from the environment passed to sub-
+              sequent commands.  If any of R\bRA\bAN\bND\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS,  L\bLI\bIN\bNE\bEN\bNO\bO,  H\bHI\bIS\bST\bTC\bCM\bMD\bD,
+              F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE, G\bGR\bRO\bOU\bUP\bPS\bS, or D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK are unset, they lose their special
+              properties, even if they are subsequently reset.  The exit  sta-
+              tus is true unless a _\bn_\ba_\bm_\be is readonly.
+
+       w\bwa\bai\bit\bt [_\bn _\b._\b._\b.]
+              Wait  for each specified process and return its termination sta-
+              tus.  Each _\bn may be a process ID or a job  specification;  if  a
+              job  spec  is  given,  all  processes in that job's pipeline are
+              waited for.  If _\bn is not given, all currently active child  pro-
+              cesses  are  waited  for,  and  the return status is zero.  If _\bn
+              specifies a non-existent process or job, the  return  status  is
+              127.   Otherwise,  the  return  status is the exit status of the
+              last process or job waited for.
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
+       If b\bba\bas\bsh\bh is started with the name r\brb\bba\bas\bsh\bh, or the -\b-r\br option is supplied at
+       invocation,  the  shell becomes restricted.  A restricted shell is used
+       to set up an environment more controlled than the standard  shell.   It
+       behaves  identically  to b\bba\bas\bsh\bh with the exception that the following are
+       disallowed or not performed:
+
+       +\bo      changing directories with c\bcd\bd
+
+       +\bo      setting or unsetting the values of S\bSH\bHE\bEL\bLL\bL, P\bPA\bAT\bTH\bH, E\bEN\bNV\bV, or B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV
+
+       +\bo      specifying command names containing /\b/
+
+       +\bo      specifying  a  file  name containing a /\b/ as an argument to the .\b.
+              builtin command
+
+       +\bo      Specifying a filename containing a slash as an argument  to  the
+              -\b-p\bp option to the h\bha\bas\bsh\bh builtin command
+
+       +\bo      importing  function  definitions  from  the shell environment at
+              startup
+
+       +\bo      parsing the value of S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from  the  shell  environment  at
+              startup
+
+       +\bo      redirecting output using the >, >|, <>, >&, &>, and >> redirect-
+              ion operators
+
+       +\bo      using the e\bex\bxe\bec\bc builtin command to replace the shell with another
+              command
+
+       +\bo      adding  or  deleting builtin commands with the -\b-f\bf and -\b-d\bd options
+              to the e\ben\bna\bab\bbl\ble\be builtin command
+
+       +\bo      Using the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled  shell
+              builtins
+
+       +\bo      specifying the -\b-p\bp option to the c\bco\bom\bmm\bma\ban\bnd\bd builtin command
+
+       +\bo      turning off restricted mode with s\bse\bet\bt +\b+r\br or s\bse\bet\bt +\b+o\bo r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd.
+
+       These restrictions are enforced after any startup files are read.
+
+       When a command that is found to be a shell script is executed (see C\bCO\bOM\bM-\b-
+       M\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN above), r\brb\bba\bas\bsh\bh turns off any restrictions  in  the  shell
+       spawned to execute the script.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       _\bB_\ba_\bs_\bh _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bM_\ba_\bn_\bu_\ba_\bl, Brian Fox and Chet Ramey
+       _\bT_\bh_\be _\bG_\bn_\bu _\bR_\be_\ba_\bd_\bl_\bi_\bn_\be _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
+       _\bT_\bh_\be _\bG_\bn_\bu _\bH_\bi_\bs_\bt_\bo_\br_\by _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
+       _\bP_\bo_\br_\bt_\ba_\bb_\bl_\be  _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg  _\bS_\by_\bs_\bt_\be_\bm  _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b: _\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\b-
+       _\bt_\bi_\be_\bs, IEEE
+       _\bs_\bh(1), _\bk_\bs_\bh(1), _\bc_\bs_\bh(1)
+       _\be_\bm_\ba_\bc_\bs(1), _\bv_\bi(1)
+       _\br_\be_\ba_\bd_\bl_\bi_\bn_\be(3)
+
+F\bFI\bIL\bLE\bES\bS
+       _\b/_\bb_\bi_\bn_\b/_\bb_\ba_\bs_\bh
+              The b\bba\bas\bsh\bh executable
+       _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be
+              The systemwide initialization file, executed for login shells
+       _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bp_\br_\bo_\bf_\bi_\bl_\be
+              The personal initialization file, executed for login shells
+       _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc
+              The individual per-interactive-shell startup file
+       _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt
+              The  individual  login shell cleanup file, executed when a login
+              shell exits
+       _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc
+              Individual _\br_\be_\ba_\bd_\bl_\bi_\bn_\be initialization file
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Brian Fox, Free Software Foundation
+       bfox@gnu.org
+
+       Chet Ramey, Case Western Reserve University
+       chet@po.cwru.edu
+
+B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
+       If you find a bug in b\bba\bas\bsh\bh,\b, you should report it.  But first, you should
+       make  sure  that  it really is a bug, and that it appears in the latest
+       version  of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available   from
+       _\bf_\bt_\bp_\b:_\b/_\b/_\bf_\bt_\bp_\b._\bg_\bn_\bu_\b._\bo_\br_\bg_\b/_\bp_\bu_\bb_\b/_\bb_\ba_\bs_\bh_\b/.
+
+       Once  you  have  determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
+       command to submit a bug report.  If you have a fix, you are  encouraged
+       to  mail that as well!  Suggestions and `philosophical' bug reports may
+       be mailed  to  _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg  or  posted  to  the  Usenet  newsgroup
+       g\bgn\bnu\bu.\b.b\bba\bas\bsh\bh.\b.b\bbu\bug\bg.
+
+       ALL bug reports should include:
+
+       The version number of b\bba\bas\bsh\bh
+       The hardware and operating system
+       The compiler used to compile
+       A description of the bug behaviour
+       A short script or `recipe' which exercises the bug
+
+       _\bb_\ba_\bs_\bh_\bb_\bu_\bg  inserts  the first three items automatically into the template
+       it provides for filing a bug report.
+
+       Comments and bug reports concerning this manual page should be directed
+       to _\bc_\bh_\be_\bt_\b@_\bp_\bo_\b._\bc_\bw_\br_\bu_\b._\be_\bd_\bu.
+
+B\bBU\bUG\bGS\bS
+       It's too big and too slow.
+
+       There are some subtle differences between b\bba\bas\bsh\bh and traditional versions
+       of s\bsh\bh, mostly because of the P\bPO\bOS\bSI\bIX\bX specification.
+
+       Aliases are confusing in some uses.
+
+       Shell builtin commands and functions are not stoppable/restartable.
+
+       Compound commands and command sequences of the form `a ; b ; c' are not
+       handled  gracefully  when  process  suspension  is  attempted.   When a
+       process is stopped, the shell immediately executes the next command  in
+       the  sequence.   It  suffices to place the sequence of commands between
+       parentheses to force it into a subshell, which  may  be  stopped  as  a
+       unit.
+
+       Array variables may not (yet) be exported.
+
+       There may be only one active coprocess at a time.
+
+
+
+GNU Bash-4.0                   2008 December 29                        BASH(1)
index 016abba6bdcffc1062e1117194d57a3571d186ab..4308214b178a3a4883e5b485da730545fb692b8e 100644 (file)
@@ -5,12 +5,12 @@
 .\"    Case Western Reserve University
 .\"    chet@po.cwru.edu
 .\"
-.\"    Last Change: Mon Dec 29 16:49:01 EST 2008
+.\"    Last Change: Sat Feb  7 20:50:40 EST 2009
 .\"
 .\" bash_builtins, strip all but Built-Ins section
 .if \n(zZ=1 .ig zZ
 .if \n(zY=1 .ig zY
-.TH BASH 1 "2008 December 29" "GNU Bash-4.0"
+.TH BASH 1 "2009 February 7" "GNU Bash-4.0"
 .\"
 .\" There's some problem with having a `@'
 .\" in a tagged paragraph with the BSD man macros.
@@ -887,6 +887,9 @@ The format for a coprocess is:
 .PP
 This creates a coprocess named \fINAME\fP.
 If \fINAME\fP is not supplied, the default name is \fICOPROC\fP.
+\fINAME\fP must not be supplied if \fIcommand\fP is a \fIsimple
+command\fP (see above); otherwise, it is interpreted as the first word
+of the simple command.
 When the coproc is executed, the shell creates an array variable (see
 .B Arrays
 below) named \fINAME\fP in the context of the executing shell.
@@ -1361,7 +1364,7 @@ corresponding to each member of \fBFUNCNAME\fP.
 file where \fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP was called
 (or \fB${BASH_LINENO[\fP\fI$i-1\fP\fB]}\fP if referenced within another
 shell function).
-The corresponding source file name is \fB${BASH_SOURCE[\fP\fI$i\fP\fB]}\fB.
+The corresponding source file name is \fB${BASH_SOURCE[\fP\fI$i\fP\fB]}\fP.
 Use \fBLINENO\fP to obtain the current line number.
 .TP
 .B BASH_REMATCH
@@ -1457,7 +1460,7 @@ programmable completion facilities (see \fBProgrammable Completion\fP
 below).
 .TP
 .B COMP_WORDBREAKS
-The set of characters that the Readline library treats as word
+The set of characters that the \fBreadline\fP library treats as word
 separators when performing word completion.
 If
 .SM
@@ -1468,8 +1471,8 @@ subsequently reset.
 .B COMP_WORDS
 An array variable (see \fBArrays\fP below) consisting of the individual
 words in the current command line.
-The words are split on shell metacharacters as the shell parser would
-separate them.
+The line is split into words as \fBreadline\fP would split it, using
+\fBCOMP_WORDBREAKS\fP as described above.
 This variable is available only in shell functions invoked by the
 programmable completion facilities (see \fBProgrammable Completion\fP
 below).
@@ -2484,9 +2487,10 @@ introduce indirection.
 .PP
 In each of the cases below, \fIword\fP is subject to tilde expansion,
 parameter expansion, command substitution, and arithmetic expansion.
-When not performing substring expansion, \fBbash\fP tests for a parameter
-that is unset or null; omitting the colon results in a test only for a
-parameter that is unset.
+.PP
+When not performing substring expansion, using the forms documented below,
+\fBbash\fP tests for a parameter that is unset or null.  Omitting the colon
+results in a test only for a parameter that is unset.
 .PP
 .PD 0
 .TP
@@ -2723,7 +2727,7 @@ to uppercase; the \fB,\fP operator converts matching uppercase letters
 to lowercase.
 The \fB^^\fP and \fB,,\fP expansions convert each matched character in the
 expanded value; the \fB^\fP and \fB,\fP expansions match and convert only
-the first character.
+the first character in the expanded value..
 If \fIpattern\fP is omitted, it is treated like a \fB?\fP, which matches
 every character.
 If
@@ -3173,7 +3177,7 @@ ls 2\fB>&\fP1 \fB>\fP dirlist
 .PP
 directs only the standard output to file
 .IR dirlist ,
-because the standard error was duplicated as standard output
+because the standard error was duplicated from the standard output
 before the standard output was redirected to
 .IR dirlist .
 .PP
@@ -5619,7 +5623,7 @@ variable is inserted at the beginning of the current line.
 If a numeric argument is supplied, this command acts as a toggle:  if
 the characters at the beginning of the line do not match the value
 of \fBcomment\-begin\fP, the value is inserted, otherwise
-the characters in \fBcomment-begin\fP are deleted from the beginning of 
+the characters in \fBcomment\-begin\fP are deleted from the beginning of 
 the line.
 In either case, the line is accepted as if a newline had been typed.
 The default value of
@@ -7636,6 +7640,10 @@ is supplied, or
 Exit a login shell.
 .TP
 \fBmapfile\fP [\fB\-n\fP \fIcount\fP] [\fB\-O\fP \fIorigin\fP] [\fB\-s\fP \fIcount\fP] [\fB\-t\fP] [\fB\-u\fP \fIfd\fP] [\fB\-C\fP \fIcallback\fP] [\fB\-c\fP \fIquantum\fP] [\fIarray\fP]
+.PD 0
+.TP
+\fBreadarray\fP [\fB\-n\fP \fIcount\fP] [\fB\-O\fP \fIorigin\fP] [\fB\-s\fP \fIcount\fP] [\fB\-t\fP] [\fB\-u\fP \fIfd\fP] [\fB\-C\fP \fIcallback\fP] [\fB\-c\fP \fIquantum\fP] [\fIarray\fP]
+.PD
 Read lines from the standard input into array variable
 .IR array ,
 or from file descriptor 
@@ -7685,6 +7693,10 @@ If
 is specified without 
 .BR \-c ,
 the default quantum is 5000.
+When \fIcallback\fP is evaluated, it is supplied the index of the next
+array element to be assigned as an additional argument.
+\fIcallback\fP is evaluated after the line is read but before the 
+array element is assigned.
 .PP
 If not supplied with an explicit origin, \fBmapfile\fP will clear \fIarray\fP
 before assigning to it.
@@ -7837,7 +7849,7 @@ The return status is 0 unless an error occurs while
 reading the name of the current directory or an
 invalid option is supplied.
 .TP
-\fBread\fP [\fB\-ers\fP] [\fB\-a\fP \fIaname\fP] [\fB\-d\fP \fIdelim\fP] [\fB\-\fP \fItext\fP] [\fB\-n\fP \fInchars\fP] [\fB\-p\fP \fIprompt\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-u\fP \fIfd\fP] [\fIname\fP ...]
+\fBread\fP [\fB\-ers\fP] [\fB\-a\fP \fIaname\fP] [\fB\-d\fP \fIdelim\fP] [\fB\-i\fP \fItext\fP] [\fB\-n\fP \fInchars\fP] [\fB\-p\fP \fIprompt\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-u\fP \fIfd\fP] [\fIname\fP ...]
 One line is read from the standard input, or from the file descriptor
 \fIfd\fP supplied as an argument to the \fB\-u\fP option, and the first word
 is assigned to the first
@@ -8021,7 +8033,10 @@ immediately, rather than before the next primary prompt.  This is
 effective only when job control is enabled.
 .TP 8
 .B \-e
-Exit immediately if a \fIsimple command\fP (see
+Exit immediately if a \fIpipeline\fP (which may consist of a single
+\fIsimple command\fP),  a \fIsubshell\fP command enclosed in parentheses,
+or one of the commands executed as part of a command list enclosed
+by braces (see
 .SM
 .B SHELL GRAMMAR
 above) exits with a non-zero status.
@@ -8031,21 +8046,25 @@ command that fails is part of the command list immediately following a
 or
 .B until
 keyword, 
-part of the test in an
+part of the test following the
 .B if
-statement, part of a command executed in a
+or
+.B elif
+reserved words, part of any command executed in a
 .B &&
 or
 .B \(bv\(bv
-list,
+list except the command following the final \fB&&\fP or \fB\(bv\(bv\fP,
 any command in a pipeline but the last,
 or if the command's return value is
-being inverted via
+being inverted with
 .BR ! .
-Failing simple commands that are part of shell functions or command lists
-enclosed in braces or parentheses satisfying the above conditions do not
-cause the shell to exit.
 A trap on \fBERR\fP, if set, is executed before the shell exits.
+This option applies to the shell environment and each subshell environment
+separately (see
+.B "COMMAND EXECUTION ENVIRONMENT"
+above), and may cause
+subshells to exit before executing all the commands in the subshell.
 .TP 8
 .B \-f
 Disable pathname expansion.
@@ -9037,7 +9056,7 @@ The maximum number of pending signals
 The maximum size that may be locked into memory
 .TP
 .B \-m
-The maximum resident set size
+The maximum resident set size (many systems do not honor this limit)
 .TP
 .B \-n
 The maximum number of open file descriptors (most systems do not
@@ -9312,7 +9331,7 @@ bfox@gnu.org
 .PP
 Chet Ramey, Case Western Reserve University
 .br
-chet@po.cwru.edu
+chet.ramey@case.edu
 .SH BUG REPORTS
 If you find a bug in
 .B bash,
diff --git a/doc/bash.html b/doc/bash.html
new file mode 100644 (file)
index 0000000..4841764
--- /dev/null
@@ -0,0 +1,12166 @@
+<HTML><HEAD>
+<TITLE>BASH(1) Manual Page</TITLE>
+</HEAD>
+<BODY><TABLE WIDTH=100%>
+<TR>
+<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2008 December 29<TH ALIGN=RIGHT width=33%>BASH(1)
+</TR>
+</TABLE>
+<BR><A HREF="#index">Index</A>
+<HR>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<A NAME="lbAB">&nbsp;</A>
+<H3>NAME</H3>
+
+bash - GNU Bourne-Again SHell
+<A NAME="lbAC">&nbsp;</A>
+<H3>SYNOPSIS</H3>
+
+<B>bash</B>
+
+[options]
+[file]
+<A NAME="lbAD">&nbsp;</A>
+<H3>COPYRIGHT</H3>
+
+
+Bash is Copyright &#169; 1989-2009 by the Free Software Foundation, Inc.
+<A NAME="lbAE">&nbsp;</A>
+<H3>DESCRIPTION</H3>
+
+<B>Bash</B>
+
+is an <B>sh</B>-compatible command language interpreter that
+executes commands read from the standard input or from a file.
+<B>Bash</B>
+
+also incorporates useful features from the <I>Korn</I> and <I>C</I>
+shells (<B>ksh</B> and <B>csh</B>).
+<P>
+
+<B>Bash</B>
+
+is intended to be a conformant implementation of the
+Shell and Utilities portion of the IEEE POSIX specification
+(IEEE Standard 1003.1).
+<B>Bash</B>
+
+can be configured to be POSIX-conformant by default.
+<A NAME="lbAF">&nbsp;</A>
+<H3>OPTIONS</H3>
+
+In addition to the single-character shell options documented in the
+description of the <B>set</B> builtin command, <B>bash</B>
+interprets the following options when it is invoked:
+<P>
+
+
+<DL COMPACT>
+<DT><B>-c</B><I> string</I>
+
+<DD>
+If the
+<B>-c</B>
+
+option is present, then commands are read from
+<I>string</I>.
+
+If there are arguments after the
+<I>string</I>,
+
+they are assigned to the positional parameters, starting with
+<B>$0</B>.
+
+<DT><B>-i</B>
+
+<DD>
+If the
+<B>-i</B>
+
+option is present, the shell is
+<I>interactive</I>.
+
+<DT><B>-l</B>
+
+<DD>
+Make
+<B>bash</B>
+
+act as if it had been invoked as a login shell (see
+<FONT SIZE=-1><B>INVOCATION</B>
+
+</FONT>
+below).
+<DT><B>-r</B>
+
+<DD>
+If the
+<B>-r</B>
+
+option is present, the shell becomes
+<I>restricted</I>
+
+(see
+<FONT SIZE=-1><B>RESTRICTED SHELL</B>
+
+</FONT>
+below).
+<DT><B>-s</B>
+
+<DD>
+If the
+<B>-s</B>
+
+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
+when invoking an interactive shell.
+<DT><B>-D</B>
+
+<DD>
+A list of all double-quoted strings preceded by <B>$</B>
+is printed on the standard output.
+These are the strings that
+are subject to language translation when the current locale
+is not <B>C</B> or <B>POSIX</B>.
+This implies the <B>-n</B> option; no commands will be executed.
+<DT><B>[-+]O [</B><I>shopt_option</I>]
+
+<DD>
+<I>shopt_option</I> is one of the shell options accepted by the
+<B>shopt</B> builtin (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+If <I>shopt_option</I> is present, <B>-O</B> sets the value of that option;
+<B>+O</B> unsets it.
+If <I>shopt_option</I> is not supplied, the names and values of the shell
+options accepted by <B>shopt</B> are printed on the standard output.
+If the invocation option is <B>+O</B>, the output is displayed in a format
+that may be reused as input.
+<DT><B>--</B>
+
+<DD>
+A
+<B>--</B>
+
+signals the end of options and disables further option processing.
+Any arguments after the
+<B>--</B>
+
+are treated as filenames and arguments.  An argument of
+<B>-</B>
+
+is equivalent to <B>--</B>.
+
+</DL>
+<P>
+
+<B>Bash</B>
+
+also interprets a number of multi-character options.
+These options must appear on the command line before the
+single-character options to be recognized.
+<P>
+
+
+<DL COMPACT>
+<DT><B>--debugger</B>
+
+<DD>
+Arrange for the debugger profile to be executed before the shell
+starts.
+Turns on extended debugging mode (see the description of the
+<B>extdebug</B>
+
+option to the
+<B>shopt</B>
+
+builtin below)
+and shell function tracing (see the description of the
+<B>-o functrace</B> option to the
+<B>set</B>
+
+builtin below).
+<DT><B>--dump-po-strings</B>
+
+<DD>
+Equivalent to <B>-D</B>, but the output is in the GNU <I>gettext</I>
+<B>po</B> (portable object) file format.
+<DT><B>--dump-strings</B>
+
+<DD>
+Equivalent to <B>-D</B>.
+<DT><B>--help</B>
+
+<DD>
+Display a usage message on standard output and exit successfully.
+<DT><B>--init-file</B> <I>file</I><DD>
+
+<DT><B>--rcfile</B> <I>file</I><DD>
+
+Execute commands from
+<I>file</I>
+
+instead of the standard personal initialization file
+<A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>
+
+if the shell is interactive (see
+<FONT SIZE=-1><B>INVOCATION</B>
+
+</FONT>
+below).
+<DT><B>--login</B>
+
+<DD>
+Equivalent to <B>-l</B>.
+<DT><B>--noediting</B>
+
+<DD>
+Do not use the GNU
+<B>readline</B>
+
+library to read command lines when the shell is interactive.
+<DT><B>--noprofile</B>
+
+<DD>
+Do not read either the system-wide startup file
+
+<A HREF="file:/etc/profile"><I>/etc/profile</I></A>
+
+or any of the personal initialization files
+<A HREF="file:~/.bash_profile"><I>~/.bash_profile</I></A>,
+
+<A HREF="file:~/.bash_login"><I>~/.bash_login</I></A>,
+
+or
+<A HREF="file:~/.profile"><I>~/.profile</I></A>.
+
+By default,
+<B>bash</B>
+
+reads these files when it is invoked as a login shell (see
+<FONT SIZE=-1><B>INVOCATION</B>
+
+</FONT>
+below).
+<DT><B>--norc</B>
+
+<DD>
+Do not read and execute the personal initialization file
+<A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>
+
+if the shell is interactive.
+This option is on by default if the shell is invoked as
+<B>sh</B>.
+
+<DT><B>--posix</B>
+
+<DD>
+Change the behavior of <B>bash</B> where the default operation differs
+from the POSIX standard to match the standard (<I>posix mode</I>).
+<DT><B>--restricted</B>
+
+<DD>
+The shell becomes restricted (see
+<FONT SIZE=-1><B>RESTRICTED SHELL</B>
+
+</FONT>
+below).
+<DT><B>--verbose</B>
+
+<DD>
+Equivalent to  <B>-v</B>.
+<DT><B>--version</B>
+
+<DD>
+Show version information for this instance of
+<B>bash</B>
+
+on the standard output and exit successfully.
+
+</DL>
+<A NAME="lbAG">&nbsp;</A>
+<H3>ARGUMENTS</H3>
+
+If arguments remain after option processing, and neither the
+<B>-c</B>
+
+nor the
+<B>-s</B>
+
+option has been supplied, the first argument is assumed to
+be the name of a file containing shell commands.
+If
+<B>bash</B>
+
+is invoked in this fashion, 
+<B>$0</B>
+
+is set to the name of the file, and the positional parameters
+are set to the remaining arguments.
+<B>Bash</B>
+
+reads and executes commands from this file, then exits.
+<B>Bash</B>'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.
+An attempt is first made to open the file in the current directory, and,
+if no file is found, then the shell searches the directories in
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+for the script.
+<A NAME="lbAH">&nbsp;</A>
+<H3>INVOCATION</H3>
+
+A <I>login shell</I> is one whose first character of argument zero is a
+<B>-</B>,
+
+or one started with the 
+<B>--login</B>
+
+option.
+<P>
+
+An <I>interactive</I> shell is one started without non-option arguments
+and without the
+<B>-c</B>
+
+option
+whose standard input and error are
+both connected to terminals (as determined by
+<I>isatty</I>(3)),
+
+or one started with the
+<B>-i</B>
+
+option.
+<FONT SIZE=-1><B>PS1</B>
+
+</FONT>
+is set and
+<B>$-</B>
+
+includes
+<B>i</B>
+
+if
+<B>bash</B>
+
+is interactive,
+allowing a shell script or a startup file to test this state.
+<P>
+
+The following paragraphs describe how
+<B>bash</B>
+
+executes its startup files.
+If any of the files exist but cannot be read,
+<B>bash</B>
+
+reports an error.
+Tildes are expanded in file names as described below under
+<B>Tilde Expansion</B>
+
+in the
+<FONT SIZE=-1><B>EXPANSION</B>
+
+</FONT>
+section.
+<P>
+
+When
+<B>bash</B>
+
+is invoked as an interactive login shell, or as a non-interactive shell
+with the <B>--login</B> option, it first reads and
+executes commands from the file <A HREF="file:/etc/profile"><I>/etc/profile</I></A>, if that
+file exists.
+After reading that file, it looks for <A HREF="file:~/.bash_profile"><I>~/.bash_profile</I></A>,
+<A HREF="file:~/.bash_login"><I>~/.bash_login</I></A>, and <A HREF="file:~/.profile"><I>~/.profile</I></A>, in that order, and reads
+and executes commands from the first one that exists and is readable.
+The
+<B>--noprofile</B>
+
+option may be used when the shell is started to inhibit this behavior.
+<P>
+
+When a login shell exits,
+<B>bash</B>
+
+reads and executes commands from the file <A HREF="file:~/.bash_logout"><I>~/.bash_logout</I></A>, if it
+exists.
+<P>
+
+When an interactive shell that is not a login shell is started,
+<B>bash</B>
+
+reads and executes commands from <A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>, if that file exists.
+This may be inhibited by using the
+<B>--norc</B>
+
+option.
+The <B>--rcfile</B> <I>file</I> option will force
+<B>bash</B>
+
+to read and execute commands from <I>file</I> instead of <A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>.
+<P>
+
+When
+<B>bash</B>
+
+is started non-interactively, to run a shell script, for example, it
+looks for the variable
+<FONT SIZE=-1><B>BASH_ENV</B>
+
+</FONT>
+in the environment, expands its value if it appears there, and uses the
+expanded value as the name of a file to read and execute.
+<B>Bash</B>
+
+behaves as if the following command were executed:
+<P>
+<DL COMPACT><DT><DD>
+<TT>if [ -n &quot;$BASH_ENV&quot; ]; then . &quot;$BASH_ENV&quot;; fi</TT>
+
+</DL>
+
+<P>
+but the value of the
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+variable is not used to search for the file name.
+<P>
+
+If
+<B>bash</B>
+
+is invoked with the name
+<B>sh</B>,
+
+it tries to mimic the startup behavior of historical versions of
+<B>sh</B>
+
+as closely as possible,
+while conforming to the POSIX standard as well.
+When invoked as an interactive login shell, or a non-interactive
+shell with the <B>--login</B> option, it first attempts to
+read and execute commands from
+<A HREF="file:/etc/profile"><I>/etc/profile</I></A>
+
+and
+<A HREF="file:~/.profile"><I>~/.profile</I></A>,
+
+in that order.
+The
+<B>--noprofile</B>
+
+option may be used to inhibit this behavior.
+When invoked as an interactive shell with the name
+<B>sh</B>,
+
+<B>bash</B>
+
+looks for the variable
+<FONT SIZE=-1><B>ENV</B>,
+
+</FONT>
+expands its value if it is defined, and uses the
+expanded value as the name of a file to read and execute.
+Since a shell invoked as
+<B>sh</B>
+
+does not attempt to read and execute commands from any other startup
+files, the
+<B>--rcfile</B>
+
+option has no effect.
+A non-interactive shell invoked with the name
+<B>sh</B>
+
+does not attempt to read any other startup files. 
+When invoked as
+<B>sh</B>,
+
+<B>bash</B>
+
+enters
+<I>posix</I>
+
+mode after the startup files are read.
+<P>
+
+When
+<B>bash</B>
+
+is started in
+<I>posix</I>
+
+mode, as with the
+<B>--posix</B>
+
+command line option, it follows the POSIX standard for startup files.
+In this mode, interactive shells expand the
+<FONT SIZE=-1><B>ENV</B>
+
+</FONT>
+variable and commands are read and executed from the file
+whose name is the expanded value.
+No other startup files are read.
+<P>
+
+<B>Bash</B>
+
+attempts to determine when it is being run with its standard input
+connected to a a network connection, as if by the remote shell
+daemon, usually <I>rshd</I>, or the secure shell daemon <I>sshd</I>.
+If
+<B>bash</B>
+
+determines it is being run in this fashion, it reads and executes
+commands from <A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>, if that file exists and is readable.
+It will not do this if invoked as <B>sh</B>.
+The
+<B>--norc</B>
+
+option may be used to inhibit this behavior, and the
+<B>--rcfile</B>
+
+option may be used to force another file to be read, but
+<I>rshd</I> does not generally invoke the shell with those options
+or allow them to be specified.
+<P>
+
+If the shell is started with the effective user (group) id not equal to the
+real user (group) id, and the <B>-p</B> option is not supplied, no startup
+files are read, shell functions are not inherited from the environment, the
+<FONT SIZE=-1><B>SHELLOPTS</B>
+
+</FONT>
+variable, if it appears in the environment, is ignored,
+and the effective user id is set to the real user id.
+If the <B>-p</B> option is supplied at invocation, the startup behavior is
+the same, but the effective user id is not reset.
+<A NAME="lbAI">&nbsp;</A>
+<H3>DEFINITIONS</H3>
+
+<P>
+
+The following definitions are used throughout the rest of this
+document.
+
+<DL COMPACT>
+<DT><B>blank </B>
+
+<DD>
+A space or tab.
+<DT><B>word</B>
+
+<DD>
+A sequence of characters considered as a single unit by the shell.
+Also known as a
+<B>token</B>.
+
+<DT><B>name</B>
+
+<DD>
+A 
+<I>word</I>
+
+consisting only of alphanumeric characters and underscores, and
+beginning with an alphabetic character or an underscore.  Also
+referred to as an
+<B>identifier</B>.
+
+<DT><B>metacharacter</B>
+
+<DD>
+A character that, when unquoted, separates words.  One of the following:
+<BR>
+
+<DL COMPACT><DT><DD>
+<P>
+
+<B>|  &amp;  ;  (  )  &lt;  &gt;  space  tab</B>
+
+</DL>
+
+</DL>
+<P>
+
+<DL COMPACT>
+<DT><B>control operator</B>
+
+<DD>
+A <I>token</I> that performs a control function.  It is one of the following
+symbols:
+<DL COMPACT><DT><DD>
+<P>
+
+<B>||  &amp;  &amp;&amp;  ;  ;;  (  )  |  |&amp;    &lt;newline&gt;</B>
+
+</DL>
+
+
+</DL>
+<A NAME="lbAJ">&nbsp;</A>
+<H3>RESERVED WORDS</H3>
+
+<I>Reserved words</I> are words that have a special meaning to the shell.
+The following words are recognized as reserved when unquoted and either
+the first word of a simple command (see
+<FONT SIZE=-1><B>SHELL GRAMMAR</B>
+
+</FONT>
+below) or the third word of a 
+<B>case </B>
+
+or
+<B>for</B>
+
+command:
+<DL COMPACT><DT><DD>
+
+<P>
+
+<B>
+</B>
+
+!    case    do    done    elif    else    esac    fi    for    function    if    in    select    then    until    while    {    }    time    [[    ]]
+</DL>
+
+
+<A NAME="lbAK">&nbsp;</A>
+<H3>SHELL GRAMMAR</H3>
+
+<A NAME="lbAL">&nbsp;</A>
+<H4>Simple Commands</H4>
+
+<P>
+
+A <I>simple command</I> is a sequence of optional variable assignments
+followed by <B>blank</B>-separated words and redirections, and
+terminated by a <I>control operator</I>.  The first word
+specifies the command to be executed, and is passed as argument zero.
+The remaining words are passed as arguments to the invoked command.
+<P>
+
+The return value of a <I>simple command</I> is its exit status, or
+128+<I>n</I> if the command is terminated by signal
+<I>n</I>.
+
+<A NAME="lbAM">&nbsp;</A>
+<H4>Pipelines</H4>
+
+<P>
+
+A <I>pipeline</I> is a sequence of one or more commands separated by
+one of the control operators
+<B>|</B>
+
+or <B>|&amp;</B>.
+The format for a pipeline is:
+<DL COMPACT><DT><DD>
+<P>
+
+[<B>time</B> [<B>-p</B>]] [ ! ] <I>command</I> [ [<B>|</B>|<B>|&amp;</B>] <I>command2</I> ... ]
+</DL>
+
+<P>
+
+The standard output of
+<I>command</I>
+
+is connected via a pipe to the standard input of
+<I>command2</I>.
+
+This connection is performed before any redirections specified by the
+command (see
+<FONT SIZE=-1><B>REDIRECTION</B>
+
+</FONT>
+below).
+If <B>|&amp;</B> is used, the standard error of <I>command</I> is connected to
+<I>command2</I>'s standard input through the pipe; it is shorthand for
+<B>2&gt;&amp;1 |</B>.
+This implicit redirection of the standard error is performed after any
+redirections specified by the command.
+<P>
+
+The return status of a pipeline is the exit status of the last
+command, unless the <B>pipefail</B> option is enabled.
+If <B>pipefail</B> is enabled, the pipeline's return status is the
+value of the last (rightmost) command to exit with a non-zero status,
+or zero if all commands exit successfully.
+If the reserved word
+<B>!</B>
+
+precedes a pipeline, the exit status of that pipeline is the logical
+negation of the exit status as described above.
+The shell waits for all commands in the pipeline to
+terminate before returning a value.
+<P>
+
+If the
+<B>time</B>
+
+reserved word precedes a pipeline, the elapsed as well as user and
+system time consumed by its execution are reported when the pipeline
+terminates.
+The <B>-p</B> option changes the output format to that specified by POSIX.
+The
+<FONT SIZE=-1><B>TIMEFORMAT</B>
+
+</FONT>
+variable may be set to a format string that specifies how the timing
+information should be displayed; see the description of
+<FONT SIZE=-1><B>TIMEFORMAT</B>
+
+</FONT>
+under
+<B>Shell Variables</B>
+
+below.
+<P>
+
+Each command in a pipeline is executed as a separate process (i.e., in a
+subshell).
+<A NAME="lbAN">&nbsp;</A>
+<H4>Lists</H4>
+
+<P>
+
+A <I>list</I> is a sequence of one or more pipelines separated by one
+of the operators
+<B>;</B>,
+
+<B>&amp;</B>,
+
+<B>&amp;&amp;</B>,
+
+or
+<B>||</B>,
+
+and optionally terminated by one of
+<B>;</B>,
+
+<B>&amp;</B>,
+
+or
+<B>&lt;newline&gt;</B>.
+
+<P>
+
+Of these list operators,
+<B>&amp;&amp;</B>
+
+and
+<B>||</B>
+
+have equal precedence, followed by
+<B>;</B>
+
+and
+<B>&amp;</B>,
+
+which have equal precedence.
+<P>
+
+A sequence of one or more newlines may appear in a <I>list</I> instead
+of a semicolon to delimit commands.
+<P>
+
+If a command is terminated by the control operator
+<B>&amp;</B>,
+
+the shell executes the command in the <I>background</I>
+in a subshell.  The shell does not wait for the command to
+finish, and the return status is 0.  Commands separated by a
+<B>;</B>
+
+are executed sequentially; the shell waits for each
+command to terminate in turn.  The return status is the
+exit status of the last command executed.
+<P>
+
+AND and OR lists are sequences of one of more pipelines separated by the
+<B>&amp;&amp;</B> and <B>||</B> control operators, respectively.
+AND and OR lists are executed with left associativity.
+An AND list has the form
+<DL COMPACT><DT><DD>
+<P>
+
+<I>command1</I> <B>&amp;&amp;</B> <I>command2</I>
+</DL>
+
+<P>
+
+<I>command2</I>
+
+is executed if, and only if,
+<I>command1</I>
+
+returns an exit status of zero.
+<P>
+
+An OR list has the form
+<DL COMPACT><DT><DD>
+<P>
+
+<I>command1</I> <B>||</B> <I>command2</I>
+<P>
+
+</DL>
+
+<P>
+
+<I>command2</I>
+
+is executed if and only if
+<I>command1</I>
+
+returns a non-zero exit status.
+The return status of
+AND and OR lists is the exit status of the last command
+executed in the list.
+<A NAME="lbAO">&nbsp;</A>
+<H4>Compound Commands</H4>
+
+<P>
+
+A <I>compound command</I> is one of the following:
+<DL COMPACT>
+<DT>(<I>list</I>)<DD>
+<I>list</I> is executed in a subshell environment (see
+<FONT SIZE=-1><B>COMMAND EXECUTION ENVIRONMENT</B></FONT>
+below).
+Variable assignments and builtin
+commands that affect the shell's environment do not remain in effect
+after the command completes.  The return status is the exit status of
+<I>list</I>.
+<DT>{ <I>list</I>; }<DD>
+<I>list</I> is simply executed in the current shell environment.
+<I>list</I> must be terminated with a newline or semicolon.
+This is known as a <I>group command</I>.
+The return status is the exit status of
+<I>list</I>.
+Note that unlike the metacharacters <B>(</B> and <B>)</B>, <B>{</B> and
+<B>}</B> are <I>reserved words</I> and must occur where a reserved
+word is permitted to be recognized.  Since they do not cause a word
+break, they must be separated from <I>list</I> by whitespace or another
+shell metacharacter.
+<DT>((<I>expression</I>))<DD>
+The <I>expression</I> is evaluated according to the rules described
+below under
+<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>.
+
+</FONT>
+If the value of the expression is non-zero, the return status is 0;
+otherwise the return status is 1.  This is exactly equivalent to
+<B>let &quot;</B><I>expression</I>&quot;.
+<DT><B>[[</B> <I>expression</I> <B>]]</B><DD>
+Return a status of 0 or 1 depending on the evaluation of
+the conditional expression <I>expression</I>.
+Expressions are composed of the primaries described below under
+<FONT SIZE=-1><B>CONDITIONAL EXPRESSIONS</B>.
+
+</FONT>
+Word splitting and pathname expansion are not performed on the words
+between the <B>[[</B> and <B>]]</B>; tilde expansion, parameter and
+variable expansion, arithmetic expansion, command substitution, process
+substitution, and quote removal are performed.
+Conditional operators such as <B>-f</B> must be unquoted to be recognized
+as primaries.
+<P>
+
+
+When the <B>==</B> and <B>!=</B> operators are used, the string to the
+right of the operator is considered a pattern and matched according
+to the rules described below under <B>Pattern Matching</B>.
+If the shell option
+<B>nocasematch</B>
+
+is enabled, the match is performed without regard to the case
+of alphabetic characters.
+The return value is 0 if the string matches (<B>==</B>) or does not match
+(<B>!=</B>) the pattern, and 1 otherwise.
+Any part of the pattern may be quoted to force it to be matched as a
+string.
+<P>
+
+
+An additional binary operator, <B>=~</B>, is available, with the same
+precedence as <B>==</B> and <B>!=</B>.
+When it is used, the string to the right of the operator is considered
+an extended regular expression and matched accordingly (as in <I>regex</I>(3)).  
+The return value is 0 if the string matches
+the pattern, and 1 otherwise.
+If the regular expression is syntactically incorrect, the conditional
+expression's return value is 2.
+If the shell option
+<B>nocasematch</B>
+
+is enabled, the match is performed without regard to the case
+of alphabetic characters.
+Any part of the pattern may be quoted to force it to be matched as a
+string.
+Substrings matched by parenthesized subexpressions within the regular
+expression are saved in the array variable <B>BASH_REMATCH</B>.
+The element of <B>BASH_REMATCH</B> with index 0 is the portion of the string
+matching the entire regular expression.
+The element of <B>BASH_REMATCH</B> with index <I>n</I> is the portion of the
+string matching the <I>n</I>th parenthesized subexpression.
+<P>
+
+
+Expressions may be combined using the following operators, listed
+in decreasing order of precedence:
+<P>
+
+
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>( </B><I>expression</I> )
+
+<DD>
+Returns the value of <I>expression</I>.
+This may be used to override the normal precedence of operators.
+<DT><B>! </B><I>expression</I>
+
+<DD>
+True if
+<I>expression</I>
+
+is false.
+<DT><I>expression1</I> <B>&amp;&amp;</B> <I>expression2</I><DD>
+True if both
+<I>expression1</I>
+
+and
+<I>expression2</I>
+
+are true.
+<DT><I>expression1</I> <B>||</B> <I>expression2</I>
+<DD>
+
+True if either
+<I>expression1</I>
+
+or
+<I>expression2</I>
+
+is true.
+
+</DL>
+<P>
+
+The <B>&amp;&amp;</B> and
+<B>||</B>
+
+operators do not evaluate <I>expression2</I> if the value of
+<I>expression1</I> is sufficient to determine the return value of
+the entire conditional expression.
+</DL>
+
+<DT><B>for</B> <I>name</I> [ <B>in</B> <I>word</I> ] ; <B>do</B> <I>list</I> ; <B>done</B><DD>
+The list of words following <B>in</B> is expanded, generating a list
+of items.
+The variable <I>name</I> is set to each element of this list
+in turn, and <I>list</I> is executed each time.
+If the <B>in</B> <I>word</I> is omitted, the <B>for</B> command executes
+<I>list</I> once for each positional parameter that is set (see
+<FONT SIZE=-1><B>PARAMETERS</B>
+
+</FONT>
+below).
+The return status is the exit status of the last command that executes.
+If the expansion of the items following <B>in</B> results in an empty
+list, no commands are executed, and the return status is 0.
+<DT><B>for</B> (( <I>expr1</I> ; <I>expr2</I> ; <I>expr3</I> )) ; <B>do</B> <I>list</I> ; <B>done</B><DD>
+First, the arithmetic expression <I>expr1</I> is evaluated according
+to the rules described below under
+<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>.
+
+</FONT>
+The arithmetic expression <I>expr2</I> is then evaluated repeatedly
+until it evaluates to zero.
+Each time <I>expr2</I> evaluates to a non-zero value, <I>list</I> is
+executed and the arithmetic expression <I>expr3</I> is evaluated.
+If any expression is omitted, it behaves as if it evaluates to 1.
+The return value is the exit status of the last command in <I>list</I>
+that is executed, or false if any of the expressions is invalid.
+<DT><B>select</B> <I>name</I> [ <B>in</B> <I>word</I> ] ; <B>do</B> <I>list</I> ; <B>done</B><DD>
+The list of words following <B>in</B> is expanded, generating a list
+of items.  The set of expanded words is printed on the standard
+error, each preceded by a number.  If the <B>in</B>
+<I>word</I> is omitted, the positional parameters are printed (see
+<FONT SIZE=-1><B>PARAMETERS</B>
+
+</FONT>
+below).  The
+<B>PS3</B>
+
+prompt is then displayed and a line read from the standard input.
+If the line consists of a number corresponding to one of
+the displayed words, then the value of
+<I>name</I>
+
+is set to that word.  If the line is empty, the words and prompt
+are displayed again.  If EOF is read, the command completes.  Any
+other value read causes
+<I>name</I>
+
+to be set to null.  The line read is saved in the variable
+<B>REPLY</B>.
+
+The
+<I>list</I>
+
+is executed after each selection until a
+<B>break</B>
+
+command is executed.
+The exit status of
+<B>select</B>
+
+is the exit status of the last command executed in
+<I>list</I>,
+
+or zero if no commands were executed.
+<DT><B>case</B> <I>word</I> <B>in</B> [ [(] <I>pattern</I> [ <B>|</B> <I>pattern</I> ] 
+<DD>
+A <B>case</B> command first expands <I>word</I>, and tries to match
+it against each <I>pattern</I> in turn, using the same matching rules
+as for pathname expansion (see
+<B>Pathname Expansion</B>
+
+below).
+The <I>word</I> is expanded using tilde
+expansion, parameter and variable expansion, arithmetic substitution,
+command substitution, process substitution and quote removal.
+Each <I>pattern</I> examined is expanded using tilde
+expansion, parameter and variable expansion, arithmetic substitution,
+command substitution, and process substitution.
+If the shell option
+<B>nocasematch</B>
+
+is enabled, the match is performed without regard to the case
+of alphabetic characters.
+When a match is found, the corresponding <I>list</I> is executed.
+If the <B>;;</B> operator is used, no subsequent matches are attempted after
+the first pattern match.
+Using <B>;&amp;</B> in place of <B>;;</B> causes execution to continue with
+the <I>list</I> associated with the next set of patterns.
+Using <B>;;&amp;</B> in place of <B>;;</B> causes the shell to test the next
+pattern list in the statement, if any, and execute any associated <I>list</I>
+on a successful match.
+The exit status is zero if no
+pattern matches.  Otherwise, it is the exit status of the
+last command executed in <I>list</I>.
+<DT><B>if</B> <I>list</I>; <B>then</B> <I>list;</I> [ <B>elif</B> <I>list</I>; <B>then</B> <I>list</I>; ] ... [ <B>else</B> <I>list</I>; ] <B>fi</B><DD>
+The
+<B>if </B>
+
+<I>list</I>
+
+is executed.  If its exit status is zero, the
+<B>then</B> <I>list</I> is executed.  Otherwise, each <B>elif</B>
+<I>list</I> is executed in turn, and if its exit status is zero,
+the corresponding <B>then</B> <I>list</I> is executed and the
+command completes.  Otherwise, the <B>else</B> <I>list</I> is
+executed, if present.  The exit status is the exit status of the
+last command executed, or zero if no condition tested true.
+<DT><B>while</B> <I>list</I>; <B>do</B> <I>list</I>; <B>done</B><DD>
+
+<DT><B>until</B> <I>list</I>; <B>do</B> <I>list</I>; <B>done</B><DD>
+
+The <B>while</B> command continuously executes the <B>do</B>
+<I>list</I> as long as the last command in <I>list</I> returns
+an exit status of zero.  The <B>until</B> command is identical
+to the <B>while</B> command, except that the test is negated;
+the
+<B>do</B>
+
+<I>list</I>
+
+is executed as long as the last command in
+<I>list</I>
+
+returns a non-zero exit status.
+The exit status of the <B>while</B> and <B>until</B> commands
+is the exit status
+of the last <B>do</B> <I>list</I> command executed, or zero if
+none was executed.
+</DL>
+<A NAME="lbAP">&nbsp;</A>
+<H4>Coprocesses</H4>
+
+<P>
+
+A <I>coprocess</I> is a shell command preceded by the <B>coproc</B> reserved
+word.
+A coprocess is executed asynchronously in a subshell, as if the command
+had been terminated with the <B>&amp;</B> control operator, with a two-way pipe
+established between the executing shell and the coprocess.
+<P>
+
+The format for a coprocess is:
+<DL COMPACT><DT><DD>
+<P>
+
+<B>coproc</B> [<I>NAME</I>] <I>command</I> [<I>redirections</I>]
+</DL>
+
+<P>
+
+This creates a coprocess named <I>NAME</I>.
+If <I>NAME</I> is not supplied, the default name is <I>COPROC</I>.
+<I>NAME</I> must not be supplied if <I>command</I> is a <I>simple
+command</I> (see above); otherwise, it is interpreted as the first word
+of the simple command.
+When the coproc is executed, the shell creates an array variable (see
+<B>Arrays</B>
+
+below) named <I>NAME</I> in the context of the executing shell.
+The standard output of
+<I>command</I>
+
+is connected via a pipe to a file descriptor in the executing shell,
+and that file descriptor is assigned to <I>NAME</I>[0].
+The standard input of
+<I>command</I>
+
+is connected via a pipe to a file descriptor in the executing shell,
+and that file descriptor is assigned to <I>NAME</I>[1].
+This pipe is established before any redirections specified by the
+command (see
+<FONT SIZE=-1><B>REDIRECTION</B>
+
+</FONT>
+below).
+The file descriptors can be utilized as arguments to shell commands
+and redirections using standard word expansions.
+The process id of the shell spawned to execute the coprocess is
+available as the value of the variable <I>NAME</I>_PID.
+The <B>wait</B>
+builtin command may be used to wait for the coprocess to terminate.
+<P>
+
+The return status of a coprocess is the exit status of <I>command</I>.
+<A NAME="lbAQ">&nbsp;</A>
+<H4>Shell Function Definitions</H4>
+
+<P>
+
+A shell function is an object that is called like a simple command and
+executes a compound command with a new set of positional parameters.
+Shell functions are declared as follows:
+<DL COMPACT>
+<DT>[ <B>function</B> ] <I>name</I> () <I>compound-command</I> [<I>redirection</I>]<DD>
+This defines a function named <I>name</I>.
+The reserved word <B>function</B> is optional.
+If the <B>function</B> reserved word is supplied, the parentheses are optional.
+The <I>body</I> of the function is the compound command
+<I>compound-command </I>
+
+(see <B>Compound Commands</B> above).
+That command is usually a <I>list</I> of commands between { and }, but
+may be any command listed under <B>Compound Commands</B> above.
+<I>compound-command</I> is executed whenever <I>name</I> is specified as the
+name of a simple command.
+Any redirections (see
+<FONT SIZE=-1><B>REDIRECTION</B>
+
+</FONT>
+below) specified when a function is defined are performed
+when the function is executed.
+The exit status of a function definition is zero unless a syntax error
+occurs or a readonly function with the same name already exists.
+When executed, the exit status of a function is the exit status of the
+last command executed in the body.  (See
+<FONT SIZE=-1><B>FUNCTIONS</B>
+
+</FONT>
+below.)
+</DL>
+<A NAME="lbAR">&nbsp;</A>
+<H3>COMMENTS</H3>
+
+In a non-interactive shell, or an interactive shell in which the
+<B>interactive_comments</B>
+
+option to the
+<B>shopt</B>
+
+builtin is enabled (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below), a word beginning with
+<B>#</B>
+
+causes that word and all remaining characters on that line to
+be ignored.  An interactive shell without the
+<B>interactive_comments</B>
+
+option enabled does not allow comments.  The
+<B>interactive_comments</B>
+
+option is on by default in interactive shells.
+<A NAME="lbAS">&nbsp;</A>
+<H3>QUOTING</H3>
+
+<I>Quoting</I> is used to remove the special meaning of certain
+characters or words to the shell.  Quoting can be used to 
+disable special treatment for special characters, to prevent
+reserved words from being recognized as such, and to prevent
+parameter expansion.
+<P>
+
+Each of the <I>metacharacters</I> listed above under
+<FONT SIZE=-1><B>DEFINITIONS</B>
+
+</FONT>
+has special meaning to the shell and must be quoted if it is to
+represent itself.
+<P>
+
+When the command history expansion facilities are being used
+(see
+<FONT SIZE=-1><B>HISTORY EXPANSION</B>
+
+</FONT>
+below), the
+<I>history expansion</I> character, usually <B>!</B>, must be quoted
+to prevent history expansion.
+<P>
+
+There are three quoting mechanisms: the
+<I>escape character</I>,
+
+single quotes, and double quotes.
+<P>
+
+A non-quoted backslash (<B>\</B>) is the
+<I>escape character</I>.
+
+It preserves the literal value of the next character that follows,
+with the exception of &lt;newline&gt;.  If a <B>\</B>&lt;newline&gt; pair
+appears, and the backslash is not itself quoted, the <B>\</B>&lt;newline&gt;
+is treated as a line continuation (that is, it is removed from the
+input stream and effectively ignored).
+<P>
+
+Enclosing characters in single quotes preserves the literal value
+of each character within the quotes.  A single quote may not occur
+between single quotes, even when preceded by a backslash.
+<P>
+
+Enclosing characters in double quotes preserves the literal value
+of all characters within the quotes, with the exception of
+<B>$</B>,
+
+<B>`</B>,
+
+<B>\</B>,
+
+and, when history expansion is enabled,
+<B>!</B>.
+
+The characters
+<B>$</B>
+
+and
+<B>`</B>
+
+retain their special meaning within double quotes.  The backslash
+retains its special meaning only when followed by one of the following
+characters:
+<B>$</B>,
+
+<B>`</B>,
+
+<B>&quot;</B>,
+<B>\</B>,
+
+or
+<B>&lt;newline&gt;</B>.
+
+A double quote may be quoted within double quotes by preceding it with
+a backslash.
+If enabled, history expansion will be performed unless an
+<B>!</B>
+
+appearing in double quotes is escaped using a backslash.
+The backslash preceding the
+<B>!</B>
+
+is not removed.
+<P>
+
+The special parameters
+<B>*</B>
+
+and
+<B>@</B>
+
+have special meaning when in double
+quotes (see
+<FONT SIZE=-1><B>PARAMETERS</B>
+
+</FONT>
+below).
+<P>
+
+Words of the form <B>$</B>aq<I>string</I>aq are treated specially.  The
+word expands to <I>string</I>, with backslash-escaped characters replaced
+as specified by the ANSI C standard.  Backslash escape sequences, if
+present, are decoded as follows:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>\a</B>
+
+<DD>
+alert (bell)
+<DT><B>\b</B>
+
+<DD>
+backspace
+<DT><B>\e</B>
+
+<DD>
+an escape character
+<DT><B>\f</B>
+
+<DD>
+form feed
+<DT><B>\n</B>
+
+<DD>
+new line
+<DT><B>\r</B>
+
+<DD>
+carriage return
+<DT><B>\t</B>
+
+<DD>
+horizontal tab
+<DT><B>\v</B>
+
+<DD>
+vertical tab
+<DT><B>\\</B>
+
+<DD>
+backslash
+<DT><B>\aq</B>
+
+<DD>
+single quote
+<DT><B>\</B><I>nnn</I>
+
+<DD>
+the eight-bit character whose value is the octal value <I>nnn</I>
+(one to three digits)
+<DT><B>\x</B><I>HH</I>
+
+<DD>
+the eight-bit character whose value is the hexadecimal value <I>HH</I>
+(one or two hex digits)
+<DT><B>\c</B><I>x</I>
+
+<DD>
+a control-<I>x</I> character
+
+</DL></DL>
+
+<P>
+
+The expanded result is single-quoted, as if the dollar sign had
+not been present.
+<P>
+
+A double-quoted string preceded by a dollar sign (<B>$</B>) will cause
+the string to be translated according to the current locale.
+If the current locale is <B>C</B> or <B>POSIX</B>, the dollar sign
+is ignored.
+If the string is translated and replaced, the replacement is
+double-quoted.
+<A NAME="lbAT">&nbsp;</A>
+<H3>PARAMETERS</H3>
+
+A
+<I>parameter</I>
+
+is an entity that stores values.
+It can be a
+<I>name</I>,
+
+a number, or one of the special characters listed below under
+<B>Special Parameters</B>.
+
+A
+<I>variable</I>
+
+is a parameter denoted by a
+<I>name</I>.
+
+A variable has a <I>value</I> and zero or more <I>attributes</I>.
+Attributes are assigned using the
+<B>declare</B>
+
+builtin command (see
+<B>declare</B>
+
+below in
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>).
+
+</FONT>
+<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
+the
+<B>unset</B>
+
+builtin command (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+<P>
+
+A
+<I>variable</I>
+
+may be assigned to by a statement of the form
+<DL COMPACT><DT><DD>
+<P>
+
+<I>name</I>=[<I>value</I>]
+</DL>
+
+<P>
+
+If
+<I>value</I>
+
+is not given, the variable is assigned the null string.  All
+<I>values</I>
+
+undergo tilde expansion, parameter and variable expansion,
+command substitution, arithmetic expansion, and quote
+removal (see
+<FONT SIZE=-1><B>EXPANSION</B>
+
+</FONT>
+below).  If the variable has its
+<B>integer</B>
+
+attribute set, then
+<I>value</I>
+
+is evaluated as an arithmetic expression even if the $((...)) expansion is
+not used (see
+<B>Arithmetic Expansion</B>
+
+below).
+Word splitting is not performed, with the exception
+of <B>&quot;$@&quot;</B> as explained below under
+<B>Special Parameters</B>.
+
+Pathname expansion is not performed.
+Assignment statements may also appear as arguments to the
+<B>alias</B>,
+
+<B>declare</B>,
+
+<B>typeset</B>,
+
+<B>export</B>,
+
+<B>readonly</B>,
+
+and
+<B>local</B>
+
+builtin commands.
+<P>
+
+In the context where an assignment statement is assigning a value
+to a shell variable or array index, the += operator can be used to
+append to or add to the variable's previous value.
+When += is applied to a variable for which the integer attribute has been
+set, <I>value</I> is evaluated as an arithmetic expression and added to the
+variable's current value, which is also evaluated.
+When += is applied to an array variable using compound assignment (see
+<B>Arrays</B>
+
+below), the
+variable's value is not unset (as it is when using =), and new values are
+appended to the array beginning at one greater than the array's maximum index
+(for indexed arrays) or added as additional key-value pairs in an
+associative array.
+When applied to a string-valued variable, <I>value</I> is expanded and
+appended to the variable's value.
+<A NAME="lbAU">&nbsp;</A>
+<H4>Positional Parameters</H4>
+
+<P>
+
+A
+<I>positional parameter</I>
+
+is a parameter denoted by one or more
+digits, other than the single digit 0.  Positional parameters are
+assigned from the shell's arguments when it is invoked,
+and may be reassigned using the
+<B>set</B>
+
+builtin command.  Positional parameters may not be assigned to
+with assignment statements.  The positional parameters are
+temporarily replaced when a shell function is executed (see
+<FONT SIZE=-1><B>FUNCTIONS</B>
+
+</FONT>
+below).
+<P>
+
+When a positional parameter consisting of more than a single
+digit is expanded, it must be enclosed in braces (see
+<FONT SIZE=-1><B>EXPANSION</B>
+
+</FONT>
+below).
+<A NAME="lbAV">&nbsp;</A>
+<H4>Special Parameters</H4>
+
+<P>
+
+The shell treats several parameters specially.  These parameters may
+only be referenced; assignment to them is not allowed.
+
+<DL COMPACT>
+<DT><B>*</B>
+
+<DD>
+Expands to the positional parameters, starting from one.  When the
+expansion occurs within double quotes, it expands to a single word
+with the value of each parameter separated by the first character
+of the 
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+special variable.  That is, &quot;<B>$*</B>&quot; is equivalent
+to &quot;<B>$1</B><I>c</I><B>$2</B><I>c</I><B>...</B>&quot;, where
+<I>c</I>
+
+is the first character of the value of the
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+variable.  If
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+is unset, the parameters are separated by spaces.
+If
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+is null, the parameters are joined without intervening separators.
+<DT><B>@</B>
+
+<DD>
+Expands to the positional parameters, starting from one.  When the
+expansion occurs within double quotes, each parameter expands to a
+separate word.  That is, &quot;<B>$@</B>&quot; is equivalent to
+&quot;<B>$1</B>&quot; &quot;<B>$2</B>&quot; ...
+If the double-quoted expansion occurs within a word, the expansion of
+the first parameter is joined with the beginning part of the original
+word, and the expansion of the last parameter is joined with the last
+part of the original word.
+When there are no positional parameters, &quot;<B>$@</B>&quot; and 
+<B>$@</B>
+
+expand to nothing (i.e., they are removed).
+<DT><B>#</B>
+
+<DD>
+Expands to the number of positional parameters in decimal.
+<DT><B>?</B>
+
+<DD>
+Expands to the exit status of the most recently executed foreground
+pipeline.
+<DT><B>-</B>
+
+<DD>
+Expands to the current option flags as specified upon invocation, 
+by the
+<B>set</B>
+
+builtin command, or those set by the shell itself
+(such as the
+<B>-i</B>
+
+option).
+<DT><B>$</B>
+
+<DD>
+Expands to the process ID of the shell.  In a () subshell, it
+expands to the process ID of the current shell, not the
+subshell.
+<DT><B>!</B>
+
+<DD>
+Expands to the process ID of the most recently executed background
+(asynchronous) command.
+<DT><B>0</B>
+
+<DD>
+Expands to the name of the shell or shell script.  This is set at
+shell initialization.  If
+<B>bash</B>
+
+is invoked with a file of commands,
+<B>$0</B>
+
+is set to the name of that file.  If
+<B>bash</B>
+
+is started with the
+<B>-c</B>
+
+option, then
+<B>$0</B>
+
+is set to the first argument after the string to be
+executed, if one is present.  Otherwise, it is set
+to the file name used to invoke
+<B>bash</B>,
+
+as given by argument zero.
+<DT><B>_</B>
+
+<DD>
+At shell startup, set to the absolute pathname used to invoke the
+shell or shell script being executed as passed in the environment
+or argument list.
+Subsequently, expands to the last argument to the previous command,
+after expansion.
+Also set to the full pathname used to invoke each command executed
+and placed in the environment exported to that command.
+When checking mail, this parameter holds the name of the mail file
+currently being checked.
+
+</DL>
+<A NAME="lbAW">&nbsp;</A>
+<H4>Shell Variables</H4>
+
+<P>
+
+The following variables are set by the shell:
+<P>
+
+
+<DL COMPACT>
+<DT><B>BASH</B>
+
+<DD>
+Expands to the full file name used to invoke this instance of
+<B>bash</B>.
+
+<DT><B>BASHPID</B>
+
+<DD>
+Expands to the process id of the current <B>bash</B> process.
+This differs from <B>$$</B> under certain circumstances, such as subshells
+that do not require <B>bash</B> to be re-initialized.
+<DT><B>BASH_ALIASES</B>
+
+<DD>
+An associative array variable whose members correspond to the internal
+list of aliases as maintained by the <B>alias</B> builtin
+Elements added to this array appear in the alias list; unsetting array
+elements cause aliases to be removed from the alias list.
+<DT><B>BASH_ARGC</B>
+
+<DD>
+An array variable whose values are the number of parameters in each
+frame of the current <B>bash</B> execution call stack.
+The number of
+parameters to the current subroutine (shell function or script executed
+with <B>.</B> or <B>source</B>) is at the top of the stack.
+When a subroutine is executed, the number of parameters passed is pushed onto
+<B>BASH_ARGC</B>.
+The shell sets <B>BASH_ARGC</B> only when in extended debugging mode
+(see the description of the
+<B>extdebug</B>
+
+option to the
+<B>shopt</B>
+
+builtin below)
+<DT><B>BASH_ARGV</B>
+
+<DD>
+An array variable containing all of the parameters in the current <B>bash</B>
+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
+at the bottom.  When a subroutine is executed, the parameters supplied
+are pushed onto <B>BASH_ARGV</B>.
+The shell sets <B>BASH_ARGV</B> only when in extended debugging mode
+(see the description of the
+<B>extdebug</B>
+
+option to the
+<B>shopt</B>
+
+builtin below)
+<DT><B>BASH_CMDS</B>
+
+<DD>
+An associative array variable whose members correspond to the internal
+hash table of commands as maintained by the <B>hash</B> builtin.
+Elements added to this array appear in the hash table; unsetting array
+elements cause commands to be removed from the hash table.
+<DT><B>BASH_COMMAND</B>
+
+<DD>
+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.
+<DT><B>BASH_EXECUTION_STRING</B>
+
+<DD>
+The command argument to the <B>-c</B> invocation option.
+<DT><B>BASH_LINENO</B>
+
+<DD>
+An array variable whose members are the line numbers in source files
+corresponding to each member of <B>FUNCNAME</B>.
+<B>${BASH_LINENO[</B><I>$i</I><B>]}</B> is the line number in the source
+file where <B>${FUNCNAME[</B><I>$i</I><B>]}</B> was called
+(or <B>${BASH_LINENO[</B><I>$i-1</I><B>]}</B> if referenced within another
+shell function).
+The corresponding source file name is <B>${BASH_SOURCE[</B><I>$i</I><B>]}.
+Use LINENO</B> to obtain the current line number.
+<DT><B>BASH_REMATCH</B>
+
+<DD>
+An array variable whose members are assigned by the <B>=~</B> binary
+operator to the <B>[[</B> conditional command.
+The element with index 0 is the portion of the string
+matching the entire regular expression.
+The element with index <I>n</I> is the portion of the
+string matching the <I>n</I>th parenthesized subexpression.
+This variable is read-only.
+<DT><B>BASH_SOURCE</B>
+
+<DD>
+An array variable whose members are the source filenames corresponding
+to the elements in the <B>FUNCNAME</B> array variable.
+<DT><B>BASH_SUBSHELL</B>
+
+<DD>
+Incremented by one each time a subshell or subshell environment is spawned.
+The initial value is 0.
+<DT><B>BASH_VERSINFO</B>
+
+<DD>
+A readonly array variable whose members hold version information for
+this instance of
+<B>bash</B>.
+
+The values assigned to the array members are as follows:
+<P>
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>BASH_VERSINFO[</B>0]
+
+<DD>
+The major version number (the <I>release</I>).
+<DT><B>BASH_VERSINFO[</B>1]
+
+<DD>
+The minor version number (the <I>version</I>).
+<DT><B>BASH_VERSINFO[</B>2]
+
+<DD>
+The patch level.
+<DT><B>BASH_VERSINFO[</B>3]
+
+<DD>
+The build version.
+<DT><B>BASH_VERSINFO[</B>4]
+
+<DD>
+The release status (e.g., <I>beta1</I>).
+<DT><B>BASH_VERSINFO[</B>5]
+
+<DD>
+The value of <B>MACHTYPE</B>.
+
+</DL></DL>
+
+<DT><B>BASH_VERSION</B>
+
+<DD>
+Expands to a string describing the version of this instance of
+<B>bash</B>.
+
+<DT><B>COMP_CWORD</B>
+
+<DD>
+An index into <B>${COMP_WORDS}</B> of the word containing the current
+cursor position.
+This variable is available only in shell functions invoked by the
+programmable completion facilities (see <B>Programmable Completion</B>
+below).
+<DT><B>COMP_KEY</B>
+
+<DD>
+The key (or final key of a key sequence) used to invoke the current
+completion function.
+<DT><B>COMP_LINE</B>
+
+<DD>
+The current command line.
+This variable is available only in shell functions and external
+commands invoked by the
+programmable completion facilities (see <B>Programmable Completion</B>
+below).
+<DT><B>COMP_POINT</B>
+
+<DD>
+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,
+the value of this variable is equal to <B>${#COMP_LINE}</B>.
+This variable is available only in shell functions and external
+commands invoked by the
+programmable completion facilities (see <B>Programmable Completion</B>
+below).
+<DT><B>COMP_TYPE</B>
+
+<DD>
+Set to an integer value corresponding to the type of completion attempted
+that caused a completion function to be called:
+<I>TAB</I>, for normal completion,
+<I>?</I>, for listing completions after successive tabs,
+<I>!</I>, for listing alternatives on partial word completion,
+<I>@</I>, to list completions if the word is not unmodified,
+or
+<I>%</I>, for menu completion.
+This variable is available only in shell functions and external
+commands invoked by the
+programmable completion facilities (see <B>Programmable Completion</B>
+below).
+<DT><B>COMP_WORDBREAKS</B>
+
+<DD>
+The set of characters that the Readline library treats as word
+separators when performing word completion.
+If
+<FONT SIZE=-1><B>COMP_WORDBREAKS</B>
+
+</FONT>
+is unset, it loses its special properties, even if it is
+subsequently reset.
+<DT><B>COMP_WORDS</B>
+
+<DD>
+An array variable (see <B>Arrays</B> below) consisting of the individual
+words in the current command line.
+The words are split on shell metacharacters as the shell parser would
+separate them.
+This variable is available only in shell functions invoked by the
+programmable completion facilities (see <B>Programmable Completion</B>
+below).
+<DT><B>DIRSTACK</B>
+
+<DD>
+An array variable (see
+<B>Arrays</B>
+
+below) containing the current contents of the directory stack.
+Directories appear in the stack in the order they are displayed by the
+<B>dirs</B>
+
+builtin.
+Assigning to members of this array variable may be used to modify
+directories already in the stack, but the
+<B>pushd</B>
+
+and
+<B>popd</B>
+
+builtins must be used to add and remove directories.
+Assignment to this variable will not change the current directory.
+If
+<FONT SIZE=-1><B>DIRSTACK</B>
+
+</FONT>
+is unset, it loses its special properties, even if it is
+subsequently reset.
+<DT><B>EUID</B>
+
+<DD>
+Expands to the effective user ID of the current user, initialized at
+shell startup.  This variable is readonly.
+<DT><B>FUNCNAME</B>
+
+<DD>
+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
+shell function.
+The bottom-most element is
+<TT>&quot;main&quot;</TT>.
+
+This variable exists only when a shell function is executing.
+Assignments to
+<FONT SIZE=-1><B>FUNCNAME</B>
+
+</FONT>
+have no effect and return an error status.
+If
+<FONT SIZE=-1><B>FUNCNAME</B>
+
+</FONT>
+is unset, it loses its special properties, even if it is
+subsequently reset.
+<DT><B>GROUPS</B>
+
+<DD>
+An array variable containing the list of groups of which the current
+user is a member.
+Assignments to    
+<FONT SIZE=-1><B>GROUPS</B>
+
+</FONT>
+have no effect and return an error status.
+If
+<FONT SIZE=-1><B>GROUPS</B>
+
+</FONT>
+is unset, it loses its special properties, even if it is
+subsequently reset.
+<DT><B>HISTCMD</B>
+
+<DD>
+The history number, or index in the history list, of the current
+command.
+If
+<FONT SIZE=-1><B>HISTCMD</B>
+
+</FONT>
+is unset, it loses its special properties, even if it is
+subsequently reset.
+<DT><B>HOSTNAME</B>
+
+<DD>
+Automatically set to the name of the current host.
+<DT><B>HOSTTYPE</B>
+
+<DD>
+Automatically set to a string that uniquely
+describes the type of machine on which
+<B>bash</B>
+
+is executing.
+The default is system-dependent.
+<DT><B>LINENO</B>
+
+<DD>
+Each time this parameter is referenced, the shell substitutes
+a decimal number representing the current sequential line number
+(starting with 1) within a script or function.  When not in a
+script or function, the value substituted is not guaranteed to
+be meaningful.
+If
+<FONT SIZE=-1><B>LINENO</B>
+
+</FONT>
+is unset, it loses its special properties, even if it is
+subsequently reset.
+<DT><B>MACHTYPE</B>
+
+<DD>
+Automatically set to a string that fully describes the system
+type on which
+<B>bash</B>
+
+is executing, in the standard GNU <I>cpu-company-system</I> format.
+The default is system-dependent.
+<DT><B>OLDPWD</B>
+
+<DD>
+The previous working directory as set by the
+<B>cd</B>
+
+command.
+<DT><B>OPTARG</B>
+
+<DD>
+The value of the last option argument processed by the
+<B>getopts</B>
+
+builtin command (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+<DT><B>OPTIND</B>
+
+<DD>
+The index of the next argument to be processed by the
+<B>getopts</B>
+
+builtin command (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+<DT><B>OSTYPE</B>
+
+<DD>
+Automatically set to a string that
+describes the operating system on which
+<B>bash</B>
+
+is executing.
+The default is system-dependent.
+<DT><B>PIPESTATUS</B>
+
+<DD>
+An array variable (see
+<B>Arrays</B>
+
+below) containing a list of exit status values from the processes
+in the most-recently-executed foreground pipeline (which may
+contain only a single command).
+<DT><B>PPID</B>
+
+<DD>
+The process ID of the shell's parent.  This variable is readonly.
+<DT><B>PWD</B>
+
+<DD>
+The current working directory as set by the
+<B>cd</B>
+
+command.
+<DT><B>RANDOM</B>
+
+<DD>
+Each time this parameter is referenced, a random integer between
+0 and 32767 is
+generated.  The sequence of random numbers may be initialized by assigning
+a value to
+<FONT SIZE=-1><B>RANDOM</B>.
+
+</FONT>
+If
+<FONT SIZE=-1><B>RANDOM</B>
+
+</FONT>
+is unset, it loses its special properties, even if it is
+subsequently reset.
+<DT><B>REPLY</B>
+
+<DD>
+Set to the line of input read by the
+<B>read</B>
+
+builtin command when no arguments are supplied.
+<DT><B>SECONDS</B>
+
+<DD>
+Each time this parameter is
+referenced, the number of seconds since shell invocation is returned.  If a
+value is assigned to 
+<FONT SIZE=-1><B>SECONDS</B>,
+
+</FONT>
+the value returned upon subsequent
+references is
+the number of seconds since the assignment plus the value assigned.
+If
+<FONT SIZE=-1><B>SECONDS</B>
+
+</FONT>
+is unset, it loses its special properties, even if it is
+subsequently reset.
+<DT><B>SHELLOPTS</B>
+
+<DD>
+A colon-separated list of enabled shell options.  Each word in
+the list is a valid argument for the
+<B>-o</B>
+
+option to the
+<B>set</B>
+
+builtin command (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).  The options appearing in
+<FONT SIZE=-1><B>SHELLOPTS</B>
+
+</FONT>
+are those reported as
+<I>on</I>
+
+by <B>set -o</B>.
+If this variable is in the environment when
+<B>bash</B>
+
+starts up, each shell option in the list will be enabled before
+reading any startup files.
+This variable is read-only.
+<DT><B>SHLVL</B>
+
+<DD>
+Incremented by one each time an instance of
+<B>bash</B>
+
+is started.
+<DT><B>UID</B>
+
+<DD>
+Expands to the user ID of the current user, initialized at shell startup.
+This variable is readonly.
+
+</DL>
+<P>
+
+The following variables are used by the shell.  In some cases,
+<B>bash</B>
+
+assigns a default value to a variable; these cases are noted
+below.
+<P>
+
+
+<DL COMPACT>
+<DT><B>BASH_ENV</B>
+
+<DD>
+If this parameter is set when <B>bash</B> is executing a shell script,
+its value is interpreted as a filename containing commands to
+initialize the shell, as in
+<A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>.
+
+The value of
+<FONT SIZE=-1><B>BASH_ENV</B>
+
+</FONT>
+is subjected to parameter expansion, command substitution, and arithmetic
+expansion before being interpreted as a file name.
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+is not used to search for the resultant file name.
+<DT><B>CDPATH</B>
+
+<DD>
+The search path for the
+<B>cd</B>
+
+command.
+This is a colon-separated list of directories in which the shell looks
+for destination directories specified by the
+<B>cd</B>
+
+command.
+A sample value is
+<TT>&quot;.:~:/usr&quot;</TT>.
+
+<DT><B>COLUMNS</B>
+
+<DD>
+Used by the <B>select</B> builtin command to determine the terminal width
+when printing selection lists.  Automatically set upon receipt of a SIGWINCH.
+<DT><B>COMPREPLY</B>
+
+<DD>
+An array variable from which <B>bash</B> reads the possible completions
+generated by a shell function invoked by the programmable completion
+facility (see <B>Programmable Completion</B> below).
+<DT><B>EMACS</B>
+
+<DD>
+If <B>bash</B> finds this variable in the environment when the shell starts
+with value
+<TT>t</TT>,
+
+it assumes that the shell is running in an emacs shell buffer and disables
+line editing.
+<DT><B>FCEDIT</B>
+
+<DD>
+The default editor for the
+<B>fc</B>
+
+builtin command.
+<DT><B>FIGNORE</B>
+
+<DD>
+A colon-separated list of suffixes to ignore when performing
+filename completion (see
+<FONT SIZE=-1><B>READLINE</B>
+
+</FONT>
+below).
+A filename whose suffix matches one of the entries in 
+<FONT SIZE=-1><B>FIGNORE</B>
+
+</FONT>
+is excluded from the list of matched filenames.
+A sample value is
+<TT>&quot;.o:~&quot;</TT>.
+
+<DT><B>GLOBIGNORE</B>
+
+<DD>
+A colon-separated list of patterns defining the set of filenames to
+be ignored by pathname expansion.
+If a filename matched by a pathname expansion pattern also matches one
+of the patterns in
+<FONT SIZE=-1><B>GLOBIGNORE</B>,
+
+</FONT>
+it is removed from the list of matches.
+<DT><B>HISTCONTROL</B>
+
+<DD>
+A colon-separated list of values controlling how commands are saved on
+the history list.
+If the list of values includes
+<I>ignorespace</I>,
+
+lines which begin with a
+<B>space</B>
+
+character are not saved in the history list.
+A value of 
+<I>ignoredups</I>
+
+causes lines matching the previous history entry to not be saved.
+A value of
+<I>ignoreboth</I>
+
+is shorthand for <I>ignorespace</I> and <I>ignoredups</I>.
+A value of
+<I>erasedups</I>
+
+causes all previous lines matching the current line to be removed from
+the history list before that line is saved.
+Any value not in the above list is ignored.
+If <B>HISTCONTROL</B> is unset, or does not include a valid value,
+all lines read by the shell parser are saved on the history list,
+subject to the value of
+<B>HISTIGNORE</B>.
+
+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
+<B>HISTCONTROL</B>.
+
+<DT><B>HISTFILE</B>
+
+<DD>
+The name of the file in which command history is saved (see
+<FONT SIZE=-1><B>HISTORY</B>
+
+</FONT>
+below).  The default value is <A HREF="file:~/.bash_history"><I>~/.bash_history</I></A>.  If unset, the
+command history is not saved when an interactive shell exits.
+<DT><B>HISTFILESIZE</B>
+
+<DD>
+The maximum number of lines contained in the history file.  When this
+variable is assigned a value, the history file is truncated, if
+necessary, by removing the oldest entries,
+to contain no more than that number of lines.  The default
+value is 500.  The history file is also truncated to this size after
+writing it when an interactive shell exits.
+<DT><B>HISTIGNORE</B>
+
+<DD>
+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 line (no implicit
+`<B>*</B>' is appended).  Each pattern is tested against the line
+after the checks specified by
+<B>HISTCONTROL</B>
+
+are applied.
+In addition to the normal shell pattern matching characters, `<B>&amp;</B>'
+matches the previous history line.  `<B>&amp;</B>' may be escaped using a
+backslash; the backslash is removed before attempting a match.
+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
+<B>HISTIGNORE</B>.
+
+<DT><B>HISTSIZE</B>
+
+<DD>
+The number of commands to remember in the command history (see
+<FONT SIZE=-1><B>HISTORY</B>
+
+</FONT>
+below).  The default value is 500.
+<DT><B>HISTTIMEFORMAT</B>
+
+<DD>
+If this variable is set and not null, its value is used as a format string
+for <I>strftime</I>(3) to print the time stamp associated with each history
+entry displayed by the <B>history</B> builtin.
+If this variable is set, time stamps are written to the history file so
+they may be preserved across shell sessions.
+This uses the history comment character to distinguish timestamps from
+other history lines.
+<DT><B>HOME</B>
+
+<DD>
+The home directory of the current user; the default argument for the
+<B>cd</B> builtin command.
+The value of this variable is also used when performing tilde expansion.
+<DT><B>HOSTFILE</B>
+
+<DD>
+Contains the name of a file in the same format as
+
+<I>/etc/hosts</I>
+
+that should be read when the shell needs to complete a
+hostname.
+The list of possible hostname completions may be changed while the
+shell is running;
+the next time hostname completion is attempted after the
+value is changed,
+<B>bash</B>
+
+adds the contents of the new file to the existing list.
+If
+<FONT SIZE=-1><B>HOSTFILE</B>
+
+</FONT>
+is set, but has no value, <B>bash</B> attempts to read
+
+<I>/etc/hosts</I>
+
+to obtain the list of possible hostname completions.
+When
+<FONT SIZE=-1><B>HOSTFILE</B>
+
+</FONT>
+is unset, the hostname list is cleared.
+<DT><B>IFS</B>
+
+<DD>
+The
+<I>Internal Field Separator</I>
+
+that is used
+for word splitting after expansion and to
+split lines into words with the
+<B>read</B>
+
+builtin command.  The default value is
+``&lt;space&gt;&lt;tab&gt;&lt;newline&gt;''.
+<DT><B>IGNOREEOF</B>
+
+<DD>
+Controls the
+action of an interactive shell on receipt of an
+<FONT SIZE=-1><B>EOF</B>
+
+</FONT>
+character as the sole input.  If set, the value is the number of
+consecutive
+<FONT SIZE=-1><B>EOF</B>
+
+</FONT>
+characters which must be
+typed as the first characters on an input line before
+<B>bash</B>
+
+exits.  If the variable exists but does not have a numeric value, or
+has no value, the default value is 10.  If it does not exist,
+<FONT SIZE=-1><B>EOF</B>
+
+</FONT>
+signifies the end of input to the shell.
+<DT><B>INPUTRC</B>
+
+<DD>
+The filename for the
+<B>readline</B>
+
+startup file, overriding the default of
+
+<A HREF="file:~/.inputrc"><I>~/.inputrc</I></A>
+
+(see
+<FONT SIZE=-1><B>READLINE</B>
+
+</FONT>
+below).
+<DT><B>LANG</B>
+
+<DD>
+Used to determine the locale category for any category not specifically
+selected with a variable starting with <B>LC_</B>.
+<DT><B>LC_ALL</B>
+
+<DD>
+This variable overrides the value of <B>LANG</B> and any other
+<B>LC_</B> variable specifying a locale category.
+<DT><B>LC_COLLATE</B>
+
+<DD>
+This variable determines the collation order used when sorting the
+results of pathname expansion, and determines the behavior of range
+expressions, equivalence classes, and collating sequences within
+pathname expansion and pattern matching.
+<DT><B>LC_CTYPE</B>
+
+<DD>
+This variable determines the interpretation of characters and the
+behavior of character classes within pathname expansion and pattern
+matching.
+<DT><B>LC_MESSAGES</B>
+
+<DD>
+This variable determines the locale used to translate double-quoted
+strings preceded by a <B>$</B>.
+<DT><B>LC_NUMERIC</B>
+
+<DD>
+This variable determines the locale category used for number formatting.
+<DT><B>LINES</B>
+
+<DD>
+Used by the <B>select</B> builtin command to determine the column length
+for printing selection lists.  Automatically set upon receipt of a SIGWINCH.
+<DT><B>MAIL</B>
+
+<DD>
+If this parameter is set to a file name and the
+<FONT SIZE=-1><B>MAILPATH</B>
+
+</FONT>
+variable is not set,
+<B>bash</B>
+
+informs the user of the arrival of mail in the specified file.
+<DT><B>MAILCHECK</B>
+
+<DD>
+Specifies how
+often (in seconds)
+<B>bash</B>
+
+checks for mail.  The default is 60 seconds.  When it is time to check
+for mail, the shell does so before displaying the primary prompt.
+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.
+<DT><B>MAILPATH</B>
+
+<DD>
+A colon-separated list of file names to be checked for mail. 
+The message to be printed when mail arrives in a particular file
+may be specified by separating the file name from the message with a `?'.
+When used in the text of the message, <B>$_</B> expands to the name of
+the current mailfile. 
+Example:
+<DL COMPACT><DT><DD>
+<P>
+
+<B>MAILPATH</B>=aq/var/mail/bfox?&quot;You have mail&quot;:~/shell-mail?&quot;$_ has mail!&quot;aq
+<P>
+
+<B>Bash</B>
+
+supplies a default value for this variable, but the location of the user
+mail files that it uses is system dependent (e.g., /var/mail/<B>$USER</B>).
+</DL>
+
+<DT><B>OPTERR</B>
+
+<DD>
+If set to the value 1,
+<B>bash</B>
+
+displays error messages generated by the
+<B>getopts</B>
+
+builtin command (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+<FONT SIZE=-1><B>OPTERR</B>
+
+</FONT>
+is initialized to 1 each time the shell is invoked or a shell
+script is executed.
+<DT><B>PATH</B>
+
+<DD>
+The search path for commands.  It
+is a colon-separated list of directories in which
+the shell looks for commands (see
+<FONT SIZE=-1><B>COMMAND EXECUTION</B>
+
+</FONT>
+below).
+A zero-length (null) directory name in the value of <B>PATH</B> indicates the
+current directory.
+A null directory name may appear as two adjacent colons, or as an initial
+or trailing colon.
+The default path is system-dependent,
+and is set by the administrator who installs
+<B>bash</B>.
+
+A common value is
+<TT>/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin</TT>.
+
+<DT><B>POSIXLY_CORRECT</B>
+
+<DD>
+If this variable is in the environment when <B>bash</B> starts, the shell
+enters <I>posix mode</I> before reading the startup files, as if the
+<B>--posix</B>
+
+invocation option had been supplied.  If it is set while the shell is
+running, <B>bash</B> enables <I>posix mode</I>, as if the command
+<TT>set -o posix</TT>
+
+had been executed.
+<DT><B>PROMPT_COMMAND</B>
+
+<DD>
+If set, the value is executed as a command prior to issuing each primary
+prompt.
+<DT><B>PROMPT_DIRTRIM</B>
+
+<DD>
+If set to a number greater than zero, the value is used as the number of
+trailing directory components to retain when expanding the <B>\w and
+\W</B> prompt string escapes (see
+<FONT SIZE=-1><B>PROMPTING</B>
+
+</FONT>
+below).  Characters removed are replaced with an ellipsis.
+<DT><B>PS1</B>
+
+<DD>
+The value of this parameter is expanded (see
+<FONT SIZE=-1><B>PROMPTING</B>
+
+</FONT>
+below) and used as the primary prompt string.  The default value is
+``<B>\s-\v\$ </B>''.
+<DT><B>PS2</B>
+
+<DD>
+The value of this parameter is expanded as with
+<B>PS1</B>
+
+and used as the secondary prompt string.  The default is
+``<B>&gt; </B>''.
+<DT><B>PS3</B>
+
+<DD>
+The value of this parameter is used as the prompt for the
+<B>select</B>
+
+command (see
+<FONT SIZE=-1><B>SHELL GRAMMAR</B>
+
+</FONT>
+above).
+<DT><B>PS4</B>
+
+<DD>
+The value of this parameter is expanded as with
+<B>PS1</B>
+
+and the value is printed before each command
+<B>bash</B>
+
+displays during an execution trace.  The first character of
+<FONT SIZE=-1><B>PS4</B>
+
+</FONT>
+is replicated multiple times, as necessary, to indicate multiple
+levels of indirection.  The default is ``<B>+ </B>''.
+<DT><B>SHELL</B>
+
+<DD>
+The full pathname to the shell is kept in this environment variable.
+If it is not set when the shell starts,
+<B>bash</B>
+
+assigns to it the full pathname of the current user's login shell.
+<DT><B>TIMEFORMAT</B>
+
+<DD>
+The value of this parameter is used as a format string specifying
+how the timing information for pipelines prefixed with the
+<B>time</B>
+
+reserved word should be displayed.
+The <B>%</B> character introduces an escape sequence that is
+expanded to a time value or other information.
+The escape sequences and their meanings are as follows; the
+braces denote optional portions.
+<P>
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>%%</B>
+
+<DD>
+A literal <B>%</B>.
+<DT><B>%[</B><I>p</I>][l]R
+
+<DD>
+The elapsed time in seconds.
+<DT><B>%[</B><I>p</I>][l]U
+
+<DD>
+The number of CPU seconds spent in user mode.
+<DT><B>%[</B><I>p</I>][l]S
+
+<DD>
+The number of CPU seconds spent in system mode.
+<DT><B>%P</B>
+
+<DD>
+The CPU percentage, computed as (%U + %S) / %R.
+
+</DL></DL>
+
+<DT><DD>
+The optional <I>p</I> is a digit specifying the <I>precision</I>,
+the number of fractional digits after a decimal point.
+A value of 0 causes no decimal point or fraction to be output.
+At most three places after the decimal point may be specified;
+values of <I>p</I> greater than 3 are changed to 3.
+If <I>p</I> is not specified, the value 3 is used.
+<DT><DD>
+The optional <B>l</B> specifies a longer format, including
+minutes, of the form <I>MM</I>m<I>SS</I>.<I>FF</I>s.
+The value of <I>p</I> determines whether or not the fraction is
+included.
+<DT><DD>
+If this variable is not set, <B>bash</B> acts as if it had the
+value <B>$aq\nreal\t%3lR\nuser\t%3lU\nsys      %3lSaq</B>.
+If the value is null, no timing information is displayed.
+A trailing newline is added when the format string is displayed.
+<DT><B>TMOUT</B>
+
+<DD>
+If set to a value greater than zero, <B>TMOUT</B> is treated as the
+default timeout for the <B>read</B> builtin.
+The <B>select</B> command terminates if input does not arrive
+after <B>TMOUT</B> seconds when input is coming from a terminal.
+In an interactive shell, the value is interpreted as the
+number of seconds to wait for input after issuing the primary prompt.
+<B>Bash</B>
+
+terminates after waiting for that number of seconds if input does
+not arrive.
+<DT><B>TMPDIR</B>
+
+<DD>
+If set, <B>Bash</B> uses its value as the name of a directory in which
+<B>Bash</B> creates temporary files for the shell's use.
+<DT><B>auto_resume</B>
+
+<DD>
+This variable controls how the shell interacts with the user and
+job control.  If this variable is set, single word simple
+commands without redirections are treated as candidates for resumption
+of an existing stopped job.  There is no ambiguity allowed; if there is
+more than one job beginning with the string typed, the job most recently
+accessed is selected.  The
+<I>name</I>
+
+of a stopped job, in this context, is the command line used to
+start it.
+If set to the value
+<I>exact</I>,
+
+the string supplied must match the name of a stopped job exactly;
+if set to
+<I>substring</I>,
+
+the string supplied needs to match a substring of the name of a
+stopped job.  The
+<I>substring</I>
+
+value provides functionality analogous to the
+<B>%?</B>
+
+job identifier (see
+<FONT SIZE=-1><B>JOB CONTROL</B>
+
+</FONT>
+below).  If set to any other value, the supplied string must
+be a prefix of a stopped job's name; this provides functionality
+analogous to the <B>%</B><I>string</I> job identifier.
+<DT><B>histchars</B>
+
+<DD>
+The two or three characters which control history expansion
+and tokenization (see
+<FONT SIZE=-1><B>HISTORY EXPANSION</B>
+
+</FONT>
+below).  The first character is the <I>history expansion</I> character,
+the character which signals the start of a history
+expansion, normally `<B>!</B>'.
+The second character is the <I>quick substitution</I>
+character, which is used as shorthand for re-running the previous
+command entered, substituting one string for another in the command.
+The default is `<B>^</B>'.
+The optional third character is the character
+which indicates that the remainder of the line is a comment when found
+as the first character of a word, normally `<B>#</B>'.  The history
+comment character causes history substitution to be skipped for the
+remaining words on the line.  It does not necessarily cause the shell
+parser to treat the rest of the line as a comment.
+
+</DL>
+<A NAME="lbAX">&nbsp;</A>
+<H4>Arrays</H4>
+
+<B>Bash</B>
+
+provides one-dimensional indexed and associative array variables.
+Any variable may be used as an indexed array; the
+<B>declare</B>
+
+builtin will explicitly declare an array.
+There is no maximum
+limit on the size of an array, nor any requirement that members
+be indexed or assigned contiguously.
+Indexed arrays are referenced using integers (including arithmetic
+expressions)  and are zero-based; associative arrays are referenced
+using arbitrary strings.
+<P>
+
+An indexed array is created automatically if any variable is assigned to
+using the syntax <I>name</I>[<I>subscript</I>]=<I>value</I>.  The
+<I>subscript</I>
+
+is treated as an arithmetic expression that must evaluate to a number
+greater than or equal to zero.  To explicitly declare an indexed array,
+use
+<B>declare -a </B><I>name</I>
+
+(see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+<B>declare -a </B><I>name</I>[<I>subscript</I>]
+
+is also accepted; the <I>subscript</I> is ignored.
+<P>
+
+Associative arrays are created using
+<B>declare -A </B><I>name</I>.
+
+<P>
+
+Attributes may be
+specified for an array variable using the
+<B>declare</B>
+
+and
+<B>readonly</B>
+
+builtins.  Each attribute applies to all members of an array.
+<P>
+
+Arrays are assigned to using compound assignments of the form
+<I>name</I>=<B>(</B>value<I>1</I> ... value<I>n</I><B>)</B>, where each
+<I>value</I> is of the form [<I>subscript</I>]=<I>string</I>.
+Indexed array assignments do not require the bracket and subscript.
+When assigning to indexed arrays, if the optional brackets and subscript
+are supplied, that index is assigned to;
+otherwise the index of the element assigned is the last index assigned
+to by the statement plus one.  Indexing starts at zero.
+<P>
+
+When assigning to an associative array, the subscript is required.
+<P>
+
+This syntax is also accepted by the
+<B>declare</B>
+
+builtin.  Individual array elements may be assigned to using the
+<I>name</I>[<I>subscript</I>]=<I>value</I> syntax introduced above.
+<P>
+
+Any element of an array may be referenced using
+${<I>name</I>[<I>subscript</I>]}.  The braces are required to avoid
+conflicts with pathname expansion.  If
+<I>subscript</I> is <B>@</B> or <B>*</B>, the word expands to
+all members of <I>name</I>.  These subscripts differ only when the
+word appears within double quotes.  If the word is double-quoted,
+${<I>name</I>[*]} expands to a single
+word with the value of each array member separated by the first
+character of the
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+special variable, and ${<I>name</I>[@]} expands each element of
+<I>name</I> to a separate word.  When there are no array members,
+${<I>name</I>[@]} expands to nothing.
+If the double-quoted expansion occurs within a word, the expansion of
+the first parameter is joined with the beginning part of the original
+word, and the expansion of the last parameter is joined with the last
+part of the original word.
+This is analogous to the expansion
+of the special parameters <B>*</B> and <B>@</B> (see
+<B>Special Parameters</B>
+
+above).  ${#<I>name</I>[<I>subscript</I>]} expands to the length of
+${<I>name</I>[<I>subscript</I>]}.  If <I>subscript</I> is <B>*</B> or
+<B>@</B>, the expansion is the number of elements in the array.
+Referencing an array variable without a subscript is equivalent to
+referencing the array with a subscript of 0.
+<P>
+
+The
+<B>unset</B>
+
+builtin is used to destroy arrays.  <B>unset</B> <I>name</I>[<I>subscript</I>]
+destroys the array element at index <I>subscript</I>.
+Care must be taken to avoid unwanted side effects caused by filename
+generation.
+<B>unset</B> <I>name</I>, where <I>name</I> is an array, or
+<B>unset</B> <I>name</I>[<I>subscript</I>], where
+<I>subscript</I> is <B>*</B> or <B>@</B>, removes the entire array.
+<P>
+
+The
+<B>declare</B>,
+
+<B>local</B>,
+
+and
+<B>readonly</B>
+
+builtins each accept a
+<B>-a</B>
+
+option to specify an indexed array and a
+<B>-A</B>
+
+option to specify an associative array.
+The
+<B>read</B>
+
+builtin accepts a
+<B>-a</B>
+
+option to assign a list of words read from the standard input
+to an array.  The
+<B>set</B>
+
+and
+<B>declare</B>
+
+builtins display array values in a way that allows them to be
+reused as assignments.
+<A NAME="lbAY">&nbsp;</A>
+<H3>EXPANSION</H3>
+
+Expansion is performed on the command line after it has been split into
+words.  There are seven kinds of expansion performed:
+<I>brace expansion</I>,
+
+<I>tilde expansion</I>,
+
+<I>parameter and variable expansion</I>,
+
+<I>command substitution</I>,
+
+<I>arithmetic expansion</I>,
+
+<I>word splitting</I>,
+
+and
+<I>pathname expansion</I>.
+
+<P>
+
+The order of expansions is: brace expansion, tilde expansion,
+parameter, variable and arithmetic expansion and
+command substitution
+(done in a left-to-right fashion), word splitting, and pathname
+expansion.
+<P>
+
+On systems that can support it, there is an additional expansion
+available: <I>process substitution</I>.
+<P>
+
+Only brace expansion, word splitting, and pathname expansion
+can change the number of words of the expansion; other expansions
+expand a single word to a single word.
+The only exceptions to this are the expansions of
+&quot;<B>$@</B>&quot; and &quot;<B>${</B><I>name</I><B>[@]}</B>&quot;
+as explained above (see
+<FONT SIZE=-1><B>PARAMETERS</B>).
+
+</FONT>
+<A NAME="lbAZ">&nbsp;</A>
+<H4>Brace Expansion</H4>
+
+<P>
+
+<I>Brace expansion</I>
+
+is a mechanism by which arbitrary strings
+may be generated.  This mechanism is similar to
+<I>pathname expansion</I>, but the filenames generated
+need not exist.  Patterns to be brace expanded take
+the form of an optional
+<I>preamble</I>,
+
+followed by either a series of comma-separated strings or
+a sequence expression between a pair of braces, followed by
+an optional
+<I>postscript</I>.
+
+The preamble is prefixed to each string contained
+within the braces, and the postscript is then appended
+to each resulting string, expanding left to right.
+<P>
+
+Brace expansions may be nested.  The results of each expanded
+string are not sorted; left to right order is preserved.
+For example, a<B>{</B>d,c,b<B>}</B>e expands into `ade ace abe'.
+<P>
+
+A sequence expression takes the form
+<B>{</B><I>x</I><B>..</B><I>y</I><B>[..</B><I>incr</I><B>]}</B>,
+where <I>x</I> and <I>y</I> are either integers or single characters,
+and <I>incr</I>, an optional increment, is an integer.
+When integers are supplied, the expression expands to each number between
+<I>x</I> and <I>y</I>, inclusive.
+Supplied integers may be prefixed with <I>0</I> to force each term to have the
+same width.  When either <I>x</I> or y begins with a zero, the shell
+attempts to force all generated terms to contain the same number of digits,
+zero-padding where necessary.
+When characters are supplied, the expression expands to each character
+lexicographically between <I>x</I> and <I>y</I>, inclusive.  Note that
+both <I>x</I> and <I>y</I> must be of the same type.
+When the increment is supplied, it is used as the difference between
+each term.  The default increment is 1 or -1 as appropriate.
+<P>
+
+Brace expansion is performed before any other expansions,
+and any characters special to other expansions are preserved
+in the result.  It is strictly textual.
+<B>Bash</B>
+
+does not apply any syntactic interpretation to the context of the
+expansion or the text between the braces.
+<P>
+
+A correctly-formed brace expansion must contain unquoted opening
+and closing braces, and at least one unquoted comma or a valid
+sequence expression.
+Any incorrectly formed brace expansion is left unchanged.
+A <B>{</B> or <B>,</B> may be quoted with a backslash to prevent its
+being considered part of a brace expression.
+To avoid conflicts with parameter expansion, the string <B>${</B>
+is not considered eligible for brace expansion.
+<P>
+
+This construct is typically used as shorthand when the common
+prefix of the strings to be generated is longer than in the
+above example:
+<DL COMPACT><DT><DD>
+<P>
+
+mkdir /usr/local/src/bash/{old,new,dist,bugs}
+</DL>
+
+or
+<DL COMPACT><DT><DD>
+chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
+</DL>
+
+<P>
+
+Brace expansion introduces a slight incompatibility with
+historical versions of
+<B>sh</B>.
+
+<B>sh</B>
+
+does not treat opening or closing braces specially when they
+appear as part of a word, and preserves them in the output.
+<B>Bash</B>
+
+removes braces from words as a consequence of brace
+expansion.  For example, a word entered to
+<B>sh</B>
+
+as <I>file{1,2}</I>
+appears identically in the output.  The same word is
+output as
+<I>file1 file2</I>
+
+after expansion by
+<B>bash</B>.
+
+If strict compatibility with
+<B>sh</B>
+
+is desired, start
+<B>bash</B>
+
+with the
+<B>+B </B>
+
+option or disable brace expansion with the
+<B>+B</B>
+
+option to the
+<B>set</B>
+
+command (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+<A NAME="lbBA">&nbsp;</A>
+<H4>Tilde Expansion</H4>
+
+<P>
+
+If a word begins with an unquoted tilde character (`<B>~</B>'), all of
+the characters preceding the first unquoted slash (or all characters,
+if there is no unquoted slash) are considered a <I>tilde-prefix</I>.
+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 <I>login name</I>.
+If this login name is the null string, the tilde is replaced with the
+value of the shell parameter
+<FONT SIZE=-1><B>HOME</B>.
+
+</FONT>
+If
+<FONT SIZE=-1><B>HOME</B>
+
+</FONT>
+is unset, the home directory of the user executing the shell is
+substituted instead.
+Otherwise, the tilde-prefix is replaced with the home directory
+associated with the specified login name.
+<P>
+
+If the tilde-prefix is a `~+', the value of the shell variable
+<FONT SIZE=-1><B>PWD</B>
+
+</FONT>
+replaces the tilde-prefix.
+If the tilde-prefix is a `~-', the value of the shell variable
+<FONT SIZE=-1><B>OLDPWD</B>,
+
+</FONT>
+if it is set, is substituted.
+If the characters following the tilde in the tilde-prefix consist
+of a number <I>N</I>, optionally prefixed
+by a `+' or a `-', the tilde-prefix is replaced with the corresponding
+element from the directory stack, as it would be displayed by the
+<B>dirs</B>
+
+builtin invoked with the tilde-prefix as an argument.
+If the characters following the tilde in the tilde-prefix consist of a
+number without a leading `+' or `-', `+' is assumed.
+<P>
+
+If the login name is invalid, or the tilde expansion fails, the word
+is unchanged.
+<P>
+
+Each variable assignment is checked for unquoted tilde-prefixes immediately
+following a
+<B>:</B>
+
+or the first
+<B>=</B>.
+
+In these cases, tilde expansion is also performed.
+Consequently, one may use file names with tildes in assignments to
+<FONT SIZE=-1><B>PATH</B>,
+
+</FONT>
+<FONT SIZE=-1><B>MAILPATH</B>,
+
+</FONT>
+and
+<FONT SIZE=-1><B>CDPATH</B>,
+
+</FONT>
+and the shell assigns the expanded value.
+<A NAME="lbBB">&nbsp;</A>
+<H4>Parameter Expansion</H4>
+
+<P>
+
+The `<B>$</B>' character introduces parameter expansion,
+command substitution, or arithmetic expansion.  The parameter name
+or symbol to be expanded may be enclosed in braces, which
+are optional but serve to protect the variable to be expanded from
+characters immediately following it which could be
+interpreted as part of the name.
+<P>
+
+When braces are used, the matching ending brace is the first `<B>}</B>'
+not escaped by a backslash or within a quoted string, and not within an
+embedded arithmetic expansion, command substitution, or parameter
+expansion.
+<P>
+
+
+<DL COMPACT>
+<DT>${<I>parameter</I>}<DD>
+The value of <I>parameter</I> is substituted.  The braces are required
+when
+<I>parameter</I>
+
+is a positional parameter with more than one digit,
+or when
+<I>parameter</I>
+
+is followed by a character which is not to be
+interpreted as part of its name.
+
+</DL>
+<P>
+
+If the first character of <I>parameter</I> is an exclamation point,
+a level of variable indirection is introduced.
+<B>Bash</B> uses the value of the variable formed from the rest of
+<I>parameter</I> as the name of the variable; this variable is then
+expanded and that value is used in the rest of the substitution, rather
+than the value of <I>parameter</I> itself.
+This is known as <I>indirect expansion</I>.
+The exceptions to this are the expansions of ${!<I>prefix</I>*} and
+${<B>!</B><I>name</I>[<I>@</I>]} described below.
+The exclamation point must immediately follow the left brace in order to
+introduce indirection.
+<P>
+
+In each of the cases below, <I>word</I> is subject to tilde expansion,
+parameter expansion, command substitution, and arithmetic expansion.
+<P>
+
+When not performing substring expansion, using the forms documented below,
+<B>bash</B> tests for a parameter that is unset or null.  Omitting the colon
+results in a test only for a parameter that is unset.
+<P>
+
+
+<DL COMPACT>
+<DT>${<I>parameter</I><B>:-</B><I>word</I>}<DD>
+<B>Use Default Values</B>.  If
+<I>parameter</I>
+
+is unset or null, the expansion of
+<I>word</I>
+
+is substituted.  Otherwise, the value of
+<I>parameter</I>
+
+is substituted.
+<DT>${<I>parameter</I><B>:=</B><I>word</I>}<DD>
+<B>Assign Default Values</B>.
+If
+<I>parameter</I>
+
+is unset or null, the expansion of
+<I>word</I>
+
+is assigned to
+<I>parameter</I>.
+
+The value of
+<I>parameter</I>
+
+is then substituted.  Positional parameters and special parameters may
+not be assigned to in this way.
+<DT>${<I>parameter</I><B>:?</B><I>word</I>}<DD>
+<B>Display Error if Null or Unset</B>.
+If
+<I>parameter</I>
+
+is null or unset, the expansion of <I>word</I> (or a message to that effect
+if
+<I>word</I>
+
+is not present) is written to the standard error and the shell, if it
+is not interactive, exits.  Otherwise, the value of <I>parameter</I> is
+substituted.
+<DT>${<I>parameter</I><B>:+</B><I>word</I>}<DD>
+<B>Use Alternate Value</B>.
+If
+<I>parameter</I>
+
+is null or unset, nothing is substituted, otherwise the expansion of
+<I>word</I>
+
+is substituted.
+<DT>${<I>parameter</I><B>:</B><I>offset</I>}<DD>
+
+<DT>${<I>parameter</I><B>:</B><I>offset</I><B>:</B><I>length</I>}<DD>
+
+<B>Substring Expansion.</B>
+Expands to up to <I>length</I> characters of <I>parameter</I>
+starting at the character specified by <I>offset</I>.
+If <I>length</I> is omitted, expands to the substring of
+<I>parameter</I> starting at the character specified by <I>offset</I>.
+<I>length</I> and <I>offset</I> are arithmetic expressions (see
+<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>
+
+</FONT>
+below).
+<I>length</I> must evaluate to a number greater than or equal to zero.
+If <I>offset</I> evaluates to a number less than zero, the value
+is used as an offset from the end of the value of <I>parameter</I>.
+If <I>parameter</I> is <B>@</B>, the result is <I>length</I> positional
+parameters beginning at <I>offset</I>.
+If <I>parameter</I> is an indexed array name subscripted by @ or *,
+the result is the <I>length</I>
+members of the array beginning with ${<I>parameter</I>[<I>offset</I>]}.
+A negative <I>offset</I> is taken relative to one greater than the maximum
+index of the specified array.
+Substring expansion applied to an associative array produces undefined
+results.
+Note that a negative offset must be separated from the colon by at least
+one space to avoid being confused with the :- expansion.
+Substring indexing is zero-based unless the positional parameters 
+are used, in which case the indexing starts at 1 by default.
+If <I>offset</I> is 0, and the positional parameters are used, <B>$0</B> is
+prefixed to the list.
+<DT>${<B>!</B><I>prefix</I><B>*</B>}<DD>
+
+<DT>${<B>!</B><I>prefix</I><B>@</B>}<DD>
+
+<B>Names matching prefix.</B>
+Expands to the names of variables whose names begin with <I>prefix</I>,
+separated by the first character of the
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+special variable.
+When <I>@</I> is used and the expansion appears within double quotes, each
+variable name expands to a separate word.
+<DT>${<B>!</B><I>name</I>[<I>@</I>]}<DD>
+
+<DT>${<B>!</B><I>name</I>[<I>*</I>]}<DD>
+
+<B>List of array keys.</B>
+If <I>name</I> is an array variable, expands to the list of array indices
+(keys) assigned in <I>name</I>.
+If <I>name</I> is not an array, expands to 0 if <I>name</I> is set and null
+otherwise.
+When <I>@</I> is used and the expansion appears within double quotes, each
+key expands to a separate word.
+<DT>${<B>#</B><I>parameter</I>}<DD>
+<B>Parameter length.</B>
+The length in characters of the value of <I>parameter</I> is substituted.
+If
+<I>parameter</I>
+
+is
+<B>*</B>
+
+or 
+<B>@</B>,
+
+the value substituted is the number of positional parameters.
+If
+<I>parameter</I>
+
+is an array name subscripted by
+<B>*</B>
+
+or
+<B>@</B>,
+
+the value substituted is the number of elements in the array.
+<DT>${<I>parameter</I><B>#</B><I>word</I>}<DD>
+
+<DT>${<I>parameter</I><B>##</B><I>word</I>}<DD>
+
+<B>Remove matching prefix pattern.</B>
+The 
+<I>word</I>
+
+is expanded to produce a pattern just as in pathname
+expansion.  If the pattern matches the beginning of
+the value of
+<I>parameter</I>,
+
+then the result of the expansion is the expanded value of
+<I>parameter</I>
+
+with the shortest matching pattern (the ``<B>#</B>'' case) or the
+longest matching pattern (the ``<B>##</B>'' case) deleted.
+If
+<I>parameter</I>
+
+is
+<B>@</B>
+
+or
+<B>*</B>,
+
+the pattern removal operation is applied to each positional
+parameter in turn, and the expansion is the resultant list.
+If
+<I>parameter</I>
+
+is an array variable subscripted with
+<B>@</B>
+
+or
+<B>*</B>,
+
+the pattern removal operation is applied to each member of the
+array in turn, and the expansion is the resultant list.
+<DT>${<I>parameter</I><B>%</B><I>word</I>}<DD>
+
+<DT>${<I>parameter</I><B>%%</B><I>word</I>}<DD>
+
+<B>Remove matching suffix pattern.</B>
+The <I>word</I> is expanded to produce a pattern just as in
+pathname expansion.
+If the pattern matches a trailing portion of the expanded value of
+<I>parameter</I>,
+
+then the result of the expansion is the expanded value of
+<I>parameter</I>
+
+with the shortest matching pattern (the ``<B>%</B>'' case) or the
+longest matching pattern (the ``<B>%%</B>'' case) deleted.
+If
+<I>parameter</I>
+
+is
+<B>@</B>
+
+or
+<B>*</B>,
+
+the pattern removal operation is applied to each positional
+parameter in turn, and the expansion is the resultant list.
+If
+<I>parameter</I>
+
+is an array variable subscripted with
+<B>@</B>
+
+or
+<B>*</B>,
+
+the pattern removal operation is applied to each member of the
+array in turn, and the expansion is the resultant list.
+<DT>${<I>parameter</I><B>/</B><I>pattern</I><B>/</B><I>string</I>}<DD>
+<B>Pattern substitution.</B>
+The <I>pattern</I> is expanded to produce a pattern just as in
+pathname expansion.
+<I>Parameter</I> is expanded and the longest match of <I>pattern</I>
+against its value is replaced with <I>string</I>.
+If <I>pattern</I> begins with <B>/</B>, all matches of <I>pattern</I> are
+replaced with <I>string</I>.  Normally only the first match is replaced.
+If <I>pattern</I> begins with <B>#</B>, it must match at the beginning
+of the expanded value of <I>parameter</I>.
+If <I>pattern</I> begins with <B>%</B>, it must match at the end
+of the expanded value of <I>parameter</I>.
+If <I>string</I> is null, matches of <I>pattern</I> are deleted
+and the <B>/</B> following <I>pattern</I> may be omitted.
+If
+<I>parameter</I>
+
+is
+<B>@</B>
+
+or
+<B>*</B>,
+
+the substitution operation is applied to each positional
+parameter in turn, and the expansion is the resultant list.
+If
+<I>parameter</I>
+
+is an array variable subscripted with
+<B>@</B>
+
+or
+<B>*</B>,
+
+the substitution operation is applied to each member of the
+array in turn, and the expansion is the resultant list.
+<DT>${<I>parameter</I><B>^</B><I>pattern</I>}<DD>
+
+<DT>${<I>parameter</I><B>^^</B><I>pattern</I>}<DD>
+<DT>${<I>parameter</I><B>,</B><I>pattern</I>}<DD>
+<DT>${<I>parameter</I><B>,,</B><I>pattern</I>}<DD>
+
+<B>Case modification.</B>
+This expansion modifies the case of alphabetic characters in <I>parameter</I>.
+The <I>pattern</I> is expanded to produce a pattern just as in
+pathname expansion.
+The <B>^</B> operator converts lowercase letters matching <I>pattern</I>
+to uppercase; the <B>,</B> operator converts matching uppercase letters
+to lowercase.
+The <B>^^</B> and <B>,,</B> expansions convert each matched character in the
+expanded value; the <B>^</B> and <B>,</B> expansions match and convert only
+the first character in the expanded value..
+If <I>pattern</I> is omitted, it is treated like a <B>?</B>, which matches
+every character.
+If
+<I>parameter</I>
+
+is
+<B>@</B>
+
+or
+<B>*</B>,
+
+the case modification operation is applied to each positional
+parameter in turn, and the expansion is the resultant list.
+If
+<I>parameter</I>
+
+is an array variable subscripted with
+<B>@</B>
+
+or
+<B>*</B>,
+
+the case modification operation is applied to each member of the
+array in turn, and the expansion is the resultant list.
+</DL>
+<A NAME="lbBC">&nbsp;</A>
+<H4>Command Substitution</H4>
+
+<P>
+
+<I>Command substitution</I> allows the output of a command to replace
+the command name.  There are two forms:
+<P>
+
+<DL COMPACT><DT><DD>
+<P>
+
+<B>$(</B><I>command</I><B>)</B>
+</DL>
+
+or
+<DL COMPACT><DT><DD>
+<B>`</B><I>command</I><B>`</B>
+</DL>
+
+<P>
+
+<B>Bash</B>
+
+performs the expansion by executing <I>command</I> and
+replacing the command substitution with the standard output of the
+command, with any trailing newlines deleted.
+Embedded newlines are not deleted, but they may be removed during
+word splitting.
+The command substitution <B>$(cat </B><I>file</I>) can be replaced by
+the equivalent but faster <B>$(&lt; </B><I>file</I>).
+<P>
+
+When the old-style backquote form of substitution is used,
+backslash retains its literal meaning except when followed by
+<B>$</B>,
+
+<B>`</B>,
+
+or
+<B>\</B>.
+
+The first backquote not preceded by a backslash terminates the
+command substitution.
+When using the $(<I>command</I>) form, all characters between the
+parentheses make up the command; none are treated specially.
+<P>
+
+Command substitutions may be nested.  To nest when using the backquoted form,
+escape the inner backquotes with backslashes.
+<P>
+
+If the substitution appears within double quotes, word splitting and
+pathname expansion are not performed on the results.
+<A NAME="lbBD">&nbsp;</A>
+<H4>Arithmetic Expansion</H4>
+
+<P>
+
+Arithmetic expansion allows the evaluation of an arithmetic expression
+and the substitution of the result.  The format for arithmetic expansion is:
+<DL COMPACT><DT><DD>
+<P>
+
+<B>$((</B><I>expression</I><B>))</B>
+</DL>
+
+<P>
+
+The
+<I>expression</I>
+
+is treated as if it were within double quotes, but a double quote
+inside the parentheses is not treated specially.
+All tokens in the expression undergo parameter expansion, string
+expansion, command substitution, and quote removal.
+Arithmetic expansions may be nested.
+<P>
+
+The evaluation is performed according to the rules listed below under
+<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>.
+
+</FONT>
+If
+<I>expression</I>
+
+is invalid,
+<B>bash</B>
+
+prints a message indicating failure and no substitution occurs.
+<A NAME="lbBE">&nbsp;</A>
+<H4>Process Substitution</H4>
+
+<P>
+
+<I>Process substitution</I> is supported on systems that support named
+pipes (<I>FIFOs</I>) or the <B>/dev/fd</B> method of naming open files.
+It takes the form of
+<B>&lt;(</B><I>list</I><B>)</B>
+or
+<B>&gt;(</B><I>list</I><B>)</B>.
+The process <I>list</I> is run with its input or output connected to a
+<I>FIFO</I> or some file in <B>/dev/fd</B>.  The name of this file is
+passed as an argument to the current command as the result of the
+expansion.  If the <B>&gt;(</B><I>list</I><B>)</B> form is used, writing to
+the file will provide input for <I>list</I>.  If the
+<B>&lt;(</B><I>list</I><B>)</B> form is used, the file passed as an
+argument should be read to obtain the output of <I>list</I>.
+<P>
+
+When available, process substitution is performed
+simultaneously with parameter and variable expansion, 
+command substitution,
+and arithmetic expansion.
+<A NAME="lbBF">&nbsp;</A>
+<H4>Word Splitting</H4>
+
+<P>
+
+The shell scans the results of
+parameter expansion,
+command substitution,
+and
+arithmetic expansion
+that did not occur within double quotes for
+<I>word splitting</I>.
+
+<P>
+
+The shell treats each character of
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+as a delimiter, and splits the results of the other
+expansions into words on these characters.  If
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+is unset, or its
+value is exactly
+<B>&lt;space&gt;&lt;tab&gt;&lt;newline&gt;</B>,
+
+the default, then
+sequences of
+<B>&lt;space&gt;</B>,
+
+<B>&lt;tab&gt;</B>,
+
+and
+<B>&lt;newline&gt;</B>
+
+at the beginning and end of the results of the previous
+expansions are ignored, and
+any sequence of
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+characters not at the beginning or end serves to delimit words.
+If
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+has a value other than the default, then sequences of
+the whitespace characters
+<B>space</B>
+
+and
+<B>tab</B>
+
+are ignored at the beginning and end of the
+word, as long as the whitespace character is in the
+value of
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+(an
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+whitespace character).
+Any character in
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+that is not
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+whitespace, along with any adjacent
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+whitespace characters, delimits a field.
+A sequence of
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+whitespace characters is also treated as a delimiter.
+If the value of
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+is null, no word splitting occurs.
+<P>
+
+Explicit null arguments (<B>&quot;&quot;</B> or <B>aqaq</B>) are retained.
+Unquoted implicit null arguments, resulting from the expansion of
+parameters that have no values, are removed.
+If a parameter with no value is expanded within double quotes, a
+null argument results and is retained.
+<P>
+
+Note that if no expansion occurs, no splitting
+is performed.
+<A NAME="lbBG">&nbsp;</A>
+<H4>Pathname Expansion</H4>
+
+<P>
+
+After word splitting,
+unless the
+<B>-f</B>
+
+option has been set,
+<B>bash</B>
+
+scans each word for the characters
+<B>*</B>,
+
+<B>?</B>,
+
+and
+<B>[</B>.
+
+If one of these characters appears, then the word is
+regarded as a
+<I>pattern</I>,
+
+and replaced with an alphabetically sorted list of
+file names matching the pattern.
+If no matching file names are found,
+and the shell option
+<B>nullglob</B>
+
+is not enabled, the word is left unchanged.
+If the 
+<B>nullglob</B>
+
+option is set, and no matches are found,
+the word is removed.
+If the
+<B>failglob</B>
+
+shell option is set, and no matches are found, an error message
+is printed and the command is not executed.
+If the shell option
+<B>nocaseglob</B>
+
+is enabled, the match is performed without regard to the case
+of alphabetic characters.
+When a pattern is used for pathname expansion,
+the character
+<B>``.''</B>
+
+at the start of a name or immediately following a slash
+must be matched explicitly, unless the shell option
+<B>dotglob</B>
+
+is set.
+When matching a pathname, the slash character must always be
+matched explicitly.
+In other cases, the
+<B>``.''</B>
+
+character is not treated specially.
+See the description of
+<B>shopt</B>
+
+below under
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+for a description of the
+<B>nocaseglob</B>,
+
+<B>nullglob</B>,
+
+<B>failglob</B>,
+
+and
+<B>dotglob</B>
+
+shell options.
+<P>
+
+The
+<FONT SIZE=-1><B>GLOBIGNORE</B>
+
+</FONT>
+shell variable may be used to restrict the set of file names matching a
+<I>pattern</I>.
+
+If
+<FONT SIZE=-1><B>GLOBIGNORE</B>
+
+</FONT>
+is set, each matching file name that also matches one of the patterns in
+<FONT SIZE=-1><B>GLOBIGNORE</B>
+
+</FONT>
+is removed from the list of matches.
+The file names
+<B>``.''</B>
+
+and
+<B>``..''</B>
+
+are always ignored when
+<FONT SIZE=-1><B>GLOBIGNORE</B>
+
+</FONT>
+is set and not null.  However, setting
+<FONT SIZE=-1><B>GLOBIGNORE</B>
+
+</FONT>
+to a non-null value has the effect of enabling the
+<B>dotglob</B>
+
+shell option, so all other file names beginning with a
+<B>``.''</B>
+
+will match.
+To get the old behavior of ignoring file names beginning with a
+<B>``.''</B>,
+
+make
+<B>``.*''</B>
+
+one of the patterns in
+<FONT SIZE=-1><B>GLOBIGNORE</B>.
+
+</FONT>
+The
+<B>dotglob</B>
+
+option is disabled when
+<FONT SIZE=-1><B>GLOBIGNORE</B>
+
+</FONT>
+is unset.
+<P>
+
+<B>Pattern Matching</B>
+<P>
+
+Any character that appears in a pattern, other than the special pattern
+characters described below, matches itself.  The NUL character may not
+occur in a pattern.  A backslash escapes the following character; the
+escaping backslash is discarded when matching.
+The special pattern characters must be quoted if
+they are to be matched literally.
+<P>
+
+The special pattern characters have the following meanings:
+<P>
+
+
+<DL COMPACT>
+<DT><B>*</B>
+
+<DD>
+Matches any string, including the null string.
+When the <B>globstar</B> shell option is enabled, and <B>*</B> is used in
+a filename expansion context, two adjacent <B>*</B>s used as a single
+pattern will match all files and zero or more directories and
+subdirectories.
+If followed by a <B>/</B>, two adjacent <B>*</B>s will match only directories
+and subdirectories.
+<DT><B>?</B>
+
+<DD>
+Matches any single character.
+<DT><B>[...]</B>
+
+<DD>
+Matches any one of the enclosed characters.  A pair of characters
+separated by a hyphen denotes a
+<I>range expression</I>;
+any character that sorts between those two characters, inclusive,
+using the current locale's collating sequence and character set,
+is matched.  If the first character following the
+<B>[</B>
+
+is a
+<B>!</B>
+
+or a
+<B>^</B>
+
+then any character not enclosed is matched.
+The sorting order of characters in range expressions is determined by
+the current locale and the value of the <B>LC_COLLATE</B> shell variable,
+if set.
+A 
+<B>-</B>
+
+may be matched by including it as the first or last character
+in the set.
+A
+<B>]</B>
+
+may be matched by including it as the first character
+in the set.
+<BR>
+
+<P>
+
+
+Within
+<B>[</B>
+
+and
+<B>]</B>,
+
+<I>character classes</I> can be specified using the syntax
+<B>[:</B><I>class</I><B>:]</B>, where <I>class</I> is one of the
+following classes defined in the POSIX standard:
+</DL>
+<P>
+
+<DL COMPACT><DT><DD>
+<B>
+</B>
+
+alnum   alpha   ascii   blank   cntrl   digit   graph   lower   print   punct   space   upper   word   xdigit
+<BR>
+
+A character class matches any character belonging to that class.
+The <B>word</B> character class matches letters, digits, and the character _.
+<BR>
+
+<P>
+
+
+Within
+<B>[</B>
+
+and 
+<B>]</B>,
+
+an <I>equivalence class</I> can be specified using the syntax
+<B>[=</B><I>c</I><B>=]</B>, which matches all characters with the
+same collation weight (as defined by the current locale) as
+the character <I>c</I>.
+<BR>
+
+<P>
+
+
+Within
+<B>[</B>
+
+and 
+<B>]</B>,
+
+the syntax <B>[.</B><I>symbol</I><B>.]</B> matches the collating symbol
+<I>symbol</I>.
+</DL>
+
+
+<P>
+
+If the <B>extglob</B> shell option is enabled using the <B>shopt</B>
+builtin, several extended pattern matching operators are recognized.
+In the following description, a <I>pattern-list</I> is a list of one
+or more patterns separated by a <B>|</B>.
+Composite patterns may be formed using one or more of the following
+sub-patterns:
+<P>
+
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>?(</B><I>pattern-list</I><B>)</B><DD>
+Matches zero or one occurrence of the given patterns
+<DT><B>*(</B><I>pattern-list</I><B>)</B><DD>
+Matches zero or more occurrences of the given patterns
+<DT><B>+(</B><I>pattern-list</I><B>)</B><DD>
+Matches one or more occurrences of the given patterns
+<DT><B>@(</B><I>pattern-list</I><B>)</B><DD>
+Matches one of the given patterns
+<DT><B>!(</B><I>pattern-list</I><B>)</B><DD>
+Matches anything except one of the given patterns
+</DL></DL>
+
+
+<A NAME="lbBH">&nbsp;</A>
+<H4>Quote Removal</H4>
+
+<P>
+
+After the preceding expansions, all unquoted occurrences of the
+characters
+<B>\</B>,
+
+<B>aq</B>,
+
+and <B>&quot;</B> that did not result from one of the above
+expansions are removed.
+<A NAME="lbBI">&nbsp;</A>
+<H3>REDIRECTION</H3>
+
+Before a command is executed, its input and output
+may be
+<I>redirected</I>
+
+using a special notation interpreted by the shell.
+Redirection may also be used to open and close files for the
+current shell execution environment.  The following redirection
+operators may precede or appear anywhere within a
+<I>simple command</I>
+
+or may follow a
+<I>command</I>.
+
+Redirections are processed in the order they appear, from
+left to right.
+<P>
+
+In the following descriptions, if the file descriptor number is
+omitted, and the first character of the redirection operator is
+<B>&lt;</B>,
+
+the redirection refers to the standard input (file descriptor
+0).  If the first character of the redirection operator is
+<B>&gt;</B>,
+
+the redirection refers to the standard output (file descriptor
+1).
+<P>
+
+The word following the redirection operator in the following
+descriptions, unless otherwise noted, is subjected to brace expansion,
+tilde expansion, parameter expansion, command substitution, arithmetic
+expansion, quote removal, pathname expansion, and word splitting.
+If it expands to more than one word,
+<B>bash</B>
+
+reports an error.
+<P>
+
+Note that the order of redirections is significant.  For example, 
+the command
+<DL COMPACT><DT><DD>
+<P>
+
+ls <B>&gt;</B> dirlist 2<B>&gt;&amp;</B>1
+</DL>
+
+<P>
+
+directs both standard output and standard error to the file 
+<I>dirlist</I>,
+
+while the command
+<DL COMPACT><DT><DD>
+<P>
+
+ls 2<B>&gt;&amp;</B>1 <B>&gt;</B> dirlist
+</DL>
+
+<P>
+
+directs only the standard output to file
+<I>dirlist</I>,
+
+because the standard error was duplicated as standard output
+before the standard output was redirected to
+<I>dirlist</I>.
+
+<P>
+
+<B>Bash</B> handles several filenames specially when they are used in
+redirections, as described in the following table:
+<DL COMPACT><DT><DD>
+<P>
+
+
+<DL COMPACT>
+<DT><B>/dev/fd/</B><I>fd</I>
+
+<DD>
+If <I>fd</I> is a valid integer, file descriptor <I>fd</I> is duplicated.
+<DT><B>/dev/stdin</B>
+
+<DD>
+File descriptor 0 is duplicated.
+<DT><B>/dev/stdout</B>
+
+<DD>
+File descriptor 1 is duplicated.
+<DT><B>/dev/stderr</B>
+
+<DD>
+File descriptor 2 is duplicated.
+<DT><B>/dev/tcp/</B><I>host</I>/<I>port</I>
+
+<DD>
+If <I>host</I> is a valid hostname or Internet address, and <I>port</I>
+is an integer port number or service name, <B>bash</B> attempts to open
+a TCP connection to the corresponding socket.
+<DT><B>/dev/udp/</B><I>host</I>/<I>port</I>
+
+<DD>
+If <I>host</I> is a valid hostname or Internet address, and <I>port</I>
+is an integer port number or service name, <B>bash</B> attempts to open
+a UDP connection to the corresponding socket.
+
+</DL></DL>
+
+<P>
+
+A failure to open or create a file causes the redirection to fail.
+<P>
+
+Redirections using file descriptors greater than 9 should be used with
+care, as they may conflict with file descriptors the shell uses
+internally.
+<A NAME="lbBJ">&nbsp;</A>
+<H4>Redirecting Input</H4>
+
+<P>
+
+Redirection of input causes the file whose name results from
+the expansion of
+<I>word</I>
+
+to be opened for reading on file descriptor
+<I>n</I>,
+
+or the standard input (file descriptor 0) if
+<I>n</I>
+
+is not specified.
+<P>
+
+The general format for redirecting input is:
+<DL COMPACT><DT><DD>
+<P>
+
+[<I>n</I>]<B>&lt;</B><I>word</I>
+</DL>
+
+<A NAME="lbBK">&nbsp;</A>
+<H4>Redirecting Output</H4>
+
+<P>
+
+Redirection of output causes the file whose name results from
+the expansion of
+<I>word</I>
+
+to be opened for writing on file descriptor
+<I>n</I>,
+
+or the standard output (file descriptor 1) if
+<I>n</I>
+
+is not specified.  If the file does not exist it is created;
+if it does exist it is truncated to zero size.
+<P>
+
+The general format for redirecting output is:
+<DL COMPACT><DT><DD>
+<P>
+
+[<I>n</I>]<B>&gt;</B><I>word</I>
+</DL>
+
+<P>
+
+If the redirection operator is
+<B>&gt;</B>,
+
+and the
+<B>noclobber</B>
+
+option to the
+<B>set</B>
+
+builtin has been enabled, the redirection will fail if the file
+whose name results from the expansion of <I>word</I> exists and is
+a regular file.
+If the redirection operator is
+<B>&gt;|</B>,
+
+or the redirection operator is
+<B>&gt;</B>
+
+and the
+<B>noclobber</B>
+
+option to the
+<B>set</B>
+
+builtin command is not enabled, the redirection is attempted even
+if the file named by <I>word</I> exists.
+<A NAME="lbBL">&nbsp;</A>
+<H4>Appending Redirected Output</H4>
+
+<P>
+
+Redirection of output in this fashion
+causes the file whose name results from
+the expansion of
+<I>word</I>
+
+to be opened for appending on file descriptor
+<I>n</I>,
+
+or the standard output (file descriptor 1) if
+<I>n</I>
+
+is not specified.  If the file does not exist it is created.
+<P>
+
+The general format for appending output is:
+<DL COMPACT><DT><DD>
+<P>
+
+[<I>n</I>]<B>&gt;&gt;</B><I>word</I>
+</DL>
+
+<P>
+
+<A NAME="lbBM">&nbsp;</A>
+<H4>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)
+to be redirected to the file whose name is the
+expansion of
+<I>word</I>.
+
+<P>
+
+There are two formats for redirecting standard output and
+standard error:
+<DL COMPACT><DT><DD>
+<P>
+
+<B>&amp;&gt;</B><I>word</I>
+</DL>
+
+and
+<DL COMPACT><DT><DD>
+<B>&gt;&amp;</B><I>word</I>
+</DL>
+
+<P>
+
+Of the two forms, the first is preferred.
+This is semantically equivalent to
+<DL COMPACT><DT><DD>
+<P>
+
+<B>&gt;</B><I>word</I> 2<B>&gt;&amp;</B>1
+</DL>
+
+<P>
+
+<A NAME="lbBN">&nbsp;</A>
+<H4>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)
+to be appended to the file whose name is the
+expansion of
+<I>word</I>.
+
+<P>
+
+The format for appending standard output and standard error is:
+<DL COMPACT><DT><DD>
+<P>
+
+<B>&amp;&gt;&gt;</B><I>word</I>
+</DL>
+
+<P>
+
+This is semantically equivalent to
+<DL COMPACT><DT><DD>
+<P>
+
+<B>&gt;&gt;</B><I>word</I> 2<B>&gt;&amp;</B>1
+</DL>
+
+<A NAME="lbBO">&nbsp;</A>
+<H4>Here Documents</H4>
+
+<P>
+
+This type of redirection instructs the shell to read input from the
+current source until a line containing only
+<I>delimiter</I>
+
+(with no trailing blanks)
+is seen.  All of
+the lines read up to that point are then used as the standard
+input for a command.
+<P>
+
+The format of here-documents is:
+<DL COMPACT><DT><DD>
+<P>
+
+<PRE>
+<B>&lt;&lt;</B>[<B>-</B>]<I>word</I>
+        <I>here-document</I>
+<I>delimiter</I>
+</PRE>
+
+</DL>
+
+<P>
+
+No parameter expansion, command substitution, arithmetic expansion,
+or pathname expansion is performed on
+<I>word</I>.
+
+If any characters in
+<I>word</I>
+
+are quoted, the
+<I>delimiter</I>
+
+is the result of quote removal on
+<I>word</I>,
+
+and the lines in the here-document are not expanded.
+If <I>word</I> is unquoted,
+all lines of the here-document are subjected to parameter expansion,
+command substitution, and arithmetic expansion.  In the latter
+case, the character sequence
+<B>\&lt;newline&gt;</B>
+
+is ignored, and
+<B>\</B>
+
+must be used to quote the characters
+<B>\</B>,
+
+<B>$</B>,
+
+and
+<B>`</B>.
+
+<P>
+
+If the redirection operator is
+<B>&lt;&lt;-</B>,
+
+then all leading tab characters are stripped from input lines and the
+line containing
+<I>delimiter</I>.
+
+This allows
+here-documents within shell scripts to be indented in a
+natural fashion.
+<A NAME="lbBP">&nbsp;</A>
+<H4>Here Strings</H4>
+
+A variant of here documents, the format is:
+<DL COMPACT><DT><DD>
+<P>
+
+<PRE>
+<B>&lt;&lt;&lt;</B><I>word</I>
+</PRE>
+
+</DL>
+
+<P>
+
+The <I>word</I> is expanded and supplied to the command on its standard
+input.
+<A NAME="lbBQ">&nbsp;</A>
+<H4>Duplicating File Descriptors</H4>
+
+<P>
+
+The redirection operator
+<DL COMPACT><DT><DD>
+<P>
+
+[<I>n</I>]<B>&lt;&amp;</B><I>word</I>
+</DL>
+
+<P>
+
+is used to duplicate input file descriptors.
+If
+<I>word</I>
+
+expands to one or more digits, the file descriptor denoted by
+<I>n</I>
+
+is made to be a copy of that file descriptor.
+If the digits in
+<I>word</I>
+
+do not specify a file descriptor open for input, a redirection error occurs.
+If
+<I>word</I>
+
+evaluates to
+<B>-</B>,
+
+file descriptor
+<I>n</I>
+
+is closed.  If
+<I>n</I>
+
+is not specified, the standard input (file descriptor 0) is used.
+<P>
+
+The operator
+<DL COMPACT><DT><DD>
+<P>
+
+[<I>n</I>]<B>&gt;&amp;</B><I>word</I>
+</DL>
+
+<P>
+
+is used similarly to duplicate output file descriptors.  If
+<I>n</I>
+
+is not specified, the standard output (file descriptor 1) is used.
+If the digits in
+<I>word</I>
+
+do not specify a file descriptor open for output, a redirection error occurs.
+As a special case, if <I>n</I> is omitted, and <I>word</I> does not
+expand to one or more digits, the standard output and standard
+error are redirected as described previously.
+<A NAME="lbBR">&nbsp;</A>
+<H4>Moving File Descriptors</H4>
+
+<P>
+
+The redirection operator
+<DL COMPACT><DT><DD>
+<P>
+
+[<I>n</I>]<B>&lt;&amp;</B><I>digit</I><B>-</B>
+</DL>
+
+<P>
+
+moves the file descriptor <I>digit</I> to file descriptor
+<I>n</I>,
+
+or the standard input (file descriptor 0) if <I>n</I> is not specified.
+<I>digit</I> is closed after being duplicated to <I>n</I>.
+<P>
+
+Similarly, the redirection operator
+<DL COMPACT><DT><DD>
+<P>
+
+[<I>n</I>]<B>&gt;&amp;</B><I>digit</I><B>-</B>
+</DL>
+
+<P>
+
+moves the file descriptor <I>digit</I> to file descriptor
+<I>n</I>,
+
+or the standard output (file descriptor 1) if <I>n</I> is not specified.
+<A NAME="lbBS">&nbsp;</A>
+<H4>Opening File Descriptors for Reading and Writing</H4>
+
+<P>
+
+The redirection operator
+<DL COMPACT><DT><DD>
+<P>
+
+[<I>n</I>]<B>&lt;&gt;</B><I>word</I>
+</DL>
+
+<P>
+
+causes the file whose name is the expansion of
+<I>word</I>
+
+to be opened for both reading and writing on file descriptor
+<I>n</I>,
+
+or on file descriptor 0 if
+<I>n</I>
+
+is not specified.  If the file does not exist, it is created.
+<A NAME="lbBT">&nbsp;</A>
+<H3>ALIASES</H3>
+
+<I>Aliases</I> 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
+<B>alias</B>
+
+and
+<B>unalias</B>
+
+builtin commands (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+The first word of each simple command, if unquoted,
+is checked to see if it has an
+alias.  If so, that word is replaced by the text of the alias.
+The characters <B>/</B>, <B>$</B>, <B>`</B>, and <B>=</B> and
+any of the shell <I>metacharacters</I> or quoting characters
+listed above may not appear in an alias name.
+The replacement text may contain any valid shell input,
+including shell metacharacters.
+The first word of the replacement text is tested
+for aliases, but a word that is identical to an alias being expanded
+is not expanded a second time.
+This means that one may alias
+<B>ls</B>
+
+to
+<B>ls -F</B>,
+
+for instance, and
+<B>bash</B>
+
+does not try to recursively expand the replacement text.
+If the last character of the alias value is a
+<I>blank</I>,
+
+then the next command
+word following the alias is also checked for alias expansion.
+<P>
+
+Aliases are created and listed with the
+<B>alias</B>
+
+command, and removed with the
+<B>unalias</B>
+
+command.
+<P>
+
+There is no mechanism for using arguments in the replacement text.
+If arguments are needed, a shell function should be used (see
+<FONT SIZE=-1><B>FUNCTIONS</B>
+
+</FONT>
+below).
+<P>
+
+Aliases are not expanded when the shell is not interactive, unless
+the
+<B>expand_aliases</B>
+
+shell option is set using
+<B>shopt</B>
+
+(see the description of
+<B>shopt</B>
+
+under
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B></FONT>
+below).
+<P>
+
+The rules concerning the definition and use of aliases are
+somewhat confusing.
+<B>Bash</B>
+
+always reads at least one complete line
+of input before executing any
+of the commands on that line.  Aliases are expanded when a
+command is read, not when it is executed.  Therefore, an
+alias definition appearing on the same line as another
+command does not take effect until the next line of input is read.
+The commands following the alias definition
+on that line are not affected by the new alias.
+This behavior is also an issue when functions are executed.
+Aliases are expanded when a function definition is read,
+not when the function is executed, because a function definition
+is itself a compound command.  As a consequence, aliases
+defined in a function are not available until after that
+function is executed.  To be safe, always put
+alias definitions on a separate line, and do not use
+<B>alias</B>
+
+in compound commands.
+<P>
+
+For almost every purpose, aliases are superseded by
+shell functions.
+<A NAME="lbBU">&nbsp;</A>
+<H3>FUNCTIONS</H3>
+
+A shell function, defined as described above under
+<FONT SIZE=-1><B>SHELL GRAMMAR</B>,
+
+</FONT>
+stores a series of commands for later execution.
+When the name of a shell function is used as a simple command name,
+the list of commands associated with that function name is executed.
+Functions are executed in the context of the
+current shell; no new process is created to interpret
+them (contrast this with the execution of a shell script).
+When a function is executed, the arguments to the
+function become the positional parameters
+during its execution.
+The special parameter
+<B>#</B>
+
+is updated to reflect the change.  Special parameter 0
+is unchanged.
+The first element of the
+<FONT SIZE=-1><B>FUNCNAME</B>
+
+</FONT>
+variable is set to the name of the function while the function
+is executing.
+All other aspects of the shell execution
+environment are identical between a function and its caller
+with the exception that the
+<FONT SIZE=-1><B>DEBUG</B>
+
+</FONT>
+and
+<B>RETURN</B>
+
+traps (see the description of the
+<B>trap</B>
+
+builtin under
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below) are not inherited unless the function has been given the
+<B>trace</B> attribute (see the description of the
+<FONT SIZE=-1><B>declare</B>
+
+</FONT>
+builtin below) or the
+<B>-o functrace</B> shell option has been enabled with
+the <B>set</B> builtin
+(in which case all functions inherit the <B>DEBUG</B> and <B>RETURN</B> traps).
+<P>
+
+Variables local to the function may be declared with the
+<B>local</B>
+
+builtin command.  Ordinarily, variables and their values
+are shared between the function and its caller.
+<P>
+
+If the builtin command
+<B>return</B>
+
+is executed in a function, the function completes and
+execution resumes with the next command after the function
+call.
+Any command associated with the <B>RETURN</B> trap is executed
+before execution resumes.
+When a function completes, the values of the
+positional parameters and the special parameter
+<B>#</B>
+
+are restored to the values they had prior to the function's
+execution.
+<P>
+
+Function names and definitions may be listed with the
+<B>-f</B>
+
+option to the
+<B>declare</B>
+
+or
+<B>typeset</B>
+
+builtin commands.  The
+<B>-F</B>
+
+option to
+<B>declare</B>
+
+or
+<B>typeset</B>
+
+will list the function names only
+(and optionally the source file and line number, if the <B>extdebug</B>
+shell option is enabled).
+Functions may be exported so that subshells
+automatically have them defined with the
+<B>-f</B>
+
+option to the 
+<B>export</B>
+
+builtin.
+A function definition may be deleted using the <B>-f</B> option to
+the
+<B>unset</B>
+
+builtin.
+Note that shell functions and variables with the same name may result
+in multiple identically-named entries in the environment passed to the
+shell's children.
+Care should be taken in cases where this may cause a problem.
+<P>
+
+Functions may be recursive.  No limit is imposed on the number
+of recursive calls.
+<A NAME="lbBV">&nbsp;</A>
+<H3>ARITHMETIC EVALUATION</H3>
+
+The shell allows arithmetic expressions to be evaluated, under
+certain circumstances (see the <B>let</B> and <B>declare</B> builtin
+commands and <B>Arithmetic Expansion</B>).
+Evaluation is done in fixed-width integers with no check for overflow,
+though division by 0 is trapped and flagged as an error.
+The operators and their precedence, associativity, and values
+are the same as in the C language.
+The following list of operators is grouped into levels of
+equal-precedence operators.
+The levels are listed in order of decreasing precedence.
+<P>
+
+
+<DL COMPACT>
+<DT><B></B><I>id</I>++ <I>id</I>--
+
+<DD>
+variable post-increment and post-decrement
+<DT><B>++</B><I>id</I> --<I>id</I>
+
+<DD>
+variable pre-increment and pre-decrement
+<DT><B>- +</B>
+
+<DD>
+unary minus and plus
+<DT><B>! ~</B>
+
+<DD>
+logical and bitwise negation
+<DT><B>**</B>
+
+<DD>
+exponentiation
+<DT><B>* / %</B>
+
+<DD>
+multiplication, division, remainder
+<DT><B>+ -</B>
+
+<DD>
+addition, subtraction
+<DT><B>&lt;&lt; &gt;&gt;</B>
+
+<DD>
+left and right bitwise shifts
+<DT><B>&lt;= &gt;= &lt; &gt;</B>
+
+<DD>
+comparison
+<DT><B>== !=</B>
+
+<DD>
+equality and inequality
+<DT><B>&amp;</B>
+
+<DD>
+bitwise AND
+<DT><B>^</B>
+
+<DD>
+bitwise exclusive OR
+<DT><B>|</B>
+
+<DD>
+bitwise OR
+<DT><B>&amp;&amp;</B>
+
+<DD>
+logical AND
+<DT><B>||</B>
+
+<DD>
+logical OR
+<DT><B></B><I>expr</I>?<I>expr</I>:<I>expr</I>
+
+<DD>
+conditional operator
+<DT><B>= *= /= %= += -= &lt;&lt;= &gt;&gt;= &amp;= ^= |=</B>
+
+<DD>
+assignment
+<DT><B></B><I>expr1</I> , <I>expr2</I>
+
+<DD>
+comma
+
+</DL>
+<P>
+
+Shell variables are allowed as operands; parameter expansion is
+performed before the expression is evaluated.
+Within an expression, shell variables may also be referenced by name
+without using the parameter expansion syntax.
+A shell variable that is null or unset evaluates to 0 when referenced
+by name without using the parameter expansion syntax.
+The value of a variable is evaluated as an arithmetic expression
+when it is referenced, or when a variable which has been given the
+<I>integer</I> attribute using <B>declare -i</B> is assigned a value.
+A null value evaluates to 0.
+A shell variable need not have its integer attribute
+turned on to be used in an expression.
+<P>
+
+Constants with a leading 0 are interpreted as octal numbers.
+A leading 0x or 0X denotes hexadecimal.
+Otherwise, numbers take the form [<I>base#</I>]n, where <I>base</I>
+is a decimal number between 2 and 64 representing the arithmetic
+base, and <I>n</I> is a number in that base.
+If <I>base#</I> is omitted, then base 10 is used.
+The digits greater than 9 are represented by the lowercase letters,
+the uppercase letters, @, and _, in that order.
+If <I>base</I> is less than or equal to 36, lowercase and uppercase
+letters may be used interchangeably to represent numbers between 10
+and 35.
+<P>
+
+Operators are evaluated in order of precedence.  Sub-expressions in
+parentheses are evaluated first and may override the precedence
+rules above.
+<A NAME="lbBW">&nbsp;</A>
+<H3>CONDITIONAL EXPRESSIONS</H3>
+
+Conditional expressions are used by the <B>[[</B> compound command and
+the <B>test</B> and <B>[</B> builtin commands to test file attributes
+and perform string and arithmetic comparisons.
+Expressions are formed from the following unary or binary primaries.
+If any <I>file</I> argument to one of the primaries is of the form
+<I>/dev/fd/n</I>, then file descriptor <I>n</I> is checked.
+If the <I>file</I> argument to one of the primaries is one of
+<I>/dev/stdin</I>, <I>/dev/stdout</I>, or <I>/dev/stderr</I>, file
+descriptor 0, 1, or 2, respectively, is checked.
+<P>
+
+Unless otherwise specified, primaries that operate on files follow symbolic
+links and operate on the target of the link, rather than the link itself.
+<P>
+
+<DL COMPACT>
+<DT><B>-a </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists.
+<DT><B>-b </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is a block special file.
+<DT><B>-c </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is a character special file.
+<DT><B>-d </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is a directory.
+<DT><B>-e </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists.
+<DT><B>-f </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is a regular file.
+<DT><B>-g </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is set-group-id.
+<DT><B>-h </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is a symbolic link.
+<DT><B>-k </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and its ``sticky'' bit is set.
+<DT><B>-p </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is a named pipe (FIFO).
+<DT><B>-r </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is readable.
+<DT><B>-s </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and has a size greater than zero.
+<DT><B>-t </B><I>fd</I>
+
+<DD>
+True if file descriptor
+<I>fd</I>
+
+is open and refers to a terminal.
+<DT><B>-u </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and its set-user-id bit is set.
+<DT><B>-w </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is writable.
+<DT><B>-x </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is executable.
+<DT><B>-O </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is owned by the effective user id.
+<DT><B>-G </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is owned by the effective group id.
+<DT><B>-L </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is a symbolic link.
+<DT><B>-S </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and is a socket.
+<DT><B>-N </B><I>file</I>
+
+<DD>
+True if <I>file</I> exists and has been modified since it was last read.
+<DT><I>file1</I> -<B>nt</B> <I>file2</I><DD>
+True if <I>file1</I> is newer (according to modification date) than <I>file2</I>,
+or if <I>file1</I> exists and file2 does not.
+<DT><I>file1</I> -<B>ot</B> <I>file2</I><DD>
+True if <I>file1</I> is older than <I>file2</I>, or if <I>file2</I> exists
+and <I>file1</I> does not.
+<DT><I>file1</I> <B>-ef</B> <I>file2</I><DD>
+True if <I>file1</I> and <I>file2</I> refer to the same device and
+inode numbers.
+<DT><B>-o </B><I>optname</I>
+
+<DD>
+True if shell option
+<I>optname</I>
+
+is enabled.
+See the list of options under the description of the
+<B>-o</B>
+
+option to the
+<B>set</B>
+
+builtin below.
+<DT><B>-z </B><I>string</I>
+
+<DD>
+True if the length of <I>string</I> is zero.
+<DT><I>string</I><DD>
+
+<DT><B>-n </B><I>string</I>
+
+<DD>
+
+True if the length of
+<I>string</I>
+
+is non-zero.
+<DT><I>string1</I> <B>==</B> <I>string2</I><DD>
+True if the strings are equal.  <B>=</B> may be used in place of
+<B>==</B> for strict POSIX compliance.
+<DT><I>string1</I> <B>!=</B> <I>string2</I><DD>
+True if the strings are not equal.
+<DT><I>string1</I> <B>&lt;</B> <I>string2</I><DD>
+True if <I>string1</I> sorts before <I>string2</I> lexicographically
+in the current locale.
+<DT><I>string1</I> <B>&gt;</B> <I>string2</I><DD>
+True if <I>string1</I> sorts after <I>string2</I> lexicographically
+in the current locale.
+<DT><I>arg1</I> <B>OP</B> <I>arg2</I>
+
+<DD>
+<FONT SIZE=-1><B>OP</B>
+
+</FONT>
+is one of
+<B>-eq</B>,
+
+<B>-ne</B>,
+
+<B>-lt</B>,
+
+<B>-le</B>,
+
+<B>-gt</B>,
+
+or
+<B>-ge</B>.
+
+These arithmetic binary operators return true if <I>arg1</I>
+is equal to, not equal to, less than, less than or equal to,
+greater than, or greater than or equal to <I>arg2</I>, respectively.
+<I>Arg1</I>
+
+and
+<I>arg2</I>
+
+may be positive or negative integers.
+
+</DL>
+<A NAME="lbBX">&nbsp;</A>
+<H3>SIMPLE COMMAND EXPANSION</H3>
+
+When a simple command is executed, the shell performs the following
+expansions, assignments, and redirections, from left to right.
+<DL COMPACT>
+<DT>1.<DD>
+The words that the parser has marked as variable assignments (those
+preceding the command name) and redirections are saved for later
+processing.
+<DT>2.<DD>
+The words that are not variable assignments or redirections are
+expanded.  If any words remain after expansion, the first word
+is taken to be the name of the command and the remaining words are
+the arguments.
+<DT>3.<DD>
+Redirections are performed as described above under
+<FONT SIZE=-1><B>REDIRECTION</B>.
+
+</FONT>
+<DT>4.<DD>
+The text after the <B>=</B> in each variable assignment undergoes tilde
+expansion, parameter expansion, command substitution, arithmetic expansion,
+and quote removal before being assigned to the variable.
+</DL>
+<P>
+
+If no command name results, the variable assignments affect the current
+shell environment.  Otherwise, the variables are added to the environment
+of the executed command and do not affect the current shell environment.
+If any of the assignments attempts to assign a value to a readonly variable,
+an error occurs, and the command exits with a non-zero status.
+<P>
+
+If no command name results, redirections are performed, but do not
+affect the current shell environment.  A redirection error causes the
+command to exit with a non-zero status.
+<P>
+
+If there is a command name left after expansion, execution proceeds as
+described below.  Otherwise, the command exits.  If one of the expansions
+contained a command substitution, the exit status of the command is
+the exit status of the last command substitution performed.  If there
+were no command substitutions, the command exits with a status of zero.
+<A NAME="lbBY">&nbsp;</A>
+<H3>COMMAND EXECUTION</H3>
+
+After a command has been split into words, if it results in a
+simple command and an optional list of arguments, the following
+actions are taken.
+<P>
+
+If the command name contains no slashes, the shell attempts to
+locate it.  If there exists a shell function by that name, that
+function is invoked as described above in
+<FONT SIZE=-1><B>FUNCTIONS</B>.
+
+</FONT>
+If the name does not match a function, the shell searches for
+it in the list of shell builtins.  If a match is found, that
+builtin is invoked.
+<P>
+
+If the name is neither a shell function nor a builtin,
+and contains no slashes,
+<B>bash</B>
+
+searches each element of the
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+for a directory containing an executable file by that name.
+<B>Bash</B>
+
+uses a hash table to remember the full pathnames of executable
+files (see
+<B>hash</B>
+
+under
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+A full search of the directories in
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+is performed only if the command is not found in the hash table.
+If the search is unsuccessful, the shell searches for a defined shell
+function named <B>command_not_found_handle</B>.
+If that function exists, it is invoked with the original command and
+the original command's arguments as its arguments, and the function's
+exit status becomes the exit status of the shell.
+If that function is not defined, the shell prints an error
+message and returns an exit status of 127.
+<P>
+
+If the search is successful, or if the command name contains
+one or more slashes, the shell executes the named program in a
+separate execution environment.
+Argument 0 is set to the name given, and the remaining arguments
+to the command are set to the arguments given, if any.
+<P>
+
+If this execution fails because the file is not in executable
+format, and the file is not a directory, it is assumed to be
+a <I>shell script</I>, a file
+containing shell commands.  A subshell is spawned to execute
+it.  This subshell reinitializes itself, so
+that the effect is as if a new shell had been invoked
+to handle the script, with the exception that the locations of
+commands remembered by the parent (see
+<B>hash</B>
+
+below under
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>)</FONT>
+are retained by the child.
+<P>
+
+If the program is a file beginning with
+<B>#!</B>,
+
+the remainder of the first line specifies an interpreter
+for the program.  The shell executes the
+specified interpreter on operating systems that do not
+handle this executable format themselves.  The arguments to the 
+interpreter consist of a single optional argument following the
+interpreter name on the first line of the program, followed
+by the name of the program, followed by the command
+arguments, if any.
+<A NAME="lbBZ">&nbsp;</A>
+<H3>COMMAND EXECUTION ENVIRONMENT</H3>
+
+The shell has an <I>execution environment</I>, which consists of the
+following:
+<P>
+<DL COMPACT>
+<DT>*<DD>
+open files inherited by the shell at invocation, as modified by
+redirections supplied to the <B>exec</B> builtin
+<DT>*<DD>
+the current working directory as set by <B>cd</B>, <B>pushd</B>, or
+<B>popd</B>, or inherited by the shell at invocation
+<DT>*<DD>
+the file creation mode mask as set by <B>umask</B> or inherited from
+the shell's parent
+<DT>*<DD>
+current traps set by <B>trap</B>
+<DT>*<DD>
+shell parameters that are set by variable assignment or with <B>set</B>
+or inherited from the shell's parent in the environment
+<DT>*<DD>
+shell functions defined during execution or inherited from the shell's
+parent in the environment
+<DT>*<DD>
+options enabled at invocation (either by default or with command-line
+arguments) or by <B>set</B>
+<DT>*<DD>
+options enabled by <B>shopt</B>
+<DT>*<DD>
+shell aliases defined with <B>alias</B>
+<DT>*<DD>
+various process IDs, including those of background jobs, the value
+of <B>$$</B>, and the value of <B>$PPID</B>
+</DL>
+<P>
+
+When a simple command other than a builtin or shell function
+is to be executed, it
+is invoked in a separate execution environment that consists of
+the following.  Unless otherwise noted, the values are inherited
+from the shell.
+<P>
+<DL COMPACT>
+<DT>*<DD>
+the shell's open files, plus any modifications and additions specified
+by redirections to the command
+<DT>*<DD>
+the current working directory
+<DT>*<DD>
+the file creation mode mask
+<DT>*<DD>
+shell variables and functions marked for export, along with variables
+exported for the command, passed in the environment
+<DT>*<DD>
+traps caught by the shell are reset to the values inherited from the
+shell's parent, and traps ignored by the shell are ignored
+</DL>
+<P>
+
+A command invoked in this separate environment cannot affect the
+shell's execution environment. 
+<P>
+
+Command substitution, commands grouped with parentheses,
+and asynchronous commands are invoked in a
+subshell environment that is a duplicate of the shell environment,
+except that traps caught by the shell are reset to the values
+that the shell inherited from its parent at invocation.  Builtin
+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.
+<P>
+
+Subshells spawned to execute command substitutions inherit the value of
+the <B>-e</B> option from the parent shell.  When not in posix mode,
+Bash clears the <B>-e</B> option in such subshells.
+<P>
+
+If a command is followed by a <B>&amp;</B> and job control is not active, the
+default standard input for the command is the empty file <I>/dev/null</I>.
+Otherwise, the invoked command inherits the file descriptors of the calling
+shell as modified by redirections.
+<A NAME="lbCA">&nbsp;</A>
+<H3>ENVIRONMENT</H3>
+
+When a program is invoked it is given an array of strings
+called the
+<I>environment</I>.
+
+This is a list of 
+<I>name</I>-<I>value</I> pairs, of the form
+<I>name</I>=value.
+
+<P>
+
+The shell 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
+<I>export</I>
+
+to child processes.  Executed commands inherit the environment.
+The
+<B>export</B>
+
+and
+<B>declare -x</B>
+
+commands allow parameters and functions to be added to and
+deleted from the environment.  If the value of a parameter
+in the environment is modified, the new value becomes part
+of the environment, replacing the old.  The environment
+inherited by any executed command consists of the shell's
+initial environment, whose values may be modified in the shell,
+less any pairs removed by the
+<B>unset</B>
+
+command, plus any additions via the
+<B>export</B>
+
+and
+<B>declare -x</B>
+
+commands.
+<P>
+
+The environment for any
+<I>simple command</I>
+
+or function may be augmented temporarily by prefixing it with
+parameter assignments, as described above in
+<FONT SIZE=-1><B>PARAMETERS</B>.
+
+</FONT>
+These assignment statements affect only the environment seen
+by that command.
+<P>
+
+If the 
+<B>-k</B>
+
+option is set (see the
+<B>set</B>
+
+builtin command below), then
+<I>all</I>
+
+parameter assignments are placed in the environment for a command,
+not just those that precede the command name.
+<P>
+
+When
+<B>bash</B>
+
+invokes an external command, the variable
+<B>_</B>
+
+is set to the full file name of the command and passed to that
+command in its environment.
+<A NAME="lbCB">&nbsp;</A>
+<H3>EXIT STATUS</H3>
+
+<P>
+
+The exit status of an executed command is the value returned by the
+<I>waitpid</I> system call or equivalent function.  Exit statuses
+fall between 0 and 255, though, as explained below, the shell may
+use values above 125 specially.  Exit statuses from shell builtins and
+compound commands are also limited to this range. Under certain
+circumstances, the shell will use special values to indicate specific
+failure modes.
+<P>
+
+For the shell's purposes, a command which exits with a 
+zero exit status has succeeded.  An exit status of zero
+indicates success.  A non-zero exit status indicates failure.
+When a command terminates on a fatal signal <I>N</I>, <B>bash</B> uses
+the value of 128+<I>N</I> as the exit status.
+<P>
+
+If a command is not found, the child process created to
+execute it returns a status of 127.  If a command is found
+but is not executable, the return status is 126.
+<P>
+
+If a command fails because of an error during expansion or redirection,
+the exit status is greater than zero.
+<P>
+
+Shell builtin commands return a status of 0 (<I>true</I>) if
+successful, and non-zero (<I>false</I>) if an error occurs
+while they execute. 
+All builtins return an exit status of 2 to indicate incorrect usage.
+<P>
+
+<B>Bash</B> itself returns the exit status of the last command
+executed, unless a syntax error occurs, in which case it exits
+with a non-zero value.  See also the <B>exit</B> builtin
+command below.
+<A NAME="lbCC">&nbsp;</A>
+<H3>SIGNALS</H3>
+
+When <B>bash</B> is interactive, in the absence of any traps, it ignores
+<FONT SIZE=-1><B>SIGTERM</B>
+
+</FONT>
+(so that <B>kill 0</B> does not kill an interactive shell),
+and
+<FONT SIZE=-1><B>SIGINT</B>
+
+</FONT>
+is caught and handled (so that the <B>wait</B> builtin is interruptible).
+In all cases, <B>bash</B> ignores
+<FONT SIZE=-1><B>SIGQUIT</B>.
+
+</FONT>
+If job control is in effect,
+<B>bash</B>
+
+ignores
+<FONT SIZE=-1><B>SIGTTIN</B>,
+
+</FONT>
+<FONT SIZE=-1><B>SIGTTOU</B>,
+
+</FONT>
+and
+<FONT SIZE=-1><B>SIGTSTP</B>.
+
+</FONT>
+<P>
+
+Non-builtin commands run by <B>bash</B> have signal handlers
+set to the values inherited by the shell from its parent.
+When job control is not in effect, asynchronous commands
+ignore
+<FONT SIZE=-1><B>SIGINT</B>
+
+</FONT>
+and
+<FONT SIZE=-1><B>SIGQUIT</B>
+
+</FONT>
+in addition to these inherited handlers.
+Commands run as a result of command substitution ignore the
+keyboard-generated job control signals
+<FONT SIZE=-1><B>SIGTTIN</B>,
+
+</FONT>
+<FONT SIZE=-1><B>SIGTTOU</B>,
+
+</FONT>
+and
+<FONT SIZE=-1><B>SIGTSTP</B>.
+
+</FONT>
+<P>
+
+The shell exits by default upon receipt of a
+<FONT SIZE=-1><B>SIGHUP</B>.
+
+</FONT>
+Before exiting, an interactive shell resends the
+<FONT SIZE=-1><B>SIGHUP</B>
+
+</FONT>
+to all jobs, running or stopped.
+Stopped jobs are sent
+<FONT SIZE=-1><B>SIGCONT</B>
+
+</FONT>
+to ensure that they receive the
+<FONT SIZE=-1><B>SIGHUP</B>.
+
+</FONT>
+To prevent the shell from
+sending the signal to a particular job, it should be removed from the
+jobs table with the 
+<B>disown</B>
+
+builtin (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below) or marked 
+to not receive
+<FONT SIZE=-1><B>SIGHUP</B>
+
+</FONT>
+using
+<B>disown -h</B>.
+
+<P>
+
+If the
+<B>huponexit</B>
+
+shell option has been set with
+<B>shopt</B>,
+
+<B>bash</B>
+
+sends a 
+<FONT SIZE=-1><B>SIGHUP</B>
+
+</FONT>
+to all jobs when an interactive login shell exits.
+<P>
+
+If <B>bash</B> is waiting for a command to complete and receives a signal
+for which a trap has been set, the trap will not be executed until
+the command completes. 
+When <B>bash</B> is waiting for an asynchronous command via the <B>wait</B>
+builtin, the reception of a signal for which a trap has been set will
+cause the <B>wait</B> builtin to return immediately with an exit status
+greater than 128, immediately after which the trap is executed.
+<A NAME="lbCD">&nbsp;</A>
+<H3>JOB CONTROL</H3>
+
+<I>Job control</I>
+
+refers to the ability to selectively stop (<I>suspend</I>)
+the execution of processes and continue (<I>resume</I>)
+their execution at a later point.  A user typically employs
+this facility via an interactive interface supplied jointly
+by the system's terminal driver and
+<B>bash</B>.
+
+<P>
+
+The shell associates a
+<I>job</I>
+
+with each pipeline.  It keeps a table of currently executing
+jobs, which may be listed with the
+<B>jobs</B>
+
+command.  When
+<B>bash</B>
+
+starts a job asynchronously (in the
+<I>background</I>),
+
+it prints a line that looks like:
+<DL COMPACT><DT><DD>
+<P>
+
+[1] 25647
+</DL>
+
+<P>
+
+indicating that this job is job number 1 and that the process ID
+of the last process in the pipeline associated with this job is 25647.
+All of the processes in a single pipeline are members of the same job.
+<B>Bash</B>
+
+uses the
+<I>job</I>
+
+abstraction as the basis for job control.
+<P>
+
+To facilitate the implementation of the user interface to job
+control, the operating system maintains the notion of a <I>current terminal
+process group ID</I>.  Members of this process group (processes whose
+process group ID is equal to the current terminal process group ID)
+receive keyboard-generated signals such as
+<FONT SIZE=-1><B>SIGINT</B>.
+
+</FONT>
+These processes are said to be in the
+<I>foreground</I>.
+
+<I>Background</I>
+
+processes are those whose process group ID differs from the terminal's;
+such processes are immune to keyboard-generated signals.
+Only foreground processes are allowed to read from or write to the
+terminal.  Background processes which attempt to read from (write to) the
+terminal are sent a 
+<FONT SIZE=-1><B>SIGTTIN (SIGTTOU)</B>
+
+</FONT>
+signal by the terminal driver, 
+which, unless caught, suspends the process.
+<P>
+
+If the operating system on which
+<B>bash</B>
+
+is running supports
+job control,
+<B>bash</B>
+
+contains facilities to use it.
+Typing the
+<I>suspend</I>
+
+character (typically
+<B>^Z</B>,
+
+Control-Z) while a process is running
+causes that process to be stopped and returns control to 
+<B>bash</B>.
+
+Typing the
+<I>delayed suspend</I>
+
+character (typically
+<B>^Y</B>,
+
+Control-Y) causes the process to be stopped when it
+attempts to read input from the terminal, and control to
+be returned to
+<B>bash</B>.
+
+The user may then manipulate the state of this job, using the
+<B>bg</B>
+
+command to continue it in the background, the
+<B>fg</B>
+
+command to continue it in the foreground, or
+the
+<B>kill</B>
+
+command to kill it.  A <B>^Z</B> takes effect immediately,
+and has the additional side effect of causing pending output
+and typeahead to be discarded.
+<P>
+
+There are a number of ways to refer to a job in the shell.
+The character
+<B>%</B>
+
+introduces a job specification (<I>jobspec</I>).  Job number
+<I>n</I>
+
+may be referred to as
+<B>%n</B>.
+
+A job may also be referred to using a prefix of the name used to
+start it, or using a substring that appears in its command line.
+For example,
+<B>%ce</B>
+
+refers to a stopped
+<B>ce</B>
+
+job.  If a prefix matches more than one job,
+<B>bash</B>
+
+reports an error.  Using
+<B>%?ce</B>,
+
+on the other hand, refers to any job containing the string
+<B>ce</B>
+
+in its command line.  If the substring matches more than one job,
+<B>bash</B>
+
+reports an error.  The symbols
+<B>%%</B>
+
+and
+<B>%+</B>
+
+refer to the shell's notion of the
+<I>current job</I>,
+
+which is the last job stopped while it was in
+the foreground or started in the background.
+The 
+<I>previous job</I>
+
+may be referenced using
+<B>%-</B>.
+
+If there is only a single job, <B>%+</B> and <B>%-</B> can both be used
+to refer to that job.
+In output pertaining to jobs (e.g., the output of the
+<B>jobs</B>
+
+command), the current job is always flagged with a
+<B>+</B>,
+
+and the previous job with a
+<B>-</B>.
+
+A single % (with no accompanying job specification) also refers to the
+current job.
+<P>
+
+Simply naming a job can be used to bring it into the
+foreground:
+<B>%1</B>
+
+is a synonym for
+<B>``fg %1''</B>,
+bringing job 1 from the background into the foreground.
+Similarly,
+<B>``%1 &amp;''</B>
+
+resumes job 1 in the background, equivalent to
+<B>``bg %1''</B>.
+<P>
+
+The shell learns immediately whenever a job changes state.
+Normally,
+<B>bash</B>
+
+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 
+<B>-b</B>
+
+option to the
+<B>set</B>
+
+builtin command
+is enabled,
+<B>bash</B>
+
+reports such changes immediately.
+Any trap on
+<FONT SIZE=-1><B>SIGCHLD</B>
+
+</FONT>
+is executed for each child that exits.
+<P>
+
+If an attempt to exit
+<B>bash</B>
+
+is made while jobs are stopped (or, if the <B>checkjobs</B> shell option has
+been enabled using the <B>shopt</B> builtin, running), the shell prints a
+warning message, and, if the <B>checkjobs</B> option is enabled, lists the
+jobs and their statuses.
+The
+<B>jobs</B>
+
+command may then be used to inspect their status. 
+If a second attempt to exit is made without an intervening command,
+the shell does not print another warning, and any stopped
+jobs are terminated.
+<A NAME="lbCE">&nbsp;</A>
+<H3>PROMPTING</H3>
+
+When executing interactively, 
+<B>bash</B>
+
+displays the primary prompt
+<FONT SIZE=-1><B>PS1</B>
+
+</FONT>
+when it is ready to read a command, and the secondary prompt
+<FONT SIZE=-1><B>PS2</B>
+
+</FONT>
+when it needs more input to complete a command.
+<B>Bash</B>
+
+allows these prompt strings to be customized by inserting a number of
+backslash-escaped special characters that are decoded as follows:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>\a</B>
+
+<DD>
+an ASCII bell character (07)
+<DT><B>\d</B>
+
+<DD>
+the date in &quot;Weekday Month Date&quot; format (e.g., &quot;Tue May 26&quot;)
+<DT><B>\D{</B><I>format</I>}
+
+<DD>
+the <I>format</I> is passed to <I>strftime</I>(3) and the result is inserted
+into the prompt string; an empty <I>format</I> results in a locale-specific
+time representation.  The braces are required
+<DT><B>\e</B>
+
+<DD>
+an ASCII escape character (033)
+<DT><B>\h</B>
+
+<DD>
+the hostname up to the first `.'
+<DT><B>\H</B>
+
+<DD>
+the hostname
+<DT><B>\j</B>
+
+<DD>
+the number of jobs currently managed by the shell
+<DT><B>\l</B>
+
+<DD>
+the basename of the shell's terminal device name
+<DT><B>\n</B>
+
+<DD>
+newline
+<DT><B>\r</B>
+
+<DD>
+carriage return
+<DT><B>\s</B>
+
+<DD>
+the name of the shell, the basename of
+<B>$0</B>
+
+(the portion following the final slash)
+<DT><B>\t</B>
+
+<DD>
+the current time in 24-hour HH:MM:SS format
+<DT><B>\T</B>
+
+<DD>
+the current time in 12-hour HH:MM:SS format
+<DT><B>\@</B>
+
+<DD>
+the current time in 12-hour am/pm format
+<DT><B>\A</B>
+
+<DD>
+the current time in 24-hour HH:MM format
+<DT><B>\u</B>
+
+<DD>
+the username of the current user
+<DT><B>\v</B>
+
+<DD>
+the version of <B>bash</B> (e.g., 2.00)
+<DT><B>\V</B>
+
+<DD>
+the release of <B>bash</B>, version + patch level (e.g., 2.00.0)
+<DT><B>\w</B>
+
+<DD>
+the current working directory, with <B>$HOME</B> abbreviated with a tilde
+(uses the <B>$PROMPT_DIRTRIM</B> variable)
+<DT><B>\W</B>
+
+<DD>
+the basename of the current working directory, with <B>$HOME</B>
+abbreviated with a tilde
+<DT><B>\!</B>
+
+<DD>
+the history number of this command
+<DT><B>\#</B>
+
+<DD>
+the command number of this command
+<DT><B>\$</B>
+
+<DD>
+if the effective UID is 0, a
+<B>#</B>,
+
+otherwise a
+<B>$</B>
+
+<DT><B>\</B><I>nnn</I>
+
+<DD>
+the character corresponding to the octal number <I>nnn</I>
+<DT><B>\\</B>
+
+<DD>
+a backslash
+<DT><B>\[</B>
+
+<DD>
+begin a sequence of non-printing characters, which could be used to
+embed a terminal control sequence into the prompt
+<DT><B>\]</B>
+
+<DD>
+end a sequence of non-printing characters
+
+</DL></DL>
+
+<P>
+
+The command number and the history number are usually different:
+the history number of a command is its position in the history
+list, which may include commands restored from the history file
+(see
+<FONT SIZE=-1><B>HISTORY</B>
+
+</FONT>
+below), while the command number is the position in the sequence
+of commands executed during the current shell session.
+After the string is decoded, it is expanded via
+parameter expansion, command substitution, arithmetic
+expansion, and quote removal, subject to the value of the
+<B>promptvars</B>
+
+shell option (see the description of the
+<B>shopt</B>
+
+command under
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+<A NAME="lbCF">&nbsp;</A>
+<H3>READLINE</H3>
+
+This is the library that handles reading input when using an interactive
+shell, unless the
+<B>--noediting</B>
+
+option is given at shell invocation.
+Line editing is also used when using the <B>-e</B> option to the
+<B>read</B> builtin.
+By default, the line editing commands are similar to those of emacs.
+A vi-style line editing interface is also available.
+Line editing can be enabled at any time using the
+<B>-o emacs</B>
+
+or
+<B>-o vi</B>
+
+options to the
+<B>set</B>
+
+builtin (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+To turn off line editing after the shell is running, use the
+<B>+o emacs</B>
+
+or
+<B>+o vi</B>
+
+options to the
+<B>set</B>
+
+builtin.
+<A NAME="lbCG">&nbsp;</A>
+<H4>Readline Notation</H4>
+
+<P>
+
+In this section, the emacs-style notation is used to denote
+keystrokes.  Control keys are denoted by C-<I>key</I>, e.g., C-n
+means Control-N.  Similarly, 
+<I>meta</I>
+
+keys are denoted by M-<I>key</I>, so M-x means Meta-X.  (On keyboards
+without a 
+<I>meta</I>
+
+key, M-<I>x</I> means ESC <I>x</I>, i.e., press the Escape key
+then the
+<I>x</I>
+
+key.  This makes ESC the <I>meta prefix</I>.
+The combination M-C-<I>x</I> means ESC-Control-<I>x</I>,
+or press the Escape key
+then hold the Control key while pressing the
+<I>x</I>
+
+key.)
+<P>
+
+Readline commands may be given numeric
+<I>arguments</I>,
+
+which normally act as a repeat count.
+Sometimes, however, it is the sign of the argument that is significant.
+Passing a negative argument to a command that acts in the forward
+direction (e.g., <B>kill-line</B>) causes that command to act in a
+backward direction. 
+Commands whose behavior with arguments deviates from this are noted
+below.
+<P>
+
+When a command is described as <I>killing</I> text, the text
+deleted is saved for possible future retrieval
+(<I>yanking</I>).  The killed text is saved in a
+<I>kill ring</I>.  Consecutive kills cause the text to be
+accumulated into one unit, which can be yanked all at once. 
+Commands which do not kill text separate the chunks of text
+on the kill ring.
+<A NAME="lbCH">&nbsp;</A>
+<H4>Readline Initialization</H4>
+
+<P>
+
+Readline is customized by putting commands in an initialization
+file (the <I>inputrc</I> file).
+The name of this file is taken from the value of the
+<FONT SIZE=-1><B>INPUTRC</B>
+
+</FONT>
+variable.  If that variable is unset, the default is
+<A HREF="file:~/.inputrc"><I>~/.inputrc</I></A>.
+
+When a program which uses the readline library starts up, the
+initialization file is read, and the key bindings and variables
+are set.
+There are only a few basic constructs allowed in the
+readline initialization file.
+Blank lines are ignored.
+Lines beginning with a <B>#</B> are comments.
+Lines beginning with a <B>$</B> indicate conditional constructs.
+Other lines denote key bindings and variable settings.
+<P>
+
+The default key-bindings may be changed with an
+<I>inputrc </I>
+
+file.
+Other programs that use this library may add their own commands
+and bindings.
+<P>
+
+For example, placing
+<DL COMPACT><DT><DD>
+<P>
+
+M-Control-u: universal-argument
+</DL>
+
+or
+<DL COMPACT><DT><DD>
+C-Meta-u: universal-argument
+</DL>
+
+into the 
+<I>inputrc</I>
+
+would make M-C-u execute the readline command
+<I>universal-argument</I>.
+
+<P>
+
+The following symbolic character names are recognized:
+<I>RUBOUT</I>,
+
+<I>DEL</I>,
+
+<I>ESC</I>,
+
+<I>LFD</I>,
+
+<I>NEWLINE</I>,
+
+<I>RET</I>,
+
+<I>RETURN</I>,
+
+<I>SPC</I>,
+
+<I>SPACE</I>,
+
+and
+<I>TAB</I>.
+
+<P>
+
+In addition to command names, readline allows keys to be bound
+to a string that is inserted when the key is pressed (a <I>macro</I>).
+<A NAME="lbCI">&nbsp;</A>
+<H4>Readline Key Bindings</H4>
+
+<P>
+
+The syntax for controlling key bindings in the
+<I>inputrc</I>
+
+file is simple.  All that is required is the name of the
+command or the text of a macro and a key sequence to which
+it should be bound. The name may be specified in one of two ways:
+as a symbolic key name, possibly with <I>Meta-</I> or <I>Control-</I>
+prefixes, or as a key sequence.
+<P>
+
+When using the form <B>keyname</B>:<I>function-name</I> or <I>macro</I>,
+<I>keyname</I>
+
+is the name of a key spelled out in English.  For example:
+<P>
+<DL COMPACT><DT><DD>
+Control-u: universal-argument
+<BR>
+
+Meta-Rubout: backward-kill-word
+<BR>
+
+Control-o: &quot;&gt; output&quot;
+</DL>
+
+<P>
+
+In the above example,
+<I>C-u</I>
+
+is bound to the function
+<B>universal-argument</B>,
+
+<I>M-DEL</I>
+
+is bound to the function
+<B>backward-kill-word</B>,
+
+and
+<I>C-o</I>
+
+is bound to run the macro
+expressed on the right hand side (that is, to insert the text
+<TT>&gt; output</TT>
+
+into the line).
+<P>
+
+In the second form, <B>&quot;keyseq&quot;</B>:<I>function-name</I> or <I>macro</I>,
+<B>keyseq</B>
+
+differs from
+<B>keyname</B>
+
+above in that strings denoting
+an entire key sequence may be specified by placing the sequence
+within double quotes.  Some GNU Emacs style key escapes can be
+used, as in the following example, but the symbolic character names
+are not recognized.
+<P>
+<DL COMPACT><DT><DD>
+&quot;\C-u&quot;: universal-argument
+<BR>
+
+&quot;\C-x\C-r&quot;: re-read-init-file
+<BR>
+
+&quot;\e[11~&quot;: &quot;Function Key 1&quot;
+</DL>
+
+<P>
+
+In this example,
+<I>C-u</I>
+
+is again bound to the function
+<B>universal-argument</B>.
+
+<I>C-x C-r</I>
+
+is bound to the function
+<B>re-read-init-file</B>,
+
+and 
+<I>ESC [ 1 1 ~</I>
+
+is bound to insert the text
+<TT>Function Key 1</TT>.
+
+<P>
+
+The full set of GNU Emacs style escape sequences is
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>\C-</B>
+
+<DD>
+control prefix
+<DT><B>\M-</B>
+
+<DD>
+meta prefix
+<DT><B>\e</B>
+
+<DD>
+an escape character
+<DT><B>\\</B>
+
+<DD>
+backslash
+<DT><B>\</B>
+
+<DD>
+literal &quot;
+<DT><B>\aq</B>
+
+<DD>
+literal aq
+</DL></DL>
+
+
+<P>
+
+In addition to the GNU Emacs style escape sequences, a second
+set of backslash escapes is available:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>\a</B>
+
+<DD>
+alert (bell)
+<DT><B>\b</B>
+
+<DD>
+backspace
+<DT><B>\d</B>
+
+<DD>
+delete
+<DT><B>\f</B>
+
+<DD>
+form feed
+<DT><B>\n</B>
+
+<DD>
+newline
+<DT><B>\r</B>
+
+<DD>
+carriage return
+<DT><B>\t</B>
+
+<DD>
+horizontal tab
+<DT><B>\v</B>
+
+<DD>
+vertical tab
+<DT><B>\</B><I>nnn</I>
+
+<DD>
+the eight-bit character whose value is the octal value <I>nnn</I>
+(one to three digits)
+<DT><B>\x</B><I>HH</I>
+
+<DD>
+the eight-bit character whose value is the hexadecimal value <I>HH</I>
+(one or two hex digits)
+</DL></DL>
+
+
+<P>
+
+When entering the text of a macro, single or double quotes must
+be used to indicate a macro definition.
+Unquoted text is assumed to be a function name.
+In the macro body, the backslash escapes described above are expanded.
+Backslash will quote any other character in the macro text,
+including &quot; and aq.
+<P>
+
+<B>Bash</B>
+
+allows the current readline key bindings to be displayed or modified
+with the
+<B>bind</B>
+
+builtin command.  The editing mode may be switched during interactive
+use by using the
+<B>-o</B>
+
+option to the
+<B>set</B>
+
+builtin command (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).
+<A NAME="lbCJ">&nbsp;</A>
+<H4>Readline Variables</H4>
+
+<P>
+
+Readline has variables that can be used to further customize its
+behavior.  A variable may be set in the
+<I>inputrc</I>
+
+file with a statement of the form
+<DL COMPACT><DT><DD>
+<P>
+
+<B>set</B> <I>variable-name</I> <I>value</I>
+</DL>
+
+<P>
+
+Except where noted, readline variables can take the values
+<B>On</B>
+
+or
+<B>Off</B>
+
+(without regard to case).
+Unrecognized variable names are ignored.
+When a variable value is read, empty or null values, &quot;on&quot; (case-insensitive),
+and &quot;1&quot; are equivalent to <B>On</B>.  All other values are equivalent to
+<B>Off</B>.
+The variables and their default values are:
+<P>
+
+
+<DL COMPACT>
+<DT><B>bell-style (audible)</B>
+
+<DD>
+Controls what happens when readline wants to ring the terminal bell.
+If set to <B>none</B>, readline never rings the bell.  If set to
+<B>visible</B>, readline uses a visible bell if one is available.
+If set to <B>audible</B>, readline attempts to ring the terminal's bell.
+<DT><B>bind-tty-special-chars (On)</B>
+
+<DD>
+If set to <B>On</B>, readline attempts to bind the control characters
+treated specially by the kernel's terminal driver to their readline
+equivalents.
+<DT><B>comment-begin (``#'')</B>
+
+<DD>
+The string that is inserted when the readline
+<B>insert-comment</B>
+
+command is executed.
+This command is bound to
+<B>M-#</B>
+
+in emacs mode and to
+<B>#</B>
+
+in vi command mode.
+<DT><B>completion-ignore-case (Off)</B>
+
+<DD>
+If set to <B>On</B>, readline performs filename matching and completion
+in a case-insensitive fashion.
+<DT><B>completion-prefix-display-length (0)</B>
+
+<DD>
+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.
+<DT><B>completion-query-items (100)</B>
+
+<DD>
+This determines when the user is queried about viewing
+the number of possible completions
+generated by the <B>possible-completions</B> command.
+It may be set to any integer value greater than or equal to
+zero.  If the number of possible completions is greater than
+or equal to the value of this variable, the user is asked whether
+or not he wishes to view them; otherwise they are simply listed
+on the terminal.
+<DT><B>convert-meta (On)</B>
+
+<DD>
+If set to <B>On</B>, readline will convert characters with the
+eighth bit set to an ASCII key sequence
+by stripping the eighth bit and prefixing an
+escape character (in effect, using escape as the <I>meta prefix</I>).
+<DT><B>disable-completion (Off)</B>
+
+<DD>
+If set to <B>On</B>, readline will inhibit word completion.  Completion
+characters will be inserted into the line as if they had been
+mapped to <B>self-insert</B>.
+<DT><B>editing-mode (emacs)</B>
+
+<DD>
+Controls whether readline begins with a set of key bindings similar
+to <I>emacs</I> or <I>vi</I>.
+<B>editing-mode</B>
+
+can be set to either
+<B>emacs</B>
+
+or
+<B>vi</B>.
+
+<DT><B>enable-keypad (Off)</B>
+
+<DD>
+When set to <B>On</B>, readline will try to enable the application
+keypad when it is called.  Some systems need this to enable the
+arrow keys.
+<DT><B>expand-tilde (Off)</B>
+
+<DD>
+If set to <B>on</B>, tilde expansion is performed when readline
+attempts word completion.
+<DT><B>history-preserve-point (Off)</B>
+
+<DD>
+If set to <B>on</B>, the history code attempts to place point at the
+same location on each history line retrieved with <B>previous-history</B>
+or <B>next-history</B>.
+<DT><B>history-size (0)</B>
+
+<DD>
+Set the maximum number of history entries saved in the history list.  If
+set to zero, the number of entries in the history list is not limited.
+<DT><B>horizontal-scroll-mode (Off)</B>
+
+<DD>
+When set to <B>On</B>, makes readline use a single line for display,
+scrolling the input horizontally on a single screen line when it
+becomes longer than the screen width rather than wrapping to a new line.
+<DT><B>input-meta (Off)</B>
+
+<DD>
+If set to <B>On</B>, readline will enable eight-bit input (that is,
+it will not strip the high bit from the characters it reads),
+regardless of what the terminal claims it can support.  The name
+<B>meta-flag</B>
+
+is a synonym for this variable.
+<DT><B>isearch-terminators (``C-[C-J'')</B>
+
+<DD>
+The string of characters that should terminate an incremental
+search without subsequently executing the character as a command.
+If this variable has not been given a value, the characters
+<I>ESC</I> and <I>C-J</I> will terminate an incremental search.
+<DT><B>keymap (emacs)</B>
+
+<DD>
+Set the current readline keymap.  The set of valid keymap names is
+<I>emacs, emacs-standard, emacs-meta, emacs-ctlx, vi,
+vi-command</I>, and
+<I>vi-insert</I>.
+
+<I>vi</I> is equivalent to <I>vi-command</I>; <I>emacs</I> is
+equivalent to <I>emacs-standard</I>.  The default value is
+<I>emacs</I>;
+
+the value of
+<B>editing-mode</B>
+
+also affects the default keymap.
+<DT><B>mark-directories (On)</B>
+
+<DD>
+If set to <B>On</B>, completed directory names have a slash
+appended.
+<DT><B>mark-modified-lines (Off)</B>
+
+<DD>
+If set to <B>On</B>, history lines that have been modified are displayed
+with a preceding asterisk (<B>*</B>).
+<DT><B>mark-symlinked-directories (Off)</B>
+
+<DD>
+If set to <B>On</B>, completed names which are symbolic links to directories
+have a slash appended (subject to the value of
+<B>mark-directories</B>).
+<DT><B>match-hidden-files (On)</B>
+
+<DD>
+This variable, when set to <B>On</B>, causes readline to match files whose
+names begin with a `.' (hidden files) when performing filename 
+completion, unless the leading `.' is
+supplied by the user in the filename to be completed.
+<DT><B>output-meta (Off)</B>
+
+<DD>
+If set to <B>On</B>, readline will display characters with the
+eighth bit set directly rather than as a meta-prefixed escape
+sequence.
+<DT><B>page-completions (On)</B>
+
+<DD>
+If set to <B>On</B>, readline uses an internal <I>more</I>-like pager
+to display a screenful of possible completions at a time.
+<DT><B>print-completions-horizontally (Off)</B>
+
+<DD>
+If set to <B>On</B>, readline will display completions with matches
+sorted horizontally in alphabetical order, rather than down the screen.
+<DT><B>revert-all-at-newline (Off)</B>
+
+<DD>
+If set to <B>on</B>, readline will undo all changes to history lines 
+before returning when <B>accept-line</B> is executed.  By default,
+history lines may be modified and retain individual undo lists across
+calls to <B>readline</B>.
+<DT><B>show-all-if-ambiguous (Off)</B>
+
+<DD>
+This alters the default behavior of the completion functions.  If
+set to
+<B>on</B>,
+
+words which have more than one possible completion cause the
+matches to be listed immediately instead of ringing the bell.
+<DT><B>show-all-if-unmodified (Off)</B>
+
+<DD>
+This alters the default behavior of the completion functions in
+a fashion similar to <B>show-all-if-ambiguous</B>.
+If set to
+<B>on</B>,
+
+words which have more than one possible completion without any
+possible partial completion (the possible completions don't share
+a common prefix) cause the matches to be listed immediately instead
+of ringing the bell.
+<DT><B>visible-stats (Off)</B>
+
+<DD>
+If set to <B>On</B>, a character denoting a file's type as reported
+by <I>stat</I>(2) is appended to the filename when listing possible
+completions.
+
+</DL>
+<A NAME="lbCK">&nbsp;</A>
+<H4>Readline Conditional Constructs</H4>
+
+<P>
+
+Readline implements a facility similar in spirit to the conditional
+compilation features of the C preprocessor which allows key
+bindings and variable settings to be performed as the result
+of tests.  There are four parser directives used.
+<DL COMPACT>
+<DT><B>$if</B><DD>
+The 
+<B>$if</B>
+
+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 extends to the end of the line;
+no characters are required to isolate it.
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>mode</B><DD>
+The <B>mode=</B> form of the <B>$if</B> directive is used to test
+whether readline is in emacs or vi mode.
+This may be used in conjunction
+with the <B>set keymap</B> command, for instance, to set bindings in
+the <I>emacs-standard</I> and <I>emacs-ctlx</I> keymaps only if
+readline is starting out in emacs mode.
+<DT><B>term</B><DD>
+The <B>term=</B> form may be used to include terminal-specific
+key bindings, perhaps to bind the key sequences output by the
+terminal's function keys.  The word on the right side of the
+<B>=</B>
+
+is tested against the both full name of the terminal and the portion
+of the terminal name before the first <B>-</B>.  This allows
+<I>sun</I>
+
+to match both
+<I>sun</I>
+
+and
+<I>sun-cmd</I>,
+
+for instance.
+<DT><B>application</B><DD>
+The <B>application</B> construct is used to include
+application-specific settings.  Each program using the readline
+library sets the <I>application name</I>, and an initialization
+file can test for a particular value.
+This could be used to bind key sequences to functions useful for
+a specific program.  For instance, the following command adds a
+key sequence that quotes the current or previous word in Bash:
+<P>
+<DL COMPACT><DT><DD>
+<PRE>
+<B>$if</B> Bash
+# Quote the current or previous word
+&quot;\C-xq&quot;: &quot;\eb\&quot;\ef\&quot;&quot;
+<B>$endif</B>
+</PRE>
+
+</DL>
+
+</DL></DL>
+
+<DT><B>$endif</B><DD>
+This command, as seen in the previous example, terminates an
+<B>$if</B> command.
+<DT><B>$else</B><DD>
+Commands in this branch of the <B>$if</B> directive are executed if
+the test fails.
+<DT><B>$include</B><DD>
+This directive takes a single filename as an argument and reads commands
+and bindings from that file.  For example, the following directive
+would read <A HREF="file:/etc/inputrc"><I>/etc/inputrc</I></A>:
+<P>
+<DL COMPACT><DT><DD>
+<PRE>
+<B>$include</B>  <A HREF="file:/etc/inputrc"><I>/etc/inputrc</I></A>
+</PRE>
+
+</DL>
+
+</DL>
+<A NAME="lbCL">&nbsp;</A>
+<H4>Searching</H4>
+
+<P>
+
+Readline provides commands for searching through the command history
+(see
+<FONT SIZE=-1><B>HISTORY</B>
+
+</FONT>
+below) for lines containing a specified string.
+There are two search modes:
+<I>incremental</I>
+
+and
+<I>non-incremental</I>.
+
+<P>
+
+Incremental searches begin before the user has finished typing the
+search string.
+As each character of the search string is typed, readline displays
+the next entry from the history matching the string typed so far.
+An incremental search requires only as many characters as needed to
+find the desired history entry.
+The characters present in the value of the <B>isearch-terminators</B>
+variable are used to terminate an incremental search.
+If that variable has not been assigned a value the Escape and
+Control-J characters will terminate an incremental search.
+Control-G will abort an incremental search and restore the original
+line.
+When the search is terminated, the history entry containing the
+search string becomes the current line.
+<P>
+
+To find other matching entries in the history list, type Control-S or
+Control-R as appropriate.
+This will search backward or forward in the history for the next
+entry matching the search string typed so far.
+Any other key sequence bound to a readline command will terminate
+the search and execute that command.
+For instance, a <I>newline</I> will terminate the search and accept
+the line, thereby executing the command from the history list.
+<P>
+
+Readline remembers the last incremental search string.  If two
+Control-Rs are typed without any intervening characters defining a
+new search string, any remembered search string is used.
+<P>
+
+Non-incremental searches read the entire search string before starting
+to search for matching history lines.  The search string may be
+typed by the user or be part of the contents of the current line.
+<A NAME="lbCM">&nbsp;</A>
+<H4>Readline Command Names</H4>
+
+<P>
+
+The following is a list of the names of the commands and the default
+key sequences to which they are bound.
+Command names without an accompanying key sequence are unbound by default.
+In the following descriptions, <I>point</I> refers to the current cursor
+position, and <I>mark</I> refers to a cursor position saved by the
+<B>set-mark</B> command.
+The text between the point and mark is referred to as the <I>region</I>.
+<A NAME="lbCN">&nbsp;</A>
+<H4>Commands for Moving</H4>
+
+<P>
+
+
+<DL COMPACT>
+<DT><B>beginning-of-line (C-a)</B>
+
+<DD>
+Move to the start of the current line.
+<DT><B>end-of-line (C-e)</B>
+
+<DD>
+Move to the end of the line.
+<DT><B>forward-char (C-f)</B>
+
+<DD>
+Move forward a character.
+<DT><B>backward-char (C-b)</B>
+
+<DD>
+Move back a character.
+<DT><B>forward-word (M-f)</B>
+
+<DD>
+Move forward to the end of the next word.  Words are composed of
+alphanumeric characters (letters and digits).
+<DT><B>backward-word (M-b)</B>
+
+<DD>
+Move back to the start of the current or previous word.
+Words are composed of alphanumeric characters (letters and digits).
+<DT><B>shell-forward-word</B>
+
+<DD>
+Move forward to the end of the next word.
+Words are delimited by non-quoted shell metacharacters.
+<DT><B>shell-backward-word</B>
+
+<DD>
+Move back to the start of the current or previous word.
+Words are delimited by non-quoted shell metacharacters.
+<DT><B>clear-screen (C-l)</B>
+
+<DD>
+Clear the screen leaving the current line at the top of the screen.
+With an argument, refresh the current line without clearing the
+screen.
+<DT><B>redraw-current-line</B>
+
+<DD>
+Refresh the current line.
+
+</DL>
+<A NAME="lbCO">&nbsp;</A>
+<H4>Commands for Manipulating the History</H4>
+
+<P>
+
+
+<DL COMPACT>
+<DT><B>accept-line (Newline, Return)</B>
+
+<DD>
+Accept the line regardless of where the cursor is.  If this line is
+non-empty, add it to the history list according to the state of the
+<FONT SIZE=-1><B>HISTCONTROL</B>
+
+</FONT>
+variable.  If the line is a modified history
+line, then restore the history line to its original state.
+<DT><B>previous-history (C-p)</B>
+
+<DD>
+Fetch the previous command from the history list, moving back in
+the list.
+<DT><B>next-history (C-n)</B>
+
+<DD>
+Fetch the next command from the history list, moving forward in the
+list.
+<DT><B>beginning-of-history (M-&lt;)</B>
+
+<DD>
+Move to the first line in the history.
+<DT><B>end-of-history (M-&gt;)</B>
+
+<DD>
+Move to the end of the input history, i.e., the line currently being
+entered.
+<DT><B>reverse-search-history (C-r)</B>
+
+<DD>
+Search backward starting at the current line and moving `up' through
+the history as necessary.  This is an incremental search.
+<DT><B>forward-search-history (C-s)</B>
+
+<DD>
+Search forward starting at the current line and moving `down' through
+the history as necessary.  This is an incremental search.
+<DT><B>non-incremental-reverse-search-history (M-p)</B>
+
+<DD>
+Search backward through the history starting at the current line
+using a non-incremental search for a string supplied by the user.
+<DT><B>non-incremental-forward-search-history (M-n)</B>
+
+<DD>
+Search forward through the history using a non-incremental search for
+a string supplied by the user.
+<DT><B>history-search-forward</B>
+
+<DD>
+Search forward through the history for the string of characters
+between the start of the current line and the point.
+This is a non-incremental search.
+<DT><B>history-search-backward</B>
+
+<DD>
+Search backward through the history for the string of characters
+between the start of the current line and the point.
+This is a non-incremental search.
+<DT><B>yank-nth-arg (M-C-y)</B>
+
+<DD>
+Insert the first argument to the previous command (usually
+the second word on the previous line) at point.
+With an argument
+<I>n</I>,
+
+insert the <I>n</I>th word from the previous command (the words
+in the previous command begin with word 0).  A negative argument
+inserts the <I>n</I>th word from the end of the previous command.
+Once the argument <I>n</I> is computed, the argument is extracted
+as if the &quot;!<I>n</I>&quot; history expansion had been specified.
+<DT><B>yank-last-arg (M-., M-_)</B>
+
+<DD>
+Insert the last argument to the previous command (the last word of
+the previous history entry).  With an argument,
+behave exactly like <B>yank-nth-arg</B>.
+Successive calls to <B>yank-last-arg</B> move back through the history
+list, inserting the last argument of each line in turn.
+The history expansion facilities are used to extract the last argument,
+as if the &quot;!$&quot; history expansion had been specified.
+<DT><B>shell-expand-line (M-C-e)</B>
+
+<DD>
+Expand the line as the shell does.  This
+performs alias and history expansion as well as all of the shell
+word expansions.  See
+<FONT SIZE=-1><B>HISTORY EXPANSION</B>
+
+</FONT>
+below for a description of history expansion.
+<DT><B>history-expand-line (M-^)</B>
+
+<DD>
+Perform history expansion on the current line.
+See
+<FONT SIZE=-1><B>HISTORY EXPANSION</B>
+
+</FONT>
+below for a description of history expansion.
+<DT><B>magic-space</B>
+
+<DD>
+Perform history expansion on the current line and insert a space.
+See
+<FONT SIZE=-1><B>HISTORY EXPANSION</B>
+
+</FONT>
+below for a description of history expansion.
+<DT><B>alias-expand-line</B>
+
+<DD>
+Perform alias expansion on the current line.
+See
+<FONT SIZE=-1><B>ALIASES</B>
+
+</FONT>
+above for a description of alias expansion.
+<DT><B>history-and-alias-expand-line</B>
+
+<DD>
+Perform history and alias expansion on the current line.
+<DT><B>insert-last-argument (M-., M-_)</B>
+
+<DD>
+A synonym for <B>yank-last-arg</B>.
+<DT><B>operate-and-get-next (C-o)</B>
+
+<DD>
+Accept the current line for execution and fetch the next line
+relative to the current line from the history for editing.  Any
+argument is ignored.
+<DT><B>edit-and-execute-command (C-xC-e)</B>
+
+<DD>
+Invoke an editor on the current command line, and execute the result as shell
+commands.
+<B>Bash</B> attempts to invoke
+<FONT SIZE=-1><B>$VISUAL</B>,
+
+</FONT>
+<FONT SIZE=-1><B>$EDITOR</B>,
+
+</FONT>
+and <I>emacs</I> as the editor, in that order.
+
+</DL>
+<A NAME="lbCP">&nbsp;</A>
+<H4>Commands for Changing Text</H4>
+
+<P>
+
+
+<DL COMPACT>
+<DT><B>delete-char (C-d)</B>
+
+<DD>
+Delete the character at point.  If point is at the
+beginning of the line, there are no characters in the line, and
+the last character typed was not bound to <B>delete-char</B>,
+then return
+<FONT SIZE=-1><B>EOF</B>.
+
+</FONT>
+<DT><B>backward-delete-char (Rubout)</B>
+
+<DD>
+Delete the character behind the cursor.  When given a numeric argument,
+save the deleted text on the kill ring.
+<DT><B>forward-backward-delete-char</B>
+
+<DD>
+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.
+<DT><B>quoted-insert (C-q, C-v)</B>
+
+<DD>
+Add the next character typed to the line verbatim.  This is
+how to insert characters like <B>C-q</B>, for example.
+<DT><B>tab-insert (C-v TAB)</B>
+
+<DD>
+Insert a tab character.
+<DT><B>self-insert (a,&nbsp;b,&nbsp;A,&nbsp;1,&nbsp;!,&nbsp;...)</B>
+
+<DD>
+Insert the character typed.
+<DT><B>transpose-chars (C-t)</B>
+
+<DD>
+Drag the character before point forward over the character at point,
+moving point forward as well.
+If point is at the end of the line, then this transposes
+the two characters before point.
+Negative arguments have no effect.
+<DT><B>transpose-words (M-t)</B>
+
+<DD>
+Drag the word before point past the word after point,
+moving point over that word as well.
+If point is at the end of the line, this transposes
+the last two words on the line.   
+<DT><B>upcase-word (M-u)</B>
+
+<DD>
+Uppercase the current (or following) word.  With a negative argument,
+uppercase the previous word, but do not move point.
+<DT><B>downcase-word (M-l)</B>
+
+<DD>
+Lowercase the current (or following) word.  With a negative argument,
+lowercase the previous word, but do not move point.
+<DT><B>capitalize-word (M-c)</B>
+
+<DD>
+Capitalize the current (or following) word.  With a negative argument,
+capitalize the previous word, but do not move point.
+<DT><B>overwrite-mode</B>
+
+<DD>
+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
+<B>emacs</B> mode; <B>vi</B> mode does overwrite differently.
+Each call to <I>readline()</I> starts in insert mode.
+In overwrite mode, characters bound to <B>self-insert</B> replace   
+the text at point rather than pushing the text to the right.
+Characters bound to <B>backward-delete-char</B> replace the character
+before point with a space.  By default, this command is unbound.
+
+</DL>
+<A NAME="lbCQ">&nbsp;</A>
+<H4>Killing and Yanking</H4>
+
+<P>
+
+
+<DL COMPACT>
+<DT><B>kill-line (C-k)</B>
+
+<DD>
+Kill the text from point to the end of the line.
+<DT><B>backward-kill-line (C-x Rubout)</B>
+
+<DD>
+Kill backward to the beginning of the line.
+<DT><B>unix-line-discard (C-u)</B>
+
+<DD>
+Kill backward from point to the beginning of the line.
+The killed text is saved on the kill-ring.
+
+<DT><B>kill-whole-line</B>
+
+<DD>
+Kill all characters on the current line, no matter where point is.
+<DT><B>kill-word  (M-d)</B>
+
+<DD>
+Kill from point to the end of the current word, or if between
+words, to the end of the next word.
+Word boundaries are the same as those used by <B>forward-word</B>.
+<DT><B>backward-kill-word (M-Rubout)</B>
+
+<DD>
+Kill the word behind point.
+Word boundaries are the same as those used by <B>backward-word</B>.
+<DT><B>shell-kill-word  (M-d)</B>
+
+<DD>
+Kill from point to the end of the current word, or if between
+words, to the end of the next word.
+Word boundaries are the same as those used by <B>shell-forward-word</B>.
+<DT><B>shell-backward-kill-word (M-Rubout)</B>
+
+<DD>
+Kill the word behind point.
+Word boundaries are the same as those used by <B>shell-backward-word</B>.
+<DT><B>unix-word-rubout (C-w)</B>
+
+<DD>
+Kill the word behind point, using white space as a word boundary.
+The killed text is saved on the kill-ring.
+<DT><B>unix-filename-rubout</B>
+
+<DD>
+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.
+<DT><B>delete-horizontal-space (M-\)</B>
+
+<DD>
+Delete all spaces and tabs around point.
+<DT><B>kill-region</B>
+
+<DD>
+Kill the text in the current region.
+<DT><B>copy-region-as-kill</B>
+
+<DD>
+Copy the text in the region to the kill buffer.
+<DT><B>copy-backward-word</B>
+
+<DD>
+Copy the word before point to the kill buffer.
+The word boundaries are the same as <B>backward-word</B>.
+<DT><B>copy-forward-word</B>
+
+<DD>
+Copy the word following point to the kill buffer.
+The word boundaries are the same as <B>forward-word</B>.
+<DT><B>yank (C-y)</B>
+
+<DD>
+Yank the top of the kill ring into the buffer at point.
+<DT><B>yank-pop (M-y)</B>
+
+<DD>
+Rotate the kill ring, and yank the new top.  Only works following
+<B>yank</B>
+
+or
+<B>yank-pop</B>.
+
+
+</DL>
+<A NAME="lbCR">&nbsp;</A>
+<H4>Numeric Arguments</H4>
+
+<P>
+
+
+<DL COMPACT>
+<DT><B>digit-argument (M-0, M-1, ..., M--)</B>
+
+<DD>
+Add this digit to the argument already accumulating, or start a new
+argument.  M-- starts a negative argument.
+<DT><B>universal-argument</B>
+
+<DD>
+This is another way to specify an argument.
+If this command is followed by one or more digits, optionally with a
+leading minus sign, those digits define the argument.
+If the command is followed by digits, executing
+<B>universal-argument</B>
+
+again ends the numeric argument, but is otherwise ignored.
+As a special case, if this command is immediately followed by a
+character that is neither a digit or minus sign, the argument count
+for the next command is multiplied by four.
+The argument count is initially one, so executing this function the
+first time makes the argument count four, a second time makes the
+argument count sixteen, and so on.
+
+</DL>
+<A NAME="lbCS">&nbsp;</A>
+<H4>Completing</H4>
+
+<P>
+
+
+<DL COMPACT>
+<DT><B>complete (TAB)</B>
+
+<DD>
+Attempt to perform completion on the text before point.
+<B>Bash</B>
+
+attempts completion treating the text as a variable (if the
+text begins with <B>$</B>), username (if the text begins with
+<B>~</B>), hostname (if the text begins with <B>@</B>), or
+command (including aliases and functions) in turn.  If none
+of these produces a match, filename completion is attempted.
+<DT><B>possible-completions (M-?)</B>
+
+<DD>
+List the possible completions of the text before point.
+<DT><B>insert-completions (M-*)</B>
+
+<DD>
+Insert all completions of the text before point
+that would have been generated by
+<B>possible-completions</B>.
+<DT><B>menu-complete</B>
+
+<DD>
+Similar to <B>complete</B>, but replaces the word to be completed
+with a single match from the list of possible completions.
+Repeated execution of <B>menu-complete</B> steps through the list
+of possible completions, inserting each match in turn.
+At the end of the list of completions, the bell is rung
+(subject to the setting of <B>bell-style</B>)
+and the original text is restored.
+An argument of <I>n</I> moves <I>n</I> positions forward in the list
+of matches; a negative argument may be used to move backward
+through the list.
+This command is intended to be bound to <B>TAB</B>, but is unbound
+by default.
+<DT><B>delete-char-or-list</B>
+
+<DD>
+Deletes the character under the cursor if not at the beginning or
+end of the line (like <B>delete-char</B>).
+If at the end of the line, behaves identically to
+<B>possible-completions</B>.
+This command is unbound by default.
+<DT><B>complete-filename (M-/)</B>
+
+<DD>
+Attempt filename completion on the text before point.
+<DT><B>possible-filename-completions (C-x /)</B>
+
+<DD>
+List the possible completions of the text before point,
+treating it as a filename.
+<DT><B>complete-username (M-~)</B>
+
+<DD>
+Attempt completion on the text before point, treating
+it as a username.
+<DT><B>possible-username-completions (C-x ~)</B>
+
+<DD>
+List the possible completions of the text before point,
+treating it as a username.
+<DT><B>complete-variable (M-$)</B>
+
+<DD>
+Attempt completion on the text before point, treating
+it as a shell variable.
+<DT><B>possible-variable-completions (C-x $)</B>
+
+<DD>
+List the possible completions of the text before point,
+treating it as a shell variable.
+<DT><B>complete-hostname (M-@)</B>
+
+<DD>
+Attempt completion on the text before point, treating
+it as a hostname.
+<DT><B>possible-hostname-completions (C-x @)</B>
+
+<DD>
+List the possible completions of the text before point,
+treating it as a hostname.
+<DT><B>complete-command (M-!)</B>
+
+<DD>
+Attempt completion on the text before point, treating
+it as a command name.  Command completion attempts to
+match the text against aliases, reserved words, shell
+functions, shell builtins, and finally executable filenames,
+in that order.
+<DT><B>possible-command-completions (C-x !)</B>
+
+<DD>
+List the possible completions of the text before point,
+treating it as a command name.
+<DT><B>dynamic-complete-history (M-TAB)</B>
+
+<DD>
+Attempt completion on the text before point, comparing
+the text against lines from the history list for possible
+completion matches.
+<DT><B>dabbrev-expand</B>
+
+<DD>
+Attempt menu completion on the text before point, comparing
+the text against lines from the history list for possible
+completion matches.
+<DT><B>complete-into-braces (M-{)</B>
+
+<DD>
+Perform filename completion and insert the list of possible completions
+enclosed within braces so the list is available to the shell (see
+<B>Brace Expansion</B>
+
+above).
+
+</DL>
+<A NAME="lbCT">&nbsp;</A>
+<H4>Keyboard Macros</H4>
+
+<P>
+
+
+<DL COMPACT>
+<DT><B>start-kbd-macro (C-x ()</B>
+
+<DD>
+Begin saving the characters typed into the current keyboard macro.
+<DT><B>end-kbd-macro (C-x ))</B>
+
+<DD>
+Stop saving the characters typed into the current keyboard macro
+and store the definition.
+<DT><B>call-last-kbd-macro (C-x e)</B>
+
+<DD>
+Re-execute the last keyboard macro defined, by making the characters
+in the macro appear as if typed at the keyboard.
+
+</DL>
+<A NAME="lbCU">&nbsp;</A>
+<H4>Miscellaneous</H4>
+
+<P>
+
+
+<DL COMPACT>
+<DT><B>re-read-init-file (C-x C-r)</B>
+
+<DD>
+Read in the contents of the <I>inputrc</I> file, and incorporate
+any bindings or variable assignments found there.
+<DT><B>abort (C-g)</B>
+
+<DD>
+Abort the current editing command and
+ring the terminal's bell (subject to the setting of
+<B>bell-style</B>).
+
+<DT><B>do-uppercase-version (M-a, M-b, M-</B><I>x</I>, ...)
+
+<DD>
+If the metafied character <I>x</I> is lowercase, run the command
+that is bound to the corresponding uppercase character.
+<DT><B>prefix-meta (ESC)</B>
+
+<DD>
+Metafy the next character typed.
+<FONT SIZE=-1><B>ESC</B>
+
+</FONT>
+<B>f</B>
+
+is equivalent to
+<B>Meta-f</B>.
+
+<DT><B>undo (C-_, C-x C-u)</B>
+
+<DD>
+Incremental undo, separately remembered for each line.
+<DT><B>revert-line (M-r)</B>
+
+<DD>
+Undo all changes made to this line.  This is like executing the
+<B>undo</B>
+
+command enough times to return the line to its initial state.
+<DT><B>tilde-expand (M-&amp;)</B>
+
+<DD>
+Perform tilde expansion on the current word.
+<DT><B>set-mark (C-@, M-&lt;space&gt;)</B>
+
+<DD>
+Set the mark to the point.  If a
+numeric argument is supplied, the mark is set to that position.
+<DT><B>exchange-point-and-mark (C-x C-x)</B>
+
+<DD>
+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.
+<DT><B>character-search (C-])</B>
+
+<DD>
+A character is read and point is moved to the next occurrence of that
+character.  A negative count searches for previous occurrences.
+<DT><B>character-search-backward (M-C-])</B>
+
+<DD>
+A character is read and point is moved to the previous occurrence of that
+character.  A negative count searches for subsequent occurrences.
+<DT><B>insert-comment (M-#)</B>
+
+<DD>
+Without a numeric argument, the value of the readline
+<B>comment-begin</B>
+
+variable is inserted at the beginning of the current line.
+If a numeric argument is supplied, this command acts as a toggle:  if
+the characters at the beginning of the line do not match the value
+of <B>comment-begin</B>, the value is inserted, otherwise
+the characters in <B>comment-begin</B> are deleted from the beginning of 
+the line.
+In either case, the line is accepted as if a newline had been typed.
+The default value of
+<B>comment-begin</B> causes this command to make the current line
+a shell comment.
+If a numeric argument causes the comment character to be removed, the line
+will be executed by the shell.
+<DT><B>glob-complete-word (M-g)</B>
+
+<DD>
+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.
+<DT><B>glob-expand-word (C-x *)</B>
+
+<DD>
+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, an asterisk is appended before
+pathname expansion.
+<DT><B>glob-list-expansions (C-x g)</B>
+
+<DD>
+The list of expansions that would have been generated by
+<B>glob-expand-word</B>
+
+is displayed, and the line is redrawn.
+If a numeric argument is supplied, an asterisk is appended before
+pathname expansion.
+<DT><B>dump-functions</B>
+
+<DD>
+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 <I>inputrc</I> file.
+<DT><B>dump-variables</B>
+
+<DD>
+Print all of the settable readline 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 <I>inputrc</I> file.
+<DT><B>dump-macros</B>
+
+<DD>
+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 <I>inputrc</I> file.
+<DT><B>display-shell-version (C-x C-v)</B>
+
+<DD>
+Display version information about the current instance of
+<B>bash</B>.
+
+
+</DL>
+<A NAME="lbCV">&nbsp;</A>
+<H4>Programmable Completion</H4>
+
+<P>
+
+When word completion is attempted for an argument to a command for
+which a completion specification (a <I>compspec</I>) has been defined
+using the <B>complete</B> builtin (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below), the programmable completion facilities are invoked.
+<P>
+
+First, the command name is identified.
+If a compspec has been defined for that command, the
+compspec is used to generate the list of possible completions for the word.
+If the command word is a full pathname, a compspec for the full
+pathname is searched for first.
+If no compspec is found for the full pathname, an attempt is made to
+find a compspec for the portion following the final slash.
+<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 <B>bash</B> completion as
+described above under <B>Completing</B> is performed.
+<P>
+
+First, the actions specified by the compspec are used.
+Only matches which are prefixed by the word being completed are
+returned.
+When the
+<B>-f</B>
+
+or
+<B>-d</B>
+
+option is used for filename or directory name completion, the shell
+variable
+<FONT SIZE=-1><B>FIGNORE</B>
+
+</FONT>
+is used to filter the matches.
+<P>
+
+Any completions specified by a filename expansion pattern to the
+<B>-G</B> option are generated next.
+The words generated by the pattern need not match the word
+being completed.
+The
+<FONT SIZE=-1><B>GLOBIGNORE</B>
+
+</FONT>
+shell variable is not used to filter the matches, but the
+<FONT SIZE=-1><B>FIGNORE</B>
+
+</FONT>
+variable is used.
+<P>
+
+Next, the string specified as the argument to the <B>-W</B> option
+is considered.
+The string is first split using the characters in the
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+special variable as delimiters.
+Shell quoting is honored.
+Each word is then expanded using
+brace expansion, tilde expansion, parameter and variable expansion,
+command substitution, and arithmetic expansion,
+as described above under 
+<FONT SIZE=-1><B>EXPANSION</B>.
+
+</FONT>
+The results are split using the rules described above under
+<B>Word Splitting</B>.
+The results of the expansion are prefix-matched against the word being
+completed, and the matching words become the possible completions.
+<P>
+
+After these matches have been generated, any shell function or command
+specified with the <B>-F</B> and <B>-C</B> options is invoked.
+When the command or function is invoked, the
+<FONT SIZE=-1><B>COMP_LINE</B>,
+
+</FONT>
+<FONT SIZE=-1><B>COMP_POINT</B>,
+
+</FONT>
+<FONT SIZE=-1><B>COMP_KEY</B>,
+
+</FONT>
+and
+<FONT SIZE=-1><B>COMP_TYPE</B>
+
+</FONT>
+variables are assigned values as described above under
+<B>Shell Variables</B>.
+If a shell function is being invoked, the 
+<FONT SIZE=-1><B>COMP_WORDS</B>
+
+</FONT>
+and
+<FONT SIZE=-1><B>COMP_CWORD</B>
+
+</FONT>
+variables are also set.
+When the function or command is invoked, the first argument is the
+name of the command whose arguments are being completed, the
+second argument is the word being completed, and the third argument
+is the word preceding the word being completed on the current command line.
+No filtering of the generated completions against the word being completed
+is performed; the function or command has complete freedom in generating
+the matches.
+<P>
+
+Any function specified with <B>-F</B> is invoked first.
+The function may use any of the shell facilities, including the
+<B>compgen</B> builtin described below, to generate the matches.
+It must put the possible completions in the
+<FONT SIZE=-1><B>COMPREPLY</B>
+
+</FONT>
+array variable.
+<P>
+
+Next, any command specified with the <B>-C</B> option is invoked
+in an environment equivalent to command substitution.
+It should print a list of completions, one per line, to the
+standard output.
+Backslash may be used to escape a newline, if necessary.
+<P>
+
+After all of the possible completions are generated, any filter
+specified with the <B>-X</B> option is applied to the list.
+The filter is a pattern as used for pathname expansion; a <B>&amp;</B>
+in the pattern is replaced with the text of the word being completed.
+A literal <B>&amp;</B> may be escaped with a backslash; the backslash
+is removed before attempting a match.
+Any completion that matches the pattern will be removed from the list.
+A leading <B>!</B> negates the pattern; in this case any completion
+not matching the pattern will be removed.
+<P>
+
+Finally, any prefix and suffix specified with the <B>-P</B> and <B>-S</B>
+options are added to each member of the completion list, and the result is
+returned to the readline completion code as the list of possible
+completions.
+<P>
+
+If the previously-applied actions do not generate any matches, and the
+<B>-o dirnames</B> option was supplied to <B>complete</B> when the
+compspec was defined, directory name completion is attempted.
+<P>
+
+If the <B>-o plusdirs</B> option was supplied to <B>complete</B> when the
+compspec was defined, directory name completion is attempted and any
+matches are added to the results of the other actions.
+<P>
+
+By default, if a compspec is found, whatever it generates is returned
+to the completion code as the full set of possible completions.
+The default <B>bash</B> completions are not attempted, and the readline
+default of filename completion is disabled.
+If the <B>-o bashdefault</B> option was supplied to <B>complete</B> when
+the compspec was defined, the <B>bash</B> default completions are attempted
+if the compspec generates no matches.
+If the <B>-o default</B> option was supplied to <B>complete</B> when the
+compspec was defined, readline's default completion will be performed
+if the compspec (and, if attempted, the default <B>bash</B> completions)
+generate no matches.
+<P>
+
+When a compspec indicates that directory name completion is desired,
+the programmable completion functions force readline to append a slash
+to completed names which are symbolic links to directories, subject to  
+the value of the <B>mark-directories</B> readline variable, regardless
+of the setting of the <B>mark-symlinked-directories</B> readline variable.
+<A NAME="lbCW">&nbsp;</A>
+<H3>HISTORY</H3>
+
+When the
+<B>-o history</B>
+
+option to the
+<B>set</B>
+
+builtin is enabled, the shell provides access to the
+<I>command history</I>,
+the list of commands previously typed.
+The value of the <B>HISTSIZE</B> variable is used as the
+number of commands to save in a history list.
+The text of the last
+<FONT SIZE=-1><B>HISTSIZE</B>
+
+</FONT>
+commands (default 500) is saved.  The shell
+stores each command in the history list prior to parameter and
+variable expansion (see
+<FONT SIZE=-1><B>EXPANSION</B>
+
+</FONT>
+above) but after history expansion is performed, subject to the
+values of the shell variables
+<FONT SIZE=-1><B>HISTIGNORE</B>
+
+</FONT>
+and
+<FONT SIZE=-1><B>HISTCONTROL</B>.
+
+</FONT>
+<P>
+
+On startup, the history is initialized from the file named by
+the variable
+<FONT SIZE=-1><B>HISTFILE</B>
+
+</FONT>
+(default <A HREF="file:~/.bash_history"><I>~/.bash_history</I></A>).
+The file named by the value of
+<FONT SIZE=-1><B>HISTFILE</B>
+
+</FONT>
+is truncated, if necessary, to contain no more than
+the number of lines specified by the value of
+<FONT SIZE=-1><B>HISTFILESIZE</B>.
+
+</FONT>
+When the history file is read,
+lines beginning with the history comment character followed immediately
+by a digit are interpreted as timestamps for the preceding history line.
+These timestamps are optionally displayed depending on the value of the
+<FONT SIZE=-1><B>HISTTIMEFORMAT</B>
+
+</FONT>
+variable.
+When an interactive shell exits, the last
+<FONT SIZE=-1><B>$HISTSIZE</B>
+
+</FONT>
+lines are copied from the history list to
+<FONT SIZE=-1><B>$HISTFILE</B>.
+
+</FONT>
+If the
+<B>histappend</B>
+
+shell option is enabled
+(see the description of
+<B>shopt</B>
+
+under
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below), the lines are appended to the history file,
+otherwise the history file is overwritten.
+If
+<FONT SIZE=-1><B>HISTFILE</B>
+
+</FONT>
+is unset, or if the history file is unwritable, the history is
+not saved.
+If the
+<FONT SIZE=-1>
+</FONT>
+variable is set, time stamps are written to the history file, marked
+with the history comment character, so
+they may be preserved across shell sessions.
+This uses the history comment character to distinguish timestamps from
+other history lines.
+After saving the history, the history file is truncated
+to contain no more than
+<FONT SIZE=-1><B>HISTFILESIZE</B>
+
+</FONT>
+lines.  If
+<FONT SIZE=-1><B>HISTFILESIZE</B>
+
+</FONT>
+is not set, no truncation is performed.
+<P>
+
+The builtin command
+<B>fc</B>
+
+(see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below) may be used to list or edit and re-execute a portion of
+the history list.
+The
+<B>history</B>
+
+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.
+<P>
+
+The shell allows control over which commands are saved on the history
+list.  The
+<FONT SIZE=-1><B>HISTCONTROL</B>
+
+</FONT>
+and
+<FONT SIZE=-1><B>HISTIGNORE</B>
+
+</FONT>
+variables may be set to cause the shell to save only a subset of the
+commands entered.
+The
+<B>cmdhist</B>
+
+shell option, if enabled, causes the shell to attempt to save each
+line of a multi-line command in the same history entry, adding
+semicolons where necessary to preserve syntactic correctness.
+The
+<B>lithist</B>
+
+shell option causes the shell to save the command with embedded newlines
+instead of semicolons.  See the description of the
+<B>shopt</B>
+
+builtin below under
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+for information on setting and unsetting shell options.
+<A NAME="lbCX">&nbsp;</A>
+<H3>HISTORY EXPANSION</H3>
+
+<P>
+
+The shell supports a history expansion feature that
+is similar to the history expansion in
+<B>csh.</B>
+
+This section describes what syntax features are available.  This
+feature is enabled by default for interactive shells, and can be
+disabled using the
+<B>+H</B>
+
+option to the
+<B>set</B>
+
+builtin command (see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below).  Non-interactive shells do not perform history expansion
+by default.
+<P>
+
+History expansions introduce words from the history list into
+the input stream, making it easy to repeat commands, insert the
+arguments to a previous command into the current input line, or
+fix errors in previous commands quickly.
+<P>
+
+History expansion is performed immediately after a complete line
+is read, before the shell breaks it into words.
+It takes place in two parts.
+The first is to determine which line from the history list
+to use during substitution.
+The second is to select portions of that line for inclusion into
+the current one.
+The line selected from the history is the <I>event</I>,
+and the portions of that line that are acted upon are <I>words</I>.
+Various <I>modifiers</I> are available to manipulate the selected words.
+The line is broken into words in the same fashion as when reading input,
+so that several <I>metacharacter</I>-separated words surrounded by
+quotes are considered one word.
+History expansions are introduced by the appearance of the
+history expansion character, which is <B>!</B> by default.
+Only backslash (<B>\</B>) and single quotes can quote
+the history expansion character.
+<P>
+
+Several characters inhibit history expansion if found immediately
+following the history expansion character, even if it is unquoted:
+space, tab, newline, carriage return, and <B>=</B>.
+If the <B>extglob</B> shell option is enabled, <B>(</B> will also
+inhibit expansion.
+<P>
+
+Several shell options settable with the
+<B>shopt</B>
+
+builtin may be used to tailor the behavior of history expansion.
+If the
+<B>histverify</B>
+
+shell option is enabled (see the description of the
+<B>shopt</B>
+
+builtin), and
+<B>readline</B>
+
+is being used, history substitutions are not immediately passed to
+the shell parser.
+Instead, the expanded line is reloaded into the
+<B>readline</B>
+
+editing buffer for further modification.
+If
+<B>readline</B>
+
+is being used, and the
+<B>histreedit</B>
+
+shell option is enabled, a failed history substitution will be reloaded
+into the
+<B>readline</B>
+
+editing buffer for correction.
+The
+<B>-p</B>
+
+option to the
+<B>history</B>
+
+builtin command may be used to see what a history expansion will
+do before using it.
+The
+<B>-s</B>
+
+option to the
+<B>history</B>
+
+builtin may be used to add commands to the end of the history list
+without actually executing them, so that they are available for
+subsequent recall.
+<P>
+
+The shell allows control of the various characters used by the
+history expansion mechanism (see the description of
+<B>histchars</B>
+
+above under
+<B>Shell Variables</B>).
+
+The shell uses
+the history comment character to mark history timestamps when
+writing the history file.
+<A NAME="lbCY">&nbsp;</A>
+<H4>Event Designators</H4>
+
+<P>
+
+An event designator is a reference to a command line entry in the
+history list.
+<P>
+
+
+<DL COMPACT>
+<DT><B>!</B>
+
+<DD>
+Start a history substitution, except when followed by a
+<B>blank</B>,
+
+newline, carriage return, =
+or ( (when the <B>extglob</B> shell option is enabled using
+the <B>shopt</B> builtin).
+<DT><B>!</B><I>n</I>
+
+<DD>
+Refer to command line
+<I>n</I>.
+
+<DT><B>!-</B><I>n</I>
+
+<DD>
+Refer to the current command line minus
+<I>n</I>.
+
+<DT><B>!!</B>
+
+<DD>
+Refer to the previous command.  This is a synonym for `!-1'.
+<DT><B>!</B><I>string</I>
+
+<DD>
+Refer to the most recent command starting with 
+<I>string</I>.
+
+<DT><B>!?</B><I>string</I><B>[?]</B>
+
+<DD>
+Refer to the most recent command containing
+<I>string</I>.
+
+The trailing <B>?</B> may be omitted if
+<I>string</I>
+
+is followed immediately by a newline.
+<DT><B></B><FONT SIZE=+2><B>^</B></FONT><B></B><I>string1</I><FONT SIZE=+2>^</FONT><I>string2</I><FONT SIZE=+2>^</FONT>
+
+<DD>
+Quick substitution.  Repeat the last command, replacing
+<I>string1</I>
+
+with
+<I>string2</I>.
+
+Equivalent to
+``!!:s/<I>string1</I>/<I>string2</I>/''
+(see <B>Modifiers</B> below).
+<DT><B>!#</B>
+
+<DD>
+The entire command line typed so far.
+
+</DL>
+<A NAME="lbCZ">&nbsp;</A>
+<H4>Word Designators</H4>
+
+<P>
+
+Word designators are used to select desired words from the event.
+A 
+<B>:</B>
+
+separates the event specification from the word designator.
+It may be omitted if the word designator begins with a
+<B>^</B>,
+
+<B>$</B>,
+
+<B>*</B>,
+
+<B>-</B>,
+
+or
+<B>%</B>.
+
+Words are numbered from the beginning of the line,
+with the first word being denoted by 0 (zero).
+Words are inserted into the current line separated by single spaces.
+<P>
+
+
+<DL COMPACT>
+<DT><B>0 (zero)</B>
+
+<DD>
+The zeroth word.  For the shell, this is the command
+word.
+<DT><I>n</I>
+
+<DD>
+The <I>n</I>th word.
+<DT><B>^</B>
+
+<DD>
+The first argument.  That is, word 1.
+<DT><B>$</B>
+
+<DD>
+The last argument.
+<DT><B>%</B>
+
+<DD>
+The word matched by the most recent `?<I>string</I>?' search.
+<DT><I>x</I><B>-</B>y
+
+<DD>
+A range of words; `-<I>y</I>' abbreviates `0-<I>y</I>'.
+<DT><B>*</B>
+
+<DD>
+All of the words but the zeroth.  This is a synonym
+for `<I>1-$</I>'.  It is not an error to use
+<B>*</B>
+
+if there is just one
+word in the event; the empty string is returned in that case.
+<DT><B>x*</B>
+
+<DD>
+Abbreviates <I>x-$</I>.
+<DT><B>x-</B>
+
+<DD>
+Abbreviates <I>x-$</I> like <B>x*</B>, but omits the last word.
+
+</DL>
+<P>
+
+If a word designator is supplied without an event specification, the
+previous command is used as the event.
+<A NAME="lbDA">&nbsp;</A>
+<H4>Modifiers</H4>
+
+<P>
+
+After the optional word designator, there may appear a sequence of
+one or more of the following modifiers, each preceded by a `:'.
+<P>
+
+
+<P>
+
+<DL COMPACT>
+<DT><B>h</B>
+
+<DD>
+Remove a trailing file name component, leaving only the head.
+<DT><B>t</B>
+
+<DD>
+Remove all leading file name components, leaving the tail.
+<DT><B>r</B>
+
+<DD>
+Remove a trailing suffix of the form <I>.xxx</I>, leaving the
+basename.
+<DT><B>e</B>
+
+<DD>
+Remove all but the trailing suffix.
+<DT><B>p</B>
+
+<DD>
+Print the new command but do not execute it.
+<DT><B>q</B>
+
+<DD>
+Quote the substituted words, escaping further substitutions.
+<DT><B>x</B>
+
+<DD>
+Quote the substituted words as with
+<B>q</B>,
+
+but break into words at
+<B>blanks</B>
+
+and newlines.
+<DT><B>s/</B><I>old</I>/<I>new</I>/
+
+<DD>
+Substitute
+<I>new</I>
+
+for the first occurrence of
+<I>old</I>
+
+in the event line.  Any delimiter can be used in place of /.  The
+final delimiter is optional if it is the last character of the
+event line.  The delimiter may be quoted in
+<I>old</I>
+
+and
+<I>new</I>
+
+with a single backslash.  If &amp; appears in
+<I>new</I>,
+
+it is replaced by
+<I>old</I>.
+
+A single backslash will quote the &amp;.  If
+<I>old</I>
+
+is null, it is set to the last
+<I>old</I>
+
+substituted, or, if no previous history substitutions took place,
+the last
+<I>string</I>
+
+in a
+<B>!?</B><I>string</I><B>[?]</B>
+
+search.
+<DT><B>&amp;</B>
+
+<DD>
+Repeat the previous substitution.
+<DT><B>g</B>
+
+<DD>
+Cause changes to be applied over the entire event line.  This is
+used in conjunction with `<B>:s</B>' (e.g., `<B>:gs/</B><I>old</I>/<I>new</I>/')
+or `<B>:&amp;</B>'.  If used with
+`<B>:s</B>', any delimiter can be used
+in place of /, and the final delimiter is optional
+if it is the last character of the event line.
+An <B>a</B> may be used as a synonym for <B>g</B>.
+<DT><B>G</B>
+
+<DD>
+Apply the following `<B>s</B>' modifier once to each word in the event line.
+
+</DL>
+<A NAME="lbDB">&nbsp;</A>
+<H3>SHELL BUILTIN COMMANDS</H3>
+
+
+
+<P>
+
+Unless otherwise noted, each builtin command documented in this
+section as accepting options preceded by
+<B>-</B>
+
+accepts
+<B>--</B>
+
+to signify the end of the options.
+For example, the <B>:</B>, <B>true</B>, <B>false</B>, and <B>test</B> builtins
+do not accept options.
+<P>
+
+<DL COMPACT>
+<DT><B>:</B> [<I>arguments</I>]<DD>
+
+No effect; the command does nothing beyond expanding
+<I>arguments</I>
+
+and performing any specified
+redirections.  A zero exit code is returned.
+<DT><B> . </B> <I>filename</I> [<I>arguments</I>]<DD>
+
+<DT><B>source</B> <I>filename</I> [<I>arguments</I>]<DD>
+
+Read and execute commands from
+<I>filename</I>
+
+in the current
+shell environment and return the exit status of the last command
+executed from
+<I>filename</I>.
+
+If
+<I>filename</I>
+
+does not contain a slash, file names in
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+are used to find the directory containing
+<I>filename</I>.
+
+The file searched for in
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+need not be executable.
+When <B>bash</B> is not in <I>posix mode</I>, the current directory is
+searched if no file is found in
+<FONT SIZE=-1><B>PATH</B>.
+
+</FONT>
+If the
+<B>sourcepath</B>
+
+option to the
+<B>shopt</B>
+
+builtin command is turned off, the
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+is not searched.
+If any <I>arguments</I> are supplied, they become the positional
+parameters when <I>filename</I> is executed.  Otherwise the positional
+parameters are unchanged.
+The return status is the status of the last command exited within
+the script (0 if no commands are executed), and false if
+<I>filename</I>
+
+is not found or cannot be read.
+<DT><B>alias</B> [<B>-p</B>] [<I>name</I>[=<I>value</I>] ...]<DD>
+<B>Alias</B> with no arguments or with the
+<B>-p</B>
+
+option prints the list of aliases in the form
+<B>alias</B> <I>name</I>=<I>value</I> on standard output.
+When arguments are supplied, an alias is defined for
+each <I>name</I> whose <I>value</I> is given.
+A trailing space in  <I>value</I> causes the next word to be
+checked for alias substitution when the alias is expanded.
+For each <I>name</I> in the argument list for which no <I>value</I>
+is supplied, the name and value of the alias is printed.
+<B>Alias</B> returns true unless a <I>name</I> is given for which
+no alias has been defined.
+<DT><B>bg</B> [<I>jobspec</I> ...]<DD>
+Resume each suspended job <I>jobspec</I> in the background, as if it
+had been started with
+<B>&amp;</B>.
+
+If
+<I>jobspec</I>
+
+is not present, the shell's notion of the <I>current job</I> is used.
+<B>bg</B>
+
+<I>jobspec</I>
+
+returns 0 unless run when job control is disabled or, when run with
+job control enabled, any specified <I>jobspec</I> was not found
+or was started without job control.
+<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] [<B>-lpsvPSV</B>]<DD>
+
+<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] [<B>-q</B> <I>function</I>] [<B>-u</B> <I>function</I>] [<B>-r</B> <I>keyseq</I>]<DD>
+<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] <B>-f</B> <I>filename</I><DD>
+<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] <B>-x</B> <I>keyseq</I>:<I>shell-command</I><DD>
+<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] <I>keyseq</I>:<I>function-name</I><DD>
+<DT><B>bind</B> <I>readline-command</I><DD>
+
+Display current
+<B>readline</B>
+
+key and function bindings, bind a key sequence to a
+<B>readline</B>
+
+function or macro, or set a
+<B>readline</B>
+
+variable.
+Each non-option argument is a command as it would appear in
+<I>.inputrc</I>,
+
+but each binding or command must be passed as a separate argument;
+e.g., '&quot;\C-x\C-r&quot;: re-read-init-file'.
+Options, if supplied, have the following meanings:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-m </B><I>keymap</I>
+
+<DD>
+Use
+<I>keymap</I>
+
+as the keymap to be affected by the subsequent bindings.
+Acceptable
+<I>keymap</I>
+
+names are
+<I>emacs, emacs-standard, emacs-meta, emacs-ctlx, vi,
+vi-move, vi-command</I>, and
+<I>vi-insert</I>.
+
+<I>vi</I> is equivalent to <I>vi-command</I>; <I>emacs</I> is
+equivalent to <I>emacs-standard</I>.
+<DT><B>-l</B>
+
+<DD>
+List the names of all <B>readline</B> functions.
+<DT><B>-p</B>
+
+<DD>
+Display <B>readline</B> function names and bindings in such a way
+that they can be re-read.
+<DT><B>-P</B>
+
+<DD>
+List current <B>readline</B> function names and bindings.
+<DT><B>-s</B>
+
+<DD>
+Display <B>readline</B> key sequences bound to macros and the strings
+they output in such a way that they can be re-read.
+<DT><B>-S</B>
+
+<DD>
+Display <B>readline</B> key sequences bound to macros and the strings
+they output.
+<DT><B>-v</B>
+
+<DD>
+Display <B>readline</B> variable names and values in such a way that they
+can be re-read.
+<DT><B>-V</B>
+
+<DD>
+List current <B>readline</B> variable names and values.
+<DT><B>-f </B><I>filename</I>
+
+<DD>
+Read key bindings from <I>filename</I>.
+<DT><B>-q </B><I>function</I>
+
+<DD>
+Query about which keys invoke the named <I>function</I>.
+<DT><B>-u </B><I>function</I>
+
+<DD>
+Unbind all keys bound to the named <I>function</I>.
+<DT><B>-r </B><I>keyseq</I>
+
+<DD>
+Remove any current binding for <I>keyseq</I>.
+<DT><B>-x </B><I>keyseq</I>:<I>shell-command</I>
+
+<DD>
+Cause <I>shell-command</I> to be executed whenever <I>keyseq</I> is
+entered.
+When <I>shell-command</I> is executed, the shell sets the
+<B>READLINE_LINE</B>
+
+variable to the contents of the <B>readline</B> line buffer and the
+<B>READLINE_POINT</B>
+
+variable to the current location of the insertion point.
+If the executed command changes the value of
+<B>READLINE_LINE</B>
+
+or
+<B>READLINE_POINT</B>,
+
+those new values will be reflected in the editing state.
+
+</DL>
+<P>
+
+The return value is 0 unless an unrecognized option is given or an
+error occurred.
+</DL>
+
+<DT><B>break</B> [<I>n</I>]<DD>
+Exit from within a
+<B>for</B>,
+
+<B>while</B>,
+
+<B>until</B>,
+
+or
+<B>select</B>
+
+loop.  If <I>n</I> is specified, break <I>n</I> levels.
+<I>n</I>
+
+must be >= 1.  If
+<I>n</I>
+
+is greater than the number of enclosing loops, all enclosing loops
+are exited.
+The return value is 0 unless <I>n</I> is not greater than or equal to 1.
+<DT><B>builtin</B> <I>shell-builtin</I> [<I>arguments</I>]<DD>
+Execute the specified shell builtin, passing it
+<I>arguments</I>,
+
+and return its exit status.
+This is useful when defining a
+function whose name is the same as a shell builtin,
+retaining the functionality of the builtin within the function.
+The <B>cd</B> builtin is commonly redefined this way.
+The return status is false if
+<I>shell-builtin</I>
+
+is not a shell builtin command.
+<DT><B>caller</B> [<I>expr</I>]<DD>
+Returns the context of any active subroutine call (a shell function or
+a script executed with the <B>.</B> or <B>source</B> builtins.
+Without <I>expr</I>, <B>caller</B> displays the line number and source
+filename of the current subroutine call.
+If a non-negative integer is supplied as <I>expr</I>, <B>caller</B> 
+displays the line number, subroutine name, and source file corresponding
+to that position in the current execution call stack.  This extra
+information may be used, for example, to print a stack trace.  The
+current frame is frame 0.
+The return value is 0 unless the shell is not executing a subroutine
+call or <I>expr</I> does not correspond to a valid position in the
+call stack.
+<DT><B>cd</B> [<B>-L|-P</B>] [<I>dir</I>]<DD>
+Change the current directory to <I>dir</I>.  The variable
+<FONT SIZE=-1><B>HOME</B>
+
+</FONT>
+is the
+default
+<I>dir</I>.
+
+The variable
+<FONT SIZE=-1><B>CDPATH</B>
+
+</FONT>
+defines the search path for the directory containing
+<I>dir</I>.
+
+Alternative directory names in
+<FONT SIZE=-1><B>CDPATH</B>
+
+</FONT>
+are separated by a colon (:).  A null directory name in
+<FONT SIZE=-1><B>CDPATH</B>
+
+</FONT>
+is the same as the current directory, i.e., ``<B>.</B>''.  If
+<I>dir</I>
+
+begins with a slash (/),
+then
+<FONT SIZE=-1><B>CDPATH</B>
+
+</FONT>
+is not used. The
+<B>-P</B>
+
+option says to use the physical directory structure instead of
+following symbolic links (see also the
+<B>-P</B>
+
+option to the
+<B>set</B>
+
+builtin command); the
+<B>-L</B>
+
+option forces symbolic links to be followed.  An argument of
+<B>-</B>
+
+is equivalent to
+<FONT SIZE=-1><B>$OLDPWD</B>.
+
+</FONT>
+If a non-empty directory name from <B>CDPATH</B> is used, or if
+<B>-</B> is the first argument, and the directory change is
+successful, the absolute pathname of the new working directory is
+written to the standard output.
+The return value is true if the directory was successfully changed;
+false otherwise.
+<DT><B>command</B> [<B>-pVv</B>] <I>command</I> [<I>arg</I> ...]<DD>
+Run
+<I>command</I>
+
+with
+<I>args</I>
+
+suppressing the normal shell function lookup. Only builtin
+commands or commands found in the
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+are executed.  If the
+<B>-p</B>
+
+option is given, the search for
+<I>command</I>
+
+is performed using a default value for
+<B>PATH</B>
+
+that is guaranteed to find all of the standard utilities.
+If either the
+<B>-V</B>
+
+or
+<B>-v</B>
+
+option is supplied, a description of
+<I>command</I>
+
+is printed.  The
+<B>-v</B>
+
+option causes a single word indicating the command or file name
+used to invoke
+<I>command</I>
+
+to be displayed; the
+<B>-V</B>
+
+option produces a more verbose description.
+If the
+<B>-V</B>
+
+or
+<B>-v</B>
+
+option is supplied, the exit status is 0 if
+<I>command</I>
+
+was found, and 1 if not.  If neither option is supplied and
+an error occurred or
+<I>command</I>
+
+cannot be found, the exit status is 127.  Otherwise, the exit status of the
+<B>command</B>
+
+builtin is the exit status of
+<I>command</I>.
+
+<DT><B>compgen</B> [<I>option</I>] [<I>word</I>]<DD>
+Generate possible completion matches for <I>word</I> according to
+the <I>option</I>s, which may be any option accepted by the
+<B>complete</B>
+
+builtin with the exception of <B>-p</B> and <B>-r</B>, and write
+the matches to the standard output.
+When using the <B>-F</B> or <B>-C</B> options, the various shell variables
+set by the programmable completion facilities, while available, will not
+have useful values.
+<P>
+The matches will be generated in the same way as if the programmable
+completion code had generated them directly from a completion specification
+with the same flags.
+If <I>word</I> is specified, only those completions matching <I>word</I>
+will be displayed.
+<P>
+The return value is true unless an invalid option is supplied, or no
+matches were generated.
+<DT><B>complete</B> [<B>-abcdefgjksuv</B>] [<B>-o</B> <I>comp-option</I>] [<B>-E</B>] [<B>-A</B> <I>action</I>] [<B>-G</B> <I>globpat</I>] [<B>-W</B> <I>wordlist</I>] [<B>-F</B> <I>function</I>] [<B>-C</B> <I>command</I>]<DD>
+<BR>
+
+[<B>-X</B> <I>filterpat</I>] [<B>-P</B> <I>prefix</I>] [<B>-S</B> <I>suffix</I>] <I>name</I> [<I>name ...</I>]
+
+<DT><B>complete</B> <B>-pr</B> [<B>-E</B>] [<I>name</I> ...]<DD>
+
+Specify how arguments to each <I>name</I> should be completed.
+If the <B>-p</B> option is supplied, or if no options are supplied,
+existing completion specifications are printed in a way that allows
+them to be reused as input.
+The <B>-r</B> option removes a completion specification for
+each <I>name</I>, or, if no <I>name</I>s are supplied, all
+completion specifications.
+The <B>-E</B> option indicates that the remaining options and actions should
+apply to ``empty'' command completion; that is, completion attempted on a
+blank line.
+<P>
+The process of applying these completion specifications when word completion
+is attempted is described above under <B>Programmable Completion</B>.
+<P>
+Other options, if specified, have the following meanings.
+The arguments to the <B>-G</B>, <B>-W</B>, and <B>-X</B> options
+(and, if necessary, the <B>-P</B> and <B>-S</B> options)
+should be quoted to protect them from expansion before the
+<B>complete</B>
+
+builtin is invoked.
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-o</B> <I>comp-option</I><DD>
+The <I>comp-option</I> controls several aspects of the compspec's behavior
+beyond the simple generation of completions.
+<I>comp-option</I> may be one of:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>bashdefault</B>
+
+<DD>
+Perform the rest of the default <B>bash</B> completions if the compspec
+generates no matches.
+<DT><B>default</B>
+
+<DD>
+Use readline's default filename completion if the compspec generates
+no matches.
+<DT><B>dirnames</B>
+
+<DD>
+Perform directory name completion if the compspec generates no matches.
+<DT><B>filenames</B>
+
+<DD>
+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).
+Intended to be used with shell functions.
+<DT><B>nospace</B>
+
+<DD>
+Tell readline not to append a space (the default) to words completed at
+the end of the line.
+<DT><B>plusdirs</B>
+
+<DD>
+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.
+</DL></DL>
+
+<DT><B>-A</B> <I>action</I><DD>
+The <I>action</I> may be one of the following to generate a list of possible
+completions:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>alias</B>
+
+<DD>
+Alias names.  May also be specified as <B>-a</B>.
+<DT><B>arrayvar</B>
+
+<DD>
+Array variable names.
+<DT><B>binding</B>
+
+<DD>
+<B>Readline</B> key binding names.
+<DT><B>builtin</B>
+
+<DD>
+Names of shell builtin commands.  May also be specified as <B>-b</B>.
+<DT><B>command</B>
+
+<DD>
+Command names.  May also be specified as <B>-c</B>.
+<DT><B>directory</B>
+
+<DD>
+Directory names.  May also be specified as <B>-d</B>.
+<DT><B>disabled</B>
+
+<DD>
+Names of disabled shell builtins.
+<DT><B>enabled</B>
+
+<DD>
+Names of enabled shell builtins.
+<DT><B>export</B>
+
+<DD>
+Names of exported shell variables.  May also be specified as <B>-e</B>.
+<DT><B>file</B>
+
+<DD>
+File names.  May also be specified as <B>-f</B>.
+<DT><B>function</B>
+
+<DD>
+Names of shell functions.
+<DT><B>group</B>
+
+<DD>
+Group names.  May also be specified as <B>-g</B>.
+<DT><B>helptopic</B>
+
+<DD>
+Help topics as accepted by the <B>help</B> builtin.
+<DT><B>hostname</B>
+
+<DD>
+Hostnames, as taken from the file specified by the
+<FONT SIZE=-1><B>HOSTFILE</B>
+
+</FONT>
+shell variable.
+<DT><B>job</B>
+
+<DD>
+Job names, if job control is active.  May also be specified as <B>-j</B>.
+<DT><B>keyword</B>
+
+<DD>
+Shell reserved words.  May also be specified as <B>-k</B>.
+<DT><B>running</B>
+
+<DD>
+Names of running jobs, if job control is active.
+<DT><B>service</B>
+
+<DD>
+Service names.  May also be specified as <B>-s</B>.
+<DT><B>setopt</B>
+
+<DD>
+Valid arguments for the <B>-o</B> option to the <B>set</B> builtin.
+<DT><B>shopt</B>
+
+<DD>
+Shell option names as accepted by the <B>shopt</B> builtin.
+<DT><B>signal</B>
+
+<DD>
+Signal names.
+<DT><B>stopped</B>
+
+<DD>
+Names of stopped jobs, if job control is active.
+<DT><B>user</B>
+
+<DD>
+User names.  May also be specified as <B>-u</B>.
+<DT><B>variable</B>
+
+<DD>
+Names of all shell variables.  May also be specified as <B>-v</B>.
+</DL></DL>
+
+<DT><B>-G</B> <I>globpat</I><DD>
+The filename expansion pattern <I>globpat</I> is expanded to generate
+the possible completions.
+<DT><B>-W</B> <I>wordlist</I><DD>
+The <I>wordlist</I> is split using the characters in the
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+special variable as delimiters, and each resultant word is expanded.
+The possible completions are the members of the resultant list which
+match the word being completed.
+<DT><B>-C</B> <I>command</I><DD>
+<I>command</I> is executed in a subshell environment, and its output is
+used as the possible completions.
+<DT><B>-F</B> <I>function</I><DD>
+The shell function <I>function</I> is executed in the current shell
+environment.
+When it finishes, the possible completions are retrieved from the value
+of the
+<FONT SIZE=-1><B>COMPREPLY</B>
+
+</FONT>
+array variable.
+<DT><B>-X</B> <I>filterpat</I><DD>
+<I>filterpat</I> 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
+<I>filterpat</I> is removed from the list.
+A leading <B>!</B> in <I>filterpat</I> negates the pattern; in this
+case, any completion not matching <I>filterpat</I> is removed.
+<DT><B>-P</B> <I>prefix</I><DD>
+<I>prefix</I> is added at the beginning of each possible completion
+after all other options have been applied.
+<DT><B>-S</B> <I>suffix</I><DD>
+<I>suffix</I> is appended to each possible completion
+after all other options have been applied.
+
+</DL>
+<P>
+
+The return value is true unless an invalid option is supplied, an option
+other than <B>-p</B> or <B>-r</B> is supplied without a <I>name</I>
+argument, an attempt is made to remove a completion specification for
+a <I>name</I> for which no specification exists, or
+an error occurs adding a completion specification.
+</DL>
+
+<DT><B>compopt</B> [<B>-o</B> <I>option</I>] [<B>+o</B> <I>option</I>] [<I>name</I>]<DD>
+Modify completion options for each <I>name</I> according to the
+<I>option</I>s, or for the
+currently-execution completion if no <I>name</I>s are supplied.
+If no <I>option</I>s are given, display the completion options for each
+<I>name</I> or the current completion.
+The possible values of <I>option</I> are those valid for the <B>complete</B>
+builtin described above.
+</DL>
+<P>
+
+The return value is true unless an invalid option is supplied, an attempt
+is made to modify the options for a <I>name</I> for which no completion
+specification exists, or an output error occurs.
+<DL COMPACT>
+<DT><B>continue</B> [<I>n</I>]<DD>
+Resume the next iteration of the enclosing
+<B>for</B>,
+
+<B>while</B>,
+
+<B>until</B>,
+
+or
+<B>select</B>
+
+loop.
+If
+<I>n</I>
+
+is specified, resume at the <I>n</I>th enclosing loop.
+<I>n</I>
+
+must be >= 1.  If
+<I>n</I>
+
+is greater than the number of enclosing loops, the last enclosing loop
+(the ``top-level'' loop) is resumed.
+The return value is 0 unless <I>n</I> is not greater than or equal to 1.
+<DT><B>declare</B> [<B>-aAfFilrtux</B>] [<B>-p</B>] [<I>name</I>[=<I>value</I>] ...]<DD>
+
+<DT><B>typeset</B> [<B>-aAfFilrtux</B>] [<B>-p</B>] [<I>name</I>[=<I>value</I>] ...]<DD>
+
+Declare variables and/or give them attributes.
+If no <I>name</I>s are given then display the values of variables.
+The
+<B>-p</B>
+
+option will display the attributes and values of each
+<I>name</I>.
+
+When
+<B>-p</B>
+
+is used with <I>name</I> arguments, additional options are ignored.
+When
+<B>-p</B>
+
+is supplied without <I>name</I> arguments, it will display the attributes
+and values of all variables having the attributes specified by the
+additional options.
+If no other options are supplied with <B>-p</B>, <B>declare</B> will display
+the attributes and values of all shell variables.  The <B>-f</B> option
+will restrict the display to shell functions.
+The
+<B>-F</B>
+
+option inhibits the display of function definitions; only the
+function name and attributes are printed.
+If the <B>extdebug</B> shell option is enabled using <B>shopt</B>,
+the source file name and line number where the function is defined
+are displayed as well.  The
+<B>-F</B>
+
+option implies
+<B>-f</B>.
+
+The following options can
+be used to restrict output to variables with the specified attribute or
+to give variables attributes:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-a</B>
+
+<DD>
+Each <I>name</I> is an indexed array variable (see
+<B>Arrays</B>
+
+above).
+<DT><B>-A</B>
+
+<DD>
+Each <I>name</I> is an associative array variable (see
+<B>Arrays</B>
+
+above).
+<DT><B>-f</B>
+
+<DD>
+Use function names only.
+<DT><B>-i</B>
+
+<DD>
+The variable is treated as an integer; arithmetic evaluation (see
+<FONT SIZE=-1><B>ARITHMETIC EVALUATION ) </B>
+
+</FONT>
+is performed when the variable is assigned a value.
+<DT><B>-l</B>
+
+<DD>
+When the variable is assigned a value, all upper-case characters are
+converted to lower-case.
+The upper-case attribute is disabled.
+<DT><B>-r</B>
+
+<DD>
+Make <I>name</I>s readonly.  These names cannot then be assigned values
+by subsequent assignment statements or unset.
+<DT><B>-t</B>
+
+<DD>
+Give each <I>name</I> the <I>trace</I> attribute.
+Traced functions inherit the <B>DEBUG</B> and <B>RETURN</B> traps from
+the calling shell.
+The trace attribute has no special meaning for variables.
+<DT><B>-u</B>
+
+<DD>
+When the variable is assigned a value, all lower-case characters are
+converted to upper-case.
+The lower-case attribute is disabled.
+<DT><B>-x</B>
+
+<DD>
+Mark <I>name</I>s for export to subsequent commands via the environment.
+
+</DL>
+<P>
+
+Using `+' instead of `-'
+turns off the attribute instead,
+with the exceptions that <B>+a</B>
+may not be used to destroy an array variable and <B>+r will not
+remove the readonly attribute.
+When used in a function,
+makes each
+</B><I>name</I> local, as with the 
+<B>local</B>
+
+command.
+If a variable name is followed by =<I>value</I>, the value of
+the variable is set to <I>value</I>.
+The return value is 0 unless an invalid option is encountered,
+an attempt is made to define a function using
+
+<TT>-f foo=bar</TT>,
+an attempt is made to assign a value to a readonly variable,
+an attempt is made to assign a value to an array variable without
+using the compound assignment syntax (see
+<B>Arrays</B>
+
+above), one of the <I>names</I> is not a valid shell variable name,
+an attempt is made to turn off readonly status for a readonly variable,
+an attempt is made to turn off array status for an array variable,
+or an attempt is made to display a non-existent function with <B>-f</B>.
+</DL>
+
+<DT><B>dirs [+</B><I>n</I>] [-<I>n</I>] [<B>-cplv</B>]
+
+<DD>
+Without options, displays the list of currently remembered directories.
+The default display is on a single line with directory names separated
+by spaces.
+Directories are added to the list with the 
+<B>pushd</B>
+
+command; the
+<B>popd</B>
+
+command removes entries from the list.
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>+</B><I>n</I><DD>
+Displays the <I>n</I>th entry counting from the left of the list
+shown by
+<B>dirs</B>
+
+when invoked without options, starting with zero.
+<DT><B>-</B><I>n</I><DD>
+Displays the <I>n</I>th entry counting from the right of the list
+shown by
+<B>dirs</B>
+
+when invoked without options, starting with zero.
+<DT><B>-c</B>
+
+<DD>
+Clears the directory stack by deleting all of the entries.
+<DT><B>-l</B>
+
+<DD>
+Produces a longer listing; the default listing format uses a 
+tilde to denote the home directory.
+<DT><B>-p</B>
+
+<DD>
+Print the directory stack with one entry per line.
+<DT><B>-v</B>
+
+<DD>
+Print the directory stack with one entry per line,
+prefixing each entry with its index in the stack.
+
+</DL>
+<P>
+
+The return value is 0 unless an
+invalid option is supplied or <I>n</I> indexes beyond the end
+of the directory stack.
+</DL>
+
+<DT><B>disown</B> [<B>-ar</B>] [<B>-h</B>] [<I>jobspec</I> ...]<DD>
+Without options, each
+<I>jobspec</I>
+
+is removed from the table of active jobs.
+If
+<I>jobspec</I>
+
+is not present, and neither <B>-a nor -r</B> is supplied,
+the shell's notion of the <I>current job</I> is used.
+If the <B>-h</B> option is given, each
+<I>jobspec</I>
+
+is not removed from the table, but is marked so that
+<FONT SIZE=-1><B>SIGHUP</B>
+
+</FONT>
+is not sent to the job if the shell receives a
+<FONT SIZE=-1><B>SIGHUP</B>.
+
+</FONT>
+If no
+<I>jobspec</I>
+
+is present, and neither the
+<B>-a</B>
+
+nor the
+<B>-r</B>
+
+option is supplied, the <I>current job</I> is used.
+If no
+<I>jobspec</I>
+
+is supplied, the
+<B>-a</B>
+
+option means to remove or mark all jobs; the
+<B>-r</B>
+
+option without a
+<I>jobspec</I>
+
+argument restricts operation to running jobs.
+The return value is 0 unless a
+<I>jobspec</I>
+
+does not specify a valid job.
+<DT><B>echo</B> [<B>-neE</B>] [<I>arg</I> ...]<DD>
+Output the <I>arg</I>s, separated by spaces, followed by a newline.
+The return status is always 0.
+If <B>-n</B> is specified, the trailing newline is
+suppressed.  If the <B>-e</B> option is given, interpretation of
+the following backslash-escaped characters is enabled.  The
+<B>-E</B>
+
+option disables the interpretation of these escape characters,
+even on systems where they are interpreted by default.
+The <B>xpg_echo</B> shell option may be used to
+dynamically determine whether or not <B>echo</B> expands these
+escape characters by default.
+<B>echo</B>
+
+does not interpret <B>--</B> to mean the end of options.
+<B>echo</B>
+
+interprets the following escape sequences:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>\a</B>
+
+<DD>
+alert (bell)
+<DT><B>\b</B>
+
+<DD>
+backspace
+<DT><B>\c</B>
+
+<DD>
+suppress further output
+<DT><B>\e</B>
+
+<DD>
+an escape character
+<DT><B>\f</B>
+
+<DD>
+form feed
+<DT><B>\n</B>
+
+<DD>
+new line
+<DT><B>\r</B>
+
+<DD>
+carriage return
+<DT><B>\t</B>
+
+<DD>
+horizontal tab
+<DT><B>\v</B>
+
+<DD>
+vertical tab
+<DT><B>\\</B>
+
+<DD>
+backslash
+<DT><B>\0</B><I>nnn</I>
+
+<DD>
+the eight-bit character whose value is the octal value <I>nnn</I>
+(zero to three octal digits)
+<DT><B>\x</B><I>HH</I>
+
+<DD>
+the eight-bit character whose value is the hexadecimal value <I>HH</I>
+(one or two hex digits)
+
+</DL></DL>
+
+<DT><B>enable</B> [<B>-a</B>] [<B>-dnps</B>] [<B>-f</B> <I>filename</I>] [<I>name</I> ...]<DD>
+Enable and disable builtin shell commands.
+Disabling a builtin allows a disk command which has the same name
+as a shell builtin to be executed without specifying a full pathname,
+even though the shell normally searches for builtins before disk commands.
+If <B>-n</B> is used, each <I>name</I>
+is disabled; otherwise,
+<I>names</I> are enabled.  For example, to use the
+<B>test</B>
+
+binary found via the
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+instead of the shell builtin version, run
+<TT>enable -n test</TT>.
+
+The
+<B>-f</B>
+
+option means to load the new builtin command
+<I>name</I>
+
+from shared object
+<I>filename</I>,
+
+on systems that support dynamic loading.  The
+<B>-d</B>
+
+option will delete a builtin previously loaded with
+<B>-f</B>.
+
+If no <I>name</I> arguments are given, or if the
+<B>-p</B>
+
+option is supplied, a list of shell builtins is printed.
+With no other option arguments, the list consists of all enabled
+shell builtins.
+If <B>-n</B> is supplied, only disabled builtins are printed.
+If <B>-a</B> is supplied, the list printed includes all builtins, with an
+indication of whether or not each is enabled.
+If <B>-s</B> is supplied, the output is restricted to the POSIX
+<I>special</I> builtins.
+The return value is 0 unless a
+<I>name</I>
+
+is not a shell builtin or there is an error loading a new builtin
+from a shared object.
+<DT><B>eval</B> [<I>arg</I> ...]<DD>
+The <I>arg</I>s are read and concatenated together into a single
+command.  This command is then read and executed by the shell, and
+its exit status is returned as the value of
+<B>eval</B>.
+
+If there are no
+<I>args</I>,
+
+or only null arguments,
+<B>eval</B>
+
+returns 0.
+<DT><B>exec</B> [<B>-cl</B>] [<B>-a</B> <I>name</I>] [<I>command</I> [<I>arguments</I>]]<DD>
+If
+<I>command</I>
+
+is specified, it replaces the shell.
+No new process is created.  The
+<I>arguments</I>
+
+become the arguments to <I>command</I>.
+If the
+<B>-l</B>
+
+option is supplied,
+the shell places a dash at the beginning of the zeroth argument passed to 
+<I>command</I>.
+
+This is what
+<I>login</I>(1)
+
+does.  The
+<B>-c</B>
+
+option causes
+<I>command</I>
+
+to be executed with an empty environment.  If
+<B>-a</B>
+
+is supplied, the shell passes
+<I>name</I>
+
+as the zeroth argument to the executed command.  If
+<I>command</I>
+
+cannot be executed for some reason, a non-interactive shell exits,
+unless the shell option
+<B>execfail</B>
+
+is enabled, in which case it returns failure.
+An interactive shell returns failure if the file cannot be executed.
+If
+<I>command</I>
+
+is not specified, any redirections take effect in the current shell,
+and the return status is 0.  If there is a redirection error, the
+return status is 1.
+<DT><B>exit</B> [<I>n</I>]<DD>
+Cause the shell to exit
+with a status of <I>n</I>.  If
+<I>n</I>
+
+is omitted, the exit status
+is that of the last command executed.
+A trap on
+<FONT SIZE=-1><B>EXIT</B>
+
+</FONT>
+is executed before the shell terminates.
+<DT><B>export</B> [<B>-fn</B>] [<I>name</I>[=<I>word</I>]] ...<DD>
+
+<DT><B>export -p</B>
+
+<DD>
+
+The supplied
+<I>names</I>
+
+are marked for automatic export to the environment of
+subsequently executed commands.  If the 
+<B>-f</B>
+
+option is given,
+the 
+<I>names</I>
+
+refer to functions.
+If no
+<I>names</I>
+
+are given, or if the
+<B>-p</B>
+
+option is supplied, a list
+of all names that are exported in this shell is printed.
+The
+<B>-n</B>
+
+option causes the export property to be removed from each
+<I>name</I>.
+If a variable name is followed by =<I>word</I>, the value of
+the variable is set to <I>word</I>.
+<B>export</B>
+
+returns an exit status of 0 unless an invalid option is
+encountered,
+one of the <I>names</I> is not a valid shell variable name, or
+<B>-f</B>
+
+is supplied with a
+<I>name</I>
+
+that is not a function.
+<DT><B>fc</B> [<B>-e</B> <I>ename</I>] [<B>-lnr</B>] [<I>first</I>] [<I>last</I>]<DD>
+
+<DT><B>fc</B> <B>-s</B> [<I>pat</I>=<I>rep</I>] [<I>cmd</I>]<DD>
+
+Fix Command.  In the first form, a range of commands from
+<I>first</I>
+
+to
+<I>last</I>
+
+is selected from the history list.
+<I>First</I>
+
+and
+<I>last</I>
+
+may be specified as a string (to locate the last command beginning
+with that string) or as a number (an index into the history list,
+where a negative number is used as an offset from the current
+command number).  If 
+<I>last</I>
+
+is not specified it is set to
+the current command for listing (so that
+
+<TT>fc -l -10</TT>
+prints the last 10 commands) and to
+<I>first</I>
+
+otherwise.
+If
+<I>first</I>
+
+is not specified it is set to the previous
+command for editing and -16 for listing.
+<P>
+The
+<B>-n</B>
+
+option suppresses
+the command numbers when listing.  The
+<B>-r</B>
+
+option reverses the order of
+the commands.  If the
+<B>-l</B>
+
+option is given,
+the commands are listed on
+standard output.  Otherwise, the editor given by
+<I>ename</I>
+
+is invoked
+on a file containing those commands.  If
+<I>ename</I>
+
+is not given, the
+value of the
+<FONT SIZE=-1><B>FCEDIT</B>
+
+</FONT>
+variable is used, and
+the value of
+<FONT SIZE=-1><B>EDITOR</B>
+
+</FONT>
+if
+<FONT SIZE=-1><B>FCEDIT</B>
+
+</FONT>
+is not set.  If neither variable is set,
+
+<I>vi</I>
+
+is used.  When editing is complete, the edited commands are
+echoed and executed.
+<P>
+In the second form, <I>command</I> is re-executed after each instance
+of <I>pat</I> is replaced by <I>rep</I>.
+A useful alias to use with this is
+
+<TT>r='fc -s'</TT>,
+so that typing
+
+<TT>r cc</TT>
+runs the last command beginning with
+
+<TT>cc</TT>
+and typing
+
+<TT>r</TT>
+re-executes the last command.
+<P>
+If the first form is used, the return value is 0 unless an invalid
+option is encountered or
+<I>first</I>
+
+or
+<I>last</I>
+
+specify history lines out of range.
+If the
+<B>-e</B>
+
+option is supplied, the return value is the value of the last
+command executed or failure if an error occurs with the temporary
+file of commands.  If the second form is used, the return status
+is that of the command re-executed, unless
+<I>cmd</I>
+
+does not specify a valid history line, in which case
+<B>fc</B>
+
+returns failure.
+<DT><B>fg</B> [<I>jobspec</I>]<DD>
+Resume
+<I>jobspec</I>
+
+in the foreground, and make it the current job.
+If
+<I>jobspec</I>
+
+is not present, the shell's notion of the <I>current job</I> is used.
+The return value is that of the command placed into the foreground,
+or failure if run when job control is disabled or, when run with
+job control enabled, if
+<I>jobspec</I>
+
+does not specify a valid job or
+<I>jobspec</I>
+
+specifies a job that was started without job control.
+<DT><B>getopts</B> <I>optstring</I> <I>name</I> [<I>args</I>]<DD>
+<B>getopts</B>
+
+is used by shell procedures to parse positional parameters.
+<I>optstring</I>
+
+contains the option characters to be recognized; if a character
+is followed by a colon, the option is expected to have an
+argument, which should be separated from it by white space.
+The colon and question mark characters may not be used as
+option characters.
+Each time it is invoked,
+<B>getopts</B>
+
+places the next option in the shell variable
+<I>name</I>,
+
+initializing
+<I>name</I>
+
+if it does not exist,
+and the index of the next argument to be processed into the
+variable
+<FONT SIZE=-1><B>OPTIND</B>.
+
+</FONT>
+<FONT SIZE=-1><B>OPTIND</B>
+
+</FONT>
+is initialized to 1 each time the shell or a shell script
+is invoked.  When an option requires an argument,
+<B>getopts</B>
+
+places that argument into the variable
+<FONT SIZE=-1><B>OPTARG</B>.
+
+</FONT>
+The shell does not reset
+<FONT SIZE=-1><B>OPTIND</B>
+
+</FONT>
+automatically; it must be manually reset between multiple
+calls to
+<B>getopts</B>
+
+within the same shell invocation if a new set of parameters
+is to be used.
+<P>
+When the end of options is encountered, <B>getopts</B> exits with a
+return value greater than zero.
+<B>OPTIND</B> is set to the index of the first non-option argument,
+and <B>name</B> is set to ?.
+<P>
+<B>getopts</B>
+
+normally parses the positional parameters, but if more arguments are
+given in
+<I>args</I>,
+
+<B>getopts</B>
+
+parses those instead.
+<P>
+<B>getopts</B>
+
+can report errors in two ways.  If the first character of
+<I>optstring</I>
+
+is a colon,
+<I>silent</I>
+
+error reporting is used.  In normal operation diagnostic messages
+are printed when invalid options or missing option arguments are
+encountered.
+If the variable
+<FONT SIZE=-1><B>OPTERR</B>
+
+</FONT>
+is set to 0, no error messages will be displayed, even if the first
+character of 
+<I>optstring</I>
+
+is not a colon.
+<P>
+If an invalid option is seen,
+<B>getopts</B>
+
+places ? into
+<I>name</I>
+
+and, if not silent,
+prints an error message and unsets
+<FONT SIZE=-1><B>OPTARG</B>.
+
+</FONT>
+If
+<B>getopts</B>
+
+is silent,
+the option character found is placed in
+<FONT SIZE=-1><B>OPTARG</B>
+
+</FONT>
+and no diagnostic message is printed.
+<P>
+If a required argument is not found, and
+<B>getopts</B>
+
+is not silent,
+a question mark (<B>?</B>) is placed in
+<I>name</I>,
+
+<FONT SIZE=-1><B>OPTARG</B>
+
+</FONT>
+is unset, and a diagnostic message is printed.
+If
+<B>getopts</B>
+
+is silent, then a colon (<B>:</B>) is placed in
+<I>name</I>
+
+and
+<FONT SIZE=-1><B>OPTARG</B>
+
+</FONT>
+is set to the option character found.
+<P>
+<B>getopts</B>
+
+returns true if an option, specified or unspecified, is found.
+It returns false if the end of options is encountered or an
+error occurs.
+<DT><B>hash</B> [<B>-lr</B>] [<B>-p</B> <I>filename</I>] [<B>-dt</B>] [<I>name</I>]<DD>
+For each
+<I>name</I>,
+
+the full file name of the command is determined by searching
+the directories in
+<B>$PATH</B>
+
+and remembered.
+If the
+<B>-p</B>
+
+option is supplied, no path search is performed, and
+<I>filename</I>
+
+is used as the full file name of the command.
+The
+<B>-r</B>
+
+option causes the shell to forget all
+remembered locations.
+The
+<B>-d</B>
+
+option causes the shell to forget the remembered location of each <I>name</I>.
+If the
+<B>-t</B>
+
+option is supplied, the full pathname to which each <I>name</I> corresponds
+is printed.  If multiple <I>name</I> arguments are supplied with <B>-t</B>,
+the <I>name</I> is printed before the hashed full pathname.
+The
+<B>-l</B>
+
+option causes output to be displayed in a format that may be reused as input.
+If no arguments are given, or if only <B>-l</B> is supplied,
+information about remembered commands is printed.
+The return status is true unless a
+<I>name</I>
+
+is not found or an invalid option is supplied.
+<DT><B>help</B> [<B>-dms</B>] [<I>pattern</I>]<DD>
+Display helpful information about builtin commands.  If
+<I>pattern</I>
+
+is specified,
+<B>help</B>
+
+gives detailed help on all commands matching
+<I>pattern</I>;
+
+otherwise help for all the builtins and shell control structures
+is printed.
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-d</B>
+
+<DD>
+Display a short description of each <I>pattern</I>
+<DT><B>&nbsp;-m</B>
+
+<DD>
+Display the description of each <I>pattern</I> in a manpage-like format
+<DT><B>-s</B>
+
+<DD>
+Display only a short usage synopsis for each <I>pattern</I>
+
+</DL></DL>
+
+The return status is 0 unless no command matches
+<I>pattern</I>.
+
+<DT><B>history [</B><I>n</I>]<DD>
+
+<DT><B>history</B> <B>-c</B><DD>
+<DT><B>history -d</B> <I>offset</I><DD>
+<DT><B>history</B> <B>-anrw</B> [<I>filename</I>]<DD>
+<DT><B>history</B> <B>-p</B> <I>arg</I> [<I>arg ...</I>]<DD>
+<DT><B>history</B> <B>-s</B> <I>arg</I> [<I>arg ...</I>]<DD>
+
+With no options, display the command
+history list with line numbers.  Lines listed
+with a 
+<B>*</B>
+
+have been modified.  An argument of
+<I>n</I>
+
+lists only the last
+<I>n</I>
+
+lines.
+If the shell variable <B>HISTTIMEFORMAT</B> is set and not null,
+it is used as a format string for <I>strftime</I>(3) to display
+the time stamp associated with each displayed history entry.
+No intervening blank is printed between the formatted time stamp
+and the history line.
+If <I>filename</I> is supplied, it is used as the
+name of the history file; if not, the value of
+<FONT SIZE=-1><B>HISTFILE</B>
+
+</FONT>
+is used.  Options, if supplied, have the following meanings:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-c</B>
+
+<DD>
+Clear the history list by deleting all the entries.
+<DT><B>-d</B> <I>offset</I><DD>
+Delete the history entry at position <I>offset</I>.
+<DT><B>-a</B>
+
+<DD>
+Append the ``new'' history lines (history lines entered since the
+beginning of the current <B>bash</B> session) to the history file.
+<DT><B>-n</B>
+
+<DD>
+Read the history lines not already read from the history
+file into the current history list.  These are lines
+appended to the history file since the beginning of the
+current <B>bash</B> session.
+<DT><B>-r</B>
+
+<DD>
+Read the contents of the history file
+and use them as the current history.
+<DT><B>-w</B>
+
+<DD>
+Write the current history to the history file, overwriting the
+history file's contents.
+<DT><B>-p</B>
+
+<DD>
+Perform history substitution on the following <I>args</I> and display
+the result on the standard output.
+Does not store the results in the history list.
+Each <I>arg</I> must be quoted to disable normal history expansion.
+<DT><B>-s</B>
+
+<DD>
+Store the
+<I>args</I>
+
+in the history list as a single entry.  The last command in the
+history list is removed before the
+<I>args</I>
+
+are added.
+
+</DL>
+<P>
+
+If the <B>HISTTIMEFORMAT</B> is set, the time stamp information
+associated with each history entry is written to the history file,
+marked with the history comment character.
+When the history file is read, lines beginning with the history
+comment character followed immediately by a digit are interpreted
+as timestamps for the previous history line.
+The return value is 0 unless an invalid option is encountered, an
+error occurs while reading or writing the history file, an invalid
+<I>offset</I> is supplied as an argument to <B>-d</B>, or the
+history expansion supplied as an argument to <B>-p</B> fails.
+</DL>
+
+<DT><B>jobs</B> [<B>-lnprs</B>] [ <I>jobspec</I> ... ]<DD>
+
+<DT><B>jobs</B> <B>-x</B> <I>command</I> [ <I>args</I> ... ]<DD>
+
+The first form lists the active jobs.  The options have the following
+meanings:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-l</B>
+
+<DD>
+List process IDs
+in addition to the normal information.
+<DT><B>-p</B>
+
+<DD>
+List only the process ID of the job's process group
+leader.
+<DT><B>-n</B>
+
+<DD>
+Display information only about jobs that have changed status since
+the user was last notified of their status.
+<DT><B>-r</B>
+
+<DD>
+Restrict output to running jobs.
+<DT><B>-s</B>
+
+<DD>
+Restrict output to stopped jobs.
+
+</DL>
+<P>
+
+If
+<I>jobspec</I>
+
+is given, output is restricted to information about that job.
+The return status is 0 unless an invalid option is encountered
+or an invalid
+<I>jobspec</I>
+
+is supplied.
+<P>
+
+If the
+<B>-x</B>
+
+option is supplied,
+<B>jobs</B>
+
+replaces any
+<I>jobspec</I>
+
+found in
+<I>command</I>
+
+or
+<I>args</I>
+
+with the corresponding process group ID, and executes
+<I>command</I>
+
+passing it
+<I>args</I>,
+
+returning its exit status.
+</DL>
+
+<DT><B>kill</B> [<B>-s</B> <I>sigspec</I> | <B>-n</B> <I>signum</I> | <B>-</B><I>sigspec</I>] [<I>pid</I> | <I>jobspec</I>] ...<DD>
+
+<DT><B>kill</B> <B>-l</B> [<I>sigspec</I> | <I>exit_status</I>]<DD>
+
+Send the signal named by
+<I>sigspec</I>
+
+or
+<I>signum</I>
+
+to the processes named by
+<I>pid</I>
+
+or
+<I>jobspec</I>.
+
+<I>sigspec</I>
+
+is either a case-insensitive signal name such as
+<FONT SIZE=-1><B>SIGKILL</B>
+
+</FONT>
+(with or without the
+<FONT SIZE=-1><B>SIG</B>
+
+</FONT>
+prefix) or a signal number;
+<I>signum</I>
+
+is a signal number.
+If
+<I>sigspec</I>
+
+is not present, then
+<FONT SIZE=-1><B>SIGTERM</B>
+
+</FONT>
+is assumed.
+An argument of
+<B>-l</B>
+
+lists the signal names.
+If any arguments are supplied when
+<B>-l</B>
+
+is given, the names of the signals corresponding to the arguments are
+listed, and the return status is 0.
+The <I>exit_status</I> argument to
+<B>-l</B>
+
+is a number specifying either a signal number or the exit status of
+a process terminated by a signal.
+<B>kill</B>
+
+returns true if at least one signal was successfully sent, or false
+if an error occurs or an invalid option is encountered.
+<DT><B>let</B> <I>arg</I> [<I>arg</I> ...]<DD>
+Each
+<I>arg</I>
+
+is an arithmetic expression to be evaluated (see
+<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>).
+
+</FONT>
+If the last
+<I>arg</I>
+
+evaluates to 0,
+<B>let</B>
+
+returns 1; 0 is returned otherwise.
+<DT><B>local</B> [<I>option</I>] [<I>name</I>[=<I>value</I>] ...]<DD>
+For each argument, a local variable named
+<I>name </I>
+
+is created, and assigned
+<I>value</I>.
+
+The <I>option</I> can be any of the options accepted by <B>declare</B>.
+When
+<B>local</B>
+
+is used within a function, it causes the variable
+<I>name</I>
+
+to have a visible scope restricted to that function and its children.
+With no operands,
+<B>local</B>
+
+writes a list of local variables to the standard output.  It is
+an error to use
+<B>local</B>
+
+when not within a function.  The return status is 0 unless
+<B>local</B>
+
+is used outside a function, an invalid
+<I>name</I>
+
+is supplied, or
+<I>name</I> is a readonly variable.
+<DT><B>logout</B>
+
+<DD>
+Exit a login shell.
+<DT><B>mapfile</B> [<B>-n</B> <I>count</I>] [<B>-O</B> <I>origin</I>] [<B>-s</B> <I>count</I>] [<B>-t</B>] [<B>-u</B> <I>fd</I>] [<B>-C</B> <I>callback</I>] [<B>-c</B> <I>quantum</I>] [<I>array</I>]<DD>
+
+<DT><B>readarray</B> [<B>-n</B> <I>count</I>] [<B>-O</B> <I>origin</I>] [<B>-s</B> <I>count</I>] [<B>-t</B>] [<B>-u</B> <I>fd</I>] [<B>-C</B> <I>callback</I>] [<B>-c</B> <I>quantum</I>] [<I>array</I>]<DD>
+
+Read lines from the standard input into array variable
+<I>array</I>,
+
+or from file descriptor 
+<I>fd</I>
+
+if the 
+<B>-u</B>
+
+option is supplied.
+The variable <B>MAPFILE</B> is the default <I>array</I>.
+Options, if supplied, have the following meanings:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-n</B>
+
+<DD>
+Copy at most
+<I>count</I>
+
+lines.  If <I>count</I> is 0, all lines are copied.
+<DT><B>-O</B>
+
+<DD>
+Begin assigning to
+<I>array</I>
+
+at index
+<I>origin</I>.
+
+The default index is 0.
+<DT><B>-s</B>
+
+<DD>
+Discard the first <I>count</I> lines read.
+<DT><B>-t</B>
+
+<DD>
+Remove a trailing line from each line read.
+<DT><B>-u</B>
+
+<DD>
+Read lines from file descriptor <I>fd</I> instead of the standard input.
+<DT><B>-C</B>
+
+<DD>
+Evaluate
+<I>callback</I>
+
+each time <I>quantum</I> lines are read.  The <B>-c</B> option specifies
+<I>quantum</I>.
+
+<DT><B>-c</B>
+
+<DD>
+Specify the number of lines read between each call to
+<I>callback</I>.
+
+
+</DL>
+<P>
+
+If
+<B>-C</B>
+
+is specified without 
+<B>-c</B>,
+
+the default quantum is 5000.
+When <I>callback</I> is evaluated, it is supplied the index of the next
+array element to be assigned as an additional argument.
+<I>callback</I> is evaluated after the line is read but before the 
+array element is assigned.
+<P>
+
+If not supplied with an explicit origin, <B>mapfile</B> will clear <I>array</I>
+before assigning to it.
+<P>
+
+<B>mapfile</B> returns successfully unless an invalid option or option
+argument is supplied, or <I>array</I> is invalid or unassignable.
+</DL>
+
+<DT><B>popd</B> [-<B>n</B>] [+<I>n</I>] [-<I>n</I>]<DD>
+Removes entries from the directory stack.  With no arguments,
+removes the top directory from the stack, and performs a
+<B>cd</B>
+
+to the new top directory.
+Arguments, if supplied, have the following meanings:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-n</B>
+
+<DD>
+Suppresses the normal change of directory when removing directories
+from the stack, so that only the stack is manipulated.
+<DT><B>+</B><I>n</I><DD>
+Removes the <I>n</I>th entry counting from the left of the list
+shown by
+<B>dirs</B>,
+
+starting with zero.  For example:
+
+<TT>popd +0</TT>
+removes the first directory,
+
+<TT>popd +1</TT>
+the second.
+<DT><B>-</B><I>n</I><DD>
+Removes the <I>n</I>th entry counting from the right of the list
+shown by
+<B>dirs</B>,
+
+starting with zero.  For example:
+
+<TT>popd -0</TT>
+removes the last directory,
+
+<TT>popd -1</TT>
+the next to last.
+
+</DL>
+<P>
+
+If the
+<B>popd</B>
+
+command is successful, a 
+<B>dirs</B>
+
+is performed as well, and the return status is 0.
+<B>popd</B>
+
+returns false if an invalid option is encountered, the directory stack
+is empty, a non-existent directory stack entry is specified, or the
+directory change fails.
+</DL>
+
+<DT><B>printf</B> [<B>-v</B> <I>var</I>] <I>format</I> [<I>arguments</I>]<DD>
+Write the formatted <I>arguments</I> to the standard output under the
+control of the <I>format</I>.
+The <I>format</I> is a character string which contains three types of objects:
+plain characters, which are simply copied to standard output, character
+escape sequences, which are converted and copied to the standard output, and
+format specifications, each of which causes printing of the next successive
+<I>argument</I>.
+In addition to the standard <I>printf</I>(1) formats, <B>%b</B> causes
+<B>printf</B> to expand backslash escape sequences in the corresponding
+<I>argument</I> (except that <B>\c</B> terminates output, backslashes in
+<B>\aq</B>, <B>\&quot;</B>, and <B>\?</B> are not removed, and octal escapes
+beginning with <B>\0</B> may contain up to four digits),
+and <B>%q</B> causes <B>printf</B> to output the corresponding
+<I>argument</I> in a format that can be reused as shell input.
+<P>
+The <B>-v</B> option causes the output to be assigned to the variable
+<I>var</I> rather than being printed to the standard output.
+<P>
+The <I>format</I> is reused as necessary to consume all of the <I>arguments</I>.
+If the <I>format</I> requires more <I>arguments</I> than are supplied, the
+extra format specifications behave as if a zero value or null string, as
+appropriate, had been supplied.  The return value is zero on success,
+non-zero on failure.
+<DT><B>pushd</B> [<B>-n</B>] [+<I>n</I>] [-<I>n</I>]<DD>
+
+<DT><B>pushd</B> [<B>-n</B>] [<I>dir</I>]<DD>
+
+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, exchanges the top two directories
+and returns 0, unless the directory stack is empty.
+Arguments, if supplied, have the following meanings:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-n</B>
+
+<DD>
+Suppresses the normal change of directory when adding directories
+to the stack, so that only the stack is manipulated.
+<DT><B>+</B><I>n</I><DD>
+Rotates the stack so that the <I>n</I>th directory
+(counting from the left of the list shown by
+<B>dirs</B>,
+
+starting with zero)
+is at the top.
+<DT><B>-</B><I>n</I><DD>
+Rotates the stack so that the <I>n</I>th directory
+(counting from the right of the list shown by
+<B>dirs</B>,
+
+starting with zero) is at the top.
+<DT><I>dir</I>
+
+<DD>
+Adds
+<I>dir</I>
+
+to the directory stack at the top, making it the
+new current working directory.
+
+</DL>
+<P>
+
+If the
+<B>pushd</B>
+
+command is successful, a 
+<B>dirs</B>
+
+is performed as well.
+If the first form is used,
+<B>pushd</B>
+
+returns 0 unless the cd to
+<I>dir</I>
+
+fails.  With the second form,
+<B>pushd</B>
+
+returns 0 unless the directory stack is empty,
+a non-existent directory stack element is specified,
+or the directory change to the specified new current directory
+fails.
+</DL>
+
+<DT><B>pwd</B> [<B>-LP</B>]<DD>
+Print the absolute pathname of the current working directory.
+The pathname printed contains no symbolic links if the
+<B>-P</B>
+
+option is supplied or the 
+<B>-o physical</B>
+
+option to the
+<B>set</B>
+
+builtin command is enabled.
+If the
+<B>-L</B>
+
+option is used, the pathname printed may contain symbolic links.
+The return status is 0 unless an error occurs while
+reading the name of the current directory or an
+invalid option is supplied.
+<DT><B>read</B> [<B>-ers</B>] [<B>-a</B> <I>aname</I>] [<B>-d</B> <I>delim</I>] [<B>-</B> <I>text</I>] [<B>-n</B> <I>nchars</I>] [<B>-p</B> <I>prompt</I>] [<B>-t</B> <I>timeout</I>] [<B>-u</B> <I>fd</I>] [<I>name</I> ...]<DD>
+One line is read from the standard input, or from the file descriptor
+<I>fd</I> supplied as an argument to the <B>-u</B> option, and the first word
+is assigned to the first
+<I>name</I>,
+
+the second word to the second
+<I>name</I>,
+
+and so on, with leftover words and their intervening separators assigned
+to the last
+<I>name</I>.
+
+If there are fewer words read from the input stream than names,
+the remaining names are assigned empty values.
+The characters in 
+<FONT SIZE=-1><B>IFS</B>
+
+</FONT>
+are used to split the line into words.
+The backslash character (<B>\</B>) may be used to remove any special
+meaning for the next character read and for line continuation.
+Options, if supplied, have the following meanings:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-a </B><I>aname</I>
+
+<DD>
+The words are assigned to sequential indices
+of the array variable
+<I>aname</I>,
+
+starting at 0.
+<I>aname</I>
+
+is unset before any new values are assigned.
+Other <I>name</I> arguments are ignored.
+<DT><B>-d </B><I>delim</I>
+
+<DD>
+The first character of <I>delim</I> is used to terminate the input line,
+rather than newline.
+<DT><B>-e</B>
+
+<DD>
+If the standard input
+is coming from a terminal,
+<B>readline</B>
+
+(see
+<FONT SIZE=-1><B>READLINE</B>
+
+</FONT>
+above) is used to obtain the line.
+Readline uses the current (or default, if line editing was not previously
+active) editing settings.
+<DT><B>-i </B><I>text</I>
+
+<DD>
+If
+<B>readline</B>
+
+is being used to read the line, <I>text</I> is placed into the editing
+buffer before editing begins.
+<DT><B>-n </B><I>nchars</I>
+
+<DD>
+<B>read</B> returns after reading <I>nchars</I> characters rather than
+waiting for a complete line of input.
+<DT><B>-p </B><I>prompt</I>
+
+<DD>
+Display <I>prompt</I> on standard error, without a
+trailing newline, before attempting to read any input.  The prompt
+is displayed only if input is coming from a terminal.
+<DT><B>-r</B>
+
+<DD>
+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 be used as a line
+continuation.
+<DT><B>-s</B>
+
+<DD>
+Silent mode.  If input is coming from a terminal, characters are
+not echoed.
+<DT><B>-t </B><I>timeout</I>
+
+<DD>
+Cause <B>read</B> to time out and return failure if a complete line of
+input is not read within <I>timeout</I> seconds.
+<I>timeout</I> may be a decimal number with a fractional portion following
+the decimal point.
+This option is only effective if <B>read</B> is reading input from a
+terminal, pipe, or other special file; it has no effect when reading
+from regular files.
+If <I>timeout</I> is 0, <B>read</B> returns success if input is available on
+the specified file descriptor, failure otherwise.
+The exit status is greater than 128 if the timeout is exceeded.
+<DT><B>-u </B><I>fd</I>
+
+<DD>
+Read input from file descriptor <I>fd</I>.
+
+</DL>
+<P>
+
+If no
+<I>names</I>
+
+are supplied, the line read is assigned to the variable
+<FONT SIZE=-1><B>REPLY</B>.
+
+</FONT>
+The return code is zero, unless end-of-file is encountered, <B>read</B>
+times out (in which case the return code is greater than 128), or an
+invalid file descriptor is supplied as the argument to <B>-u</B>.
+</DL>
+
+<DT><B>readonly</B> [<B>-aApf</B>] [<I>name</I>[=<I>word</I>] ...]<DD>
+
+The given
+<I>names</I> are marked readonly; the values of these
+<I>names</I>
+
+may not be changed by subsequent assignment.
+If the
+<B>-f</B>
+
+option is supplied, the functions corresponding to the
+<I>names</I> are so
+marked.
+The
+<B>-a</B>
+
+option restricts the variables to indexed arrays; the
+<B>-A</B>
+
+option restricts the variables to associative arrays.
+If no
+<I>name</I>
+
+arguments are given, or if the
+<B>-p</B>
+
+option is supplied, a list of all readonly names is printed.
+The
+<B>-p</B>
+
+option causes output to be displayed in a format that
+may be reused as input.
+If a variable name is followed by =<I>word</I>, the value of
+the variable is set to <I>word</I>.
+The return status is 0 unless an invalid option is encountered,
+one of the
+<I>names</I>
+
+is not a valid shell variable name, or
+<B>-f</B>
+
+is supplied with a
+<I>name</I>
+
+that is not a function.
+<DT><B>return</B> [<I>n</I>]<DD>
+Causes a function to exit with the return value specified by
+<I>n</I>.
+
+If 
+<I>n</I>
+
+is omitted, the return status is that of the last command
+executed in the function body.  If used outside a function,
+but during execution of a script by the 
+<B>.</B>
+
+(<B>source</B>) command, it causes the shell to stop executing
+that script and return either
+<I>n</I>
+
+or the exit status of the last command executed within the
+script as the exit status of the script.  If used outside a
+function and not during execution of a script by <B>.</B>,
+the return status is false.
+Any command associated with the <B>RETURN</B> trap is executed
+before execution resumes after the function or script.
+<DT><B>set</B> [<B>--abefhkmnptuvxBCEHPT</B>] [<B>-o</B> <I>option</I>] [<I>arg</I> ...]<DD>
+
+<DT><B>set</B> [<B>+abefhkmnptuvxBCEHPT</B>] [<B>+o</B> <I>option</I>] [<I>arg</I> ...]<DD>
+
+Without options, the name and value of each shell variable are displayed
+in a format that can be reused as input
+for setting or resetting the currently-set variables.
+Read-only variables cannot be reset.
+In <I>posix mode</I>, only shell variables are listed.
+The output is sorted according to the current locale.
+When options are specified, they set or unset shell attributes.
+Any arguments remaining after option processing are treated
+as values for the positional parameters and are assigned, in order, to 
+<B>$1</B>,
+
+<B>$2</B>,
+
+<B>...</B>
+
+<B>$</B><I>n</I>.
+
+Options, if specified, have the following meanings:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-a</B>
+
+<DD>
+Automatically mark variables and functions which are modified or
+created for export to the environment of subsequent commands.
+<DT><B>-b</B>
+
+<DD>
+Report the status of terminated background jobs
+immediately, rather than before the next primary prompt.  This is
+effective only when job control is enabled.
+<DT><B>-e</B>
+
+<DD>
+Exit immediately if a <I>simple command</I> (see
+<FONT SIZE=-1><B>SHELL GRAMMAR</B>
+
+</FONT>
+above) exits with a non-zero status.
+The shell does not exit if the
+command that fails is part of the command list immediately following a
+<B>while</B>
+
+or
+<B>until</B>
+
+keyword, 
+part of the test in an
+<B>if</B>
+
+statement, part of a command executed in a
+<B>&amp;&amp;</B>
+
+or
+<B>||</B>
+
+list,
+any command in a pipeline but the last,
+or if the command's return value is
+being inverted via
+<B>!</B>.
+
+Failing simple commands that are part of shell functions or command lists
+enclosed in braces or parentheses satisfying the above conditions do not
+cause the shell to exit.
+A trap on <B>ERR</B>, if set, is executed before the shell exits.
+<DT><B>-f</B>
+
+<DD>
+Disable pathname expansion.
+<DT><B>-h</B>
+
+<DD>
+Remember the location of commands as they are looked up for execution.
+This is enabled by default.
+<DT><B>-k</B>
+
+<DD>
+All arguments in the form of assignment statements
+are placed in the environment for a command, not just
+those that precede the command name.
+<DT><B>-m</B>
+
+<DD>
+Monitor mode.  Job control is enabled.  This option is on
+by default for interactive shells on systems that support
+it (see
+<FONT SIZE=-1><B>JOB CONTROL</B>
+
+</FONT>
+above).  Background processes run in a separate process
+group and a line containing their exit status is printed
+upon their completion.
+<DT><B>-n</B>
+
+<DD>
+Read commands but do not execute them.  This may be used to 
+check a shell script for syntax errors.  This is ignored by
+interactive shells.
+<DT><B>-o </B><I>option-name</I>
+
+<DD>
+The <I>option-name</I> can be one of the following:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>allexport</B>
+
+<DD>
+Same as
+<B>-a</B>.
+
+<DT><B>braceexpand</B>
+
+<DD>
+Same as
+<B>-B</B>.
+
+<DT><B>emacs</B>
+
+<DD>
+Use an emacs-style command line editing interface.  This is enabled
+by default when the shell is interactive, unless the shell is started
+with the
+<B>--noediting</B>
+
+option.
+This also affects the editing interface used for <B>read -e</B>.
+<DT><B>errtrace</B>
+
+<DD>
+Same as
+<B>-E</B>.
+
+<DT><B>functrace</B>
+
+<DD>
+Same as
+<B>-T</B>.
+
+<DT><B>errexit</B>
+
+<DD>
+Same as
+<B>-e</B>.
+
+<DT><B>hashall</B>
+
+<DD>
+Same as
+<B>-h</B>.
+
+<DT><B>histexpand</B>
+
+<DD>
+Same as
+<B>-H</B>.
+
+<DT><B>history</B>
+
+<DD>
+Enable command history, as described above under
+<FONT SIZE=-1><B>HISTORY</B>.
+
+</FONT>
+This option is on by default in interactive shells.
+<DT><B>ignoreeof</B>
+
+<DD>
+The effect is as if the shell command
+<TT>IGNOREEOF=10</TT>
+
+had been executed
+(see
+<B>Shell Variables</B>
+
+above).
+<DT><B>keyword</B>
+
+<DD>
+Same as
+<B>-k</B>.
+
+<DT><B>monitor</B>
+
+<DD>
+Same as
+<B>-m</B>.
+
+<DT><B>noclobber</B>
+
+<DD>
+Same as
+<B>-C</B>.
+
+<DT><B>noexec</B>
+
+<DD>
+Same as
+<B>-n</B>.
+
+<DT><B>noglob</B>
+
+<DD>
+Same as
+<B>-f</B>.
+
+<DT><B>nolog</B>
+
+<DD>
+Currently ignored.
+<DT><B>notify</B>
+
+<DD>
+Same as
+<B>-b</B>.
+
+<DT><B>nounset</B>
+
+<DD>
+Same as
+<B>-u</B>.
+
+<DT><B>onecmd</B>
+
+<DD>
+Same as
+<B>-t</B>.
+
+<DT><B>physical</B>
+
+<DD>
+Same as
+<B>-P</B>.
+
+<DT><B>pipefail</B>
+
+<DD>
+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.
+<DT><B>posix</B>
+
+<DD>
+Change the behavior of
+<B>bash</B>
+
+where the default operation differs
+from the POSIX standard to match the standard (<I>posix mode</I>).
+<DT><B>privileged</B>
+
+<DD>
+Same as
+<B>-p</B>.
+
+<DT><B>verbose</B>
+
+<DD>
+Same as
+<B>-v</B>.
+
+<DT><B>vi</B>
+
+<DD>
+Use a vi-style command line editing interface.
+This also affects the editing interface used for <B>read -e</B>.
+<DT><B>xtrace</B>
+
+<DD>
+Same as
+<B>-x</B>.
+
+<P>
+</DL>
+<P>
+
+If
+<B>-o</B>
+
+is supplied with no <I>option-name</I>, the values of the current options are
+printed.
+If
+<B>+o</B>
+
+is supplied with no <I>option-name</I>, a series of
+<B>set</B>
+
+commands to recreate the current option settings is displayed on
+the standard output.
+</DL>
+
+<DT><B>-p</B>
+
+<DD>
+Turn on
+<I>privileged</I>
+
+mode.  In this mode, the
+<FONT SIZE=-1><B>$ENV</B>
+
+</FONT>
+and
+<FONT SIZE=-1><B>$BASH_ENV</B>
+
+</FONT>
+files are not processed, shell functions are not inherited from the
+environment, and the
+<FONT SIZE=-1><B>SHELLOPTS</B>,
+
+</FONT>
+<B>CDPATH</B>,
+
+and
+<B>GLOBIGNORE</B>
+
+variables, if they appear in the environment, are ignored.
+If the shell is started with the effective user (group) id not equal to the
+real user (group) id, and the <B>-p</B> option is not supplied, these actions
+are taken and the effective user id is set to the real user id.
+If the <B>-p</B> option is supplied at startup, the effective user id is
+not reset.
+Turning this option off causes the effective user
+and group ids to be set to the real user and group ids.
+<DT><B>-t</B>
+
+<DD>
+Exit after reading and executing one command.
+<DT><B>-u</B>
+
+<DD>
+Treat unset variables as an error when performing
+parameter expansion.  If expansion is attempted on an
+unset variable, the shell prints an error message, and,
+if not interactive, exits with a non-zero status.
+<DT><B>-v</B>
+
+<DD>
+Print shell input lines as they are read.
+<DT><B>-x</B>
+
+<DD>
+After expanding each <I>simple command</I>,
+<B>for</B> command, <B>case</B> command, <B>select</B> command, or
+arithmetic <B>for</B> command, display the expanded value of
+<FONT SIZE=-1><B>PS4</B>,
+
+</FONT>
+followed by the command and its expanded arguments
+or associated word list.
+<DT><B>-B</B>
+
+<DD>
+The shell performs brace expansion (see
+<B>Brace Expansion</B>
+
+above).  This is on by default.
+<DT><B>-C</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+does not overwrite an existing file with the
+<B>&gt;</B>,
+
+<B>&gt;&amp;</B>,
+
+and
+<B>&lt;&gt;</B>
+
+redirection operators.  This may be overridden when 
+creating output files by using the redirection operator
+<B>&gt;|</B>
+
+instead of
+<B>&gt;</B>.
+
+<DT><B>-E</B>
+
+<DD>
+If set, any trap on <B>ERR</B> is inherited by shell functions, command
+substitutions, and commands executed in a subshell environment.
+The <B>ERR</B> trap is normally not inherited in such cases.
+<DT><B>-H</B>
+
+<DD>
+Enable
+<B>!</B>
+
+style history substitution.  This option is on by
+default when the shell is interactive.
+<DT><B>-P</B>
+
+<DD>
+If set, the shell does not follow symbolic links when executing
+commands such as
+<B>cd</B>
+
+that change the current working directory.  It uses the
+physical directory structure instead.  By default,
+<B>bash</B>
+
+follows the logical chain of directories when performing commands
+which change the current directory.
+<DT><B>-T</B>
+
+<DD>
+If set, any traps on <B>DEBUG</B> and <B>RETURN</B> are inherited by shell
+functions, command substitutions, and commands executed in a
+subshell environment.
+The <B>DEBUG</B> and <B>RETURN</B> traps are normally not inherited
+in such cases.
+<DT><B>--</B>
+
+<DD>
+If no arguments follow this option, then the positional parameters are
+unset.  Otherwise, the positional parameters are set to the
+<I>arg</I>s, even if some of them begin with a
+<B>-</B>.
+
+<DT><B>-</B>
+
+<DD>
+Signal the end of options, cause all remaining <I>arg</I>s to be
+assigned to the positional parameters.  The
+<B>-x</B>
+
+and
+<B>-v</B>
+
+options are turned off.
+If there are no <I>arg</I>s,
+the positional parameters remain unchanged.
+
+</DL>
+<P>
+
+The options are off by default unless otherwise noted.
+Using + rather than - causes these options to be turned off.
+The options can also be specified as arguments to an invocation of
+the shell.
+The current set of options may be found in
+<B>$-</B>.
+
+The return status is always true unless an invalid option is encountered.
+</DL>
+
+<DT><B>shift</B> [<I>n</I>]<DD>
+The positional parameters from <I>n</I>+1 ... are renamed to
+<B>$1</B>
+
+<B>....</B>
+
+Parameters represented by the numbers <B>$#</B>
+down to <B>$#</B>-<I>n</I>+1 are unset.
+<I>n</I>
+
+must be a non-negative number less than or equal to <B>$#</B>.
+If
+<I>n</I>
+
+is 0, no parameters are changed.
+If
+<I>n </I>
+
+is not given, it is assumed to be 1.
+If
+<I>n</I>
+
+is greater than <B>$#</B>, the positional parameters are not changed.
+The return status is greater than zero if
+<I>n</I>
+
+is greater than
+<B>$#</B>
+
+or less than zero; otherwise 0.
+<DT><B>shopt</B> [<B>-pqsu</B>] [<B>-o</B>] [<I>optname</I> ...]<DD>
+Toggle the values of variables controlling optional shell behavior.
+With no options, or with the
+<B>-p</B>
+
+option, a list of all settable options is displayed, with
+an indication of whether or not each is set.
+The <B>-p</B> option causes output to be displayed in a form that
+may be reused as input.
+Other options have the following meanings:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-s</B>
+
+<DD>
+Enable (set) each <I>optname</I>.
+<DT><B>-u</B>
+
+<DD>
+Disable (unset) each <I>optname</I>.
+<DT><B>-q</B>
+
+<DD>
+Suppresses normal output (quiet mode); the return status indicates
+whether the <I>optname</I> is set or unset.
+If multiple <I>optname</I> arguments are given with
+<B>-q</B>,
+
+the return status is zero if all <I>optnames</I> are enabled; non-zero
+otherwise.
+<DT><B>-o</B>
+
+<DD>
+Restricts the values of <I>optname</I> to be those defined for the
+<B>-o</B>
+
+option to the
+<B>set</B>
+
+builtin.
+
+</DL>
+<P>
+
+If either
+<B>-s</B>
+
+or
+<B>-u</B>
+
+is used with no <I>optname</I> arguments, the display is limited to
+those options which are set or unset, respectively.
+Unless otherwise noted, the <B>shopt</B> options are disabled (unset)
+by default.
+<P>
+
+The return status when listing options is zero if all <I>optnames</I>
+are enabled, non-zero otherwise.  When setting or unsetting options,
+the return status is zero unless an <I>optname</I> is not a valid shell
+option.
+<P>
+
+The list of <B>shopt</B> options is:
+<P>
+
+
+
+<DL COMPACT>
+<DT><B>autocd</B>
+
+<DD>
+If set, a command name that is the name of a directory is executed as if
+it were the argument to the <B>cd</B> command.
+This option is only used by interactive shells.
+<DT><B>cdable_vars</B>
+
+<DD>
+If set, an argument to the
+<B>cd</B>
+
+builtin command that
+is not a directory is assumed to be the name of a variable whose
+value is the directory to change to.
+<DT><B>cdspell</B>
+
+<DD>
+If set, minor errors in the spelling of a directory component in a
+<B>cd</B>
+
+command will be corrected.
+The errors checked for are transposed characters,
+a missing character, and one character too many.
+If a correction is found, the corrected file name is printed,
+and the command proceeds.
+This option is only used by interactive shells.
+<DT><B>checkhash</B>
+
+<DD>
+If set, <B>bash</B> 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.
+<DT><B>checkjobs</B>
+
+<DD>
+If set, <B>bash</B> 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
+intervening command (see <B>JOB CONTROL</B> above).  The shell always
+postpones exiting if any jobs are stopped.
+<DT><B>checkwinsize</B>
+
+<DD>
+If set, <B>bash</B> checks the window size after each command
+and, if necessary, updates the values of
+<FONT SIZE=-1><B>LINES</B>
+
+</FONT>
+and
+<FONT SIZE=-1><B>COLUMNS</B>.
+
+</FONT>
+<DT><B>cmdhist</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+attempts to save all lines of a multiple-line
+command in the same history entry.  This allows
+easy re-editing of multi-line commands.
+<DT><B>compat31</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+changes its behavior to that of version 3.1 with respect to quoted
+arguments to the conditional command's =~ operator.
+<DT><B>dirspell</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+attempts spelling correction on directory names during word completion
+if the directory name initially supplied does not exist.
+<DT><B>dotglob</B>
+
+<DD>
+If set, 
+<B>bash</B>
+
+includes filenames beginning with a `.' in the results of pathname
+expansion.
+<DT><B>execfail</B>
+
+<DD>
+If set, a non-interactive shell will not exit if
+it cannot execute the file specified as an argument to the
+<B>exec</B>
+
+builtin command.  An interactive shell does not exit if
+<B>exec</B>
+
+fails.
+<DT><B>expand_aliases</B>
+
+<DD>
+If set, aliases are expanded as described above under
+<FONT SIZE=-1><B>ALIASES</B>.
+
+</FONT>
+This option is enabled by default for interactive shells.
+<DT><B>extdebug</B>
+
+<DD>
+If set, behavior intended for use by debuggers is enabled:
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT><B>1.</B>
+
+<DD>
+The <B>-F</B> option to the <B>declare</B> builtin displays the source
+file name and line number corresponding to each function name supplied
+as an argument.
+<DT><B>2.</B>
+
+<DD>
+If the command run by the <B>DEBUG</B> trap returns a non-zero value, the
+next command is skipped and not executed.
+<DT><B>3.</B>
+
+<DD>
+If the command run by the <B>DEBUG</B> trap returns a value of 2, and the
+shell is executing in a subroutine (a shell function or a shell script
+executed by the <B>.</B> or <B>source</B> builtins), a call to
+<B>return</B> is simulated.
+<DT><B>4.</B>
+
+<DD>
+<B>BASH_ARGC</B> and <B>BASH_ARGV</B> are updated as described in their
+descriptions above.
+<DT><B>5.</B>
+
+<DD>
+Function tracing is enabled:  command substitution, shell functions, and
+subshells invoked with <B>(</B> <I>command</I> <B>)</B> inherit the
+<B>DEBUG</B> and <B>RETURN</B> traps.
+<DT><B>6.</B>
+
+<DD>
+Error tracing is enabled:  command substitution, shell functions, and
+subshells invoked with <B>(</B> <I>command</I> <B>)</B> inherit the
+<B>ERROR</B> trap.
+</DL></DL>
+
+<DT><B>extglob</B>
+
+<DD>
+If set, the extended pattern matching features described above under
+<B>Pathname Expansion</B> are enabled.
+<DT><B>extquote</B>
+
+<DD>
+If set, <B>$</B>aq<I>string</I>aq and <B>$</B>&quot;<I>string</I>&quot; quoting is
+performed within <B>${</B><I>parameter</I><B>}</B> expansions
+enclosed in double quotes.  This option is enabled by default.
+<DT><B>failglob</B>
+
+<DD>
+If set, patterns which fail to match filenames during pathname expansion
+result in an expansion error.
+<DT><B>force_fignore</B>
+
+<DD>
+If set, the suffixes specified by the <B>FIGNORE</B> shell variable
+cause words to be ignored when performing word completion even if
+the ignored words are the only possible completions.
+See
+<FONT SIZE=-1><B>SHELL VARIABLES</B></FONT>
+above for a description of <B>FIGNORE</B>.
+This option is enabled by default.
+<DT><B>globstar</B>
+
+<DD>
+If set, the pattern <B>**</B> used in a filename expansion context will
+match a files and zero or more directories and subdirectories.
+If the pattern is followed by a <B>/</B>, only directories and
+subdirectories match.
+<DT><B>gnu_errfmt</B>
+
+<DD>
+If set, shell error messages are written in the standard GNU error
+message format.
+<DT><B>histappend</B>
+
+<DD>
+If set, the history list is appended to the file named by the value
+of the
+<B>HISTFILE</B>
+
+variable when the shell exits, rather than overwriting the file.
+<DT><B>histreedit</B>
+
+<DD>
+If set, and
+<B>readline</B>
+
+is being used, a user is given the opportunity to re-edit a
+failed history substitution.
+<DT><B>histverify</B>
+
+<DD>
+If set, and 
+<B>readline</B>
+
+is being used, the results of history substitution are not immediately
+passed to the shell parser.  Instead, the resulting line is loaded into
+the <B>readline</B> editing buffer, allowing further modification.
+<DT><B>hostcomplete</B>
+
+<DD>
+If set, and
+<B>readline</B>
+
+is being used, <B>bash</B> will attempt to perform hostname completion when a
+word containing a <B>@</B> is being completed (see
+<B>Completing</B>
+
+under
+<FONT SIZE=-1><B>READLINE</B>
+
+</FONT>
+above).
+This is enabled by default.
+<DT><B>huponexit</B>
+
+<DD>
+If set, <B>bash</B> will send
+<FONT SIZE=-1><B>SIGHUP</B>
+
+</FONT>
+to all jobs when an interactive login shell exits.
+<DT><B>interactive_comments</B>
+
+<DD>
+If set, allow a word beginning with
+<B>#</B>
+
+to cause that word and all remaining characters on that
+line to be ignored in an interactive shell (see
+<FONT SIZE=-1><B>COMMENTS</B>
+
+</FONT>
+above).  This option is enabled by default.
+<DT><B>lithist</B>
+
+<DD>
+If set, and the
+<B>cmdhist</B>
+
+option is enabled, multi-line commands are saved to the history with
+embedded newlines rather than using semicolon separators where possible.
+<DT><B>login_shell</B>
+
+<DD>
+The shell sets this option if it is started as a login shell (see
+<FONT SIZE=-1><B>INVOCATION</B>
+
+</FONT>
+above).
+The value may not be changed.
+<DT><B>mailwarn</B>
+
+<DD>
+If set, and a file that <B>bash</B> is checking for mail has been  
+accessed since the last time it was checked, the message ``The mail in
+<I>mailfile</I> has been read'' is displayed.
+<DT><B>no_empty_cmd_completion</B>
+
+<DD>
+If set, and
+<B>readline</B>
+
+is being used,
+<B>bash</B>
+
+will not attempt to search the <B>PATH</B> for possible completions when
+completion is attempted on an empty line.
+<DT><B>nocaseglob</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+matches filenames in a case-insensitive fashion when performing pathname
+expansion (see
+<B>Pathname Expansion</B>
+
+above).
+<DT><B>nocasematch</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+matches patterns in a case-insensitive fashion when performing matching
+while executing <B>case</B> or <B>[[</B> conditional commands.
+<DT><B>nullglob</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+allows patterns which match no
+files (see
+<B>Pathname Expansion</B>
+
+above)
+to expand to a null string, rather than themselves.
+<DT><B>progcomp</B>
+
+<DD>
+If set, the programmable completion facilities (see
+<B>Programmable Completion</B> above) are enabled.
+This option is enabled by default.
+<DT><B>promptvars</B>
+
+<DD>
+If set, prompt strings undergo
+parameter expansion, command substitution, arithmetic
+expansion, and quote removal after being expanded as described in
+<FONT SIZE=-1><B>PROMPTING</B>
+
+</FONT>
+above.  This option is enabled by default.
+<DT><B>restricted_shell</B>
+
+<DD>
+The shell sets this option if it is started in restricted mode (see
+<FONT SIZE=-1><B>RESTRICTED SHELL</B>
+
+</FONT>
+below).
+The value may not be changed.
+This is not reset when the startup files are executed, allowing
+the startup files to discover whether or not a shell is restricted.
+<DT><B>shift_verbose</B>
+
+<DD>
+If set, the
+<B>shift</B>
+
+builtin prints an error message when the shift count exceeds the
+number of positional parameters.
+<DT><B>sourcepath</B>
+
+<DD>
+If set, the
+<B>source</B> (<B>.</B>) builtin uses the value of
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+to find the directory containing the file supplied as an argument.
+This option is enabled by default.
+<DT><B>xpg_echo</B>
+
+<DD>
+If set, the <B>echo</B> builtin expands backslash-escape sequences
+by default.
+</DL></DL>
+
+<DT><B>suspend</B> [<B>-f</B>]<DD>
+Suspend the execution of this shell until it receives a
+<FONT SIZE=-1><B>SIGCONT</B>
+
+</FONT>
+signal.  A login shell cannot be suspended; the
+<B>-f</B>
+
+option can be used to override this and force the suspension.
+The return status is 0 unless the shell is a login shell and
+<B>-f</B>
+
+is not supplied, or if job control is not enabled.
+<DT><B>test</B> <I>expr</I><DD>
+
+<DT><B>[</B> <I>expr</I> <B>]</B><DD>
+Return a status of 0 or 1 depending on
+the evaluation of the conditional expression
+<I>expr</I>.
+
+Each operator and operand must be a separate argument.
+Expressions are composed of the primaries described above under
+<FONT SIZE=-1><B>CONDITIONAL EXPRESSIONS</B>.
+
+</FONT>
+<B>test</B> does not accept any options, nor does it accept and ignore
+an argument of <B>--</B> as signifying the end of options.
+<P>
+
+
+Expressions may be combined using the following operators, listed
+in decreasing order of precedence.
+The evaluation depends on the number of arguments; see below.
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>! </B><I>expr</I>
+
+<DD>
+True if
+<I>expr</I>
+
+is false.
+<DT><B>( </B><I>expr</I> )
+
+<DD>
+Returns the value of <I>expr</I>.
+This may be used to override the normal precedence of operators.
+<DT><I>expr1</I> -<B>a</B> <I>expr2</I><DD>
+True if both
+<I>expr1</I>
+
+and
+<I>expr2</I>
+
+are true.
+<DT><I>expr1</I> -<B>o</B> <I>expr2</I><DD>
+True if either
+<I>expr1</I>
+
+or
+<I>expr2</I>
+
+is true.
+
+</DL>
+<P>
+
+<B>test</B> and <B>[</B> evaluate conditional
+expressions using a set of rules based on the number of arguments.
+<P>
+
+
+
+<DL COMPACT>
+<DT>0 arguments<DD>
+The expression is false.
+<DT>1 argument<DD>
+The expression is true if and only if the argument is not null.
+<DT>2 arguments<DD>
+If the first argument is <B>!</B>, the expression is true if and
+only if the second argument is null.
+If the first argument is one of the unary conditional operators listed above
+under
+<FONT SIZE=-1><B>CONDITIONAL EXPRESSIONS</B>,
+
+</FONT>
+the expression is true if the unary test is true.
+If the first argument is not a valid unary conditional operator, the expression
+is false.
+<DT>3 arguments<DD>
+If the second argument is one of the binary conditional operators listed above
+under
+<FONT SIZE=-1><B>CONDITIONAL EXPRESSIONS</B>,
+
+</FONT>
+the result of the expression is the result of the binary test using
+the first and third arguments as operands.
+The <B>-a</B> and <B>-o</B> operators are considered binary operators
+when there are three arguments.  
+If the first argument is <B>!</B>, the value is the negation of
+the two-argument test using the second and third arguments.
+If the first argument is exactly <B>(</B> and the third argument is
+exactly <B>)</B>, the result is the one-argument test of the second
+argument.
+Otherwise, the expression is false.
+<DT>4 arguments<DD>
+If the first argument is <B>!</B>, the result is the negation of
+the three-argument expression composed of the remaining arguments.
+Otherwise, the expression is parsed and evaluated according to 
+precedence using the rules listed above.
+<DT>5 or more arguments<DD>
+The expression is parsed and evaluated according to precedence
+using the rules listed above.
+</DL></DL>
+
+
+<DT><B>times</B>
+
+<DD>
+Print the accumulated user and system times for the shell and
+for processes run from the shell.  The return status is 0.
+<DT><B>trap</B> [<B>-lp</B>] [[<I>arg</I>] <I>sigspec</I> ...]<DD>
+The command
+<I>arg</I>
+
+is to be read and executed when the shell receives
+signal(s)
+<I>sigspec</I>.
+
+If
+<I>arg</I>
+
+is absent (and there is a single <I>sigspec</I>) or
+<B>-</B>,
+
+each specified signal is
+reset to its original disposition (the value it had
+upon entrance to the shell).
+If 
+<I>arg</I>
+
+is the null string the signal specified by each
+<I>sigspec</I>
+
+is ignored by the shell and by the commands it invokes.
+If
+<I>arg</I>
+
+is not present and
+<B>-p</B>
+
+has been supplied, then the trap commands associated with each
+<I>sigspec</I>
+
+are displayed.
+If no arguments are supplied or if only
+<B>-p</B>
+
+is given,
+<B>trap</B>
+
+prints the list of commands associated with each signal.
+The
+<B>-l</B>
+
+option causes the shell to print a list of signal names and
+their corresponding numbers.
+Each
+<I>sigspec</I>
+
+is either
+a signal name defined in &lt;<I>signal.h</I>&gt;, or a signal number.
+Signal names are case insensitive and the SIG prefix is optional.
+If a
+<I>sigspec</I>
+
+is
+<FONT SIZE=-1><B>EXIT</B>
+
+</FONT>
+(0) the command
+<I>arg</I>
+
+is executed on exit from the shell.
+If a
+<I>sigspec</I>
+
+is
+<FONT SIZE=-1><B>DEBUG</B>,
+
+</FONT>
+the command
+<I>arg</I>
+
+is executed before every <I>simple command</I>, <I>for</I> command,
+<I>case</I> command, <I>select</I> command, every arithmetic <I>for</I>
+command, and before the first command executes in a shell function (see
+<FONT SIZE=-1><B>SHELL GRAMMAR</B>
+
+</FONT>
+above).
+Refer to the description of the <B>extdebug</B> option to the
+<B>shopt</B> builtin for details of its effect on the <B>DEBUG</B> trap.
+If a
+<I>sigspec</I>
+
+is
+<FONT SIZE=-1><B>ERR</B>,
+
+</FONT>
+the command
+<I>arg</I>
+
+is executed whenever a simple command has a non-zero exit status,
+subject to the following conditions.
+The
+<FONT SIZE=-1><B>ERR</B>
+
+</FONT>
+trap is not executed if the failed
+command is part of the command list immediately following a
+<B>while</B>
+
+or
+<B>until</B>
+
+keyword, 
+part of the test in an
+<I>if</I>
+
+statement, part of a command executed in a
+<B>&amp;&amp;</B>
+
+or
+<B>||</B>
+
+list, or if the command's return value is
+being inverted via
+<B>!</B>.
+
+These are the same conditions obeyed by the <B>errexit</B> option.
+If a
+<I>sigspec</I>
+
+is
+<FONT SIZE=-1><B>RETURN</B>,
+
+</FONT>
+the command
+<I>arg</I>
+
+is executed each time a shell function or a script executed with the
+<B>.</B> or <B>source</B> builtins finishes executing.
+Signals ignored upon entry to the shell cannot be trapped or reset.
+Trapped signals that are not being ignored are reset to their original
+values in a child process when it is created.
+The return status is false if any
+<I>sigspec</I>
+
+is invalid; otherwise
+<B>trap</B>
+
+returns true.
+<DT><B>type</B> [<B>-aftpP</B>] <I>name</I> [<I>name</I> ...]<DD>
+With no options, 
+indicate how each
+<I>name</I>
+
+would be interpreted if used as a command name.
+If the
+<B>-t</B>
+
+option is used,
+<B>type</B>
+
+prints a string which is one of
+<I>alias</I>,
+
+<I>keyword</I>,
+
+<I>function</I>,
+
+<I>builtin</I>,
+
+or
+<I>file </I>
+
+if
+<I>name</I>
+
+is an alias, shell reserved word, function, builtin, or disk file,
+respectively.
+If the
+<I>name</I>
+
+is not found, then nothing is printed, and an exit status of false
+is returned.
+If the
+<B>-p</B>
+
+option is used,
+<B>type</B>
+
+either returns the name of the disk file
+that would be executed if
+<I>name</I>
+
+were specified as a command name,
+or nothing if
+<TT>type -t name</TT>
+
+would not return
+<I>file</I>.
+
+The
+<B>-P</B>
+
+option forces a
+<FONT SIZE=-1><B>PATH</B>
+
+</FONT>
+search for each <I>name</I>, even if
+<TT>type -t name</TT>
+
+would not return
+<I>file</I>.
+
+If a command is hashed,
+<B>-p</B>
+
+and
+<B>-P</B>
+
+print the hashed value, not necessarily the file that appears
+first in 
+<FONT SIZE=-1><B>PATH</B>.
+
+</FONT>
+If the
+<B>-a</B>
+
+option is used, 
+<B>type</B>
+
+prints all of the places that contain
+an executable named 
+<I>name</I>.
+
+This includes aliases and functions,
+if and only if the 
+<B>-p</B>
+
+option is not also used.
+The table of hashed commands is not consulted
+when using
+<B>-a</B>.
+
+The
+<B>-f</B>
+
+option suppresses shell function lookup, as with the <B>command</B> builtin.
+<B>type</B>
+
+returns true if all of the arguments are found, false if
+any are not found.
+<DT><B>ulimit</B> [<B>-HSTabcdefilmnpqrstuvx</B> [<I>limit</I>]]<DD>
+Provides control over the resources available to the shell and to
+processes started by it, on systems that allow such control.
+The <B>-H</B> and <B>-S</B> options specify that the hard or soft limit is
+set for the given resource.
+A hard limit cannot be increased by a non-root user once it is set;
+a soft limit may be increased up to the value of the hard limit.
+If neither <B>-H</B> nor <B>-S</B> is specified, both the soft and hard
+limits are set.
+The value of
+<I>limit</I>
+
+can be a number in the unit specified for the resource
+or one of the special values
+<B>hard</B>,
+
+<B>soft</B>,
+
+or
+<B>unlimited</B>,
+
+which stand for the current hard limit, the current soft limit, and
+no limit, respectively.
+If
+<I>limit</I>
+
+is omitted, the current value of the soft limit of the resource is
+printed, unless the <B>-H</B> option is given.  When more than one
+resource is specified, the limit name and unit are printed before the value.
+Other options are interpreted as follows:
+<DL COMPACT><DT><DD>
+
+<DL COMPACT>
+<DT><B>-a</B>
+
+<DD>
+All current limits are reported
+<DT><B>-b</B>
+
+<DD>
+The maximum socket buffer size
+<DT><B>-c</B>
+
+<DD>
+The maximum size of core files created
+<DT><B>-d</B>
+
+<DD>
+The maximum size of a process's data segment
+<DT><B>-e</B>
+
+<DD>
+The maximum scheduling priority (&quot;nice&quot;)
+<DT><B>-f</B>
+
+<DD>
+The maximum size of files written by the shell and its children
+<DT><B>-i</B>
+
+<DD>
+The maximum number of pending signals
+<DT><B>-l</B>
+
+<DD>
+The maximum size that may be locked into memory
+<DT><B>-m</B>
+
+<DD>
+The maximum resident set size
+<DT><B>-n</B>
+
+<DD>
+The maximum number of open file descriptors (most systems do not
+allow this value to be set)
+<DT><B>-p</B>
+
+<DD>
+The pipe size in 512-byte blocks (this may not be set)
+<DT><B>-q</B>
+
+<DD>
+The maximum number of bytes in POSIX message queues
+<DT><B>-r</B>
+
+<DD>
+The maximum real-time scheduling priority
+<DT><B>-s</B>
+
+<DD>
+The maximum stack size
+<DT><B>-t</B>
+
+<DD>
+The maximum amount of cpu time in seconds
+<DT><B>-u</B>
+
+<DD>
+The maximum number of processes available to a single user
+<DT><B>-v</B>
+
+<DD>
+The maximum amount of virtual memory available to the shell
+<DT><B>-x</B>
+
+<DD>
+The maximum number of file locks
+<DT><B>-T</B>
+
+<DD>
+The maximum number of threads
+
+</DL>
+<P>
+
+If
+<I>limit</I>
+
+is given, it is the new value of the specified resource (the
+<B>-a</B>
+
+option is display only).
+If no option is given, then
+<B>-f</B>
+
+is assumed.  Values are in 1024-byte increments, except for
+<B>-t</B>,
+
+which is in seconds,
+<B>-p</B>,
+
+which is in units of 512-byte blocks,
+and
+<B>-T</B>,
+
+<B>-b</B>,
+
+<B>-n</B>,
+
+and
+<B>-u</B>,
+
+which are unscaled values.
+The return status is 0 unless an invalid option or argument is supplied,
+or an error occurs while setting a new limit.
+</DL>
+
+<DT><B>umask</B> [<B>-p</B>] [<B>-S</B>] [<I>mode</I>]<DD>
+The user file-creation mask is set to 
+<I>mode</I>.
+
+If
+<I>mode</I>
+
+begins with a digit, it
+is interpreted as an octal number; otherwise
+it is interpreted as a symbolic mode mask similar
+to that accepted by
+<I>chmod</I>(1).
+
+If
+<I>mode</I>
+
+is omitted, the current value of the mask is printed.
+The
+<B>-S</B>
+
+option causes the mask to be printed in symbolic form; the
+default output is an octal number.
+If the
+<B>-p</B>
+
+option is supplied, and
+<I>mode</I>
+
+is omitted, the output is in a form that may be reused as input.
+The return status is 0 if the mode was successfully changed or if
+no <I>mode</I> argument was supplied, and false otherwise.
+<DT><B>unalias</B> [-<B>a</B>] [<I>name</I> ...]<DD>
+Remove each <I>name</I> from the list of defined aliases.  If
+<B>-a</B>
+
+is supplied, all alias definitions are removed.  The return
+value is true unless a supplied
+<I>name</I>
+
+is not a defined alias.
+<DT><B>unset</B> [-<B>fv</B>] [<I>name</I> ...]<DD>
+For each
+<I>name</I>,
+
+remove the corresponding variable or function.
+If no options are supplied, or the
+<B>-v</B>
+
+option is given, each
+<I>name</I>
+
+refers to a shell variable.
+Read-only variables may not be unset.
+If
+<B>-f</B>
+
+is specified, each
+<I>name</I>
+
+refers to a shell function, and the function definition
+is removed.
+Each unset variable or function is removed from the environment
+passed to subsequent commands.
+If any of
+<FONT SIZE=-1><B>RANDOM</B>,
+
+</FONT>
+<FONT SIZE=-1><B>SECONDS</B>,
+
+</FONT>
+<FONT SIZE=-1><B>LINENO</B>,
+
+</FONT>
+<FONT SIZE=-1><B>HISTCMD</B>,
+
+</FONT>
+<FONT SIZE=-1><B>FUNCNAME</B>,
+
+</FONT>
+<FONT SIZE=-1><B>GROUPS</B>,
+
+</FONT>
+or
+<FONT SIZE=-1><B>DIRSTACK</B>
+
+</FONT>
+are unset, they lose their special properties, even if they are
+subsequently reset.  The exit status is true unless a
+<I>name</I>
+
+is readonly.
+<DT><B>wait</B> [<I>n ...</I>]<DD>
+Wait for each specified process and return its termination status.
+Each
+<I>n</I>
+
+may be a process
+ID or a job specification; if a job spec is given, all processes
+in that job's pipeline are waited for.  If
+<I>n</I>
+
+is not given, all currently active child processes
+are waited for, and the return status is zero.  If
+<I>n</I>
+
+specifies a non-existent process or job, the return status is
+127.  Otherwise, the return status is the exit status of the last
+process or job waited for.
+
+
+</DL>
+<A NAME="lbDC">&nbsp;</A>
+<H3>RESTRICTED SHELL</H3>
+
+
+
+<P>
+
+If
+<B>bash</B>
+
+is started with the name
+<B>rbash</B>,
+
+or the
+<B>-r</B>
+
+option is supplied at invocation,
+the shell becomes restricted.
+A restricted shell is used to
+set up an environment more controlled than the standard shell.
+It behaves identically to
+<B>bash</B>
+
+with the exception that the following are disallowed or not performed:
+<DL COMPACT>
+<DT>*<DD>
+changing directories with <B>cd</B>
+<DT>*<DD>
+setting or unsetting the values of
+<B>SHELL</B>,
+
+<B>PATH</B>,
+
+<B>ENV</B>,
+
+or
+<B>BASH_ENV</B>
+
+<DT>*<DD>
+specifying command names containing
+<B>/</B>
+
+<DT>*<DD>
+specifying a file name containing a
+<B>/</B>
+
+as an argument to the
+<B>.</B>
+
+builtin command
+<DT>*<DD>
+Specifying a filename containing a slash as an argument to the
+<B>-p</B>
+
+option to the
+<B>hash</B>
+
+builtin command
+<DT>*<DD>
+importing function definitions from the shell environment at startup
+<DT>*<DD>
+parsing the value of <B>SHELLOPTS</B> from the shell environment at startup
+<DT>*<DD>
+redirecting output using the &gt;, &gt;|, &lt;&gt;, &gt;&amp;, &amp;&gt;, and &gt;&gt; redirection operators
+<DT>*<DD>
+using the
+<B>exec</B>
+
+builtin command to replace the shell with another command
+<DT>*<DD>
+adding or deleting builtin commands with the
+<B>-f</B>
+
+and
+<B>-d</B>
+
+options to the
+<B>enable</B>
+
+builtin command
+<DT>*<DD>
+Using the <B>enable</B> builtin command to enable disabled shell builtins
+<DT>*<DD>
+specifying the
+<B>-p</B>
+
+option to the
+<B>command</B>
+
+builtin command
+<DT>*<DD>
+turning off restricted mode with
+<B>set +r</B> or <B>set +o restricted</B>.
+</DL>
+<P>
+
+These restrictions are enforced after any startup files are read.
+<P>
+
+
+ When a command that is found to be a shell script is executed
+(see
+<FONT SIZE=-1><B>COMMAND EXECUTION</B>
+
+</FONT>
+
+above),
+
+<B>rbash</B>
+
+turns off any restrictions in the shell spawned to execute the
+script.
+
+
+<A NAME="lbDD">&nbsp;</A>
+<H3>SEE ALSO</H3>
+
+
+<DL COMPACT>
+<DT><I>Bash Reference Manual</I>, Brian Fox and Chet Ramey<DD>
+<DT><I>The Gnu Readline Library</I>, Brian Fox and Chet Ramey<DD>
+<DT><I>The Gnu History Library</I>, Brian Fox and Chet Ramey<DD>
+<DT><I>Portable Operating System Interface (POSIX) Part 2: Shell and Utilities</I>, IEEE<DD>
+<DT><I>sh</I>(1), <I>ksh</I>(1), <I>csh</I>(1)<DD>
+<DT><I>emacs</I>(1), <I>vi</I>(1)<DD>
+<DT><I>readline</I>(3)<DD>
+
+</DL>
+<A NAME="lbDE">&nbsp;</A>
+<H3>FILES</H3>
+
+
+<DL COMPACT>
+<DT>
+<A HREF="file:/bin/bash"><I>/bin/bash</I></A>
+
+<DD>
+The <B>bash</B> executable
+<DT>
+<A HREF="file:/etc/profile"><I>/etc/profile</I></A>
+
+<DD>
+The systemwide initialization file, executed for login shells
+<DT>
+<A HREF="file:~/.bash_profile"><I>~/.bash_profile</I></A>
+
+<DD>
+The personal initialization file, executed for login shells
+<DT>
+<A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>
+
+<DD>
+The individual per-interactive-shell startup file
+<DT>
+<A HREF="file:~/.bash_logout"><I>~/.bash_logout</I></A>
+
+<DD>
+The individual login shell cleanup file, executed when a login shell exits
+<DT>
+<A HREF="file:~/.inputrc"><I>~/.inputrc</I></A>
+
+<DD>
+Individual <I>readline</I> initialization file
+
+</DL>
+<A NAME="lbDF">&nbsp;</A>
+<H3>AUTHORS</H3>
+
+Brian Fox, Free Software Foundation
+<BR>
+
+<A HREF="mailto:bfox@gnu.org">bfox@gnu.org</A>
+<P>
+
+Chet Ramey, Case Western Reserve University
+<BR>
+
+<A HREF="mailto:chet@po.cwru.edu">chet@po.cwru.edu</A>
+<A NAME="lbDG">&nbsp;</A>
+<H3>BUG REPORTS</H3>
+
+If you find a bug in
+<B>bash,</B>
+
+you should report it.  But first, you should
+make sure that it really is a bug, and that it appears in the latest
+version of
+<B>bash</B>.
+
+The latest version is always available from
+<I><A HREF="ftp://ftp.gnu.org/pub/bash/">ftp://ftp.gnu.org/pub/bash/</A></I>.
+<P>
+
+Once you have determined that a bug actually exists, use the
+<I>bashbug</I>
+
+command to submit a bug report.
+If you have a fix, you are encouraged to mail that as well!
+Suggestions and `philosophical' bug reports may be mailed
+to <I><A HREF="mailto:bug-bash@gnu.org">bug-bash@gnu.org</A></I> or posted to the Usenet
+newsgroup
+<A HREF="news:gnu.bash.bug">gnu.bash.bug</A>.
+
+<P>
+
+ALL bug reports should include:
+<P>
+
+
+<DL COMPACT>
+<DT>The version number of <B>bash</B><DD>
+<DT>The hardware and operating system<DD>
+<DT>The compiler used to compile<DD>
+<DT>A description of the bug behaviour<DD>
+<DT>A short script or `recipe' which exercises the bug<DD>
+
+</DL>
+<P>
+
+<I>bashbug</I>
+
+inserts the first three items automatically into the template
+it provides for filing a bug report.
+<P>
+
+Comments and bug reports concerning
+this manual page should be directed to
+<I><A HREF="mailto:chet@po.cwru.edu">chet@po.cwru.edu</A></I>.
+
+<A NAME="lbDH">&nbsp;</A>
+<H3>BUGS</H3>
+
+<P>
+
+It's too big and too slow.
+<P>
+
+There are some subtle differences between 
+<B>bash</B>
+
+and traditional versions of
+<B>sh</B>,
+
+mostly because of the
+<FONT SIZE=-1><B>POSIX</B>
+
+</FONT>
+specification.
+<P>
+
+Aliases are confusing in some uses.
+<P>
+
+Shell builtin commands and functions are not stoppable/restartable.
+<P>
+
+Compound commands and command sequences of the form `a ; b ; c'
+are not handled gracefully when process suspension is attempted.
+When a process is stopped, the shell immediately executes the next
+command in the sequence.
+It suffices to place the sequence of commands between
+parentheses to force it into a subshell, which may be stopped as
+a unit.
+<P>
+
+Array variables may not (yet) be exported.
+<P>
+
+There may be only one active coprocess at a time.
+
+
+
+<HR>
+<TABLE WIDTH=100%>
+<TR>
+<TH ALIGN=LEFT width=33%>GNU Bash-4.0<TH ALIGN=CENTER width=33%>2008 December 29<TH ALIGN=RIGHT width=33%>BASH(1)
+</TR>
+</TABLE>
+<HR>
+<A NAME="index">&nbsp;</A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">COPYRIGHT</A><DD>
+<DT><A HREF="#lbAE">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAF">OPTIONS</A><DD>
+<DT><A HREF="#lbAG">ARGUMENTS</A><DD>
+<DT><A HREF="#lbAH">INVOCATION</A><DD>
+<DT><A HREF="#lbAI">DEFINITIONS</A><DD>
+<DT><A HREF="#lbAJ">RESERVED WORDS</A><DD>
+<DT><A HREF="#lbAK">SHELL GRAMMAR</A><DD>
+<DL>
+<DT><A HREF="#lbAL">Simple Commands</A><DD>
+<DT><A HREF="#lbAM">Pipelines</A><DD>
+<DT><A HREF="#lbAN">Lists</A><DD>
+<DT><A HREF="#lbAO">Compound Commands</A><DD>
+<DT><A HREF="#lbAP">Coprocesses</A><DD>
+<DT><A HREF="#lbAQ">Shell Function Definitions</A><DD>
+</DL>
+<DT><A HREF="#lbAR">COMMENTS</A><DD>
+<DT><A HREF="#lbAS">QUOTING</A><DD>
+<DT><A HREF="#lbAT">PARAMETERS</A><DD>
+<DL>
+<DT><A HREF="#lbAU">Positional Parameters</A><DD>
+<DT><A HREF="#lbAV">Special Parameters</A><DD>
+<DT><A HREF="#lbAW">Shell Variables</A><DD>
+<DT><A HREF="#lbAX">Arrays</A><DD>
+</DL>
+<DT><A HREF="#lbAY">EXPANSION</A><DD>
+<DL>
+<DT><A HREF="#lbAZ">Brace Expansion</A><DD>
+<DT><A HREF="#lbBA">Tilde Expansion</A><DD>
+<DT><A HREF="#lbBB">Parameter Expansion</A><DD>
+<DT><A HREF="#lbBC">Command Substitution</A><DD>
+<DT><A HREF="#lbBD">Arithmetic Expansion</A><DD>
+<DT><A HREF="#lbBE">Process Substitution</A><DD>
+<DT><A HREF="#lbBF">Word Splitting</A><DD>
+<DT><A HREF="#lbBG">Pathname Expansion</A><DD>
+<DT><A HREF="#lbBH">Quote Removal</A><DD>
+</DL>
+<DT><A HREF="#lbBI">REDIRECTION</A><DD>
+<DL>
+<DT><A HREF="#lbBJ">Redirecting Input</A><DD>
+<DT><A HREF="#lbBK">Redirecting Output</A><DD>
+<DT><A HREF="#lbBL">Appending Redirected Output</A><DD>
+<DT><A HREF="#lbBM">Redirecting Standard Output and Standard Error</A><DD>
+<DT><A HREF="#lbBN">Appending Standard Output and Standard Error</A><DD>
+<DT><A HREF="#lbBO">Here Documents</A><DD>
+<DT><A HREF="#lbBP">Here Strings</A><DD>
+<DT><A HREF="#lbBQ">Duplicating File Descriptors</A><DD>
+<DT><A HREF="#lbBR">Moving File Descriptors</A><DD>
+<DT><A HREF="#lbBS">Opening File Descriptors for Reading and Writing</A><DD>
+</DL>
+<DT><A HREF="#lbBT">ALIASES</A><DD>
+<DT><A HREF="#lbBU">FUNCTIONS</A><DD>
+<DT><A HREF="#lbBV">ARITHMETIC EVALUATION</A><DD>
+<DT><A HREF="#lbBW">CONDITIONAL EXPRESSIONS</A><DD>
+<DT><A HREF="#lbBX">SIMPLE COMMAND EXPANSION</A><DD>
+<DT><A HREF="#lbBY">COMMAND EXECUTION</A><DD>
+<DT><A HREF="#lbBZ">COMMAND EXECUTION ENVIRONMENT</A><DD>
+<DT><A HREF="#lbCA">ENVIRONMENT</A><DD>
+<DT><A HREF="#lbCB">EXIT STATUS</A><DD>
+<DT><A HREF="#lbCC">SIGNALS</A><DD>
+<DT><A HREF="#lbCD">JOB CONTROL</A><DD>
+<DT><A HREF="#lbCE">PROMPTING</A><DD>
+<DT><A HREF="#lbCF">READLINE</A><DD>
+<DL>
+<DT><A HREF="#lbCG">Readline Notation</A><DD>
+<DT><A HREF="#lbCH">Readline Initialization</A><DD>
+<DT><A HREF="#lbCI">Readline Key Bindings</A><DD>
+<DT><A HREF="#lbCJ">Readline Variables</A><DD>
+<DT><A HREF="#lbCK">Readline Conditional Constructs</A><DD>
+<DT><A HREF="#lbCL">Searching</A><DD>
+<DT><A HREF="#lbCM">Readline Command Names</A><DD>
+<DT><A HREF="#lbCN">Commands for Moving</A><DD>
+<DT><A HREF="#lbCO">Commands for Manipulating the History</A><DD>
+<DT><A HREF="#lbCP">Commands for Changing Text</A><DD>
+<DT><A HREF="#lbCQ">Killing and Yanking</A><DD>
+<DT><A HREF="#lbCR">Numeric Arguments</A><DD>
+<DT><A HREF="#lbCS">Completing</A><DD>
+<DT><A HREF="#lbCT">Keyboard Macros</A><DD>
+<DT><A HREF="#lbCU">Miscellaneous</A><DD>
+<DT><A HREF="#lbCV">Programmable Completion</A><DD>
+</DL>
+<DT><A HREF="#lbCW">HISTORY</A><DD>
+<DT><A HREF="#lbCX">HISTORY EXPANSION</A><DD>
+<DL>
+<DT><A HREF="#lbCY">Event Designators</A><DD>
+<DT><A HREF="#lbCZ">Word Designators</A><DD>
+<DT><A HREF="#lbDA">Modifiers</A><DD>
+</DL>
+<DT><A HREF="#lbDB">SHELL BUILTIN COMMANDS</A><DD>
+<DT><A HREF="#lbDC">RESTRICTED SHELL</A><DD>
+<DT><A HREF="#lbDD">SEE ALSO</A><DD>
+<DT><A HREF="#lbDE">FILES</A><DD>
+<DT><A HREF="#lbDF">AUTHORS</A><DD>
+<DT><A HREF="#lbDG">BUG REPORTS</A><DD>
+<DT><A HREF="#lbDH">BUGS</A><DD>
+</DL>
+<HR>
+This document was created by man2html from bash.1.<BR>
+Time: 05 February 2009 08:05:34 EST
+</BODY>
+</HTML>
diff --git a/doc/bash.pdf b/doc/bash.pdf
new file mode 100644 (file)
index 0000000..563daf1
Binary files /dev/null and b/doc/bash.pdf differ
diff --git a/doc/bash.ps b/doc/bash.ps
new file mode 100644 (file)
index 0000000..a2dbc5c
--- /dev/null
@@ -0,0 +1,7998 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.19.2
+%%CreationDate: Wed Feb 18 15:33:01 2009
+%%DocumentNeededResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%+ font Courier
+%%+ font Symbol
+%%DocumentSuppliedResources: procset grops 1.19 2
+%%Pages: 69
+%%PageOrder: Ascend
+%%DocumentMedia: Default 595 842 0 () ()
+%%Orientation: Portrait
+%%EndComments
+%%BeginDefaults
+%%PageMedia: Default
+%%EndDefaults
+%%BeginProlog
+%%BeginResource: procset grops 1.19 2
+%!PS-Adobe-3.0 Resource-ProcSet
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/Fr{
+setrgbcolor fill
+}bind def
+/setcmykcolor where{
+pop
+/Fk{
+setcmykcolor fill
+}bind def
+}if
+/Fg{
+setgray fill
+}bind def
+/FL/fill load def
+/LW/setlinewidth load def
+/Cr/setrgbcolor load def
+/setcmykcolor where{
+pop
+/Ck/setcmykcolor load def
+}if
+/Cg/setgray load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+/setpagedevice{}def
+}bind def
+/PEND{
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%%BeginFeature: *PageSize Default
+<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice
+%%EndFeature
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+%%IncludeResource: font Courier
+%%IncludeResource: font Symbol
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
+/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE
+/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
+(bash \255 GNU Bourne-Ag)108 96 Q(ain SHell)-.05 E F1(SYNOPSIS)72 112.8
+Q/F2 10/Times-Bold@0 SF(bash)108 124.8 Q F0([options] [\214le])2.5 E F1
+(COPYRIGHT)72 141.6 Q F0(Bash is Cop)108 153.6 Q
+(yright \251 1989-2009 by the Free Softw)-.1 E(are F)-.1 E
+(oundation, Inc.)-.15 E F1(DESCRIPTION)72 170.4 Q F2(Bash)108 182.4 Q F0
+.973(is an)3.474 F F2(sh)3.473 E F0 .973
+(-compatible command language interpreter that e)B -.15(xe)-.15 G .973
+(cutes commands read from the standard).15 F(input or from a \214le.)108
+194.4 Q F2(Bash)5 E F0(also incorporates useful features from the)2.5 E
+/F3 10/Times-Italic@0 SF -.4(Ko)2.5 G(rn).4 E F0(and)2.5 E F3(C)2.5 E F0
+(shells \()2.5 E F2(ksh)A F0(and)2.5 E F2(csh)2.5 E F0(\).)A F2(Bash)108
+211.2 Q F0 .527(is intended to be a conformant implementation of the Sh\
+ell and Utilities portion of the IEEE POSIX)3.027 F
+(speci\214cation \(IEEE Standard 1003.1\).)108 223.2 Q F2(Bash)5 E F0
+(can be con\214gured to be POSIX-conformant by def)2.5 E(ault.)-.1 E F1
+(OPTIONS)72 240 Q F0 .52(In addition to the single-character shell opti\
+ons documented in the description of the)108 252 R F2(set)3.02 E F0 -.2
+(bu)3.02 G .52(iltin command,).2 F F2(bash)108 264 Q F0
+(interprets the follo)2.5 E(wing options when it is in)-.25 E -.2(vo)-.4
+G -.1(ke).2 G(d:).1 E F2<ad63>108 280.8 Q F3(string)4.166 E F0 .796
+(If the)12.354 F F2<ad63>3.296 E F0 .796
+(option is present, then commands are read from)3.296 F F3(string)3.296
+E F0 5.796(.I).22 G 3.297(ft)-5.796 G .797(here are ar)-3.297 F .797
+(guments after)-.18 F(the)158 292.8 Q F3(string)2.5 E F0 2.5(,t).22 G
+(he)-2.5 E 2.5(ya)-.15 G
+(re assigned to the positional parameters, starting with)-2.5 E F2($0)
+2.5 E F0(.)A F2<ad69>108 304.8 Q F0(If the)41.52 E F2<ad69>2.5 E F0
+(option is present, the shell is)2.5 E F3(inter)2.5 E(active)-.15 E F0
+(.).18 E F2<ad6c>108 316.8 Q F0(Mak)41.52 E(e)-.1 E F2(bash)2.5 E F0
+(act as if it had been in)2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(da).1 G 2.5
+(sal)-2.5 G(ogin shell \(see)-2.5 E/F4 9/Times-Bold@0 SF(INV)2.5 E(OCA)
+-.405 E(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E F2<ad72>108 328.8 Q F0
+(If the)39.86 E F2<ad72>2.5 E F0(option is present, the shell becomes)
+2.5 E F3 -.37(re)2.5 G(stricted).37 E F0(\(see)3.27 E F4
+(RESTRICTED SHELL)2.5 E F0(belo)2.25 E(w\).)-.25 E F2<ad73>108 340.8 Q
+F0 .602(If the)40.41 F F2<ad73>3.102 E F0 .602
+(option is present, or if no ar)3.102 F .602
+(guments remain after option processing, then commands)-.18 F .616
+(are read from the standard input.)158 352.8 R .617(This option allo)
+5.617 F .617(ws the positional parameters to be set when)-.25 F(in)158
+364.8 Q -.2(vo)-.4 G(king an interacti).2 E .3 -.15(ve s)-.25 H(hell.)
+.15 E F2<ad44>108 376.8 Q F0 3.184(Al)37.08 G .684
+(ist of all double-quoted strings preceded by)-3.184 F F2($)3.184 E F0
+.684(is printed on the standard output.)3.184 F .683(These are)5.683 F
+.458(the strings that are subject to language translation when the curr\
+ent locale is not)158 388.8 R F2(C)2.958 E F0(or)2.959 E F2(POSIX)2.959
+E F0(.)A(This implies the)158 400.8 Q F2<ad6e>2.5 E F0
+(option; no commands will be e)2.5 E -.15(xe)-.15 G(cuted.).15 E F2
+([\255+]O [)108 412.8 Q F3(shopt_option)A F2(])A F3(shopt_option)158
+424.8 Q F0 1.097(is one of the shell options accepted by the)3.597 F F2
+(shopt)3.597 E F0 -.2(bu)3.597 G 1.097(iltin \(see).2 F F4 1.096
+(SHELL B)3.596 F(UIL)-.09 E(TIN)-.828 E(COMMANDS)158 436.8 Q F0(belo)
+3.002 E 3.252(w\). If)-.25 F F3(shopt_option)3.253 E F0 .753
+(is present,)3.253 F F2<ad4f>3.253 E F0 .753(sets the v)3.253 F .753
+(alue of that option;)-.25 F F2(+O)3.253 E F0(unsets)3.253 E 2.625
+(it. If)158 448.8 R F3(shopt_option)2.625 E F0 .125
+(is not supplied, the names and v)2.625 F .124
+(alues of the shell options accepted by)-.25 F F2(shopt)2.624 E F0 .505
+(are printed on the standard output.)158 460.8 R .505(If the in)5.505 F
+-.2(vo)-.4 G .505(cation option is).2 F F2(+O)3.005 E F0 3.005(,t)C .506
+(he output is displayed in a)-3.005 F
+(format that may be reused as input.)158 472.8 Q F2<adad>108 484.8 Q F0
+(A)38.6 E F2<adad>3.364 E F0 .864
+(signals the end of options and disables further option processing.)
+3.364 F(An)5.863 E 3.363(ya)-.15 G -.18(rg)-3.363 G .863(uments after)
+.18 F(the)158 496.8 Q F2<adad>2.5 E F0
+(are treated as \214lenames and ar)2.5 E 2.5(guments. An)-.18 F(ar)2.5 E
+(gument of)-.18 E F2<ad>2.5 E F0(is equi)2.5 E -.25(va)-.25 G(lent to)
+.25 E F2<adad>2.5 E F0(.)A F2(Bash)108 513.6 Q F0 .303
+(also interprets a number of multi-character options.)2.803 F .304
+(These options must appear on the command line)5.303 F
+(before the single-character options to be recognized.)108 525.6 Q F2
+<adad646562>108 542.4 Q(ugger)-.2 E F0 .475(Arrange for the deb)144
+554.4 R .475(ugger pro\214le to be e)-.2 F -.15(xe)-.15 G .475
+(cuted before the shell starts.).15 F -.45(Tu)5.474 G .474(rns on e).45
+F .474(xtended deb)-.15 F(ug-)-.2 E .452
+(ging mode \(see the description of the)144 566.4 R F2(extdeb)2.952 E
+(ug)-.2 E F0 .452(option to the)2.952 F F2(shopt)2.952 E F0 -.2(bu)2.952
+G .452(iltin belo).2 F .452(w\) and shell func-)-.25 F
+(tion tracing \(see the description of the)144 578.4 Q F2
+(\255o functrace)2.5 E F0(option to the)2.5 E F2(set)2.5 E F0 -.2(bu)2.5
+G(iltin belo).2 E(w\).)-.25 E F2(\255\255dump\255po\255strings)108 590.4
+Q F0(Equi)144 602.4 Q -.25(va)-.25 G(lent to).25 E F2<ad44>2.5 E F0 2.5
+(,b)C(ut the output is in the GNU)-2.7 E F3 -.1(ge)2.5 G(tte).1 E(xt)-.2
+E F2(po)2.5 E F0(\(portable object\) \214le format.)2.5 E F2
+(\255\255dump\255strings)108 614.4 Q F0(Equi)144 626.4 Q -.25(va)-.25 G
+(lent to).25 E F2<ad44>2.5 E F0(.)A F2(\255\255help)108 638.4 Q F0
+(Display a usage message on standard output and e)6.26 E
+(xit successfully)-.15 E(.)-.65 E F2<adad696e6974ad8c6c65>108 650.4 Q F3
+(\214le)2.5 E F2<adad72>108 662.4 Q(c\214le)-.18 E F3(\214le)2.5 E F0
+(Ex)144 674.4 Q 1.599(ecute commands from)-.15 F F3(\214le)6.009 E F0
+1.598(instead of the standard personal initialization \214le)4.279 F F3
+(~/.bashr)3.598 E(c)-.37 E F0 1.598(if the)4.408 F(shell is interacti)
+144 686.4 Q .3 -.15(ve \()-.25 H(see).15 E F4(INV)2.5 E(OCA)-.405 E
+(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E F2(\255\255login)108 703.2 Q F0
+(Equi)144 715.2 Q -.25(va)-.25 G(lent to).25 E F2<ad6c>2.5 E F0(.)A
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(1)195.95 E 0 Cg EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(\255\255noediting)108 84 Q F0
+(Do not use the GNU)144 96 Q F1 -.18(re)2.5 G(adline).18 E F0
+(library to read command lines when the shell is interacti)2.5 E -.15
+(ve)-.25 G(.).15 E F1(\255\255nopr)108 112.8 Q(o\214le)-.18 E F0 .017
+(Do not read either the system-wide startup \214le)144 124.8 R/F2 10
+/Times-Italic@0 SF(/etc/pr)4.183 E(o\214le)-.45 E F0 .017(or an)4.183 F
+2.517(yo)-.15 G 2.517(ft)-2.517 G .018
+(he personal initialization \214les)-2.517 F F2(~/.bash_pr)144 136.8 Q
+(o\214le)-.45 E F0(,).18 E F2(~/.bash_lo)2.698 E(gin)-.1 E F0 2.698(,o)
+.24 G(r)-2.698 E F2(~/.pr)2.698 E(o\214le)-.45 E F0 5.198(.B).18 G 2.698
+(yd)-5.198 G(ef)-2.698 E(ault,)-.1 E F1(bash)2.698 E F0 .198
+(reads these \214les when it is in)2.698 F -.2(vo)-.4 G -.1(ke).2 G
+2.697(da).1 G(s)-2.697 E 2.5(al)144 148.8 S(ogin shell \(see)-2.5 E/F3 9
+/Times-Bold@0 SF(INV)2.5 E(OCA)-.405 E(TION)-.855 E F0(belo)2.25 E(w\).)
+-.25 E F1<adad6e6f72>108 165.6 Q(c)-.18 E F0 1.228(Do not read and e)
+5.34 F -.15(xe)-.15 G 1.228(cute the personal initialization \214le).15
+F F2(~/.bashr)3.228 E(c)-.37 E F0 1.228(if the shell is interacti)4.038
+F -.15(ve)-.25 G 6.228(.T).15 G(his)-6.228 E(option is on by def)144
+177.6 Q(ault if the shell is in)-.1 E -.2(vo)-.4 G -.1(ke).2 G 2.5(da).1
+G(s)-2.5 E F1(sh)2.5 E F0(.)A F1(\255\255posix)108 194.4 Q F0 1.783
+(Change the beha)144 206.4 R 1.782(vior of)-.2 F F1(bash)4.282 E F0
+1.782(where the def)4.282 F 1.782(ault operation dif)-.1 F 1.782
+(fers from the POSIX standard to)-.25 F(match the standard \()144 218.4
+Q F2(posix mode)A F0(\).)A F1<adad72>108 235.2 Q(estricted)-.18 E F0
+(The shell becomes restricted \(see)144 247.2 Q F3(RESTRICTED SHELL)2.5
+E F0(belo)2.25 E(w\).)-.25 E F1<adad76>108 264 Q(erbose)-.1 E F0(Equi)
+144 276 Q -.25(va)-.25 G(lent to).25 E F1<ad76>5 E F0(.)A F1<adad76>108
+292.8 Q(ersion)-.1 E F0(Sho)144 304.8 Q 2.5(wv)-.25 G
+(ersion information for this instance of)-2.65 E F1(bash)2.5 E F0
+(on the standard output and e)2.5 E(xit successfully)-.15 E(.)-.65 E/F4
+10.95/Times-Bold@0 SF(ARGUMENTS)72 321.6 Q F0 .016(If ar)108 333.6 R
+.016(guments remain after option processing, and neither the)-.18 F F1
+<ad63>2.516 E F0 .016(nor the)2.516 F F1<ad73>2.516 E F0 .016
+(option has been supplied, the \214rst)2.516 F(ar)108 345.6 Q .041(gume\
+nt is assumed to be the name of a \214le containing shell commands.)-.18
+F(If)5.041 E F1(bash)2.541 E F0 .041(is in)2.541 F -.2(vo)-.4 G -.1(ke)
+.2 G 2.541(di).1 G 2.541(nt)-2.541 G .041(his f)-2.541 F(ashion,)-.1 E
+F1($0)108 357.6 Q F0 .936(is set to the name of the \214le, and the pos\
+itional parameters are set to the remaining ar)3.435 F(guments.)-.18 E
+F1(Bash)5.936 E F0 .234(reads and e)108 369.6 R -.15(xe)-.15 G .234
+(cutes commands from this \214le, then e).15 F(xits.)-.15 E F1(Bash)
+5.234 E F0 1.334 -.55('s e)D .234(xit status is the e).4 F .233
+(xit status of the last com-)-.15 F .348(mand e)108 381.6 R -.15(xe)-.15
+G .348(cuted in the script.).15 F .348(If no commands are e)5.348 F -.15
+(xe)-.15 G .348(cuted, the e).15 F .349(xit status is 0.)-.15 F .349
+(An attempt is \214rst made to)5.349 F .254
+(open the \214le in the current directory)108 393.6 R 2.754(,a)-.65 G
+.253
+(nd, if no \214le is found, then the shell searches the directories in)
+-2.754 F F3 -.666(PA)2.753 G(TH)-.189 E F0(for the script.)108 405.6 Q
+F4(INV)72 422.4 Q(OCA)-.493 E(TION)-1.04 E F0(A)108 434.4 Q F2(lo)2.5 E
+(gin shell)-.1 E F0(is one whose \214rst character of ar)2.5 E
+(gument zero is a)-.18 E F1<ad>2.5 E F0 2.5(,o)C 2.5(ro)-2.5 G
+(ne started with the)-2.5 E F1(\255\255login)2.5 E F0(option.)2.5 E(An)
+108 451.2 Q F2(inter)2.814 E(active)-.15 E F0 .314
+(shell is one started without non-option ar)2.814 F .315
+(guments and without the)-.18 F F1<ad63>2.815 E F0 .315
+(option whose standard)2.815 F 1.5
+(input and error are both connected to terminals \(as determined by)108
+463.2 R F2(isatty)4 E F0 1.5(\(3\)\), or one started with the).32 F F1
+<ad69>4 E F0(option.)108 475.2 Q F3(PS1)5.289 E F0 .289(is set and)2.539
+F F1<24ad>2.789 E F0(includes)2.789 E F1(i)2.789 E F0(if)2.789 E F1
+(bash)2.789 E F0 .289(is interacti)2.789 F -.15(ve)-.25 G 2.789(,a).15 G
+(llo)-2.789 E .29(wing a shell script or a startup \214le to test this)
+-.25 F(state.)108 487.2 Q .033(The follo)108 504 R .033
+(wing paragraphs describe ho)-.25 F(w)-.25 E F1(bash)2.532 E F0 -.15
+(exe)2.532 G .032(cutes its startup \214les.).15 F .032(If an)5.032 F
+2.532(yo)-.15 G 2.532(ft)-2.532 G .032(he \214les e)-2.532 F .032
+(xist b)-.15 F .032(ut cannot be)-.2 F(read,)108 516 Q F1(bash)3.085 E
+F0 .585(reports an error)3.085 F 5.585(.T)-.55 G .585(ildes are e)-5.935
+F .586(xpanded in \214le names as described belo)-.15 F 3.086(wu)-.25 G
+(nder)-3.086 E F1 -.18(Ti)3.086 G .586(lde Expansion).18 F F0(in the)108
+528 Q F3(EXP)2.5 E(ANSION)-.666 E F0(section.)2.25 E(When)108 544.8 Q F1
+(bash)2.896 E F0 .396(is in)2.896 F -.2(vo)-.4 G -.1(ke).2 G 2.896(da).1
+G 2.896(sa)-2.896 G 2.896(ni)-2.896 G(nteracti)-2.896 E .696 -.15(ve l)
+-.25 H .396(ogin shell, or as a non-interacti).15 F .695 -.15(ve s)-.25
+H .395(hell with the).15 F F1(\255\255login)2.895 E F0 .395(option, it)
+2.895 F 1.333(\214rst reads and e)108 556.8 R -.15(xe)-.15 G 1.333
+(cutes commands from the \214le).15 F F2(/etc/pr)3.833 E(o\214le)-.45 E
+F0 3.834(,i)C 3.834(ft)-3.834 G 1.334(hat \214le e)-3.834 F 3.834
+(xists. After)-.15 F 1.334(reading that \214le, it)3.834 F .249
+(looks for)108 568.8 R F2(~/.bash_pr)2.749 E(o\214le)-.45 E F0(,)A F2
+(~/.bash_lo)2.749 E(gin)-.1 E F0 2.749(,a)C(nd)-2.749 E F2(~/.pr)2.749 E
+(o\214le)-.45 E F0 2.749(,i)C 2.749(nt)-2.749 G .249(hat order)-2.749 F
+2.748(,a)-.4 G .248(nd reads and e)-2.748 F -.15(xe)-.15 G .248
+(cutes commands from).15 F .796(the \214rst one that e)108 580.8 R .796
+(xists and is readable.)-.15 F(The)5.796 E F1(\255\255nopr)3.296 E
+(o\214le)-.18 E F0 .797(option may be used when the shell is started to)
+3.296 F(inhibit this beha)108 592.8 Q(vior)-.2 E(.)-.55 E
+(When a login shell e)108 609.6 Q(xits,)-.15 E F1(bash)2.5 E F0
+(reads and e)2.5 E -.15(xe)-.15 G(cutes commands from the \214le).15 E
+F2(~/.bash_lo)2.5 E(gout)-.1 E F0 2.5(,i)C 2.5(fi)-2.5 G 2.5(te)-2.5 G
+(xists.)-2.65 E 1.698(When an interacti)108 626.4 R 1.998 -.15(ve s)-.25
+H 1.698(hell that is not a login shell is started,).15 F F1(bash)4.197 E
+F0 1.697(reads and e)4.197 F -.15(xe)-.15 G 1.697(cutes commands from)
+.15 F F2(~/.bashr)108 638.4 Q(c)-.37 E F0 2.535(,i)C 2.535(ft)-2.535 G
+.035(hat \214le e)-2.535 F 2.535(xists. This)-.15 F .036
+(may be inhibited by using the)2.535 F F1<adad6e6f72>2.536 E(c)-.18 E F0
+2.536(option. The)2.536 F F1<adad72>2.536 E(c\214le)-.18 E F2(\214le)
+2.536 E F0 .036(option will)2.536 F(force)108 650.4 Q F1(bash)2.5 E F0
+(to read and e)2.5 E -.15(xe)-.15 G(cute commands from).15 E F2(\214le)
+2.5 E F0(instead of)2.5 E F2(~/.bashr)2.5 E(c)-.37 E F0(.)A(When)108
+667.2 Q F1(bash)5.306 E F0 2.806(is started non-interacti)5.306 F -.15
+(ve)-.25 G(ly).15 E 5.306(,t)-.65 G 5.306(or)-5.306 G 2.806
+(un a shell script, for e)-5.306 F 2.805(xample, it looks for the v)-.15
+F(ariable)-.25 E F3 -.27(BA)108 679.2 S(SH_ENV).27 E F0 1.01(in the en)
+3.26 F 1.01(vironment, e)-.4 F 1.01(xpands its v)-.15 F 1.01
+(alue if it appears there, and uses the e)-.25 F 1.011(xpanded v)-.15 F
+1.011(alue as the)-.25 F(name of a \214le to read and e)108 691.2 Q -.15
+(xe)-.15 G(cute.).15 E F1(Bash)5 E F0(beha)2.5 E -.15(ve)-.2 G 2.5(sa)
+.15 G 2.5(si)-2.5 G 2.5(ft)-2.5 G(he follo)-2.5 E(wing command were e)
+-.25 E -.15(xe)-.15 G(cuted:).15 E/F5 10/Courier@0 SF
+(if [ \255n "$BASH_ENV" ]; then . "$BASH_ENV"; fi)144 709.2 Q F0 -.2(bu)
+108 727.2 S 2.5(tt).2 G(he v)-2.5 E(alue of the)-.25 E F3 -.666(PA)2.5 G
+(TH)-.189 E F0 -.25(va)2.25 G
+(riable is not used to search for the \214le name.).25 E(GNU Bash-4.0)72
+768 Q(2009 February 7)140.96 E(2)195.95 E 0 Cg EP
+%%Page: 3 3
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(If)108 84 Q/F1 10/Times-Bold@0 SF(bash)3.417 E F0 .917(is in)
+3.417 F -.2(vo)-.4 G -.1(ke).2 G 3.417(dw).1 G .917(ith the name)-3.417
+F F1(sh)3.417 E F0 3.417(,i)C 3.417(tt)-3.417 G .917
+(ries to mimic the startup beha)-3.417 F .917(vior of historical v)-.2 F
+.917(ersions of)-.15 F F1(sh)3.417 E F0(as)3.417 E .145
+(closely as possible, while conforming to the POSIX standard as well.)
+108 96 R .145(When in)5.145 F -.2(vo)-.4 G -.1(ke).2 G 2.645(da).1 G
+2.645(sa)-2.645 G 2.645(ni)-2.645 G(nteracti)-2.645 E .445 -.15(ve l)
+-.25 H(ogin).15 E 1.264(shell, or a non-interacti)108 108 R 1.564 -.15
+(ve s)-.25 H 1.264(hell with the).15 F F1(\255\255login)3.764 E F0 1.264
+(option, it \214rst attempts to read and e)3.764 F -.15(xe)-.15 G 1.263
+(cute commands).15 F(from)108 120 Q/F2 10/Times-Italic@0 SF(/etc/pr)
+4.142 E(o\214le)-.45 E F0(and)3.172 E F2(~/.pr)2.992 E(o\214le)-.45 E F0
+2.992(,i).18 G 2.992(nt)-2.992 G .492(hat order)-2.992 F 5.492(.T)-.55 G
+(he)-5.492 E F1(\255\255nopr)2.992 E(o\214le)-.18 E F0 .493
+(option may be used to inhibit this beha)2.993 F(vior)-.2 E(.)-.55 E
+.418(When in)108 132 R -.2(vo)-.4 G -.1(ke).2 G 2.918(da).1 G 2.918(sa)
+-2.918 G 2.918(ni)-2.918 G(nteracti)-2.918 E .718 -.15(ve s)-.25 H .418
+(hell with the name).15 F F1(sh)2.918 E F0(,)A F1(bash)2.918 E F0 .418
+(looks for the v)2.918 F(ariable)-.25 E/F3 9/Times-Bold@0 SF(ENV)2.918 E
+/F4 9/Times-Roman@0 SF(,)A F0 -.15(ex)2.667 G .417(pands its v).15 F
+(alue)-.25 E .171(if it is de\214ned, and uses the e)108 144 R .171
+(xpanded v)-.15 F .171(alue as the name of a \214le to read and e)-.25 F
+-.15(xe)-.15 G 2.671(cute. Since).15 F 2.671(as)2.671 G .171(hell in)
+-2.671 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E(as)108 156 Q F1(sh)3.081 E F0
+.581(does not attempt to read and e)3.081 F -.15(xe)-.15 G .581
+(cute commands from an).15 F 3.08(yo)-.15 G .58
+(ther startup \214les, the)-3.08 F F1<adad72>3.08 E(c\214le)-.18 E F0
+.58(option has)3.08 F .182(no ef)108 168 R 2.682(fect. A)-.25 F
+(non-interacti)2.682 E .482 -.15(ve s)-.25 H .182(hell in).15 F -.2(vo)
+-.4 G -.1(ke).2 G 2.682(dw).1 G .182(ith the name)-2.682 F F1(sh)2.682 E
+F0 .182(does not attempt to read an)2.682 F 2.683(yo)-.15 G .183
+(ther startup \214les.)-2.683 F(When in)108 180 Q -.2(vo)-.4 G -.1(ke).2
+G 2.5(da).1 G(s)-2.5 E F1(sh)2.5 E F0(,)A F1(bash)2.5 E F0(enters)2.5 E
+F2(posix)3.75 E F0(mode after the startup \214les are read.)3.03 E(When)
+108 196.8 Q F1(bash)2.727 E F0 .226(is started in)2.727 F F2(posix)3.976
+E F0 .226(mode, as with the)3.256 F F1(\255\255posix)2.726 E F0 .226
+(command line option, it follo)2.726 F .226(ws the POSIX stan-)-.25 F
+.341(dard for startup \214les.)108 208.8 R .341(In this mode, interacti)
+5.341 F .641 -.15(ve s)-.25 H .341(hells e).15 F .341(xpand the)-.15 F
+F3(ENV)2.841 E F0 -.25(va)2.591 G .342(riable and commands are read and)
+.25 F -.15(exe)108 220.8 S(cuted from the \214le whose name is the e).15
+E(xpanded v)-.15 E 2.5(alue. No)-.25 F(other startup \214les are read.)
+2.5 E F1(Bash)108 237.6 Q F0 .644(attempts to determine when it is bein\
+g run with its standard input connected to a a netw)3.144 F .643
+(ork connec-)-.1 F .229(tion, as if by the remote shell daemon, usually)
+108 249.6 R F2 -.1(rs)2.729 G(hd).1 E F0 2.729(,o)C 2.73(rt)-2.729 G .23
+(he secure shell daemon)-2.73 F F2(sshd)2.73 E F0 5.23(.I)C(f)-5.23 E F1
+(bash)2.73 E F0 .23(determines it)2.73 F .741(is being run in this f)108
+261.6 R .741(ashion, it reads and e)-.1 F -.15(xe)-.15 G .741
+(cutes commands from).15 F F2(~/.bashr)3.241 E(c)-.37 E F0 3.241(,i)C
+3.241(ft)-3.241 G .741(hat \214le e)-3.241 F .741(xists and is read-)
+-.15 F 2.97(able. It)108 273.6 R .47(will not do this if in)2.97 F -.2
+(vo)-.4 G -.1(ke).2 G 2.97(da).1 G(s)-2.97 E F1(sh)2.97 E F0 5.47(.T)C
+(he)-5.47 E F1<adad6e6f72>2.97 E(c)-.18 E F0 .47
+(option may be used to inhibit this beha)2.97 F(vior)-.2 E 2.97(,a)-.4 G
+.47(nd the)-2.97 F F1<adad72>108 285.6 Q(c\214le)-.18 E F0 .886
+(option may be used to force another \214le to be read, b)3.387 F(ut)-.2
+E F2 -.1(rs)3.386 G(hd).1 E F0 .886(does not generally in)3.386 F -.2
+(vo)-.4 G 1.086 -.1(ke t).2 H .886(he shell).1 F
+(with those options or allo)108 297.6 Q 2.5(wt)-.25 G
+(hem to be speci\214ed.)-2.5 E 1.207
+(If the shell is started with the ef)108 314.4 R(fecti)-.25 E 1.507 -.15
+(ve u)-.25 H 1.208
+(ser \(group\) id not equal to the real user \(group\) id, and the).15 F
+F1<ad70>3.708 E F0 .536(option is not supplied, no startup \214les are \
+read, shell functions are not inherited from the en)108 326.4 R .535
+(vironment, the)-.4 F F3(SHELLOPTS)108 338.4 Q F0 -.25(va)2.459 G .21
+(riable, if it appears in the en).25 F .21
+(vironment, is ignored, and the ef)-.4 F(fecti)-.25 E .51 -.15(ve u)-.25
+H .21(ser id is set to the real).15 F .261(user id.)108 350.4 R .261
+(If the)5.261 F F1<ad70>2.761 E F0 .261(option is supplied at in)2.761 F
+-.2(vo)-.4 G .261(cation, the startup beha).2 F .261
+(vior is the same, b)-.2 F .261(ut the ef)-.2 F(fecti)-.25 E .561 -.15
+(ve u)-.25 H .261(ser id).15 F(is not reset.)108 362.4 Q/F5 10.95
+/Times-Bold@0 SF(DEFINITIONS)72 379.2 Q F0(The follo)108 391.2 Q
+(wing de\214nitions are used throughout the rest of this document.)-.25
+E F1(blank)108 403.2 Q F0 2.5(As)11.54 G(pace or tab)-2.5 E(.)-.4 E F1
+-.1(wo)108 415.2 S(rd).1 E F0 2.5(As)13.88 G
+(equence of characters considered as a single unit by the shell.)-2.5 E
+(Also kno)5 E(wn as a)-.25 E F1(tok)2.5 E(en)-.1 E F0(.)A F1(name)108
+427.2 Q F0(A)12.67 E F2(wor)3.005 E(d)-.37 E F0 .165
+(consisting only of alphanumeric characters and underscores, and be)
+3.435 F .166(ginning with an alpha-)-.15 F
+(betic character or an underscore.)144 439.2 Q(Also referred to as an)5
+E F1(identi\214er)2.5 E F0(.)A F1(metacharacter)108 451.2 Q F0 2.5(Ac)
+144 463.2 S(haracter that, when unquoted, separates w)-2.5 E 2.5
+(ords. One)-.1 F(of the follo)2.5 E(wing:)-.25 E F1 5(|&;\(\)<>s)144
+475.2 S 2.5(pace tab)-5 F(contr)108 487.2 Q(ol operator)-.18 E F0(A)144
+499.2 Q F2(tok)2.5 E(en)-.1 E F0(that performs a control function.)2.5 E
+(It is one of the follo)5 E(wing symbols:)-.25 E/F6 10/Symbol SF<efef>
+144 511.2 Q F1 5(&&)5 G 5(&;;)-5 G 5(;\(\)||)-5 G 10(&<)-5 G(newline>)
+-10 E F5(RESER)72 528 Q(VED W)-.602 E(ORDS)-.11 E F2 .307(Reserved wor)
+108 540 R(ds)-.37 E F0 .307(are w)2.807 F .307(ords that ha)-.1 F .607
+-.15(ve a s)-.2 H .306(pecial meaning to the shell.).15 F .306
+(The follo)5.306 F .306(wing w)-.25 F .306(ords are recognized as)-.1 F
+(reserv)108 552 Q .227(ed when unquoted and either the \214rst w)-.15 F
+.227(ord of a simple command \(see)-.1 F F3 .227(SHELL GRAMMAR)2.727 F
+F0(belo)2.477 E .227(w\) or)-.25 F(the third w)108 564 Q(ord of a)-.1 E
+F1(case)2.5 E F0(or)2.5 E F1 -.25(fo)2.5 G(r).25 E F0(command:)2.5 E F1
+11.916(!c)144 580.8 S 9.416(ase do done elif else esac \214 f)-11.916 F
+9.415(or function if in select then until)-.25 F 7.5
+(while { } time [[ ]])144 592.8 R F5(SHELL GRAMMAR)72 609.6 Q F1
+(Simple Commands)87 621.6 Q F0(A)108 633.6 Q F2 .388(simple command)
+2.888 F F0 .388(is a sequence of optional v)2.888 F .389
+(ariable assignments follo)-.25 F .389(wed by)-.25 F F1(blank)2.889 E F0
+.389(-separated w)B .389(ords and)-.1 F .816
+(redirections, and terminated by a)108 645.6 R F2(contr)3.316 E .815
+(ol oper)-.45 F(ator)-.15 E F0 5.815(.T)C .815(he \214rst w)-5.815 F
+.815(ord speci\214es the command to be e)-.1 F -.15(xe)-.15 G(cuted,).15
+E(and is passed as ar)108 657.6 Q(gument zero.)-.18 E(The remaining w)5
+E(ords are passed as ar)-.1 E(guments to the in)-.18 E -.2(vo)-.4 G -.1
+(ke).2 G 2.5(dc).1 G(ommand.)-2.5 E .175(The return v)108 674.4 R .175
+(alue of a)-.25 F F2 .175(simple command)2.675 F F0 .175(is its e)2.675
+F .175(xit status, or 128+)-.15 F F2(n)A F0 .176
+(if the command is terminated by signal)3.508 F F2(n)2.676 E F0(.).24 E
+F1(Pipelines)87 691.2 Q F0(A)108 703.2 Q F2(pipeline)2.996 E F0 .496(is\
+ a sequence of one or more commands separated by one of the control ope\
+rators)2.996 F F1(|)2.996 E F0(or)2.996 E F1(|&)2.996 E F0 5.496(.T)C
+(he)-5.496 E(format for a pipeline is:)108 715.2 Q(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(3)195.95 E 0 Cg EP
+%%Page: 4 4
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E([)144 84 Q/F1 10/Times-Bold@0 SF(time)A F0([)2.5 E F1<ad70>A F0
+(]] [ ! ])A/F2 10/Times-Italic@0 SF(command)2.5 E F0 2.5([[)2.5 G F1(|)
+-2.5 E/F3 10/Symbol SF<ef>A F1(|&)A F0(])A F2(command2)2.5 E F0(... ])
+2.5 E .243(The standard output of)108 100.8 R F2(command)2.943 E F0 .244
+(is connected via a pipe to the standard input of)3.513 F F2(command2)
+2.744 E F0 5.244(.T).02 G .244(his connec-)-5.244 F .643
+(tion is performed before an)108 112.8 R 3.143(yr)-.15 G .642
+(edirections speci\214ed by the command \(see)-3.143 F/F4 9/Times-Bold@0
+SF(REDIRECTION)3.142 E F0(belo)2.892 E 3.142(w\). If)-.25 F F1(|&)3.142
+E F0(is)3.142 E 1.43(used, the standard error of)108 124.8 R F2(command)
+3.93 E F0 1.431(is connected to)3.93 F F2(command2)3.931 E F0 2.531 -.55
+('s s)D 1.431(tandard input through the pipe; it is).55 F 1.197
+(shorthand for)108 136.8 R F1 1.197(2>&1 |)3.697 F F0 6.197(.T)C 1.197
+(his implicit redirection of the standard error is performed after an)
+-6.197 F 3.696(yr)-.15 G(edirections)-3.696 E
+(speci\214ed by the command.)108 148.8 Q .48
+(The return status of a pipeline is the e)108 165.6 R .48
+(xit status of the last command, unless the)-.15 F F1(pipefail)2.98 E F0
+.48(option is enabled.)2.98 F(If)108 177.6 Q F1(pipefail)2.687 E F0 .187
+(is enabled, the pipeline')2.687 F 2.687(sr)-.55 G .186
+(eturn status is the v)-2.687 F .186
+(alue of the last \(rightmost\) command to e)-.25 F .186(xit with a)-.15
+F .61(non-zero status, or zero if all commands e)108 189.6 R .611
+(xit successfully)-.15 F 5.611(.I)-.65 G 3.111(ft)-5.611 G .611
+(he reserv)-3.111 F .611(ed w)-.15 F(ord)-.1 E F1(!)3.111 E F0 .611
+(precedes a pipeline, the)5.611 F -.15(ex)108 201.6 S .55
+(it status of that pipeline is the logical ne).15 F -.05(ga)-.15 G .55
+(tion of the e).05 F .55(xit status as described abo)-.15 F -.15(ve)-.15
+G 5.55(.T).15 G .55(he shell w)-5.55 F .55(aits for)-.1 F
+(all commands in the pipeline to terminate before returning a v)108
+213.6 Q(alue.)-.25 E .298(If the)108 230.4 R F1(time)2.799 E F0(reserv)
+2.799 E .299(ed w)-.15 F .299(ord precedes a pipeline, the elapsed as w\
+ell as user and system time consumed by its)-.1 F -.15(exe)108 242.4 S
+.14(cution are reported when the pipeline terminates.).15 F(The)5.139 E
+F1<ad70>2.639 E F0 .139(option changes the output format to that spec-)
+2.639 F .779(i\214ed by POSIX.)108 254.4 R(The)5.779 E F4(TIMEFORMA)
+3.279 E(T)-.855 E F0 -.25(va)3.029 G .779
+(riable may be set to a format string that speci\214es ho).25 F 3.28(wt)
+-.25 G .78(he timing)-3.28 F
+(information should be displayed; see the description of)108 266.4 Q F4
+(TIMEFORMA)2.5 E(T)-.855 E F0(under)2.25 E F1(Shell V)2.5 E(ariables)
+-.92 E F0(belo)2.5 E -.65(w.)-.25 G(Each command in a pipeline is e)108
+283.2 Q -.15(xe)-.15 G
+(cuted as a separate process \(i.e., in a subshell\).).15 E F1(Lists)87
+300 Q F0(A)108 312 Q F2(list)2.601 E F0 .101(is a sequence of one or mo\
+re pipelines separated by one of the operators)2.601 F F1(;)2.6 E F0(,)A
+F1(&)2.6 E F0(,)A F1(&&)2.6 E F0 2.6(,o)C(r)-2.6 E F3<efef>2.6 E F0 2.6
+(,a)C .1(nd option-)-2.6 F(ally terminated by one of)108 324 Q F1(;)2.5
+E F0(,)A F1(&)2.5 E F0 2.5(,o)C(r)-2.5 E F1(<newline>)2.5 E F0(.)A .656
+(Of these list operators,)108 340.8 R F1(&&)3.156 E F0(and)3.156 E F3
+<efef>3.156 E F0(ha)3.156 E .956 -.15(ve e)-.2 H .656
+(qual precedence, follo).15 F .656(wed by)-.25 F F1(;)3.156 E F0(and)
+3.156 E F1(&)3.156 E F0 3.156(,w)C .656(hich ha)-3.156 F .957 -.15(ve e)
+-.2 H .657(qual prece-).15 F(dence.)108 352.8 Q 2.5(As)108 369.6 S
+(equence of one or more ne)-2.5 E(wlines may appear in a)-.25 E F2(list)
+2.5 E F0(instead of a semicolon to delimit commands.)2.5 E .029
+(If a command is terminated by the control operator)108 386.4 R F1(&)
+2.529 E F0 2.529(,t)C .029(he shell e)-2.529 F -.15(xe)-.15 G .029
+(cutes the command in the).15 F F2(bac)2.528 E(kgr)-.2 E(ound)-.45 E F0
+(in)2.528 E 2.875(as)108 398.4 S 2.875(ubshell. The)-2.875 F .375
+(shell does not w)2.875 F .375
+(ait for the command to \214nish, and the return status is 0.)-.1 F .376
+(Commands sepa-)5.376 F .849(rated by a)108 410.4 R F1(;)3.349 E F0 .849
+(are e)3.349 F -.15(xe)-.15 G .848(cuted sequentially; the shell w).15 F
+.848(aits for each command to terminate in turn.)-.1 F .848(The return)
+5.848 F(status is the e)108 422.4 Q(xit status of the last command e)
+-.15 E -.15(xe)-.15 G(cuted.).15 E .632(AND and OR lists are sequences \
+of one of more pipelines separated by the)108 439.2 R F1(&&)3.132 E F0
+(and)3.133 E F3<efef>3.133 E F0 .633(control operators,)3.133 F
+(respecti)108 451.2 Q -.15(ve)-.25 G(ly).15 E 5(.A)-.65 G
+(ND and OR lists are e)-5 E -.15(xe)-.15 G(cuted with left associati).15
+E(vity)-.25 E 5(.A)-.65 G 2.5(nA)-5 G(ND list has the form)-2.5 E F2
+(command1)144 468 Q F1(&&)2.5 E F2(command2)2.5 E(command2)108.2 484.8 Q
+F0(is e)2.52 E -.15(xe)-.15 G(cuted if, and only if,).15 E F2(command1)
+2.7 E F0(returns an e)2.5 E(xit status of zero.)-.15 E
+(An OR list has the form)108 501.6 Q F2(command1)144 518.4 Q F3<efef>2.5
+E F2(command2)2.5 E(command2)108.2 540 Q F0 .729(is e)3.249 F -.15(xe)
+-.15 G .729(cuted if and only if).15 F F2(command1)3.429 E F0 .729
+(returns a non-zero e)3.229 F .729(xit status.)-.15 F .728
+(The return status of AND)5.729 F(and OR lists is the e)108 552 Q
+(xit status of the last command e)-.15 E -.15(xe)-.15 G
+(cuted in the list.).15 E F1(Compound Commands)87 568.8 Q F0(A)108 580.8
+Q F2(compound command)2.5 E F0(is one of the follo)2.5 E(wing:)-.25 E
+(\()108 597.6 Q F2(list)A F0(\))A F2(list)17.11 E F0 .011(is e)2.511 F
+-.15(xe)-.15 G .011(cuted in a subshell en).15 F .011(vironment \(see)
+-.4 F F4 .011(COMMAND EXECUTION ENVIR)2.511 F(ONMENT)-.27 E F0(belo)
+2.262 E(w\).)-.25 E -1.11(Va)144 609.6 S 1.064(riable assignments and b)
+1.11 F 1.064(uiltin commands that af)-.2 F 1.064(fect the shell')-.25 F
+3.564(se)-.55 G -.4(nv)-3.564 G 1.064(ironment do not remain in).4 F(ef)
+144 621.6 Q(fect after the command completes.)-.25 E
+(The return status is the e)5 E(xit status of)-.15 E F2(list)2.5 E F0(.)
+A({)108 638.4 Q F2(list)2.5 E F0 2.5(;})C F2(list)3.89 E F0 .401
+(is simply e)2.901 F -.15(xe)-.15 G .401(cuted in the current shell en)
+.15 F(vironment.)-.4 E F2(list)5.401 E F0 .402
+(must be terminated with a ne)2.901 F .402(wline or)-.25 F 3.215
+(semicolon. This)144 650.4 R .715(is kno)3.215 F .715(wn as a)-.25 F F2
+(gr)3.215 E .715(oup command)-.45 F F0 5.715(.T)C .715
+(he return status is the e)-5.715 F .714(xit status of)-.15 F F2(list)
+3.214 E F0 5.714(.N)C(ote)-5.714 E .219(that unlik)144 662.4 R 2.719(et)
+-.1 G .219(he metacharacters)-2.719 F F1(\()2.719 E F0(and)2.719 E F1
+(\))2.719 E F0(,)A F1({)2.719 E F0(and)2.719 E F1(})2.719 E F0(are)2.719
+E F2 -.37(re)2.72 G .22(served wor).37 F(ds)-.37 E F0 .22
+(and must occur where a reserv)2.72 F(ed)-.15 E -.1(wo)144 674.4 S .257
+(rd is permitted to be recognized.).1 F .257(Since the)5.257 F 2.757(yd)
+-.15 G 2.756(on)-2.757 G .256(ot cause a w)-2.756 F .256(ord break, the)
+-.1 F 2.756(ym)-.15 G .256(ust be separated)-2.756 F(from)144 686.4 Q F2
+(list)2.5 E F0(by whitespace or another shell metacharacter)2.5 E(.)-.55
+E(\(\()108 703.2 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F0(\)\))A(The)144
+715.2 Q F2 -.2(ex)2.551 G(pr).2 E(ession)-.37 E F0 .051(is e)2.551 F
+-.25(va)-.25 G .051(luated according to the rules described belo).25 F
+2.552(wu)-.25 G(nder)-2.552 E F4 .052(ARITHMETIC EV)2.552 F(ALU)-1.215 E
+(A-)-.54 E(TION)144 727.2 Q/F5 9/Times-Roman@0 SF(.)A F0 .411(If the v)
+4.911 F .411(alue of the e)-.25 F .411(xpression is non-zero, the retur\
+n status is 0; otherwise the return status)-.15 F(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(4)195.95 E 0 Cg EP
+%%Page: 5 5
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(is 1.)144 84 Q(This is e)5 E(xactly equi)-.15 E -.25(va)-.25 G
+(lent to).25 E/F1 10/Times-Bold@0 SF(let ")2.5 E/F2 10/Times-Italic@0 SF
+-.2(ex)C(pr).2 E(ession)-.37 E F1(")A F0(.)A F1([[)108 100.8 Q F2 -.2
+(ex)2.5 G(pr).2 E(ession)-.37 E F1(]])2.5 E F0 1.299
+(Return a status of 0 or 1 depending on the e)144 112.8 R -.25(va)-.25 G
+1.3(luation of the conditional e).25 F(xpression)-.15 E F2 -.2(ex)3.8 G
+(pr).2 E(ession)-.37 E F0(.)A 2.274
+(Expressions are composed of the primaries described belo)144 124.8 R
+4.773(wu)-.25 G(nder)-4.773 E/F3 9/Times-Bold@0 SF(CONDITION)4.773 E
+2.273(AL EXPRES-)-.18 F(SIONS)144 136.8 Q/F4 9/Times-Roman@0 SF(.)A F0
+-.8(Wo)5.632 G 1.133(rd splitting and pathname e).8 F 1.133
+(xpansion are not performed on the w)-.15 F 1.133(ords between the)-.1 F
+F1([[)3.633 E F0(and)144 148.8 Q F1(]])2.964 E F0 2.964(;t)C .464
+(ilde e)-2.964 F .464(xpansion, parameter and v)-.15 F .464(ariable e)
+-.25 F .463(xpansion, arithmetic e)-.15 F .463
+(xpansion, command substi-)-.15 F 1.081
+(tution, process substitution, and quote remo)144 160.8 R -.25(va)-.15 G
+3.581(la).25 G 1.081(re performed.)-3.581 F 1.081
+(Conditional operators such as)6.081 F F1<ad66>3.581 E F0
+(must be unquoted to be recognized as primaries.)144 172.8 Q .503
+(When the)144 190.8 R F1(==)3.003 E F0(and)3.002 E F1(!=)3.002 E F0 .502
+(operators are used, the string to the right of the operator is conside\
+red a pat-)3.002 F 1.224
+(tern and matched according to the rules described belo)144 202.8 R
+3.724(wu)-.25 G(nder)-3.724 E F1 -.1(Pa)3.724 G(tter).1 E 3.725(nM)-.15
+G(atching)-3.725 E F0 6.225(.I)C 3.725(ft)-6.225 G 1.225(he shell)-3.725
+F(option)144 214.8 Q F1(nocasematch)3.405 E F0 .904
+(is enabled, the match is performed without re)3.405 F -.05(ga)-.15 G
+.904(rd to the case of alphabetic).05 F 2.751(characters. The)144 226.8
+R .251(return v)2.751 F .251(alue is 0 if the string matches \()-.25 F
+F1(==)A F0 2.751(\)o)C 2.751(rd)-2.751 G .251(oes not match \()-2.751 F
+F1(!=)A F0 2.751(\)t)C .252(he pattern, and)-2.751 F 2.5(1o)144 238.8 S
+2.5(therwise. An)-2.5 F 2.5(yp)-.15 G(art of the pattern may be quoted \
+to force it to be matched as a string.)-2.5 E .243
+(An additional binary operator)144 256.8 R(,)-.4 E F1(=~)2.743 E F0
+2.743(,i)C 2.743(sa)-2.743 G -.25(va)-2.943 G .243
+(ilable, with the same precedence as).25 F F1(==)2.743 E F0(and)2.743 E
+F1(!=)2.743 E F0 5.243(.W)C .243(hen it is)-5.243 F 1.953
+(used, the string to the right of the operator is considered an e)144
+268.8 R 1.954(xtended re)-.15 F 1.954(gular e)-.15 F 1.954
+(xpression and)-.15 F .207(matched accordingly \(as in)144 280.8 R F2
+-.37(re)2.707 G -.1(ge)-.03 G(x)-.1 E F0 2.707(\(3\)\). The)B .207
+(return v)2.707 F .207
+(alue is 0 if the string matches the pattern, and 1)-.25 F 3.345
+(otherwise. If)144 292.8 R .845(the re)3.345 F .845(gular e)-.15 F .846
+(xpression is syntactically incorrect, the conditional e)-.15 F
+(xpression')-.15 E 3.346(sr)-.55 G(eturn)-3.346 E -.25(va)144 304.8 S
+.667(lue is 2.).25 F .667(If the shell option)5.667 F F1(nocasematch)
+3.167 E F0 .667(is enabled, the match is performed without re)3.167 F
+-.05(ga)-.15 G .666(rd to).05 F .378(the case of alphabetic characters.)
+144 316.8 R(An)5.378 E 2.878(yp)-.15 G .378
+(art of the pattern may be quoted to force it to be matched)-2.878 F
+.265(as a string.)144 328.8 R .265
+(Substrings matched by parenthesized sube)5.265 F .265
+(xpressions within the re)-.15 F .265(gular e)-.15 F .265(xpression are)
+-.15 F(sa)144 340.8 Q -.15(ve)-.2 G 3.117(di).15 G 3.117(nt)-3.117 G
+.617(he array v)-3.117 F(ariable)-.25 E F1 -.3(BA)3.117 G(SH_REMA).3 E
+(TCH)-.95 E F0 5.617(.T)C .617(he element of)-5.617 F F1 -.3(BA)3.118 G
+(SH_REMA).3 E(TCH)-.95 E F0 .618(with inde)3.118 F(x)-.15 E 6.883(0i)144
+352.8 S 6.883(st)-6.883 G 4.382
+(he portion of the string matching the entire re)-6.883 F 4.382(gular e)
+-.15 F 6.882(xpression. The)-.15 F 4.382(element of)6.882 F F1 -.3(BA)
+144 364.8 S(SH_REMA).3 E(TCH)-.95 E F0 2.087(with inde)4.587 F(x)-.15 E
+F2(n)4.587 E F0 2.088(is the portion of the string matching the)4.587 F
+F2(n)4.588 E F0 2.088(th parenthesized)B(sube)144 376.8 Q(xpression.)
+-.15 E .786(Expressions may be combined using the follo)144 394.8 R .785
+(wing operators, listed in decreasing order of prece-)-.25 F(dence:)144
+406.8 Q F1(\()144 424.8 Q F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F1(\))
+2.5 E F0 .522(Returns the v)180 436.8 R .522(alue of)-.25 F F2 -.2(ex)
+3.022 G(pr).2 E(ession)-.37 E F0 5.522(.T)C .522(his may be used to o)
+-5.522 F -.15(ve)-.15 G .522(rride the normal precedence of).15 F
+(operators.)180 448.8 Q F1(!)144 460.8 Q F2 -.2(ex)2.5 G(pr).2 E(ession)
+-.37 E F0 -.35(Tr)180 472.8 S(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E
+(ession)-.37 E F0(is f)2.74 E(alse.)-.1 E F2 -.2(ex)144 484.8 S(pr).2 E
+(ession1)-.37 E F1(&&)2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0
+-.35(Tr)180 496.8 S(ue if both).35 E F2 -.2(ex)2.5 G(pr).2 E(ession1)
+-.37 E F0(and)2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(are true.)
+2.52 E F2 -.2(ex)144 508.8 S(pr).2 E(ession1)-.37 E/F5 10/Symbol SF
+<efef>2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 520.8
+S(ue if either).35 E F2 -.2(ex)2.5 G(pr).2 E(ession1)-.37 E F0(or)2.5 E
+F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(is true.)2.52 E(The)144 537.6
+Q F1(&&)3.299 E F0(and)3.299 E F5<efef>3.298 E F0 .798
+(operators do not e)3.298 F -.25(va)-.25 G(luate).25 E F2 -.2(ex)3.298 G
+(pr).2 E(ession2)-.37 E F0 .798(if the v)3.298 F .798(alue of)-.25 F F2
+-.2(ex)3.298 G(pr).2 E(ession1)-.37 E F0 .798(is suf)3.298 F .798
+(\214cient to)-.25 F(determine the return v)144 549.6 Q
+(alue of the entire conditional e)-.25 E(xpression.)-.15 E F1 -.25(fo)
+108 566.4 S(r).25 E F2(name)2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)2.5 E(d)
+-.37 E F0 2.5(];)2.5 G F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0
+.423(The list of w)144 578.4 R .423(ords follo)-.1 F(wing)-.25 E F1(in)
+2.923 E F0 .423(is e)2.923 F .423(xpanded, generating a list of items.)
+-.15 F .424(The v)5.424 F(ariable)-.25 E F2(name)2.924 E F0 .424
+(is set to)2.924 F .653(each element of this list in turn, and)144 590.4
+R F2(list)3.153 E F0 .653(is e)3.153 F -.15(xe)-.15 G .653
+(cuted each time.).15 F .653(If the)5.653 F F1(in)3.153 E F2(wor)3.153 E
+(d)-.37 E F0 .653(is omitted, the)3.153 F F1 -.25(fo)3.153 G(r).25 E F0
+.648(command e)144 602.4 R -.15(xe)-.15 G(cutes).15 E F2(list)3.148 E F0
+.648(once for each positional parameter that is set \(see)3.148 F F3
+-.666(PA)3.149 G(RAMETERS).666 E F0(belo)2.899 E(w\).)-.25 E .154
+(The return status is the e)144 614.4 R .153
+(xit status of the last command that e)-.15 F -.15(xe)-.15 G 2.653
+(cutes. If).15 F .153(the e)2.653 F .153(xpansion of the items)-.15 F
+(follo)144 626.4 Q(wing)-.25 E F1(in)2.5 E F0
+(results in an empty list, no commands are e)2.5 E -.15(xe)-.15 G
+(cuted, and the return status is 0.).15 E F1 -.25(fo)108 643.2 S(r).25 E
+F0(\(\()2.5 E F2 -.2(ex)2.5 G(pr1).2 E F0(;)2.5 E F2 -.2(ex)2.5 G(pr2).2
+E F0(;)2.5 E F2 -.2(ex)2.5 G(pr3).2 E F0(\)\) ;)2.5 E F1(do)2.5 E F2
+(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 1.235(First, the arithmetic e)
+144 655.2 R(xpression)-.15 E F2 -.2(ex)3.735 G(pr1).2 E F0 1.235(is e)
+3.735 F -.25(va)-.25 G 1.236
+(luated according to the rules described belo).25 F 3.736(wu)-.25 G
+(nder)-3.736 E F3 .562(ARITHMETIC EV)144 667.2 R(ALU)-1.215 E -.855(AT)
+-.54 G(ION).855 E F4(.)A F0 .562(The arithmetic e)5.062 F(xpression)-.15
+E F2 -.2(ex)3.062 G(pr2).2 E F0 .561(is then e)3.061 F -.25(va)-.25 G
+.561(luated repeatedly until).25 F .591(it e)144 679.2 R -.25(va)-.25 G
+.591(luates to zero.).25 F .592(Each time)5.591 F F2 -.2(ex)3.092 G(pr2)
+.2 E F0 -.25(eva)3.092 G .592(luates to a non-zero v).25 F(alue,)-.25 E
+F2(list)3.092 E F0 .592(is e)3.092 F -.15(xe)-.15 G .592
+(cuted and the arith-).15 F .229(metic e)144 691.2 R(xpression)-.15 E F2
+-.2(ex)2.729 G(pr3).2 E F0 .229(is e)2.729 F -.25(va)-.25 G 2.729
+(luated. If).25 F(an)2.729 E 2.729(ye)-.15 G .229
+(xpression is omitted, it beha)-2.879 F -.15(ve)-.2 G 2.729(sa).15 G
+2.729(si)-2.729 G 2.729(fi)-2.729 G 2.728(te)-2.729 G -.25(va)-2.978 G
+.228(luates to 1.).25 F .227(The return v)144 703.2 R .227
+(alue is the e)-.25 F .227(xit status of the last command in)-.15 F F2
+(list)2.728 E F0 .228(that is e)2.728 F -.15(xe)-.15 G .228(cuted, or f)
+.15 F .228(alse if an)-.1 F 2.728(yo)-.15 G 2.728(ft)-2.728 G(he)-2.728
+E -.15(ex)144 715.2 S(pressions is in).15 E -.25(va)-.4 G(lid.).25 E
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(5)195.95 E 0 Cg EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(select)108 84 Q/F2 10/Times-Italic@0 SF
+(name)2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)2.5 E(d)-.37 E F0 2.5(];)2.5 G
+F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 .433(The list of w)144
+96 R .433(ords follo)-.1 F(wing)-.25 E F1(in)2.933 E F0 .432(is e)2.933
+F .432(xpanded, generating a list of items.)-.15 F .432(The set of e)
+5.432 F .432(xpanded w)-.15 F(ords)-.1 E .842
+(is printed on the standard error)144 108 R 3.342(,e)-.4 G .842
+(ach preceded by a number)-3.342 F 5.842(.I)-.55 G 3.342(ft)-5.842 G(he)
+-3.342 E F1(in)3.342 E F2(wor)3.342 E(d)-.37 E F0 .843
+(is omitted, the posi-)3.343 F .064(tional parameters are printed \(see)
+144 120 R/F3 9/Times-Bold@0 SF -.666(PA)2.564 G(RAMETERS).666 E F0(belo)
+2.314 E 2.564(w\). The)-.25 F F1(PS3)2.564 E F0 .064
+(prompt is then displayed and a)2.564 F .213
+(line read from the standard input.)144 132 R .213
+(If the line consists of a number corresponding to one of the dis-)5.213
+F 1.538(played w)144 144 R 1.538(ords, then the v)-.1 F 1.538(alue of)
+-.25 F F2(name)4.398 E F0 1.537(is set to that w)4.218 F 4.037(ord. If)
+-.1 F 1.537(the line is empty)4.037 F 4.037(,t)-.65 G 1.537(he w)-4.037
+F 1.537(ords and)-.1 F .065(prompt are displayed ag)144 156 R 2.565
+(ain. If)-.05 F .065(EOF is read, the command completes.)2.565 F(An)
+5.066 E 2.566(yo)-.15 G .066(ther v)-2.566 F .066(alue read causes)-.25
+F F2(name)144 168 Q F0 .76(to be set to null.)3.44 F .76
+(The line read is sa)5.76 F -.15(ve)-.2 G 3.259(di).15 G 3.259(nt)-3.259
+G .759(he v)-3.259 F(ariable)-.25 E F1(REPL)3.259 E(Y)-.92 E F0 5.759
+(.T)C(he)-5.759 E F2(list)3.349 E F0 .759(is e)3.939 F -.15(xe)-.15 G
+.759(cuted after).15 F .071(each selection until a)144 180 R F1(br)2.571
+E(eak)-.18 E F0 .071(command is e)2.571 F -.15(xe)-.15 G 2.571
+(cuted. The).15 F -.15(ex)2.571 G .071(it status of).15 F F1(select)
+2.571 E F0 .071(is the e)2.571 F .072(xit status of the)-.15 F
+(last command e)144 192 Q -.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E F0
+2.5(,o).68 G 2.5(rz)-2.5 G(ero if no commands were e)-2.5 E -.15(xe)-.15
+G(cuted.).15 E F1(case)108 208.8 Q F2(wor)2.5 E(d)-.37 E F1(in)2.5 E F0
+2.5([[)2.5 G(\(])-2.5 E F2(pattern)2.5 E F0([)2.5 E F1(|)2.5 E F2
+(pattern)2.5 E F0 2.5(].)2.5 G(.. \))-2.5 E F2(list)2.5 E F0(;; ] ...)
+2.5 E F1(esac)2.5 E F0(A)144 220.8 Q F1(case)3.265 E F0 .764
+(command \214rst e)3.265 F(xpands)-.15 E F2(wor)3.264 E(d)-.37 E F0
+3.264(,a)C .764(nd tries to match it ag)-3.264 F .764(ainst each)-.05 F
+F2(pattern)3.264 E F0 .764(in turn, using the)3.264 F .595
+(same matching rules as for pathname e)144 232.8 R .595(xpansion \(see)
+-.15 F F1 -.1(Pa)3.095 G .596(thname Expansion).1 F F0(belo)3.096 E
+3.096(w\). The)-.25 F F2(wor)3.096 E(d)-.37 E F0(is)3.096 E -.15(ex)144
+244.8 S 1.092(panded using tilde e).15 F 1.092
+(xpansion, parameter and v)-.15 F 1.092(ariable e)-.25 F 1.092
+(xpansion, arithmetic substitution, com-)-.15 F 1.268
+(mand substitution, process substitution and quote remo)144 256.8 R -.25
+(va)-.15 G 3.768(l. Each).25 F F2(pattern)3.768 E F0 -.15(ex)3.768 G
+1.269(amined is e).15 F(xpanded)-.15 E .353(using tilde e)144 268.8 R
+.353(xpansion, parameter and v)-.15 F .353(ariable e)-.25 F .353
+(xpansion, arithmetic substitution, command substi-)-.15 F 1.516
+(tution, and process substitution.)144 280.8 R 1.516
+(If the shell option)6.516 F F1(nocasematch)4.016 E F0 1.517
+(is enabled, the match is per)4.017 F(-)-.2 E 1.347(formed without re)
+144 292.8 R -.05(ga)-.15 G 1.347
+(rd to the case of alphabetic characters.).05 F 1.346
+(When a match is found, the corre-)6.347 F(sponding)144 304.8 Q F2(list)
+2.776 E F0 .277(is e)2.776 F -.15(xe)-.15 G 2.777(cuted. If).15 F(the)
+2.777 E F1(;;)2.777 E F0 .277
+(operator is used, no subsequent matches are attempted after the)2.777 F
+.849(\214rst pattern match.)144 316.8 R(Using)5.849 E F1(;&)3.349 E F0
+.849(in place of)3.349 F F1(;;)3.349 E F0 .849(causes e)3.349 F -.15(xe)
+-.15 G .849(cution to continue with the).15 F F2(list)3.348 E F0
+(associated)3.348 E .077(with the ne)144 328.8 R .077
+(xt set of patterns.)-.15 F(Using)5.077 E F1(;;&)2.577 E F0 .078
+(in place of)2.577 F F1(;;)2.578 E F0 .078
+(causes the shell to test the ne)2.578 F .078(xt pattern list in)-.15 F
+.227(the statement, if an)144 340.8 R 1.527 -.65(y, a)-.15 H .227(nd e)
+.65 F -.15(xe)-.15 G .227(cute an).15 F 2.727(ya)-.15 G(ssociated)-2.727
+E F2(list)2.727 E F0 .227(on a successful match.)2.727 F .227(The e)
+5.227 F .227(xit status is zero)-.15 F(if no pattern matches.)144 352.8
+Q(Otherwise, it is the e)5 E(xit status of the last command e)-.15 E
+-.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E F0(.)A F1(if)108 369.6 Q F2
+(list)2.5 E F0(;)A F1(then)2.5 E F2(list;)2.5 E F0([)2.5 E F1(elif)2.5 E
+F2(list)2.5 E F0(;)A F1(then)2.5 E F2(list)2.5 E F0 2.5(;].)C(.. [)-2.5
+E F1(else)2.5 E F2(list)2.5 E F0 2.5(;])C F1<8c>A F0(The)144 381.6 Q F1
+(if)2.977 E F2(list)3.067 E F0 .478(is e)3.658 F -.15(xe)-.15 G 2.978
+(cuted. If).15 F .478(its e)2.978 F .478(xit status is zero, the)-.15 F
+F1(then)2.978 E F2(list)2.978 E F0 .478(is e)2.978 F -.15(xe)-.15 G
+2.978(cuted. Otherwise,).15 F(each)2.978 E F1(elif)2.978 E F2(list)2.978
+E F0 1.088(is e)144 393.6 R -.15(xe)-.15 G 1.088
+(cuted in turn, and if its e).15 F 1.087
+(xit status is zero, the corresponding)-.15 F F1(then)3.587 E F2(list)
+3.587 E F0 1.087(is e)3.587 F -.15(xe)-.15 G 1.087(cuted and the).15 F
+.103(command completes.)144 405.6 R .103(Otherwise, the)5.103 F F1(else)
+2.603 E F2(list)2.603 E F0 .103(is e)2.603 F -.15(xe)-.15 G .103
+(cuted, if present.).15 F .103(The e)5.103 F .103(xit status is the e)
+-.15 F .104(xit sta-)-.15 F(tus of the last command e)144 417.6 Q -.15
+(xe)-.15 G(cuted, or zero if no condition tested true.).15 E F1(while)
+108 434.4 Q F2(list)2.5 E F0(;)A F1(do)2.5 E F2(list)2.5 E F0(;)A F1
+(done)2.5 E(until)108 446.4 Q F2(list)2.5 E F0(;)A F1(do)2.5 E F2(list)
+2.5 E F0(;)A F1(done)2.5 E F0(The)144 458.4 Q F1(while)3.104 E F0 .603
+(command continuously e)3.104 F -.15(xe)-.15 G .603(cutes the).15 F F1
+(do)3.103 E F2(list)3.103 E F0 .603(as long as the last command in)3.103
+F F2(list)3.103 E F0(returns)3.103 E .47(an e)144 470.4 R .47
+(xit status of zero.)-.15 F(The)5.47 E F1(until)2.97 E F0 .471
+(command is identical to the)2.97 F F1(while)2.971 E F0 .471(command, e)
+2.971 F .471(xcept that the test)-.15 F .096(is ne)144 482.4 R -.05(ga)
+-.15 G .096(ted; the).05 F F1(do)2.596 E F2(list)2.686 E F0 .095(is e)
+3.276 F -.15(xe)-.15 G .095(cuted as long as the last command in).15 F
+F2(list)2.685 E F0 .095(returns a non-zero e)3.275 F .095(xit status.)
+-.15 F 1.306(The e)144 494.4 R 1.306(xit status of the)-.15 F F1(while)
+3.806 E F0(and)3.806 E F1(until)3.807 E F0 1.307(commands is the e)3.807
+F 1.307(xit status of the last)-.15 F F1(do)3.807 E F2(list)3.807 E F0
+(command)3.807 E -.15(exe)144 506.4 S(cuted, or zero if none w).15 E
+(as e)-.1 E -.15(xe)-.15 G(cuted.).15 E F1(Copr)87 523.2 Q(ocesses)-.18
+E F0(A)108 535.2 Q F2(copr)3.713 E(ocess)-.45 E F0 1.213
+(is a shell command preceded by the)3.713 F F1(copr)3.712 E(oc)-.18 E F0
+(reserv)3.712 E 1.212(ed w)-.15 F 3.712(ord. A)-.1 F 1.212
+(coprocess is e)3.712 F -.15(xe)-.15 G 1.212(cuted asyn-).15 F .574(chr\
+onously in a subshell, as if the command had been terminated with the)
+108 547.2 R F1(&)3.075 E F0 .575(control operator)3.075 F 3.075(,w)-.4 G
+.575(ith a tw)-3.075 F(o-)-.1 E -.1(wa)108 559.2 S 2.5(yp).1 G
+(ipe established between the e)-2.5 E -.15(xe)-.15 G
+(cuting shell and the coprocess.).15 E(The format for a coprocess is:)
+108 576 Q F1(copr)144 592.8 Q(oc)-.18 E F0([)2.5 E F2 -.27(NA)C(ME).27 E
+F0(])A F2(command)2.5 E F0([)2.5 E F2 -.37(re)C(dir).37 E(ections)-.37 E
+F0(])A .923(This creates a coprocess named)108 609.6 R F2 -.27(NA)3.423
+G(ME).27 E F0 5.923(.I)C(f)-5.923 E F2 -.27(NA)3.423 G(ME).27 E F0 .922
+(is not supplied, the def)3.423 F .922(ault name is)-.1 F F2(COPR)3.422
+E(OC)-.4 E F0(.)A F2 -.27(NA)5.922 G(ME).27 E F0 .64
+(must not be supplied if)108 621.6 R F2(command)3.14 E F0 .64(is a)3.14
+F F2 .64(simple command)3.14 F F0 .64(\(see abo)3.14 F -.15(ve)-.15 G
+.64(\); otherwise, it is interpreted as the \214rst).15 F -.1(wo)108
+633.6 S .163(rd of the simple command.).1 F .163(When the coproc is e)
+5.163 F -.15(xe)-.15 G .163(cuted, the shell creates an array v).15 F
+.163(ariable \(see)-.25 F F1(Arrays)2.662 E F0(belo)108 645.6 Q .511
+(w\) named)-.25 F F2 -.27(NA)3.011 G(ME).27 E F0 .511(in the conte)3.011
+F .511(xt of the e)-.15 F -.15(xe)-.15 G .511(cuting shell.).15 F .511
+(The standard output of)5.511 F F2(command)3.212 E F0 .512(is connected)
+3.782 F .811(via a pipe to a \214le descriptor in the e)108 657.6 R -.15
+(xe)-.15 G .81(cuting shell, and that \214le descriptor is assigned to)
+.15 F F2 -.27(NA)3.31 G(ME).27 E F0 3.31([0]. The)B .716
+(standard input of)108 669.6 R F2(command)3.416 E F0 .716
+(is connected via a pipe to a \214le descriptor in the e)3.986 F -.15
+(xe)-.15 G .717(cuting shell, and that \214le).15 F .703
+(descriptor is assigned to)108 681.6 R F2 -.27(NA)3.203 G(ME).27 E F0
+3.203([1]. This)B .703(pipe is established before an)3.203 F 3.202(yr)
+-.15 G .702(edirections speci\214ed by the com-)-3.202 F 1.183
+(mand \(see)108 693.6 R F3(REDIRECTION)3.683 E F0(belo)3.433 E 3.683
+(w\). The)-.25 F 1.183(\214le descriptors can be utilized as ar)3.683 F
+1.184(guments to shell commands)-.18 F .07
+(and redirections using standard w)108 705.6 R .07(ord e)-.1 F 2.57
+(xpansions. The)-.15 F .07(process id of the shell spa)2.57 F .07
+(wned to e)-.15 F -.15(xe)-.15 G .07(cute the copro-).15 F .631
+(cess is a)108 717.6 R -.25(va)-.2 G .631(ilable as the v).25 F .631
+(alue of the v)-.25 F(ariable)-.25 E F2 -.27(NA)3.131 G(ME).27 E F0
+3.131(_PID. The)B F1(wait)3.131 E F0 -.2(bu)3.131 G .631
+(iltin command may be used to w).2 F(ait)-.1 E
+(for the coprocess to terminate.)108 729.6 Q(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(6)195.95 E 0 Cg EP
+%%Page: 7 7
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(The return status of a coprocess is the e)108 84 Q(xit status of)
+-.15 E/F1 10/Times-Italic@0 SF(command)2.5 E F0(.)A/F2 10/Times-Bold@0
+SF(Shell Function De\214nitions)87 100.8 Q F0 2.698(As)108 112.8 S .198
+(hell function is an object that is called lik)-2.698 F 2.698(eas)-.1 G
+.198(imple command and e)-2.698 F -.15(xe)-.15 G .197
+(cutes a compound command with).15 F 2.5(an)108 124.8 S .5 -.25(ew s)
+-2.5 H(et of positional parameters.).25 E
+(Shell functions are declared as follo)5 E(ws:)-.25 E([)108 141.6 Q F2
+(function)2.5 E F0(])2.5 E F1(name)2.5 E F0(\(\))2.5 E F1
+(compound\255command)2.5 E F0([)2.5 E F1 -.37(re)C(dir).37 E(ection)-.37
+E F0(])A 1.402(This de\214nes a function named)144 153.6 R F1(name)3.902
+E F0 6.402(.T)C 1.402(he reserv)-6.402 F 1.402(ed w)-.15 F(ord)-.1 E F2
+(function)3.902 E F0 1.402(is optional.)3.902 F 1.403(If the)6.402 F F2
+(function)3.903 E F0(reserv)144 165.6 Q .162(ed w)-.15 F .162
+(ord is supplied, the parentheses are optional.)-.1 F(The)5.162 E F1
+(body)2.662 E F0 .162(of the function is the compound)2.662 F(command)
+144 177.6 Q F1(compound\255command)2.784 E F0(\(see)3.354 E F2 .084
+(Compound Commands)2.584 F F0(abo)2.584 E -.15(ve)-.15 G 2.584(\). That)
+.15 F .084(command is usually a)2.584 F F1(list)144 189.6 Q F0 .044
+(of commands between { and }, b)2.544 F .044(ut may be an)-.2 F 2.544
+(yc)-.15 G .044(ommand listed under)-2.544 F F2 .044(Compound Commands)
+2.544 F F0(abo)144 201.6 Q -.15(ve)-.15 G(.).15 E F1
+(compound\255command)6.67 E F0 1.67(is e)4.17 F -.15(xe)-.15 G 1.671
+(cuted whene).15 F -.15(ve)-.25 G(r).15 E F1(name)4.171 E F0 1.671
+(is speci\214ed as the name of a simple)4.171 F 3.009(command. An)144
+213.6 R 3.009(yr)-.15 G .509(edirections \(see)-3.009 F/F3 9
+/Times-Bold@0 SF(REDIRECTION)3.009 E F0(belo)2.759 E .509
+(w\) speci\214ed when a function is de\214ned are)-.25 F .58
+(performed when the function is e)144 225.6 R -.15(xe)-.15 G 3.08
+(cuted. The).15 F -.15(ex)3.081 G .581
+(it status of a function de\214nition is zero unless a).15 F .177(synta\
+x error occurs or a readonly function with the same name already e)144
+237.6 R 2.677(xists. When)-.15 F -.15(exe)2.677 G .177(cuted, the).15 F
+-.15(ex)144 249.6 S .64(it status of a function is the e).15 F .64
+(xit status of the last command e)-.15 F -.15(xe)-.15 G .64
+(cuted in the body).15 F 5.64(.\()-.65 G(See)-5.64 E F3(FUNC-)3.14 E
+(TIONS)144 261.6 Q F0(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F4 10.95
+/Times-Bold@0 SF(COMMENTS)72 278.4 Q F0 .982(In a non-interacti)108
+290.4 R 1.282 -.15(ve s)-.25 H .982(hell, or an interacti).15 F 1.282
+-.15(ve s)-.25 H .982(hell in which the).15 F F2(interacti)3.482 E -.1
+(ve)-.1 G(_comments).1 E F0 .982(option to the)3.482 F F2(shopt)3.482 E
+F0 -.2(bu)108 302.4 S .951(iltin is enabled \(see).2 F F3 .952(SHELL B)
+3.451 F(UIL)-.09 E .952(TIN COMMANDS)-.828 F F0(belo)3.202 E .952
+(w\), a w)-.25 F .952(ord be)-.1 F .952(ginning with)-.15 F F2(#)3.452 E
+F0 .952(causes that w)3.452 F(ord)-.1 E .605
+(and all remaining characters on that line to be ignored.)108 314.4 R
+.604(An interacti)5.605 F .904 -.15(ve s)-.25 H .604(hell without the)
+.15 F F2(interacti)3.104 E -.1(ve)-.1 G(_com-).1 E(ments)108 326.4 Q F0
+1.336(option enabled does not allo)3.836 F 3.836(wc)-.25 G 3.836
+(omments. The)-3.836 F F2(interacti)3.836 E -.1(ve)-.1 G(_comments).1 E
+F0 1.337(option is on by def)3.837 F 1.337(ault in)-.1 F(interacti)108
+338.4 Q .3 -.15(ve s)-.25 H(hells.).15 E F4 -.11(QU)72 355.2 S -.438(OT)
+.11 G(ING).438 E F1(Quoting)108 367.2 Q F0 .478(is used to remo)2.978 F
+.777 -.15(ve t)-.15 H .477
+(he special meaning of certain characters or w).15 F .477
+(ords to the shell.)-.1 F .477(Quoting can be)5.477 F .184
+(used to disable special treatment for special characters, to pre)108
+379.2 R -.15(ve)-.25 G .185(nt reserv).15 F .185(ed w)-.15 F .185
+(ords from being recognized as)-.1 F(such, and to pre)108 391.2 Q -.15
+(ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .289(Each of the)108
+408 R F1(metac)2.789 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288
+(listed abo)2.789 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS)
+2.788 E F0 .288(has special meaning to the shell and must be)2.538 F
+(quoted if it is to represent itself.)108 420 Q 1.344
+(When the command history e)108 436.8 R 1.344(xpansion f)-.15 F 1.344
+(acilities are being used \(see)-.1 F F3(HIST)3.844 E(OR)-.162 E 3.594
+(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F0(belo)3.595 E 1.345(w\), the)
+-.25 F F1(history e)108 448.8 Q(xpansion)-.2 E F0(character)2.5 E 2.5
+(,u)-.4 G(sually)-2.5 E F2(!)2.5 E F0 2.5(,m)C(ust be quoted to pre)-2.5
+E -.15(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E
+(There are three quoting mechanisms: the)108 465.6 Q F1(escape c)2.5 E
+(har)-.15 E(acter)-.15 E F0 2.5(,s).73 G
+(ingle quotes, and double quotes.)-2.5 E 2.975(An)108 482.4 S .475
+(on-quoted backslash \()-2.975 F F2(\\)A F0 2.974(\)i)C 2.974(st)-2.974
+G(he)-2.974 E F1 .474(escape c)2.974 F(har)-.15 E(acter)-.15 E F0 5.474
+(.I).73 G 2.974(tp)-5.474 G(reserv)-2.974 E .474(es the literal v)-.15 F
+.474(alue of the ne)-.25 F .474(xt character that)-.15 F(follo)108 494.4
+Q 1.553(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053
+(wline>. If)-.25 F(a)4.053 E F2(\\)4.053 E F0(<ne)A 1.553
+(wline> pair appears, and the backslash is not itself)-.25 F 1.123
+(quoted, the)108 506.4 R F2(\\)3.623 E F0(<ne)A 1.122
+(wline> is treated as a line continuation \(that is, it is remo)-.25 F
+-.15(ve)-.15 G 3.622(df).15 G 1.122(rom the input stream and)-3.622 F
+(ef)108 518.4 Q(fecti)-.25 E -.15(ve)-.25 G(ly ignored\).).15 E .295
+(Enclosing characters in single quotes preserv)108 535.2 R .295
+(es the literal v)-.15 F .295(alue of each character within the quotes.)
+-.25 F 2.795(As)5.295 G(in-)-2.795 E
+(gle quote may not occur between single quotes, e)108 547.2 Q -.15(ve)
+-.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .034
+(Enclosing characters in double quotes preserv)108 564 R .034
+(es the literal v)-.15 F .034
+(alue of all characters within the quotes, with the)-.25 F -.15(ex)108
+576 S .827(ception of).15 F F2($)3.327 E F0(,)A F2<92>3.328 E F0(,)A F2
+(\\)3.328 E F0 3.328(,a)C .828(nd, when history e)-3.328 F .828
+(xpansion is enabled,)-.15 F F2(!)3.328 E F0 5.828(.T)C .828
+(he characters)-5.828 F F2($)3.328 E F0(and)3.328 E F2<92>3.328 E F0
+.828(retain their special)3.328 F .075(meaning within double quotes.)108
+588 R .074(The backslash retains its special meaning only when follo)
+5.075 F .074(wed by one of the)-.25 F(follo)108 600 Q .204
+(wing characters:)-.25 F F2($)2.704 E F0(,)A F2<92>2.704 E F0(,)A F2(")
+3.537 E F0(,).833 E F2(\\)2.704 E F0 2.704(,o)C(r)-2.704 E F2(<newline>)
+2.705 E F0 5.205(.A)C .205
+(double quote may be quoted within double quotes by pre-)-2.5 F .082
+(ceding it with a backslash.)108 612 R .082(If enabled, history e)5.082
+F .082(xpansion will be performed unless an)-.15 F F2(!)2.581 E F0 .081
+(appearing in double)5.081 F(quotes is escaped using a backslash.)108
+624 Q(The backslash preceding the)5 E F2(!)2.5 E F0(is not remo)5 E -.15
+(ve)-.15 G(d.).15 E(The special parameters)108 640.8 Q F2(*)2.5 E F0
+(and)2.5 E F2(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2 H
+(pecial meaning when in double quotes \(see).15 E F3 -.666(PA)2.5 G
+(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 657.6 S .211
+(rds of the form).8 F F2($)2.711 E F0<08>A F1(string)A F0 2.711<0861>C
+.211(re treated specially)-2.711 F 5.211(.T)-.65 G .211(he w)-5.211 F
+.211(ord e)-.1 F .212(xpands to)-.15 F F1(string)2.712 E F0 2.712(,w)C
+.212(ith backslash-escaped char)-2.712 F(-)-.2 E .605
+(acters replaced as speci\214ed by the ANSI C standard.)108 669.6 R .604
+(Backslash escape sequences, if present, are decoded)5.605 F(as follo)
+108 681.6 Q(ws:)-.25 E F2(\\a)144 693.6 Q F0(alert \(bell\))28.22 E F2
+(\\b)144 705.6 Q F0(backspace)27.66 E F2(\\e)144 717.6 Q F0
+(an escape character)28.78 E(GNU Bash-4.0)72 768 Q(2009 February 7)
+140.96 E(7)195.95 E 0 Cg EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(\\f)144 84 Q F0(form feed)29.89 E F1(\\n)
+144 96 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 108 Q F0
+(carriage return)28.78 E F1(\\t)144 120 Q F0(horizontal tab)29.89 E F1
+(\\v)144 132 Q F0 -.15(ve)28.22 G(rtical tab).15 E F1(\\\\)144 144 Q F0
+(backslash)30.44 E F1<5c08>144 156 Q F0(single quote)30.44 E F1(\\)144
+168 Q/F2 10/Times-Italic@0 SF(nnn)A F0(the eight-bit character whose v)
+18.22 E(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
+(\(one to three digits\))2.5 E F1(\\x)144 180 Q F2(HH)A F0
+(the eight-bit character whose v)13.78 E(alue is the he)-.25 E
+(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(\\c)144 192 Q F2(x)A F0 2.5
+(ac)24.34 G(ontrol-)-2.5 E F2(x)A F0(character)2.5 E(The e)108 208.8 Q(\
+xpanded result is single-quoted, as if the dollar sign had not been pre\
+sent.)-.15 E 2.985(Ad)108 225.6 S .485
+(ouble-quoted string preceded by a dollar sign \()-2.985 F F1($)A F0
+2.986(\)w)C .486(ill cause the string to be translated according to the)
+-2.986 F .118(current locale.)108 237.6 R .118(If the current locale is)
+5.118 F F1(C)2.618 E F0(or)2.618 E F1(POSIX)2.618 E F0 2.618(,t)C .117
+(he dollar sign is ignored.)-2.618 F .117
+(If the string is translated and)5.117 F
+(replaced, the replacement is double-quoted.)108 249.6 Q/F3 10.95
+/Times-Bold@0 SF -.81(PA)72 266.4 S(RAMETERS).81 E F0(A)108 278.4 Q F2
+(par)4.592 E(ameter)-.15 E F0 .842(is an entity that stores v)4.072 F
+3.342(alues. It)-.25 F .842(can be a)3.342 F F2(name)3.343 E F0 3.343
+(,an).18 G(umber)-3.343 E 3.343(,o)-.4 G 3.343(ro)-3.343 G .843
+(ne of the special characters)-3.343 F .823(listed belo)108 290.4 R
+3.323(wu)-.25 G(nder)-3.323 E F1 .823(Special P)3.323 F(arameters)-.1 E
+F0 5.823(.A)C F2(variable)-2.21 E F0 .823(is a parameter denoted by a)
+3.503 F F2(name)3.323 E F0 5.823(.A).18 G -.25(va)-2.5 G .823
+(riable has a).25 F F2(value)108 302.4 Q F0 .368(and zero or more)2.868
+F F2(attrib)2.868 E(utes)-.2 E F0 5.369(.A)C(ttrib)-5.369 E .369
+(utes are assigned using the)-.2 F F1(declar)2.869 E(e)-.18 E F0 -.2(bu)
+2.869 G .369(iltin command \(see).2 F F1(declar)2.869 E(e)-.18 E F0
+(belo)108 314.4 Q 2.5(wi)-.25 G(n)-2.5 E/F4 9/Times-Bold@0 SF(SHELL B)
+2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E/F5 9/Times-Roman@0 SF(\).)A F0
+2.755(Ap)108 331.2 S .255(arameter is set if it has been assigned a v)
+-2.755 F 2.754(alue. The)-.25 F .254(null string is a v)2.754 F .254
+(alid v)-.25 F 2.754(alue. Once)-.25 F 2.754(av)2.754 G .254
+(ariable is set, it)-3.004 F(may be unset only by using the)108 343.2 Q
+F1(unset)2.5 E F0 -.2(bu)2.5 G(iltin command \(see).2 E F4(SHELL B)2.5 E
+(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 360 Q
+F2(variable)2.79 E F0(may be assigned to by a statement of the form)2.68
+E F2(name)144 376.8 Q F0(=[)A F2(value)A F0(])A(If)108 393.6 Q F2(value)
+3.022 E F0 .232(is not gi)2.912 F -.15(ve)-.25 G .232(n, the v).15 F
+.232(ariable is assigned the null string.)-.25 F(All)5.233 E F2(values)
+3.023 E F0(under)3.003 E .233(go tilde e)-.18 F .233
+(xpansion, parameter)-.15 F .515(and v)108 405.6 R .515(ariable e)-.25 F
+.515(xpansion, command substitution, arithmetic e)-.15 F .515
+(xpansion, and quote remo)-.15 F -.25(va)-.15 G 3.015(l\().25 G(see)
+-3.015 E F4(EXP)3.015 E(ANSION)-.666 E F0(belo)108 417.6 Q 2.698
+(w\). If)-.25 F .198(the v)2.698 F .198(ariable has its)-.25 F F1
+(integer)2.698 E F0(attrib)2.698 E .198(ute set, then)-.2 F F2(value)
+2.988 E F0 .198(is e)2.878 F -.25(va)-.25 G .199
+(luated as an arithmetic e).25 F .199(xpression e)-.15 F -.15(ve)-.25 G
+(n).15 E .902(if the $\(\(...\)\) e)108 429.6 R .902
+(xpansion is not used \(see)-.15 F F1 .901(Arithmetic Expansion)3.401 F
+F0(belo)3.401 E 3.401(w\). W)-.25 F .901
+(ord splitting is not performed,)-.8 F 1.178(with the e)108 441.6 R
+1.178(xception of)-.15 F F1("$@")3.678 E F0 1.178(as e)3.678 F 1.179
+(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F1 1.179(Special P)
+3.679 F(arameters)-.1 E F0 6.179(.P)C 1.179(athname e)-6.329 F 1.179
+(xpansion is not)-.15 F 3.649(performed. Assignment)108 453.6 R 1.149
+(statements may also appear as ar)3.649 F 1.148(guments to the)-.18 F F1
+(alias)3.648 E F0(,)A F1(declar)3.648 E(e)-.18 E F0(,)A F1(typeset)3.648
+E F0(,)A F1(export)3.648 E F0(,)A F1 -.18(re)108 465.6 S(adonly).18 E F0
+2.5(,a)C(nd)-2.5 E F1(local)2.5 E F0 -.2(bu)2.5 G(iltin commands.).2 E
+.376(In the conte)108 482.4 R .376
+(xt where an assignment statement is assigning a v)-.15 F .376
+(alue to a shell v)-.25 F .377(ariable or array inde)-.25 F .377
+(x, the +=)-.15 F .257
+(operator can be used to append to or add to the v)108 494.4 R(ariable')
+-.25 E 2.757(sp)-.55 G(re)-2.757 E .257(vious v)-.25 F 2.757(alue. When)
+-.25 F .257(+= is applied to a v)2.757 F(ariable)-.25 E .372
+(for which the inte)108 506.4 R .372(ger attrib)-.15 F .372
+(ute has been set,)-.2 F F2(value)2.872 E F0 .372(is e)2.872 F -.25(va)
+-.25 G .372(luated as an arithmetic e).25 F .373
+(xpression and added to the)-.15 F -.25(va)108 518.4 S(riable').25 E
+2.889(sc)-.55 G .389(urrent v)-2.889 F .389(alue, which is also e)-.25 F
+-.25(va)-.25 G 2.889(luated. When).25 F .389
+(+= is applied to an array v)2.889 F .388(ariable using compound)-.25 F
+.185(assignment \(see)108 530.4 R F1(Arrays)2.685 E F0(belo)2.685 E .185
+(w\), the v)-.25 F(ariable')-.25 E 2.685(sv)-.55 G .185
+(alue is not unset \(as it is when using =\), and ne)-2.935 F 2.686(wv)
+-.25 G .186(alues are)-2.936 F 1.385(appended to the array be)108 542.4
+R 1.384(ginning at one greater than the array')-.15 F 3.884(sm)-.55 G
+1.384(aximum inde)-3.884 F 3.884(x\()-.15 G 1.384(for inde)-3.884 F -.15
+(xe)-.15 G 3.884(da).15 G 1.384(rrays\) or)-3.884 F .122
+(added as additional k)108 554.4 R -.15(ey)-.1 G<ad76>.15 E .122
+(alue pairs in an associati)-.25 F .423 -.15(ve a)-.25 H(rray).15 E
+5.123(.W)-.65 G .123(hen applied to a string-v)-5.123 F .123(alued v)
+-.25 F(ariable,)-.25 E F2(value)2.623 E F0(is e)108 566.4 Q
+(xpanded and appended to the v)-.15 E(ariable')-.25 E 2.5(sv)-.55 G
+(alue.)-2.75 E F1 -.2(Po)87 583.2 S(sitional P).2 E(arameters)-.1 E F0
+(A)108 595.2 Q F2 .706(positional par)4.456 F(ameter)-.15 E F0 .706(is \
+a parameter denoted by one or more digits, other than the single digit \
+0.)3.936 F(Posi-)5.705 E .444
+(tional parameters are assigned from the shell')108 607.2 R 2.944(sa)
+-.55 G -.18(rg)-2.944 G .444(uments when it is in).18 F -.2(vo)-.4 G -.1
+(ke).2 G .445(d, and may be reassigned using).1 F(the)108 619.2 Q F1
+(set)3.334 E F0 -.2(bu)3.334 G .834(iltin command.).2 F .833(Positional\
+ parameters may not be assigned to with assignment statements.)5.834 F
+(The)5.833 E .334(positional parameters are temporarily replaced when a\
+ shell function is e)108 631.2 R -.15(xe)-.15 G .334(cuted \(see).15 F
+F4(FUNCTIONS)2.834 E F0(belo)2.584 E(w\).)-.25 E 1.404(When a positiona\
+l parameter consisting of more than a single digit is e)108 648 R 1.403
+(xpanded, it must be enclosed in)-.15 F(braces \(see)108 660 Q F4(EXP)
+2.5 E(ANSION)-.666 E F0(belo)2.25 E(w\).)-.25 E F1(Special P)87 676.8 Q
+(arameters)-.1 E F0 1.674(The shell treats se)108 688.8 R -.15(ve)-.25 G
+1.674(ral parameters specially).15 F 6.675(.T)-.65 G 1.675
+(hese parameters may only be referenced; assignment to)-6.675 F
+(them is not allo)108 700.8 Q(wed.)-.25 E F1(*)108 712.8 Q F0 .606
+(Expands to the positional parameters, starting from one.)31 F .605
+(When the e)5.605 F .605(xpansion occurs within dou-)-.15 F 1.432
+(ble quotes, it e)144 724.8 R 1.432(xpands to a single w)-.15 F 1.432
+(ord with the v)-.1 F 1.433
+(alue of each parameter separated by the \214rst)-.25 F(GNU Bash-4.0)72
+768 Q(2009 February 7)140.96 E(8)195.95 E 0 Cg EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .335(character of the)144 84 R/F1 9/Times-Bold@0 SF(IFS)2.835 E
+F0 .335(special v)2.585 F 2.835(ariable. That)-.25 F .335(is, ")2.835 F
+/F2 10/Times-Bold@0 SF($*)A F0 2.834("i)C 2.834(se)-2.834 G(qui)-2.834 E
+-.25(va)-.25 G .334(lent to ").25 F F2($1)A/F3 10/Times-Italic@0 SF(c)A
+F2($2)A F3(c)A F2(...)A F0 .334(", where)B F3(c)3.034 E F0 .334
+(is the \214rst)3.144 F .487(character of the v)144 96 R .487
+(alue of the)-.25 F F1(IFS)2.987 E F0 -.25(va)2.737 G 2.987(riable. If)
+.25 F F1(IFS)2.987 E F0 .487
+(is unset, the parameters are separated by spaces.)2.737 F(If)144 108 Q
+F1(IFS)2.5 E F0(is null, the parameters are joined without interv)2.25 E
+(ening separators.)-.15 E F2(@)108 120 Q F0 .606
+(Expands to the positional parameters, starting from one.)26.7 F .605
+(When the e)5.605 F .605(xpansion occurs within dou-)-.15 F .113
+(ble quotes, each parameter e)144 132 R .113(xpands to a separate w)-.15
+F 2.614(ord. That)-.1 F .114(is, ")2.614 F F2($@)A F0 2.614("i)C 2.614
+(se)-2.614 G(qui)-2.614 E -.25(va)-.25 G .114(lent to ").25 F F2($1)A F0
+2.614("")C F2($2)-2.614 E F0 2.614(".)C(..)-2.614 E .135
+(If the double-quoted e)144 144 R .135(xpansion occurs within a w)-.15 F
+.135(ord, the e)-.1 F .134(xpansion of the \214rst parameter is joined)
+-.15 F .15(with the be)144 156 R .15(ginning part of the original w)-.15
+F .151(ord, and the e)-.1 F .151
+(xpansion of the last parameter is joined with)-.15 F .338
+(the last part of the original w)144 168 R 2.838(ord. When)-.1 F .337
+(there are no positional parameters, ")2.838 F F2($@)A F0 2.837("a)C(nd)
+-2.837 E F2($@)2.837 E F0 -.15(ex)2.837 G(pand).15 E
+(to nothing \(i.e., the)144 180 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15(ve)
+-.15 G(d\).).15 E F2(#)108 192 Q F0
+(Expands to the number of positional parameters in decimal.)31 E F2(?)
+108 204 Q F0(Expands to the e)31 E(xit status of the most recently e)
+-.15 E -.15(xe)-.15 G(cuted fore).15 E(ground pipeline.)-.15 E F2<ad>108
+216 Q F0 .881
+(Expands to the current option \215ags as speci\214ed upon in)30.3 F -.2
+(vo)-.4 G .881(cation, by the).2 F F2(set)3.382 E F0 -.2(bu)3.382 G .882
+(iltin command, or).2 F(those set by the shell itself \(such as the)144
+228 Q F2<ad69>2.5 E F0(option\).)2.5 E F2($)108 240 Q F0 .214
+(Expands to the process ID of the shell.)31 F .214
+(In a \(\) subshell, it e)5.214 F .214
+(xpands to the process ID of the current)-.15 F
+(shell, not the subshell.)144 252 Q F2(!)108 264 Q F0
+(Expands to the process ID of the most recently e)32.67 E -.15(xe)-.15 G
+(cuted background \(asynchronous\) command.).15 E F2(0)108 276 Q F0
+1.691(Expands to the name of the shell or shell script.)31 F 1.692
+(This is set at shell initialization.)6.692 F(If)6.692 E F2(bash)4.192 E
+F0(is)4.192 E(in)144 288 Q -.2(vo)-.4 G -.1(ke).2 G 3.078(dw).1 G .578
+(ith a \214le of commands,)-3.078 F F2($0)3.078 E F0 .578
+(is set to the name of that \214le.)3.078 F(If)5.577 E F2(bash)3.077 E
+F0 .577(is started with the)3.077 F F2<ad63>3.077 E F0 .368
+(option, then)144 300 R F2($0)2.869 E F0 .369(is set to the \214rst ar)
+2.869 F .369(gument after the string to be e)-.18 F -.15(xe)-.15 G .369
+(cuted, if one is present.).15 F(Other)5.369 E(-)-.2 E
+(wise, it is set to the \214le name used to in)144 312 Q -.2(vo)-.4 G
+-.1(ke).2 G F2(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25(iv e)-2.5
+H 2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E F2(_)108
+324 Q F0 .055(At shell startup, set to the absolute pathname used to in)
+31 F -.2(vo)-.4 G .255 -.1(ke t).2 H .054
+(he shell or shell script being e).1 F -.15(xe)-.15 G(cuted).15 E .691
+(as passed in the en)144 336 R .691(vironment or ar)-.4 F .691
+(gument list.)-.18 F(Subsequently)5.691 E 3.191(,e)-.65 G .692
+(xpands to the last ar)-3.341 F .692(gument to the)-.18 F(pre)144 348 Q
+.571(vious command, after e)-.25 F 3.071(xpansion. Also)-.15 F .571
+(set to the full pathname used to in)3.071 F -.2(vo)-.4 G .77 -.1(ke e)
+.2 H .57(ach command).1 F -.15(exe)144 360 S 1.6
+(cuted and placed in the en).15 F 1.6(vironment e)-.4 F 1.6
+(xported to that command.)-.15 F 1.6(When checking mail, this)6.6 F
+(parameter holds the name of the mail \214le currently being check)144
+372 Q(ed.)-.1 E F2(Shell V)87 388.8 Q(ariables)-.92 E F0(The follo)108
+400.8 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F2 -.3(BA)
+108 417.6 S(SH).3 E F0(Expands to the full \214le name used to in)9.07 E
+-.2(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F2(bash)2.5 E F0(.)A
+F2 -.3(BA)108 429.6 S(SHPID).3 E F0 .361
+(Expands to the process id of the current)144 441.6 R F2(bash)2.861 E F0
+2.861(process. This)2.861 F(dif)2.86 E .36(fers from)-.25 F F2($$)2.86 E
+F0 .36(under certain circum-)2.86 F
+(stances, such as subshells that do not require)144 453.6 Q F2(bash)2.5
+E F0(to be re-initialized.)2.5 E F2 -.3(BA)108 465.6 S(SH_ALIASES).3 E
+F0 1.195(An associati)144 477.6 R 1.495 -.15(ve a)-.25 H 1.195(rray v)
+.15 F 1.195(ariable whose members correspond to the internal list of al\
+iases as main-)-.25 F .319(tained by the)144 489.6 R F2(alias)2.819 E F0
+-.2(bu)2.819 G .318(iltin Elements added to this array appear in the al\
+ias list; unsetting array ele-).2 F(ments cause aliases to be remo)144
+501.6 Q -.15(ve)-.15 G 2.5(df).15 G(rom the alias list.)-2.5 E F2 -.3
+(BA)108 513.6 S(SH_ARGC).3 E F0 .934(An array v)144 525.6 R .934
+(ariable whose v)-.25 F .934
+(alues are the number of parameters in each frame of the current)-.25 F
+F2(bash)3.435 E F0 -.15(exe)144 537.6 S .535(cution call stack.).15 F
+.535(The number of parameters to the current subroutine \(shell functio\
+n or script)5.535 F -.15(exe)144 549.6 S .141(cuted with).15 F F2(.)
+2.641 E F0(or)2.641 E F2(sour)2.641 E(ce)-.18 E F0 2.641(\)i)C 2.641(sa)
+-2.641 G 2.641(tt)-2.641 G .142(he top of the stack.)-2.641 F .142
+(When a subroutine is e)5.142 F -.15(xe)-.15 G .142
+(cuted, the number of).15 F 1.525(parameters passed is pushed onto)144
+561.6 R F2 -.3(BA)4.024 G(SH_ARGC).3 E F0 6.524(.T)C 1.524
+(he shell sets)-6.524 F F2 -.3(BA)4.024 G(SH_ARGC).3 E F0 1.524
+(only when in)4.024 F -.15(ex)144 573.6 S(tended deb).15 E
+(ugging mode \(see the description of the)-.2 E F2(extdeb)2.5 E(ug)-.2 E
+F0(option to the)2.5 E F2(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo).2 E
+(w\))-.25 E F2 -.3(BA)108 585.6 S(SH_ARGV).3 E F0 .979(An array v)144
+597.6 R .979(ariable containing all of the parameters in the current)
+-.25 F F2(bash)3.48 E F0 -.15(exe)3.48 G .98(cution call stack.).15 F
+(The)5.98 E .275(\214nal parameter of the last subroutine call is at th\
+e top of the stack; the \214rst parameter of the initial)144 609.6 R
+1.424(call is at the bottom.)144 621.6 R 1.424(When a subroutine is e)
+6.424 F -.15(xe)-.15 G 1.424
+(cuted, the parameters supplied are pushed onto).15 F F2 -.3(BA)144
+633.6 S(SH_ARGV).3 E F0 6.091(.T)C 1.091(he shell sets)-6.091 F F2 -.3
+(BA)3.591 G(SH_ARGV).3 E F0 1.091(only when in e)3.591 F 1.091
+(xtended deb)-.15 F 1.09(ugging mode \(see the)-.2 F(description of the)
+144 645.6 Q F2(extdeb)2.5 E(ug)-.2 E F0(option to the)2.5 E F2(shopt)2.5
+E F0 -.2(bu)2.5 G(iltin belo).2 E(w\))-.25 E F2 -.3(BA)108 657.6 S
+(SH_CMDS).3 E F0 .667(An associati)144 669.6 R .967 -.15(ve a)-.25 H
+.667(rray v).15 F .668(ariable whose members correspond to the internal\
+ hash table of commands)-.25 F .147(as maintained by the)144 681.6 R F2
+(hash)2.647 E F0 -.2(bu)2.646 G 2.646(iltin. Elements).2 F .146
+(added to this array appear in the hash table; unsetting)2.646 F
+(array elements cause commands to be remo)144 693.6 Q -.15(ve)-.15 G 2.5
+(df).15 G(rom the hash table.)-2.5 E F2 -.3(BA)108 705.6 S(SH_COMMAND).3
+E F0 1.242(The command currently being e)144 717.6 R -.15(xe)-.15 G
+1.243(cuted or about to be e).15 F -.15(xe)-.15 G 1.243
+(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.243(cuting a).15 F
+(command as the result of a trap, in which case it is the command e)144
+729.6 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(9)195.95 E 0 Cg EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF -.3(BA)108 84 S(SH_EXECUTION_STRING).3 E F0
+(The command ar)144 96 Q(gument to the)-.18 E F1<ad63>2.5 E F0(in)2.5 E
+-.2(vo)-.4 G(cation option.).2 E F1 -.3(BA)108 108 S(SH_LINENO).3 E F0
+.034(An array v)144 120 R .034(ariable whose members are the line numbe\
+rs in source \214les corresponding to each mem-)-.25 F 2.944(ber of)144
+132 R F1(FUNCN)5.444 E(AME)-.2 E F0(.)A F1(${B)7.944 E(ASH_LINENO[)-.3 E
+/F2 10/Times-Italic@0 SF($i)A F1(]})A F0 2.944
+(is the line number in the source \214le where)5.444 F F1(${FUNCN)144
+144 Q(AME[)-.2 E F2($i)A F1(]})A F0 -.1(wa)3.312 G 3.311(sc).1 G .811
+(alled \(or)-3.311 F F1(${B)3.311 E(ASH_LINENO[)-.3 E F2($i-1)A F1(]})A
+F0 .811(if referenced within another shell)3.311 F 4.567
+(function\). The)144 156 R 2.067(corresponding source \214le name is)
+4.567 F F1(${B)4.567 E(ASH_SOURCE[)-.3 E F2($i)A F1(]})A F0 7.067(.U)C
+(se)-7.067 E F1(LINENO)4.567 E F0(to)4.567 E
+(obtain the current line number)144 168 Q(.)-.55 E F1 -.3(BA)108 180 S
+(SH_REMA).3 E(TCH)-.95 E F0 .006(An array v)144 192 R .006
+(ariable whose members are assigned by the)-.25 F F1(=~)2.506 E F0 .005
+(binary operator to the)2.506 F F1([[)2.505 E F0 .005(conditional com-)
+2.505 F 2.506(mand. The)144 204 R .007(element with inde)2.506 F 2.507
+(x0i)-.15 G 2.507(st)-2.507 G .007
+(he portion of the string matching the entire re)-2.507 F .007(gular e)
+-.15 F(xpression.)-.15 E .998(The element with inde)144 216 R(x)-.15 E
+F2(n)3.498 E F0 .997(is the portion of the string matching the)3.498 F
+F2(n)3.497 E F0 .997(th parenthesized sube)B(xpres-)-.15 E 2.5
+(sion. This)144 228 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E
+F1 -.3(BA)108 240 S(SH_SOURCE).3 E F0 .889(An array v)144 252 R .889(ar\
+iable whose members are the source \214lenames corresponding to the ele\
+ments in the)-.25 F F1(FUNCN)144 264 Q(AME)-.2 E F0(array v)2.5 E
+(ariable.)-.25 E F1 -.3(BA)108 276 S(SH_SUBSHELL).3 E F0 .402
+(Incremented by one each time a subshell or subshell en)144 288 R .401
+(vironment is spa)-.4 F 2.901(wned. The)-.15 F .401(initial v)2.901 F
+.401(alue is)-.25 F(0.)144 300 Q F1 -.3(BA)108 312 S(SH_VERSINFO).3 E F0
+2.644(Ar)144 324 S .144(eadonly array v)-2.644 F .144
+(ariable whose members hold v)-.25 F .144
+(ersion information for this instance of)-.15 F F1(bash)2.645 E F0 5.145
+(.T)C(he)-5.145 E -.25(va)144 336 S
+(lues assigned to the array members are as follo).25 E(ws:)-.25 E F1 -.3
+(BA)144 354 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)24.74 E
+(ersion number \(the)-.15 E F2 -.37(re)2.5 G(lease).37 E F0(\).)A F1 -.3
+(BA)144 366 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)24.74 E
+(ersion number \(the)-.15 E F2(ver)2.5 E(sion)-.1 E F0(\).)A F1 -.3(BA)
+144 378 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)24.74 E -.15
+(ve)-.25 G(l.).15 E F1 -.3(BA)144 390 S(SH_VERSINFO[).3 E F0(3)A F1(])A
+F0(The b)24.74 E(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 402 S
+(SH_VERSINFO[).3 E F0(4)A F1(])A F0(The release status \(e.g.,)24.74 E
+F2(beta1)2.5 E F0(\).)A F1 -.3(BA)144 414 S(SH_VERSINFO[).3 E F0(5)A F1
+(])A F0(The v)24.74 E(alue of)-.25 E F1(MA)2.5 E(CHTYPE)-.55 E F0(.)A F1
+-.3(BA)108 430.8 S(SH_VERSION).3 E F0
+(Expands to a string describing the v)144 442.8 Q
+(ersion of this instance of)-.15 E F1(bash)2.5 E F0(.)A F1(COMP_CW)108
+459.6 Q(ORD)-.1 E F0 .397(An inde)144 471.6 R 2.897(xi)-.15 G(nto)-2.897
+E F1(${COMP_W)2.896 E(ORDS})-.1 E F0 .396(of the w)2.896 F .396
+(ord containing the current cursor position.)-.1 F .396(This v)5.396 F
+(ari-)-.25 E 1.18(able is a)144 483.6 R -.25(va)-.2 G 1.181
+(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.681
+(db).1 G 3.681(yt)-3.681 G 1.181(he programmable completion f)-3.681 F
+1.181(acilities \(see)-.1 F F1(Pr)144 495.6 Q(ogrammable Completion)-.18
+E F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 512.4 Q F0(The k)144 524.4 Q
+.3 -.15(ey \()-.1 H(or \214nal k).15 E .3 -.15(ey o)-.1 H 2.5(fak).15 G
+.3 -.15(ey s)-2.6 H(equence\) used to in).15 E -.2(vo)-.4 G .2 -.1(ke t)
+.2 H(he current completion function.).1 E F1(COMP_LINE)108 541.2 Q F0
+1.208(The current command line.)144 553.2 R 1.208(This v)6.208 F 1.208
+(ariable is a)-.25 F -.25(va)-.2 G 1.208
+(ilable only in shell functions and e).25 F 1.207(xternal com-)-.15 F
+2.848(mands in)144 565.2 R -.2(vo)-.4 G -.1(ke).2 G 5.349(db).1 G 5.349
+(yt)-5.349 G 2.849(he programmable completion f)-5.349 F 2.849
+(acilities \(see)-.1 F F1(Pr)5.349 E 2.849(ogrammable Completion)-.18 F
+F0(belo)144 577.2 Q(w\).)-.25 E F1(COMP_POINT)108 594 Q F0 .667
+(The inde)144 606 R 3.167(xo)-.15 G 3.167(ft)-3.167 G .666
+(he current cursor position relati)-3.167 F .966 -.15(ve t)-.25 H 3.166
+(ot).15 G .666(he be)-3.166 F .666(ginning of the current command.)-.15
+F .666(If the)5.666 F .534
+(current cursor position is at the end of the current command, the v)144
+618 R .535(alue of this v)-.25 F .535(ariable is equal to)-.25 F F1
+(${#COMP_LINE})144 630 Q F0 7.006(.T)C 2.006(his v)-7.006 F 2.006
+(ariable is a)-.25 F -.25(va)-.2 G 2.005
+(ilable only in shell functions and e).25 F 2.005(xternal commands)-.15
+F(in)144 642 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
+(he programmable completion f)-2.5 E(acilities \(see)-.1 E F1(Pr)2.5 E
+(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(COMP_TYPE)108
+658.8 Q F0 .041(Set to an inte)144 670.8 R .041(ger v)-.15 F .041(alue \
+corresponding to the type of completion attempted that caused a complet\
+ion)-.25 F .338(function to be called:)144 682.8 R F2 -.5(TA)2.837 G(B)
+.5 E F0 2.837(,f)C .337(or normal completion,)-2.837 F F2(?)2.837 E F0
+2.837(,f)C .337(or listing completions after successi)-2.837 F .637 -.15
+(ve t)-.25 H(abs,).15 E F2(!)144 694.8 Q F0 4.091(,f)C 1.591
+(or listing alternati)-4.091 F -.15(ve)-.25 G 4.092(so).15 G 4.092(np)
+-4.092 G 1.592(artial w)-4.092 F 1.592(ord completion,)-.1 F F2(@)4.092
+E F0 4.092(,t)C 4.092(ol)-4.092 G 1.592(ist completions if the w)-4.092
+F 1.592(ord is not)-.1 F 1.553(unmodi\214ed, or)144 706.8 R F2(%)4.053 E
+F0 4.052(,f)C 1.552(or menu completion.)-4.052 F 1.552(This v)6.552 F
+1.552(ariable is a)-.25 F -.25(va)-.2 G 1.552
+(ilable only in shell functions and).25 F -.15(ex)144 718.8 S 2.928
+(ternal commands in).15 F -.2(vo)-.4 G -.1(ke).2 G 5.429(db).1 G 5.429
+(yt)-5.429 G 2.929(he programmable completion f)-5.429 F 2.929
+(acilities \(see)-.1 F F1(Pr)5.429 E(ogrammable)-.18 E(Completion)144
+730.8 Q F0(belo)2.5 E(w\).)-.25 E(GNU Bash-4.0)72 768 Q(2009 February 7)
+140.96 E(10)190.95 E 0 Cg EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(COMP_W)108 84 Q(ORDBREAKS)-.1 E F0 1.336
+(The set of characters that the)144 96 R F1 -.18(re)3.836 G(adline).18 E
+F0 1.336(library treats as w)3.836 F 1.335
+(ord separators when performing w)-.1 F(ord)-.1 E 3.125(completion. If)
+144 108 R/F2 9/Times-Bold@0 SF(COMP_W)3.125 E(ORDBREAKS)-.09 E F0 .626
+(is unset, it loses its special properties, e)2.875 F -.15(ve)-.25 G
+3.126(ni).15 G 3.126(fi)-3.126 G 3.126(ti)-3.126 G 3.126(ss)-3.126 G
+(ubse-)-3.126 E(quently reset.)144 120 Q F1(COMP_W)108 136.8 Q(ORDS)-.1
+E F0 .654(An array v)144 148.8 R .654(ariable \(see)-.25 F F1(Arrays)
+3.154 E F0(belo)3.154 E .654(w\) consisting of the indi)-.25 F .653
+(vidual w)-.25 F .653(ords in the current command)-.1 F 3.537(line. The)
+144 160.8 R 1.037(line is split into w)3.537 F 1.037(ords as)-.1 F F1
+-.18(re)3.537 G(adline).18 E F0 -.1(wo)3.537 G 1.037
+(uld split it, using).1 F F1(COMP_W)3.538 E(ORDBREAKS)-.1 E F0(as)3.538
+E .832(described abo)144 172.8 R -.15(ve)-.15 G 5.832(.T).15 G .832
+(his v)-5.832 F .832(ariable is a)-.25 F -.25(va)-.2 G .831
+(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.331
+(db).1 G 3.331(yt)-3.331 G .831(he programmable)-3.331 F(completion f)
+144 184.8 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18
+E F0(belo)2.5 E(w\).)-.25 E F1(DIRST)108 201.6 Q -.55(AC)-.9 G(K).55 E
+F0 2.26(An array v)144 213.6 R 2.26(ariable \(see)-.25 F F1(Arrays)4.76
+E F0(belo)4.76 E 2.26
+(w\) containing the current contents of the directory stack.)-.25 F
+1.095(Directories appear in the stack in the order the)144 225.6 R 3.594
+(ya)-.15 G 1.094(re displayed by the)-3.594 F F1(dirs)3.594 E F0 -.2(bu)
+3.594 G 3.594(iltin. Assigning).2 F(to)3.594 E 1.431
+(members of this array v)144 237.6 R 1.432
+(ariable may be used to modify directories already in the stack, b)-.25
+F 1.432(ut the)-.2 F F1(pushd)144 249.6 Q F0(and)2.746 E F1(popd)2.746 E
+F0 -.2(bu)2.746 G .246(iltins must be used to add and remo).2 F .546
+-.15(ve d)-.15 H 2.746(irectories. Assignment).15 F .246(to this v)2.746
+F(ariable)-.25 E .35(will not change the current directory)144 261.6 R
+5.35(.I)-.65 G(f)-5.35 E F2(DIRST)2.85 E -.495(AC)-.81 G(K).495 E F0 .35
+(is unset, it loses its special properties, e)2.6 F -.15(ve)-.25 G 2.851
+(ni).15 G(f)-2.851 E(it is subsequently reset.)144 273.6 Q F1(EUID)108
+290.4 Q F0 1.104(Expands to the ef)11 F(fecti)-.25 E 1.403 -.15(ve u)
+-.25 H 1.103(ser ID of the current user).15 F 3.603(,i)-.4 G 1.103
+(nitialized at shell startup.)-3.603 F 1.103(This v)6.103 F 1.103
+(ariable is)-.25 F(readonly)144 302.4 Q(.)-.65 E F1(FUNCN)108 319.2 Q
+(AME)-.2 E F0 .478(An array v)144 331.2 R .479
+(ariable containing the names of all shell functions currently in the e)
+-.25 F -.15(xe)-.15 G .479(cution call stack.).15 F .277
+(The element with inde)144 343.2 R 2.777(x0i)-.15 G 2.777(st)-2.777 G
+.276(he name of an)-2.777 F 2.776(yc)-.15 G(urrently-e)-2.776 E -.15(xe)
+-.15 G .276(cuting shell function.).15 F .276(The bottom-most)5.276 F
+.25(element is)144 355.2 R/F3 10/Courier@0 SF("main")2.75 E F0 5.25(.T)C
+.25(his v)-5.25 F .25(ariable e)-.25 F .25
+(xists only when a shell function is e)-.15 F -.15(xe)-.15 G 2.75
+(cuting. Assignments).15 F(to)2.75 E F2(FUNCN)144 367.2 Q(AME)-.18 E F0
+(ha)2.635 E .685 -.15(ve n)-.2 H 2.885(oe).15 G -.25(ff)-2.885 G .385
+(ect and return an error status.).25 F(If)5.385 E F2(FUNCN)2.885 E(AME)
+-.18 E F0 .384(is unset, it loses its special)2.634 F(properties, e)144
+379.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)
+-2.5 G(ubsequently reset.)-2.5 E F1(GR)108 396 Q(OUPS)-.3 E F0 1.228
+(An array v)144 408 R 1.228(ariable containing the list of groups of wh\
+ich the current user is a member)-.25 F 6.229(.A)-.55 G(ssign-)-6.229 E
+.597(ments to)144 420 R F2(GR)3.097 E(OUPS)-.27 E F0(ha)2.847 E .897
+-.15(ve n)-.2 H 3.097(oe).15 G -.25(ff)-3.097 G .597
+(ect and return an error status.).25 F(If)5.597 E F2(GR)3.097 E(OUPS)
+-.27 E F0 .597(is unset, it loses its spe-)2.847 F(cial properties, e)
+144 432 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5
+(ss)-2.5 G(ubsequently reset.)-2.5 E F1(HISTCMD)108 448.8 Q F0 .355
+(The history number)144 460.8 R 2.855(,o)-.4 G 2.855(ri)-2.855 G(nde)
+-2.855 E 2.856(xi)-.15 G 2.856(nt)-2.856 G .356
+(he history list, of the current command.)-2.856 F(If)5.356 E F2
+(HISTCMD)2.856 E F0 .356(is unset, it)2.606 F
+(loses its special properties, e)144 472.8 Q -.15(ve)-.25 G 2.5(ni).15 G
+2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1
+(HOSTN)108 489.6 Q(AME)-.2 E F0
+(Automatically set to the name of the current host.)144 501.6 Q F1
+(HOSTTYPE)108 518.4 Q F0 .223(Automatically set to a string that unique\
+ly describes the type of machine on which)144 530.4 R F1(bash)2.722 E F0
+.222(is e)2.722 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 542.4 R
+(def)2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 559.2 Q F0
+1.408(Each time this parameter is referenced, the shell substitutes a d\
+ecimal number representing the)144 571.2 R .078(current sequential line\
+ number \(starting with 1\) within a script or function.)144 583.2 R
+.078(When not in a script or)5.078 F .306(function, the v)144 595.2 R
+.306(alue substituted is not guaranteed to be meaningful.)-.25 F(If)
+5.307 E F2(LINENO)2.807 E F0 .307(is unset, it loses its)2.557 F
+(special properties, e)144 607.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)
+-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(MA)108
+624 Q(CHTYPE)-.55 E F0 .898(Automatically set to a string that fully de\
+scribes the system type on which)144 636 R F1(bash)3.398 E F0 .898(is e)
+3.398 F -.15(xe)-.15 G .898(cuting, in).15 F(the standard GNU)144 648 Q
+/F4 10/Times-Italic@0 SF(cpu-company-system)2.5 E F0 2.5(format. The)2.5
+F(def)2.5 E(ault is system-dependent.)-.1 E F1(OLDPWD)108 664.8 Q F0
+(The pre)144 676.8 Q(vious w)-.25 E(orking directory as set by the)-.1 E
+F1(cd)2.5 E F0(command.)2.5 E F1(OPT)108 693.6 Q(ARG)-.9 E F0 1.626
+(The v)144 705.6 R 1.627(alue of the last option ar)-.25 F 1.627
+(gument processed by the)-.18 F F1(getopts)4.127 E F0 -.2(bu)4.127 G
+1.627(iltin command \(see).2 F F2(SHELL)4.127 E -.09(BU)144 717.6 S(IL)
+.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash-4.0)72
+768 Q(2009 February 7)140.96 E(11)190.95 E 0 Cg EP
+%%Page: 12 12
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(OPTIND)108 84 Q F0 1.652(The inde)144 96 R
+4.152(xo)-.15 G 4.152(ft)-4.152 G 1.652(he ne)-4.152 F 1.652(xt ar)-.15
+F 1.652(gument to be processed by the)-.18 F F1(getopts)4.151 E F0 -.2
+(bu)4.151 G 1.651(iltin command \(see).2 F/F2 9/Times-Bold@0 SF(SHELL)
+4.151 E -.09(BU)144 108 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E
+(w\).)-.25 E F1(OSTYPE)108 124.8 Q F0 .329(Automatically set to a strin\
+g that describes the operating system on which)144 136.8 R F1(bash)2.83
+E F0 .33(is e)2.83 F -.15(xe)-.15 G 2.83(cuting. The).15 F(def)144 148.8
+Q(ault is system-dependent.)-.1 E F1(PIPEST)108 165.6 Q -.95(AT)-.9 G
+(US).95 E F0 .61(An array v)144 177.6 R .61(ariable \(see)-.25 F F1
+(Arrays)3.11 E F0(belo)3.11 E .61(w\) containing a list of e)-.25 F .61
+(xit status v)-.15 F .61(alues from the processes in)-.25 F
+(the most-recently-e)144 189.6 Q -.15(xe)-.15 G(cuted fore).15 E
+(ground pipeline \(which may contain only a single command\).)-.15 E F1
+(PPID)108 206.4 Q F0(The process ID of the shell')12.67 E 2.5(sp)-.55 G
+2.5(arent. This)-2.5 F -.25(va)2.5 G(riable is readonly).25 E(.)-.65 E
+F1(PWD)108 223.2 Q F0(The current w)12.67 E
+(orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1
+(RANDOM)108 240 Q F0 .565
+(Each time this parameter is referenced, a random inte)144 252 R .566
+(ger between 0 and 32767 is generated.)-.15 F(The)5.566 E .01
+(sequence of random numbers may be initialized by assigning a v)144 264
+R .01(alue to)-.25 F F2(RANDOM)2.51 E/F3 9/Times-Roman@0 SF(.)A F0(If)
+4.51 E F2(RANDOM)2.51 E F0(is)2.26 E
+(unset, it loses its special properties, e)144 276 Q -.15(ve)-.25 G 2.5
+(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
+-2.5 E F1(REPL)108 292.8 Q(Y)-.92 E F0
+(Set to the line of input read by the)144 304.8 Q F1 -.18(re)2.5 G(ad)
+.18 E F0 -.2(bu)2.5 G(iltin command when no ar).2 E
+(guments are supplied.)-.18 E F1(SECONDS)108 321.6 Q F0 .795(Each time \
+this parameter is referenced, the number of seconds since shell in)144
+333.6 R -.2(vo)-.4 G .795(cation is returned.).2 F .713(If a v)144 345.6
+R .712(alue is assigned to)-.25 F F2(SECONDS)3.212 E F3(,)A F0 .712
+(the v)2.962 F .712
+(alue returned upon subsequent references is the number)-.25 F .407
+(of seconds since the assignment plus the v)144 357.6 R .408
+(alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .408
+(is unset, it loses its special)2.658 F(properties, e)144 369.6 Q -.15
+(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
+(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 386.4 Q F0 3.263(Ac)144
+398.4 S .763(olon-separated list of enabled shell options.)-3.263 F .763
+(Each w)5.763 F .763(ord in the list is a v)-.1 F .763(alid ar)-.25 F
+.763(gument for the)-.18 F F1<ad6f>144 410.4 Q F0 1.173(option to the)
+3.673 F F1(set)3.673 E F0 -.2(bu)3.673 G 1.173(iltin command \(see).2 F
+F2 1.174(SHELL B)3.674 F(UIL)-.09 E 1.174(TIN COMMANDS)-.828 F F0(belo)
+3.424 E 3.674(w\). The)-.25 F(options)3.674 E .02(appearing in)144 422.4
+R F2(SHELLOPTS)2.52 E F0 .019(are those reported as)2.27 F/F4 10
+/Times-Italic@0 SF(on)2.749 E F0(by)2.759 E F1 .019(set \255o)2.519 F F0
+5.019(.I)C 2.519(ft)-5.019 G .019(his v)-2.519 F .019
+(ariable is in the en)-.25 F(vironment)-.4 E(when)144 434.4 Q F1(bash)
+3.141 E F0 .642(starts up, each shell option in the list will be enable\
+d before reading an)3.141 F 3.142(ys)-.15 G .642(tartup \214les.)-3.142
+F(This v)144 446.4 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108
+463.2 Q(VL)-.92 E F0(Incremented by one each time an instance of)144
+475.2 Q F1(bash)2.5 E F0(is started.)2.5 E F1(UID)108 492 Q F0
+(Expands to the user ID of the current user)17.67 E 2.5(,i)-.4 G
+(nitialized at shell startup.)-2.5 E(This v)5 E(ariable is readonly)-.25
+E(.)-.65 E .994(The follo)108 508.8 R .994(wing v)-.25 F .994
+(ariables are used by the shell.)-.25 F .994(In some cases,)5.994 F F1
+(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .993
+(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 520.8
+Q -.65(w.)-.25 G F1 -.3(BA)108 537.6 S(SH_ENV).3 E F0 .505
+(If this parameter is set when)144 549.6 R F1(bash)3.005 E F0 .505(is e)
+3.005 F -.15(xe)-.15 G .506(cuting a shell script, its v).15 F .506
+(alue is interpreted as a \214lename)-.25 F .355
+(containing commands to initialize the shell, as in)144 561.6 R F4
+(~/.bashr)2.855 E(c)-.37 E F0 5.354(.T).31 G .354(he v)-5.354 F .354
+(alue of)-.25 F F2 -.27(BA)2.854 G(SH_ENV).27 E F0 .354(is subjected)
+2.604 F .525(to parameter e)144 573.6 R .525
+(xpansion, command substitution, and arithmetic e)-.15 F .525
+(xpansion before being interpreted)-.15 F(as a \214le name.)144 585.6 Q
+F2 -.666(PA)5 G(TH)-.189 E F0
+(is not used to search for the resultant \214le name.)2.25 E F1(CDP)108
+597.6 Q -.95(AT)-.74 G(H).95 E F0 1.248(The search path for the)144
+609.6 R F1(cd)3.748 E F0 3.748(command. This)3.748 F 1.247
+(is a colon-separated list of directories in which the)3.748 F 3.795
+(shell looks for destination directories speci\214ed by the)144 621.6 R
+F1(cd)6.295 E F0 6.296(command. A)6.296 F 3.796(sample v)6.296 F 3.796
+(alue is)-.25 F/F5 10/Courier@0 SF(".:~:/usr")144 633.6 Q F0(.)A F1
+(COLUMNS)108 645.6 Q F0 .425(Used by the)144 657.6 R F1(select)2.925 E
+F0 -.2(bu)2.925 G .425(iltin command to determine the terminal width wh\
+en printing selection lists.).2 F
+(Automatically set upon receipt of a SIGWINCH.)144 669.6 Q F1(COMPREPL)
+108 681.6 Q(Y)-.92 E F0 .847(An array v)144 693.6 R .848
+(ariable from which)-.25 F F1(bash)3.348 E F0 .848
+(reads the possible completions generated by a shell function)3.348 F
+(in)144 705.6 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
+(he programmable completion f)-2.5 E(acility \(see)-.1 E F1(Pr)2.5 E
+(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E(GNU Bash-4.0)72
+768 Q(2009 February 7)140.96 E(12)190.95 E 0 Cg EP
+%%Page: 13 13
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(EMA)108 84 Q(CS)-.55 E F0(If)144 96 Q F1
+(bash)2.536 E F0 .036(\214nds this v)2.536 F .036(ariable in the en)-.25
+F .036(vironment when the shell starts with v)-.4 F(alue)-.25 E/F2 10
+/Courier@0 SF(t)2.535 E F0 2.535(,i)C 2.535(ta)-2.535 G .035
+(ssumes that the)-2.535 F(shell is running in an emacs shell b)144 108 Q
+(uf)-.2 E(fer and disables line editing.)-.25 E F1(FCEDIT)108 120 Q F0
+(The def)144 132 Q(ault editor for the)-.1 E F1(fc)2.5 E F0 -.2(bu)2.5 G
+(iltin command.).2 E F1(FIGNORE)108 144 Q F0 2.598(Ac)144 156 S .098
+(olon-separated list of suf)-2.598 F<8c78>-.25 E .098
+(es to ignore when performing \214lename completion \(see)-.15 F/F3 9
+/Times-Bold@0 SF(READLINE)2.599 E F0(belo)144 168 Q 2.705(w\). A)-.25 F
+.205(\214lename whose suf)2.705 F .205
+(\214x matches one of the entries in)-.25 F F3(FIGNORE)2.705 E F0 .205
+(is e)2.455 F .204(xcluded from the list)-.15 F(of matched \214lenames.)
+144 180 Q 2.5(As)5 G(ample v)-2.5 E(alue is)-.25 E F2(".o:~")2.5 E F0(.)
+A F1(GLOBIGNORE)108 192 Q F0 3.118(Ac)144 204 S .618(olon-separated lis\
+t of patterns de\214ning the set of \214lenames to be ignored by pathna\
+me e)-3.118 F(xpan-)-.15 E 3.132(sion. If)144 216 R 3.132<618c>3.132 G
+.632(lename matched by a pathname e)-3.132 F .632
+(xpansion pattern also matches one of the patterns in)-.15 F F3
+(GLOBIGNORE)144 228 Q/F4 9/Times-Roman@0 SF(,)A F0(it is remo)2.25 E
+-.15(ve)-.15 G 2.5(df).15 G(rom the list of matches.)-2.5 E F1
+(HISTCONTR)108 240 Q(OL)-.3 E F0 2.653(Ac)144 252 S .153
+(olon-separated list of v)-2.653 F .153(alues controlling ho)-.25 F
+2.653(wc)-.25 G .153(ommands are sa)-2.653 F -.15(ve)-.2 G 2.653(do).15
+G 2.653(nt)-2.653 G .153(he history list.)-2.653 F .154(If the list)
+5.153 F .491(of v)144 264 R .491(alues includes)-.25 F/F5 10
+/Times-Italic@0 SF(ignor)2.991 E(espace)-.37 E F0 2.991(,l).18 G .491
+(ines which be)-2.991 F .491(gin with a)-.15 F F1(space)2.991 E F0 .49
+(character are not sa)2.991 F -.15(ve)-.2 G 2.99(di).15 G 2.99(nt)-2.99
+G .49(he his-)-2.99 F .557(tory list.)144 276 R 3.057(Av)5.557 G .557
+(alue of)-3.307 F F5(ignor)3.067 E(edups)-.37 E F0 .557
+(causes lines matching the pre)3.327 F .558
+(vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.959
+(Av)144 288 S .459(alue of)-3.209 F F5(ignor)2.969 E(eboth)-.37 E F0
+.459(is shorthand for)3.239 F F5(ignor)2.959 E(espace)-.37 E F0(and)
+2.959 E F5(ignor)2.958 E(edups)-.37 E F0 5.458(.A)C -.25(va)-2.5 G .458
+(lue of).25 F F5(er)2.958 E(asedups)-.15 E F0(causes)2.958 E .698
+(all pre)144 300 R .698
+(vious lines matching the current line to be remo)-.25 F -.15(ve)-.15 G
+3.198(df).15 G .699(rom the history list before that line is)-3.198 F
+(sa)144 312 Q -.15(ve)-.2 G 4.297(d. An).15 F 4.297(yv)-.15 G 1.797
+(alue not in the abo)-4.547 F 2.097 -.15(ve l)-.15 H 1.797
+(ist is ignored.).15 F(If)6.797 E F1(HISTCONTR)4.297 E(OL)-.3 E F0 1.797
+(is unset, or does not)4.297 F .612(include a v)144 324 R .612(alid v)
+-.25 F .612(alue, all lines read by the shell parser are sa)-.25 F -.15
+(ve)-.2 G 3.112(do).15 G 3.112(nt)-3.112 G .612
+(he history list, subject to the)-3.112 F -.25(va)144 336 S .986(lue of)
+.25 F F1(HISTIGNORE)3.486 E F0 5.986(.T)C .986
+(he second and subsequent lines of a multi-line compound command)-5.986
+F(are not tested, and are added to the history re)144 348 Q -.05(ga)-.15
+G(rdless of the v).05 E(alue of)-.25 E F1(HISTCONTR)2.5 E(OL)-.3 E F0(.)
+A F1(HISTFILE)108 360 Q F0 .181
+(The name of the \214le in which command history is sa)144 372 R -.15
+(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F3(HIST)2.681 E(OR)-.162 E(Y)
+-.315 E F0(belo)2.431 E 2.682(w\). The)-.25 F(def)2.682 E .182(ault v)
+-.1 F(alue)-.25 E(is)144 384 Q F5(~/.bash_history)2.5 E F0 5(.I)C 2.5
+(fu)-5 G(nset, the command history is not sa)-2.5 E -.15(ve)-.2 G 2.5
+(dw).15 G(hen an interacti)-2.5 E .3 -.15(ve s)-.25 H(hell e).15 E
+(xits.)-.15 E F1(HISTFILESIZE)108 396 Q F0 1.623
+(The maximum number of lines contained in the history \214le.)144 408 R
+1.622(When this v)6.623 F 1.622(ariable is assigned a)-.25 F -.25(va)144
+420 S .305(lue, the history \214le is truncated, if necessary).25 F
+2.805(,b)-.65 G 2.805(yr)-2.805 G(emo)-2.805 E .305
+(ving the oldest entries, to contain no more)-.15 F .602
+(than that number of lines.)144 432 R .602(The def)5.602 F .602(ault v)
+-.1 F .602(alue is 500.)-.25 F .601
+(The history \214le is also truncated to this size)5.602 F
+(after writing it when an interacti)144 444 Q .3 -.15(ve s)-.25 H
+(hell e).15 E(xits.)-.15 E F1(HISTIGNORE)108 456 Q F0 2.657(Ac)144 468 S
+.157(olon-separated list of patterns used to decide which command lines\
+ should be sa)-2.657 F -.15(ve)-.2 G 2.658(do).15 G 2.658(nt)-2.658 G
+.158(he his-)-2.658 F .708(tory list.)144 480 R .708
+(Each pattern is anchored at the be)5.708 F .707
+(ginning of the line and must match the complete line)-.15 F .625
+(\(no implicit `)144 492 R F1(*)A F0 3.125('i)C 3.125(sa)-3.125 G 3.125
+(ppended\). Each)-3.125 F .626(pattern is tested ag)3.125 F .626
+(ainst the line after the checks speci\214ed by)-.05 F F1(HISTCONTR)144
+504 Q(OL)-.3 E F0 1.155(are applied.)3.655 F 1.154
+(In addition to the normal shell pattern matching characters, `)6.154 F
+F1(&)A F0(')A 2.514(matches the pre)144 516 R 2.514(vious history line.)
+-.25 F(`)7.514 E F1(&)A F0 5.014('m)C 2.514
+(ay be escaped using a backslash; the backslash is)-5.014 F(remo)144 528
+Q -.15(ve)-.15 G 3.353(db).15 G .853(efore attempting a match.)-3.353 F
+.852(The second and subsequent lines of a multi-line compound)5.852 F
+(command are not tested, and are added to the history re)144 540 Q -.05
+(ga)-.15 G(rdless of the v).05 E(alue of)-.25 E F1(HISTIGNORE)2.5 E F0
+(.)A F1(HISTSIZE)108 552 Q F0 1.942
+(The number of commands to remember in the command history \(see)144 564
+R F3(HIST)4.443 E(OR)-.162 E(Y)-.315 E F0(belo)4.193 E 4.443(w\). The)
+-.25 F(def)144 576 Q(ault v)-.1 E(alue is 500.)-.25 E F1(HISTTIMEFORMA)
+108 588 Q(T)-.95 E F0 .952(If this v)144 600 R .952
+(ariable is set and not null, its v)-.25 F .951
+(alue is used as a format string for)-.25 F F5(strftime)3.451 E F0 .951
+(\(3\) to print the)B .672
+(time stamp associated with each history entry displayed by the)144 612
+R F1(history)3.173 E F0 -.2(bu)3.173 G 3.173(iltin. If).2 F .673(this v)
+3.173 F .673(ariable is)-.25 F .144
+(set, time stamps are written to the history \214le so the)144 624 R
+2.644(ym)-.15 G .144(ay be preserv)-2.644 F .144
+(ed across shell sessions.)-.15 F(This)5.144 E(uses the history comment\
+ character to distinguish timestamps from other history lines.)144 636 Q
+F1(HOME)108 648 Q F0 1.27
+(The home directory of the current user; the def)144 660 R 1.27(ault ar)
+-.1 F 1.27(gument for the)-.18 F F1(cd)3.77 E F0 -.2(bu)3.77 G 1.27
+(iltin command.).2 F(The)6.27 E -.25(va)144 672 S(lue of this v).25 E
+(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F1
+(HOSTFILE)108 684 Q F0 1.015
+(Contains the name of a \214le in the same format as)144 696 R F5
+(/etc/hosts)5.181 E F0 1.015(that should be read when the shell)5.181 F
+.55(needs to complete a hostname.)144 708 R .551
+(The list of possible hostname completions may be changed while)5.551 F
+1.059(the shell is running; the ne)144 720 R 1.059
+(xt time hostname completion is attempted after the v)-.15 F 1.058
+(alue is changed,)-.25 F(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E
+(13)190.95 E 0 Cg EP
+%%Page: 14 14
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(bash)144 84 Q F0 .715
+(adds the contents of the ne)3.215 F 3.215<778c>-.25 G .715(le to the e)
+-3.215 F .715(xisting list.)-.15 F(If)5.716 E/F2 9/Times-Bold@0 SF
+(HOSTFILE)3.216 E F0 .716(is set, b)2.966 F .716(ut has no v)-.2 F
+(alue,)-.25 E F1(bash)144 96 Q F0 2.236(attempts to read)4.736 F/F3 10
+/Times-Italic@0 SF(/etc/hosts)6.401 E F0 2.235
+(to obtain the list of possible hostname completions.)6.401 F(When)7.235
+E F2(HOSTFILE)144 108 Q F0(is unset, the hostname list is cleared.)2.25
+E F1(IFS)108 120 Q F0(The)20.44 E F3 .555(Internal F)3.635 F .555
+(ield Separ)-.45 F(ator)-.15 E F0 .555(that is used for w)3.785 F .556
+(ord splitting after e)-.1 F .556(xpansion and to split lines into)-.15
+F -.1(wo)144 132 S(rds with the).1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2
+(bu)2.5 G(iltin command.).2 E(The def)5 E(ault v)-.1 E(alue is `)-.25 E
+(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E F1(IGNOREEOF)108 144 Q
+F0 .503(Controls the action of an interacti)144 156 R .803 -.15(ve s)
+-.25 H .503(hell on receipt of an).15 F F2(EOF)3.003 E F0 .503
+(character as the sole input.)2.753 F .503(If set,)5.503 F .426(the v)
+144 168 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F2
+(EOF)3.076 E F0 .426
+(characters which must be typed as the \214rst characters)2.676 F .303
+(on an input line before)144 180 R F1(bash)2.802 E F0 -.15(ex)2.802 G
+2.802(its. If).15 F .302(the v)2.802 F .302(ariable e)-.25 F .302
+(xists b)-.15 F .302(ut does not ha)-.2 F .602 -.15(ve a n)-.2 H .302
+(umeric v).15 F .302(alue, or has)-.25 F(no v)144 192 Q(alue, the def)
+-.25 E(ault v)-.1 E(alue is 10.)-.25 E(If it does not e)5 E(xist,)-.15 E
+F2(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F1
+(INPUTRC)108 204 Q F0 1.435(The \214lename for the)144 216 R F1 -.18(re)
+3.936 G(adline).18 E F0 1.436(startup \214le, o)3.936 F -.15(ve)-.15 G
+1.436(rriding the def).15 F 1.436(ault of)-.1 F F3(~/.inputr)5.602 E(c)
+-.37 E F0(\(see)5.602 E F2(READLINE)3.936 E F0(belo)144 228 Q(w\).)-.25
+E F1(LANG)108 240 Q F0 1.24(Used to determine the locale cate)7.11 F
+1.239(gory for an)-.15 F 3.739(yc)-.15 G(ate)-3.739 E 1.239
+(gory not speci\214cally selected with a v)-.15 F(ariable)-.25 E
+(starting with)144 252 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 264 Q F0 .764
+(This v)144 276 R .764(ariable o)-.25 F -.15(ve)-.15 G .764
+(rrides the v).15 F .764(alue of)-.25 F F1(LANG)3.264 E F0 .764(and an)
+3.264 F 3.264(yo)-.15 G(ther)-3.264 E F1(LC_)3.264 E F0 -.25(va)3.264 G
+.764(riable specifying a locale cate-).25 F(gory)144 288 Q(.)-.65 E F1
+(LC_COLLA)108 300 Q(TE)-.95 E F0 .412(This v)144 312 R .412(ariable det\
+ermines the collation order used when sorting the results of pathname e)
+-.25 F(xpansion,)-.15 E 1.464(and determines the beha)144 324 R 1.464
+(vior of range e)-.2 F 1.465(xpressions, equi)-.15 F -.25(va)-.25 G
+1.465(lence classes, and collating sequences).25 F(within pathname e)144
+336 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 348 Q F0
+1.936(This v)144 360 R 1.936
+(ariable determines the interpretation of characters and the beha)-.25 F
+1.935(vior of character classes)-.2 F(within pathname e)144 372 Q
+(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 384 Q(GES)-.55 E
+F0(This v)144 396 Q(ariable determines the locale used to translate dou\
+ble-quoted strings preceded by a)-.25 E F1($)2.5 E F0(.)A F1(LC_NUMERIC)
+108 408 Q F0(This v)144 420 Q(ariable determines the locale cate)-.25 E
+(gory used for number formatting.)-.15 E F1(LINES)108 432 Q F0 1.218
+(Used by the)5.99 F F1(select)3.718 E F0 -.2(bu)3.718 G 1.219(iltin com\
+mand to determine the column length for printing selection lists.).2 F
+(Automatically set upon receipt of a SIGWINCH.)144 444 Q F1(MAIL)108 456
+Q F0 .188(If this parameter is set to a \214le name and the)8.78 F F2
+(MAILP)2.687 E -.855(AT)-.666 G(H).855 E F0 -.25(va)2.437 G .187
+(riable is not set,).25 F F1(bash)2.687 E F0 .187(informs the user)2.687
+F(of the arri)144 468 Q -.25(va)-.25 G 2.5(lo).25 G 2.5(fm)-2.5 G
+(ail in the speci\214ed \214le.)-2.5 E F1(MAILCHECK)108 480 Q F0 .098
+(Speci\214es ho)144 492 R 2.598(wo)-.25 G .098(ften \(in seconds\))
+-2.598 F F1(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def)
+5.098 F .098(ault is 60 seconds.)-.1 F .099(When it is time)5.099 F .224
+(to check for mail, the shell does so before displaying the primary pro\
+mpt.)144 504 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F .066
+(or set to a v)144 516 R .066(alue that is not a number greater than or\
+ equal to zero, the shell disables mail checking.)-.25 F F1(MAILP)108
+528 Q -.95(AT)-.74 G(H).95 E F0 2.815(Ac)144 540 S .314
+(olon-separated list of \214le names to be check)-2.815 F .314
+(ed for mail.)-.1 F .314(The message to be printed when mail)5.314 F
+(arri)144 552 Q -.15(ve)-.25 G 3.42(si).15 G 3.42(nap)-3.42 G .92(artic\
+ular \214le may be speci\214ed by separating the \214le name from the m\
+essage with a)-3.42 F 2.808(`?'. When)144 564 R .308(used in the te)
+2.808 F .308(xt of the message,)-.15 F F1($_)2.808 E F0 -.15(ex)2.808 G
+.308(pands to the name of the current mail\214le.).15 F(Exam-)5.307 E
+(ple:)144 576 Q F1(MAILP)144 588 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A
+(ar/mail/bfox?"Y)-.25 E(ou ha)-1.1 E .3 -.15(ve m)-.2 H
+(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 600 Q F0 .388
+(supplies a def)2.888 F .388(ault v)-.1 F .388(alue for this v)-.25 F
+.388(ariable, b)-.25 F .389
+(ut the location of the user mail \214les that it uses is)-.2 F
+(system dependent \(e.g., /v)144 612 Q(ar/mail/)-.25 E F1($USER)A F0
+(\).)A F1(OPTERR)108 624 Q F0 .39(If set to the v)144 636 R .39(alue 1,)
+-.25 F F1(bash)2.89 E F0 .389(displays error messages generated by the)
+2.889 F F1(getopts)2.889 E F0 -.2(bu)2.889 G .389(iltin command \(see).2
+F F2 .359(SHELL B)144 648 R(UIL)-.09 E .359(TIN COMMANDS)-.828 F F0
+(belo)2.609 E(w\).)-.25 E F2(OPTERR)5.359 E F0 .36
+(is initialized to 1 each time the shell is in)2.609 F -.2(vo)-.4 G -.1
+(ke).2 G(d).1 E(or a shell script is e)144 660 Q -.15(xe)-.15 G(cuted.)
+.15 E F1 -.74(PA)108 672 S(TH)-.21 E F0 .588
+(The search path for commands.)9.91 F .587
+(It is a colon-separated list of directories in which the shell looks)
+5.588 F .471(for commands \(see)144 684 R F2 .471(COMMAND EXECUTION)
+2.971 F F0(belo)2.722 E 2.972(w\). A)-.25 F .472
+(zero-length \(null\) directory name in the)2.972 F -.25(va)144 696 S
+.345(lue of).25 F F1 -.74(PA)2.845 G(TH)-.21 E F0 .345
+(indicates the current directory)2.845 F 5.345(.A)-.65 G .344
+(null directory name may appear as tw)-2.5 F 2.844(oa)-.1 G(djacent)
+-2.844 E .867(colons, or as an initial or trailing colon.)144 708 R .868
+(The def)5.868 F .868(ault path is system-dependent, and is set by the)
+-.1 F 26.329(administrator who installs)144 720 R F1(bash)28.829 E F0
+31.329(.A)C 26.328(common v)-2.501 F 26.328(alue is)-.25 F(GNU Bash-4.0)
+72 768 Q(2009 February 7)140.96 E(14)190.95 E 0 Cg EP
+%%Page: 15 15
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Courier@0 SF
+(/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin)144 84 Q F0(.)A/F2
+10/Times-Bold@0 SF(POSIXL)108 96 Q(Y_CORRECT)-.92 E F0 .471(If this v)
+144 108 R .471(ariable is in the en)-.25 F .471(vironment when)-.4 F F2
+(bash)2.971 E F0 .471(starts, the shell enters)2.971 F/F3 10
+/Times-Italic@0 SF .472(posix mode)2.972 F F0 .472(before reading)2.972
+F .011(the startup \214les, as if the)144 120 R F2(\255\255posix)2.511 E
+F0(in)2.511 E -.2(vo)-.4 G .011(cation option had been supplied.).2 F
+.011(If it is set while the shell is)5.011 F(running,)144 132 Q F2(bash)
+2.5 E F0(enables)2.5 E F3(posix mode)2.5 E F0 2.5(,a)C 2.5(si)-2.5 G 2.5
+(ft)-2.5 G(he command)-2.5 E F1(set -o posix)2.5 E F0(had been e)2.5 E
+-.15(xe)-.15 G(cuted.).15 E F2(PR)108 144 Q(OMPT_COMMAND)-.3 E F0
+(If set, the v)144 156 Q(alue is e)-.25 E -.15(xe)-.15 G
+(cuted as a command prior to issuing each primary prompt.).15 E F2(PR)
+108 168 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676
+(If set to a number greater than zero, the v)144 180 R .676
+(alue is used as the number of trailing directory compo-)-.25 F .34
+(nents to retain when e)144 192 R .34(xpanding the)-.15 F F2 .339
+(\\w and \\W pr)2.84 F .339(ompt string escapes \(see)-.18 F/F4 9
+/Times-Bold@0 SF(PR)2.839 E(OMPTING)-.27 E F0(belo)2.589 E(w\).)-.25 E
+(Characters remo)144 204 Q -.15(ve)-.15 G 2.5(da).15 G
+(re replaced with an ellipsis.)-2.5 E F2(PS1)108 216 Q F0 .064(The v)
+19.33 F .065(alue of this parameter is e)-.25 F .065(xpanded \(see)-.15
+F F4(PR)2.565 E(OMPTING)-.27 E F0(belo)2.315 E .065
+(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 228 R
+(def)2.5 E(ault v)-.1 E(alue is `)-.25 E(`)-.74 E F2(\\s\255\\v\\$)A F0
+-.74('')2.5 G(.).74 E F2(PS2)108 240 Q F0 .005(The v)19.33 F .005
+(alue of this parameter is e)-.25 F .005(xpanded as with)-.15 F F2(PS1)
+2.505 E F0 .004(and used as the secondary prompt string.)2.505 F(The)
+5.004 E(def)144 252 Q(ault is `)-.1 E(`)-.74 E F2(>)A F0 -.74('')2.5 G
+(.).74 E F2(PS3)108 264 Q F0 1.115(The v)19.33 F 1.115
+(alue of this parameter is used as the prompt for the)-.25 F F2(select)
+3.615 E F0 1.116(command \(see)3.616 F F4 1.116(SHELL GRAM-)3.616 F(MAR)
+144 276 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F2(PS4)108 288 Q F0
+1.099(The v)19.33 F 1.099(alue of this parameter is e)-.25 F 1.099
+(xpanded as with)-.15 F F2(PS1)3.599 E F0 1.099(and the v)3.599 F 1.098
+(alue is printed before each com-)-.25 F(mand)144 300 Q F2(bash)3.725 E
+F0 1.225(displays during an e)3.725 F -.15(xe)-.15 G 1.225
+(cution trace.).15 F 1.226(The \214rst character of)6.225 F F4(PS4)3.726
+E F0 1.226(is replicated multiple)3.476 F(times, as necessary)144 312 Q
+2.5(,t)-.65 G 2.5(oi)-2.5 G(ndicate multiple le)-2.5 E -.15(ve)-.25 G
+(ls of indirection.).15 E(The def)5 E(ault is `)-.1 E(`)-.74 E F2(+)A F0
+-.74('')2.5 G(.).74 E F2(SHELL)108 324 Q F0 .664
+(The full pathname to the shell is k)144 336 R .664(ept in this en)-.1 F
+.664(vironment v)-.4 F 3.164(ariable. If)-.25 F .663
+(it is not set when the shell)3.164 F(starts,)144 348 Q F2(bash)2.5 E F0
+(assigns to it the full pathname of the current user')2.5 E 2.5(sl)-.55
+G(ogin shell.)-2.5 E F2(TIMEFORMA)108 360 Q(T)-.95 E F0 .826(The v)144
+372 R .826
+(alue of this parameter is used as a format string specifying ho)-.25 F
+3.327(wt)-.25 G .827(he timing information for)-3.327 F .649
+(pipelines pre\214x)144 384 R .649(ed with the)-.15 F F2(time)3.149 E F0
+(reserv)3.149 E .649(ed w)-.15 F .648(ord should be displayed.)-.1 F
+(The)5.648 E F2(%)3.148 E F0 .648(character introduces)3.148 F .711
+(an escape sequence that is e)144 396 R .711(xpanded to a time v)-.15 F
+.712(alue or other information.)-.25 F .712(The escape sequences)5.712 F
+(and their meanings are as follo)144 408 Q
+(ws; the braces denote optional portions.)-.25 E F2(%%)144 426 Q F0 2.5
+(Al)30 G(iteral)-2.5 E F2(%)2.5 E F0(.)A F2(%[)144 438 Q F3(p)A F2
+(][l]R)A F0(The elapsed time in seconds.)11.68 E F2(%[)144 450 Q F3(p)A
+F2(][l]U)A F0(The number of CPU seconds spent in user mode.)11.68 E F2
+(%[)144 462 Q F3(p)A F2(][l]S)A F0
+(The number of CPU seconds spent in system mode.)13.34 E F2(%P)144 474 Q
+F0(The CPU percentage, computed as \(%U + %S\) / %R.)33.89 E .87
+(The optional)144 490.8 R F3(p)3.37 E F0 .87(is a digit specifying the)
+3.37 F F3(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87
+(he number of fractional digits after a decimal)-3.37 F 2.525(point. A)
+144 502.8 R -.25(va)2.525 G .025
+(lue of 0 causes no decimal point or fraction to be output.).25 F .026
+(At most three places after the)5.025 F .538
+(decimal point may be speci\214ed; v)144 514.8 R .538(alues of)-.25 F F3
+(p)3.038 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.537 E
+F3(p)3.037 E F0 .537(is not speci\214ed,)3.037 F(the v)144 526.8 Q
+(alue 3 is used.)-.25 E .667(The optional)144 543.6 R F2(l)3.167 E F0
+.668(speci\214es a longer format, including minutes, of the form)3.168 F
+F3(MM)3.168 E F0(m)A F3(SS)A F0(.)A F3(FF)A F0 3.168(s. The)B -.25(va)
+3.168 G(lue).25 E(of)144 555.6 Q F3(p)2.5 E F0
+(determines whether or not the fraction is included.)2.5 E .001
+(If this v)144 572.4 R .001(ariable is not set,)-.25 F F2(bash)2.501 E
+F0 .001(acts as if it had the v)2.501 F(alue)-.25 E F2($\010\\nr)2.5 E
+(eal\\t%3lR\\nuser\\t%3lU\\nsys%3lS\010)-.18 E F0(.)A .494(If the v)144
+584.4 R .494(alue is null, no timing information is displayed.)-.25 F
+2.994(At)5.494 G .494(railing ne)-2.994 F .494
+(wline is added when the for)-.25 F(-)-.2 E(mat string is displayed.)144
+596.4 Q F2(TMOUT)108 613.2 Q F0 .718(If set to a v)144 625.2 R .717
+(alue greater than zero,)-.25 F F2(TMOUT)3.217 E F0 .717
+(is treated as the def)3.217 F .717(ault timeout for the)-.1 F F2 -.18
+(re)3.217 G(ad).18 E F0 -.2(bu)3.217 G(iltin.).2 E(The)144 637.2 Q F2
+(select)2.542 E F0 .042(command terminates if input does not arri)2.542
+F .342 -.15(ve a)-.25 H(fter).15 E F2(TMOUT)2.542 E F0 .042
+(seconds when input is com-)2.542 F .886(ing from a terminal.)144 649.2
+R .886(In an interacti)5.886 F 1.185 -.15(ve s)-.25 H .885(hell, the v)
+.15 F .885(alue is interpreted as the number of seconds to)-.25 F -.1
+(wa)144 661.2 S .546(it for input after issuing the primary prompt.).1 F
+F2(Bash)5.546 E F0 .546(terminates after w)3.046 F .546
+(aiting for that number of)-.1 F(seconds if input does not arri)144
+673.2 Q -.15(ve)-.25 G(.).15 E F2(TMPDIR)108 690 Q F0 .274(If set,)144
+702 R F2(Bash)2.774 E F0 .274(uses its v)2.774 F .274
+(alue as the name of a directory in which)-.25 F F2(Bash)2.773 E F0 .273
+(creates temporary \214les for the)2.773 F(shell')144 714 Q 2.5(su)-.55
+G(se.)-2.5 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(15)190.95 E
+0 Cg EP
+%%Page: 16 16
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(auto_r)108 84 Q(esume)-.18 E F0 .53(This v)
+144 96 R .53(ariable controls ho)-.25 F 3.03(wt)-.25 G .531
+(he shell interacts with the user and job control.)-3.03 F .531
+(If this v)5.531 F .531(ariable is set,)-.25 F .539(single w)144 108 R
+.538(ord simple commands without redirections are treated as candidates\
+ for resumption of an)-.1 F -.15(ex)144 120 S .366(isting stopped job)
+.15 F 5.366(.T)-.4 G .366(here is no ambiguity allo)-5.366 F .366
+(wed; if there is more than one job be)-.25 F .367(ginning with)-.15 F
+1.125(the string typed, the job most recently accessed is selected.)144
+132 R(The)6.125 E/F2 10/Times-Italic@0 SF(name)3.985 E F0 1.124
+(of a stopped job, in this)3.805 F(conte)144 144 Q 1.132
+(xt, is the command line used to start it.)-.15 F 1.133(If set to the v)
+6.133 F(alue)-.25 E F2 -.2(ex)3.633 G(act).2 E F0 3.633(,t).68 G 1.133
+(he string supplied must)-3.633 F .625
+(match the name of a stopped job e)144 156 R .624(xactly; if set to)-.15
+F F2(substring)3.124 E F0 3.124(,t).22 G .624
+(he string supplied needs to match a)-3.124 F .884
+(substring of the name of a stopped job)144 168 R 5.884(.T)-.4 G(he)
+-5.884 E F2(substring)3.724 E F0 -.25(va)3.604 G .885(lue pro).25 F .885
+(vides functionality analogous to)-.15 F(the)144 180 Q F1(%?)3.334 E F0
+.834(job identi\214er \(see)5.834 F/F3 9/Times-Bold@0 SF .834(JOB CONTR)
+3.334 F(OL)-.27 E F0(belo)3.084 E 3.334(w\). If)-.25 F .834(set to an)
+3.334 F 3.334(yo)-.15 G .834(ther v)-3.334 F .833
+(alue, the supplied string)-.25 F .315
+(must be a pre\214x of a stopped job')144 192 R 2.816(sn)-.55 G .316
+(ame; this pro)-2.816 F .316(vides functionality analogous to the)-.15 F
+F1(%)2.816 E F2(string)A F0(job)2.816 E(identi\214er)144 204 Q(.)-.55 E
+F1(histchars)108 220.8 Q F0 2.07(The tw)144 232.8 R 4.57(oo)-.1 G 4.57
+(rt)-4.57 G 2.07(hree characters which control history e)-4.57 F 2.07
+(xpansion and tok)-.15 F 2.07(enization \(see)-.1 F F3(HIST)4.569 E(OR)
+-.162 E(Y)-.315 E(EXP)144 244.8 Q(ANSION)-.666 E F0(belo)3.465 E 3.715
+(w\). The)-.25 F 1.215(\214rst character is the)3.715 F F2 1.216
+(history e)3.715 F(xpansion)-.2 E F0(character)3.716 E 3.716(,t)-.4 G
+1.216(he character which)-3.716 F .798(signals the start of a history e)
+144 256.8 R .798(xpansion, normally `)-.15 F F1(!)A F0 3.298('. The)B
+.798(second character is the)3.298 F F2(quic)3.298 E 3.298(ks)-.2 G
+(ubstitu-)-3.298 E(tion)144 268.8 Q F0(character)2.739 E 2.739(,w)-.4 G
+.239(hich is used as shorthand for re-running the pre)-2.739 F .24
+(vious command entered, substitut-)-.25 F .576
+(ing one string for another in the command.)144 280.8 R .575(The def)
+5.575 F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .575
+(optional third character is the)3.075 F .223(character which indicates\
+ that the remainder of the line is a comment when found as the \214rst \
+char)144 292.8 R(-)-.2 E 1.294(acter of a w)144 304.8 R 1.294
+(ord, normally `)-.1 F F1(#)A F0 3.794('. The)B 1.293
+(history comment character causes history substitution to be)3.794 F
+.379(skipped for the remaining w)144 316.8 R .379(ords on the line.)-.1
+F .38(It does not necessarily cause the shell parser to treat)5.379 F
+(the rest of the line as a comment.)144 328.8 Q F1(Arrays)87 345.6 Q
+(Bash)108 357.6 Q F0(pro)3.391 E .891(vides one-dimensional inde)-.15 F
+-.15(xe)-.15 G 3.391(da).15 G .891(nd associati)-3.391 F 1.191 -.15
+(ve a)-.25 H .891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G
+.89(ariable may be used as an)-3.641 F(inde)108 369.6 Q -.15(xe)-.15 G
+2.573(da).15 G .073(rray; the)-2.573 F F1(declar)2.573 E(e)-.18 E F0 -.2
+(bu)2.573 G .073(iltin will e).2 F .073(xplicitly declare an array)-.15
+F 5.073(.T)-.65 G .074(here is no maximum limit on the size of)-5.073 F
+.329(an array)108 381.6 R 2.829(,n)-.65 G .329(or an)-2.829 F 2.829(yr)
+-.15 G .329(equirement that members be inde)-2.829 F -.15(xe)-.15 G
+2.829(do).15 G 2.829(ra)-2.829 G .328(ssigned contiguously)-2.829 F
+5.328(.I)-.65 G(nde)-5.328 E -.15(xe)-.15 G 2.828(da).15 G .328
+(rrays are refer)-2.828 F(-)-.2 E 1.386(enced using inte)108 393.6 R
+1.386(gers \(including arithmetic e)-.15 F 3.887(xpressions\) and)-.15 F
+1.387(are zero-based; associati)3.887 F 1.687 -.15(ve a)-.25 H 1.387
+(rrays are refer).15 F(-)-.2 E(enced using arbitrary strings.)108 405.6
+Q 2.463(An inde)108 422.4 R -.15(xe)-.15 G 4.963(da).15 G 2.463
+(rray is created automatically if an)-4.963 F 4.963(yv)-.15 G 2.462
+(ariable is assigned to using the syntax)-5.213 F F2(name)4.962 E F0([)A
+F2(sub-)A(script)108 434.4 Q F0(]=)A F2(value)A F0 5.682(.T)C(he)-5.682
+E F2(subscript)3.522 E F0 .682(is treated as an arithmetic e)3.862 F
+.682(xpression that must e)-.15 F -.25(va)-.25 G .682
+(luate to a number greater).25 F .75(than or equal to zero.)108 446.4 R
+2.349 -.8(To e)5.749 H .749(xplicitly declare an inde).65 F -.15(xe)-.15
+G 3.249(da).15 G(rray)-3.249 E 3.249(,u)-.65 G(se)-3.249 E F1(declar)
+3.249 E 3.249<65ad>-.18 G(a)-3.249 E F2(name)3.249 E F0(\(see)3.249 E F3
+.749(SHELL B)3.249 F(UIL)-.09 E(TIN)-.828 E(COMMANDS)108 458.4 Q F0
+(belo)2.25 E(w\).)-.25 E F1(declar)5 E 2.5<65ad>-.18 G(a)-2.5 E F2(name)
+2.5 E F1([)A F2(subscript)A F1(])A F0(is also accepted; the)2.5 E F2
+(subscript)2.5 E F0(is ignored.)2.5 E(Associati)108 475.2 Q .3 -.15
+(ve a)-.25 H(rrays are created using).15 E F1(declar)2.5 E 2.5<65ad>-.18
+G(A)-2.5 E F2(name)2.5 E F0(.)A(Attrib)108 492 Q .94
+(utes may be speci\214ed for an array v)-.2 F .941(ariable using the)
+-.25 F F1(declar)3.441 E(e)-.18 E F0(and)3.441 E F1 -.18(re)3.441 G
+(adonly).18 E F0 -.2(bu)3.441 G 3.441(iltins. Each).2 F(attrib)3.441 E
+(ute)-.2 E(applies to all members of an array)108 504 Q(.)-.65 E 1.647
+(Arrays are assigned to using compound assignments of the form)108 520.8
+R F2(name)4.147 E F0(=)A F1(\()A F0 -.25(va)C(lue).25 E F2(1)A F0 1.647
+(... v)4.147 F(alue)-.25 E F2(n)A F1(\))A F0 4.147(,w)C 1.647(here each)
+-4.147 F F2(value)108 532.8 Q F0 .122(is of the form [)2.622 F F2
+(subscript)A F0(]=)A F2(string)A F0 5.122(.I)C(nde)-5.122 E -.15(xe)-.15
+G 2.622(da).15 G .122(rray assignments do not require the brack)-2.622 F
+.122(et and subscript.)-.1 F .164(When assigning to inde)108 544.8 R
+-.15(xe)-.15 G 2.663(da).15 G .163(rrays, if the optional brack)-2.663 F
+.163(ets and subscript are supplied, that inde)-.1 F 2.663(xi)-.15 G
+2.663(sa)-2.663 G(ssigned)-2.663 E 1.41(to; otherwise the inde)108 556.8
+R 3.91(xo)-.15 G 3.91(ft)-3.91 G 1.41
+(he element assigned is the last inde)-3.91 F 3.911(xa)-.15 G 1.411
+(ssigned to by the statement plus one.)-3.911 F(Inde)108 568.8 Q
+(xing starts at zero.)-.15 E(When assigning to an associati)108 585.6 Q
+.3 -.15(ve a)-.25 H(rray).15 E 2.5(,t)-.65 G(he subscript is required.)
+-2.5 E .24(This syntax is also accepted by the)108 602.4 R F1(declar)
+2.74 E(e)-.18 E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .239
+(vidual array elements may be assigned to using the)-.25 F F2(name)108
+614.4 Q F0([)A F2(subscript)A F0(]=)A F2(value)A F0
+(syntax introduced abo)2.5 E -.15(ve)-.15 G(.).15 E(An)108 631.2 Q 3.575
+(ye)-.15 G 1.075(lement of an array may be referenced using ${)-3.575 F
+F2(name)A F0([)A F2(subscript)A F0 3.575(]}. The)B 1.076
+(braces are required to a)3.576 F -.2(vo)-.2 G(id).2 E 1.542
+(con\215icts with pathname e)108 643.2 R 4.041(xpansion. If)-.15 F F2
+(subscript)4.041 E F0(is)4.041 E F1(@)4.041 E F0(or)4.041 E F1(*)4.041 E
+F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)-.1 F 1.541
+(xpands to all members of)-.15 F F2(name)4.041 E F0(.)A 1.056
+(These subscripts dif)108 655.2 R 1.056(fer only when the w)-.25 F 1.057
+(ord appears within double quotes.)-.1 F 1.057(If the w)6.057 F 1.057
+(ord is double-quoted,)-.1 F(${)108 667.2 Q F2(name)A F0 .521([*]} e)B
+.521(xpands to a single w)-.15 F .521(ord with the v)-.1 F .52
+(alue of each array member separated by the \214rst character)-.25 F
+1.374(of the)108 679.2 R F3(IFS)3.874 E F0 1.374(special v)3.624 F 1.375
+(ariable, and ${)-.25 F F2(name)A F0 1.375([@]} e)B 1.375
+(xpands each element of)-.15 F F2(name)3.875 E F0 1.375(to a separate w)
+3.875 F 3.875(ord. When)-.1 F 2.028(there are no array members, ${)108
+691.2 R F2(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F
+2.027(If the double-quoted e)7.028 F 2.027(xpansion occurs)-.15 F .758
+(within a w)108 703.2 R .759(ord, the e)-.1 F .759
+(xpansion of the \214rst parameter is joined with the be)-.15 F .759
+(ginning part of the original w)-.15 F(ord,)-.1 E .516(and the e)108
+715.2 R .516(xpansion of the last parameter is joined with the last par\
+t of the original w)-.15 F 3.015(ord. This)-.1 F .515(is analogous)3.015
+F .227(to the e)108 727.2 R .228(xpansion of the special parameters)-.15
+F F1(*)2.728 E F0(and)2.728 E F1(@)2.728 E F0(\(see)2.728 E F1 .228
+(Special P)2.728 F(arameters)-.1 E F0(abo)2.728 E -.15(ve)-.15 G 2.728
+(\). ${#).15 F F2(name)A F0([)A F2(subscript)A F0(]})A(GNU Bash-4.0)72
+768 Q(2009 February 7)140.96 E(16)190.95 E 0 Cg EP
+%%Page: 17 17
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E -.15(ex)108 84 S .886(pands to the length of ${).15 F/F1 10
+/Times-Italic@0 SF(name)A F0([)A F1(subscript)A F0 3.386(]}. If)B F1
+(subscript)3.386 E F0(is)3.386 E/F2 10/Times-Bold@0 SF(*)3.386 E F0(or)
+3.386 E F2(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886
+(xpansion is the number of ele-)-.15 F .462(ments in the array)108 96 R
+5.462(.R)-.65 G .462(eferencing an array v)-5.462 F .463
+(ariable without a subscript is equi)-.25 F -.25(va)-.25 G .463
+(lent to referencing the array).25 F(with a subscript of 0.)108 108 Q
+(The)108 124.8 Q F2(unset)2.767 E F0 -.2(bu)2.767 G .267
+(iltin is used to destro).2 F 2.767(ya)-.1 G(rrays.)-2.767 E F2(unset)
+5.267 E F1(name)2.767 E F0([)A F1(subscript)A F0 2.767(]d)C(estro)-2.767
+E .267(ys the array element at inde)-.1 F(x)-.15 E F1(sub-)2.766 E
+(script)108 136.8 Q F0 6.38(.C)C 1.38(are must be tak)-6.38 F 1.38
+(en to a)-.1 F -.2(vo)-.2 G 1.38(id unw).2 F 1.38(anted side ef)-.1 F
+1.38(fects caused by \214lename generation.)-.25 F F2(unset)6.38 E F1
+(name)3.88 E F0(,)A(where)108 148.8 Q F1(name)2.5 E F0(is an array)2.5 E
+2.5(,o)-.65 G(r)-2.5 E F2(unset)2.5 E F1(name)2.5 E F0([)A F1(subscript)
+A F0(], where)A F1(subscript)2.5 E F0(is)2.5 E F2(*)2.5 E F0(or)2.5 E F2
+(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G
+(he entire array)-2.5 E(.)-.65 E(The)108 165.6 Q F2(declar)3.574 E(e)
+-.18 E F0(,)A F2(local)3.574 E F0 3.574(,a)C(nd)-3.574 E F2 -.18(re)
+3.574 G(adonly).18 E F0 -.2(bu)3.574 G 1.073(iltins each accept a).2 F
+F2<ad61>3.573 E F0 1.073(option to specify an inde)3.573 F -.15(xe)-.15
+G 3.573(da).15 G 1.073(rray and a)-3.573 F F2<ad41>3.573 E F0 .751
+(option to specify an associati)108 177.6 R 1.051 -.15(ve a)-.25 H(rray)
+.15 E 5.751(.T)-.65 G(he)-5.751 E F2 -.18(re)3.251 G(ad).18 E F0 -.2(bu)
+3.251 G .752(iltin accepts a).2 F F2<ad61>3.252 E F0 .752
+(option to assign a list of w)3.252 F .752(ords read)-.1 F .502
+(from the standard input to an array)108 189.6 R 5.502(.T)-.65 G(he)
+-5.502 E F2(set)3.002 E F0(and)3.002 E F2(declar)3.002 E(e)-.18 E F0 -.2
+(bu)3.002 G .502(iltins display array v).2 F .502(alues in a w)-.25 F
+.502(ay that allo)-.1 F(ws)-.25 E(them to be reused as assignments.)108
+201.6 Q/F3 10.95/Times-Bold@0 SF(EXP)72 218.4 Q(ANSION)-.81 E F0 .76(Ex\
+pansion is performed on the command line after it has been split into w)
+108 230.4 R 3.26(ords. There)-.1 F .76(are se)3.26 F -.15(ve)-.25 G 3.26
+(nk).15 G .76(inds of)-3.26 F -.15(ex)108 242.4 S .37
+(pansion performed:).15 F F1(br)2.869 E .369(ace e)-.15 F(xpansion)-.2 E
+F0(,).24 E F1 .369(tilde e)2.869 F(xpansion)-.2 E F0(,).24 E F1(par)
+2.869 E .369(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F1
+.369(command sub-)2.869 F(stitution)108 254.4 Q F0(,).24 E F1
+(arithmetic e)2.5 E(xpansion)-.2 E F0(,).24 E F1(wor)2.5 E 2.5(ds)-.37 G
+(plitting)-2.5 E F0 2.5(,a).22 G(nd)-2.5 E F1(pathname e)2.5 E(xpansion)
+-.2 E F0(.).24 E .47(The order of e)108 271.2 R .471
+(xpansions is: brace e)-.15 F .471(xpansion, tilde e)-.15 F .471
+(xpansion, parameter)-.15 F 2.971(,v)-.4 G .471
+(ariable and arithmetic e)-3.221 F(xpansion)-.15 E
+(and command substitution \(done in a left-to-right f)108 283.2 Q
+(ashion\), w)-.1 E(ord splitting, and pathname e)-.1 E(xpansion.)-.15 E
+(On systems that can support it, there is an additional e)108 300 Q
+(xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E F1(pr)2.5 E
+(ocess substitution)-.45 E F0(.)A 1.487(Only brace e)108 316.8 R 1.487
+(xpansion, w)-.15 F 1.487(ord splitting, and pathname e)-.1 F 1.487
+(xpansion can change the number of w)-.15 F 1.486(ords of the)-.1 F -.15
+(ex)108 328.8 S 1.164(pansion; other e).15 F 1.164(xpansions e)-.15 F
+1.164(xpand a single w)-.15 F 1.165(ord to a single w)-.1 F 3.665
+(ord. The)-.1 F 1.165(only e)3.665 F 1.165(xceptions to this are the)
+-.15 F -.15(ex)108 340.8 S(pansions of ").15 E F2($@)A F0 2.5("a)C(nd ")
+-2.5 E F2(${)A F1(name)A F2([@]})A F0 2.5("a)C 2.5(se)-2.5 G
+(xplained abo)-2.65 E .3 -.15(ve \()-.15 H(see).15 E/F4 9/Times-Bold@0
+SF -.666(PA)2.5 G(RAMETERS).666 E/F5 9/Times-Roman@0 SF(\).)A F2
+(Brace Expansion)87 357.6 Q F1(Br)108.58 369.6 Q .606(ace e)-.15 F
+(xpansion)-.2 E F0 .606
+(is a mechanism by which arbitrary strings may be generated.)3.346 F
+.606(This mechanism is similar)5.606 F(to)108 381.6 Q F1 .415
+(pathname e)2.915 F(xpansion)-.2 E F0 2.915(,b)C .415
+(ut the \214lenames generated need not e)-3.115 F 2.915(xist. P)-.15 F
+.415(atterns to be brace e)-.15 F .415(xpanded tak)-.15 F 2.915(et)-.1 G
+(he)-2.915 E .152(form of an optional)108 393.6 R F1(pr)2.652 E(eamble)
+-.37 E F0 2.651(,f).18 G(ollo)-2.651 E .151
+(wed by either a series of comma-separated strings or a sequence e)-.25
+F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 405.6 R
+.563(wed by an optional)-.25 F F1(postscript)3.063 E F0 5.563(.T).68 G
+.563(he preamble is pre\214x)-5.563 F .563(ed to each string)-.15 F .659
+(contained within the braces, and the postscript is then appended to ea\
+ch resulting string, e)108 417.6 R .658(xpanding left to)-.15 F(right.)
+108 429.6 Q .718(Brace e)108 446.4 R .719(xpansions may be nested.)-.15
+F .719(The results of each e)5.719 F .719
+(xpanded string are not sorted; left to right order is)-.15 F(preserv)
+108 458.4 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F2({)A F0
+(d,c,b)A F2(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.243(As)
+108 475.2 S .743(equence e)-3.243 F .743(xpression tak)-.15 F .743
+(es the form)-.1 F F2({)3.243 E F1(x)A F2(..)A F1(y)A F2([..)A F1(incr)A
+F2(]})A F0 3.243(,w)C(here)-3.243 E F1(x)3.243 E F0(and)3.242 E F1(y)
+3.242 E F0 .742(are either inte)3.242 F .742(gers or single characters,)
+-.15 F(and)108 487.2 Q F1(incr)3.031 E F0 3.031(,a)C 3.032(no)-3.031 G
+.532(ptional increment, is an inte)-3.032 F(ger)-.15 E 5.532(.W)-.55 G
+.532(hen inte)-5.532 F .532(gers are supplied, the e)-.15 F .532
+(xpression e)-.15 F .532(xpands to each)-.15 F .078(number between)108
+499.2 R F1(x)2.578 E F0(and)2.578 E F1(y)2.578 E F0 2.578(,i)C(nclusi)
+-2.578 E -.15(ve)-.25 G 5.078(.S).15 G .078(upplied inte)-5.078 F .077
+(gers may be pre\214x)-.15 F .077(ed with)-.15 F F1(0)2.577 E F0 .077
+(to force each term to ha)2.577 F .377 -.15(ve t)-.2 H(he).15 E .014
+(same width.)108 511.2 R .014(When either)5.014 F F1(x)2.514 E F0(or)
+2.514 E F1(y)2.514 E F0(be)2.514 E .015(gins with a zero, the shell att\
+empts to force all generated terms to contain)-.15 F 1.143
+(the same number of digits, zero-padding where necessary)108 523.2 R
+6.143(.W)-.65 G 1.143(hen characters are supplied, the e)-6.143 F
+(xpression)-.15 E -.15(ex)108 535.2 S .541(pands to each character le)
+.15 F .541(xicographically between)-.15 F F1(x)3.041 E F0(and)3.042 E F1
+(y)3.042 E F0 3.042(,i)C(nclusi)-3.042 E -.15(ve)-.25 G 5.542(.N).15 G
+.542(ote that both)-5.542 F F1(x)3.042 E F0(and)3.042 E F1(y)3.042 E F0
+.542(must be of)3.042 F .183(the same type.)108 547.2 R .182
+(When the increment is supplied, it is used as the dif)5.183 F .182
+(ference between each term.)-.25 F .182(The def)5.182 F(ault)-.1 E
+(increment is 1 or -1 as appropriate.)108 559.2 Q .581(Brace e)108 576 R
+.581(xpansion is performed before an)-.15 F 3.081(yo)-.15 G .581(ther e)
+-3.081 F .581(xpansions, and an)-.15 F 3.082(yc)-.15 G .582
+(haracters special to other e)-3.082 F(xpansions)-.15 E .016
+(are preserv)108 588 R .016(ed in the result.)-.15 F .016
+(It is strictly te)5.016 F(xtual.)-.15 E F2(Bash)5.016 E F0 .015
+(does not apply an)2.516 F 2.515(ys)-.15 G .015
+(yntactic interpretation to the con-)-2.515 F(te)108 600 Q(xt of the e)
+-.15 E(xpansion or the te)-.15 E(xt between the braces.)-.15 E 3.632(Ac)
+108 616.8 S 1.132(orrectly-formed brace e)-3.632 F 1.132(xpansion must \
+contain unquoted opening and closing braces, and at least one)-.15 F
+3.441(unquoted comma or a v)108 628.8 R 3.441(alid sequence e)-.25 F
+5.941(xpression. An)-.15 F 5.941(yi)-.15 G 3.441
+(ncorrectly formed brace e)-5.941 F 3.44(xpansion is left)-.15 F 2.755
+(unchanged. A)108 640.8 R F2({)2.755 E F0(or)2.755 E F2(,)2.755 E F0
+.255(may be quoted with a backslash to pre)2.755 F -.15(ve)-.25 G .255
+(nt its being considered part of a brace e).15 F(xpres-)-.15 E 2.911
+(sion. T)108 652.8 R 2.911(oa)-.8 G -.2(vo)-3.111 G .411
+(id con\215icts with parameter e).2 F .411(xpansion, the string)-.15 F
+F2(${)2.911 E F0 .41(is not considered eligible for brace e)2.911 F
+(xpan-)-.15 E(sion.)108 664.8 Q 1.476(This construct is typically used \
+as shorthand when the common pre\214x of the strings to be generated is)
+108 681.6 R(longer than in the abo)108 693.6 Q .3 -.15(ve ex)-.15 H
+(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 710.4 Q -.65(w,)-.25
+G(dist,b).65 E(ugs})-.2 E(or)108 722.4 Q(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(17)190.95 E 0 Cg EP
+%%Page: 18 18
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(cho)144 84 Q(wn root /usr/{ucb/{e)-.25 E(x,edit},lib/{e)-.15 E
+(x?.?*,ho)-.15 E(w_e)-.25 E(x}})-.15 E .618(Brace e)108 100.8 R .618
+(xpansion introduces a slight incompatibility with historical v)-.15 F
+.618(ersions of)-.15 F/F1 10/Times-Bold@0 SF(sh)3.118 E F0(.)A F1(sh)
+5.618 E F0 .618(does not treat open-)3.118 F .247
+(ing or closing braces specially when the)108 112.8 R 2.747(ya)-.15 G
+.247(ppear as part of a w)-2.747 F .248(ord, and preserv)-.1 F .248
+(es them in the output.)-.15 F F1(Bash)5.248 E F0(remo)108 124.8 Q -.15
+(ve)-.15 G 3.53(sb).15 G 1.03(races from w)-3.53 F 1.03
+(ords as a consequence of brace e)-.1 F 3.53(xpansion. F)-.15 F 1.03
+(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F1(sh)
+3.53 E F0(as)3.53 E/F2 10/Times-Italic@0 SF(\214le{1,2})108 136.8 Q F0
+.514(appears identically in the output.)3.014 F .515(The same w)5.515 F
+.515(ord is output as)-.1 F F2 .515(\214le1 \214le2)4.925 F F0 .515
+(after e)3.035 F .515(xpansion by)-.15 F F1(bash)3.015 E F0(.)A .437
+(If strict compatibility with)108 148.8 R F1(sh)2.936 E F0 .436
+(is desired, start)2.936 F F1(bash)2.936 E F0 .436(with the)2.936 F F1
+(+B)2.936 E F0 .436(option or disable brace e)2.936 F .436
+(xpansion with the)-.15 F F1(+B)108 160.8 Q F0(option to the)2.5 E F1
+(set)2.5 E F0(command \(see)2.5 E/F3 9/Times-Bold@0 SF(SHELL B)2.5 E
+(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1 -.18(Ti)
+87 177.6 S(lde Expansion).18 E F0 1.086(If a w)108 189.6 R 1.086(ord be)
+-.1 F 1.086(gins with an unquoted tilde character \(`)-.15 F F1(~)A F0
+1.087('\), all of the characters preceding the \214rst unquoted)B .185(\
+slash \(or all characters, if there is no unquoted slash\) are consider\
+ed a)108 201.6 R F2(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685
+(fn)-5.185 G .185(one of the characters)-2.685 F .725(in the tilde-pre\
+\214x are quoted, the characters in the tilde-pre\214x follo)108 213.6 R
+.726(wing the tilde are treated as a possible)-.25 F F2(lo)108 225.6 Q
+.523(gin name)-.1 F F0 5.523(.I)C 3.023(ft)-5.523 G .523
+(his login name is the null string, the tilde is replaced with the v)
+-3.023 F .522(alue of the shell parameter)-.25 F F3(HOME)108 237.6 Q/F4
+9/Times-Roman@0 SF(.)A F0(If)4.786 E F3(HOME)2.786 E F0 .287
+(is unset, the home directory of the user e)2.536 F -.15(xe)-.15 G .287
+(cuting the shell is substituted instead.).15 F(Other)5.287 E(-)-.2 E(w\
+ise, the tilde-pre\214x is replaced with the home directory associated \
+with the speci\214ed login name.)108 249.6 Q .093
+(If the tilde-pre\214x is a `~+', the v)108 266.4 R .092
+(alue of the shell v)-.25 F(ariable)-.25 E F3(PWD)2.592 E F0 .092
+(replaces the tilde-pre\214x.)2.342 F .092(If the tilde-pre\214x is)
+5.092 F 3.403(a`)108 278.4 S .903(~\255', the v)-3.403 F .903
+(alue of the shell v)-.25 F(ariable)-.25 E F3(OLDPWD)3.404 E F4(,)A F0
+.904(if it is set, is substituted.)3.154 F .904(If the characters follo)
+5.904 F .904(wing the)-.25 F 1.642
+(tilde in the tilde-pre\214x consist of a number)108 290.4 R F2(N)4.142
+E F0 4.142(,o)C 1.642(ptionally pre\214x)-4.142 F 1.641
+(ed by a `+' or a `\255', the tilde-pre\214x is)-.15 F 1.437(replaced w\
+ith the corresponding element from the directory stack, as it w)108
+302.4 R 1.438(ould be displayed by the)-.1 F F1(dirs)3.938 E F0 -.2(bu)
+108 314.4 S .455(iltin in).2 F -.2(vo)-.4 G -.1(ke).2 G 2.955(dw).1 G
+.455(ith the tilde-pre\214x as an ar)-2.955 F 2.954(gument. If)-.18 F
+.454(the characters follo)2.954 F .454
+(wing the tilde in the tilde-pre\214x)-.25 F
+(consist of a number without a leading `+' or `\255', `+' is assumed.)
+108 326.4 Q(If the login name is in)108 343.2 Q -.25(va)-.4 G
+(lid, or the tilde e).25 E(xpansion f)-.15 E(ails, the w)-.1 E
+(ord is unchanged.)-.1 E .166(Each v)108 360 R .167
+(ariable assignment is check)-.25 F .167(ed for unquoted tilde-pre\214x)
+-.1 F .167(es immediately follo)-.15 F .167(wing a)-.25 F F1(:)2.667 E
+F0 .167(or the \214rst)2.667 F F1(=)2.667 E F0 5.167(.I)C(n)-5.167 E
+.282(these cases, tilde e)108 372 R .282(xpansion is also performed.)
+-.15 F(Consequently)5.282 E 2.782(,o)-.65 G .282
+(ne may use \214le names with tildes in assign-)-2.782 F(ments to)108
+384 Q F3 -.666(PA)2.5 G(TH)-.189 E F4(,)A F3(MAILP)2.25 E -.855(AT)-.666
+G(H).855 E F4(,)A F0(and)2.25 E F3(CDP)2.5 E -.855(AT)-.666 G(H).855 E
+F4(,)A F0(and the shell assigns the e)2.25 E(xpanded v)-.15 E(alue.)-.25
+E F1 -.1(Pa)87 400.8 S(rameter Expansion).1 E F0 1.605(The `)108 412.8 R
+F1($)A F0 4.105('c)C 1.605(haracter introduces parameter e)-4.105 F
+1.606(xpansion, command substitution, or arithmetic e)-.15 F 4.106
+(xpansion. The)-.15 F .407(parameter name or symbol to be e)108 424.8 R
+.407(xpanded may be enclosed in braces, which are optional b)-.15 F .406
+(ut serv)-.2 F 2.906(et)-.15 G 2.906(op)-2.906 G(ro-)-2.906 E .032
+(tect the v)108 436.8 R .032(ariable to be e)-.25 F .032
+(xpanded from characters immediately follo)-.15 F .033
+(wing it which could be interpreted as part)-.25 F(of the name.)108
+448.8 Q 1.19
+(When braces are used, the matching ending brace is the \214rst `)108
+465.6 R F1(})A F0 3.689('n)C 1.189
+(ot escaped by a backslash or within a)-3.689 F 2.15
+(quoted string, and not within an embedded arithmetic e)108 477.6 R 2.15
+(xpansion, command substitution, or parameter)-.15 F -.15(ex)108 489.6 S
+(pansion.).15 E(${)108 506.4 Q F2(par)A(ameter)-.15 E F0(})A 1.205
+(The v)144 518.4 R 1.205(alue of)-.25 F F2(par)3.705 E(ameter)-.15 E F0
+1.204(is substituted.)3.705 F 1.204(The braces are required when)6.204 F
+F2(par)4.954 E(ameter)-.15 E F0 1.204(is a positional)4.434 F .264
+(parameter with more than one digit, or when)144 530.4 R F2(par)4.014 E
+(ameter)-.15 E F0 .264(is follo)3.494 F .264
+(wed by a character which is not to)-.25 F
+(be interpreted as part of its name.)144 542.4 Q 1.509
+(If the \214rst character of)108 559.2 R F2(par)4.009 E(ameter)-.15 E F0
+1.509(is an e)4.009 F 1.509(xclamation point, a le)-.15 F -.15(ve)-.25 G
+4.009(lo).15 G 4.008(fv)-4.009 G 1.508
+(ariable indirection is introduced.)-4.258 F F1(Bash)108 571.2 Q F0 .106
+(uses the v)2.606 F .106(alue of the v)-.25 F .106
+(ariable formed from the rest of)-.25 F F2(par)2.606 E(ameter)-.15 E F0
+.106(as the name of the v)2.606 F .106(ariable; this v)-.25 F(ari-)-.25
+E .352(able is then e)108 583.2 R .352(xpanded and that v)-.15 F .351
+(alue is used in the rest of the substitution, rather than the v)-.25 F
+.351(alue of)-.25 F F2(par)2.851 E(ame-)-.15 E(ter)108 595.2 Q F0 2.519
+(itself. This)2.519 F .019(is kno)2.519 F .019(wn as)-.25 F F2(indir)
+2.519 E .019(ect e)-.37 F(xpansion)-.2 E F0 5.019(.T)C .019(he e)-5.019
+F .02(xceptions to this are the e)-.15 F .02(xpansions of ${!)-.15 F F2
+(pr)A(e\214x)-.37 E F0 .02(*} and)B(${)108 607.2 Q F1(!)A F2(name)A F0
+([)A F2(@)A F0 .763(]} described belo)B 4.563 -.65(w. T)-.25 H .763
+(he e).65 F .763(xclamation point must immediately follo)-.15 F 3.263
+(wt)-.25 G .763(he left brace in order to)-3.263 F
+(introduce indirection.)108 619.2 Q .334(In each of the cases belo)108
+636 R -.65(w,)-.25 G F2(wor)3.484 E(d)-.37 E F0 .334
+(is subject to tilde e)2.834 F .334(xpansion, parameter e)-.15 F .334
+(xpansion, command substitution,)-.15 F(and arithmetic e)108 648 Q
+(xpansion.)-.15 E .698(When not performing substring e)108 664.8 R .698
+(xpansion, using the forms documented belo)-.15 F -.65(w,)-.25 G F1
+(bash)3.848 E F0 .697(tests for a parameter)3.198 F
+(that is unset or null.)108 676.8 Q(Omitting the colon results in a tes\
+t only for a parameter that is unset.)5 E(${)108 693.6 Q F2(par)A
+(ameter)-.15 E F1<3aad>A F2(wor)A(d)-.37 E F0(})A F1 .722(Use Default V)
+144 705.6 R(alues)-.92 E F0 5.722(.I)C(f)-5.722 E F2(par)4.472 E(ameter)
+-.15 E F0 .723(is unset or null, the e)3.952 F .723(xpansion of)-.15 F
+F2(wor)3.563 E(d)-.37 E F0 .723(is substituted.)3.993 F(Other)5.723 E(-)
+-.2 E(wise, the v)144 717.6 Q(alue of)-.25 E F2(par)3.75 E(ameter)-.15 E
+F0(is substituted.)3.23 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E
+(18)190.95 E 0 Cg EP
+%%Page: 19 19
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(${)108 84 Q/F1 10/Times-Italic@0 SF(par)A(ameter)-.15 E/F2 10
+/Times-Bold@0 SF(:=)A F1(wor)A(d)-.37 E F0(})A F2 2.005
+(Assign Default V)144 96 R(alues)-.92 E F0 7.005(.I)C(f)-7.005 E F1(par)
+5.755 E(ameter)-.15 E F0 2.005(is unset or null, the e)5.235 F 2.004
+(xpansion of)-.15 F F1(wor)4.844 E(d)-.37 E F0 2.004(is assigned to)
+5.274 F F1(par)144 108 Q(ameter)-.15 E F0 5.278(.T).73 G .278(he v)
+-5.278 F .278(alue of)-.25 F F1(par)4.028 E(ameter)-.15 E F0 .278
+(is then substituted.)3.508 F .279
+(Positional parameters and special param-)5.278 F
+(eters may not be assigned to in this w)144 120 Q(ay)-.1 E(.)-.65 E(${)
+108 132 Q F1(par)A(ameter)-.15 E F2(:?)A F1(wor)A(d)-.37 E F0(})A F2
+.535(Display Err)144 144 R .535(or if Null or Unset)-.18 F F0 5.535(.I)C
+(f)-5.535 E F1(par)4.285 E(ameter)-.15 E F0 .535
+(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F1(wor)3.035 E
+(d)-.37 E F0 .535(\(or a mes-)3.035 F .661(sage to that ef)144 156 R
+.661(fect if)-.25 F F1(wor)3.501 E(d)-.37 E F0 .662(is not present\) is\
+ written to the standard error and the shell, if it is not)3.931 F
+(interacti)144 168 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,)
+-2.65 F(the v)2.5 E(alue of)-.25 E F1(par)2.5 E(ameter)-.15 E F0
+(is substituted.)2.5 E(${)108 180 Q F1(par)A(ameter)-.15 E F2(:+)A F1
+(wor)A(d)-.37 E F0(})A F2 .745(Use Alter)144 192 R .745(nate V)-.15 F
+(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F1(par)4.495 E(ameter)-.15 E F0
+.745(is null or unset, nothing is substituted, otherwise the e)3.975 F
+(xpan-)-.15 E(sion of)144 204 Q F1(wor)2.84 E(d)-.37 E F0
+(is substituted.)3.27 E(${)108 216 Q F1(par)A(ameter)-.15 E F2(:)A F1
+(of)A(fset)-.18 E F0(})A(${)108 228 Q F1(par)A(ameter)-.15 E F2(:)A F1
+(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .796
+(Substring Expansion.)144 240 R F0 .796(Expands to up to)5.796 F F1
+(length)3.296 E F0 .796(characters of)3.296 F F1(par)3.296 E(ameter)-.15
+E F0 .797(starting at the character)3.296 F .229(speci\214ed by)144 252
+R F1(of)2.729 E(fset)-.18 E F0 5.229(.I)C(f)-5.229 E F1(length)2.729 E
+F0 .229(is omitted, e)2.729 F .229(xpands to the substring of)-.15 F F1
+(par)2.729 E(ameter)-.15 E F0 .228(starting at the char)2.728 F(-)-.2 E
+.432(acter speci\214ed by)144 264 R F1(of)2.933 E(fset)-.18 E F0(.)A F1
+(length)5.433 E F0(and)2.933 E F1(of)2.933 E(fset)-.18 E F0 .433
+(are arithmetic e)2.933 F .433(xpressions \(see)-.15 F/F3 9/Times-Bold@0
+SF .433(ARITHMETIC EV)2.933 F(ALU-)-1.215 E -.855(AT)144 276 S(ION).855
+E F0(belo)2.577 E(w\).)-.25 E F1(length)5.327 E F0 .327(must e)2.827 F
+-.25(va)-.25 G .326(luate to a number greater than or equal to zero.).25
+F(If)5.326 E F1(of)2.826 E(fset)-.18 E F0 -.25(eva)2.826 G(luates).25 E
+.015(to a number less than zero, the v)144 288 R .015
+(alue is used as an of)-.25 F .015(fset from the end of the v)-.25 F
+.016(alue of)-.25 F F1(par)2.516 E(ameter)-.15 E F0 5.016(.I)C(f)-5.016
+E F1(par)144 300 Q(ameter)-.15 E F0(is)3.25 E F2(@)3.25 E F0 3.25(,t)C
+.75(he result is)-3.25 F F1(length)3.25 E F0 .75
+(positional parameters be)3.25 F .75(ginning at)-.15 F F1(of)3.25 E
+(fset)-.18 E F0 5.75(.I)C(f)-5.75 E F1(par)3.25 E(ameter)-.15 E F0 .75
+(is an)3.25 F(inde)144 312 Q -.15(xe)-.15 G 2.701(da).15 G .201
+(rray name subscripted by @ or *, the result is the)-2.701 F F1(length)
+2.701 E F0 .202(members of the array be)2.701 F(ginning)-.15 E 1.283
+(with ${)144 324 R F1(par)A(ameter)-.15 E F0([)A F1(of)A(fset)-.18 E F0
+3.783(]}. A)B(ne)3.783 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F1(of)
+3.933 E(fset)-.18 E F0 1.282(is tak)3.782 F 1.282(en relati)-.1 F 1.582
+-.15(ve t)-.25 H 3.782(oo).15 G 1.282(ne greater than the maximum)-3.782
+F(inde)144 336 Q 3.434(xo)-.15 G 3.434(ft)-3.434 G .934
+(he speci\214ed array)-3.434 F 5.934(.S)-.65 G .935(ubstring e)-5.934 F
+.935(xpansion applied to an associati)-.15 F 1.235 -.15(ve a)-.25 H .935
+(rray produces unde-).15 F .262(\214ned results.)144 348 R .261
+(Note that a ne)5.262 F -.05(ga)-.15 G(ti).05 E .561 -.15(ve o)-.25 H
+-.25(ff).15 G .261
+(set must be separated from the colon by at least one space to).25 F -.2
+(avo)144 360 S .154(id being confused with the :- e).2 F 2.655
+(xpansion. Substring)-.15 F(inde)2.655 E .155
+(xing is zero-based unless the positional)-.15 F .532
+(parameters are used, in which case the inde)144 372 R .532
+(xing starts at 1 by def)-.15 F 3.032(ault. If)-.1 F F1(of)3.032 E(fset)
+-.18 E F0 .532(is 0, and the posi-)3.032 F(tional parameters are used,)
+144 384 Q F2($0)2.5 E F0(is pre\214x)2.5 E(ed to the list.)-.15 E(${)108
+400.8 Q F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A F0(})A(${)108 412.8 Q F2(!)A
+F1(pr)A(e\214x)-.37 E F2(@)A F0(})A F2 .084(Names matching pr)144 424.8
+R(e\214x.)-.18 E F0 .084(Expands to the names of v)5.084 F .084
+(ariables whose names be)-.25 F .085(gin with)-.15 F F1(pr)2.585 E
+(e\214x)-.37 E F0 2.585(,s)C(epa-)-2.585 E .258
+(rated by the \214rst character of the)144 436.8 R F3(IFS)2.758 E F0
+.257(special v)2.507 F 2.757(ariable. When)-.25 F F1(@)2.757 E F0 .257
+(is used and the e)2.757 F .257(xpansion appears)-.15 F
+(within double quotes, each v)144 448.8 Q(ariable name e)-.25 E
+(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 465.6 Q F2(!)A F1(name)
+A F0([)A F1(@)A F0(]})A(${)108 477.6 Q F2(!)A F1(name)A F0([)A F1(*)A F0
+(]})A F2 2.035(List of array k)144 489.6 R(eys.)-.1 E F0(If)7.036 E F1
+(name)4.536 E F0 2.036(is an array v)4.536 F 2.036(ariable, e)-.25 F
+2.036(xpands to the list of array indices \(k)-.15 F -.15(ey)-.1 G(s\))
+.15 E .596(assigned in)144 501.6 R F1(name)3.096 E F0 5.596(.I)C(f)
+-5.596 E F1(name)3.096 E F0 .595(is not an array)3.096 F 3.095(,e)-.65 G
+.595(xpands to 0 if)-3.245 F F1(name)3.095 E F0 .595
+(is set and null otherwise.)3.095 F(When)5.595 E F1(@)144 513.6 Q F0
+(is used and the e)2.5 E(xpansion appears within double quotes, each k)
+-.15 E .3 -.15(ey ex)-.1 H(pands to a separate w).15 E(ord.)-.1 E(${)108
+530.4 Q F2(#)A F1(par)A(ameter)-.15 E F0(})A F2 -.1(Pa)144 542.4 S .47
+(rameter length.).1 F F0 .471(The length in characters of the v)5.47 F
+.471(alue of)-.25 F F1(par)2.971 E(ameter)-.15 E F0 .471
+(is substituted.)2.971 F(If)5.471 E F1(par)4.221 E(ame-)-.15 E(ter)144
+554.4 Q F0(is)4.439 E F2(*)3.709 E F0(or)3.709 E F2(@)3.709 E F0 3.708
+(,t)C 1.208(he v)-3.708 F 1.208
+(alue substituted is the number of positional parameters.)-.25 F(If)
+6.208 E F1(par)4.958 E(ameter)-.15 E F0 1.208(is an)4.438 F
+(array name subscripted by)144 566.4 Q F2(*)2.5 E F0(or)2.5 E F2(@)2.5 E
+F0 2.5(,t)C(he v)-2.5 E
+(alue substituted is the number of elements in the array)-.25 E(.)-.65 E
+(${)108 583.2 Q F1(par)A(ameter)-.15 E F2(#)A F1(wor)A(d)-.37 E F0(})A
+(${)108 595.2 Q F1(par)A(ameter)-.15 E F2(##)A F1(wor)A(d)-.37 E F0(})A
+F2(Remo)144 607.2 Q 1.396 -.1(ve m)-.1 H 1.196(atching pr).1 F 1.196
+(e\214x patter)-.18 F(n.)-.15 E F0(The)6.196 E F1(wor)4.036 E(d)-.37 E
+F0 1.196(is e)4.466 F 1.196
+(xpanded to produce a pattern just as in path-)-.15 F .152(name e)144
+619.2 R 2.652(xpansion. If)-.15 F .152(the pattern matches the be)2.652
+F .152(ginning of the v)-.15 F .152(alue of)-.25 F F1(par)2.652 E
+(ameter)-.15 E F0 2.652(,t).73 G .151(hen the result of)-2.652 F 1.4
+(the e)144 631.2 R 1.4(xpansion is the e)-.15 F 1.4(xpanded v)-.15 F 1.4
+(alue of)-.25 F F1(par)5.15 E(ameter)-.15 E F0 1.4
+(with the shortest matching pattern \(the `)4.63 F(`)-.74 E F2(#)A F0
+-.74('')C .281(case\) or the longest matching pattern \(the `)144 643.2
+R(`)-.74 E F2(##)A F0 1.761 -.74('' c)D .281(ase\) deleted.).74 F(If)
+5.281 E F1(par)4.031 E(ameter)-.15 E F0(is)3.511 E F2(@)2.781 E F0(or)
+2.781 E F2(*)2.781 E F0 2.781(,t)C .281(he pattern)-2.781 F(remo)144
+655.2 Q -.25(va)-.15 G 3.274(lo).25 G .774
+(peration is applied to each positional parameter in turn, and the e)
+-3.274 F .774(xpansion is the resul-)-.15 F .402(tant list.)144 667.2 R
+(If)5.402 E F1(par)4.152 E(ameter)-.15 E F0 .401(is an array v)3.632 F
+.401(ariable subscripted with)-.25 F F2(@)2.901 E F0(or)2.901 E F2(*)
+2.901 E F0 2.901(,t)C .401(he pattern remo)-2.901 F -.25(va)-.15 G 2.901
+(lo).25 G(peration)-2.901 E
+(is applied to each member of the array in turn, and the e)144 679.2 Q
+(xpansion is the resultant list.)-.15 E(${)108 696 Q F1(par)A(ameter)
+-.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(19)190.95 E 0 Cg EP
+%%Page: 20 20
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(${)108 84 Q/F1 10/Times-Italic@0 SF(par)A(ameter)-.15 E/F2 10
+/Times-Bold@0 SF(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 96 Q .346 -.1
+(ve m)-.1 H .146(atching suf\214x patter).1 F(n.)-.15 E F0(The)5.146 E
+F1(wor)2.646 E(d)-.37 E F0 .147(is e)2.647 F .147
+(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144 108
+S 3.088(pansion. If).15 F .588
+(the pattern matches a trailing portion of the e)3.088 F .588(xpanded v)
+-.15 F .588(alue of)-.25 F F1(par)3.088 E(ameter)-.15 E F0 3.088(,t).73
+G .588(hen the)-3.088 F .226(result of the e)144 120 R .226
+(xpansion is the e)-.15 F .226(xpanded v)-.15 F .226(alue of)-.25 F F1
+(par)3.976 E(ameter)-.15 E F0 .226
+(with the shortest matching pattern \(the)3.456 F -.74(``)144 132 S F2
+(%).74 E F0 1.522 -.74('' c)D .042
+(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F2(%%)A F0
+1.522 -.74('' c)D .042(ase\) deleted.).74 F(If)5.042 E F1(par)3.792 E
+(ameter)-.15 E F0(is)3.272 E F2(@)2.541 E F0(or)2.541 E F2(*)2.541 E F0
+2.541(,t)C(he)-2.541 E .44(pattern remo)144 144 R -.25(va)-.15 G 2.94
+(lo).25 G .441
+(peration is applied to each positional parameter in turn, and the e)
+-2.94 F .441(xpansion is the)-.15 F .241(resultant list.)144 156 R(If)
+5.241 E F1(par)3.991 E(ameter)-.15 E F0 .241(is an array v)3.471 F .241
+(ariable subscripted with)-.25 F F2(@)2.741 E F0(or)2.74 E F2(*)2.74 E
+F0 2.74(,t)C .24(he pattern remo)-2.74 F -.25(va)-.15 G 2.74(lo).25 G
+(per)-2.74 E(-)-.2 E
+(ation is applied to each member of the array in turn, and the e)144 168
+Q(xpansion is the resultant list.)-.15 E(${)108 184.8 Q F1(par)A(ameter)
+-.15 E F2(/)A F1(pattern)A F2(/)A F1(string)A F0(})A F2 -.1(Pa)144 196.8
+S(tter).1 E 3.606(ns)-.15 G(ubstitution.)-3.606 E F0(The)6.106 E F1
+(pattern)3.606 E F0 1.106(is e)3.606 F 1.107
+(xpanded to produce a pattern just as in pathname e)-.15 F(xpan-)-.15 E
+(sion.)144 208.8 Q F1 -.8(Pa)6.034 G -.15(ra).8 G(meter).15 E F0 1.034
+(is e)3.534 F 1.033(xpanded and the longest match of)-.15 F F1(pattern)
+3.533 E F0(ag)3.533 E 1.033(ainst its v)-.05 F 1.033
+(alue is replaced with)-.25 F F1(string)144 220.8 Q F0 5.16(.I)C(f)-5.16
+E F1(pattern)2.66 E F0(be)2.66 E .16(gins with)-.15 F F2(/)2.66 E F0
+2.66(,a)C .161(ll matches of)-2.66 F F1(pattern)2.661 E F0 .161
+(are replaced with)2.661 F F1(string)2.661 E F0 5.161(.N)C .161
+(ormally only the)-5.161 F .807(\214rst match is replaced.)144 232.8 R
+(If)5.807 E F1(pattern)3.307 E F0(be)3.307 E .807(gins with)-.15 F F2(#)
+3.307 E F0 3.306(,i)C 3.306(tm)-3.306 G .806(ust match at the be)-3.306
+F .806(ginning of the e)-.15 F(xpanded)-.15 E -.25(va)144 244.8 S .62
+(lue of).25 F F1(par)3.12 E(ameter)-.15 E F0 5.62(.I)C(f)-5.62 E F1
+(pattern)3.12 E F0(be)3.12 E .62(gins with)-.15 F F2(%)3.12 E F0 3.12
+(,i)C 3.121(tm)-3.12 G .621(ust match at the end of the e)-3.121 F .621
+(xpanded v)-.15 F .621(alue of)-.25 F F1(par)144 256.8 Q(ameter)-.15 E
+F0 6.254(.I)C(f)-6.254 E F1(string)3.754 E F0 1.253(is null, matches of)
+3.753 F F1(pattern)3.753 E F0 1.253(are deleted and the)3.753 F F2(/)
+3.753 E F0(follo)3.753 E(wing)-.25 E F1(pattern)3.753 E F0 1.253(may be)
+3.753 F 2.678(omitted. If)144 268.8 R F1(par)3.928 E(ameter)-.15 E F0
+(is)3.408 E F2(@)2.678 E F0(or)2.678 E F2(*)2.679 E F0 2.679(,t)C .179
+(he substitution operation is applied to each positional parameter)
+-2.679 F .619(in turn, and the e)144 280.8 R .619
+(xpansion is the resultant list.)-.15 F(If)5.619 E F1(par)4.369 E
+(ameter)-.15 E F0 .618(is an array v)3.849 F .618
+(ariable subscripted with)-.25 F F2(@)144 292.8 Q F0(or)3.223 E F2(*)
+3.223 E F0 3.223(,t)C .723(he substitution operation is applied to each\
+ member of the array in turn, and the e)-3.223 F(xpan-)-.15 E
+(sion is the resultant list.)144 304.8 Q(${)108 321.6 Q F1(par)A(ameter)
+-.15 E F2(^)A F1(pattern)A F0(})A(${)108 333.6 Q F1(par)A(ameter)-.15 E
+F2(^^)A F1(pattern)A F0(})A(${)108 345.6 Q F1(par)A(ameter)-.15 E F2(,)A
+F1(pattern)A F0(})A(${)108 357.6 Q F1(par)A(ameter)-.15 E F2(,,)A F1
+(pattern)A F0(})A F2 .438(Case modi\214cation.)144 369.6 R F0 .438
+(This e)5.438 F .437
+(xpansion modi\214es the case of alphabetic characters in)-.15 F F1(par)
+2.937 E(ameter)-.15 E F0 5.437(.T)C(he)-5.437 E F1(pattern)144 381.6 Q
+F0 .813(is e)3.313 F .813
+(xpanded to produce a pattern just as in pathname e)-.15 F 3.314
+(xpansion. The)-.15 F F2(^)3.314 E F0 .814(operator con)3.314 F -.15(ve)
+-.4 G(rts).15 E(lo)144 393.6 Q .181(wercase letters matching)-.25 F F1
+(pattern)2.681 E F0 .181(to uppercase; the)2.681 F F2(,)2.681 E F0 .181
+(operator con)2.681 F -.15(ve)-.4 G .18(rts matching uppercase letters)
+.15 F .085(to lo)144 405.6 R 2.585(wercase. The)-.25 F F2(^^)2.585 E F0
+(and)2.585 E F2(,,)2.585 E F0 -.15(ex)2.585 G .085(pansions con).15 F
+-.15(ve)-.4 G .085(rt each matched character in the e).15 F .085
+(xpanded v)-.15 F .085(alue; the)-.25 F F2(^)2.585 E F0(and)144 417.6 Q
+F2(,)3.435 E F0 -.15(ex)3.435 G .935(pansions match and con).15 F -.15
+(ve)-.4 G .934(rt only the \214rst character in the e).15 F .934
+(xpanded v)-.15 F 3.434(alue.. If)-.25 F F1(pattern)3.434 E F0(is)3.434
+E 1.12(omitted, it is treated lik)144 429.6 R 3.62(ea)-.1 G F2(?)A F0
+3.62(,w)C 1.12(hich matches e)-3.62 F -.15(ve)-.25 G 1.121(ry character)
+.15 F 6.121(.I)-.55 G(f)-6.121 E F1(par)4.871 E(ameter)-.15 E F0(is)
+4.351 E F2(@)3.621 E F0(or)3.621 E F2(*)3.621 E F0 3.621(,t)C 1.121
+(he case)-3.621 F 1.335(modi\214cation operation is applied to each pos\
+itional parameter in turn, and the e)144 441.6 R 1.335(xpansion is the)
+-.15 F 1.308(resultant list.)144 453.6 R(If)6.308 E F1(par)5.058 E
+(ameter)-.15 E F0 1.308(is an array v)4.538 F 1.308
+(ariable subscripted with)-.25 F F2(@)3.808 E F0(or)3.808 E F2(*)3.808 E
+F0 3.808(,t)C 1.308(he case modi\214cation)-3.808 F
+(operation is applied to each member of the array in turn, and the e)144
+465.6 Q(xpansion is the resultant list.)-.15 E F2(Command Substitution)
+87 482.4 Q F1 1.698(Command substitution)108 494.4 R F0(allo)4.198 E
+1.697(ws the output of a command to replace the command name.)-.25 F
+1.697(There are tw)6.697 F(o)-.1 E(forms:)108 506.4 Q F2($\()144 528 Q
+F1(command)A F2(\))1.666 E F0(or)108 540 Q F2<92>144 552 Q F1(command)A
+F2<92>A(Bash)108 568.8 Q F0 .019(performs the e)2.519 F .019
+(xpansion by e)-.15 F -.15(xe)-.15 G(cuting).15 E F1(command)2.519 E F0
+.02(and replacing the command substitution with the stan-)2.519 F .768
+(dard output of the command, with an)108 580.8 R 3.268(yt)-.15 G .768
+(railing ne)-3.268 F .768(wlines deleted.)-.25 F .768(Embedded ne)5.768
+F .768(wlines are not deleted, b)-.25 F(ut)-.2 E(the)108 592.8 Q 3.218
+(ym)-.15 G .718(ay be remo)-3.218 F -.15(ve)-.15 G 3.218(dd).15 G .719
+(uring w)-3.218 F .719(ord splitting.)-.1 F .719
+(The command substitution)5.719 F F2($\(cat)3.219 E F1(\214le)3.219 E F2
+(\))A F0 .719(can be replaced by the)3.219 F(equi)108 604.8 Q -.25(va)
+-.25 G(lent b).25 E(ut f)-.2 E(aster)-.1 E F2($\(<)2.5 E F1(\214le)2.5 E
+F2(\))A F0(.)A 1.724(When the old-style backquote form of substitution \
+is used, backslash retains its literal meaning e)108 621.6 R(xcept)-.15
+E .314(when follo)108 633.6 R .314(wed by)-.25 F F2($)2.814 E F0(,)A F2
+<92>2.814 E F0 2.814(,o)C(r)-2.814 E F2(\\)2.814 E F0 5.314(.T)C .315(h\
+e \214rst backquote not preceded by a backslash terminates the command \
+sub-)-5.314 F 3.887(stitution. When)108 645.6 R 1.387(using the $\()
+3.887 F F1(command).833 E F0 3.887(\)f)1.666 G 1.386
+(orm, all characters between the parentheses mak)-3.887 F 3.886(eu)-.1 G
+3.886(pt)-3.886 G 1.386(he com-)-3.886 F
+(mand; none are treated specially)108 657.6 Q(.)-.65 E .894
+(Command substitutions may be nested.)108 674.4 R 2.494 -.8(To n)5.894 H
+.894(est when using the backquoted form, escape the inner back-).8 F
+(quotes with backslashes.)108 686.4 Q .422
+(If the substitution appears within double quotes, w)108 703.2 R .422
+(ord splitting and pathname e)-.1 F .422(xpansion are not performed)-.15
+F(on the results.)108 715.2 Q(GNU Bash-4.0)72 768 Q(2009 February 7)
+140.96 E(20)190.95 E 0 Cg EP
+%%Page: 21 21
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(Arithmetic Expansion)87 84 Q F0 1.034
+(Arithmetic e)108 96 R 1.034(xpansion allo)-.15 F 1.034(ws the e)-.25 F
+-.25(va)-.25 G 1.034(luation of an arithmetic e).25 F 1.035
+(xpression and the substitution of the result.)-.15 F
+(The format for arithmetic e)108 108 Q(xpansion is:)-.15 E F1($\(\()144
+124.8 Q/F2 10/Times-Italic@0 SF -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A
+F0(The)108 141.6 Q F2 -.2(ex)2.666 G(pr).2 E(ession)-.37 E F0 .165
+(is treated as if it were within double quotes, b)2.906 F .165
+(ut a double quote inside the parentheses is not)-.2 F 1.074
+(treated specially)108 153.6 R 6.074(.A)-.65 G 1.074(ll tok)-6.074 F
+1.074(ens in the e)-.1 F 1.074(xpression under)-.15 F 1.074
+(go parameter e)-.18 F 1.074(xpansion, string e)-.15 F 1.075
+(xpansion, command)-.15 F(substitution, and quote remo)108 165.6 Q -.25
+(va)-.15 G 2.5(l. Arithmetic).25 F -.15(ex)2.5 G
+(pansions may be nested.).15 E 1.379(The e)108 182.4 R -.25(va)-.25 G
+1.378(luation is performed according to the rules listed belo).25 F
+3.878(wu)-.25 G(nder)-3.878 E/F3 9/Times-Bold@0 SF 1.378(ARITHMETIC EV)
+3.878 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)
+A F0(If)5.878 E F2 -.2(ex)108 194.4 S(pr).2 E(ession)-.37 E F0(is in)
+2.74 E -.25(va)-.4 G(lid,).25 E F1(bash)2.5 E F0
+(prints a message indicating f)2.5 E(ailure and no substitution occurs.)
+-.1 E F1(Pr)87 211.2 Q(ocess Substitution)-.18 E F2(Pr)108 223.2 Q .97
+(ocess substitution)-.45 F F0 .971
+(is supported on systems that support named pipes \()3.47 F F2(FIFOs)A
+F0 3.471(\)o)C 3.471(rt)-3.471 G(he)-3.471 E F1(/de)3.471 E(v/fd)-.15 E
+F0 .971(method of)3.471 F .022(naming open \214les.)108 235.2 R .021
+(It tak)5.022 F .021(es the form of)-.1 F F1(<\()2.521 E F2(list)A F1
+(\)).833 E F0(or)2.521 E F1(>\()2.521 E F2(list)A F1(\)).833 E F0 5.021
+(.T)C .021(he process)-5.021 F F2(list)2.521 E F0 .021
+(is run with its input or output con-)2.521 F .058(nected to a)108 247.2
+R F2(FIFO)2.558 E F0 .058(or some \214le in)2.558 F F1(/de)2.558 E(v/fd)
+-.15 E F0 5.058(.T)C .058(he name of this \214le is passed as an ar)
+-5.058 F .059(gument to the current com-)-.18 F .131
+(mand as the result of the e)108 259.2 R 2.631(xpansion. If)-.15 F(the)
+2.63 E F1(>\()2.63 E F2(list)A F1(\)).833 E F0 .13
+(form is used, writing to the \214le will pro)2.63 F .13(vide input for)
+-.15 F F2(list)2.63 E F0(.)A(If the)108 271.2 Q F1(<\()2.5 E F2(list)A
+F1(\)).833 E F0(form is used, the \214le passed as an ar)2.5 E
+(gument should be read to obtain the output of)-.18 E F2(list)2.5 E F0
+(.)A .896(When a)108 288 R -.25(va)-.2 G .896(ilable, process substitut\
+ion is performed simultaneously with parameter and v).25 F .897
+(ariable e)-.25 F(xpansion,)-.15 E
+(command substitution, and arithmetic e)108 300 Q(xpansion.)-.15 E F1
+-.75(Wo)87 316.8 S(rd Splitting).75 E F0 1.143
+(The shell scans the results of parameter e)108 328.8 R 1.142
+(xpansion, command substitution, and arithmetic e)-.15 F 1.142
+(xpansion that)-.15 F(did not occur within double quotes for)108 340.8 Q
+F2(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 E F0(.).22 E .063
+(The shell treats each character of)108 357.6 R F3(IFS)2.563 E F0 .063
+(as a delimiter)2.313 F 2.563(,a)-.4 G .063
+(nd splits the results of the other e)-2.563 F .063(xpansions into w)
+-.15 F(ords)-.1 E 1.789(on these characters.)108 369.6 R(If)6.789 E F3
+(IFS)4.289 E F0 1.788(is unset, or its v)4.039 F 1.788(alue is e)-.25 F
+(xactly)-.15 E F1(<space><tab><newline>)4.288 E F0 4.288(,t)C 1.788
+(he def)-4.288 F 1.788(ault, then)-.1 F .021(sequences of)108 381.6 R F1
+(<space>)2.521 E F0(,)A F1(<tab>)2.521 E F0 2.521(,a)C(nd)-2.521 E F1
+(<newline>)2.521 E F0 .021(at the be)2.521 F .021
+(ginning and end of the results of the pre)-.15 F .022(vious e)-.25 F
+(xpan-)-.15 E .586(sions are ignored, and an)108 393.6 R 3.086(ys)-.15 G
+.586(equence of)-3.086 F F3(IFS)3.086 E F0 .586
+(characters not at the be)2.836 F .586(ginning or end serv)-.15 F .585
+(es to delimit w)-.15 F(ords.)-.1 E(If)108 405.6 Q F3(IFS)3.617 E F0
+1.117(has a v)3.367 F 1.117(alue other than the def)-.25 F 1.117
+(ault, then sequences of the whitespace characters)-.1 F F1(space)3.617
+E F0(and)3.617 E F1(tab)3.617 E F0(are)3.617 E .315(ignored at the be)
+108 417.6 R .315(ginning and end of the w)-.15 F .315
+(ord, as long as the whitespace character is in the v)-.1 F .315
+(alue of)-.25 F F3(IFS)2.815 E F0(\(an)2.565 E F3(IFS)108 429.6 Q F0
+1.053(whitespace character\).)3.303 F(An)6.053 E 3.553(yc)-.15 G 1.053
+(haracter in)-3.553 F F3(IFS)3.553 E F0 1.053(that is not)3.303 F F3
+(IFS)3.553 E F0 1.054(whitespace, along with an)3.304 F 3.554(ya)-.15 G
+(djacent)-3.554 E F3(IFS)3.554 E F0 .332
+(whitespace characters, delimits a \214eld.)108 441.6 R 2.832(As)5.332 G
+.332(equence of)-2.832 F F3(IFS)2.832 E F0 .331
+(whitespace characters is also treated as a delim-)2.582 F(iter)108
+453.6 Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F3(IFS)2.5 E
+F0(is null, no w)2.25 E(ord splitting occurs.)-.1 E 1.878
+(Explicit null ar)108 470.4 R 1.878(guments \()-.18 F F1 .833("").833 G
+F0(or)3.545 E F1 .833<0808>5.211 G F0 4.378(\)a)C 1.878(re retained.)
+-4.378 F 1.878(Unquoted implicit null ar)6.878 F 1.879
+(guments, resulting from the)-.18 F -.15(ex)108 482.4 S .177
+(pansion of parameters that ha).15 F .477 -.15(ve n)-.2 H 2.677(ov).15 G
+.177(alues, are remo)-2.927 F -.15(ve)-.15 G 2.676(d. If).15 F 2.676(ap)
+2.676 G .176(arameter with no v)-2.676 F .176(alue is e)-.25 F .176
+(xpanded within)-.15 F(double quotes, a null ar)108 494.4 Q
+(gument results and is retained.)-.18 E(Note that if no e)108 511.2 Q
+(xpansion occurs, no splitting is performed.)-.15 E F1 -.1(Pa)87 528 S
+(thname Expansion).1 E F0 .37(After w)108 540 R .37
+(ord splitting, unless the)-.1 F F1<ad66>2.87 E F0 .37
+(option has been set,)2.87 F F1(bash)2.87 E F0 .371(scans each w)2.871 F
+.371(ord for the characters)-.1 F F1(*)2.871 E F0(,)A F1(?)2.871 E F0
+2.871(,a)C(nd)-2.871 E F1([)2.871 E F0(.)A .678
+(If one of these characters appears, then the w)108 552 R .677
+(ord is re)-.1 F -.05(ga)-.15 G .677(rded as a).05 F F2(pattern)3.177 E
+F0 3.177(,a).24 G .677(nd replaced with an alphabeti-)-3.177 F 1.456
+(cally sorted list of \214le names matching the pattern.)108 564 R 1.457
+(If no matching \214le names are found, and the shell)6.457 F(option)108
+576 Q F1(nullglob)2.538 E F0 .038(is not enabled, the w)2.538 F .038
+(ord is left unchanged.)-.1 F .038(If the)5.038 F F1(nullglob)2.538 E F0
+.038(option is set, and no matches are)2.538 F .305(found, the w)108 588
+R .305(ord is remo)-.1 F -.15(ve)-.15 G 2.805(d. If).15 F(the)2.805 E F1
+(failglob)2.805 E F0 .305
+(shell option is set, and no matches are found, an error message)2.805 F
+.929(is printed and the command is not e)108 600 R -.15(xe)-.15 G 3.428
+(cuted. If).15 F .928(the shell option)3.428 F F1(nocaseglob)3.428 E F0
+.928(is enabled, the match is per)3.428 F(-)-.2 E .032
+(formed without re)108 612 R -.05(ga)-.15 G .032
+(rd to the case of alphabetic characters.).05 F .033
+(When a pattern is used for pathname e)5.033 F(xpansion,)-.15 E .105
+(the character)108 624 R F1 -.63(``)2.605 G -.55(.').63 G(')-.08 E F0
+.105(at the start of a name or immediately follo)5.105 F .104
+(wing a slash must be matched e)-.25 F(xplicitly)-.15 E 2.604(,u)-.65 G
+(nless)-2.604 E .887(the shell option)108 636 R F1(dotglob)3.387 E F0
+.887(is set.)3.387 F .888
+(When matching a pathname, the slash character must al)5.887 F -.1(wa)
+-.1 G .888(ys be matched).1 F -.15(ex)108 648 S(plicitly).15 E 6.166(.I)
+-.65 G 3.666(no)-6.166 G 1.166(ther cases, the)-3.666 F F1 -.63(``)3.666
+G -.55(.').63 G(')-.08 E F0 1.166(character is not treated specially)
+6.166 F 6.165(.S)-.65 G 1.165(ee the description of)-6.165 F F1(shopt)
+3.665 E F0(belo)3.665 E(w)-.25 E(under)108 660 Q F3 .477(SHELL B)2.977 F
+(UIL)-.09 E .477(TIN COMMANDS)-.828 F F0 .477(for a description of the)
+2.727 F F1(nocaseglob)2.978 E F0(,)A F1(nullglob)2.978 E F0(,)A F1
+(failglob)2.978 E F0 2.978(,a)C(nd)-2.978 E F1(dotglob)2.978 E F0
+(shell options.)108 672 Q(The)108 688.8 Q F3(GLOBIGNORE)2.631 E F0 .131
+(shell v)2.381 F .131
+(ariable may be used to restrict the set of \214le names matching a)-.25
+F F2(pattern)2.63 E F0 5.13(.I).24 G(f)-5.13 E F3(GLO-)2.63 E(BIGNORE)
+108 700.8 Q F0 2.015(is set, each matching \214le name that also matche\
+s one of the patterns in)4.264 F F3(GLOBIGNORE)4.515 E F0(is)4.265 E
+(remo)108 712.8 Q -.15(ve)-.15 G 2.504(df).15 G .004
+(rom the list of matches.)-2.504 F .003(The \214le names)5.003 F F1 -.63
+(``)2.503 G -.55(.').63 G(')-.08 E F0(and)5.003 E F1 -.63(``)2.503 G(..)
+.63 E -.63('')-.55 G F0 .003(are al)5.633 F -.1(wa)-.1 G .003
+(ys ignored when).1 F F3(GLOBIGNORE)2.503 E F0(is)2.253 E .045
+(set and not null.)108 724.8 R(Ho)5.045 E(we)-.25 E -.15(ve)-.25 G .845
+-.4(r, s).15 H(etting).4 E F3(GLOBIGNORE)2.545 E F0 .046
+(to a non-null v)2.296 F .046(alue has the ef)-.25 F .046
+(fect of enabling the)-.25 F F1(dotglob)2.546 E F0(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(21)190.95 E 0 Cg EP
+%%Page: 22 22
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .614(shell option, so all other \214le names be)108 84 R .614
+(ginning with a)-.15 F/F1 10/Times-Bold@0 SF -.63(``)3.114 G -.55(.').63
+G(')-.08 E F0 .614(will match.)5.614 F 2.213 -.8(To g)5.614 H .613
+(et the old beha).8 F .613(vior of ignoring)-.2 F .456(\214le names be)
+108 96 R .456(ginning with a)-.15 F F1 -.63(``)2.957 G -.55(.').63 G(')
+-.08 E F0 2.957(,m)C(ak)-2.957 E(e)-.1 E F1 -.63(``)2.957 G(.*').63 E(')
+-.63 E F0 .457(one of the patterns in)5.457 F/F2 9/Times-Bold@0 SF
+(GLOBIGNORE)2.957 E/F3 9/Times-Roman@0 SF(.)A F0(The)4.957 E F1(dotglob)
+2.957 E F0 .457(option is)2.957 F(disabled when)108 108 Q F2(GLOBIGNORE)
+2.5 E F0(is unset.)2.25 E F1 -.1(Pa)108 124.8 S(tter).1 E 2.5(nM)-.15 G
+(atching)-2.5 E F0(An)108 141.6 Q 3.138(yc)-.15 G .638(haracter that ap\
+pears in a pattern, other than the special pattern characters described\
+ belo)-3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108
+153.6 R 1.12(NUL character may not occur in a pattern.)3.62 F 3.62(Ab)
+6.12 G 1.12(ackslash escapes the follo)-3.62 F 1.12(wing character; the)
+-.25 F .576(escaping backslash is discarded when matching.)108 165.6 R
+.576(The special pattern characters must be quoted if the)5.576 F 3.076
+(ya)-.15 G(re)-3.076 E(to be matched literally)108 177.6 Q(.)-.65 E
+(The special pattern characters ha)108 194.4 Q .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F1(*)108 211.2 Q F0 .455
+(Matches an)31 F 2.955(ys)-.15 G .455(tring, including the null string.)
+-2.955 F .455(When the)5.455 F F1(globstar)2.955 E F0 .455
+(shell option is enabled, and)2.955 F F1(*)2.955 E F0(is)2.955 E .576
+(used in a \214lename e)144 223.2 R .576(xpansion conte)-.15 F .575
+(xt, tw)-.15 F 3.075(oa)-.1 G(djacent)-3.075 E F1(*)3.075 E F0 3.075(su)
+C .575(sed as a single pattern will match all \214les)-3.075 F 1.183
+(and zero or more directories and subdirectories.)144 235.2 R 1.183
+(If follo)6.183 F 1.183(wed by a)-.25 F F1(/)3.683 E F0 3.683(,t)C 1.383
+-.1(wo a)-3.683 H(djacent).1 E F1(*)3.683 E F0 3.684(sw)C 1.184
+(ill match)-3.684 F(only directories and subdirectories.)144 247.2 Q F1
+(?)108 259.2 Q F0(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E
+(.)-.55 E F1([...])108 271.2 Q F0 .257(Matches an)21.84 F 2.757(yo)-.15
+G .257(ne of the enclosed characters.)-2.757 F 2.757(Ap)5.257 G .257
+(air of characters separated by a h)-2.757 F .256(yphen denotes a)-.05 F
+/F4 10/Times-Italic@0 SF -.15(ra)144 283.2 S(ng).15 E 3.289(ee)-.1 G
+(xpr)-3.489 E(ession)-.37 E F0 3.289(;a)C 1.089 -.15(ny c)-3.289 H .789
+(haracter that sorts between those tw).15 F 3.289(oc)-.1 G .789
+(haracters, inclusi)-3.289 F -.15(ve)-.25 G 3.29(,u).15 G .79
+(sing the cur)-3.29 F(-)-.2 E .35(rent locale')144 295.2 R 2.85(sc)-.55
+G .35(ollating sequence and character set, is matched.)-2.85 F .349
+(If the \214rst character follo)5.349 F .349(wing the)-.25 F F1([)2.849
+E F0 .563(is a)144 307.2 R F1(!)3.063 E F0 .563(or a)5.563 F F1(^)3.063
+E F0 .564(then an)3.063 F 3.064(yc)-.15 G .564
+(haracter not enclosed is matched.)-3.064 F .564
+(The sorting order of characters in range)5.564 F -.15(ex)144 319.2 S
+1.102(pressions is determined by the current locale and the v).15 F
+1.102(alue of the)-.25 F F1(LC_COLLA)3.602 E(TE)-.95 E F0 1.102(shell v)
+3.602 F(ari-)-.25 E .088(able, if set.)144 331.2 R(A)5.088 E F1<ad>2.588
+E F0 .088(may be matched by including it as the \214rst or last charact\
+er in the set.)2.588 F(A)5.089 E F1(])2.589 E F0 .089(may be)2.589 F
+(matched by including it as the \214rst character in the set.)144 343.2
+Q -.4(Wi)144 361.2 S(thin).4 E F1([)2.915 E F0(and)2.915 E F1(])2.915 E
+F0(,)A F4 -.15(ch)2.915 G(ar).15 E .415(acter classes)-.15 F F0 .415
+(can be speci\214ed using the syntax)2.915 F F1([:)2.915 E F4(class)A F1
+(:])A F0 2.914(,w)C(here)-2.914 E F4(class)2.914 E F0 .414(is one of)
+2.914 F(the follo)144 373.2 Q
+(wing classes de\214ned in the POSIX standard:)-.25 E F1 5.421
+(alnum alpha ascii blank cntrl digit graph lo)144 385.2 R 5.421
+(wer print punct space upper w)-.1 F(ord)-.1 E(xdigit)144 397.2 Q F0
+2.519(Ac)144 409.2 S .019(haracter class matches an)-2.519 F 2.519(yc)
+-.15 G .019(haracter belonging to that class.)-2.519 F(The)5.018 E F1
+-.1(wo)2.518 G(rd).1 E F0 .018(character class matches)2.518 F
+(letters, digits, and the character _.)144 421.2 Q -.4(Wi)144 439.2 S
+(thin).4 E F1([)3.546 E F0(and)3.546 E F1(])3.546 E F0 3.546(,a)C(n)
+-3.546 E F4 1.046(equivalence class)3.546 F F0 1.046
+(can be speci\214ed using the syntax)3.546 F F1([=)3.547 E F4(c)A F1(=])
+A F0 3.547(,w)C 1.047(hich matches all)-3.547 F(characters with the sam\
+e collation weight \(as de\214ned by the current locale\) as the charac\
+ter)144 451.2 Q F4(c)2.5 E F0(.)A -.4(Wi)144 469.2 S(thin).4 E F1([)2.5
+E F0(and)2.5 E F1(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F1([.)2.5 E F4
+(symbol)A F1(.])A F0(matches the collating symbol)2.5 E F4(symbol)2.5 E
+F0(.)A .705(If the)108 486 R F1(extglob)3.205 E F0 .705
+(shell option is enabled using the)3.205 F F1(shopt)3.205 E F0 -.2(bu)
+3.205 G .704(iltin, se).2 F -.15(ve)-.25 G .704(ral e).15 F .704
+(xtended pattern matching operators)-.15 F .255(are recognized.)108 498
+R .255(In the follo)5.255 F .255(wing description, a)-.25 F F4
+(pattern-list)2.755 E F0 .255
+(is a list of one or more patterns separated by a)2.755 F F1(|)2.756 E
+F0(.)A(Composite patterns may be formed using one or more of the follo)
+108 510 Q(wing sub-patterns:)-.25 E F1(?\()144 534 Q F4(pattern-list)
+.833 E F1(\)).833 E F0(Matches zero or one occurrence of the gi)180 546
+Q -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(*\()144 558 Q F4
+(pattern-list).833 E F1(\)).833 E F0
+(Matches zero or more occurrences of the gi)180 570 Q -.15(ve)-.25 G 2.5
+(np).15 G(atterns)-2.5 E F1(+\()144 582 Q F4(pattern-list).833 E F1(\))
+.833 E F0(Matches one or more occurrences of the gi)180 594 Q -.15(ve)
+-.25 G 2.5(np).15 G(atterns)-2.5 E F1(@\()144 606 Q F4(pattern-list).833
+E F1(\)).833 E F0(Matches one of the gi)180 618 Q -.15(ve)-.25 G 2.5(np)
+.15 G(atterns)-2.5 E F1(!\()144 630 Q F4(pattern-list).833 E F1(\)).833
+E F0(Matches an)180 642 Q(ything e)-.15 E(xcept one of the gi)-.15 E
+-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(Quote Remo)87 658.8 Q -.1
+(va)-.1 G(l).1 E F0 1.113(After the preceding e)108 670.8 R 1.113
+(xpansions, all unquoted occurrences of the characters)-.15 F F1(\\)
+3.613 E F0(,)A F1<08>3.612 E F0 3.612(,a)C(nd)-3.612 E F1(")4.445 E F0
+1.112(that did not result)4.445 F(from one of the abo)108 682.8 Q .3
+-.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F5
+10.95/Times-Bold@0 SF(REDIRECTION)72 699.6 Q F0 .545
+(Before a command is e)108 711.6 R -.15(xe)-.15 G .545
+(cuted, its input and output may be).15 F F4 -.37(re)3.045 G(dir).37 E
+(ected)-.37 E F0 .545(using a special notation interpreted)3.815 F 2.77
+(by the shell.)108 723.6 R 2.769(Redirection may also be used to open a\
+nd close \214les for the current shell e)7.77 F -.15(xe)-.15 G(cution)
+.15 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(22)190.95 E 0 Cg EP
+%%Page: 23 23
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(en)108 84 Q 3.36(vironment. The)-.4 F(follo)3.36 E .86
+(wing redirection operators may precede or appear an)-.25 F .86
+(ywhere within a)-.15 F/F1 10/Times-Italic@0 SF .86(simple com-)3.7 F
+(mand)108 96 Q F0(or may follo)3.27 E 2.5(wa)-.25 G F1(command)A F0 5
+(.R).77 G(edirections are processed in the order the)-5 E 2.5(ya)-.15 G
+(ppear)-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .284(In the follo)
+108 112.8 R .283(wing descriptions, if the \214le descriptor number is \
+omitted, and the \214rst character of the redirect-)-.25 F .512
+(ion operator is)108 124.8 R/F2 10/Times-Bold@0 SF(<)3.012 E F0 3.012
+(,t)C .512
+(he redirection refers to the standard input \(\214le descriptor 0\).)
+-3.012 F .512(If the \214rst character of the)5.512 F
+(redirection operator is)108 136.8 Q F2(>)2.5 E F0 2.5(,t)C
+(he redirection refers to the standard output \(\214le descriptor 1\).)
+-2.5 E .825(The w)108 153.6 R .825(ord follo)-.1 F .824
+(wing the redirection operator in the follo)-.25 F .824
+(wing descriptions, unless otherwise noted, is sub-)-.25 F .772
+(jected to brace e)108 165.6 R .773(xpansion, tilde e)-.15 F .773
+(xpansion, parameter e)-.15 F .773
+(xpansion, command substitution, arithmetic e)-.15 F(xpan-)-.15 E .844
+(sion, quote remo)108 177.6 R -.25(va)-.15 G .843(l, pathname e).25 F
+.843(xpansion, and w)-.15 F .843(ord splitting.)-.1 F .843(If it e)5.843
+F .843(xpands to more than one w)-.15 F(ord,)-.1 E F2(bash)3.343 E F0
+(reports an error)108 189.6 Q(.)-.55 E
+(Note that the order of redirections is signi\214cant.)108 206.4 Q -.15
+(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 223.2 Q F2(>)2.5
+E F0(dirlist 2)2.5 E F2(>&)A F0(1)A
+(directs both standard output and standard error to the \214le)108 240 Q
+F1(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144 256.8
+Q F2(>&)A F0(1)A F2(>)2.5 E F0(dirlist)2.5 E .527
+(directs only the standard output to \214le)108 273.6 R F1(dirlist)3.027
+E F0 3.027(,b).68 G .527(ecause the standard error w)-3.027 F .527
+(as duplicated from the standard)-.1 F
+(output before the standard output w)108 285.6 Q(as redirected to)-.1 E
+F1(dirlist)2.5 E F0(.).68 E F2(Bash)108 302.4 Q F0 .599(handles se)3.099
+F -.15(ve)-.25 G .599(ral \214lenames specially when the).15 F 3.099(ya)
+-.15 G .598(re used in redirections, as described in the follo)-3.099 F
+(wing)-.25 E(table:)108 314.4 Q F2(/de)144 331.2 Q(v/fd/)-.15 E F1(fd)A
+F0(If)180 343.2 Q F1(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15
+E 2.5<2c8c>-.4 G(le descriptor)-2.5 E F1(fd)2.5 E F0(is duplicated.)2.5
+E F2(/de)144 355.2 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.)
+180 367.2 Q F2(/de)144 379.2 Q(v/stdout)-.15 E F0
+(File descriptor 1 is duplicated.)180 391.2 Q F2(/de)144 403.2 Q
+(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 415.2 Q F2(/de)
+144 427.2 Q(v/tcp/)-.15 E F1(host)A F2(/)A F1(port)A F0(If)180 439.2 Q
+F1(host)2.996 E F0 .496(is a v)2.996 F .496
+(alid hostname or Internet address, and)-.25 F F1(port)2.997 E F0 .497
+(is an inte)2.997 F .497(ger port number or ser)-.15 F(-)-.2 E
+(vice name,)180 451.2 Q F2(bash)2.5 E F0
+(attempts to open a TCP connection to the corresponding sock)2.5 E(et.)
+-.1 E F2(/de)144 463.2 Q(v/udp/)-.15 E F1(host)A F2(/)A F1(port)A F0(If)
+180 475.2 Q F1(host)2.997 E F0 .497(is a v)2.997 F .497
+(alid hostname or Internet address, and)-.25 F F1(port)2.996 E F0 .496
+(is an inte)2.996 F .496(ger port number or ser)-.15 F(-)-.2 E
+(vice name,)180 487.2 Q F2(bash)2.5 E F0
+(attempts to open a UDP connection to the corresponding sock)2.5 E(et.)
+-.1 E 2.5(Af)108 504 S
+(ailure to open or create a \214le causes the redirection to f)-2.6 E
+(ail.)-.1 E .946(Redirections using \214le descriptors greater than 9 s\
+hould be used with care, as the)108 520.8 R 3.447(ym)-.15 G .947
+(ay con\215ict with \214le)-3.447 F
+(descriptors the shell uses internally)108 532.8 Q(.)-.65 E F2(Redir)87
+549.6 Q(ecting Input)-.18 E F0 .391
+(Redirection of input causes the \214le whose name results from the e)
+108 561.6 R .391(xpansion of)-.15 F F1(wor)3.231 E(d)-.37 E F0 .391
+(to be opened for read-)3.661 F(ing on \214le descriptor)108 573.6 Q F1
+(n)2.5 E F0 2.5(,o).24 G 2.5(rt)-2.5 G
+(he standard input \(\214le descriptor 0\) if)-2.5 E F1(n)2.86 E F0
+(is not speci\214ed.)2.74 E
+(The general format for redirecting input is:)108 590.4 Q([)144 607.2 Q
+F1(n)A F0(])A F2(<)A F1(wor)A(d)-.37 E F2(Redir)87 624 Q(ecting Output)
+-.18 E F0 .174
+(Redirection of output causes the \214le whose name results from the e)
+108 636 R .175(xpansion of)-.15 F F1(wor)3.015 E(d)-.37 E F0 .175
+(to be opened for writ-)3.445 F .825(ing on \214le descriptor)108 648 R
+F1(n)3.325 E F0 3.325(,o).24 G 3.325(rt)-3.325 G .824
+(he standard output \(\214le descriptor 1\) if)-3.325 F F1(n)3.684 E F0
+.824(is not speci\214ed.)3.564 F .824(If the \214le does not)5.824 F
+-.15(ex)108 660 S(ist it is created; if it does e).15 E
+(xist it is truncated to zero size.)-.15 E
+(The general format for redirecting output is:)108 676.8 Q([)144 693.6 Q
+F1(n)A F0(])A F2(>)A F1(wor)A(d)-.37 E F0 .154
+(If the redirection operator is)108 710.4 R F2(>)2.654 E F0 2.654(,a)C
+.154(nd the)-2.654 F F2(noclob)2.654 E(ber)-.1 E F0 .154(option to the)
+2.654 F F2(set)2.655 E F0 -.2(bu)2.655 G .155
+(iltin has been enabled, the redirection).2 F 1.76(will f)108 722.4 R
+1.76(ail if the \214le whose name results from the e)-.1 F 1.759
+(xpansion of)-.15 F F1(wor)4.259 E(d)-.37 E F0 -.15(ex)4.259 G 1.759
+(ists and is a re).15 F 1.759(gular \214le.)-.15 F 1.759(If the)6.759 F
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(23)190.95 E 0 Cg EP
+%%Page: 24 24
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .594(redirection operator is)108 84 R/F1 10/Times-Bold@0 SF(>|)
+3.094 E F0 3.094(,o)C 3.094(rt)-3.094 G .594(he redirection operator is)
+-3.094 F F1(>)3.094 E F0 .595(and the)3.094 F F1(noclob)3.095 E(ber)-.1
+E F0 .595(option to the)3.095 F F1(set)3.095 E F0 -.2(bu)3.095 G .595
+(iltin com-).2 F(mand is not enabled, the redirection is attempted e)108
+96 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)-2.5 E
+/F2 10/Times-Italic@0 SF(wor)2.5 E(d)-.37 E F0 -.15(ex)2.5 G(ists.).15 E
+F1 -.25(Ap)87 112.8 S(pending Redir).25 E(ected Output)-.18 E F0 .642
+(Redirection of output in this f)108 124.8 R .642
+(ashion causes the \214le whose name results from the e)-.1 F .641
+(xpansion of)-.15 F F2(wor)3.481 E(d)-.37 E F0 .641(to be)3.911 F .473
+(opened for appending on \214le descriptor)108 136.8 R F2(n)2.973 E F0
+2.974(,o).24 G 2.974(rt)-2.974 G .474
+(he standard output \(\214le descriptor 1\) if)-2.974 F F2(n)3.334 E F0
+.474(is not speci\214ed.)3.214 F(If)5.474 E(the \214le does not e)108
+148.8 Q(xist it is created.)-.15 E
+(The general format for appending output is:)108 165.6 Q([)144 182.4 Q
+F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 204 Q
+(ecting Standard Output and Standard Err)-.18 E(or)-.18 E F0 .249
+(This construct allo)108 216 R .249(ws both the standard output \(\214l\
+e descriptor 1\) and the standard error output \(\214le descrip-)-.25 F
+(tor 2\) to be redirected to the \214le whose name is the e)108 228 Q
+(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E(There are tw)108
+244.8 Q 2.5(of)-.1 G
+(ormats for redirecting standard output and standard error:)-2.5 E F1
+(&>)144 261.6 Q F2(wor)A(d)-.37 E F0(and)108 273.6 Q F1(>&)144 285.6 Q
+F2(wor)A(d)-.37 E F0(Of the tw)108 302.4 Q 2.5(of)-.1 G
+(orms, the \214rst is preferred.)-2.5 E(This is semantically equi)5 E
+-.25(va)-.25 G(lent to).25 E F1(>)144 319.2 Q F2(wor)A(d)-.37 E F0(2)2.5
+E F1(>&)A F0(1)A F1 -.25(Ap)87 340.8 S
+(pending Standard Output and Standard Err).25 E(or)-.18 E F0 .248
+(This construct allo)108 352.8 R .249(ws both the standard output \(\
+\214le descriptor 1\) and the standard error output \(\214le descrip-)
+-.25 F(tor 2\) to be appended to the \214le whose name is the e)108
+364.8 Q(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E
+(The format for appending standard output and standard error is:)108
+381.6 Q F1(&>>)144 398.4 Q F2(wor)A(d)-.37 E F0
+(This is semantically equi)108 415.2 Q -.25(va)-.25 G(lent to).25 E F1
+(>>)144 432 Q F2(wor)A(d)-.37 E F0(2)2.5 E F1(>&)A F0(1)A F1(Her)87
+448.8 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33(This type of redirection i\
+nstructs the shell to read input from the current source until a line c\
+ontaining only)108 460.8 R F2(delimiter)108.35 472.8 Q F0 .614
+(\(with no trailing blanks\) is seen.)3.844 F .615
+(All of the lines read up to that point are then used as the stan-)5.615
+F(dard input for a command.)108 484.8 Q
+(The format of here-documents is:)108 501.6 Q F1(<<)144 518.4 Q F0([)A
+F1<ad>A F0(])A F2(wor)A(d)-.37 E(her)164 530.4 Q(e-document)-.37 E
+(delimiter)144 542.4 Q F0 .128(No parameter e)108 559.2 R .127
+(xpansion, command substitution, arithmetic e)-.15 F .127
+(xpansion, or pathname e)-.15 F .127(xpansion is performed)-.15 F(on)108
+571.2 Q F2(wor)3.274 E(d)-.37 E F0 5.774(.I).77 G 3.274(fa)-5.774 G
+1.074 -.15(ny c)-3.274 H .774(haracters in).15 F F2(wor)3.614 E(d)-.37 E
+F0 .774(are quoted, the)4.044 F F2(delimiter)3.624 E F0 .774
+(is the result of quote remo)4.004 F -.25(va)-.15 G 3.275(lo).25 G(n)
+-3.275 E F2(wor)3.275 E(d)-.37 E F0 3.275(,a).77 G(nd)-3.275 E .905
+(the lines in the here-document are not e)108 583.2 R 3.405(xpanded. If)
+-.15 F F2(wor)3.405 E(d)-.37 E F0 .904
+(is unquoted, all lines of the here-document are)3.405 F .694
+(subjected to parameter e)108 595.2 R .695
+(xpansion, command substitution, and arithmetic e)-.15 F 3.195
+(xpansion. In)-.15 F .695(the latter case, the)3.195 F
+(character sequence)108 607.2 Q F1(\\<newline>)2.5 E F0(is ignored, and)
+2.5 E F1(\\)2.5 E F0(must be used to quote the characters)2.5 E F1(\\)
+2.5 E F0(,)A F1($)2.5 E F0 2.5(,a)C(nd)-2.5 E F1<92>2.5 E F0(.)A .602
+(If the redirection operator is)108 624 R F1(<<\255)3.101 E F0 3.101(,t)
+C .601(hen all leading tab characters are stripped from input lines and\
+ the line)-3.101 F(containing)108 636 Q F2(delimiter)2.5 E F0 5(.T).73 G
+(his allo)-5 E
+(ws here-documents within shell scripts to be indented in a natural f)
+-.25 E(ashion.)-.1 E F1(Her)87 652.8 Q 2.5(eS)-.18 G(trings)-2.5 E F0
+2.5(Av)108 664.8 S(ariant of here documents, the format is:)-2.75 E F1
+(<<<)144 681.6 Q F2(wor)A(d)-.37 E F0(The)108 698.4 Q F2(wor)2.5 E(d)
+-.37 E F0(is e)2.5 E
+(xpanded and supplied to the command on its standard input.)-.15 E
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(24)190.95 E 0 Cg EP
+%%Page: 25 25
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(Duplicating File Descriptors)87 84 Q F0
+(The redirection operator)108 96 Q([)144 112.8 Q/F2 10/Times-Italic@0 SF
+(n)A F0(])A F1(<&)A F2(wor)A(d)-.37 E F0 .126
+(is used to duplicate input \214le descriptors.)108 129.6 R(If)5.127 E
+F2(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .127
+(pands to one or more digits, the \214le descriptor denoted).15 F(by)108
+141.6 Q F2(n)3.318 E F0 .458(is made to be a cop)3.198 F 2.958(yo)-.1 G
+2.958(ft)-2.958 G .457(hat \214le descriptor)-2.958 F 5.457(.I)-.55 G
+2.957(ft)-5.457 G .457(he digits in)-2.957 F F2(wor)3.297 E(d)-.37 E F0
+.457(do not specify a \214le descriptor open)3.727 F .149
+(for input, a redirection error occurs.)108 153.6 R(If)5.149 E F2(wor)
+2.989 E(d)-.37 E F0 -.25(eva)3.419 G .149(luates to).25 F F1<ad>2.649 E
+F0 2.65<2c8c>C .15(le descriptor)-2.65 F F2(n)3.01 E F0 .15(is closed.)
+2.89 F(If)5.15 E F2(n)3.01 E F0 .15(is not speci\214ed,)2.89 F
+(the standard input \(\214le descriptor 0\) is used.)108 165.6 Q
+(The operator)108 182.4 Q([)144 199.2 Q F2(n)A F0(])A F1(>&)A F2(wor)A
+(d)-.37 E F0 .444
+(is used similarly to duplicate output \214le descriptors.)108 216 R(If)
+5.444 E F2(n)3.304 E F0 .443
+(is not speci\214ed, the standard output \(\214le descrip-)3.183 F 1.357
+(tor 1\) is used.)108 228 R 1.357(If the digits in)6.357 F F2(wor)4.197
+E(d)-.37 E F0 1.358(do not specify a \214le descriptor open for output,\
+ a redirection error)4.627 F 2.597(occurs. As)108 240 R 2.597(as)2.597 G
+.097(pecial case, if)-2.597 F F2(n)2.596 E F0 .096(is omitted, and)2.596
+F F2(wor)2.596 E(d)-.37 E F0 .096(does not e)2.596 F .096
+(xpand to one or more digits, the standard out-)-.15 F
+(put and standard error are redirected as described pre)108 252 Q
+(viously)-.25 E(.)-.65 E F1(Mo)87 268.8 Q(ving File Descriptors)-.1 E F0
+(The redirection operator)108 280.8 Q([)144 297.6 Q F2(n)A F0(])A F1(<&)
+A F2(digit)A F1<ad>A F0(mo)108 314.4 Q -.15(ve)-.15 G 3.035(st).15 G
+.535(he \214le descriptor)-3.035 F F2(digit)3.035 E F0 .535
+(to \214le descriptor)3.035 F F2(n)3.035 E F0 3.035(,o).24 G 3.035(rt)
+-3.035 G .536(he standard input \(\214le descriptor 0\) if)-3.035 F F2
+(n)3.036 E F0 .536(is not speci-)3.036 F(\214ed.)108 326.4 Q F2(digit)5
+E F0(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A
+(Similarly)108 343.2 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)
+144 360 Q F2(n)A F0(])A F1(>&)A F2(digit)A F1<ad>A F0(mo)108 376.8 Q
+-.15(ve)-.15 G 2.786(st).15 G .286(he \214le descriptor)-2.786 F F2
+(digit)2.786 E F0 .286(to \214le descriptor)2.786 F F2(n)2.786 E F0
+2.786(,o).24 G 2.786(rt)-2.786 G .285
+(he standard output \(\214le descriptor 1\) if)-2.786 F F2(n)2.785 E F0
+.285(is not speci-)2.785 F(\214ed.)108 388.8 Q F1
+(Opening File Descriptors f)87 405.6 Q(or Reading and Writing)-.25 E F0
+(The redirection operator)108 417.6 Q([)144 434.4 Q F2(n)A F0(])A F1(<>)
+A F2(wor)A(d)-.37 E F0 1.349(causes the \214le whose name is the e)108
+451.2 R 1.349(xpansion of)-.15 F F2(wor)4.189 E(d)-.37 E F0 1.349
+(to be opened for both reading and writing on \214le)4.619 F(descriptor)
+108 463.2 Q F2(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>-2.5 G
+(le descriptor 0 if)-2.5 E F2(n)2.86 E F0(is not speci\214ed.)2.74 E
+(If the \214le does not e)5 E(xist, it is created.)-.15 E/F3 10.95
+/Times-Bold@0 SF(ALIASES)72 480 Q F2(Aliases)108 492 Q F0(allo)3.174 E
+3.174(was)-.25 G .674(tring to be substituted for a w)-3.174 F .674
+(ord when it is used as the \214rst w)-.1 F .673
+(ord of a simple command.)-.1 F .394(The shell maintains a list of alia\
+ses that may be set and unset with the)108 504 R F1(alias)2.894 E F0
+(and)2.894 E F1(unalias)2.894 E F0 -.2(bu)2.894 G .394(iltin commands).2
+F(\(see)108 516 Q/F4 9/Times-Bold@0 SF 1.98(SHELL B)4.48 F(UIL)-.09 E
+1.98(TIN COMMANDS)-.828 F F0(belo)4.23 E 4.48(w\). The)-.25 F 1.98
+(\214rst w)4.48 F 1.979(ord of each simple command, if unquoted, is)-.1
+F(check)108 528 Q .472(ed to see if it has an alias.)-.1 F .472
+(If so, that w)5.472 F .473(ord is replaced by the te)-.1 F .473
+(xt of the alias.)-.15 F .473(The characters)5.473 F F1(/)2.973 E F0(,)A
+F1($)2.973 E F0(,)A F1<92>2.973 E F0(,)A(and)108 540 Q F1(=)3.612 E F0
+1.112(and an)3.612 F 3.612(yo)-.15 G 3.612(ft)-3.612 G 1.112(he shell)
+-3.612 F F2(metac)3.612 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112
+(or quoting characters listed abo)3.612 F 1.411 -.15(ve m)-.15 H 1.111
+(ay not appear in an alias).15 F 3.619(name. The)108 552 R 1.119
+(replacement te)3.619 F 1.119(xt may contain an)-.15 F 3.619(yv)-.15 G
+1.119(alid shell input, including shell metacharacters.)-3.869 F 1.12
+(The \214rst)6.12 F -.1(wo)108 564 S .514(rd of the replacement te).1 F
+.514(xt is tested for aliases, b)-.15 F .514(ut a w)-.2 F .513
+(ord that is identical to an alias being e)-.1 F .513(xpanded is)-.15 F
+.295(not e)108 576 R .295(xpanded a second time.)-.15 F .296
+(This means that one may alias)5.295 F F1(ls)2.796 E F0(to)2.796 E F1
+.296(ls \255F)2.796 F F0 2.796(,f)C .296(or instance, and)-2.796 F F1
+(bash)2.796 E F0 .296(does not try)2.796 F .543(to recursi)108 588 R
+-.15(ve)-.25 G .543(ly e).15 F .543(xpand the replacement te)-.15 F
+3.043(xt. If)-.15 F .543(the last character of the alias v)3.043 F .542
+(alue is a)-.25 F F2(blank)3.042 E F0 3.042(,t).67 G .542(hen the ne)
+-3.042 F(xt)-.15 E(command w)108 600 Q(ord follo)-.1 E
+(wing the alias is also check)-.25 E(ed for alias e)-.1 E(xpansion.)-.15
+E(Aliases are created and listed with the)108 616.8 Q F1(alias)2.5 E F0
+(command, and remo)2.5 E -.15(ve)-.15 G 2.5(dw).15 G(ith the)-2.5 E F1
+(unalias)2.5 E F0(command.)2.5 E .284
+(There is no mechanism for using ar)108 633.6 R .284
+(guments in the replacement te)-.18 F 2.784(xt. If)-.15 F(ar)2.784 E
+.284(guments are needed, a shell func-)-.18 F(tion should be used \(see)
+108 645.6 Q F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.22
+(Aliases are not e)108 662.4 R 1.22
+(xpanded when the shell is not interacti)-.15 F -.15(ve)-.25 G 3.72(,u)
+.15 G 1.22(nless the)-3.72 F F1(expand_aliases)3.72 E F0 1.22
+(shell option is set)3.72 F(using)108 674.4 Q F1(shopt)2.5 E F0
+(\(see the description of)2.5 E F1(shopt)2.5 E F0(under)2.5 E F4
+(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25
+E .435
+(The rules concerning the de\214nition and use of aliases are some)108
+691.2 R .436(what confusing.)-.25 F F1(Bash)5.436 E F0(al)2.936 E -.1
+(wa)-.1 G .436(ys reads at least).1 F .338
+(one complete line of input before e)108 703.2 R -.15(xe)-.15 G .338
+(cuting an).15 F 2.838(yo)-.15 G 2.838(ft)-2.838 G .338
+(he commands on that line.)-2.838 F .337(Aliases are e)5.337 F .337
+(xpanded when)-.15 F 3.403(ac)108 715.2 S .904
+(ommand is read, not when it is e)-3.403 F -.15(xe)-.15 G 3.404
+(cuted. Therefore,).15 F .904
+(an alias de\214nition appearing on the same line as)3.404 F 1.162
+(another command does not tak)108 727.2 R 3.662(ee)-.1 G -.25(ff)-3.662
+G 1.162(ect until the ne).25 F 1.162(xt line of input is read.)-.15 F
+1.161(The commands follo)6.161 F 1.161(wing the)-.25 F(GNU Bash-4.0)72
+768 Q(2009 February 7)140.96 E(25)190.95 E 0 Cg EP
+%%Page: 26 26
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .277(alias de\214nition on that line are not af)108 84 R .277
+(fected by the ne)-.25 F 2.777(wa)-.25 G 2.777(lias. This)-2.777 F(beha)
+2.777 E .277(vior is also an issue when functions)-.2 F .699(are e)108
+96 R -.15(xe)-.15 G 3.199(cuted. Aliases).15 F .699(are e)3.199 F .699(\
+xpanded when a function de\214nition is read, not when the function is \
+e)-.15 F -.15(xe)-.15 G(cuted,).15 E .494
+(because a function de\214nition is itself a compound command.)108 108 R
+.495(As a consequence, aliases de\214ned in a func-)5.494 F .085
+(tion are not a)108 120 R -.25(va)-.2 G .084
+(ilable until after that function is e).25 F -.15(xe)-.15 G 2.584
+(cuted. T).15 F 2.584(ob)-.8 G 2.584(es)-2.584 G .084(afe, al)-2.584 F
+-.1(wa)-.1 G .084(ys put alias de\214nitions on a sepa-).1 F
+(rate line, and do not use)108 132 Q/F1 10/Times-Bold@0 SF(alias)2.5 E
+F0(in compound commands.)2.5 E -.15(Fo)108 148.8 S 2.5(ra).15 G(lmost e)
+-2.5 E -.15(ve)-.25 G
+(ry purpose, aliases are superseded by shell functions.).15 E/F2 10.95
+/Times-Bold@0 SF(FUNCTIONS)72 165.6 Q F0 3.467(As)108 177.6 S .967
+(hell function, de\214ned as described abo)-3.467 F 1.267 -.15(ve u)-.15
+H(nder).15 E/F3 9/Times-Bold@0 SF .967(SHELL GRAMMAR)3.467 F/F4 9
+/Times-Roman@0 SF(,)A F0 .968(stores a series of commands for)3.217 F
+1.002(later e)108 189.6 R -.15(xe)-.15 G 3.502(cution. When).15 F 1.002
+(the name of a shell function is used as a simple command name, the lis\
+t of com-)3.502 F .315(mands associated with that function name is e)108
+201.6 R -.15(xe)-.15 G 2.816(cuted. Functions).15 F .316(are e)2.816 F
+-.15(xe)-.15 G .316(cuted in the conte).15 F .316(xt of the current)-.15
+F .036(shell; no ne)108 213.6 R 2.536(wp)-.25 G .036
+(rocess is created to interpret them \(contrast this with the e)-2.536 F
+-.15(xe)-.15 G .036(cution of a shell script\).).15 F .035(When a)5.035
+F .639(function is e)108 225.6 R -.15(xe)-.15 G .639(cuted, the ar).15 F
+.639
+(guments to the function become the positional parameters during its e)
+-.18 F -.15(xe)-.15 G(cution.).15 E .533(The special parameter)108 237.6
+R F1(#)3.033 E F0 .532(is updated to re\215ect the change.)3.033 F .532
+(Special parameter 0 is unchanged.)5.532 F .532(The \214rst ele-)5.532 F
+1.017(ment of the)108 249.6 R F3(FUNCN)3.517 E(AME)-.18 E F0 -.25(va)
+3.267 G 1.017
+(riable is set to the name of the function while the function is e).25 F
+-.15(xe)-.15 G 3.518(cuting. All).15 F 1.285
+(other aspects of the shell e)108 261.6 R -.15(xe)-.15 G 1.285
+(cution en).15 F 1.285
+(vironment are identical between a function and its caller with the)-.4
+F -.15(ex)108 273.6 S 2.029(ception that the).15 F F3(DEB)4.529 E(UG)
+-.09 E F0(and)4.279 E F1(RETURN)4.529 E F0 2.029
+(traps \(see the description of the)4.529 F F1(trap)4.53 E F0 -.2(bu)
+4.53 G 2.03(iltin under).2 F F3(SHELL)4.53 E -.09(BU)108 285.6 S(IL).09
+E .479(TIN COMMANDS)-.828 F F0(belo)2.729 E .479
+(w\) are not inherited unless the function has been gi)-.25 F -.15(ve)
+-.25 G 2.978(nt).15 G(he)-2.978 E F1(trace)2.978 E F0(attrib)2.978 E
+.478(ute \(see)-.2 F .42(the description of the)108 297.6 R F3(declar)
+2.92 E(e)-.162 E F0 -.2(bu)2.67 G .42(iltin belo).2 F .42(w\) or the)
+-.25 F F1 .42(\255o functrace)2.92 F F0 .42
+(shell option has been enabled with the)2.92 F F1(set)2.921 E F0 -.2(bu)
+108 309.6 S(iltin \(in which case all functions inherit the).2 E F1(DEB)
+2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps\).)2.5 E -1.11(Va)
+108 326.4 S .656(riables local to the function may be declared with the)
+1.11 F F1(local)3.155 E F0 -.2(bu)3.155 G .655(iltin command.).2 F
+(Ordinarily)5.655 E 3.155(,v)-.65 G .655(ariables and)-3.405 F(their v)
+108 338.4 Q(alues are shared between the function and its caller)-.25 E
+(.)-.55 E .043(If the b)108 355.2 R .043(uiltin command)-.2 F F1 -.18
+(re)2.543 G(tur).18 E(n)-.15 E F0 .043(is e)2.543 F -.15(xe)-.15 G .043
+(cuted in a function, the function completes and e).15 F -.15(xe)-.15 G
+.044(cution resumes with).15 F 1.012(the ne)108 367.2 R 1.012
+(xt command after the function call.)-.15 F(An)6.011 E 3.511(yc)-.15 G
+1.011(ommand associated with the)-3.511 F F1(RETURN)3.511 E F0 1.011
+(trap is e)3.511 F -.15(xe)-.15 G(cuted).15 E .213(before e)108 379.2 R
+-.15(xe)-.15 G .213(cution resumes.).15 F .213
+(When a function completes, the v)5.213 F .214
+(alues of the positional parameters and the spe-)-.25 F(cial parameter)
+108 391.2 Q F1(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E
+2.5(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)
+-2.65 G(cution.).15 E 1.359
+(Function names and de\214nitions may be listed with the)108 408 R F1
+<ad66>3.858 E F0 1.358(option to the)3.858 F F1(declar)3.858 E(e)-.18 E
+F0(or)3.858 E F1(typeset)3.858 E F0 -.2(bu)3.858 G 1.358(iltin com-).2 F
+3.39(mands. The)108 420 R F1<ad46>3.39 E F0 .89(option to)3.39 F F1
+(declar)3.39 E(e)-.18 E F0(or)3.39 E F1(typeset)3.39 E F0 .89
+(will list the function names only \(and optionally the source)3.39 F
+.327(\214le and line number)108 432 R 2.827(,i)-.4 G 2.827(ft)-2.827 G
+(he)-2.827 E F1(extdeb)2.827 E(ug)-.2 E F0 .326
+(shell option is enabled\).)2.827 F .326(Functions may be e)5.326 F .326
+(xported so that subshells)-.15 F 1.297(automatically ha)108 444 R 1.597
+-.15(ve t)-.2 H 1.297(hem de\214ned with the).15 F F1<ad66>3.797 E F0
+1.297(option to the)3.797 F F1(export)3.798 E F0 -.2(bu)3.798 G 3.798
+(iltin. A).2 F 1.298(function de\214nition may be)3.798 F .161
+(deleted using the)108 456 R F1<ad66>2.661 E F0 .161(option to the)2.661
+F F1(unset)2.661 E F0 -.2(bu)2.661 G 2.661(iltin. Note).2 F .16
+(that shell functions and v)2.661 F .16(ariables with the same name)-.25
+F 1.325(may result in multiple identically-named entries in the en)108
+468 R 1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G 3.825
+(hildren. Care)-3.825 F(should be tak)108 480 Q
+(en in cases where this may cause a problem.)-.1 E
+(Functions may be recursi)108 496.8 Q -.15(ve)-.25 G 5(.N).15 G 2.5(ol)
+-5 G(imit is imposed on the number of recursi)-2.5 E .3 -.15(ve c)-.25 H
+(alls.).15 E F2(ARITHMETIC EV)72 513.6 Q(ALU)-1.478 E -1.04(AT)-.657 G
+(ION)1.04 E F0 2.298(The shell allo)108 525.6 R 2.297(ws arithmetic e)
+-.25 F 2.297(xpressions to be e)-.15 F -.25(va)-.25 G 2.297
+(luated, under certain circumstances \(see the).25 F F1(let)4.797 E F0
+(and)4.797 E F1(declar)108 537.6 Q(e)-.18 E F0 -.2(bu)2.705 G .205
+(iltin commands and).2 F F1 .205(Arithmetic Expansion)2.705 F F0 2.705
+(\). Ev)B .205(aluation is done in \214x)-.25 F .206(ed-width inte)-.15
+F .206(gers with no)-.15 F .429(check for o)108 549.6 R -.15(ve)-.15 G
+(r\215o).15 E 1.729 -.65(w, t)-.25 H .429(hough di).65 F .428
+(vision by 0 is trapped and \215agged as an error)-.25 F 5.428(.T)-.55 G
+.428(he operators and their prece-)-5.428 F 1.919(dence, associati)108
+561.6 R(vity)-.25 E 4.419(,a)-.65 G 1.919(nd v)-4.419 F 1.919
+(alues are the same as in the C language.)-.25 F 1.92(The follo)6.92 F
+1.92(wing list of operators is)-.25 F(grouped into le)108 573.6 Q -.15
+(ve)-.25 G(ls of equal-precedence operators.).15 E(The le)5 E -.15(ve)
+-.25 G(ls are listed in order of decreasing precedence.).15 E/F5 10
+/Times-Italic@0 SF(id)108 590.4 Q F1(++)A F5(id)2.5 E F1<adad>A F0 -.25
+(va)144 602.4 S(riable post-increment and post-decrement).25 E F1(++)108
+614.4 Q F5(id)A F1<adad>2.5 E F5(id)A F0 -.25(va)144 626.4 S
+(riable pre-increment and pre-decrement).25 E F1 2.5<ad2b>108 638.4 S F0
+(unary minus and plus)19.6 E F1 2.5(!~)108 650.4 S F0
+(logical and bitwise ne)24.34 E -.05(ga)-.15 G(tion).05 E F1(**)108
+662.4 Q F0 -.15(ex)26 G(ponentiation).15 E F1 2.5(*/%)108 674.4 S F0
+(multiplication, di)10.72 E(vision, remainder)-.25 E F1 2.5<2bad>108
+686.4 S F0(addition, subtraction)19.6 E F1(<< >>)108 698.4 Q F0
+(left and right bitwise shifts)10.7 E(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(26)190.95 E 0 Cg EP
+%%Page: 27 27
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(<= >= < >)108 84 Q F0(comparison)144 96 Q
+F1(== !=)108 108 Q F0(equality and inequality)13.07 E F1(&)108 120 Q F0
+(bitwise AND)27.67 E F1(^)108 132 Q F0(bitwise e)32.67 E(xclusi)-.15 E
+.3 -.15(ve O)-.25 H(R).15 E F1(|)108 144 Q F0(bitwise OR)33.8 E F1(&&)
+108 156 Q F0(logical AND)19.34 E F1(||)108 168 Q F0(logical OR)31.6 E/F2
+10/Times-Italic@0 SF -.2(ex)108 180 S(pr).2 E F1(?)A F2 -.2(ex)C(pr).2 E
+F1(:)A F2 -.2(ex)C(pr).2 E F0(conditional operator)144 192 Q F1 2.5(=*)
+108 204 S 2.5(=/)-2.5 G 2.5(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5
+(=<)-2.5 G(<= >>= &= ^= |=)-2.5 E F0(assignment)144 216 Q F2 -.2(ex)108
+228 S(pr1).2 E F1(,)2.5 E F2 -.2(ex)2.5 G(pr2).2 E F0(comma)144 240 Q
+.68(Shell v)108 256.8 R .68(ariables are allo)-.25 F .68
+(wed as operands; parameter e)-.25 F .68
+(xpansion is performed before the e)-.15 F .68(xpression is e)-.15 F
+-.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 268.8 R 1.007(ithin an e)-.4
+F 1.007(xpression, shell v)-.15 F 1.007
+(ariables may also be referenced by name without using the parameter)
+-.25 F -.15(ex)108 280.8 S 1.041(pansion syntax.).15 F 3.541(As)6.041 G
+1.041(hell v)-3.541 F 1.041(ariable that is null or unset e)-.25 F -.25
+(va)-.25 G 1.04(luates to 0 when referenced by name without).25 F 1.466
+(using the parameter e)108 292.8 R 1.466(xpansion syntax.)-.15 F 1.467
+(The v)6.466 F 1.467(alue of a v)-.25 F 1.467(ariable is e)-.25 F -.25
+(va)-.25 G 1.467(luated as an arithmetic e).25 F(xpression)-.15 E 1.39
+(when it is referenced, or when a v)108 304.8 R 1.389
+(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.889(nt).15 G(he)
+-3.889 E F2(inte)3.889 E -.1(ge)-.4 G(r).1 E F0(attrib)3.889 E 1.389
+(ute using)-.2 F F1(declar)3.889 E 3.889(e-)-.18 G(i)-3.889 E F0(is)
+3.889 E .343(assigned a v)108 316.8 R 2.843(alue. A)-.25 F .343(null v)
+2.843 F .343(alue e)-.25 F -.25(va)-.25 G .343(luates to 0.).25 F 2.843
+(As)5.343 G .343(hell v)-2.843 F .343(ariable need not ha)-.25 F .643
+-.15(ve i)-.2 H .343(ts inte).15 F .344(ger attrib)-.15 F .344
+(ute turned on)-.2 F(to be used in an e)108 328.8 Q(xpression.)-.15 E
+1.406(Constants with a leading 0 are interpreted as octal numbers.)108
+345.6 R 3.906(Al)6.406 G 1.406(eading 0x or 0X denotes he)-3.906 F
+(xadecimal.)-.15 E .589(Otherwise, numbers tak)108 357.6 R 3.089(et)-.1
+G .589(he form [)-3.089 F F2(base#)A F0 .589(]n, where)B F2(base)3.089 E
+F0 .59(is a decimal number between 2 and 64 represent-)3.089 F .093
+(ing the arithmetic base, and)108 369.6 R F2(n)2.593 E F0 .093
+(is a number in that base.)2.593 F(If)5.093 E F2(base#)2.593 E F0 .092
+(is omitted, then base 10 is used.)2.593 F .092(The digits)5.092 F .064
+(greater than 9 are represented by the lo)108 381.6 R .064
+(wercase letters, the uppercase letters, @, and _, in that order)-.25 F
+5.065(.I)-.55 G(f)-5.065 E F2(base)2.565 E F0 .433
+(is less than or equal to 36, lo)108 393.6 R .432(wercase and uppercase\
+ letters may be used interchangeably to represent num-)-.25 F
+(bers between 10 and 35.)108 405.6 Q .234(Operators are e)108 422.4 R
+-.25(va)-.25 G .234(luated in order of precedence.).25 F(Sub-e)5.234 E
+.234(xpressions in parentheses are e)-.15 F -.25(va)-.25 G .235
+(luated \214rst and may).25 F -.15(ove)108 434.4 S
+(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F3 10.95
+/Times-Bold@0 SF(CONDITION)72 451.2 Q(AL EXPRESSIONS)-.219 E F0 .256
+(Conditional e)108 463.2 R .256(xpressions are used by the)-.15 F F1([[)
+2.755 E F0 .255(compound command and the)2.755 F F1(test)2.755 E F0(and)
+2.755 E F1([)2.755 E F0 -.2(bu)2.755 G .255(iltin commands to test).2 F
+.77(\214le attrib)108 475.2 R .77
+(utes and perform string and arithmetic comparisons.)-.2 F .77
+(Expressions are formed from the follo)5.77 F(wing)-.25 E 1.041
+(unary or binary primaries.)108 487.2 R 1.041(If an)6.041 F(y)-.15 E F2
+(\214le)3.541 E F0(ar)3.541 E 1.04
+(gument to one of the primaries is of the form)-.18 F F2(/de)3.54 E
+(v/fd/n)-.15 E F0 3.54(,t)C 1.04(hen \214le)-3.54 F(descriptor)108 499.2
+Q F2(n)3.788 E F0 1.289(is check)3.788 F 3.789(ed. If)-.1 F(the)3.789 E
+F2(\214le)3.789 E F0(ar)3.789 E 1.289
+(gument to one of the primaries is one of)-.18 F F2(/de)3.789 E(v/stdin)
+-.15 E F0(,)A F2(/de)3.789 E(v/stdout)-.15 E F0 3.789(,o)C(r)-3.789 E F2
+(/de)108 511.2 Q(v/stderr)-.15 E F0 2.5<2c8c>C
+(le descriptor 0, 1, or 2, respecti)-2.5 E -.15(ve)-.25 G(ly).15 E 2.5
+(,i)-.65 G 2.5(sc)-2.5 G(heck)-2.5 E(ed.)-.1 E .722
+(Unless otherwise speci\214ed, primaries that operate on \214les follo)
+108 528 R 3.221(ws)-.25 G .721(ymbolic links and operate on the tar)
+-3.221 F(get)-.18 E(of the link, rather than the link itself.)108 540 Q
+F1<ad61>108 564 Q F2(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F2
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F1<ad62>108 576 Q F2(\214le)
+2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is a block special \214le.).15 E F1<ad63>108 588 Q F2(\214le)
+2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is a character special \214le.).15 E F1<ad64>108 600 Q F2
+(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists and is a directory).15 E(.)-.65 E F1<ad65>108 612 Q F2
+(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists.).15 E F1<ad66>108 624 Q F2(\214le)2.5 E F0 -.35(Tr)12.25 G
+(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a re).15 E
+(gular \214le.)-.15 E F1<ad67>108 636 Q F2(\214le)2.5 E F0 -.35(Tr)10.58
+G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is set-group-id.).15 E F1<ad68>108 648 Q F2(\214le)2.5 E F0
+-.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is a symbolic link.).15 E F1<ad6b>108 660 Q F2(\214le)2.5 E F0
+-.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and its `).15 E(`stick)-.74 E(y')-.15 E 2.5('b)-.74 G(it is set.)
+-2.5 E F1<ad70>108 672 Q F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E
+F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a named pipe \(FIFO\).).15
+E F1<ad72>108 684 Q F2(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is readable.).15 E F1<ad73>108
+696 Q F2(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F2(\214le)2.5 E F0
+-.15(ex)2.5 G(ists and has a size greater than zero.).15 E F1<ad74>108
+708 Q F2(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E F2
+(fd)4.47 E F0(is open and refers to a terminal.)3.27 E(GNU Bash-4.0)72
+768 Q(2009 February 7)140.96 E(27)190.95 E 0 Cg EP
+%%Page: 28 28
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF<ad75>108 84 Q/F2 10/Times-Italic@0 SF
+(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F1<ad77>108 96 Q
+F2(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F2(\214le)2.5 E F0 -.15
+(ex)2.5 G(ists and is writable.).15 E F1<ad78>108 108 Q F2(\214le)2.5 E
+F0 -.35(Tr)10.58 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F1<ad4f>108 120 Q F2
+(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists and is o).15 E(wned by the ef)-.25 E(fecti)-.25 E .3 -.15
+(ve u)-.25 H(ser id.).15 E F1<ad47>108 132 Q F2(\214le)2.5 E F0 -.35(Tr)
+7.8 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is o).15 E
+(wned by the ef)-.25 E(fecti)-.25 E .3 -.15(ve g)-.25 H(roup id.).15 E
+F1<ad4c>108 144 Q F2(\214le)2.5 E F0 -.35(Tr)8.91 G(ue if).35 E F2
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a symbolic link.).15 E F1
+<ad53>108 156 Q F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a sock).15 E(et.)-.1 E F1
+<ad4e>108 168 Q F2(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F2(\214le)
+2.5 E F0 -.15(ex)2.5 G(ists and has been modi\214ed since it w).15 E
+(as last read.)-.1 E F2(\214le1)108 180 Q F0<ad>2.5 E F1(nt)A F2
+(\214le2)2.5 E F0 -.35(Tr)144 192 S .038(ue if).35 F F2(\214le1)2.538 E
+F0 .039(is ne)2.539 F .039
+(wer \(according to modi\214cation date\) than)-.25 F F2(\214le2)2.539 E
+F0 2.539(,o)C 2.539(ri)-2.539 G(f)-2.539 E F2(\214le1)2.539 E F0 -.15
+(ex)2.539 G .039(ists and).15 F F2(\214le2)2.539 E F0 .039(does not.)
+2.539 F F2(\214le1)108 204 Q F0<ad>2.5 E F1(ot)A F2(\214le2)2.5 E F0
+-.35(Tr)144 216 S(ue if).35 E F2(\214le1)2.5 E F0(is older than)2.5 E F2
+(\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F2(\214le2)2.5 E F0
+-.15(ex)2.5 G(ists and).15 E F2(\214le1)2.5 E F0(does not.)2.5 E F2
+(\214le1)108 228 Q F1(\255ef)2.5 E F2(\214le2)2.5 E F0 -.35(Tr)144 240 S
+(ue if).35 E F2(\214le1)2.5 E F0(and)2.5 E F2(\214le2)2.5 E F0
+(refer to the same de)2.5 E(vice and inode numbers.)-.25 E F1<ad6f>108
+252 Q F2(optname)2.5 E F0 -.35(Tr)144 264 S 1.144(ue if shell option).35
+F F2(optname)3.874 E F0 1.144(is enabled.)3.824 F 1.143
+(See the list of options under the description of the)6.144 F F1<ad6f>
+3.643 E F0(option to the)144 276 Q F1(set)2.5 E F0 -.2(bu)2.5 G
+(iltin belo).2 E -.65(w.)-.25 G F1<ad7a>108 288 Q F2(string)2.5 E F0
+-.35(Tr)144 300 S(ue if the length of).35 E F2(string)2.5 E F0(is zero.)
+2.5 E F2(string)108 312 Q F1<ad6e>108 324 Q F2(string)2.5 E F0 -.35(Tr)
+144 336 S(ue if the length of).35 E F2(string)2.84 E F0(is non-zero.)
+2.72 E F2(string1)108 352.8 Q F1(==)2.5 E F2(string2)2.5 E F0 -.35(Tr)
+144 364.8 S(ue if the strings are equal.).35 E F1(=)5 E F0
+(may be used in place of)2.5 E F1(==)2.5 E F0
+(for strict POSIX compliance.)2.5 E F2(string1)108 381.6 Q F1(!=)2.5 E
+F2(string2)2.5 E F0 -.35(Tr)144 393.6 S
+(ue if the strings are not equal.).35 E F2(string1)108 410.4 Q F1(<)2.5
+E F2(string2)2.5 E F0 -.35(Tr)144 422.4 S(ue if).35 E F2(string1)2.5 E
+F0(sorts before)2.5 E F2(string2)2.5 E F0(le)2.5 E
+(xicographically in the current locale.)-.15 E F2(string1)108 439.2 Q F1
+(>)2.5 E F2(string2)2.5 E F0 -.35(Tr)144 451.2 S(ue if).35 E F2(string1)
+2.5 E F0(sorts after)2.5 E F2(string2)2.5 E F0(le)2.5 E
+(xicographically in the current locale.)-.15 E F2(ar)108.33 468 Q(g1)
+-.37 E F1(OP)2.5 E F2(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF(OP)144 480
+Q F0 .385(is one of)2.634 F F1(\255eq)2.885 E F0(,)A F1(\255ne)2.885 E
+F0(,)A F1(\255lt)2.885 E F0(,)A F1(\255le)2.885 E F0(,)A F1(\255gt)2.885
+E F0 2.885(,o)C(r)-2.885 E F1(\255ge)2.885 E F0 5.385(.T)C .385
+(hese arithmetic binary operators return true if)-5.385 F F2(ar)2.885 E
+(g1)-.37 E F0 .845(is equal to, not equal to, less than, less than or e\
+qual to, greater than, or greater than or equal to)144 492 R F2(ar)144
+504 Q(g2)-.37 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G(ly).15 E(.)
+-.65 E F2(Ar)6.01 E(g1)-.37 E F0(and)2.5 E F2(ar)2.83 E(g2)-.37 E F0
+(may be positi)2.52 E .3 -.15(ve o)-.25 H 2.5(rn).15 G -2.25 -.15(eg a)
+-2.5 H(ti).15 E .3 -.15(ve i)-.25 H(nte).15 E(gers.)-.15 E/F4 10.95
+/Times-Bold@0 SF(SIMPLE COMMAND EXP)72 520.8 Q(ANSION)-.81 E F0 .613
+(When a simple command is e)108 532.8 R -.15(xe)-.15 G .614
+(cuted, the shell performs the follo).15 F .614(wing e)-.25 F .614
+(xpansions, assignments, and redi-)-.15 F(rections, from left to right.)
+108 544.8 Q 26(1. The)108 561.6 R -.1(wo)4.349 G 1.849
+(rds that the parser has mark).1 F 1.848(ed as v)-.1 F 1.848
+(ariable assignments \(those preceding the command)-.25 F
+(name\) and redirections are sa)144 573.6 Q -.15(ve)-.2 G 2.5(df).15 G
+(or later processing.)-2.5 E 26(2. The)108 590.4 R -.1(wo)3.663 G 1.163
+(rds that are not v).1 F 1.164
+(ariable assignments or redirections are e)-.25 F 3.664(xpanded. If)-.15
+F(an)3.664 E 3.664(yw)-.15 G 1.164(ords remain)-3.764 F .776(after e)144
+602.4 R .776(xpansion, the \214rst w)-.15 F .776(ord is tak)-.1 F .775
+(en to be the name of the command and the remaining w)-.1 F(ords)-.1 E
+(are the ar)144 614.4 Q(guments.)-.18 E 26(3. Redirections)108 631.2 R
+(are performed as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E F3
+(REDIRECTION)2.5 E/F5 9/Times-Roman@0 SF(.)A F0 26(4. The)108 648 R(te)
+3.216 E .717(xt after the)-.15 F F1(=)3.217 E F0 .717(in each v)3.217 F
+.717(ariable assignment under)-.25 F .717(goes tilde e)-.18 F .717
+(xpansion, parameter e)-.15 F(xpansion,)-.15 E .34
+(command substitution, arithmetic e)144 660 R .339
+(xpansion, and quote remo)-.15 F -.25(va)-.15 G 2.839(lb).25 G .339
+(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 672 Q .332
+(If no command name results, the v)108 688.8 R .332
+(ariable assignments af)-.25 F .332(fect the current shell en)-.25 F
+2.833(vironment. Otherwise,)-.4 F(the)2.833 E -.25(va)108 700.8 S .757
+(riables are added to the en).25 F .757(vironment of the e)-.4 F -.15
+(xe)-.15 G .757(cuted command and do not af).15 F .757
+(fect the current shell en)-.25 F(vi-)-.4 E 3.176(ronment. If)108 712.8
+R(an)3.176 E 3.176(yo)-.15 G 3.176(ft)-3.176 G .677
+(he assignments attempts to assign a v)-3.176 F .677
+(alue to a readonly v)-.25 F .677(ariable, an error occurs, and)-.25 F
+(the command e)108 724.8 Q(xits with a non-zero status.)-.15 E
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(28)190.95 E 0 Cg EP
+%%Page: 29 29
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .15(If no command name results, redirections are performed, b)108
+84 R .149(ut do not af)-.2 F .149(fect the current shell en)-.25 F 2.649
+(vironment. A)-.4 F(redirection error causes the command to e)108 96 Q
+(xit with a non-zero status.)-.15 E 1.064
+(If there is a command name left after e)108 112.8 R 1.064(xpansion, e)
+-.15 F -.15(xe)-.15 G 1.064(cution proceeds as described belo).15 F
+4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .069(command e)108
+124.8 R 2.569(xits. If)-.15 F .069(one of the e)2.569 F .069
+(xpansions contained a command substitution, the e)-.15 F .068
+(xit status of the command)-.15 F .466(is the e)108 136.8 R .466
+(xit status of the last command substitution performed.)-.15 F .467
+(If there were no command substitutions, the)5.466 F(command e)108 148.8
+Q(xits with a status of zero.)-.15 E/F1 10.95/Times-Bold@0 SF
+(COMMAND EXECUTION)72 165.6 Q F0 .547
+(After a command has been split into w)108 177.6 R .546
+(ords, if it results in a simple command and an optional list of ar)-.1
+F(gu-)-.18 E(ments, the follo)108 189.6 Q(wing actions are tak)-.25 E
+(en.)-.1 E .379(If the command name contains no slashes, the shell atte\
+mpts to locate it.)108 206.4 R .379(If there e)5.379 F .379
+(xists a shell function by)-.15 F .246(that name, that function is in)
+108 218.4 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G
+.246(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E/F2 9
+/Times-Bold@0 SF(FUNCTIONS)2.746 E/F3 9/Times-Roman@0 SF(.)A F0 .246
+(If the name does not match a func-)4.746 F
+(tion, the shell searches for it in the list of shell b)108 230.4 Q 2.5
+(uiltins. If)-.2 F 2.5(am)2.5 G(atch is found, that b)-2.5 E
+(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E .309
+(If the name is neither a shell function nor a b)108 247.2 R .31
+(uiltin, and contains no slashes,)-.2 F/F4 10/Times-Bold@0 SF(bash)2.81
+E F0 .31(searches each element of)2.81 F(the)108 259.2 Q F2 -.666(PA)
+3.163 G(TH)-.189 E F0 .662(for a directory containing an e)2.913 F -.15
+(xe)-.15 G .662(cutable \214le by that name.).15 F F4(Bash)5.662 E F0
+.662(uses a hash table to remember)3.162 F 1.914
+(the full pathnames of e)108 271.2 R -.15(xe)-.15 G 1.915
+(cutable \214les \(see).15 F F4(hash)4.415 E F0(under)4.415 E F2 1.915
+(SHELL B)4.415 F(UIL)-.09 E 1.915(TIN COMMANDS)-.828 F F0(belo)4.165 E
+4.415(w\). A)-.25 F(full)4.415 E .72(search of the directories in)108
+283.2 R F2 -.666(PA)3.22 G(TH)-.189 E F0 .719
+(is performed only if the command is not found in the hash table.)2.97 F
+.719(If the)5.719 F .956(search is unsuccessful, the shell searches for\
+ a de\214ned shell function named)108 295.2 R F4(command_not_f)3.456 E
+(ound_han-)-.25 E(dle)108 307.2 Q F0 5.278(.I)C 2.778(ft)-5.278 G .278
+(hat function e)-2.778 F .278(xists, it is in)-.15 F -.2(vo)-.4 G -.1
+(ke).2 G 2.778(dw).1 G .277
+(ith the original command and the original command')-2.778 F 2.777(sa)
+-.55 G -.18(rg)-2.777 G(uments).18 E .775(as its ar)108 319.2 R .775
+(guments, and the function')-.18 F 3.275(se)-.55 G .775
+(xit status becomes the e)-3.425 F .775(xit status of the shell.)-.15 F
+.776(If that function is not)5.776 F
+(de\214ned, the shell prints an error message and returns an e)108 331.2
+Q(xit status of 127.)-.15 E 1.089(If the search is successful, or if th\
+e command name contains one or more slashes, the shell e)108 348 R -.15
+(xe)-.15 G 1.089(cutes the).15 F .197(named program in a separate e)108
+360 R -.15(xe)-.15 G .197(cution en).15 F 2.698(vironment. Ar)-.4 F .198
+(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .198
+(n, and the remain-).15 F(ing ar)108 372 Q
+(guments to the command are set to the ar)-.18 E(guments gi)-.18 E -.15
+(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.809(If this e)108 388.8 R
+-.15(xe)-.15 G 1.809(cution f).15 F 1.809
+(ails because the \214le is not in e)-.1 F -.15(xe)-.15 G 1.809
+(cutable format, and the \214le is not a directory).15 F 4.309(,i)-.65 G
+4.309(ti)-4.309 G(s)-4.309 E .677(assumed to be a)108 400.8 R/F5 10
+/Times-Italic@0 SF .678(shell script)3.177 F F0 3.178(,a\214)C .678
+(le containing shell commands.)-3.178 F 3.178(As)5.678 G .678
+(ubshell is spa)-3.178 F .678(wned to e)-.15 F -.15(xe)-.15 G .678
+(cute it.).15 F(This)5.678 E .33
+(subshell reinitializes itself, so that the ef)108 412.8 R .33
+(fect is as if a ne)-.25 F 2.829(ws)-.25 G .329(hell had been in)-2.829
+F -.2(vo)-.4 G -.1(ke).2 G 2.829(dt).1 G 2.829(oh)-2.829 G .329
+(andle the script, with)-2.829 F 1.219(the e)108 424.8 R 1.219
+(xception that the locations of commands remembered by the parent \(see)
+-.15 F F4(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25 G(nder)-3.719 E F2
+(SHELL)3.719 E -.09(BU)108 436.8 S(IL).09 E(TIN COMMANDS)-.828 E F3(\))A
+F0(are retained by the child.)2.25 E .348(If the program is a \214le be)
+108 453.6 R .348(ginning with)-.15 F F4(#!)2.848 E F0 2.848(,t)C .347(h\
+e remainder of the \214rst line speci\214es an interpreter for the pro-)
+-2.848 F 3.178(gram. The)108 465.6 R .678(shell e)3.178 F -.15(xe)-.15 G
+.678(cutes the speci\214ed interpreter on operating systems that do not\
+ handle this e).15 F -.15(xe)-.15 G(cutable).15 E 1.193(format themselv)
+108 477.6 R 3.693(es. The)-.15 F(ar)3.693 E 1.193
+(guments to the interpreter consist of a single optional ar)-.18 F 1.192
+(gument follo)-.18 F 1.192(wing the)-.25 F 1.13
+(interpreter name on the \214rst line of the program, follo)108 489.6 R
+1.131(wed by the name of the program, follo)-.25 F 1.131(wed by the)-.25
+F(command ar)108 501.6 Q(guments, if an)-.18 E -.65(y.)-.15 G F1
+(COMMAND EXECUTION ENVIR)72 518.4 Q(ONMENT)-.329 E F0(The shell has an)
+108 530.4 Q F5 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E(onment)-.45 E F0
+2.5(,w)C(hich consists of the follo)-2.5 E(wing:)-.25 E 32.5<836f>108
+559.2 S 1.406(pen \214les inherited by the shell at in)-32.5 F -.2(vo)
+-.4 G 1.405(cation, as modi\214ed by redirections supplied to the).2 F
+F4(exec)3.905 E F0 -.2(bu)144 571.2 S(iltin).2 E 32.5<8374>108 588 S
+(he current w)-32.5 E(orking directory as set by)-.1 E F4(cd)2.5 E F0(,)
+A F4(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F4(popd)2.5 E F0 2.5(,o)C 2.5(ri)
+-2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation).2 E 32.5
+<8374>108 604.8 S(he \214le creation mode mask as set by)-32.5 E F4
+(umask)2.5 E F0(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent)
+-2.5 E 32.5<8363>108 621.6 S(urrent traps set by)-32.5 E F4(trap)2.5 E
+F0 32.5<8373>108 638.4 S .256(hell parameters that are set by v)-32.5 F
+.256(ariable assignment or with)-.25 F F4(set)2.756 E F0 .257
+(or inherited from the shell')2.756 F 2.757(sp)-.55 G(arent)-2.757 E
+(in the en)144 650.4 Q(vironment)-.4 E 32.5<8373>108 667.2 S
+(hell functions de\214ned during e)-32.5 E -.15(xe)-.15 G
+(cution or inherited from the shell').15 E 2.5(sp)-.55 G
+(arent in the en)-2.5 E(vironment)-.4 E 32.5<836f>108 684 S
+(ptions enabled at in)-32.5 E -.2(vo)-.4 G(cation \(either by def).2 E
+(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F4(set)2.5 E
+F0 32.5<836f>108 700.8 S(ptions enabled by)-32.5 E F4(shopt)2.5 E F0
+32.5<8373>108 717.6 S(hell aliases de\214ned with)-32.5 E F4(alias)2.5 E
+F0(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(29)190.95 E 0 Cg EP
+%%Page: 30 30
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E 32.5<8376>108 84 S
+(arious process IDs, including those of background jobs, the v)-32.75 E
+(alue of)-.25 E/F1 10/Times-Bold@0 SF($$)2.5 E F0 2.5(,a)C(nd the v)-2.5
+E(alue of)-.25 E F1($PPID)2.5 E F0 .427
+(When a simple command other than a b)108 100.8 R .426
+(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .426
+(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.926(di).1 G 2.926(nas)
+-2.926 G(eparate)-2.926 E -.15(exe)108 112.8 S .133(cution en).15 F .133
+(vironment that consists of the follo)-.4 F 2.634(wing. Unless)-.25 F
+.134(otherwise noted, the v)2.634 F .134(alues are inherited from)-.25 F
+(the shell.)108 124.8 Q 32.5<8374>108 153.6 S 1.056(he shell')-32.5 F
+3.556(so)-.55 G 1.056(pen \214les, plus an)-3.556 F 3.556(ym)-.15 G
+1.056
+(odi\214cations and additions speci\214ed by redirections to the com-)
+-3.556 F(mand)144 165.6 Q 32.5<8374>108 182.4 S(he current w)-32.5 E
+(orking directory)-.1 E 32.5<8374>108 199.2 S
+(he \214le creation mode mask)-32.5 E 32.5<8373>108 216 S .856(hell v)
+-32.5 F .857(ariables and functions mark)-.25 F .857(ed for e)-.1 F .857
+(xport, along with v)-.15 F .857(ariables e)-.25 F .857
+(xported for the command,)-.15 F(passed in the en)144 228 Q(vironment)
+-.4 E 32.5<8374>108 244.8 S .307
+(raps caught by the shell are reset to the v)-32.5 F .306
+(alues inherited from the shell')-.25 F 2.806(sp)-.55 G .306
+(arent, and traps ignored)-2.806 F(by the shell are ignored)144 256.8 Q
+2.5(Ac)108 273.6 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
+2.5(nt)-2.5 G(his separate en)-2.5 E(vironment cannot af)-.4 E
+(fect the shell')-.25 E 2.5(se)-.55 G -.15(xe)-2.65 G(cution en).15 E
+(vironment.)-.4 E .577(Command substitution, commands grouped with pare\
+ntheses, and asynchronous commands are in)108 290.4 R -.2(vo)-.4 G -.1
+(ke).2 G 3.078(di).1 G(n)-3.078 E 2.745(as)108 302.4 S .245(ubshell en)
+-2.745 F .245(vironment that is a duplicate of the shell en)-.4 F .244
+(vironment, e)-.4 F .244(xcept that traps caught by the shell are)-.15 F
+.358(reset to the v)108 314.4 R .358
+(alues that the shell inherited from its parent at in)-.25 F -.2(vo)-.4
+G 2.858(cation. Builtin).2 F .359(commands that are in)2.859 F -.2(vo)
+-.4 G -.1(ke).2 G(d).1 E .857(as part of a pipeline are also e)108 326.4
+R -.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.356
+(vironment. Changes)-.4 F .856(made to the subshell en)3.356 F(viron-)
+-.4 E(ment cannot af)108 338.4 Q(fect the shell')-.25 E 2.5(se)-.55 G
+-.15(xe)-2.65 G(cution en).15 E(vironment.)-.4 E 1.376(Subshells spa)108
+355.2 R 1.376(wned to e)-.15 F -.15(xe)-.15 G 1.377
+(cute command substitutions inherit the v).15 F 1.377(alue of the)-.25 F
+F1<ad65>3.877 E F0 1.377(option from the parent)3.877 F 2.5(shell. When)
+108 367.2 R(not in posix mode, Bash clears the)2.5 E F1<ad65>2.5 E F0
+(option in such subshells.)2.5 E .405(If a command is follo)108 384 R
+.405(wed by a)-.25 F F1(&)2.905 E F0 .404(and job control is not acti)
+2.905 F -.15(ve)-.25 G 2.904(,t).15 G .404(he def)-2.904 F .404
+(ault standard input for the command)-.1 F .197(is the empty \214le)108
+396 R/F2 10/Times-Italic@0 SF(/de)2.697 E(v/null)-.15 E F0 5.197(.O)C
+.197(therwise, the in)-5.197 F -.2(vo)-.4 G -.1(ke).2 G 2.697(dc).1 G
+.198(ommand inherits the \214le descriptors of the calling shell)-2.697
+F(as modi\214ed by redirections.)108 408 Q/F3 10.95/Times-Bold@0 SF
+(ENVIR)72 424.8 Q(ONMENT)-.329 E F0 2.354(When a program is in)108 436.8
+R -.2(vo)-.4 G -.1(ke).2 G 4.853(di).1 G 4.853(ti)-4.853 G 4.853(sg)
+-4.853 G -2.15 -.25(iv e)-4.853 H 4.853(na).25 G 4.853(na)-4.853 G 2.353
+(rray of strings called the)-4.853 F F2(en)4.853 E(vir)-.4 E(onment)-.45
+E F0 7.353(.T).68 G 2.353(his is a list of)-7.353 F F2(name)108 448.8 Q
+F0<ad>A F2(value)A F0(pairs, of the form)2.5 E F2(name)2.5 E F0(=)A F2
+(value)A F0(.).18 E 1.485(The shell pro)108 465.6 R 1.485(vides se)-.15
+F -.15(ve)-.25 G 1.485(ral w).15 F 1.485(ays to manipulate the en)-.1 F
+3.985(vironment. On)-.4 F(in)3.985 E -.2(vo)-.4 G 1.486
+(cation, the shell scans its o).2 F(wn)-.25 E(en)108 477.6 Q .144(viron\
+ment and creates a parameter for each name found, automatically marking\
+ it for)-.4 F F2 -.2(ex)2.643 G(port).2 E F0 .143(to child pro-)3.323 F
+2.703(cesses. Ex)108 489.6 R .203(ecuted commands inherit the en)-.15 F
+2.703(vironment. The)-.4 F F1(export)2.703 E F0(and)2.703 E F1(declar)
+2.703 E 2.703<65ad>-.18 G(x)-2.703 E F0 .203(commands allo)2.703 F 2.704
+(wp)-.25 G(aram-)-2.704 E 1.153
+(eters and functions to be added to and deleted from the en)108 501.6 R
+3.653(vironment. If)-.4 F 1.153(the v)3.653 F 1.153
+(alue of a parameter in the)-.25 F(en)108 513.6 Q .64
+(vironment is modi\214ed, the ne)-.4 F 3.14(wv)-.25 G .64
+(alue becomes part of the en)-3.39 F .64(vironment, replacing the old.)
+-.4 F .64(The en)5.64 F(viron-)-.4 E .58(ment inherited by an)108 525.6
+R 3.08(ye)-.15 G -.15(xe)-3.23 G .58
+(cuted command consists of the shell').15 F 3.08(si)-.55 G .58
+(nitial en)-3.08 F .58(vironment, whose v)-.4 F .58(alues may be)-.25 F
+.3(modi\214ed in the shell, less an)108 537.6 R 2.8(yp)-.15 G .3
+(airs remo)-2.8 F -.15(ve)-.15 G 2.8(db).15 G 2.801(yt)-2.8 G(he)-2.801
+E F1(unset)2.801 E F0 .301(command, plus an)2.801 F 2.801(ya)-.15 G .301
+(dditions via the)-2.801 F F1(export)2.801 E F0(and)2.801 E F1(declar)
+108 549.6 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E .563(The en)108
+566.4 R .563(vironment for an)-.4 F(y)-.15 E F2 .563(simple command)
+3.403 F F0 .562
+(or function may be augmented temporarily by pre\214xing it with)3.833 F
+.202(parameter assignments, as described abo)108 578.4 R .502 -.15(ve i)
+-.15 H(n).15 E/F4 9/Times-Bold@0 SF -.666(PA)2.702 G(RAMETERS).666 E/F5
+9/Times-Roman@0 SF(.)A F0 .202(These assignment statements af)4.702 F
+.203(fect only the)-.25 F(en)108 590.4 Q
+(vironment seen by that command.)-.4 E .81(If the)108 607.2 R F1<ad6b>
+3.31 E F0 .81(option is set \(see the)3.31 F F1(set)3.31 E F0 -.2(bu)
+3.31 G .81(iltin command belo).2 F .81(w\), then)-.25 F F2(all)3.64 E F0
+.81(parameter assignments are placed in)3.82 F(the en)108 619.2 Q
+(vironment for a command, not just those that precede the command name.)
+-.4 E(When)108 636 Q F1(bash)3.396 E F0(in)3.396 E -.2(vo)-.4 G -.1(ke)
+.2 G 3.396(sa).1 G 3.397(ne)-3.396 G .897(xternal command, the v)-3.547
+F(ariable)-.25 E F1(_)3.397 E F0 .897
+(is set to the full \214le name of the command and)3.397 F
+(passed to that command in its en)108 648 Q(vironment.)-.4 E F3(EXIT ST)
+72 664.8 Q -1.04(AT)-.986 G(US)1.04 E F0 .151(The e)108 676.8 R .151
+(xit status of an e)-.15 F -.15(xe)-.15 G .151(cuted command is the v)
+.15 F .15(alue returned by the)-.25 F F2(waitpid)2.65 E F0 .15
+(system call or equi)2.65 F -.25(va)-.25 G .15(lent func-).25 F 2.847
+(tion. Exit)108 688.8 R .347(statuses f)2.847 F .347
+(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F
+1.647 -.65(w, t)-.25 H .347(he shell may use v).65 F .348(alues abo)-.25
+F .648 -.15(ve 1)-.15 H(25).15 E(specially)108 700.8 Q 5.674(.E)-.65 G
+.674(xit statuses from shell b)-5.674 F .673
+(uiltins and compound commands are also limited to this range. Under)-.2
+F(certain circumstances, the shell will use special v)108 712.8 Q
+(alues to indicate speci\214c f)-.25 E(ailure modes.)-.1 E -.15(Fo)108
+729.6 S 3.372(rt).15 G .872(he shell')-3.372 F 3.372(sp)-.55 G .873
+(urposes, a command which e)-3.372 F .873(xits with a zero e)-.15 F .873
+(xit status has succeeded.)-.15 F .873(An e)5.873 F .873(xit status of)
+-.15 F(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(30)190.95 E 0 Cg
+EP
+%%Page: 31 31
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .049(zero indicates success.)108 84 R 2.549(An)5.049 G .049
+(on-zero e)-2.549 F .049(xit status indicates f)-.15 F 2.549
+(ailure. When)-.1 F 2.549(ac)2.549 G .048(ommand terminates on a f)
+-2.549 F .048(atal sig-)-.1 F(nal)108 96 Q/F1 10/Times-Italic@0 SF(N)2.5
+E F0(,)A/F2 10/Times-Bold@0 SF(bash)2.5 E F0(uses the v)2.5 E
+(alue of 128+)-.25 E F1(N)A F0(as the e)2.5 E(xit status.)-.15 E .404
+(If a command is not found, the child process created to e)108 112.8 R
+-.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .405
+(If a command is)5.405 F(found b)108 124.8 Q(ut is not e)-.2 E -.15(xe)
+-.15 G(cutable, the return status is 126.).15 E(If a command f)108 141.6
+Q(ails because of an error during e)-.1 E
+(xpansion or redirection, the e)-.15 E(xit status is greater than zero.)
+-.15 E .081(Shell b)108 158.4 R .081
+(uiltin commands return a status of 0 \()-.2 F F1(true)A F0 2.581(\)i)C
+2.581(fs)-2.581 G .08(uccessful, and non-zero \()-2.581 F F1(false)A F0
+2.58(\)i)C 2.58(fa)-2.58 G 2.58(ne)-2.58 G .08(rror occurs while)-2.58 F
+(the)108 170.4 Q 2.5(ye)-.15 G -.15(xe)-2.65 G 2.5(cute. All).15 F -.2
+(bu)2.5 G(iltins return an e).2 E
+(xit status of 2 to indicate incorrect usage.)-.15 E F2(Bash)108 187.2 Q
+F0 .201(itself returns the e)2.701 F .202
+(xit status of the last command e)-.15 F -.15(xe)-.15 G .202
+(cuted, unless a syntax error occurs, in which case).15 F(it e)108 199.2
+Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F2
+(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G/F3
+10.95/Times-Bold@0 SF(SIGN)72 216 Q(ALS)-.219 E F0(When)108 228 Q F2
+(bash)3.183 E F0 .683(is interacti)3.183 F -.15(ve)-.25 G 3.183(,i).15 G
+3.183(nt)-3.183 G .683(he absence of an)-3.183 F 3.183(yt)-.15 G .683
+(raps, it ignores)-3.183 F/F4 9/Times-Bold@0 SF(SIGTERM)3.183 E F0 .682
+(\(so that)2.933 F F2 .682(kill 0)3.182 F F0 .682(does not kill an)3.182
+F(interacti)108 240 Q .757 -.15(ve s)-.25 H .457(hell\), and).15 F F4
+(SIGINT)2.957 E F0 .458(is caught and handled \(so that the)2.707 F F2
+(wait)2.958 E F0 -.2(bu)2.958 G .458(iltin is interruptible\).).2 F .458
+(In all cases,)5.458 F F2(bash)108 252 Q F0(ignores)2.5 E F4(SIGQ)2.5 E
+(UIT)-.09 E/F5 9/Times-Roman@0 SF(.)A F0(If job control is in ef)4.5 E
+(fect,)-.25 E F2(bash)2.5 E F0(ignores)2.5 E F4(SIGTTIN)2.5 E F5(,)A F4
+(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25 E F4(SIGTSTP)2.5 E F5(.)A F0
+(Non-b)108 268.8 Q 1.065(uiltin commands run by)-.2 F F2(bash)3.565 E F0
+(ha)3.565 E 1.365 -.15(ve s)-.2 H 1.065(ignal handlers set to the v).15
+F 1.064(alues inherited by the shell from its)-.25 F 3.247(parent. When)
+108 280.8 R .747(job control is not in ef)3.247 F .747
+(fect, asynchronous commands ignore)-.25 F F4(SIGINT)3.248 E F0(and)
+2.998 E F4(SIGQ)3.248 E(UIT)-.09 E F0 .748(in addi-)2.998 F .653
+(tion to these inherited handlers.)108 292.8 R .653
+(Commands run as a result of command substitution ignore the k)5.653 F
+-.15(ey)-.1 G(board-).15 E(generated job control signals)108 304.8 Q F4
+(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25 E F4
+(SIGTSTP)2.5 E F5(.)A F0 2.045(The shell e)108 321.6 R 2.045
+(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F4(SIGHUP)4.545 E
+F5(.)A F0 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.346
+-.15(ve s)-.25 H 2.046(hell resends the).15 F F4(SIGHUP)108 333.6 Q F0
+1.005(to all jobs, running or stopped.)3.255 F 1.004
+(Stopped jobs are sent)6.005 F F4(SIGCONT)3.504 E F0 1.004
+(to ensure that the)3.254 F 3.504(yr)-.15 G(ecei)-3.504 E 1.304 -.15
+(ve t)-.25 H(he).15 E F4(SIGHUP)108 345.6 Q F5(.)A F0 2.529 -.8(To p)
+5.429 H(re).8 E -.15(ve)-.25 G .93(nt the shell from sending the signal\
+ to a particular job, it should be remo).15 F -.15(ve)-.15 G 3.43(df).15
+G .93(rom the)-3.43 F 1.357(jobs table with the)108 357.6 R F2(diso)
+3.857 E(wn)-.1 E F0 -.2(bu)3.857 G 1.357(iltin \(see).2 F F4 1.356
+(SHELL B)3.856 F(UIL)-.09 E 1.356(TIN COMMANDS)-.828 F F0(belo)3.606 E
+1.356(w\) or mark)-.25 F 1.356(ed to not recei)-.1 F -.15(ve)-.25 G F4
+(SIGHUP)108 369.6 Q F0(using)2.25 E F2(diso)2.5 E(wn \255h)-.1 E F0(.)A
+.166(If the)108 386.4 R F2(huponexit)2.666 E F0 .166
+(shell option has been set with)2.666 F F2(shopt)2.666 E F0(,)A F2(bash)
+2.666 E F0 .166(sends a)2.666 F F4(SIGHUP)2.666 E F0 .166
+(to all jobs when an interacti)2.416 F -.15(ve)-.25 G(login shell e)108
+398.4 Q(xits.)-.15 E(If)108 415.2 Q F2(bash)3.047 E F0 .547(is w)3.047 F
+.546(aiting for a command to complete and recei)-.1 F -.15(ve)-.25 G
+3.046(sas).15 G .546(ignal for which a trap has been set, the trap)
+-3.046 F .662(will not be e)108 427.2 R -.15(xe)-.15 G .662
+(cuted until the command completes.).15 F(When)5.663 E F2(bash)3.163 E
+F0 .663(is w)3.163 F .663(aiting for an asynchronous command)-.1 F .99
+(via the)108 439.2 R F2(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin, the rec\
+eption of a signal for which a trap has been set will cause the).2 F F2
+(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin to).2 F
+(return immediately with an e)108 451.2 Q
+(xit status greater than 128, immediately after which the trap is e)-.15
+E -.15(xe)-.15 G(cuted.).15 E F3(JOB CONTR)72 468 Q(OL)-.329 E F1 -.25
+(Jo)108 480 S 4.567(bc).25 G(ontr)-4.567 E(ol)-.45 E F0 2.067
+(refers to the ability to selecti)5.077 F -.15(ve)-.25 G 2.067
+(ly stop \().15 F F1(suspend)A F0 4.567(\)t)C 2.068(he e)-4.567 F -.15
+(xe)-.15 G 2.068(cution of processes and continue).15 F(\()108 492 Q F1
+-.37(re)C(sume).37 E F0 3.202(\)t)C .702(heir e)-3.202 F -.15(xe)-.15 G
+.702(cution at a later point.).15 F 3.202(Au)5.702 G .702
+(ser typically emplo)-3.202 F .702(ys this f)-.1 F .702
+(acility via an interacti)-.1 F 1.001 -.15(ve i)-.25 H(nterf).15 E(ace)
+-.1 E(supplied jointly by the system')108 504 Q 2.5(st)-.55 G
+(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15 G(nd)-2.5 E F2(bash)2.5 E
+F0(.)A .784(The shell associates a)108 520.8 R F1(job)5.024 E F0 .784
+(with each pipeline.)3.514 F .784(It k)5.784 F .785
+(eeps a table of currently e)-.1 F -.15(xe)-.15 G .785
+(cuting jobs, which may be).15 F .341(listed with the)108 532.8 R F2
+(jobs)2.841 E F0 2.841(command. When)2.841 F F2(bash)2.841 E F0 .341
+(starts a job asynchronously \(in the)2.841 F F1(bac)2.84 E(kgr)-.2 E
+(ound)-.45 E F0 .34(\), it prints a line).77 F(that looks lik)108 544.8
+Q(e:)-.1 E([1] 25647)144 561.6 Q .241(indicating that this job is job n\
+umber 1 and that the process ID of the last process in the pipeline ass\
+ociated)108 578.4 R .733(with this job is 25647.)108 590.4 R .732
+(All of the processes in a single pipeline are members of the same job)
+5.733 F(.)-.4 E F2(Bash)5.732 E F0(uses)3.232 E(the)108 602.4 Q F1(job)
+4.24 E F0(abstraction as the basis for job control.)2.73 E 3.062 -.8
+(To f)108 619.2 T 1.462(acilitate the implementation of the user interf)
+.7 F 1.463(ace to job control, the operating system maintains the)-.1 F
+.871(notion of a)108 631.2 R F1(curr)3.371 E .871(ent terminal pr)-.37 F
+.871(ocess gr)-.45 F .871(oup ID)-.45 F F0 5.871(.M)C .87
+(embers of this process group \(processes whose process)-5.871 F .023
+(group ID is equal to the current terminal process group ID\) recei)108
+643.2 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023
+(board-generated signals such as).15 F F4(SIG-)2.523 E(INT)108 655.2 Q
+F5(.)A F0 1.347(These processes are said to be in the)5.847 F F1(for)
+3.846 E -.4(eg)-.37 G -.45(ro).4 G(und).45 E F0(.).77 E F1(Bac)6.926 E
+(kgr)-.2 E(ound)-.45 E F0 1.346(processes are those whose process)4.616
+F .145(group ID dif)108 667.2 R .145(fers from the terminal')-.25 F .146
+(s; such processes are immune to k)-.55 F -.15(ey)-.1 G .146
+(board-generated signals.).15 F .146(Only fore-)5.146 F .042
+(ground processes are allo)108 679.2 R .042
+(wed to read from or write to the terminal.)-.25 F .042
+(Background processes which attempt to)5.042 F 1.639
+(read from \(write to\) the terminal are sent a)108 691.2 R F4 1.64
+(SIGTTIN \(SIGTT)4.14 F(OU\))-.162 E F0 1.64(signal by the terminal dri)
+3.89 F -.15(ve)-.25 G 2.44 -.4(r, w).15 H(hich,).4 E
+(unless caught, suspends the process.)108 703.2 Q 1.088
+(If the operating system on which)108 720 R F2(bash)3.588 E F0 1.088
+(is running supports job control,)3.588 F F2(bash)3.587 E F0 1.087
+(contains f)3.587 F 1.087(acilities to use it.)-.1 F(GNU Bash-4.0)72 768
+Q(2009 February 7)140.96 E(31)190.95 E 0 Cg EP
+%%Page: 32 32
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E -.8(Ty)108 84 S .301(ping the).8 F/F1 10/Times-Italic@0 SF
+(suspend)3.141 E F0 .301(character \(typically)3.571 F/F2 10
+/Times-Bold@0 SF(^Z)2.801 E F0 2.801(,C)C .301
+(ontrol-Z\) while a process is running causes that process to be)-2.801
+F 2.143(stopped and returns control to)108 96 R F2(bash)4.642 E F0 7.142
+(.T)C 2.142(yping the)-7.942 F F1 2.142(delayed suspend)4.992 F F0 2.142
+(character \(typically)5.412 F F2(^Y)4.642 E F0 4.642(,C)C(ontrol-Y\))
+-4.642 E .021(causes the process to be stopped when it attempts to read\
+ input from the terminal, and control to be returned)108 108 R(to)108
+120 Q F2(bash)3.392 E F0 5.892(.T)C .892
+(he user may then manipulate the state of this job, using the)-5.892 F
+F2(bg)3.392 E F0 .892(command to continue it in the)3.392 F .894
+(background, the)108 132 R F2(fg)3.394 E F0 .895
+(command to continue it in the fore)3.394 F .895(ground, or the)-.15 F
+F2(kill)3.395 E F0 .895(command to kill it.)3.395 F(A)5.895 E F2(^Z)
+3.395 E F0(tak)3.395 E(es)-.1 E(ef)108 144 Q .949(fect immediately)-.25
+F 3.449(,a)-.65 G .948(nd has the additional side ef)-3.449 F .948
+(fect of causing pending output and typeahead to be dis-)-.25 F(carded.)
+108 156 Q .777(There are a number of w)108 172.8 R .777
+(ays to refer to a job in the shell.)-.1 F .777(The character)5.777 F F2
+(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 184.8
+Q F1(jobspec)A F0 3.458(\). Job)B(number)3.458 E F1(n)3.818 E F0 .957
+(may be referred to as)3.697 F F2(%n)3.457 E F0 5.957(.A)C .957
+(job may also be referred to using a pre\214x of the)-2.5 F .59(name us\
+ed to start it, or using a substring that appears in its command line.)
+108 196.8 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F2(%ce)3.09 E
+F0 .59(refers to a)3.09 F(stopped)108 208.8 Q F2(ce)3.464 E F0(job)3.464
+E 5.964(.I)-.4 G 3.463(fap)-5.964 G .963
+(re\214x matches more than one job,)-3.463 F F2(bash)3.463 E F0 .963
+(reports an error)3.463 F 5.963(.U)-.55 G(sing)-5.963 E F2(%?ce)3.463 E
+F0 3.463(,o)C 3.463(nt)-3.463 G .963(he other)-3.463 F .086
+(hand, refers to an)108 220.8 R 2.587(yj)-.15 G .087
+(ob containing the string)-2.587 F F2(ce)2.587 E F0 .087
+(in its command line.)2.587 F .087
+(If the substring matches more than one)5.087 F(job,)108 232.8 Q F2
+(bash)2.518 E F0 .018(reports an error)2.518 F 5.018(.T)-.55 G .018
+(he symbols)-5.018 F F2(%%)2.518 E F0(and)2.518 E F2(%+)2.518 E F0 .018
+(refer to the shell')2.518 F 2.518(sn)-.55 G .018(otion of the)-2.518 F
+F1(curr)2.518 E .018(ent job)-.37 F F0 2.518(,w).23 G .018(hich is)
+-2.518 F .494(the last job stopped while it w)108 244.8 R .495
+(as in the fore)-.1 F .495(ground or started in the background.)-.15 F
+(The)5.495 E F1(pr)4.245 E -.15(ev)-.37 G .495(ious job).15 F F0 .495
+(may be)3.225 F .788(referenced using)108 256.8 R F2<25ad>3.288 E F0
+5.788(.I)C 3.288(ft)-5.788 G .787(here is only a single job,)-3.288 F F2
+(%+)3.287 E F0(and)3.287 E F2<25ad>3.287 E F0 .787
+(can both be used to refer to that job)3.287 F 5.787(.I)-.4 G(n)-5.787 E
+.256(output pertaining to jobs \(e.g., the output of the)108 268.8 R F2
+(jobs)2.756 E F0 .256(command\), the current job is al)2.756 F -.1(wa)
+-.1 G .257(ys \215agged with a).1 F F2(+)2.757 E F0(,)A .411
+(and the pre)108 280.8 R .411(vious job with a)-.25 F F2<ad>2.911 E F0
+5.411(.A)C .411(single % \(with no accompan)-2.5 F .41
+(ying job speci\214cation\) also refers to the cur)-.15 F(-)-.2 E
+(rent job)108 292.8 Q(.)-.4 E .443
+(Simply naming a job can be used to bring it into the fore)108 309.6 R
+(ground:)-.15 E F2(%1)2.944 E F0 .444(is a synon)2.944 F .444(ym for)
+-.15 F F2 -.63(``)2.944 G .444(fg %1').63 F(')-.63 E F0 2.944(,b)C
+(ringing)-2.944 E 1.473(job 1 from the background into the fore)108
+321.6 R 3.973(ground. Similarly)-.15 F(,)-.65 E F2 -.63(``)3.972 G 1.472
+(%1 &').63 F(')-.63 E F0 1.472(resumes job 1 in the background,)3.972 F
+(equi)108 333.6 Q -.25(va)-.25 G(lent to).25 E F2 -.63(``)2.5 G(bg %1')
+.63 E(')-.63 E F0(.)A .13(The shell learns immediately whene)108 350.4 R
+-.15(ve)-.25 G 2.63(raj).15 G .13(ob changes state.)-2.63 F(Normally)
+5.131 E(,)-.65 E F2(bash)2.631 E F0 -.1(wa)2.631 G .131
+(its until it is about to print a).1 F .158
+(prompt before reporting changes in a job')108 362.4 R 2.658(ss)-.55 G
+.158(tatus so as to not interrupt an)-2.658 F 2.657(yo)-.15 G .157
+(ther output.)-2.657 F .157(If the)5.157 F F2<ad62>2.657 E F0 .157
+(option to)2.657 F(the)108 374.4 Q F2(set)3.951 E F0 -.2(bu)3.951 G
+1.451(iltin command is enabled,).2 F F2(bash)3.951 E F0 1.452
+(reports such changes immediately)3.951 F 6.452(.A)-.65 G 1.752 -.15
+(ny t)-6.452 H 1.452(rap on).15 F/F3 9/Times-Bold@0 SF(SIGCHLD)3.952 E
+F0(is)3.702 E -.15(exe)108 386.4 S(cuted for each child that e).15 E
+(xits.)-.15 E .033(If an attempt to e)108 403.2 R(xit)-.15 E F2(bash)
+2.533 E F0 .033(is made while jobs are stopped \(or)2.533 F 2.532(,i)-.4
+G 2.532(ft)-2.532 G(he)-2.532 E F2(checkjobs)2.532 E F0 .032
+(shell option has been enabled)2.532 F 2.019(using the)108 415.2 R F2
+(shopt)4.519 E F0 -.2(bu)4.519 G 2.019
+(iltin, running\), the shell prints a w).2 F 2.02
+(arning message, and, if the)-.1 F F2(checkjobs)4.52 E F0 2.02
+(option is)4.52 F .459(enabled, lists the jobs and their statuses.)108
+427.2 R(The)5.459 E F2(jobs)2.959 E F0 .458
+(command may then be used to inspect their status.)2.958 F .458(If a)
+5.458 F .603(second attempt to e)108 439.2 R .604
+(xit is made without an interv)-.15 F .604
+(ening command, the shell does not print another w)-.15 F(arning,)-.1 E
+(and an)108 451.2 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E/F4
+10.95/Times-Bold@0 SF(PR)72 468 Q(OMPTING)-.329 E F0 .645(When e)108 480
+R -.15(xe)-.15 G .645(cuting interacti).15 F -.15(ve)-.25 G(ly).15 E(,)
+-.65 E F2(bash)3.145 E F0 .645(displays the primary prompt)3.145 F F3
+(PS1)3.145 E F0 .645(when it is ready to read a command,)2.895 F 1.825
+(and the secondary prompt)108 492 R F3(PS2)4.325 E F0 1.825
+(when it needs more input to complete a command.)4.075 F F2(Bash)6.826 E
+F0(allo)4.326 E 1.826(ws these)-.25 F 1.499(prompt strings to be custom\
+ized by inserting a number of backslash-escaped special characters that\
+ are)108 504 R(decoded as follo)108 516 Q(ws:)-.25 E F2(\\a)144 528 Q F0
+(an ASCII bell character \(07\))28.22 E F2(\\d)144 540 Q F0
+(the date in "W)27.66 E(eekday Month Date" format \(e.g., "T)-.8 E
+(ue May 26"\))-.45 E F2(\\D{)144 552 Q F1(format)A F2(})A F0(the)180 564
+Q F1(format)3.926 E F0 1.426(is passed to)3.926 F F1(strftime)3.926 E F0
+1.427(\(3\) and the result is inserted into the prompt string; an)B
+(empty)180 576 Q F1(format)2.5 E F0
+(results in a locale-speci\214c time representation.)2.5 E
+(The braces are required)5 E F2(\\e)144 588 Q F0
+(an ASCII escape character \(033\))28.78 E F2(\\h)144 600 Q F0
+(the hostname up to the \214rst `.)27.66 E(')-.7 E F2(\\H)144 612 Q F0
+(the hostname)25.44 E F2(\\j)144 624 Q F0
+(the number of jobs currently managed by the shell)29.89 E F2(\\l)144
+636 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de)
+-2.5 E(vice name)-.25 E F2(\\n)144 648 Q F0(ne)27.66 E(wline)-.25 E F2
+(\\r)144 660 Q F0(carriage return)28.78 E F2(\\s)144 672 Q F0
+(the name of the shell, the basename of)29.33 E F2($0)2.5 E F0
+(\(the portion follo)2.5 E(wing the \214nal slash\))-.25 E F2(\\t)144
+684 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F2(\\T)144
+696 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E F2(\\@)144
+708 Q F0(the current time in 12-hour am/pm format)23.92 E(GNU Bash-4.0)
+72 768 Q(2009 February 7)140.96 E(32)190.95 E 0 Cg EP
+%%Page: 33 33
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(\\A)144 84 Q F0
+(the current time in 24-hour HH:MM format)26 E F1(\\u)144 96 Q F0
+(the username of the current user)27.66 E F1(\\v)144 108 Q F0(the v)
+28.22 E(ersion of)-.15 E F1(bash)2.5 E F0(\(e.g., 2.00\))2.5 E F1(\\V)
+144 120 Q F0(the release of)26 E F1(bash)2.5 E F0 2.5(,v)C
+(ersion + patch le)-2.65 E -.15(ve)-.25 G 2.5(l\().15 G(e.g., 2.00.0\))
+-2.5 E F1(\\w)144 132 Q F0 4.288(the current w)26 F 4.288
+(orking directory)-.1 F 6.787(,w)-.65 G(ith)-6.787 E F1($HOME)6.787 E F0
+(abbre)6.787 E 4.287(viated with a tilde \(uses the)-.25 F F1($PR)180
+144 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 -.25(va)2.5 G(riable\)).25 E F1(\\W)
+144 156 Q F0(the basename of the current w)23.22 E(orking directory)-.1
+E 2.5(,w)-.65 G(ith)-2.5 E F1($HOME)2.5 E F0(abbre)2.5 E
+(viated with a tilde)-.25 E F1(\\!)144 168 Q F0
+(the history number of this command)29.89 E F1(\\#)144 180 Q F0
+(the command number of this command)28.22 E F1(\\$)144 192 Q F0
+(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E F1
+(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E(\\)144 204 Q/F2 10
+/Times-Italic@0 SF(nnn)A F0
+(the character corresponding to the octal number)18.22 E F2(nnn)2.5 E F1
+(\\\\)144 216 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F1(\\[)144 228 Q F0
+(be)29.89 E 1.257(gin a sequence of non-printing characters, which coul\
+d be used to embed a terminal)-.15 F(control sequence into the prompt)
+180 240 Q F1(\\])144 252 Q F0(end a sequence of non-printing characters)
+29.89 E .12(The command number and the history number are usually dif)
+108 268.8 R .119(ferent: the history number of a command is its)-.25 F
+1.585(position in the history list, which may include commands restored\
+ from the history \214le \(see)108 280.8 R/F3 9/Times-Bold@0 SF(HIST)
+4.085 E(OR)-.162 E(Y)-.315 E F0(belo)108 292.8 Q .541(w\), while the co\
+mmand number is the position in the sequence of commands e)-.25 F -.15
+(xe)-.15 G .54(cuted during the cur).15 F(-)-.2 E .546
+(rent shell session.)108 304.8 R .546
+(After the string is decoded, it is e)5.546 F .546
+(xpanded via parameter e)-.15 F .546(xpansion, command substitu-)-.15 F
+.352(tion, arithmetic e)108 316.8 R .352(xpansion, and quote remo)-.15 F
+-.25(va)-.15 G .352(l, subject to the v).25 F .352(alue of the)-.25 F F1
+(pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .351(shell option \(see the)2.852
+F(description of the)108 328.8 Q F1(shopt)2.5 E F0(command under)2.5 E
+F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)
+-.25 E/F4 10.95/Times-Bold@0 SF(READLINE)72 345.6 Q F0 .15
+(This is the library that handles reading input when using an interacti)
+108 357.6 R .451 -.15(ve s)-.25 H .151(hell, unless the).15 F F1
+(\255\255noediting)2.651 E F0(option)2.651 E 1.209(is gi)108 369.6 R
+-.15(ve)-.25 G 3.709(na).15 G 3.709(ts)-3.709 G 1.209(hell in)-3.709 F
+-.2(vo)-.4 G 3.709(cation. Line).2 F 1.208
+(editing is also used when using the)3.709 F F1<ad65>3.708 E F0 1.208
+(option to the)3.708 F F1 -.18(re)3.708 G(ad).18 E F0 -.2(bu)3.708 G
+3.708(iltin. By).2 F(def)108 381.6 Q .949
+(ault, the line editing commands are similar to those of emacs.)-.1 F
+3.45(Av)5.95 G .95(i-style line editing interf)-3.45 F .95(ace is also)
+-.1 F -.2(av)108 393.6 S 3.35(ailable. Line)-.05 F .85
+(editing can be enabled at an)3.35 F 3.35(yt)-.15 G .85(ime using the)
+-3.35 F F1 .85(\255o emacs)3.35 F F0(or)3.35 E F1 .85(\255o vi)3.35 F F0
+.85(options to the)3.35 F F1(set)3.35 E F0 -.2(bu)3.35 G(iltin).2 E
+(\(see)108 405.6 Q F3 .762(SHELL B)3.262 F(UIL)-.09 E .762(TIN COMMANDS)
+-.828 F F0(belo)3.012 E 3.262(w\). T)-.25 F 3.263(ot)-.8 G .763(urn of)
+-3.263 F 3.263(fl)-.25 G .763
+(ine editing after the shell is running, use the)-3.263 F F1(+o)3.263 E
+(emacs)108 417.6 Q F0(or)2.5 E F1(+o vi)2.5 E F0(options to the)2.5 E F1
+(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(Readline Notation)87 434.4 Q
+F0 .568(In this section, the emacs-style notation is used to denote k)
+108 446.4 R -.15(ey)-.1 G(strok).15 E 3.067(es. Control)-.1 F -.1(ke)
+3.067 G .567(ys are denoted by C\255)-.05 F F2 -.1(ke)C(y)-.2 E F0(,)A
+1.152(e.g., C\255n means Control\255N.)108 458.4 R(Similarly)6.152 E(,)
+-.65 E F2(meta)4.032 E F0 -.1(ke)3.913 G 1.153(ys are denoted by M\255)
+-.05 F F2 -.1(ke)C(y)-.2 E F0 3.653(,s)C 3.653(oM)-3.653 G 1.153
+(\255x means Meta\255X.)-3.653 F(\(On)6.153 E -.1(ke)108 470.4 S .831
+(yboards without a)-.05 F F2(meta)3.711 E F0 -.1(ke)3.591 G 2.131 -.65
+(y, M)-.05 H<ad>.65 E F2(x)A F0 .831(means ESC)3.331 F F2(x)3.331 E F0
+3.331(,i)C .83(.e., press the Escape k)-3.331 F 1.13 -.15(ey t)-.1 H .83
+(hen the).15 F F2(x)4.1 E F0 -.1(ke)3.86 G 4.63 -.65(y. T)-.05 H .83
+(his mak).65 F(es)-.1 E .599(ESC the)108 482.4 R F2 .599(meta pr)3.099 F
+(e\214x)-.37 E F0 5.599(.T)C .599(he combination M\255C\255)-5.599 F F2
+(x)A F0 .599(means ESC\255Control\255)3.099 F F2(x)A F0 3.099(,o)C 3.099
+(rp)-3.099 G .6(ress the Escape k)-3.099 F .9 -.15(ey t)-.1 H .6
+(hen hold).15 F(the Control k)108 494.4 Q .3 -.15(ey w)-.1 H
+(hile pressing the).15 E F2(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\))
+.65 E .62(Readline commands may be gi)108 511.2 R -.15(ve)-.25 G 3.119
+(nn).15 G(umeric)-3.119 E F2(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G
+.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E
+(ho)108 523.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti)
+.4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
+(gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
+.15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
+(ument to a command that).18 F 1.019(acts in the forw)108 535.2 R 1.018
+(ard direction \(e.g.,)-.1 F F1(kill\255line)3.518 E F0 3.518(\)c)C
+1.018(auses that command to act in a backw)-3.518 F 1.018
+(ard direction.)-.1 F(Com-)6.018 E(mands whose beha)108 547.2 Q
+(vior with ar)-.2 E(guments de)-.18 E(viates from this are noted belo)
+-.25 E -.65(w.)-.25 G .811(When a command is described as)108 564 R F2
+(killing)3.311 E F0(te)3.311 E .811(xt, the te)-.15 F .811
+(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .812
+(or possible future retrie)-3.311 F -.25(va)-.25 G 3.312(l\().25 G F2
+(yank-)-3.312 E(ing)108 576 Q F0 2.529(\). The)B .029(killed te)2.529 F
+.029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F2
+.029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E .329 -.15(ve k)-.25 H
+.029(ills cause the te).15 F .029(xt to be accumulated into one unit,)
+-.15 F .567(which can be yank)108 588 R .567(ed all at once.)-.1 F .567
+(Commands which do not kill te)5.567 F .567
+(xt separate the chunks of te)-.15 F .567(xt on the kill)-.15 F(ring.)
+108 600 Q F1(Readline Initialization)87 616.8 Q F0 .091(Readline is cus\
+tomized by putting commands in an initialization \214le \(the)108 628.8
+R F2(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591 F .091
+(name of this \214le)2.591 F .196(is tak)108 640.8 R .196(en from the v)
+-.1 F .196(alue of the)-.25 F F3(INPUTRC)2.696 E F0 -.25(va)2.446 G
+2.696(riable. If).25 F .196(that v)2.696 F .196
+(ariable is unset, the def)-.25 F .196(ault is)-.1 F F2(~/.inputr)2.696
+E(c)-.37 E F0 5.196(.W).31 G .197(hen a)-5.196 F 1.034(program which us\
+es the readline library starts up, the initialization \214le is read, a\
+nd the k)108 652.8 R 1.334 -.15(ey b)-.1 H 1.034(indings and).15 F -.25
+(va)108 664.8 S 1.149(riables are set.).25 F 1.149(There are only a fe)
+6.149 F 3.649(wb)-.25 G 1.149(asic constructs allo)-3.649 F 1.15
+(wed in the readline initialization \214le.)-.25 F(Blank)6.15 E .737
+(lines are ignored.)108 676.8 R .737(Lines be)5.737 F .737
+(ginning with a)-.15 F F1(#)3.237 E F0 .737(are comments.)3.237 F .737
+(Lines be)5.737 F .737(ginning with a)-.15 F F1($)3.237 E F0 .736
+(indicate conditional)3.236 F 2.5(constructs. Other)108 688.8 R
+(lines denote k)2.5 E .3 -.15(ey b)-.1 H(indings and v).15 E
+(ariable settings.)-.25 E .986(The def)108 705.6 R .986(ault k)-.1 F
+-.15(ey)-.1 G .987(-bindings may be changed with an).15 F F2(inputr)
+3.497 E(c)-.37 E F0 3.487(\214le. Other)3.797 F .987
+(programs that use this library may)3.487 F(add their o)108 717.6 Q
+(wn commands and bindings.)-.25 E(GNU Bash-4.0)72 768 Q(2009 February 7)
+140.96 E(33)190.95 E 0 Cg EP
+%%Page: 34 34
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E -.15(Fo)108 84 S 2.5(re).15 G(xample, placing)-2.65 E
+(M\255Control\255u: uni)144 100.8 Q -.15(ve)-.25 G(rsal\255ar).15 E
+(gument)-.18 E(or)108 112.8 Q(C\255Meta\255u: uni)144 124.8 Q -.15(ve)
+-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 136.8 Q/F1 10
+/Times-Italic@0 SF(inputr)2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E
+2.5(eM)-.1 G(\255C\255u e)-2.5 E -.15(xe)-.15 G
+(cute the readline command).15 E F1(univer)2.5 E(sal\255ar)-.1 E(gument)
+-.37 E F0(.).68 E 1.261(The follo)108 153.6 R 1.261
+(wing symbolic character names are recognized:)-.25 F F1 -.4(RU)3.761 G
+(BOUT).4 E F0(,)1.27 E F1(DEL)3.761 E F0(,).53 E F1(ESC)3.761 E F0(,).72
+E F1(LFD)3.761 E F0(,).28 E F1(NEWLINE)3.76 E F0(,).73 E F1(RET)3.76 E
+F0(,)1.27 E F1(RETURN)108 165.6 Q F0(,)1.1 E F1(SPC)2.5 E F0(,).72 E F1
+(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G(nd)-2.5 E F1 -.5(TA)2.5 G
+(B).5 E F0(.).27 E .209(In addition to command names, readline allo)108
+182.4 R .209(ws k)-.25 F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G
+2.709(eb)-2.709 G .209(ound to a string that is inserted when the k)
+-2.709 F .509 -.15(ey i)-.1 H(s).15 E(pressed \(a)108 194.4 Q F1(macr)
+2.5 E(o)-.45 E F0(\).)A/F2 10/Times-Bold@0 SF(Readline K)87 211.2 Q
+(ey Bindings)-.25 E F0 .366(The syntax for controlling k)108 223.2 R
+.666 -.15(ey b)-.1 H .366(indings in the).15 F F1(inputr)2.876 E(c)-.37
+E F0 .366(\214le is simple.)3.176 F .366
+(All that is required is the name of the)5.366 F .382(command or the te)
+108 235.2 R .383(xt of a macro and a k)-.15 F .683 -.15(ey s)-.1 H .383
+(equence to which it should be bound. The name may be speci-).15 F .853
+(\214ed in one of tw)108 247.2 R 3.353(ow)-.1 G .853
+(ays: as a symbolic k)-3.453 F 1.153 -.15(ey n)-.1 H .853
+(ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)3.353 E F1(Contr)
+3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15
+(ey)-.1 G(sequence.)108 259.2 Q 1.541(When using the form)108 276 R F2
+-.1(ke)4.041 G(yname).1 E F0(:)A F1(function\255name).833 E F0(or)4.041
+E F1(macr)4.042 E(o)-.45 E F0(,)A F1 -.1(ke)4.042 G(yname)-.2 E F0 1.542
+(is the name of a k)4.222 F 1.842 -.15(ey s)-.1 H 1.542(pelled out in)
+.15 F 2.5(English. F)108 288 R(or e)-.15 E(xample:)-.15 E
+(Control-u: uni)144 312 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E
+(Meta-Rubout: backw)144 324 Q(ard-kill-w)-.1 E(ord)-.1 E
+(Control-o: "> output")144 336 Q .699(In the abo)108 352.8 R .998 -.15
+(ve ex)-.15 H(ample,).15 E F1(C\255u)3.038 E F0 .698
+(is bound to the function)3.448 F F2(uni)3.198 E -.1(ve)-.1 G
+(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M\255DEL)3.878 E F0 .698
+(is bound to the func-)3.728 F(tion)108 364.8 Q F2
+(backward\255kill\255w)2.758 E(ord)-.1 E F0 2.758(,a)C(nd)-2.758 E F1
+(C\255o)2.598 E F0 .258(is bound to run the macro e)2.938 F .259
+(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
+376.8 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
+(into the line\).)2.5 E .056(In the second form,)108 393.6 R F2("k)2.556
+E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.556 E F1(macr)
+2.556 E(o)-.45 E F0(,)A F2 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
+(fers from)-.25 F F2 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
+(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284
+(denoting an entire k)108 405.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
+ay be speci\214ed by placing the sequence within double quotes.).15 F
+(Some)6.284 E .386(GNU Emacs style k)108 417.6 R .686 -.15(ey e)-.1 H
+.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385
+(xample, b)-.15 F .385(ut the symbolic character names)-.2 F
+(are not recognized.)108 429.6 Q("\\C\255u": uni)144 453.6 Q -.15(ve)
+-.25 G(rsal\255ar).15 E(gument)-.18 E
+("\\C\255x\\C\255r": re\255read\255init\255\214le)144 465.6 Q
+("\\e[11~": "Function K)144 477.6 Q .3 -.15(ey 1)-.25 H(").15 E .314
+(In this e)108 494.4 R(xample,)-.15 E F1(C\255u)2.654 E F0 .314(is ag)
+3.064 F .315(ain bound to the function)-.05 F F2(uni)2.815 E -.1(ve)-.1
+G(rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .315(C\255x C\255r)5.155 F F0
+.315(is bound to the func-)3.545 F(tion)108 506.4 Q F2 -.18(re)2.5 G
+<ad72>.18 E(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1
+(ESC [ 1 1 ~)3.01 E F0(is bound to insert the te)3.94 E(xt)-.15 E F3
+(Function Key 1)2.5 E F0(.)A
+(The full set of GNU Emacs style escape sequences is)108 523.2 Q F2
+<5c43ad>144 535.2 Q F0(control pre\214x)20.3 E F2<5c4dad>144 547.2 Q F0
+(meta pre\214x)18.08 E F2(\\e)144 559.2 Q F0(an escape character)28.78 E
+F2(\\\\)144 571.2 Q F0(backslash)30.44 E F2(\\")144 583.2 Q F0
+(literal ")27.67 E F2<5c08>144 595.2 Q F0(literal \010)30.44 E(In addit\
+ion to the GNU Emacs style escape sequences, a second set of backslash \
+escapes is a)108 612 Q -.25(va)-.2 G(ilable:).25 E F2(\\a)144 624 Q F0
+(alert \(bell\))28.22 E F2(\\b)144 636 Q F0(backspace)27.66 E F2(\\d)144
+648 Q F0(delete)27.66 E F2(\\f)144 660 Q F0(form feed)29.89 E F2(\\n)144
+672 Q F0(ne)27.66 E(wline)-.25 E F2(\\r)144 684 Q F0(carriage return)
+28.78 E F2(\\t)144 696 Q F0(horizontal tab)29.89 E F2(\\v)144 708 Q F0
+-.15(ve)28.22 G(rtical tab).15 E(GNU Bash-4.0)72 768 Q(2009 February 7)
+140.96 E(34)190.95 E 0 Cg EP
+%%Page: 35 35
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(\\)144 84 Q/F2 10/Times-Italic@0 SF(nnn)A
+F0(the eight-bit character whose v)18.22 E(alue is the octal v)-.25 E
+(alue)-.25 E F2(nnn)2.5 E F0(\(one to three digits\))2.5 E F1(\\x)144 96
+Q F2(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)-.25
+E(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5
+(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E 1.142(When entering the te)
+108 112.8 R 1.141(xt of a macro, single or double quotes must be used t\
+o indicate a macro de\214nition.)-.15 F .089(Unquoted te)108 124.8 R
+.089(xt is assumed to be a function name.)-.15 F .09(In the macro body)
+5.089 F 2.59(,t)-.65 G .09(he backslash escapes described abo)-2.59 F
+-.15(ve)-.15 G(are e)108 136.8 Q 2.5(xpanded. Backslash)-.15 F
+(will quote an)2.5 E 2.5(yo)-.15 G(ther character in the macro te)-2.5 E
+(xt, including " and \010.)-.15 E F1(Bash)108 153.6 Q F0(allo)2.93 E .43
+(ws the current readline k)-.25 F .73 -.15(ey b)-.1 H .429
+(indings to be displayed or modi\214ed with the).15 F F1(bind)2.929 E F0
+-.2(bu)2.929 G .429(iltin command.).2 F .045
+(The editing mode may be switched during interacti)108 165.6 R .345 -.15
+(ve u)-.25 H .046(se by using the).15 F F1<ad6f>2.546 E F0 .046
+(option to the)2.546 F F1(set)2.546 E F0 -.2(bu)2.546 G .046
+(iltin command).2 F(\(see)108 177.6 Q/F3 9/Times-Bold@0 SF(SHELL B)2.5 E
+(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1
+(Readline V)87 194.4 Q(ariables)-.92 E F0 .044(Readline has v)108 206.4
+R .043(ariables that can be used to further customize its beha)-.25 F
+(vior)-.2 E 5.043(.A)-.55 G -.25(va)-2.5 G .043
+(riable may be set in the).25 F F2(inpu-)2.553 E(tr)108 218.4 Q(c)-.37 E
+F0(\214le with a statement of the form)2.81 E F1(set)144 235.2 Q F2
+(variable\255name value)2.5 E F0 .79(Except where noted, readline v)108
+252 R .79(ariables can tak)-.25 F 3.29(et)-.1 G .79(he v)-3.29 F(alues)
+-.25 E F1(On)3.29 E F0(or)3.29 E F1(Off)3.29 E F0 .79(\(without re)3.29
+F -.05(ga)-.15 G .79(rd to case\).).05 F(Unrecog-)5.79 E .449(nized v)
+108 264 R .448(ariable names are ignored.)-.25 F .448(When a v)5.448 F
+.448(ariable v)-.25 F .448(alue is read, empty or null v)-.25 F .448
+(alues, "on" \(case-insensi-)-.25 F(ti)108 276 Q -.15(ve)-.25 G .467
+(\), and "1" are equi).15 F -.25(va)-.25 G .468(lent to).25 F F1(On)
+2.968 E F0 5.468(.A)C .468(ll other v)-5.468 F .468(alues are equi)-.25
+F -.25(va)-.25 G .468(lent to).25 F F1(Off)2.968 E F0 5.468(.T)C .468
+(he v)-5.468 F .468(ariables and their def)-.25 F(ault)-.1 E -.25(va)108
+288 S(lues are:).25 E F1(bell\255style \(audible\))108 304.8 Q F0 .011
+(Controls what happens when readline w)144 316.8 R .011
+(ants to ring the terminal bell.)-.1 F .01(If set to)5.01 F F1(none)2.51
+E F0 2.51(,r)C .01(eadline ne)-2.51 F -.15(ve)-.25 G(r).15 E .94
+(rings the bell.)144 328.8 R .94(If set to)5.94 F F1(visible)3.44 E F0
+3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25(va)
+-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0(,)A
+(readline attempts to ring the terminal')144 340.8 Q 2.5(sb)-.55 G(ell.)
+-2.5 E F1(bind\255tty\255special\255chars \(On\))108 352.8 Q F0 .056
+(If set to)144 364.8 R F1(On)2.556 E F0 2.556(,r)C .056(eadline attempt\
+s to bind the control characters treated specially by the k)-2.556 F
+(ernel')-.1 E 2.555(st)-.55 G(ermi-)-2.555 E(nal dri)144 376.8 Q -.15
+(ve)-.25 G 2.5(rt).15 G 2.5(ot)-2.5 G(heir readline equi)-2.5 E -.25(va)
+-.25 G(lents.).25 E F1(comment\255begin \(`)108 388.8 Q(`#')-.63 E('\))
+-.63 E F0 .884(The string that is inserted when the readline)144 400.8 R
+F1(insert\255comment)3.385 E F0 .885(command is e)3.385 F -.15(xe)-.15 G
+3.385(cuted. This).15 F(com-)3.385 E(mand is bound to)144 412.8 Q F1
+(M\255#)2.5 E F0(in emacs mode and to)2.5 E F1(#)2.5 E F0
+(in vi command mode.)2.5 E F1(completion\255ignor)108 424.8 Q
+(e\255case \(Off\))-.18 E F0(If set to)144 436.8 Q F1(On)2.5 E F0 2.5
+(,r)C(eadline performs \214lename matching and completion in a case\255\
+insensiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1(completion\255pr)
+108 448.8 Q(e\214x\255display\255length \(0\))-.18 E F0 .829(The length\
+ in characters of the common pre\214x of a list of possible completions\
+ that is displayed)144 460.8 R 1.274(without modi\214cation.)144 472.8 R
+1.274(When set to a v)6.274 F 1.274
+(alue greater than zero, common pre\214x)-.25 F 1.275
+(es longer than this)-.15 F -.25(va)144 484.8 S(lue are replaced with a\
+n ellipsis when displaying possible completions.).25 E F1
+(completion\255query\255items \(100\))108 496.8 Q F0 .53
+(This determines when the user is queried about vie)144 508.8 R .529
+(wing the number of possible completions gen-)-.25 F .56(erated by the)
+144 520.8 R F1(possible\255completions)3.06 E F0 3.06(command. It)3.06 F
+.561(may be set to an)3.061 F 3.061(yi)-.15 G(nte)-3.061 E .561(ger v)
+-.15 F .561(alue greater than or)-.25 F .783(equal to zero.)144 532.8 R
+.783(If the number of possible completions is greater than or equal to \
+the v)5.783 F .782(alue of this)-.25 F -.25(va)144 544.8 S .237
+(riable, the user is ask).25 F .237(ed whether or not he wishes to vie)
+-.1 F 2.737(wt)-.25 G .237(hem; otherwise the)-2.737 F 2.737(ya)-.15 G
+.237(re simply listed)-2.737 F(on the terminal.)144 556.8 Q F1(con)108
+568.8 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)144 580.8
+R F1(On)3.113 E F0 3.113(,r)C .613(eadline will con)-3.113 F -.15(ve)-.4
+G .613(rt characters with the eighth bit set to an ASCII k).15 F .912
+-.15(ey s)-.1 H .612(equence by).15 F .541
+(stripping the eighth bit and pre\214xing an escape character \(in ef)
+144 592.8 R .541(fect, using escape as the)-.25 F F2 .542(meta pr)3.042
+F(e-)-.37 E<8c78>144 604.8 Q F0(\).)A F1(disable\255completion \(Off\))
+108 616.8 Q F0 .038(If set to)144 628.8 R F1(On)2.538 E F0 2.538(,r)C
+.038(eadline will inhibit w)-2.538 F .038(ord completion.)-.1 F .038
+(Completion characters will be inserted into the)5.038 F(line as if the)
+144 640.8 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E
+F0(.)A F1(editing\255mode \(emacs\))108 652.8 Q F0 .252
+(Controls whether readline be)144 664.8 R .253(gins with a set of k)-.15
+F .553 -.15(ey b)-.1 H .253(indings similar to).15 F F2(emacs)2.753 E F0
+(or)2.753 E F2(vi)2.753 E F0(.)A F1(editing\255mode)5.253 E F0
+(can be set to either)144 676.8 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E
+F0(.)A F1(enable\255k)108 688.8 Q(eypad \(Off\))-.1 E F0 .893
+(When set to)144 700.8 R F1(On)3.393 E F0 3.393(,r)C .893
+(eadline will try to enable the application k)-3.393 F -.15(ey)-.1 G
+.893(pad when it is called.).15 F .892(Some sys-)5.893 F
+(tems need this to enable the arro)144 712.8 Q 2.5(wk)-.25 G -.15(ey)
+-2.6 G(s.).15 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(35)190.95
+E 0 Cg EP
+%%Page: 36 36
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(expand\255tilde \(Off\))108 84 Q F0
+(If set to)144 96 Q F1(on)2.5 E F0 2.5(,t)C(ilde e)-2.5 E
+(xpansion is performed when readline attempts w)-.15 E(ord completion.)
+-.1 E F1(history\255pr)108 108 Q(eser)-.18 E -.1(ve)-.1 G
+(\255point \(Off\)).1 E F0 1.492(If set to)144 120 R F1(on)3.992 E F0
+3.992(,t)C 1.493(he history code attempts to place point at the same lo\
+cation on each history line)-3.992 F(retrie)144 132 Q -.15(ve)-.25 G 2.5
+(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E F0
+(or)2.5 E F1(next-history)2.5 E F0(.)A F1(history\255size \(0\))108 144
+Q F0 .463(Set the maximum number of history entries sa)144 156 R -.15
+(ve)-.2 G 2.963(di).15 G 2.963(nt)-2.963 G .463(he history list.)-2.963
+F .462(If set to zero, the number of)5.463 F
+(entries in the history list is not limited.)144 168 Q F1
+(horizontal\255scr)108 180 Q(oll\255mode \(Off\))-.18 E F0 .448
+(When set to)144 192 R F1(On)2.948 E F0 2.948(,m)C(ak)-2.948 E .448
+(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .449
+(crolling the input horizontally on a)-2.948 F 1.194(single screen line\
+ when it becomes longer than the screen width rather than wrapping to a\
+ ne)144 204 R(w)-.25 E(line.)144 216 Q F1(input\255meta \(Off\))108 228
+Q F0 .227(If set to)144 240 R F1(On)2.727 E F0 2.727(,r)C .228(eadline \
+will enable eight-bit input \(that is, it will not strip the high bit f\
+rom the char)-2.727 F(-)-.2 E .957(acters it reads\), re)144 252 R -.05
+(ga)-.15 G .956(rdless of what the terminal claims it can support.).05 F
+.956(The name)5.956 F F1(meta\255\215ag)3.456 E F0 .956(is a)3.456 F
+(synon)144 264 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 276 Q
+(ch\255terminators \(`)-.18 E(`C\255[C\255J')-.63 E('\))-.63 E F0 .439(\
+The string of characters that should terminate an incremental search wi\
+thout subsequently e)144 288 R -.15(xe)-.15 G(cut-).15 E .935
+(ing the character as a command.)144 300 R .935(If this v)5.935 F .935
+(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934
+(alue, the characters)-3.684 F/F2 10/Times-Italic@0 SF(ESC)3.434 E F0
+(and)144 312 Q F2(C\255J)2.5 E F0(will terminate an incremental search.)
+2.5 E F1 -.1(ke)108 324 S(ymap \(emacs\)).1 E F0 2.02
+(Set the current readline k)144 336 R -.15(ey)-.1 G 4.521(map. The).15 F
+2.021(set of v)4.521 F 2.021(alid k)-.25 F -.15(ey)-.1 G 2.021
+(map names is).15 F F2 2.021(emacs, emacs\255standar)4.521 F(d,)-.37 E
+.069(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 348 R F0 2.568
+(,a)C(nd)-2.568 E F2(vi\255insert)2.568 E F0(.).68 E F2(vi)5.068 E F0
+.068(is equi)2.568 F -.25(va)-.25 G .068(lent to).25 F F2(vi\255command)
+2.568 E F0(;)A F2(emacs)2.568 E F0 1.543(is equi)144 360 R -.25(va)-.25
+G 1.543(lent to).25 F F2(emacs\255standar)4.044 E(d)-.37 E F0 6.544(.T)C
+1.544(he def)-6.544 F 1.544(ault v)-.1 F 1.544(alue is)-.25 F F2(emacs)
+4.044 E F0 4.044(;t).27 G 1.544(he v)-4.044 F 1.544(alue of)-.25 F F1
+(editing\255mode)4.044 E F0(also)4.044 E(af)144 372 Q(fects the def)-.25
+E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1(mark\255dir)108 384 Q
+(ectories \(On\))-.18 E F0(If set to)144 396 Q F1(On)2.5 E F0 2.5(,c)C
+(ompleted directory names ha)-2.5 E .3 -.15(ve a s)-.2 H(lash appended.)
+.15 E F1(mark\255modi\214ed\255lines \(Off\))108 408 Q F0(If set to)144
+420 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b)
+-.2 H(een modi\214ed are displayed with a preceding asterisk \().15 E F1
+(*)A F0(\).)A F1(mark\255symlink)108 432 Q(ed\255dir)-.1 E
+(ectories \(Off\))-.18 E F0 .175(If set to)144 444 R F1(On)2.675 E F0
+2.675(,c)C .175
+(ompleted names which are symbolic links to directories ha)-2.675 F .475
+-.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 456
+Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F1
+(match\255hidden\255\214les \(On\))108 468 Q F0 .192(This v)144 480 R
+.192(ariable, when set to)-.25 F F1(On)2.692 E F0 2.692(,c)C .192
+(auses readline to match \214les whose names be)-2.692 F .193
+(gin with a `.)-.15 F 2.693('\()-.7 G(hidden)-2.693 E 1.024
+(\214les\) when performing \214lename completion, unless the leading `.)
+144 492 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.023
+(upplied by the user in the)-3.523 F(\214lename to be completed.)144 504
+Q F1(output\255meta \(Off\))108 516 Q F0 .506(If set to)144 528 R F1(On)
+3.006 E F0 3.006(,r)C .507(eadline will display characters with the eig\
+hth bit set directly rather than as a meta-)-3.006 F(pre\214x)144 540 Q
+(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 552 Q F0
+.809(If set to)144 564 R F1(On)3.308 E F0 3.308(,r)C .808
+(eadline uses an internal)-3.308 F F2(mor)3.308 E(e)-.37 E F0(-lik)A
+3.308(ep)-.1 G .808(ager to display a screenful of possible comple-)
+-3.308 F(tions at a time.)144 576 Q F1
+(print\255completions\255horizontally \(Off\))108 588 Q F0 1.318
+(If set to)144 600 R F1(On)3.818 E F0 3.818(,r)C 1.319(eadline will dis\
+play completions with matches sorted horizontally in alphabetical)-3.818
+F(order)144 612 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
+E F1 -2.29 -.18(re v)108 624 T(ert\255all\255at\255newline \(Off\)).08 E
+F0 .873(If set to)144 636 R F1(on)3.373 E F0 3.373(,r)C .872
+(eadline will undo all changes to history lines before returning when)
+-3.373 F F1(accept\255line)3.372 E F0(is)3.372 E -.15(exe)144 648 S
+2.686(cuted. By).15 F(def)2.686 E .186
+(ault, history lines may be modi\214ed and retain indi)-.1 F .186
+(vidual undo lists across calls to)-.25 F F1 -.18(re)144 660 S(adline)
+.18 E F0(.)A F1(sho)108 672 Q(w\255all\255if\255ambiguous \(Off\))-.1 E
+F0 .478(This alters the def)144 684 R .478(ault beha)-.1 F .478
+(vior of the completion functions.)-.2 F .477(If set to)5.477 F F1(on)
+2.977 E F0 2.977(,w)C .477(ords which ha)-3.077 F .777 -.15(ve m)-.2 H
+(ore).15 E 1.264(than one possible completion cause the matches to be l\
+isted immediately instead of ringing the)144 696 R(bell.)144 708 Q
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(36)190.95 E 0 Cg EP
+%%Page: 37 37
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(sho)108 84 Q
+(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346
+(This alters the def)144 96 R 5.346(ault beha)-.1 F 5.345
+(vior of the completion functions in a f)-.2 F 5.345(ashion similar to)
+-.1 F F1(sho)144 108 Q(w\255all\255if\255ambiguous)-.1 E F0 6.922(.I)C
+4.422(fs)-6.922 G 1.922(et to)-4.422 F F1(on)4.422 E F0 4.422(,w)C 1.922
+(ords which ha)-4.522 F 2.223 -.15(ve m)-.2 H 1.923
+(ore than one possible completion).15 F 1.04(without an)144 120 R 3.54
+(yp)-.15 G 1.039
+(ossible partial completion \(the possible completions don')-3.54 F
+3.539(ts)-.18 G 1.039(hare a common pre\214x\))-3.539 F(cause the match\
+es to be listed immediately instead of ringing the bell.)144 132 Q F1
+(visible\255stats \(Off\))108 144 Q F0 .846(If set to)144 156 R F1(On)
+3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346
+(st)-.55 G .846(ype as reported by)-3.346 F/F2 10/Times-Italic@0 SF
+(stat)3.346 E F0 .846(\(2\) is appended to the \214lename)B
+(when listing possible completions.)144 168 Q F1
+(Readline Conditional Constructs)87 184.8 Q F0 .05
+(Readline implements a f)108 196.8 R .05(acility similar in spirit to t\
+he conditional compilation features of the C preprocessor)-.1 F .096
+(which allo)108 208.8 R .096(ws k)-.25 F .396 -.15(ey b)-.1 H .096
+(indings and v).15 F .096
+(ariable settings to be performed as the result of tests.)-.25 F .097
+(There are four parser)5.096 F(directi)108 220.8 Q -.15(ve)-.25 G 2.5
+(su).15 G(sed.)-2.5 E F1($if)108 237.6 Q F0(The)24.89 E F1($if)2.963 E
+F0 .463(construct allo)2.963 F .462(ws bindings to be made based on the\
+ editing mode, the terminal being used,)-.25 F .477
+(or the application using readline.)144 249.6 R .477(The te)5.477 F .477
+(xt of the test e)-.15 F .477
+(xtends to the end of the line; no characters)-.15 F
+(are required to isolate it.)144 261.6 Q F1(mode)144 278.4 Q F0(The)
+12.67 E F1(mode=)3.712 E F0 1.212(form of the)3.712 F F1($if)3.711 E F0
+(directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211
+(sed to test whether readline is in emacs or vi)-3.711 F 3.065
+(mode. This)180 290.4 R .565(may be used in conjunction with the)3.065 F
+F1 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to)
+3.065 F .735(set bindings in the)180 302.4 R F2(emacs\255standar)3.235 E
+(d)-.37 E F0(and)3.235 E F2(emacs\255ctlx)3.235 E F0 -.1(ke)3.235 G .735
+(ymaps only if readline is starting)-.05 F(out in emacs mode.)180 314.4
+Q F1(term)144 331.2 Q F0(The)15.46 E F1(term=)3.196 E F0 .696
+(form may be used to include terminal-speci\214c k)3.196 F .996 -.15
+(ey b)-.1 H .697(indings, perhaps to bind).15 F .654(the k)180 343.2 R
+.954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
+(sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
+(wo)3.154 G .654(rd on the right side of).1 F(the)180 355.2 Q F1(=)3.231
+E F0 .731(is tested ag)3.231 F .732(ainst the both full name of the ter\
+minal and the portion of the terminal)-.05 F(name before the \214rst)180
+367.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0
+(to match both)2.74 E F2(sun)2.84 E F0(and)2.74 E F2(sun\255cmd)2.5 E F0
+2.5(,f).77 G(or instance.)-2.5 E F1(application)144 384 Q F0(The)180 396
+Q F1(application)3.003 E F0 .503
+(construct is used to include application-speci\214c settings.)3.003 F
+.503(Each program)5.503 F .114(using the readline library sets the)180
+408 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
+(nd an initialization \214le can test for a)-2.614 F .501(particular v)
+180 420 R 3.001(alue. This)-.25 F .501(could be used to bind k)3.001 F
+.801 -.15(ey s)-.1 H .5(equences to functions useful for a spe-).15 F
+.396(ci\214c program.)180 432 R -.15(Fo)5.396 G 2.896(ri).15 G .396
+(nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15
+(ey s)-.1 H .397(equence that quotes the).15 F(current or pre)180 444 Q
+(vious w)-.25 E(ord in Bash:)-.1 E F1($if)180 468 Q F0(Bash)2.5 E 2.5
+(#Q)180 480 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
+("\\C\255xq": "\\eb\\"\\ef\\"")180 492 Q F1($endif)180 504 Q($endif)108
+520.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
+(xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1($else)
+108 537.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0
+(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G
+(cuted if the test f).15 E(ails.)-.1 E F1($include)108 554.4 Q F0 .357
+(This directi)144 566.4 R .657 -.15(ve t)-.25 H(ak).15 E .357
+(es a single \214lename as an ar)-.1 F .356
+(gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
+144 578.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
+-.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1
+($include)144 602.4 Q F2(/etc/inputr)5.833 E(c)-.37 E F1(Sear)87 619.2 Q
+(ching)-.18 E F0 .834(Readline pro)108 631.2 R .834
+(vides commands for searching through the command history \(see)-.15 F
+/F3 9/Times-Bold@0 SF(HIST)3.335 E(OR)-.162 E(Y)-.315 E F0(belo)3.085 E
+.835(w\) for lines)-.25 F(containing a speci\214ed string.)108 643.2 Q
+(There are tw)5 E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.51 E
+(emental)-.37 E F0(and)3.01 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51
+E .698(Incremental searches be)108 660 R .698
+(gin before the user has \214nished typing the search string.)-.15 F
+.697(As each character of the)5.697 F .112
+(search string is typed, readline displays the ne)108 672 R .112
+(xt entry from the history matching the string typed so f)-.15 F(ar)-.1
+E 5.113(.A)-.55 G(n)-5.113 E .542
+(incremental search requires only as man)108 684 R 3.042(yc)-.15 G .542
+(haracters as needed to \214nd the desired history entry)-3.042 F 5.541
+(.T)-.65 G .541(he char)-5.541 F(-)-.2 E .224(acters present in the v)
+108 696 R .224(alue of the)-.25 F F1(isear)2.724 E(ch-terminators)-.18 E
+F0 -.25(va)2.724 G .224
+(riable are used to terminate an incremental search.).25 F .66
+(If that v)108 708 R .66(ariable has not been assigned a v)-.25 F .66
+(alue the Escape and Control-J characters will terminate an incre-)-.25
+F .096(mental search.)108 720 R .096(Control-G will abort an incrementa\
+l search and restore the original line.)5.096 F .097(When the search is)
+5.097 F(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(37)190.95 E 0 Cg
+EP
+%%Page: 38 38
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(terminated, the history entry containing the search string becom\
+es the current line.)108 84 Q 2.939 -.8(To \214)108 100.8 T 1.339(nd ot\
+her matching entries in the history list, type Control-S or Control-R a\
+s appropriate.).8 F 1.338(This will)6.338 F .674(search backw)108 112.8
+R .674(ard or forw)-.1 F .674(ard in the history for the ne)-.1 F .675
+(xt entry matching the search string typed so f)-.15 F(ar)-.1 E 5.675
+(.A)-.55 G -.15(ny)-5.675 G .175(other k)108 124.8 R .475 -.15(ey s)-.1
+H .174
+(equence bound to a readline command will terminate the search and e).15
+F -.15(xe)-.15 G .174(cute that command.).15 F -.15(Fo)5.174 G(r).15 E
+.54(instance, a)108 136.8 R/F1 10/Times-Italic@0 SF(ne)3.04 E(wline)-.15
+E F0 .541(will terminate the search and accept the line, thereby e)3.04
+F -.15(xe)-.15 G .541(cuting the command from the).15 F(history list.)
+108 148.8 Q .653(Readline remembers the last incremental search string.)
+108 165.6 R .653(If tw)5.653 F 3.153(oC)-.1 G .653
+(ontrol-Rs are typed without an)-3.153 F 3.152(yi)-.15 G(nterv)-3.152 E
+(en-)-.15 E(ing characters de\214ning a ne)108 177.6 Q 2.5(ws)-.25 G
+(earch string, an)-2.5 E 2.5(yr)-.15 G(emembered search string is used.)
+-2.5 E .567(Non-incremental searches read the entire search string befo\
+re starting to search for matching history lines.)108 194.4 R(The searc\
+h string may be typed by the user or be part of the contents of the cur\
+rent line.)108 206.4 Q/F2 10/Times-Bold@0 SF(Readline Command Names)87
+223.2 Q F0 1.392(The follo)108 235.2 R 1.391
+(wing is a list of the names of the commands and the def)-.25 F 1.391
+(ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F
+3.891(ya)-.15 G(re)-3.891 E 2.621(bound. Command)108 247.2 R .121
+(names without an accompan)2.621 F .121(ying k)-.15 F .421 -.15(ey s)-.1
+H .122(equence are unbound by def).15 F 2.622(ault. In)-.1 F .122
+(the follo)2.622 F(wing)-.25 E(descriptions,)108 259.2 Q F1(point)3.411
+E F0 .911(refers to the current cursor position, and)3.411 F F1(mark)
+3.411 E F0 .91(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.41
+(db).15 G 3.41(yt)-3.41 G(he)-3.41 E F2(set\255mark)108 271.2 Q F0 2.5
+(command. The)2.5 F(te)2.5 E
+(xt between the point and mark is referred to as the)-.15 E F1 -.37(re)
+2.5 G(gion)-.03 E F0(.)A F2(Commands f)87 288 Q(or Mo)-.25 E(ving)-.1 E
+(beginning\255of\255line \(C\255a\))108 300 Q F0(Mo)144 312 Q .3 -.15
+(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F2
+(end\255of\255line \(C\255e\))108 324 Q F0(Mo)144 336 Q .3 -.15(ve t)
+-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F2 -.25(fo)108 348 S
+(rward\255char \(C\255f\)).25 E F0(Mo)144 360 Q .3 -.15(ve f)-.15 H(orw)
+.15 E(ard a character)-.1 E(.)-.55 E F2(backward\255char \(C\255b\))108
+372 Q F0(Mo)144 384 Q .3 -.15(ve b)-.15 H(ack a character).15 E(.)-.55 E
+F2 -.25(fo)108 396 S(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 408
+Q .822 -.15(ve f)-.15 H(orw).15 E .522(ard to the end of the ne)-.1 F
+.523(xt w)-.15 F 3.023(ord. W)-.1 F .523
+(ords are composed of alphanumeric characters \(let-)-.8 F
+(ters and digits\).)144 420 Q F2(backward\255w)108 432 Q(ord \(M\255b\))
+-.1 E F0(Mo)144 444 Q 1.71 -.15(ve b)-.15 H 1.41
+(ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91
+(ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F
+(characters \(letters and digits\).)144 456 Q F2(shell\255f)108 468 Q
+(orward\255w)-.25 E(ord)-.1 E F0(Mo)144 480 Q .784 -.15(ve f)-.15 H(orw)
+.15 E .484(ard to the end of the ne)-.1 F .484(xt w)-.15 F 2.984(ord. W)
+-.1 F .484(ords are delimited by non-quoted shell metacharac-)-.8 F
+(ters.)144 492 Q F2(shell\255backward\255w)108 504 Q(ord)-.1 E F0(Mo)144
+516 Q .909 -.15(ve b)-.15 H .609(ack to the start of the current or pre)
+.15 F .609(vious w)-.25 F 3.109(ord. W)-.1 F .608
+(ords are delimited by non-quoted shell)-.8 F(metacharacters.)144 528 Q
+F2(clear\255scr)108 540 Q(een \(C\255l\))-.18 E F0 .993
+(Clear the screen lea)144 552 R .993
+(ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G
+.993(th an ar).4 F .993(gument, refresh the)-.18 F
+(current line without clearing the screen.)144 564 Q F2 -.18(re)108 576
+S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144
+588 Q F2(Commands f)87 604.8 Q(or Manipulating the History)-.25 E
+(accept\255line \(Newline, Retur)108 616.8 Q(n\))-.15 E F0 .159
+(Accept the line re)144 628.8 R -.05(ga)-.15 G .159
+(rdless of where the cursor is.).05 F .158(If this line is non-empty)
+5.158 F 2.658(,a)-.65 G .158(dd it to the history list)-2.658 F .699
+(according to the state of the)144 640.8 R/F3 9/Times-Bold@0 SF
+(HISTCONTR)3.199 E(OL)-.27 E F0 -.25(va)2.949 G 3.199(riable. If).25 F
+.699(the line is a modi\214ed history line, then)3.199 F
+(restore the history line to its original state.)144 652.8 Q F2(pr)108
+664.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
+(Fetch the pre)144 676.8 Q(vious command from the history list, mo)-.25
+E(ving back in the list.)-.15 E F2(next\255history \(C\255n\))108 688.8
+Q F0(Fetch the ne)144 700.8 Q(xt command from the history list, mo)-.15
+E(ving forw)-.15 E(ard in the list.)-.1 E(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(38)190.95 E 0 Cg EP
+%%Page: 39 39
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(beginning\255of\255history \(M\255<\))108
+84 Q F0(Mo)144 96 Q .3 -.15(ve t)-.15 H 2.5(ot).15 G
+(he \214rst line in the history)-2.5 E(.)-.65 E F1
+(end\255of\255history \(M\255>\))108 108 Q F0(Mo)144 120 Q .3 -.15(ve t)
+-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5(,i)-.65 G
+(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18(re v)108
+132 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.471
+(Search backw)144 144 R 1.471(ard starting at the current line and mo)
+-.1 F 1.47(ving `up' through the history as necessary)-.15 F(.)-.65 E
+(This is an incremental search.)144 156 Q F1 -.25(fo)108 168 S
+(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131
+(Search forw)144 180 R 1.131(ard starting at the current line and mo)-.1
+F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary)-.25
+F(.)-.65 E(This is an incremental search.)144 192 Q F1(non\255incr)108
+204 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H(rse\255sear).15 E
+(ch\255history \(M\255p\))-.18 E F0 .165(Search backw)144 216 R .164(ar\
+d through the history starting at the current line using a non-incremen\
+tal search for)-.1 F 2.5(as)144 228 S(tring supplied by the user)-2.5 E
+(.)-.55 E F1(non\255incr)108 240 Q(emental\255f)-.18 E(orward\255sear)
+-.25 E(ch\255history \(M\255n\))-.18 E F0 1.353(Search forw)144 252 R
+1.354(ard through the history using a non-incremental search for a stri\
+ng supplied by the)-.1 F(user)144 264 Q(.)-.55 E F1(history\255sear)108
+276 Q(ch\255f)-.18 E(orward)-.25 E F0 .249(Search forw)144 288 R .249(a\
+rd through the history for the string of characters between the start o\
+f the current line)-.1 F(and the point.)144 300 Q
+(This is a non-incremental search.)5 E F1(history\255sear)108 312 Q
+(ch\255backward)-.18 E F0 .95(Search backw)144 324 R .951(ard through t\
+he history for the string of characters between the start of the curren\
+t)-.1 F(line and the point.)144 336 Q(This is a non-incremental search.)
+5 E F1(yank\255nth\255ar)108 348 Q 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0
+.622(Insert the \214rst ar)144 360 R .622(gument to the pre)-.18 F .622
+(vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F
+.622(vious line\))-.25 F .794(at point.)144 372 R -.4(Wi)5.794 G .794
+(th an ar).4 F(gument)-.18 E/F2 10/Times-Italic@0 SF(n)3.294 E F0 3.294
+(,i).24 G .794(nsert the)-3.294 F F2(n)3.294 E F0 .794(th w)B .794
+(ord from the pre)-.1 F .794(vious command \(the w)-.25 F .795
+(ords in the)-.1 F(pre)144 384 Q .292(vious command be)-.25 F .292
+(gin with w)-.15 F .291(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)
+-2.791 H(ti).15 E .591 -.15(ve a)-.25 H -.18(rg).15 G .291
+(ument inserts the).18 F F2(n)2.791 E F0 .291(th w)B .291
+(ord from the end of)-.1 F .281(the pre)144 396 R .281(vious command.)
+-.25 F .281(Once the ar)5.281 F(gument)-.18 E F2(n)2.781 E F0 .281
+(is computed, the ar)2.781 F .281(gument is e)-.18 F .282
+(xtracted as if the "!)-.15 F F2(n)A F0(")A(history e)144 408 Q
+(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 420 Q
+2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.308
+(Insert the last ar)144 432 R 1.308(gument to the pre)-.18 F 1.307
+(vious command \(the last w)-.25 F 1.307(ord of the pre)-.1 F 1.307
+(vious history entry\).)-.25 F -.4(Wi)144 444 S .735(th an ar).4 F .735
+(gument, beha)-.18 F 1.035 -.15(ve ex)-.2 H .735(actly lik).15 F(e)-.1 E
+F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.736(.S)C(uccessi)-5.736 E
+1.036 -.15(ve c)-.25 H .736(alls to).15 F F1(yank\255last\255ar)3.236 E
+(g)-.1 E F0(mo)3.236 E -.15(ve)-.15 G .728
+(back through the history list, inserting the last ar)144 456 R .728
+(gument of each line in turn.)-.18 F .728(The history e)5.728 F(xpan-)
+-.15 E .14(sion f)144 468 R .14(acilities are used to e)-.1 F .14
+(xtract the last ar)-.15 F .14(gument, as if the "!$" history e)-.18 F
+.14(xpansion had been speci-)-.15 F(\214ed.)144 480 Q F1
+(shell\255expand\255line \(M\255C\255e\))108 492 Q F0 .623
+(Expand the line as the shell does.)144 504 R .622
+(This performs alias and history e)5.622 F .622
+(xpansion as well as all of the)-.15 F(shell w)144 516 Q(ord e)-.1 E 2.5
+(xpansions. See)-.15 F/F3 9/Times-Bold@0 SF(HIST)2.5 E(OR)-.162 E 2.25
+(YE)-.315 G(XP)-2.25 E(ANSION)-.666 E F0(belo)2.25 E 2.5(wf)-.25 G
+(or a description of history e)-2.5 E(xpansion.)-.15 E F1
+(history\255expand\255line \(M\255^\))108 528 Q F0 .938
+(Perform history e)144 540 R .939(xpansion on the current line.)-.15 F
+(See)5.939 E F3(HIST)3.439 E(OR)-.162 E 3.189(YE)-.315 G(XP)-3.189 E
+(ANSION)-.666 E F0(belo)3.189 E 3.439(wf)-.25 G .939(or a descrip-)
+-3.439 F(tion of history e)144 552 Q(xpansion.)-.15 E F1(magic\255space)
+108 564 Q F0 1.627(Perform history e)144 576 R 1.627
+(xpansion on the current line and insert a space.)-.15 F(See)6.626 E F3
+(HIST)4.126 E(OR)-.162 E 3.876(YE)-.315 G(XP)-3.876 E(ANSION)-.666 E F0
+(belo)144 588 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E
+(xpansion.)-.15 E F1(alias\255expand\255line)108 600 Q F0 .394
+(Perform alias e)144 612 R .394(xpansion on the current line.)-.15 F
+(See)5.395 E F3(ALIASES)2.895 E F0(abo)2.645 E .695 -.15(ve f)-.15 H
+.395(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 624 Q F1
+(history\255and\255alias\255expand\255line)108 636 Q F0
+(Perform history and alias e)144 648 Q(xpansion on the current line.)
+-.15 E F1(insert\255last\255ar)108 660 Q(gument \(M\255.)-.1 E 2.5(,M)
+.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 672 S(ynon)-2.5 E(ym for)
+-.15 E F1(yank\255last\255ar)2.5 E(g)-.1 E F0(.)A F1
+(operate\255and\255get\255next \(C\255o\))108 684 Q F0 .948
+(Accept the current line for e)144 696 R -.15(xe)-.15 G .948
+(cution and fetch the ne).15 F .948(xt line relati)-.15 F 1.247 -.15
+(ve t)-.25 H 3.447(ot).15 G .947(he current line from the)-3.447 F
+(history for editing.)144 708 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G
+(ument is ignored.).18 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E
+(39)190.95 E 0 Cg EP
+%%Page: 40 40
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF
+(edit\255and\255execute\255command \(C\255xC\255e\))108 84 Q F0(In)144
+96 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026
+(ditor on the current command line, and e)-3.526 F -.15(xe)-.15 G 1.026
+(cute the result as shell commands.).15 F F1(Bash)6.026 E F0
+(attempts to in)144 108 Q -.2(vo)-.4 G -.1(ke).2 G/F2 9/Times-Bold@0 SF
+($VISU)2.6 E(AL)-.54 E/F3 9/Times-Roman@0 SF(,)A F2($EDIT)2.25 E(OR)
+-.162 E F3(,)A F0(and)2.25 E/F4 10/Times-Italic@0 SF(emacs)2.5 E F0
+(as the editor)2.5 E 2.5(,i)-.4 G 2.5(nt)-2.5 G(hat order)-2.5 E(.)-.55
+E F1(Commands f)87 124.8 Q(or Changing T)-.25 E(ext)-.92 E
+(delete\255char \(C\255d\))108 136.8 Q F0 .358
+(Delete the character at point.)144 148.8 R .358(If point is at the be)
+5.358 F .358(ginning of the line, there are no characters in the)-.15 F
+(line, and the last character typed w)144 160.8 Q(as not bound to)-.1 E
+F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E F2(EOF)2.5 E F3(.)
+A F1(backward\255delete\255char \(Rubout\))108 172.8 Q F0 .552
+(Delete the character behind the cursor)144 184.8 R 5.553(.W)-.55 G .553
+(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553(umeric ar)-3.053 F
+.553(gument, sa)-.18 F .853 -.15(ve t)-.2 H .553(he deleted te).15 F
+.553(xt on)-.15 F(the kill ring.)144 196.8 Q F1 -.25(fo)108 208.8 S
+(rward\255backward\255delete\255char).25 E F0 .474
+(Delete the character under the cursor)144 220.8 R 2.974(,u)-.4 G .474
+(nless the cursor is at the end of the line, in which case the)-2.974 F
+(character behind the cursor is deleted.)144 232.8 Q F1
+(quoted\255insert \(C\255q, C\255v\))108 244.8 Q F0 .778(Add the ne)144
+256.8 R .779(xt character typed to the line v)-.15 F 3.279
+(erbatim. This)-.15 F .779(is ho)3.279 F 3.279(wt)-.25 G 3.279(oi)-3.279
+G .779(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.279 E F0 3.279
+(,f)C(or)-3.279 E -.15(ex)144 268.8 S(ample.).15 E F1
+(tab\255insert \(C\255v T)108 280.8 Q(AB\))-.9 E F0
+(Insert a tab character)144 292.8 Q(.)-.55 E F1
+(self\255insert \(a, b, A, 1, !, ...\))108 304.8 Q F0
+(Insert the character typed.)144 316.8 Q F1
+(transpose\255chars \(C\255t\))108 328.8 Q F0 .322
+(Drag the character before point forw)144 340.8 R .321(ard o)-.1 F -.15
+(ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .321
+(ving point forw)-.15 F .321(ard as well.)-.1 F 1.182
+(If point is at the end of the line, then this transposes the tw)144
+352.8 R 3.683(oc)-.1 G 1.183(haracters before point.)-3.683 F(Ne)6.183 E
+-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 364.8 Q(guments ha)-.18 E
+.3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1
+(transpose\255w)108 376.8 Q(ords \(M\255t\))-.1 E F0 .024(Drag the w)144
+388.8 R .024(ord before point past the w)-.1 F .023(ord after point, mo)
+-.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.523(rt).15 G .023(hat w)
+-2.523 F .023(ord as well.)-.1 F .023(If point)5.023 F
+(is at the end of the line, this transposes the last tw)144 400.8 Q 2.5
+(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 412.8 Q
+(ord \(M\255u\))-.1 E F0 1.698(Uppercase the current \(or follo)144
+424.8 R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F
+-.05(ga)-.15 G(ti).05 E 1.999 -.15(ve a)-.25 H -.18(rg).15 G 1.699
+(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 436.8 S(rd, b).1
+E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 448.8 Q
+(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 460.8 Q 1.648
+(wercase the current \(or follo)-.25 F 1.648(wing\) w)-.25 F 4.148
+(ord. W)-.1 F 1.647(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.947 -.15
+(ve a)-.25 H -.18(rg).15 G 1.647(ument, lo).18 F 1.647(wercase the pre)
+-.25 F(vious)-.25 E -.1(wo)144 472.8 S(rd, b).1 E(ut do not mo)-.2 E .3
+-.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 484.8 Q
+(ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144
+496.8 R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F
+-.05(ga)-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.975
+(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 508.8 S(rd, b)
+.1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108
+520.8 S(rwrite\255mode).1 E F0 -.8(To)144 532.8 S .438(ggle o).8 F -.15
+(ve)-.15 G .438(rwrite mode.).15 F -.4(Wi)5.438 G .438(th an e).4 F .438
+(xplicit positi)-.15 F .737 -.15(ve n)-.25 H .437(umeric ar).15 F .437
+(gument, switches to o)-.18 F -.15(ve)-.15 G .437(rwrite mode.).15 F -.4
+(Wi)144 544.8 S .78(th an e).4 F .781(xplicit non-positi)-.15 F 1.081
+-.15(ve n)-.25 H .781(umeric ar).15 F .781
+(gument, switches to insert mode.)-.18 F .781(This command af)5.781 F
+(fects)-.25 E(only)144 556.8 Q F1(emacs)4.395 E F0(mode;)4.395 E F1(vi)
+4.395 E F0 1.894(mode does o)4.395 F -.15(ve)-.15 G 1.894(rwrite dif).15
+F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F F4 -.37(re)
+4.394 G(adline\(\)).37 E F0 1.894(starts in insert)4.394 F 3.968
+(mode. In)144 568.8 R -.15(ove)3.968 G 1.468
+(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E F0
+1.469(replace the te)3.969 F 1.469(xt at point rather than)-.15 F .958
+(pushing the te)144 580.8 R .958(xt to the right.)-.15 F .957
+(Characters bound to)5.958 F F1(backward\255delete\255char)3.457 E F0
+.957(replace the character)3.457 F(before point with a space.)144 592.8
+Q(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
+609.6 Q(anking)-.85 E(kill\255line \(C\255k\))108 621.6 Q F0
+(Kill the te)144 633.6 Q(xt from point to the end of the line.)-.15 E F1
+(backward\255kill\255line \(C\255x Rubout\))108 645.6 Q F0(Kill backw)
+144 657.6 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
+(unix\255line\255discard \(C\255u\))108 669.6 Q F0(Kill backw)144 681.6
+Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E
+(The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)
+-2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 693.6 Q F0
+(Kill all characters on the current line, no matter where point is.)144
+705.6 Q(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(40)190.95 E 0 Cg
+EP
+%%Page: 41 41
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(kill\255w)108 84 Q(ord \(M\255d\))-.1 E F0
+.728(Kill from point to the end of the current w)144 96 R .729
+(ord, or if between w)-.1 F .729(ords, to the end of the ne)-.1 F .729
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 108 S
+(rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G
+(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 120 Q
+(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 132 Q(ord behind point.)-.1
+E -.8(Wo)5 G(rd boundaries are the same as those used by).8 E F1
+(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(shell\255kill\255w)108 144 Q
+(ord \(M\255d\))-.1 E F0 .729
+(Kill from point to the end of the current w)144 156 R .728
+(ord, or if between w)-.1 F .728(ords, to the end of the ne)-.1 F .728
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 168 S
+(rd boundaries are the same as those used by).8 E F1(shell\255f)2.5 E
+(orward\255w)-.25 E(ord)-.1 E F0(.)A F1(shell\255backward\255kill\255w)
+108 180 Q(ord \(M\255Rubout\))-.1 E F0 3.025(Kill the w)144 192 R 3.025
+(ord behind point.)-.1 F -.8(Wo)8.025 G 3.025
+(rd boundaries are the same as those used by).8 F F1(shell\255back-)
+5.525 E(ward\255w)144 204 Q(ord)-.1 E F0(.)A F1(unix\255w)108 216 Q
+(ord\255rubout \(C\255w\))-.1 E F0 .365(Kill the w)144 228 R .365
+(ord behind point, using white space as a w)-.1 F .364(ord boundary)-.1
+F 5.364(.T)-.65 G .364(he killed te)-5.364 F .364(xt is sa)-.15 F -.15
+(ve)-.2 G 2.864(do).15 G 2.864(nt)-2.864 G(he)-2.864 E(kill-ring.)144
+240 Q F1(unix\255\214lename\255rubout)108 252 Q F0 .166(Kill the w)144
+264 R .166
+(ord behind point, using white space and the slash character as the w)
+-.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 276 Q
+(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)-2.5 G(he kill-ring.)
+-2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 288 Q F0
+(Delete all spaces and tabs around point.)144 300 Q F1(kill\255r)108 312
+Q(egion)-.18 E F0(Kill the te)144 324 Q(xt in the current re)-.15 E
+(gion.)-.15 E F1(copy\255r)108 336 Q(egion\255as\255kill)-.18 E F0(Cop)
+144 348 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
+(gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1
+(copy\255backward\255w)108 360 Q(ord)-.1 E F0(Cop)144 372 Q 4.801(yt)-.1
+G 2.301(he w)-4.801 F 2.301(ord before point to the kill b)-.1 F(uf)-.2
+E(fer)-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.3
+(ord boundaries are the same as)-.1 F F1(back-)4.8 E(ward\255w)144 384 Q
+(ord)-.1 E F0(.)A F1(copy\255f)108 396 Q(orward\255w)-.25 E(ord)-.1 E F0
+(Cop)144 408 Q 4.507(yt)-.1 G 2.007(he w)-4.507 F 2.007(ord follo)-.1 F
+2.007(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.008(.T)-.55
+G 2.008(he w)-7.008 F 2.008(ord boundaries are the same as)-.1 F F1 -.25
+(fo)4.508 G -.37(r-).25 G(ward\255w)144 420 Q(ord)-.1 E F0(.)A F1
+(yank \(C\255y\))108 432 Q F0 -1(Ya)144 444 S
+(nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25
+E F1(yank\255pop \(M\255y\))108 456 Q F0
+(Rotate the kill ring, and yank the ne)144 468 Q 2.5(wt)-.25 G 2.5
+(op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E
+F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 484.8 Q
+(guments)-.1 E(digit\255ar)108 496.8 Q
+(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .642
+(Add this digit to the ar)144 508.8 R .641
+(gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18
+(rg)-3.141 G 3.141(ument. M\255\255).18 F .641(starts a ne)3.141 F(g-)
+-.15 E(ati)144 520.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
+(uni)108 532.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .778
+(This is another w)144 544.8 R .779(ay to specify an ar)-.1 F 3.279
+(gument. If)-.18 F .779(this command is follo)3.279 F .779
+(wed by one or more digits,)-.25 F 1.376
+(optionally with a leading minus sign, those digits de\214ne the ar)144
+556.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
+568.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
+3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17
+(ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other)
+-.2 F(-)-.2 E .899(wise ignored.)144 580.8 R .898
+(As a special case, if this command is immediately follo)5.899 F .898
+(wed by a character that is)-.25 F .243
+(neither a digit or minus sign, the ar)144 592.8 R .243
+(gument count for the ne)-.18 F .243(xt command is multiplied by four)
+-.15 F 5.243(.T)-.55 G(he)-5.243 E(ar)144 604.8 Q .378
+(gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378
+(cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F
+.378(gument count)-.18 F(four)144 616.8 Q 2.5(,as)-.4 G(econd time mak)
+-2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1
+(Completing)87 633.6 Q(complete \(T)108 645.6 Q(AB\))-.9 E F0 1.137
+(Attempt to perform completion on the te)144 657.6 R 1.137
+(xt before point.)-.15 F F1(Bash)6.137 E F0 1.137
+(attempts completion treating the)3.637 F(te)144 669.6 Q .533(xt as a v)
+-.15 F .533(ariable \(if the te)-.25 F .533(xt be)-.15 F .533(gins with)
+-.15 F F1($)3.033 E F0 .533(\), username \(if the te)B .532(xt be)-.15 F
+.532(gins with)-.15 F F1(~)3.032 E F0 .532(\), hostname \(if the)B(te)
+144 681.6 Q .701(xt be)-.15 F .701(gins with)-.15 F F1(@)3.201 E F0 .701
+(\), or command \(including aliases and functions\) in turn.)B .702
+(If none of these pro-)5.701 F
+(duces a match, \214lename completion is attempted.)144 693.6 Q F1
+(possible\255completions \(M\255?\))108 705.6 Q F0
+(List the possible completions of the te)144 717.6 Q(xt before point.)
+-.15 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(41)190.95 E 0 Cg
+EP
+%%Page: 42 42
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(insert\255completions \(M\255*\))108 84 Q
+F0 .783(Insert all completions of the te)144 96 R .783
+(xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H
+.783(een generated by).15 F F1(possible\255com-)3.282 E(pletions)144 108
+Q F0(.)A F1(menu\255complete)108 120 Q F0 .928(Similar to)144 132 R F1
+(complete)3.428 E F0 3.428(,b)C .929(ut replaces the w)-3.628 F .929
+(ord to be completed with a single match from the list of)-.1 F 1.194
+(possible completions.)144 144 R 1.194(Repeated e)6.194 F -.15(xe)-.15 G
+1.194(cution of).15 F F1(menu\255complete)3.694 E F0 1.193
+(steps through the list of possible)3.694 F .828
+(completions, inserting each match in turn.)144 156 R .828
+(At the end of the list of completions, the bell is rung)5.828 F .727
+(\(subject to the setting of)144 168 R F1(bell\255style)3.227 E F0 3.227
+(\)a)C .727(nd the original te)-3.227 F .727(xt is restored.)-.15 F .727
+(An ar)5.727 F .727(gument of)-.18 F/F2 10/Times-Italic@0 SF(n)3.227 E
+F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.227 E F0 1.73
+(positions forw)144 180 R 1.73(ard in the list of matches; a ne)-.1 F
+-.05(ga)-.15 G(ti).05 E 2.03 -.15(ve a)-.25 H -.18(rg).15 G 1.73
+(ument may be used to mo).18 F 2.03 -.15(ve b)-.15 H(ackw).15 E(ard)-.1
+E(through the list.)144 192 Q(This command is intended to be bound to)5
+E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E(ault.)
+-.1 E F1(delete\255char\255or\255list)108 204 Q F0 .234
+(Deletes the character under the cursor if not at the be)144 216 R .234
+(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete\255char)2.734
+E F0(\).)A .425(If at the end of the line, beha)144 228 R -.15(ve)-.2 G
+2.925(si).15 G .425(dentically to)-2.925 F F1(possible\255completions)
+2.925 E F0 5.425(.T)C .425(his command is unbound)-5.425 F(by def)144
+240 Q(ault.)-.1 E F1(complete\255\214lename \(M\255/\))108 252 Q F0
+(Attempt \214lename completion on the te)144 264 Q(xt before point.)-.15
+E F1(possible\255\214lename\255completions \(C\255x /\))108 276 Q F0
+(List the possible completions of the te)144 288 Q
+(xt before point, treating it as a \214lename.)-.15 E F1
+(complete\255user)108 300 Q(name \(M\255~\))-.15 E F0
+(Attempt completion on the te)144 312 Q
+(xt before point, treating it as a username.)-.15 E F1(possible\255user)
+108 324 Q(name\255completions \(C\255x ~\))-.15 E F0
+(List the possible completions of the te)144 336 Q
+(xt before point, treating it as a username.)-.15 E F1(complete\255v)108
+348 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144 360 Q
+(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1
+(possible\255v)108 372 Q(ariable\255completions \(C\255x $\))-.1 E F0
+(List the possible completions of the te)144 384 Q
+(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1
+(complete\255hostname \(M\255@\))108 396 Q F0
+(Attempt completion on the te)144 408 Q
+(xt before point, treating it as a hostname.)-.15 E F1
+(possible\255hostname\255completions \(C\255x @\))108 420 Q F0
+(List the possible completions of the te)144 432 Q
+(xt before point, treating it as a hostname.)-.15 E F1
+(complete\255command \(M\255!\))108 444 Q F0 .581
+(Attempt completion on the te)144 456 R .581
+(xt before point, treating it as a command name.)-.15 F .58
+(Command comple-)5.58 F .715(tion attempts to match the te)144 468 R
+.715(xt ag)-.15 F .715(ainst aliases, reserv)-.05 F .715(ed w)-.15 F
+.715(ords, shell functions, shell b)-.1 F .715(uiltins, and)-.2 F
+(\214nally e)144 480 Q -.15(xe)-.15 G
+(cutable \214lenames, in that order).15 E(.)-.55 E F1
+(possible\255command\255completions \(C\255x !\))108 492 Q F0
+(List the possible completions of the te)144 504 Q
+(xt before point, treating it as a command name.)-.15 E F1
+(dynamic\255complete\255history \(M\255T)108 516 Q(AB\))-.9 E F0 .425
+(Attempt completion on the te)144 528 R .425
+(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .424
+(ainst lines from the history list)-.05 F
+(for possible completion matches.)144 540 Q F1(dab)108 552 Q(br)-.1 E
+-.15(ev)-.18 G(\255expand).15 E F0 .61
+(Attempt menu completion on the te)144 564 R .611
+(xt before point, comparing the te)-.15 F .611(xt ag)-.15 F .611
+(ainst lines from the his-)-.05 F
+(tory list for possible completion matches.)144 576 Q F1
+(complete\255into\255braces \(M\255{\))108 588 Q F0 .4(Perform \214lena\
+me completion and insert the list of possible completions enclosed with\
+in braces so)144 600 R(the list is a)144 612 Q -.25(va)-.2 G
+(ilable to the shell \(see).25 E F1(Brace Expansion)2.5 E F0(abo)2.5 E
+-.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 628.8 S(yboard Macr).25 E(os)-.18
+E(start\255kbd\255macr)108 640.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\))
+.833 E F0(Be)144 652.8 Q(gin sa)-.15 E
+(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
+(board macro.).15 E F1(end\255kbd\255macr)108 664.8 Q 2.5(o\()-.18 G
+(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 676.8 Q
+(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
+(board macro and store the de\214nition.).15 E F1
+(call\255last\255kbd\255macr)108 688.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
+E F0(Re-e)144 700.8 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey)
+-.1 G .999(board macro de\214ned, by making the characters in the macro\
+ appear as if).15 F(typed at the k)144 712.8 Q -.15(ey)-.1 G(board.).15
+E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(42)190.95 E 0 Cg EP
+%%Page: 43 43
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(Miscellaneous)87 84 Q -.18(re)108 96 S
+<ad72>.18 E(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
+(Read in the contents of the)144 108 R/F2 10/Times-Italic@0 SF(inputr)
+4.277 E(c)-.37 E F0 1.776(\214le, and incorporate an)4.276 F 4.276(yb)
+-.15 G 1.776(indings or v)-4.276 F 1.776(ariable assignments)-.25 F
+(found there.)144 120 Q F1(abort \(C\255g\))108 132 Q F0 3.248
+(Abort the current editing command and ring the terminal')144 144 R
+5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
+(bell\255style)144 156 Q F0(\).)A F1(do\255upper)108 168 Q(case\255v)
+-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.)C(..\))-2.5
+E F0 1.756(If the meta\214ed character)144 180 R F2(x)4.256 E F0 1.755
+(is lo)4.256 F 1.755
+(wercase, run the command that is bound to the corresponding)-.25 F
+(uppercase character)144 192 Q(.)-.55 E F1(pr)108 204 Q
+(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 216 Q
+(xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0
+(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A F1
+(undo \(C\255_, C\255x C\255u\))108 228 Q F0
+(Incremental undo, separately remembered for each line.)144 240 Q F1
+-2.29 -.18(re v)108 252 T(ert\255line \(M\255r\)).08 E F0 1.095
+(Undo all changes made to this line.)144 264 R 1.095(This is lik)6.095 F
+3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E
+F0 1.095(command enough times to)3.595 F
+(return the line to its initial state.)144 276 Q F1
+(tilde\255expand \(M\255&\))108 288 Q F0(Perform tilde e)144 300 Q
+(xpansion on the current w)-.15 E(ord.)-.1 E F1
+(set\255mark \(C\255@, M\255<space>\))108 312 Q F0
+(Set the mark to the point.)144 324 Q(If a numeric ar)5 E
+(gument is supplied, the mark is set to that position.)-.18 E F1
+(exchange\255point\255and\255mark \(C\255x C\255x\))108 336 Q F0(Sw)144
+348 Q .283(ap the point with the mark.)-.1 F .283
+(The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
+2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa)
+144 360 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
+(character\255sear)108 372 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144 384 S
+.535(haracter is read and point is mo)-3.035 F -.15(ve)-.15 G 3.035(dt)
+.15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
+(xt occurrence of that character)-.15 F 5.536(.A)-.55 G(ne)-2.5 E -.05
+(ga)-.15 G(ti).05 E .836 -.15(ve c)-.25 H(ount).15 E(searches for pre)
+144 396 Q(vious occurrences.)-.25 E F1(character\255sear)108 408 Q
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 420 S 1.044
+(haracter is read and point is mo)-3.544 F -.15(ve)-.15 G 3.544(dt).15 G
+3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
+(vious occurrence of that character)-.25 F 6.043(.A)-.55 G(ne)-2.5 E
+-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
+(count searches for subsequent occurrences.)144 432 Q F1
+(insert\255comment \(M\255#\))108 444 Q F0 -.4(Wi)144 456 S .48
+(thout a numeric ar).4 F .48(gument, the v)-.18 F .481
+(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0 -.25(va)
+2.981 G .481(riable is inserted at the).25 F(be)144 468 Q .098
+(ginning of the current line.)-.15 F .098(If a numeric ar)5.098 F .097
+(gument is supplied, this command acts as a toggle:)-.18 F(if)5.097 E
+.321(the characters at the be)144 480 R .321
+(ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
+(comment\255begin)2.821 E F0 2.822(,t)C .322(he v)-2.822 F .322(alue is)
+-.25 F .832(inserted, otherwise the characters in)144 492 R F1
+(comment\255begin)3.332 E F0 .831(are deleted from the be)3.332 F .831
+(ginning of the line.)-.15 F 1.468
+(In either case, the line is accepted as if a ne)144 504 R 1.468
+(wline had been typed.)-.25 F 1.469(The def)6.469 F 1.469(ault v)-.1 F
+1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 516 Q F0 .84
+(causes this command to mak)3.34 F 3.339(et)-.1 G .839
+(he current line a shell comment.)-3.339 F .839(If a numeric ar)5.839 F
+(gu-)-.18 E(ment causes the comment character to be remo)144 528 Q -.15
+(ve)-.15 G(d, the line will be e).15 E -.15(xe)-.15 G
+(cuted by the shell.).15 E F1(glob\255complete\255w)108 540 Q
+(ord \(M\255g\))-.1 E F0 .791(The w)144 552 R .791
+(ord before point is treated as a pattern for pathname e)-.1 F .792
+(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 564
+R(pattern is used to generate a list of matching \214le names for possi\
+ble completions.)2.5 E F1(glob\255expand\255w)108 576 Q
+(ord \(C\255x *\))-.1 E F0 .372(The w)144 588 R .372
+(ord before point is treated as a pattern for pathname e)-.1 F .371
+(xpansion, and the list of matching \214le)-.15 F .516
+(names is inserted, replacing the w)144 600 R 3.016(ord. If)-.1 F 3.016
+(an)3.016 G .516(umeric ar)-3.016 F .516
+(gument is supplied, an asterisk is appended)-.18 F(before pathname e)
+144 612 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\))
+108 624 Q F0 .923(The list of e)144 636 R .923(xpansions that w)-.15 F
+.923(ould ha)-.1 F 1.223 -.15(ve b)-.2 H .923(een generated by).15 F F1
+(glob\255expand\255w)3.423 E(ord)-.1 E F0 .923(is displayed, and)3.423 F
+.872(the line is redra)144 648 R 3.372(wn. If)-.15 F 3.372(an)3.372 G
+.872(umeric ar)-3.372 F .872
+(gument is supplied, an asterisk is appended before pathname)-.18 F -.15
+(ex)144 660 S(pansion.).15 E F1(dump\255functions)108 672 Q F0 .627
+(Print all of the functions and their k)144 684 R .927 -.15(ey b)-.1 H
+.626(indings to the readline output stream.).15 F .626(If a numeric ar)
+5.626 F(gu-)-.18 E
+(ment is supplied, the output is formatted in such a w)144 696 Q
+(ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0
+(\214le.)2.5 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(43)190.95
+E 0 Cg EP
+%%Page: 44 44
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(dump\255v)108 84 Q(ariables)-.1 E F0 1.799
+(Print all of the settable readline v)144 96 R 1.799
+(ariables and their v)-.25 F 1.8(alues to the readline output stream.)
+-.25 F 1.8(If a)6.8 F .305(numeric ar)144 108 R .304
+(gument is supplied, the output is formatted in such a w)-.18 F .304
+(ay that it can be made part of an)-.1 F/F2 10/Times-Italic@0 SF(inputr)
+144 120 Q(c)-.37 E F0(\214le.)2.5 E F1(dump\255macr)108 132 Q(os)-.18 E
+F0 .592(Print all of the readline k)144 144 R .892 -.15(ey s)-.1 H .592
+(equences bound to macros and the strings the).15 F 3.093(yo)-.15 G
+3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 156 Q
+.528(gument is supplied, the output is formatted in such a w)-.18 F .528
+(ay that it can be made part of an)-.1 F F2(inputr)3.027 E(c)-.37 E F0
+(\214le.)144 168 Q F1(display\255shell\255v)108 180 Q
+(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 192 Q
+(ersion information about the current instance of)-.15 E F1(bash)2.5 E
+F0(.)A F1(Pr)87 208.8 Q(ogrammable Completion)-.18 E F0 .146(When w)108
+220.8 R .147(ord completion is attempted for an ar)-.1 F .147
+(gument to a command for which a completion speci\214cation \(a)-.18 F
+F2(compspec)108 232.8 Q F0 3.829(\)h)C 1.329
+(as been de\214ned using the)-3.829 F F1(complete)3.829 E F0 -.2(bu)
+3.829 G 1.329(iltin \(see).2 F/F3 9/Times-Bold@0 SF 1.329(SHELL B)3.829
+F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.328(w\), the)
+-.25 F(programmable completion f)108 244.8 Q(acilities are in)-.1 E -.2
+(vo)-.4 G -.1(ke).2 G(d.).1 E .333
+(First, the command name is identi\214ed.)108 261.6 R .334
+(If a compspec has been de\214ned for that command, the compspec is)
+5.333 F .587
+(used to generate the list of possible completions for the w)108 273.6 R
+3.087(ord. If)-.1 F .587(the command w)3.087 F .586
+(ord is a full pathname, a)-.1 F 1.18
+(compspec for the full pathname is searched for \214rst.)108 285.6 R
+1.181(If no compspec is found for the full pathname, an)6.181 F
+(attempt is made to \214nd a compspec for the portion follo)108 297.6 Q
+(wing the \214nal slash.)-.25 E .817(Once a compspec has been found, it\
+ is used to generate the list of matching w)108 314.4 R 3.317(ords. If)
+-.1 F 3.317(ac)3.317 G .817(ompspec is not)-3.317 F(found, the def)108
+326.4 Q(ault)-.1 E F1(bash)2.5 E F0(completion as described abo)2.5 E .3
+-.15(ve u)-.15 H(nder).15 E F1(Completing)2.5 E F0(is performed.)2.5 E
+.463(First, the actions speci\214ed by the compspec are used.)108 343.2
+R .464(Only matches which are pre\214x)5.464 F .464(ed by the w)-.15 F
+.464(ord being)-.1 F .596(completed are returned.)108 355.2 R .596
+(When the)5.596 F F1<ad66>3.096 E F0(or)3.095 E F1<ad64>3.095 E F0 .595
+(option is used for \214lename or directory name completion, the)3.095 F
+(shell v)108 367.2 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0
+(is used to \214lter the matches.)2.25 E(An)108 384 Q 2.585(yc)-.15 G
+.085(ompletions speci\214ed by a \214lename e)-2.585 F .085
+(xpansion pattern to the)-.15 F F1<ad47>2.585 E F0 .085
+(option are generated ne)2.585 F 2.585(xt. The)-.15 F -.1(wo)2.585 G
+(rds).1 E .844(generated by the pattern need not match the w)108 396 R
+.844(ord being completed.)-.1 F(The)5.844 E F3(GLOBIGNORE)3.343 E F0
+.843(shell v)3.093 F .843(ariable is)-.25 F
+(not used to \214lter the matches, b)108 408 Q(ut the)-.2 E F3(FIGNORE)
+2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 424.8 Q .32
+(xt, the string speci\214ed as the ar)-.15 F .32(gument to the)-.18 F F1
+<ad57>2.82 E F0 .321(option is considered.)2.821 F .321
+(The string is \214rst split using the)5.321 F .413(characters in the)
+108 436.8 R F3(IFS)2.913 E F0 .412(special v)2.663 F .412
+(ariable as delimiters.)-.25 F .412(Shell quoting is honored.)5.412 F
+.412(Each w)5.412 F .412(ord is then e)-.1 F(xpanded)-.15 E .091
+(using brace e)108 448.8 R .091(xpansion, tilde e)-.15 F .092
+(xpansion, parameter and v)-.15 F .092(ariable e)-.25 F .092
+(xpansion, command substitution, and arith-)-.15 F 1.397(metic e)108
+460.8 R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H
+(nder).15 E F3(EXP)3.896 E(ANSION)-.666 E/F4 9/Times-Roman@0 SF(.)A F0
+1.396(The results are split using the rules described)5.896 F(abo)108
+472.8 Q .509 -.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)2.709 G .209
+(rd Splitting).75 F F0 5.209(.T)C .209(he results of the e)-5.209 F .209
+(xpansion are pre\214x-matched ag)-.15 F .21(ainst the w)-.05 F .21
+(ord being com-)-.1 F(pleted, and the matching w)108 484.8 Q
+(ords become the possible completions.)-.1 E 1.238
+(After these matches ha)108 501.6 R 1.538 -.15(ve b)-.2 H 1.238
+(een generated, an).15 F 3.738(ys)-.15 G 1.237
+(hell function or command speci\214ed with the)-3.738 F F1<ad46>3.737 E
+F0(and)3.737 E F1<ad43>3.737 E F0 3.375(options is in)108 513.6 R -.2
+(vo)-.4 G -.1(ke).2 G 5.875(d. When).1 F 3.375
+(the command or function is in)5.875 F -.2(vo)-.4 G -.1(ke).2 G 3.375
+(d, the).1 F F3(COMP_LINE)5.876 E F4(,)A F3(COMP_POINT)5.626 E F4(,)A F3
+(COMP_KEY)108 525.6 Q F4(,)A F0(and)2.408 E F3(COMP_TYPE)2.658 E F0 -.25
+(va)2.408 G .157(riables are assigned v).25 F .157
+(alues as described abo)-.25 F .457 -.15(ve u)-.15 H(nder).15 E F1 .157
+(Shell V)2.657 F(ariables)-.92 E F0 5.157(.I)C(f)-5.157 E 3.485(as)108
+537.6 S .986(hell function is being in)-3.485 F -.2(vo)-.4 G -.1(ke).2 G
+.986(d, the).1 F F3(COMP_W)3.486 E(ORDS)-.09 E F0(and)3.236 E F3
+(COMP_CW)3.486 E(ORD)-.09 E F0 -.25(va)3.236 G .986
+(riables are also set.).25 F(When)5.986 E .609
+(the function or command is in)108 549.6 R -.2(vo)-.4 G -.1(ke).2 G .608
+(d, the \214rst ar).1 F .608(gument is the name of the command whose ar)
+-.18 F .608(guments are)-.18 F .073(being completed, the second ar)108
+561.6 R .073(gument is the w)-.18 F .073
+(ord being completed, and the third ar)-.1 F .073(gument is the w)-.18 F
+.073(ord pre-)-.1 F .608(ceding the w)108 573.6 R .607
+(ord being completed on the current command line.)-.1 F .607
+(No \214ltering of the generated completions)5.607 F(ag)108 585.6 Q .093
+(ainst the w)-.05 F .093(ord being completed is performed; the function\
+ or command has complete freedom in generat-)-.1 F(ing the matches.)108
+597.6 Q(An)108 614.4 Q 2.938(yf)-.15 G .437(unction speci\214ed with)
+-2.938 F F1<ad46>2.937 E F0 .437(is in)2.937 F -.2(vo)-.4 G -.1(ke).2 G
+2.937<648c>.1 G 2.937(rst. The)-2.937 F .437(function may use an)2.937 F
+2.937(yo)-.15 G 2.937(ft)-2.937 G .437(he shell f)-2.937 F .437
+(acilities, including)-.1 F(the)108 626.4 Q F1(compgen)2.956 E F0 -.2
+(bu)2.956 G .456(iltin described belo).2 F 1.756 -.65(w, t)-.25 H 2.956
+(og).65 G .456(enerate the matches.)-2.956 F .457
+(It must put the possible completions in the)5.456 F F3(COMPREPL)108
+638.4 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E(Ne)108 655.2 Q .081
+(xt, an)-.15 F 2.581(yc)-.15 G .081(ommand speci\214ed with the)-2.581 F
+F1<ad43>2.581 E F0 .081(option is in)2.581 F -.2(vo)-.4 G -.1(ke).2 G
+2.581(di).1 G 2.58(na)-2.581 G 2.58(ne)-2.58 G -.4(nv)-2.58 G .08
+(ironment equi).4 F -.25(va)-.25 G .08(lent to command sub-).25 F 2.858
+(stitution. It)108 667.2 R .359(should print a list of completions, one\
+ per line, to the standard output.)2.858 F .359(Backslash may be used)
+5.359 F(to escape a ne)108 679.2 Q(wline, if necessary)-.25 E(.)-.65 E
+.377(After all of the possible completions are generated, an)108 696 R
+2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F1<ad58>2.876
+E F0 .376(option is applied to the)2.876 F 3.181(list. The)108 708 R
+.681(\214lter is a pattern as used for pathname e)3.181 F .681
+(xpansion; a)-.15 F F1(&)3.181 E F0 .682
+(in the pattern is replaced with the te)3.182 F .682(xt of)-.15 F .523
+(the w)108 720 R .523(ord being completed.)-.1 F 3.023(Al)5.523 G
+(iteral)-3.023 E F1(&)3.023 E F0 .522
+(may be escaped with a backslash; the backslash is remo)3.022 F -.15(ve)
+-.15 G 3.022(db).15 G(efore)-3.022 E(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(44)190.95 E 0 Cg EP
+%%Page: 45 45
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .849(attempting a match.)108 84 R(An)5.849 E 3.349(yc)-.15 G .849
+(ompletion that matches the pattern will be remo)-3.349 F -.15(ve)-.15 G
+3.35(df).15 G .85(rom the list.)-3.35 F 3.35(Al)5.85 G(eading)-3.35 E/F1
+10/Times-Bold@0 SF(!)3.35 E F0(ne)108 96 Q -.05(ga)-.15 G
+(tes the pattern; in this case an).05 E 2.5(yc)-.15 G
+(ompletion not matching the pattern will be remo)-2.5 E -.15(ve)-.15 G
+(d.).15 E(Finally)108 112.8 Q 3.087(,a)-.65 G .887 -.15(ny p)-3.087 H
+.587(re\214x and suf).15 F .587(\214x speci\214ed with the)-.25 F F1
+<ad50>3.087 E F0(and)3.087 E F1<ad53>3.087 E F0 .587
+(options are added to each member of the com-)3.087 F(pletion list, and\
+ the result is returned to the readline completion code as the list of \
+possible completions.)108 124.8 Q .246(If the pre)108 141.6 R .247
+(viously-applied actions do not generate an)-.25 F 2.747(ym)-.15 G .247
+(atches, and the)-2.747 F F1 .247(\255o dir)2.747 F(names)-.15 E F0 .247
+(option w)2.747 F .247(as supplied to)-.1 F F1(complete)108 153.6 Q F0
+(when the compspec w)2.5 E
+(as de\214ned, directory name completion is attempted.)-.1 E .462
+(If the)108 170.4 R F1 .462(\255o plusdirs)2.962 F F0 .462(option w)
+2.962 F .462(as supplied to)-.1 F F1(complete)2.962 E F0 .462
+(when the compspec w)2.962 F .462(as de\214ned, directory name com-)-.1
+F(pletion is attempted and an)108 182.4 Q 2.5(ym)-.15 G
+(atches are added to the results of the other actions.)-2.5 E .559
+(By def)108 199.2 R .559(ault, if a compspec is found, whate)-.1 F -.15
+(ve)-.25 G 3.059(ri).15 G 3.059(tg)-3.059 G .56
+(enerates is returned to the completion code as the full set)-3.059 F
+.632(of possible completions.)108 211.2 R .632(The def)5.632 F(ault)-.1
+E F1(bash)3.132 E F0 .631
+(completions are not attempted, and the readline def)3.131 F .631
+(ault of \214le-)-.1 F .558(name completion is disabled.)108 223.2 R
+.558(If the)5.558 F F1 .559(\255o bashdefault)3.059 F F0 .559(option w)
+3.059 F .559(as supplied to)-.1 F F1(complete)3.059 E F0 .559
+(when the compspec)3.059 F -.1(wa)108 235.2 S 3.172(sd).1 G .672
+(e\214ned, the)-3.172 F F1(bash)3.172 E F0(def)3.172 E .671
+(ault completions are attempted if the compspec generates no matches.)
+-.1 F .671(If the)5.671 F F1<ad6f>3.171 E(default)108 247.2 Q F0 1.207
+(option w)3.706 F 1.207(as supplied to)-.1 F F1(complete)3.707 E F0
+1.207(when the compspec w)3.707 F 1.207(as de\214ned, readline')-.1 F
+3.707(sd)-.55 G(ef)-3.707 E 1.207(ault completion)-.1 F
+(will be performed if the compspec \(and, if attempted, the def)108
+259.2 Q(ault)-.1 E F1(bash)2.5 E F0(completions\) generate no matches.)
+2.5 E .245(When a compspec indicates that directory name completion is \
+desired, the programmable completion func-)108 276 R .632(tions force r\
+eadline to append a slash to completed names which are symbolic links t\
+o directories, subject)108 288 R 2.762(to the v)108 300 R 2.762
+(alue of the)-.25 F F1(mark\255dir)5.262 E(ectories)-.18 E F0 2.761
+(readline v)5.262 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.761
+(rdless of the setting of the).05 F F1(mark-sym-)5.261 E(link)108 312 Q
+(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E/F2
+10.95/Times-Bold@0 SF(HIST)72 328.8 Q(OR)-.197 E(Y)-.383 E F0 .371
+(When the)108 340.8 R F1 .371(\255o history)2.871 F F0 .371
+(option to the)2.871 F F1(set)2.872 E F0 -.2(bu)2.872 G .372
+(iltin is enabled, the shell pro).2 F .372(vides access to the)-.15 F/F3
+10/Times-Italic@0 SF .372(command history)2.872 F F0(,)A .032
+(the list of commands pre)108 352.8 R .031(viously typed.)-.25 F .031
+(The v)5.031 F .031(alue of the)-.25 F F1(HISTSIZE)2.531 E F0 -.25(va)
+2.531 G .031(riable is used as the number of com-).25 F .429
+(mands to sa)108 364.8 R .729 -.15(ve i)-.2 H 2.929(nah).15 G .429
+(istory list.)-2.929 F .429(The te)5.429 F .429(xt of the last)-.15 F/F4
+9/Times-Bold@0 SF(HISTSIZE)2.93 E F0 .43(commands \(def)2.68 F .43
+(ault 500\) is sa)-.1 F -.15(ve)-.2 G 2.93(d. The).15 F(shell)2.93 E
+.287(stores each command in the history list prior to parameter and v)
+108 376.8 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F4(EXP)
+2.787 E(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E -.2(bu)108
+388.8 S 4.065(ta).2 G 1.565(fter history e)-4.065 F 1.565
+(xpansion is performed, subject to the v)-.15 F 1.565
+(alues of the shell v)-.25 F(ariables)-.25 E F4(HISTIGNORE)4.065 E F0
+(and)3.816 E F4(HISTCONTR)108 400.8 Q(OL)-.27 E/F5 9/Times-Roman@0 SF(.)
+A F0 .082
+(On startup, the history is initialized from the \214le named by the v)
+108 417.6 R(ariable)-.25 E F4(HISTFILE)2.582 E F0(\(def)2.332 E(ault)-.1
+E F3(~/.bash_history)2.582 E F0(\).)A .315(The \214le named by the v)108
+429.6 R .315(alue of)-.25 F F4(HISTFILE)2.815 E F0 .315
+(is truncated, if necessary)2.565 F 2.815(,t)-.65 G 2.815(oc)-2.815 G
+.315(ontain no more than the number of)-2.815 F .532
+(lines speci\214ed by the v)108 441.6 R .532(alue of)-.25 F F4
+(HISTFILESIZE)3.032 E F5(.)A F0 .532
+(When the history \214le is read, lines be)5.032 F .532
+(ginning with the his-)-.15 F 1.158(tory comment character follo)108
+453.6 R 1.159(wed immediately by a digit are interpreted as timestamps \
+for the preceding)-.25 F .053(history line.)108 465.6 R .053
+(These timestamps are optionally displayed depending on the v)5.053 F
+.052(alue of the)-.25 F F4(HISTTIMEFORMA)2.552 E(T)-.855 E F0 -.25(va)
+108 477.6 S 4.386(riable. When).25 F 1.886(an interacti)4.386 F 2.187
+-.15(ve s)-.25 H 1.887(hell e).15 F 1.887(xits, the last)-.15 F F4
+($HISTSIZE)4.387 E F0 1.887(lines are copied from the history list to)
+4.137 F F4($HISTFILE)108 489.6 Q F5(.)A F0 .056(If the)4.556 F F1
+(histappend)2.556 E F0 .056
+(shell option is enabled \(see the description of)2.556 F F1(shopt)2.556
+E F0(under)2.556 E F4 .056(SHELL B)2.556 F(UIL)-.09 E(TIN)-.828 E
+(COMMANDS)108 501.6 Q F0(belo)2.671 E .422(w\), the lines are appended \
+to the history \214le, otherwise the history \214le is o)-.25 F -.15(ve)
+-.15 G 2.922(rwritten. If).15 F F4(HISTFILE)108 513.6 Q F0 1.114(is uns\
+et, or if the history \214le is unwritable, the history is not sa)3.364
+F -.15(ve)-.2 G 3.614(d. If).15 F(the)3.614 E F5 -.225(va)3.613 G 1.113
+(riable is set, time).225 F 1.251
+(stamps are written to the history \214le, mark)108 525.6 R(ed)-.09 E F0
+1.252(with the history comment character)3.502 F 3.752(,s)-.4 G 3.752
+(ot)-3.752 G(he)-3.752 E 3.752(ym)-.15 G 1.252(ay be preserv)-3.752 F
+(ed)-.15 E .105(across shell sessions.)108 537.6 R .105(This uses the h\
+istory comment character to distinguish timestamps from other history)
+5.105 F 2.604(lines. After)108 549.6 R(sa)2.604 E .104(ving the history)
+-.2 F 2.604(,t)-.65 G .104
+(he history \214le is truncated to contain no more than)-2.604 F F4
+(HISTFILESIZE)2.605 E F0 2.605(lines. If)2.355 F F4(HISTFILESIZE)108
+561.6 Q F0(is not set, no truncation is performed.)2.25 E 1.294(The b)
+108 578.4 R 1.294(uiltin command)-.2 F F1(fc)3.794 E F0(\(see)3.794 E F4
+1.293(SHELL B)3.794 F(UIL)-.09 E 1.293(TIN COMMANDS)-.828 F F0(belo)
+3.543 E 1.293(w\) may be used to list or edit and re-)-.25 F -.15(exe)
+108 590.4 S .673(cute a portion of the history list.).15 F(The)5.673 E
+F1(history)3.173 E F0 -.2(bu)3.173 G .673
+(iltin may be used to display or modify the history list).2 F .28
+(and manipulate the history \214le.)108 602.4 R .279
+(When using command-line editing, search commands are a)5.279 F -.25(va)
+-.2 G .279(ilable in each).25 F(editing mode that pro)108 614.4 Q
+(vide access to the history list.)-.15 E 1.485(The shell allo)108 631.2
+R 1.485(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
+(hich commands are sa)-3.986 F -.15(ve)-.2 G 3.986(do).15 G 3.986(nt)
+-3.986 G 1.486(he history list.)-3.986 F(The)6.486 E F4(HISTCONTR)3.986
+E(OL)-.27 E F0(and)3.736 E F4(HISTIGNORE)108 643.2 Q F0 -.25(va)2.708 G
+.458(riables may be set to cause the shell to sa).25 F .757 -.15(ve o)
+-.2 H .457(nly a subset of the commands entered.).15 F(The)5.457 E F1
+(cmdhist)108 655.2 Q F0 .75
+(shell option, if enabled, causes the shell to attempt to sa)3.25 F 1.05
+-.15(ve e)-.2 H .75(ach line of a multi-line command in).15 F 1.077
+(the same history entry)108 667.2 R 3.577(,a)-.65 G 1.077
+(dding semicolons where necessary to preserv)-3.577 F 3.577(es)-.15 G
+1.077(yntactic correctness.)-3.577 F(The)6.077 E F1(lithist)3.576 E F0
+.373(shell option causes the shell to sa)108 679.2 R .674 -.15(ve t)-.2
+H .374(he command with embedded ne).15 F .374
+(wlines instead of semicolons.)-.25 F .374(See the)5.374 F .319
+(description of the)108 691.2 R F1(shopt)2.819 E F0 -.2(bu)2.819 G .318
+(iltin belo).2 F 2.818(wu)-.25 G(nder)-2.818 E F4 .318(SHELL B)2.818 F
+(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .318
+(for information on setting and)2.568 F(unsetting shell options.)108
+703.2 Q(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(45)190.95 E 0 Cg
+EP
+%%Page: 46 46
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10.95/Times-Bold@0 SF(HIST)72 84 Q(OR)-.197 E 2.738(YE)-.383 G
+(XP)-2.738 E(ANSION)-.81 E F0 .61(The shell supports a history e)108 96
+R .611(xpansion feature that is similar to the history e)-.15 F .611
+(xpansion in)-.15 F/F2 10/Times-Bold@0 SF(csh.)3.111 E F0 .611
+(This section)5.611 F .871(describes what syntax features are a)108 108
+R -.25(va)-.2 G 3.371(ilable. This).25 F .871(feature is enabled by def)
+3.371 F .87(ault for interacti)-.1 F 1.17 -.15(ve s)-.25 H .87
+(hells, and).15 F 2.013(can be disabled using the)108 120 R F2(+H)4.514
+E F0 2.014(option to the)4.514 F F2(set)4.514 E F0 -.2(bu)4.514 G 2.014
+(iltin command \(see).2 F/F3 9/Times-Bold@0 SF 2.014(SHELL B)4.514 F
+(UIL)-.09 E 2.014(TIN COMMANDS)-.828 F F0(belo)108 132 Q 2.5
+(w\). Non-interacti)-.25 F .3 -.15(ve s)-.25 H
+(hells do not perform history e).15 E(xpansion by def)-.15 E(ault.)-.1 E
+1.306(History e)108 148.8 R 1.306(xpansions introduce w)-.15 F 1.306(or\
+ds from the history list into the input stream, making it easy to repea\
+t)-.1 F .209(commands, insert the ar)108 160.8 R .209(guments to a pre)
+-.18 F .21
+(vious command into the current input line, or \214x errors in pre)-.25
+F(vious)-.25 E(commands quickly)108 172.8 Q(.)-.65 E 1.164(History e)108
+189.6 R 1.163(xpansion is performed immediately after a complete line i\
+s read, before the shell breaks it into)-.15 F -.1(wo)108 201.6 S 3.2
+(rds. It).1 F(tak)3.2 E .7(es place in tw)-.1 F 3.2(op)-.1 G 3.2
+(arts. The)-3.2 F .7
+(\214rst is to determine which line from the history list to use during)
+3.2 F 4.368(substitution. The)108 213.6 R 1.868(second is to select por\
+tions of that line for inclusion into the current one.)4.368 F 1.867
+(The line)6.867 F .662(selected from the history is the)108 225.6 R/F4
+10/Times-Italic@0 SF -.15(ev)3.162 G(ent).15 E F0 3.162(,a)C .663
+(nd the portions of that line that are acted upon are)-3.162 F F4(wor)
+3.163 E(ds)-.37 E F0 5.663(.V)C(arious)-6.773 E F4(modi\214er)108 237.6
+Q(s)-.1 E F0 .227(are a)2.727 F -.25(va)-.2 G .227
+(ilable to manipulate the selected w).25 F 2.727(ords. The)-.1 F .226
+(line is brok)2.726 F .226(en into w)-.1 F .226(ords in the same f)-.1 F
+(ashion)-.1 E .351(as when reading input, so that se)108 249.6 R -.15
+(ve)-.25 G(ral).15 E F4(metac)2.852 E(har)-.15 E(acter)-.15 E F0 .352
+(-separated w)B .352(ords surrounded by quotes are considered)-.1 F .625
+(one w)108 261.6 R 3.125(ord. History)-.1 F -.15(ex)3.125 G .624
+(pansions are introduced by the appearance of the history e).15 F .624
+(xpansion character)-.15 F 3.124(,w)-.4 G(hich)-3.124 E(is)108 273.6 Q
+F2(!)3.333 E F0(by def)3.333 E 2.5(ault. Only)-.1 F(backslash \()2.5 E
+F2(\\).833 E F0 2.5(\)a).833 G(nd single quotes can quote the history e)
+-2.5 E(xpansion character)-.15 E(.)-.55 E(Se)108 290.4 Q -.15(ve)-.25 G
+.03(ral characters inhibit history e).15 F .03
+(xpansion if found immediately follo)-.15 F .03(wing the history e)-.25
+F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 302.4 T
+3.163(ni).25 G 3.163(fi)-3.163 G 3.162(ti)-3.163 G 3.162(su)-3.162 G
+.662(nquoted: space, tab, ne)-3.162 F .662(wline, carriage return, and)
+-.25 F F2(=)3.162 E F0 5.662(.I)C 3.162(ft)-5.662 G(he)-3.162 E F2
+(extglob)3.162 E F0 .662(shell option is enabled,)3.162 F F2(\()3.162 E
+F0(will also inhibit e)108 314.4 Q(xpansion.)-.15 E(Se)108 331.2 Q -.15
+(ve)-.25 G .109(ral shell options settable with the).15 F F2(shopt)2.609
+E F0 -.2(bu)2.609 G .11(iltin may be used to tailor the beha).2 F .11
+(vior of history e)-.2 F(xpansion.)-.15 E 1.259(If the)108 343.2 R F2
+(histv)3.759 E(erify)-.1 E F0 1.259
+(shell option is enabled \(see the description of the)3.759 F F2(shopt)
+3.759 E F0 -.2(bu)3.759 G 1.259(iltin\), and).2 F F2 -.18(re)3.758 G
+(adline).18 E F0 1.258(is being)3.758 F 1.497(used, history substitutio\
+ns are not immediately passed to the shell parser)108 355.2 R 6.498(.I)
+-.55 G 1.498(nstead, the e)-6.498 F 1.498(xpanded line is)-.15 F 2.228
+(reloaded into the)108 367.2 R F2 -.18(re)4.728 G(adline).18 E F0 2.228
+(editing b)4.728 F(uf)-.2 E 2.228(fer for further modi\214cation.)-.25 F
+(If)7.228 E F2 -.18(re)4.728 G(adline).18 E F0 2.228
+(is being used, and the)4.728 F F2(histr)108 379.2 Q(eedit)-.18 E F0
+1.202(shell option is enabled, a f)3.702 F 1.202
+(ailed history substitution will be reloaded into the)-.1 F F2 -.18(re)
+3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 391.2 S -.25(ff).2 G
+1.161(er for correction.).25 F(The)6.161 E F2<ad70>3.661 E F0 1.161
+(option to the)3.661 F F2(history)3.661 E F0 -.2(bu)3.661 G 1.16
+(iltin command may be used to see what a history).2 F -.15(ex)108 403.2
+S .055(pansion will do before using it.).15 F(The)5.055 E F2<ad73>2.555
+E F0 .055(option to the)2.555 F F2(history)2.556 E F0 -.2(bu)2.556 G
+.056(iltin may be used to add commands to the).2 F
+(end of the history list without actually e)108 415.2 Q -.15(xe)-.15 G
+(cuting them, so that the).15 E 2.5(ya)-.15 G(re a)-2.5 E -.25(va)-.2 G
+(ilable for subsequent recall.).25 E 2.2(The shell allo)108 432 R 2.2
+(ws control of the v)-.25 F 2.2(arious characters used by the history e)
+-.25 F 2.2(xpansion mechanism \(see the)-.15 F 1.146(description of)108
+444 R F2(histchars)3.646 E F0(abo)3.646 E 1.446 -.15(ve u)-.15 H(nder)
+.15 E F2 1.146(Shell V)3.646 F(ariables)-.92 E F0 3.646(\). The)B 1.147
+(shell uses the history comment character to)3.646 F
+(mark history timestamps when writing the history \214le.)108 456 Q F2
+(Ev)87 472.8 Q(ent Designators)-.1 E F0(An e)108 484.8 Q -.15(ve)-.25 G
+(nt designator is a reference to a command line entry in the history li\
+st.).15 E F2(!)108 501.6 Q F0 1.608(Start a history substitution, e)
+32.67 F 1.608(xcept when follo)-.15 F 1.607(wed by a)-.25 F F2(blank)
+4.107 E F0 4.107(,n)C -.25(ew)-4.107 G 1.607
+(line, carriage return, = or \().25 F(\(when the)144 513.6 Q F2(extglob)
+2.5 E F0(shell option is enabled using the)2.5 E F2(shopt)2.5 E F0 -.2
+(bu)2.5 G(iltin\).).2 E F2(!)108 525.6 Q F4(n)A F0
+(Refer to command line)27.67 E F4(n)2.5 E F0(.).24 E F2<21ad>108 537.6 Q
+F4(n)A F0(Refer to the current command line minus)21.97 E F4(n)2.5 E F0
+(.).24 E F2(!!)108 549.6 Q F0(Refer to the pre)29.34 E(vious command.)
+-.25 E(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 561.6 Q F4
+(string)A F0(Refer to the most recent command starting with)9.33 E F4
+(string)2.5 E F0(.).22 E F2(!?)108 573.6 Q F4(string)A F2([?])A F0 1.022
+(Refer to the most recent command containing)144 585.6 R F4(string)3.522
+E F0 6.022(.T).22 G 1.022(he trailing)-6.022 F F2(?)3.522 E F0 1.022
+(may be omitted if)3.522 F F4(string)3.862 E F0(is)3.742 E(follo)144
+597.6 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F5 12/Times-Bold@0
+SF(^)108 614.6 Q F4(string1)-5 I F5(^)5 I F4(string2)-5 I F5(^)5 I F0
+2.63(Quick substitution.)144 621.6 R 2.629
+(Repeat the last command, replacing)7.629 F F4(string1)5.469 E F0(with)
+5.129 E F4(string2)5.129 E F0 7.629(.E).02 G(qui)-7.629 E -.25(va)-.25 G
+2.629(lent to).25 F -.74(``)144 633.6 S(!!:s/).74 E F4(string1)A F0(/)A
+F4(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0
+(belo)2.5 E(w\).)-.25 E F2(!#)108 645.6 Q F0
+(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2 -.75
+(Wo)87 662.4 S(rd Designators).75 E F0 -.8(Wo)108 674.4 S 1.313
+(rd designators are used to select desired w).8 F 1.314(ords from the e)
+-.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)3.814 E F0 1.314
+(separates the e)3.814 F -.15(ve)-.25 G 1.314(nt speci\214cation).15 F
+.53(from the w)108 686.4 R .529(ord designator)-.1 F 5.529(.I)-.55 G
+3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529
+(ord designator be)-.1 F .529(gins with a)-.15 F F2(^)3.029 E F0(,)A F2
+($)3.029 E F0(,)A F2(*)3.029 E F0(,)A F2<ad>3.029 E F0 3.029(,o)C(r)
+-3.029 E F2(%)3.029 E F0 5.529(.W)C(ords)-6.329 E 1.3
+(are numbered from the be)108 698.4 R 1.3
+(ginning of the line, with the \214rst w)-.15 F 1.301
+(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.301 G 1.301(rds are).8
+F(inserted into the current line separated by single spaces.)108 710.4 Q
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(46)190.95 E 0 Cg EP
+%%Page: 47 47
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF 2.5(0\()108 84 S(zer)-2.5 E(o\))-.18 E F0
+(The zeroth w)144 96 Q 2.5(ord. F)-.1 F
+(or the shell, this is the command w)-.15 E(ord.)-.1 E/F2 10
+/Times-Italic@0 SF(n)108.36 108 Q F0(The)30.64 E F2(n)2.5 E F0(th w)A
+(ord.)-.1 E F1(^)108 120 Q F0(The \214rst ar)32.67 E 2.5(gument. That)
+-.18 F(is, w)2.5 E(ord 1.)-.1 E F1($)108 132 Q F0(The last ar)31 E
+(gument.)-.18 E F1(%)108 144 Q F0(The w)26 E
+(ord matched by the most recent `?)-.1 E F2(string)A F0(?' search.)A F2
+(x)108.77 156 Q F1<ad>A F2(y)A F0 2.5(Ar)20.65 G(ange of w)-2.5 E
+(ords; `\255)-.1 E F2(y)A F0 2.5('a)C(bbre)-2.5 E(viates `0\255)-.25 E
+F2(y)A F0('.)A F1(*)108 168 Q F0 .316(All of the w)31 F .316(ords b)-.1
+F .316(ut the zeroth.)-.2 F .315(This is a synon)5.315 F .315(ym for `)
+-.15 F F2(1\255$)A F0 2.815('. It)B .315(is not an error to use)2.815 F
+F1(*)2.815 E F0 .315(if there is)2.815 F(just one w)144 180 Q
+(ord in the e)-.1 E -.15(ve)-.25 G
+(nt; the empty string is returned in that case.).15 E F1(x*)108 192 Q F0
+(Abbre)26 E(viates)-.25 E F2(x\255$)2.5 E F0(.)A F1<78ad>108 204 Q F0
+(Abbre)25.3 E(viates)-.25 E F2(x\255$)2.5 E F0(lik)2.5 E(e)-.1 E F1(x*)
+2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E(If a w)108 220.8
+Q(ord designator is supplied without an e)-.1 E -.15(ve)-.25 G
+(nt speci\214cation, the pre).15 E(vious command is used as the e)-.25 E
+-.15(ve)-.25 G(nt.).15 E F1(Modi\214ers)87 237.6 Q F0 .183
+(After the optional w)108 249.6 R .183(ord designator)-.1 F 2.683(,t)-.4
+G .184(here may appear a sequence of one or more of the follo)-2.683 F
+.184(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 261.6 Q F1(h)
+108 278.4 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H
+(railing \214le name component, lea).15 E(ving only the head.)-.2 E F1
+(t)108 290.4 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
+(ll leading \214le name components, lea).15 E(ving the tail.)-.2 E F1(r)
+108 302.4 Q F0(Remo)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
+(\214x of the form)-.25 E F2(.xxx)2.5 E F0 2.5(,l)C(ea)-2.5 E
+(ving the basename.)-.2 E F1(e)108 314.4 Q F0(Remo)31.56 E .3 -.15(ve a)
+-.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1(p)108 326.4
+Q F0(Print the ne)30.44 E 2.5(wc)-.25 G(ommand b)-2.5 E(ut do not e)-.2
+E -.15(xe)-.15 G(cute it.).15 E F1(q)108 338.4 Q F0
+(Quote the substituted w)30.44 E(ords, escaping further substitutions.)
+-.1 E F1(x)108 350.4 Q F0(Quote the substituted w)31 E(ords as with)-.1
+E F1(q)2.5 E F0 2.5(,b)C(ut break into w)-2.7 E(ords at)-.1 E F1(blanks)
+2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 362.4 Q F2(old)A F1(/)A
+F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 374.4 Q F2(ne)3.082 E(w)-.15 E
+F0 .221(for the \214rst occurrence of)3.032 F F2(old)2.951 E F0 .221
+(in the e)3.491 F -.15(ve)-.25 G .221(nt line.).15 F(An)5.221 E 2.721
+(yd)-.15 G .221(elimiter can be used in place)-2.721 F .616(of /.)144
+386.4 R .617
+(The \214nal delimiter is optional if it is the last character of the e)
+5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617
+F .666(be quoted in)144 398.4 R F2(old)3.396 E F0(and)3.936 E F2(ne)
+3.526 E(w)-.15 E F0 .666(with a single backslash.)3.476 F .666
+(If & appears in)5.666 F F2(ne)3.166 E(w)-.15 E F0 3.166(,i).31 G 3.166
+(ti)-3.166 G 3.166(sr)-3.166 G .666(eplaced by)-3.166 F F2(old)3.166 E
+F0 5.666(.A).77 G .274(single backslash will quote the &.)144 410.4 R
+(If)5.274 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544
+F F2(old)3.005 E F0 .275(substituted, or)3.545 F 2.775(,i)-.4 G 2.775
+(fn)-2.775 G 2.775(op)-2.775 G(re)-2.775 E(vi-)-.25 E
+(ous history substitutions took place, the last)144 422.4 Q F2(string)
+2.84 E F0(in a)2.72 E F1(!?)2.5 E F2(string)A F1([?])A F0(search.)5 E F1
+(&)108 434.4 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1
+(g)108 446.4 Q F0 .398(Cause changes to be applied o)31 F -.15(ve)-.15 G
+2.898(rt).15 G .398(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.)
+.15 F .397(This is used in conjunction with `)5.398 F F1(:s)A F0 2.897
+('\()C(e.g.,)-2.897 E(`)144 458.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)
+-.15 E F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218
+(used with `)3.718 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219
+(elimiter can be used in place of /, and the \214nal)-3.718 F .09
+(delimiter is optional if it is the last character of the e)144 470.4 R
+-.15(ve)-.25 G .089(nt line.).15 F(An)5.089 E F1(a)2.589 E F0 .089
+(may be used as a synon)2.589 F .089(ym for)-.15 F F1(g)144 482.4 Q F0
+(.)A F1(G)108 494.4 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(s)A F0
+2.5('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25
+G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 511.2 Q(UIL)-.11 E
+(TIN COMMANDS)-1.007 E F0 .062(Unless otherwise noted, each b)108 523.2
+R .062(uiltin command documented in this section as accepting options p\
+receded by)-.2 F F1<ad>108 535.2 Q F0(accepts)3.8 E F1<adad>3.8 E F0 1.3
+(to signify the end of the options.)3.8 F -.15(Fo)6.3 G 3.8(re).15 G 1.3
+(xample, the)-3.95 F F1(:)3.8 E F0(,)A F1(true)3.8 E F0(,)A F1(false)3.8
+E F0 3.8(,a)C(nd)-3.8 E F1(test)3.8 E F0 -.2(bu)3.8 G 1.3(iltins do not)
+.2 F(accept options.)108 547.2 Q F1(:)108 565.2 Q F0([)2.5 E F2(ar)A
+(guments)-.37 E F0(])A .451(No ef)144 577.2 R .451
+(fect; the command does nothing be)-.25 F .452(yond e)-.15 F(xpanding)
+-.15 E F2(ar)3.282 E(guments)-.37 E F0 .452(and performing an)3.222 F
+2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. A)144 589.2 R
+(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 606 Q F2
+(\214lename)6.666 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A F1(sour)108
+618 Q(ce)-.18 E F2(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0
+(])A 1.02(Read and e)144 630 R -.15(xe)-.15 G 1.02(cute commands from)
+.15 F F2(\214lename)5.43 E F0 1.02(in the current shell en)3.7 F 1.02
+(vironment and return the e)-.4 F(xit)-.15 E 1.68
+(status of the last command e)144 642 R -.15(xe)-.15 G 1.68(cuted from)
+.15 F F2(\214lename)4.18 E F0 6.68(.I).18 G(f)-6.68 E F2(\214lename)6.09
+E F0 1.68(does not contain a slash, \214le)4.36 F .608(names in)144 654
+R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608
+(are used to \214nd the directory containing)2.858 F F2(\214lename)3.108
+E F0 5.608(.T).18 G .608(he \214le searched for in)-5.608 F F4 -.666(PA)
+3.108 G(TH)-.189 E F0 .832(need not be e)144 666 R -.15(xe)-.15 G 3.332
+(cutable. When).15 F F1(bash)3.332 E F0 .832(is not in)3.332 F F2 .832
+(posix mode)3.332 F F0 3.332(,t)C .833
+(he current directory is searched if no)-3.332 F .982
+(\214le is found in)144 678 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
+/Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F1(sour)3.481 E(cepath)-.18
+E F0 .981(option to the)3.481 F F1(shopt)3.481 E F0 -.2(bu)3.481 G .981
+(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144 690
+S(TH)-.189 E F0 .112(is not searched.)2.362 F .112(If an)5.112 F(y)-.15
+E F2(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)2.612 F 2.612
+(yb)-.15 G .112(ecome the positional parameters when)-2.612 F F2
+(\214lename)144 702 Q F0 .342(is e)2.842 F -.15(xe)-.15 G 2.842
+(cuted. Otherwise).15 F .342(the positional parameters are unchanged.)
+2.842 F .341(The return status is the)5.341 F .716
+(status of the last command e)144 714 R .716
+(xited within the script \(0 if no commands are e)-.15 F -.15(xe)-.15 G
+.716(cuted\), and f).15 F .716(alse if)-.1 F F2(\214lename)145.91 726 Q
+F0(is not found or cannot be read.)2.68 E(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(47)190.95 E 0 Cg EP
+%%Page: 48 48
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(alias)108 84 Q F0([)2.5 E F1<ad70>A F0 2.5
+(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
+(..])-2.5 E F1(Alias)144 96 Q F0 2.725(with no ar)5.225 F 2.724
+(guments or with the)-.18 F F1<ad70>5.224 E F0 2.724
+(option prints the list of aliases in the form)5.224 F F1(alias)5.224 E
+F2(name)144 108 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F
+.58(When ar)5.58 F .58
+(guments are supplied, an alias is de\214ned for each)-.18 F F2(name)
+3.08 E F0(whose)144 120 Q F2(value)2.895 E F0 .395(is gi)2.895 F -.15
+(ve)-.25 G 2.895(n. A).15 F .395(trailing space in)2.895 F F2(value)
+5.395 E F0 .395(causes the ne)2.895 F .395(xt w)-.15 F .395
+(ord to be check)-.1 F .395(ed for alias sub-)-.1 F .054
+(stitution when the alias is e)144 132 R 2.554(xpanded. F)-.15 F .054
+(or each)-.15 F F2(name)2.554 E F0 .054(in the ar)2.554 F .054
+(gument list for which no)-.18 F F2(value)2.554 E F0 .054(is sup-)2.554
+F 1.314(plied, the name and v)144 144 R 1.314
+(alue of the alias is printed.)-.25 F F1(Alias)6.314 E F0 1.314
+(returns true unless a)3.814 F F2(name)3.814 E F0 1.313(is gi)3.814 F
+-.15(ve)-.25 G 3.813(nf).15 G(or)-3.813 E
+(which no alias has been de\214ned.)144 156 Q F1(bg)108 172.8 Q F0([)2.5
+E F2(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144 184.8 R
+F2(jobspec)3.244 E F0 .745
+(in the background, as if it had been started with)3.244 F F1(&)3.245 E
+F0 5.745(.I)C(f)-5.745 E F2(job-)4.985 E(spec)144 196.8 Q F0 .672
+(is not present, the shell')3.482 F 3.172(sn)-.55 G .672(otion of the)
+-3.172 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1
+(bg)5.671 E F2(jobspec)4.911 E F0 .671(returns 0 unless run)3.481 F .418
+(when job control is disabled or)144 208.8 R 2.919(,w)-.4 G .419
+(hen run with job control enabled, an)-2.919 F 2.919(ys)-.15 G
+(peci\214ed)-2.919 E F2(jobspec)2.919 E F0 -.1(wa)2.919 G 2.919(sn).1 G
+(ot)-2.919 E(found or w)144 220.8 Q(as started without job control.)-.1
+E F1(bind)108 237.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0
+2.5(][)C F1(\255lpsvPSV)-2.5 E F0(])A F1(bind)108 249.6 Q F0([)2.5 E F1
+<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F1<ad71>-2.5 E F2
+(function)2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(function)2.5 E F0 2.5(][)C
+F1<ad72>-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A F1(bind)108 261.6 Q F0
+([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0(])A F1<ad66>2.5 E F2
+(\214lename)2.5 E F1(bind)108 273.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5
+G(ymap)-.2 E F0(])A F1<ad78>2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
+(shell\255command)A F1(bind)108 285.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)
+2.5 G(ymap)-.2 E F0(])A F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
+(function\255name)A F1(bind)108 297.6 Q F2 -.37(re)2.5 G
+(adline\255command).37 E F0 .239(Display current)144 309.6 R F1 -.18(re)
+2.739 G(adline).18 E F0 -.1(ke)2.739 G 2.739(ya)-.05 G .239
+(nd function bindings, bind a k)-2.739 F .539 -.15(ey s)-.1 H .238
+(equence to a).15 F F1 -.18(re)2.738 G(adline).18 E F0 .238(function or)
+2.738 F .475(macro, or set a)144 321.6 R F1 -.18(re)2.975 G(adline).18 E
+F0 -.25(va)2.975 G 2.975(riable. Each).25 F .476(non-option ar)2.976 F
+.476(gument is a command as it w)-.18 F .476(ould appear in)-.1 F F2
+(.inputr)144 333.6 Q(c)-.37 E F0 2.984(,b).31 G .484
+(ut each binding or command must be passed as a separate ar)-3.184 F
+.483(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
+(re\255read\255init\255\214le'. Options,)144 345.6 R(if supplied, ha)2.5
+E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6d>144
+357.6 Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 369.6 Q F2 -.1(ke)5.158 G
+(ymap)-.2 E F0 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658(map to be af)
+.15 F 2.659(fected by the subsequent bindings.)-.25 F(Acceptable)7.659 E
+F2 -.1(ke)180 381.6 S(ymap)-.2 E F0 3.193(names are)5.883 F F2 3.193
+(emacs, emacs\255standar)5.693 F 3.192
+(d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E
+(vi\255command)180 393.6 Q F0 4.429(,a)C(nd)-4.429 E F2(vi\255insert)
+4.429 E F0(.).68 E F2(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G
+1.929(lent to).25 F F2(vi\255command)4.429 E F0(;)A F2(emacs)4.429 E F0
+1.929(is equi)4.429 F -.25(va)-.25 G 1.93(lent to).25 F F2
+(emacs\255standar)180 405.6 Q(d)-.37 E F0(.)A F1<ad6c>144 417.6 Q F0
+(List the names of all)27.52 E F1 -.18(re)2.5 G(adline).18 E F0
+(functions.)2.5 E F1<ad70>144 429.6 Q F0(Display)24.74 E F1 -.18(re)2.5
+G(adline).18 E F0(function names and bindings in such a w)2.5 E
+(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad50>144 441.6
+Q F0(List current)24.19 E F1 -.18(re)2.5 G(adline).18 E F0
+(function names and bindings.)2.5 E F1<ad73>144 453.6 Q F0(Display)26.41
+E F1 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05 G
+1.155(equences bound to macros and the strings the)-3.655 F 3.655(yo)
+-.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 465.6 S 2.5(yt).1 G
+(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 477.6 Q
+F0(Display)24.74 E F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)
+-.05 G(equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G
+(utput.)-2.5 E F1<ad76>144 489.6 Q F0(Display)25.3 E F1 -.18(re)2.5 G
+(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
+(alues in such a w)-.25 E(ay that the)-.1 E 2.5(yc)-.15 G
+(an be re-read.)-2.5 E F1<ad56>144 501.6 Q F0(List current)23.08 E F1
+-.18(re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
+(alues.)-.25 E F1<ad66>144 513.6 Q F2(\214lename)2.5 E F0(Read k)180
+525.6 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A
+F1<ad71>144 537.6 Q F2(function)2.5 E F0(Query about which k)180 549.6 Q
+-.15(ey)-.1 G 2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4 H
+(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 561.6 Q F2(function)
+2.5 E F0(Unbind all k)180 573.6 Q -.15(ey)-.1 G 2.5(sb).15 G
+(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 585.6 Q
+F2 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 597.6 Q .3 -.15(ve a)-.15 H .3
+-.15(ny c).15 H(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0
+(.)A F1<ad78>144 609.6 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2
+(shell\255command)A F0(Cause)180 621.6 Q F2(shell\255command)4.325 E F0
+1.825(to be e)4.325 F -.15(xe)-.15 G 1.825(cuted whene).15 F -.15(ve)
+-.25 G(r).15 E F2 -.1(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F
+(When)6.825 E F2(shell\255com-)4.325 E(mand)180 633.6 Q F0 1.113(is e)
+3.614 F -.15(xe)-.15 G 1.113(cuted, the shell sets the).15 F F1
+(READLINE_LINE)3.613 E F0 -.25(va)3.613 G 1.113
+(riable to the contents of the).25 F F1 -.18(re)180 645.6 S(adline).18 E
+F0 .586(line b)3.086 F(uf)-.2 E .586(fer and the)-.25 F F1
+(READLINE_POINT)3.087 E F0 -.25(va)3.087 G .587
+(riable to the current location of the).25 F 1.241(insertion point.)180
+657.6 R 1.241(If the e)6.241 F -.15(xe)-.15 G 1.241
+(cuted command changes the v).15 F 1.241(alue of)-.25 F F1
+(READLINE_LINE)3.741 E F0(or)3.74 E F1(READLINE_POINT)180 669.6 Q F0 2.5
+(,t)C(hose ne)-2.5 E 2.5(wv)-.25 G
+(alues will be re\215ected in the editing state.)-2.75 E(The return v)
+144 686.4 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
+(ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5
+E F1(br)108 703.2 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054
+(Exit from within a)144 715.2 R F1 -.25(fo)2.554 G(r).25 E F0(,)A F1
+(while)2.554 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1
+(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)2.555 E F0 .055
+(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G
+(ls.).15 E F2(n)5.415 E F0 .055(must be)2.795 F/F3 10/Symbol SF<b3>2.555
+E F0(1.)2.555 E(If)144 727.2 Q F2(n)3.075 E F0 .215(is greater than the\
+ number of enclosing loops, all enclosing loops are e)2.955 F 2.714
+(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E(GNU Bash-4.0)72 768
+Q(2009 February 7)140.96 E(48)190.95 E 0 Cg EP
+%%Page: 49 49
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(is 0 unless)144 84 Q/F1 10/Times-Italic@0 SF(n)2.5 E F0
+(is not greater than or equal to 1.)2.5 E/F2 10/Times-Bold@0 SF -.2(bu)
+108 100.8 S(iltin).2 E F1(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E F1
+(ar)A(guments)-.37 E F0(])A(Ex)144 112.8 Q .792
+(ecute the speci\214ed shell b)-.15 F .792(uiltin, passing it)-.2 F F1
+(ar)3.293 E(guments)-.37 E F0 3.293(,a).27 G .793(nd return its e)-3.293
+F .793(xit status.)-.15 F .793(This is useful)5.793 F .616
+(when de\214ning a function whose name is the same as a shell b)144
+124.8 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
+136.8 R .57(uiltin within the function.)-.2 F(The)5.57 E F2(cd)3.07 E F0
+-.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E
+5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 148.8 Q(alse if)-.1
+E F1(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
+(uiltin command.)-.2 E F2(caller)108 165.6 Q F0([)2.5 E F1 -.2(ex)C(pr)
+.2 E F0(])A .254(Returns the conte)144 177.6 R .254(xt of an)-.15 F
+2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254
+(ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G
+.254(cuted with the).15 F F2(.)2.753 E F0(or)2.753 E F2(sour)144 189.6 Q
+(ce)-.18 E F0 -.2(bu)3.062 G 3.062(iltins. W).2 F(ithout)-.4 E F1 -.2
+(ex)3.062 G(pr).2 E F0(,)A F2(caller)3.062 E F0 .562
+(displays the line number and source \214lename of the current)3.062 F
+.254(subroutine call.)144 201.6 R .254(If a non-ne)5.254 F -.05(ga)-.15
+G(ti).05 E .554 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
+F F1 -.2(ex)2.753 G(pr).2 E F0(,)A F2(caller)2.753 E F0 .253
+(displays the line number)2.753 F 2.753(,s)-.4 G(ub-)-2.753 E 1.327(rou\
+tine name, and source \214le corresponding to that position in the curr\
+ent e)144 213.6 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001
+(This e)144 225.6 R .001(xtra information may be used, for e)-.15 F .001
+(xample, to print a stack trace.)-.15 F(The current frame is frame)5 E
+3.019(0. The)144 237.6 R .519(return v)3.019 F .519
+(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .52
+(cuting a subroutine call or).15 F F1 -.2(ex)3.02 G(pr).2 E F0 .52
+(does not corre-)3.02 F(spond to a v)144 249.6 Q
+(alid position in the call stack.)-.25 E F2(cd)108 266.4 Q F0([)2.5 E F2
+(\255L|-P)A F0 2.5(][)C F1(dir)-2.5 E F0(])A .21
+(Change the current directory to)144 278.4 R F1(dir)2.71 E F0 5.21(.T)C
+.21(he v)-5.21 F(ariable)-.25 E/F3 9/Times-Bold@0 SF(HOME)2.71 E F0 .21
+(is the def)2.46 F(ault)-.1 E F1(dir)2.71 E F0 5.21(.T).73 G .21(he v)
+-5.21 F(ariable)-.25 E F3(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .776
+(de\214nes the search path for the directory containing)144 290.4 R F1
+(dir)3.276 E F0 5.777(.A).73 G(lternati)-5.777 E 1.077 -.15(ve d)-.25 H
+.777(irectory names in).15 F F3(CDP)3.277 E -.855(AT)-.666 G(H).855 E F0
+.764(are separated by a colon \(:\).)144 302.4 R 3.264(An)5.764 G .764
+(ull directory name in)-3.264 F F3(CDP)3.264 E -.855(AT)-.666 G(H).855 E
+F0 .764(is the same as the current direc-)3.014 F(tory)144 314.4 Q 2.973
+(,i)-.65 G .473(.e., `)-2.973 F(`)-.74 E F2(.)A F0 -.74('')C 5.473(.I)
+.74 G(f)-5.473 E F1(dir)3.323 E F0(be)3.703 E .474
+(gins with a slash \(/\), then)-.15 F F3(CDP)2.974 E -.855(AT)-.666 G(H)
+.855 E F0 .474(is not used. The)2.724 F F2<ad50>2.974 E F0 .474
+(option says to use)2.974 F .58(the ph)144 326.4 R .58
+(ysical directory structure instead of follo)-.05 F .579
+(wing symbolic links \(see also the)-.25 F F2<ad50>3.079 E F0 .579
+(option to the)3.079 F F2(set)144 338.4 Q F0 -.2(bu)3.383 G .883
+(iltin command\); the).2 F F2<ad4c>3.383 E F0 .884
+(option forces symbolic links to be follo)3.384 F 3.384(wed. An)-.25 F
+(ar)3.384 E .884(gument of)-.18 F F2<ad>3.384 E F0(is)3.384 E(equi)144
+350.4 Q -.25(va)-.25 G .063(lent to).25 F F3($OLDPWD)2.563 E/F4 9
+/Times-Roman@0 SF(.)A F0 .063(If a non-empty directory name from)4.563 F
+F2(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .062(is used, or if)2.562 F F2
+<ad>2.562 E F0 .062(is the \214rst)2.562 F(ar)144 362.4 Q .116(gument, \
+and the directory change is successful, the absolute pathname of the ne)
+-.18 F 2.616(ww)-.25 G .116(orking direc-)-2.716 F 1.165
+(tory is written to the standard output.)144 374.4 R 1.164(The return v)
+6.164 F 1.164(alue is true if the directory w)-.25 F 1.164
+(as successfully)-.1 F(changed; f)144 386.4 Q(alse otherwise.)-.1 E F2
+(command)108 403.2 Q F0([)2.5 E F2(\255pVv)A F0(])A F1(command)2.5 E F0
+([)2.5 E F1(ar)A(g)-.37 E F0(...])2.5 E(Run)144 415.2 Q F1(command)2.956
+E F0(with)3.527 E F1(ar)3.087 E(gs)-.37 E F0 .257
+(suppressing the normal shell function lookup. Only b)3.027 F .257
+(uiltin commands or)-.2 F .502(commands found in the)144 427.2 R F3
+-.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15(xe)-.15 G 3.002
+(cuted. If).15 F(the)3.002 E F2<ad70>3.002 E F0 .502(option is gi)3.002
+F -.15(ve)-.25 G .501(n, the search for).15 F F1(command)3.201 E F0(is)
+3.771 E .231(performed using a def)144 439.2 R .231(ault v)-.1 F .231
+(alue for)-.25 F F2 -.74(PA)2.731 G(TH)-.21 E F0 .231
+(that is guaranteed to \214nd all of the standard utilities.)2.731 F(If)
+5.232 E .175(either the)144 451.2 R F2<ad56>2.675 E F0(or)2.675 E F2
+<ad76>2.675 E F0 .175(option is supplied, a description of)2.675 F F1
+(command)2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F2<ad76>2.674 E
+F0 .174(option causes)2.674 F 3.11(as)144 463.2 S .61(ingle w)-3.11 F
+.61(ord indicating the command or \214le name used to in)-.1 F -.2(vo)
+-.4 G -.1(ke).2 G F1(command)3.41 E F0 .61(to be displayed; the)3.88 F
+F2<ad56>144 475.2 Q F0 .25(option produces a more v)2.75 F .25
+(erbose description.)-.15 F .249(If the)5.25 F F2<ad56>2.749 E F0(or)
+2.749 E F2<ad76>2.749 E F0 .249(option is supplied, the e)2.749 F .249
+(xit status)-.15 F 1.004(is 0 if)144 487.2 R F1(command)3.704 E F0 -.1
+(wa)4.274 G 3.504(sf).1 G 1.005(ound, and 1 if not.)-3.504 F 1.005
+(If neither option is supplied and an error occurred or)6.005 F F1
+(command)144.2 499.2 Q F0 1.599(cannot be found, the e)4.869 F 1.599
+(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.598
+(xit status of the)-.15 F F2(command)4.098 E F0 -.2(bu)144 511.2 S
+(iltin is the e).2 E(xit status of)-.15 E F1(command)2.5 E F0(.).77 E F2
+(compgen)108 528 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(wor)-2.5 E(d)
+-.37 E F0(])A .012(Generate possible completion matches for)144 540 R F1
+(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F1(option)2.513 E
+F0 .013(s, which may be an)B 2.513(yo)-.15 G(ption)-2.513 E .982
+(accepted by the)144 552 R F2(complete)3.482 E F0 -.2(bu)3.481 G .981
+(iltin with the e).2 F .981(xception of)-.15 F F2<ad70>3.481 E F0(and)
+3.481 E F2<ad72>3.481 E F0 3.481(,a)C .981(nd write the matches to the)
+-3.481 F 1.415(standard output.)144 564 R 1.415(When using the)6.415 F
+F2<ad46>3.915 E F0(or)3.915 E F2<ad43>3.915 E F0 1.415(options, the v)
+3.915 F 1.415(arious shell v)-.25 F 1.415(ariables set by the pro-)-.25
+F(grammable completion f)144 576 Q(acilities, while a)-.1 E -.25(va)-.2
+G(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)-.25
+E .352(The matches will be generated in the same w)144 600 R .352
+(ay as if the programmable completion code had gen-)-.1 F .02(erated th\
+em directly from a completion speci\214cation with the same \215ags.)144
+612 R(If)5.02 E F1(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)2.52
+F(those completions matching)144 624 Q F1(wor)2.5 E(d)-.37 E F0
+(will be displayed.)2.5 E(The return v)144 648 Q
+(alue is true unless an in)-.25 E -.25(va)-.4 G
+(lid option is supplied, or no matches were generated.).25 E F2
+(complete)108 664.8 Q F0([)3.034 E F2(\255abcdefgjksuv)A F0 3.034(][)C
+F2<ad6f>-3.034 E F1(comp-option)3.034 E F0 3.034(][)C F2<ad45>-3.034 E
+F0 3.033(][)C F2<ad41>-3.033 E F1(action)3.033 E F0 3.033(][)C F2<ad47>
+-3.033 E F1(globpat)3.033 E F0 3.033(][)C F2<ad57>-3.033 E F1(wor)3.033
+E(dlist)-.37 E F0 3.033(][)C F2<ad46>-3.033 E F1(function)3.033 E F0(])A
+([)108 676.8 Q F2<ad43>A F1(command)2.5 E F0(])A([)144 688.8 Q F2<ad58>A
+F1(\214lterpat)2.5 E F0 2.5(][)C F2<ad50>-2.5 E F1(pr)2.5 E(e\214x)-.37
+E F0 2.5(][)C F2<ad53>-2.5 E F1(suf)2.5 E<8c78>-.18 E F0(])A F1(name)2.5
+E F0([)2.5 E F1(name ...)A F0(])A F2(complete \255pr)108 700.8 Q F0([)
+2.5 E F2<ad45>A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E .634
+(Specify ho)144 712.8 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634
+(uments to each).18 F F1(name)3.134 E F0 .634(should be completed.)3.134
+F .633(If the)5.634 F F2<ad70>3.133 E F0 .633
+(option is supplied, or if no)3.133 F .139(options are supplied, e)144
+724.8 R .139(xisting completion speci\214cations are printed in a w)-.15
+F .14(ay that allo)-.1 F .14(ws them to be)-.25 F(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(49)190.95 E 0 Cg EP
+%%Page: 50 50
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .31(reused as input.)144 84 R(The)5.31 E/F1 10/Times-Bold@0 SF
+<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)-.15 G 2.81(sac).15 G .31
+(ompletion speci\214cation for each)-2.81 F/F2 10/Times-Italic@0 SF
+(name)2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E
+F2(name)2.81 E F0(s)A 1.392
+(are supplied, all completion speci\214cations.)144 96 R(The)6.392 E F1
+<ad45>3.892 E F0 1.393(option indicates that the remaining options)3.893
+F 1.304(and actions should apply to `)144 108 R(`empty')-.74 E 3.804('c)
+-.74 G 1.304(ommand completion; that is, completion attempted on a)
+-3.804 F(blank line.)144 120 Q 1.437
+(The process of applying these completion speci\214cations when w)144
+144 R 1.438(ord completion is attempted is)-.1 F(described abo)144 156 Q
+.3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E(ogrammable Completion)-.18 E
+F0(.)A .556(Other options, if speci\214ed, ha)144 180 R .856 -.15(ve t)
+-.2 H .555(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F
+.555(guments to the)-.18 F F1<ad47>3.055 E F0(,)A F1<ad57>3.055 E F0
+3.055(,a)C(nd)-3.055 E F1<ad58>3.055 E F0 .722
+(options \(and, if necessary)144 192 R 3.222(,t)-.65 G(he)-3.222 E F1
+<ad50>3.222 E F0(and)3.222 E F1<ad53>3.222 E F0 .723
+(options\) should be quoted to protect them from e)3.222 F(xpan-)-.15 E
+(sion before the)144 204 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
+(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 216 Q F2
+(comp-option)2.5 E F0(The)184 228 Q F2(comp-option)2.791 E F0 .291
+(controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
+.15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
+(yond the simple)-.15 F(generation of completions.)184 240 Q F2
+(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 252 Q F0
+.281(Perform the rest of the def)224 264 R(ault)-.1 E F1(bash)2.781 E F0
+.281(completions if the compspec generates no)2.781 F(matches.)224 276 Q
+F1(default)184 288 Q F0 2.876(Use readline')10 F 5.376(sd)-.55 G(ef)
+-5.376 E 2.875(ault \214lename completion if the compspec generates no)
+-.1 F(matches.)224 300 Q F1(dir)184 312 Q(names)-.15 E F0(Perform direc\
+tory name completion if the compspec generates no matches.)224 324 Q F1
+(\214lenames)184 336 Q F0 -.7(Te)224 348 S .137(ll readline that the co\
+mpspec generates \214lenames, so it can perform an).7 F 2.637<798c>-.15
+G(le-)-2.637 E .134(name\255speci\214c processing \(lik)224 360 R 2.634
+(ea)-.1 G .134(dding a slash to directory names, quoting spe-)-2.634 F
+.45(cial characters, or suppressing trailing spaces\).)224 372 R .45
+(Intended to be used with shell)5.45 F(functions.)224 384 Q F1(nospace)
+184 396 Q F0 -.7(Te)6.11 G .22
+(ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1 F
+.22(ords completed at the end)-.1 F(of the line.)224 408 Q F1(plusdirs)
+184 420 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985
+(atches de\214ned by the compspec are generated, directory name)-4.485 F
+.584(completion is attempted and an)224 432 R 3.084(ym)-.15 G .584
+(atches are added to the results of the other)-3.084 F(actions.)224 444
+Q F1<ad41>144 456 Q F2(action)2.5 E F0(The)184 468 Q F2(action)2.5 E F0
+(may be one of the follo)2.5 E
+(wing to generate a list of possible completions:)-.25 E F1(alias)184
+480 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
+E F0(.)A F1(arrayv)184 492 Q(ar)-.1 E F0(Array v)224 504 Q
+(ariable names.)-.25 E F1 4.7(binding Readline)184 516 R F0 -.1(ke)2.5 G
+2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 528 S(iltin).2 E F0
+(Names of shell b)11.85 E(uiltin commands.)-.2 E
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 540
+Q F0(Command names.)224 552 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 564 Q(ectory)-.18 E F0(Directory names.)224 576 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 588
+Q F0(Names of disabled shell b)224 600 Q(uiltins.)-.2 E F1(enabled)184
+612 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
+624 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
+-.25 F(also be speci\214ed as)2.5 E F1<ad65>2.5 E F0(.)A F1(\214le)184
+636 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F1<ad66>2.5
+E F0(.)A F1(function)184 648 Q F0(Names of shell functions.)224 660 Q F1
+(gr)184 672 Q(oup)-.18 E F0(Group names.)14.62 E
+(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A F1(helptopic)184
+684 Q F0(Help topics as accepted by the)224 696 Q F1(help)2.5 E F0 -.2
+(bu)2.5 G(iltin.).2 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(50)
+190.95 E 0 Cg EP
+%%Page: 51 51
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(hostname)184 84 Q F0(Hostnames, as tak)224
+96 Q(en from the \214le speci\214ed by the)-.1 E/F2 9/Times-Bold@0 SF
+(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 108 Q F0
+(Job names, if job control is acti)26.11 E -.15(ve)-.25 G 5(.M).15 G
+(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 120 S
+(yw).1 E(ord)-.1 E F0(Shell reserv)224 132 Q(ed w)-.15 E 2.5(ords. May)
+-.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1(running)184
+144 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
+-.25 G(.).15 E F1(ser)184 156 Q(vice)-.1 E F0(Service names.)10.67 E
+(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 168 Q
+F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5 E
+F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
+(shopt)184 180 Q F0(Shell option names as accepted by the)16.66 E F1
+(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 192 Q F0
+(Signal names.)14.99 E F1(stopped)184 204 Q F0
+(Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.)
+.15 E F1(user)184 216 Q F0(User names.)21.67 E
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 228 S
+(riable).1 E F0(Names of all shell v)5.1 E 2.5(ariables. May)-.25 F
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad47>144 240 Q/F3
+10/Times-Italic@0 SF(globpat)2.5 E F0 1.41(The \214lename e)184 252 R
+1.411(xpansion pattern)-.15 F F3(globpat)3.911 E F0 1.411(is e)3.911 F
+1.411(xpanded to generate the possible comple-)-.15 F(tions.)184 264 Q
+F1<ad57>144 276 Q F3(wor)2.5 E(dlist)-.37 E F0(The)184 288 Q F3(wor)3.64
+E(dlist)-.37 E F0 1.14(is split using the characters in the)3.64 F F2
+(IFS)3.64 E F0 1.139(special v)3.39 F 1.139(ariable as delimiters, and)
+-.25 F 2.007(each resultant w)184 300 R 2.007(ord is e)-.1 F 4.507
+(xpanded. The)-.15 F 2.008(possible completions are the members of the)
+4.507 F(resultant list which match the w)184 312 Q(ord being completed.)
+-.1 E F1<ad43>144 324 Q F3(command)2.5 E(command)184 336 Q F0 1.056
+(is e)3.556 F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056
+(vironment, and its output is used as the possible)-.4 F(completions.)
+184 348 Q F1<ad46>144 360 Q F3(function)2.5 E F0 1.18
+(The shell function)184 372 R F3(function)3.68 E F0 1.181(is e)3.681 F
+-.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.681
+(vironment. When)-.4 F 1.181(it \214n-)3.681 F .932
+(ishes, the possible completions are retrie)184 384 R -.15(ve)-.25 G
+3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F F2
+(COMPREPL)3.431 E(Y)-.828 E F0(array)3.181 E -.25(va)184 396 S(riable.)
+.25 E F1<ad58>144 408 Q F3(\214lterpat)2.5 E(\214lterpat)184 420 Q F0
+.733(is a pattern as used for \214lename e)3.233 F 3.233(xpansion. It)
+-.15 F .733(is applied to the list of possible)3.233 F 1.596
+(completions generated by the preceding options and ar)184 432 R 1.596
+(guments, and each completion)-.18 F(matching)184 444 Q F3(\214lterpat)
+3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 G .704
+(rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
+(in)3.204 E F3(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 G .705
+(tes the pattern;).05 F(in this case, an)184 456 Q 2.5(yc)-.15 G
+(ompletion not matching)-2.5 E F3(\214lterpat)2.5 E F0(is remo)2.5 E
+-.15(ve)-.15 G(d.).15 E F1<ad50>144 468 Q F3(pr)2.5 E(e\214x)-.37 E(pr)
+184 480 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534
+(ginning of each possible completion after all other options ha)-.15 F
+-.15(ve)-.2 G(been applied.)184 492 Q F1<ad53>144 504 Q F3(suf)2.5 E
+2.81(\214x suf)-.18 F<8c78>-.18 E F0
+(is appended to each possible completion after all other options ha)2.5
+E .3 -.15(ve b)-.2 H(een applied.).15 E .466(The return v)144 520.8 R
+.466(alue is true unless an in)-.25 F -.25(va)-.4 G .466
+(lid option is supplied, an option other than).25 F F1<ad70>2.967 E F0
+(or)2.967 E F1<ad72>2.967 E F0 .467(is sup-)2.967 F 1.362
+(plied without a)144 532.8 R F3(name)3.862 E F0(ar)3.862 E 1.361
+(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H
+1.361(ompletion speci\214cation for a).15 F F3(name)144 544.8 Q F0
+(for which no speci\214cation e)2.5 E
+(xists, or an error occurs adding a completion speci\214cation.)-.15 E
+F1(compopt)108 561.6 Q F0([)2.5 E F1<ad6f>A F3(option)2.5 E F0 2.5(][)C
+F1(+o)-2.5 E F3(option)2.5 E F0 2.5(][)C F3(name)-2.5 E F0(])A .447
+(Modify completion options for each)144 573.6 R F3(name)2.947 E F0 .447
+(according to the)2.947 F F3(option)2.947 E F0 .447
+(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .726
+(completion if no)144 585.6 R F3(name)3.226 E F0 3.226(sa)C .726
+(re supplied.)-3.226 F .725(If no)5.725 F F3(option)3.225 E F0 3.225(sa)
+C .725(re gi)-3.225 F -.15(ve)-.25 G .725
+(n, display the completion options for).15 F(each)144 597.6 Q F3(name)
+3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v)
+5.724 F .724(alues of)-.25 F F3(option)3.224 E F0 .724(are those v)3.224
+F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 609.6 Q F0 -.2(bu)
+2.5 G(iltin described abo).2 E -.15(ve)-.15 G(.).15 E .327(The return v)
+108 626.4 R .327(alue is true unless an in)-.25 F -.25(va)-.4 G .327
+(lid option is supplied, an attempt is made to modify the options for a)
+.25 F F3(name)108 638.4 Q F0(for which no completion speci\214cation e)
+2.5 E(xists, or an output error occurs.)-.15 E F1(continue)108 655.2 Q
+F0([)2.5 E F3(n)A F0(])A 1.753(Resume the ne)144 667.2 R 1.753
+(xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A
+F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1
+(select)4.254 E F0 4.254(loop. If)4.254 F F3(n)4.614 E F0 1.754
+(is speci\214ed,)4.494 F 1.209(resume at the)144 679.2 R F3(n)3.709 E F0
+1.209(th enclosing loop.)B F3(n)6.569 E F0 1.209(must be)3.949 F/F4 10
+/Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F3(n)4.069 E F0 1.209
+(is greater than the number of enclosing)3.949 F .513
+(loops, the last enclosing loop \(the `)144 691.2 R(`top-le)-.74 E -.15
+(ve)-.25 G(l').15 E 3.013('l)-.74 G .513(oop\) is resumed.)-3.013 F .514
+(The return v)5.514 F .514(alue is 0 unless)-.25 F F3(n)3.014 E F0(is)
+3.014 E(not greater than or equal to 1.)144 703.2 Q(GNU Bash-4.0)72 768
+Q(2009 February 7)140.96 E(51)190.95 E 0 Cg EP
+%%Page: 52 52
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(declar)108 84 Q(e)-.18 E F0([)2.5 E F1
+(\255aAfFilrtux)A F0 2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C/F2 10
+/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E
+F1(typeset)108 96 Q F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1<ad70>
+-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])
+-2.5 E 1.265(Declare v)144 108 R 1.265(ariables and/or gi)-.25 F 1.565
+-.15(ve t)-.25 H 1.265(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E
+F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.764
+(nt).15 G 1.264(hen display the v)-3.764 F 1.264(alues of)-.25 F -.25
+(va)144 120 S 3.482(riables. The).25 F F1<ad70>3.482 E F0 .982
+(option will display the attrib)3.482 F .982(utes and v)-.2 F .983
+(alues of each)-.25 F F2(name)3.483 E F0 5.983(.W).18 G(hen)-5.983 E F1
+<ad70>3.483 E F0 .983(is used)3.483 F(with)144 132 Q F2(name)3.58 E F0
+(ar)3.58 E 1.079(guments, additional options are ignored.)-.18 F(When)
+6.079 E F1<ad70>3.579 E F0 1.079(is supplied without)3.579 F F2(name)
+3.579 E F0(ar)3.579 E(gu-)-.18 E .15(ments, it will display the attrib)
+144 144 R .15(utes and v)-.2 F .151(alues of all v)-.25 F .151
+(ariables ha)-.25 F .151(ving the attrib)-.2 F .151
+(utes speci\214ed by the)-.2 F .047(additional options.)144 156 R .047
+(If no other options are supplied with)5.047 F F1<ad70>2.547 E F0(,)A F1
+(declar)2.547 E(e)-.18 E F0 .046(will display the attrib)2.546 F .046
+(utes and)-.2 F -.25(va)144 168 S 1.362(lues of all shell v).25 F 3.862
+(ariables. The)-.25 F F1<ad66>3.862 E F0 1.363
+(option will restrict the display to shell functions.)3.862 F(The)6.363
+E F1<ad46>3.863 E F0 2.422(option inhibits the display of function de\
+\214nitions; only the function name and attrib)144 180 R 2.422(utes are)
+-.2 F 2.663(printed. If)144 192 R(the)2.663 E F1(extdeb)2.663 E(ug)-.2 E
+F0 .164(shell option is enabled using)2.663 F F1(shopt)2.664 E F0 2.664
+(,t)C .164(he source \214le name and line number)-2.664 F 1.382
+(where the function is de\214ned are displayed as well.)144 204 R(The)
+6.382 E F1<ad46>3.882 E F0 1.382(option implies)3.882 F F1<ad66>3.882 E
+F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .793
+(options can be used to restrict output to v)144 216 R .794
+(ariables with the speci\214ed attrib)-.25 F .794(ute or to gi)-.2 F
+1.094 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 228 Q(utes:)-.2 E F1
+<ad61>144 240 Q F0(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E -.15
+(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5
+E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 252 Q F0(Each)23.08
+E F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v).15
+E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
+.15 E F1<ad66>144 264 Q F0(Use function names only)26.97 E(.)-.65 E F1
+<ad69>144 276 Q F0 .558(The v)27.52 F .558
+(ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25
+(va)-.25 G .558(luation \(see).25 F/F3 9/Times-Bold@0 SF .557
+(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 288 Q F0
+(is performed when the v)2.25 E(ariable is assigned a v)-.25 E(alue.)
+-.25 E F1<ad6c>144 300 Q F0 .909(When the v)27.52 F .909
+(ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909
+(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to lo).15 F(wer)
+-.25 E(-)-.2 E 2.5(case. The)180 312 R(upper)2.5 E(-case attrib)-.2 E
+(ute is disabled.)-.2 E F1<ad72>144 324 Q F0(Mak)25.86 E(e)-.1 E F2
+(name)5.047 E F0 5.047(sr)C(eadonly)-5.047 E 7.547(.T)-.65 G 2.546
+(hese names cannot then be assigned v)-7.547 F 2.546
+(alues by subsequent)-.25 F(assignment statements or unset.)180 336 Q F1
+<ad74>144 348 Q F0(Gi)26.97 E .729 -.15(ve e)-.25 H(ach).15 E F2(name)
+2.929 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929
+(ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929 E(UG)
+-.1 E F0(and)2.93 E F1(RETURN)2.93 E F0(traps from the calling shell.)
+180 360 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E
+(ariables.)-.25 E F1<ad75>144 372 Q F0 .91(When the v)24.74 F .909
+(ariable is assigned a v)-.25 F .909(alue, all lo)-.25 F(wer)-.25 E .909
+(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to upper).15 F
+(-)-.2 E 2.5(case. The)180 384 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E
+(ute is disabled.)-.2 E F1<ad78>144 396 Q F0(Mark)25.3 E F2(name)2.5 E
+F0 2.5(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E
+(vironment.)-.4 E .12(Using `+' instead of `\255' turns of)144 412.8 R
+2.62(ft)-.25 G .12(he attrib)-2.62 F .121(ute instead, with the e)-.2 F
+.121(xceptions that)-.15 F F1(+a)2.621 E F0 .121(may not be used)2.621 F
+1.237(to destro)144 424.8 R 3.737(ya)-.1 G 3.737(na)-3.737 G 1.237
+(rray v)-3.737 F 1.237(ariable and)-.25 F F1 1.237(+r will not r)3.737 F
+(emo)-.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237(eadonly attrib)
+-.18 F 3.737(ute. When)-.2 F 1.236(used in a)3.737 F .311(function, mak)
+144 436.8 R .311(es each)-.1 F F2(name)2.811 E F1 .311
+(local, as with the local)2.811 F F0 2.811(command. If)2.811 F 2.811(av)
+2.811 G .312(ariable name is follo)-3.061 F .312(wed by)-.25 F(=)144
+448.8 Q F2(value)A F0 3.239(,t)C .739(he v)-3.239 F .739(alue of the v)
+-.25 F .739(ariable is set to)-.25 F F2(value)3.238 E F0 5.738(.T)C .738
+(he return v)-5.738 F .738(alue is 0 unless an in)-.25 F -.25(va)-.4 G
+.738(lid option is).25 F .603
+(encountered, an attempt is made to de\214ne a function using)144 460.8
+R/F4 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103(na)
+-3.103 G .604(ttempt is made to)-3.103 F 1.243(assign a v)144 472.8 R
+1.243(alue to a readonly v)-.25 F 1.242
+(ariable, an attempt is made to assign a v)-.25 F 1.242
+(alue to an array v)-.25 F(ariable)-.25 E 1.386
+(without using the compound assignment syntax \(see)144 484.8 R F1
+(Arrays)3.886 E F0(abo)3.886 E -.15(ve)-.15 G 1.386(\), one of the).15 F
+F2(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 496.8 S .172
+(lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25
+F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .171
+(ariable, an)-.25 F .96(attempt is made to turn of)144 508.8 R 3.46(fa)
+-.25 G .96(rray status for an array v)-3.46 F .96
+(ariable, or an attempt is made to display a)-.25 F(non-e)144 520.8 Q
+(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1(dirs [+)108 537.6
+Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0
+-.4(Wi)144 549.6 S .329
+(thout options, displays the list of currently remembered directories.)
+.4 F .328(The def)5.328 F .328(ault display is on a)-.1 F 1.238
+(single line with directory names separated by spaces.)144 561.6 R 1.238
+(Directories are added to the list with the)6.238 F F1(pushd)144 573.6 Q
+F0(command; the)2.5 E F1(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G
+2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 585.6 Q F2(n)A F0
+1.565(Displays the)25.3 F F2(n)4.065 E F0 1.565
+(th entry counting from the left of the list sho)B 1.564(wn by)-.25 F F1
+(dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+(without options, starting with zero.)180 597.6 Q F1<ad>144 609.6 Q F2
+(n)A F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194
+(th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
+F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+(without options, starting with zero.)180 621.6 Q F1<ad63>144 633.6 Q F0
+(Clears the directory stack by deleting all of the entries.)25.86 E F1
+<ad6c>144 645.6 Q F0 .324(Produces a longer listing; the def)27.52 F
+.324(ault listing format uses a tilde to denote the home direc-)-.1 F
+(tory)180 657.6 Q(.)-.65 E F1<ad70>144 669.6 Q F0
+(Print the directory stack with one entry per line.)24.74 E F1<ad76>144
+681.6 Q F0 .272(Print the directory stack with one entry per line, pre\
+\214xing each entry with its inde)25.3 F 2.773(xi)-.15 G 2.773(nt)-2.773
+G(he)-2.773 E(stack.)180 693.6 Q .258(The return v)144 710.4 R .258
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
+(lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe)
+-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
+.15 F(tory stack.)144 722.4 Q(GNU Bash-4.0)72 768 Q(2009 February 7)
+140.96 E(52)190.95 E 0 Cg EP
+%%Page: 53 53
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(diso)108 84 Q(wn)-.1 E F0([)2.5 E F1
+(\255ar)A F0 2.5(][)C F1<ad68>-2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 SF
+(jobspec)-2.5 E F0(...])2.5 E -.4(Wi)144 96 S .295(thout options, each)
+.4 F F2(jobspec)4.535 E F0 .295(is remo)3.105 F -.15(ve)-.15 G 2.795(df)
+.15 G .295(rom the table of acti)-2.795 F .595 -.15(ve j)-.25 H 2.795
+(obs. If).15 F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .244
+(and neither)144 108 R F1 .243(\255a nor \255r is supplied, the shell')
+2.744 F 2.743(sn)-.37 G .243(otion of the)-2.743 F F2(curr)2.743 E .243
+(ent job)-.37 F F1 .243(is used.)2.743 F .243(If the \255h option)5.243
+F .333(is gi)144 120 R -.1(ve)-.1 G .333(n, each).1 F F2(jobspec)4.574 E
+F0 .334(is not remo)3.144 F -.15(ve)-.15 G 2.834(df).15 G .334
+(rom the table, b)-2.834 F .334(ut is mark)-.2 F .334(ed so that)-.1 F
+/F3 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .334(is not sent to)2.584 F 1.19
+(the job if the shell recei)144 132 R -.15(ve)-.25 G 3.689(sa).15 G F3
+(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2(jobspec)
+5.429 E F0 1.189(is present, and neither the)3.999 F F1<ad61>3.689 E F0
+1.189(nor the)3.689 F F1<ad72>3.689 E F0 1.569(option is supplied, the)
+144 144 R F2(curr)4.069 E 1.569(ent job)-.37 F F0 1.569(is used.)4.069 F
+1.569(If no)6.569 F F2(jobspec)5.809 E F0 1.57(is supplied, the)4.38 F
+F1<ad61>4.07 E F0 1.57(option means to)4.07 F(remo)144 156 Q .904 -.15
+(ve o)-.15 H 3.104(rm).15 G .604(ark all jobs; the)-3.104 F F1<ad72>
+3.103 E F0 .603(option without a)3.103 F F2(jobspec)4.843 E F0(ar)3.413
+E .603(gument restricts operation to running)-.18 F 2.5(jobs. The)144
+168 R(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
+(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 184.8 Q
+F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
+.394(Output the)144 196.8 R F2(ar)2.894 E(g)-.37 E F0 .394
+(s, separated by spaces, follo)B .395(wed by a ne)-.25 F 2.895
+(wline. The)-.25 F .395(return status is al)2.895 F -.1(wa)-.1 G .395
+(ys 0.).1 F(If)5.395 E F1<ad6e>2.895 E F0 .549
+(is speci\214ed, the trailing ne)144 208.8 R .548(wline is suppressed.)
+-.25 F .548(If the)5.548 F F1<ad65>3.048 E F0 .548(option is gi)3.048 F
+-.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 220.8 Q
+.052(wing backslash-escaped characters is enabled.)-.25 F(The)5.052 E F1
+<ad45>2.552 E F0 .053(option disables the interpretation of these)2.553
+F 1.503(escape characters, e)144 232.8 R -.15(ve)-.25 G 4.003(no).15 G
+4.003(ns)-4.003 G 1.502(ystems where the)-4.003 F 4.002(ya)-.15 G 1.502
+(re interpreted by def)-4.002 F 4.002(ault. The)-.1 F F1(xpg_echo)4.002
+E F0(shell)4.002 E .009
+(option may be used to dynamically determine whether or not)144 244.8 R
+F1(echo)2.509 E F0 -.15(ex)2.51 G .01(pands these escape characters).15
+F .66(by def)144 256.8 R(ault.)-.1 E F1(echo)5.66 E F0 .66
+(does not interpret)3.16 F F1<adad>3.16 E F0 .659
+(to mean the end of options.)3.159 F F1(echo)5.659 E F0 .659
+(interprets the follo)3.159 F(wing)-.25 E(escape sequences:)144 268.8 Q
+F1(\\a)144 280.8 Q F0(alert \(bell\))28.22 E F1(\\b)144 292.8 Q F0
+(backspace)27.66 E F1(\\c)144 304.8 Q F0(suppress further output)28.78 E
+F1(\\e)144 316.8 Q F0(an escape character)28.78 E F1(\\f)144 328.8 Q F0
+(form feed)29.89 E F1(\\n)144 340.8 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)
+-2.5 E F1(\\r)144 352.8 Q F0(carriage return)28.78 E F1(\\t)144 364.8 Q
+F0(horizontal tab)29.89 E F1(\\v)144 376.8 Q F0 -.15(ve)28.22 G
+(rtical tab).15 E F1(\\\\)144 388.8 Q F0(backslash)30.44 E F1(\\0)144
+400.8 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E
+(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
+(\(zero to three octal digits\))2.5 E F1(\\x)144 412.8 Q F2(HH)A F0
+(the eight-bit character whose v)13.78 E(alue is the he)-.25 E
+(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 429.6 Q F0([)2.5 E
+F1<ad61>A F0 2.5(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2
+(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .277
+(Enable and disable b)144 441.6 R .278(uiltin shell commands.)-.2 F .278
+(Disabling a b)5.278 F .278(uiltin allo)-.2 F .278
+(ws a disk command which has)-.25 F .834(the same name as a shell b)144
+453.6 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834
+(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.333
+(nt).15 G(hough)-3.333 E .989(the shell normally searches for b)144
+465.6 R .989(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>
+3.489 E F0 .99(is used, each)3.49 F F2(name)3.49 E F0 .99(is dis-)3.49 F
+1.582(abled; otherwise,)144 477.6 R F2(names)4.082 E F0 1.582
+(are enabled.)4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582
+(xample, to use the)-4.232 F F1(test)4.082 E F0 1.582
+(binary found via the)4.082 F F3 -.666(PA)4.081 G(TH)-.189 E F0 .08
+(instead of the shell b)144 489.6 R .08(uiltin v)-.2 F .08(ersion, run)
+-.15 F/F5 10/Courier@0 SF .081(enable -n test)2.58 F F0 5.081(.T)C(he)
+-5.081 E F1<ad66>2.581 E F0 .081(option means to load the ne)2.581 F(w)
+-.25 E -.2(bu)144 501.6 S 1.525(iltin command).2 F F2(name)4.385 E F0
+1.524(from shared object)4.204 F F2(\214lename)4.024 E F0 4.024(,o).18 G
+4.024(ns)-4.024 G 1.524(ystems that support dynamic loading.)-4.024 F
+(The)144 513.6 Q F1<ad64>2.866 E F0 .366(option will delete a b)2.866 F
+.366(uiltin pre)-.2 F .366(viously loaded with)-.25 F F1<ad66>2.867 E F0
+5.367(.I)C 2.867(fn)-5.367 G(o)-2.867 E F2(name)2.867 E F0(ar)2.867 E
+.367(guments are gi)-.18 F -.15(ve)-.25 G .367(n, or).15 F .399(if the)
+144 525.6 R F1<ad70>2.899 E F0 .399
+(option is supplied, a list of shell b)2.899 F .399(uiltins is printed.)
+-.2 F -.4(Wi)5.399 G .399(th no other option ar).4 F .398(guments, the)
+-.18 F .098(list consists of all enabled shell b)144 537.6 R 2.598
+(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098(is supplied, only disabled b)
+2.598 F .099(uiltins are printed.)-.2 F(If)5.099 E F1<ad61>2.599 E F0
+1.917(is supplied, the list printed includes all b)144 549.6 R 1.916
+(uiltins, with an indication of whether or not each is)-.2 F 2.878
+(enabled. If)144 561.6 R F1<ad73>2.878 E F0 .379
+(is supplied, the output is restricted to the POSIX)2.878 F F2(special)
+2.879 E F0 -.2(bu)2.879 G 2.879(iltins. The).2 F .379(return v)2.879 F
+(alue)-.25 E .995(is 0 unless a)144 573.6 R F2(name)3.855 E F0 .994
+(is not a shell b)3.675 F .994(uiltin or there is an error loading a ne)
+-.2 F 3.494(wb)-.25 G .994(uiltin from a shared)-3.694 F(object.)144
+585.6 Q F1 -2.3 -.15(ev a)108 602.4 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
+E F0(...])2.5 E(The)144 614.4 Q F2(ar)3.17 E(g)-.37 E F0 3.17(sa)C .671
+(re read and concatenated together into a single command.)-3.17 F .671
+(This command is then read)5.671 F .495(and e)144 626.4 R -.15(xe)-.15 G
+.495(cuted by the shell, and its e).15 F .495
+(xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15
+(ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
+-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 638.4 Q
+(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1
+(exec)108 655.2 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
+(name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E F2(ar)A(guments)
+-.37 E F0(]])A(If)144 667.2 Q F2(command)3.005 E F0 .305
+(is speci\214ed, it replaces the shell.)3.575 F .305(No ne)5.305 F 2.805
+(wp)-.25 G .306(rocess is created.)-2.805 F(The)5.306 E F2(ar)3.136 E
+(guments)-.37 E F0(become)3.076 E .177(the ar)144 679.2 R .177
+(guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G
+(he)-2.676 E F1<ad6c>2.676 E F0 .176
+(option is supplied, the shell places a dash at the be)2.676 F .176
+(ginning of)-.15 F .499(the zeroth ar)144 691.2 R .499(gument passed to)
+-.18 F F2(command)2.999 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2
+(lo)2.999 E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.5 E F1<ad63>3 E F0
+.5(option causes)3 F F2(com-)3.2 E(mand)144 703.2 Q F0 .639(to be e)
+3.909 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
+(vironment. If)-.4 F F1<ad61>3.138 E F0 .638
+(is supplied, the shell passes)3.138 F F2(name)3.498 E F0 .638(as the)
+3.318 F 1.077(zeroth ar)144 715.2 R 1.077(gument to the e)-.18 F -.15
+(xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0
+1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
+.15 F(non-interacti)144 727.2 Q 2.002 -.15(ve s)-.25 H 1.702(hell e).15
+F 1.702(xits, unless the shell option)-.15 F F1(execfail)4.201 E F0
+1.701(is enabled, in which case it returns)4.201 F(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(53)190.95 E 0 Cg EP
+%%Page: 54 54
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E -.1(fa)144 84 S 2.563(ilure. An).1 F(interacti)2.563 E .363 -.15
+(ve s)-.25 H .063(hell returns f).15 F .064
+(ailure if the \214le cannot be e)-.1 F -.15(xe)-.15 G 2.564(cuted. If)
+.15 F/F1 10/Times-Italic@0 SF(command)2.764 E F0 .064(is not speci-)
+3.334 F .742(\214ed, an)144 96 R 3.242(yr)-.15 G .742(edirections tak)
+-3.242 F 3.242(ee)-.1 G -.25(ff)-3.242 G .742
+(ect in the current shell, and the return status is 0.).25 F .741
+(If there is a redi-)5.741 F(rection error)144 108 Q 2.5(,t)-.4 G
+(he return status is 1.)-2.5 E/F2 10/Times-Bold@0 SF(exit)108 124.8 Q F0
+([)2.5 E F1(n)A F0 6.29(]C)C .095(ause the shell to e)-6.29 F .095
+(xit with a status of)-.15 F F1(n)2.595 E F0 5.095(.I)C(f)-5.095 E F1(n)
+2.955 E F0 .096(is omitted, the e)2.835 F .096
+(xit status is that of the last command)-.15 F -.15(exe)144 136.8 S 2.5
+(cuted. A).15 F(trap on)2.5 E/F3 9/Times-Bold@0 SF(EXIT)2.5 E F0(is e)
+2.25 E -.15(xe)-.15 G(cuted before the shell terminates.).15 E F2
+(export)108 153.6 Q F0([)2.5 E F2(\255fn)A F0 2.5(][).833 G F1(name)-2.5
+E F0([=)A F1(wor)A(d)-.37 E F0(]] ...)A F2(export \255p)108 165.6 Q F0
+.257(The supplied)144 177.6 R F1(names)3.117 E F0 .257(are mark)3.027 F
+.257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257
+(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.626
+(commands. If)144 189.6 R(the)2.626 E F2<ad66>2.626 E F0 .127
+(option is gi)2.627 F -.15(ve)-.25 G .127(n, the).15 F F1(names)2.987 E
+F0 .127(refer to functions.)2.897 F .127(If no)5.127 F F1(names)2.987 E
+F0 .127(are gi)2.897 F -.15(ve)-.25 G .127(n, or if the).15 F F2<ad70>
+144 201.6 Q F0 .66(option is supplied, a list of all names that are e)
+3.16 F .659(xported in this shell is printed.)-.15 F(The)5.659 E F2
+<ad6e>3.159 E F0(option)3.159 E 1.586(causes the e)144 213.6 R 1.586
+(xport property to be remo)-.15 F -.15(ve)-.15 G 4.086(df).15 G 1.586
+(rom each)-4.086 F F1(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G
+1.587(ariable name is follo)-4.336 F 1.587(wed by)-.25 F(=)144 225.6 Q
+F1(wor)A(d)-.37 E F0 2.804(,t)C .304(he v)-2.804 F .304(alue of the v)
+-.25 F .304(ariable is set to)-.25 F F1(wor)2.804 E(d)-.37 E F0(.)A F2
+(export)5.304 E F0 .304(returns an e)2.804 F .303
+(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .293
+(option is encountered, one of the)144 237.6 R F1(names)2.793 E F0 .293
+(is not a v)2.793 F .293(alid shell v)-.25 F .293(ariable name, or)-.25
+F F2<ad66>2.793 E F0 .294(is supplied with a)2.793 F F1(name)144.36
+249.6 Q F0(that is not a function.)2.68 E F2(fc)108 266.4 Q F0([)2.5 E
+F2<ad65>A F1(ename)2.5 E F0 2.5(][)C F2(\255lnr)-2.5 E F0 2.5(][)C F1
+<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F1(last)-2.5 E F0(])A F2(fc \255s)108
+278.4 Q F0([)2.5 E F1(pat)A F0(=)A F1 -.37(re)C(p).37 E F0 2.5(][)C F1
+(cmd)-2.5 E F0(])A .478(Fix Command.)144 290.4 R .478
+(In the \214rst form, a range of commands from)5.478 F F1<8c72>4.888 E
+(st)-.1 E F0(to)3.658 E F1(last)3.068 E F0 .477
+(is selected from the his-)3.658 F .881(tory list.)144 302.4 R F1 -.45
+(Fi)5.881 G -.1(rs).45 G(t).1 E F0(and)4.061 E F1(last)3.471 E F0 .882
+(may be speci\214ed as a string \(to locate the last command be)4.062 F
+.882(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
+314.4 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F
+-.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .796(umber is used as an)
+.15 F(of)144 326.4 Q .276(fset from the current command number\).)-.25 F
+(If)5.276 E F1(last)2.866 E F0 .277
+(is not speci\214ed it is set to the current command)3.456 F .093
+(for listing \(so that)144 338.4 R/F4 10/Courier@0 SF .092
+(fc \255l \25510)2.592 F F0 .092(prints the last 10 commands\) and to)
+2.592 F F1<8c72>4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F1<8c72>
+4.502 E(st)-.1 E F0 .092(is not)3.272 F
+(speci\214ed it is set to the pre)144 350.4 Q
+(vious command for editing and \25516 for listing.)-.25 E(The)144 374.4
+Q F2<ad6e>2.522 E F0 .022
+(option suppresses the command numbers when listing.)2.522 F(The)5.022 E
+F2<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
+(rses the order of).15 F .438(the commands.)144 386.4 R .438(If the)
+5.438 F F2<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
+(n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
+.334(the editor gi)144 398.4 R -.15(ve)-.25 G 2.834(nb).15 G(y)-2.834 E
+F1(ename)3.024 E F0 .335(is in)3.014 F -.2(vo)-.4 G -.1(ke).2 G 2.835
+(do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835
+F(If)5.335 E F1(ename)3.025 E F0 .335(is not gi)3.015 F -.15(ve)-.25 G
+(n,).15 E .631(the v)144 410.4 R .631(alue of the)-.25 F F3(FCEDIT)3.131
+E F0 -.25(va)2.881 G .631(riable is used, and the v).25 F .631(alue of)
+-.25 F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.13 E F0 .63
+(is not set.)2.88 F .63(If nei-)5.63 F .95(ther v)144 422.4 R .95
+(ariable is set,)-.25 F F1(vi)5.116 E F0 .95(is used.)5.116 F .951
+(When editing is complete, the edited commands are echoed and)5.95 F
+-.15(exe)144 434.4 S(cuted.).15 E .04(In the second form,)144 458.4 R F1
+(command)2.54 E F0 .04(is re-e)2.54 F -.15(xe)-.15 G .039
+(cuted after each instance of).15 F F1(pat)2.539 E F0 .039
+(is replaced by)2.539 F F1 -.37(re)2.539 G(p).37 E F0 5.039(.A)C(useful)
+-2.5 E .406(alias to use with this is)144 470.4 R F4 .406(r='fc \255s')
+2.906 F F0 2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F4
+6.406(rc)2.906 G(c)-6.406 E F0 .406(runs the last command be)2.906 F
+.407(ginning with)-.15 F F4(cc)144 482.4 Q F0(and typing)2.5 E F4(r)2.5
+E F0(re-e)2.5 E -.15(xe)-.15 G(cutes the last command.).15 E .142
+(If the \214rst form is used, the return v)144 506.4 R .142
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
+(lid option is encountered or).25 F F1<8c72>4.552 E(st)-.1 E F0(or)3.322
+E F1(last)2.732 E F0 .454(specify history lines out of range.)144 518.4
+R .454(If the)5.454 F F2<ad65>2.954 E F0 .454
+(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
+(alue of the)-.25 F .788(last command e)144 530.4 R -.15(xe)-.15 G .788
+(cuted or f).15 F .787
+(ailure if an error occurs with the temporary \214le of commands.)-.1 F
+.787(If the)5.787 F 1.135
+(second form is used, the return status is that of the command re-e)144
+542.4 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F1(cmd)3.836 E F0 1.136
+(does not)4.406 F(specify a v)144 554.4 Q
+(alid history line, in which case)-.25 E F2(fc)2.5 E F0(returns f)2.5 E
+(ailure.)-.1 E F2(fg)108 571.2 Q F0([)2.5 E F1(jobspec)A F0(])A(Resume)
+144 583.2 Q F1(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
+(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
+(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F1(jobspec)5.653 E F0
+1.413(is not present, the)4.223 F(shell')144 595.2 Q 3.116(sn)-.55 G
+.616(otion of the)-3.116 F F1(curr)3.116 E .616(ent job)-.37 F F0 .617
+(is used.)3.116 F .617(The return v)5.617 F .617
+(alue is that of the command placed into the)-.25 F(fore)144 607.2 Q
+.363(ground, or f)-.15 F .363
+(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362
+(hen run with job control enabled, if)-2.862 F F1(jobspec)145.74 619.2 Q
+F0 .004(does not specify a v)2.814 F .004(alid job or)-.25 F F1(jobspec)
+4.244 E F0 .004(speci\214es a job that w)2.814 F .004
+(as started without job control.)-.1 F F2(getopts)108 636 Q F1
+(optstring name)2.5 E F0([)2.5 E F1(ar)A(gs)-.37 E F0(])A F2(getopts)144
+648 Q F0 .793
+(is used by shell procedures to parse positional parameters.)3.294 F F1
+(optstring)6.023 E F0 .793(contains the option)3.513 F .149
+(characters to be recognized; if a character is follo)144 660 R .15
+(wed by a colon, the option is e)-.25 F .15(xpected to ha)-.15 F .45
+-.15(ve a)-.2 H(n).15 E(ar)144 672 Q .579
+(gument, which should be separated from it by white space.)-.18 F .578
+(The colon and question mark char)5.579 F(-)-.2 E 1.665
+(acters may not be used as option characters.)144 684 R 1.665
+(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F2(getopts)
+4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .797
+(option in the shell v)144 696 R(ariable)-.25 E F1(name)3.297 E F0 3.297
+(,i).18 G(nitializing)-3.297 E F1(name)3.657 E F0 .797(if it does not e)
+3.477 F .796(xist, and the inde)-.15 F 3.296(xo)-.15 G 3.296(ft)-3.296 G
+.796(he ne)-3.296 F(xt)-.15 E(ar)144 708 Q .085
+(gument to be processed into the v)-.18 F(ariable)-.25 E F3(OPTIND)2.585
+E/F5 9/Times-Roman@0 SF(.)A F3(OPTIND)4.585 E F0 .085
+(is initialized to 1 each time the shell)2.335 F .846
+(or a shell script is in)144 720 R -.2(vo)-.4 G -.1(ke).2 G 3.345
+(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F2
+(getopts)3.345 E F0 .845(places that ar)3.345 F(gument)-.18 E
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(54)190.95 E 0 Cg EP
+%%Page: 55 55
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .803(into the v)144 84 R(ariable)-.25 E/F1 9/Times-Bold@0 SF(OPT)
+3.303 E(ARG)-.81 E/F2 9/Times-Roman@0 SF(.)A F0 .803
+(The shell does not reset)5.303 F F1(OPTIND)3.303 E F0 .804
+(automatically; it must be manually)3.054 F .294
+(reset between multiple calls to)144 96 R/F3 10/Times-Bold@0 SF(getopts)
+2.793 E F0 .293(within the same shell in)2.793 F -.2(vo)-.4 G .293
+(cation if a ne).2 F 2.793(ws)-.25 G .293(et of parameters)-2.793 F
+(is to be used.)144 108 Q 2.043(When the end of options is encountered,)
+144 132 R F3(getopts)4.543 E F0 -.15(ex)4.543 G 2.043
+(its with a return v).15 F 2.044(alue greater than zero.)-.25 F F3
+(OPTIND)144 144 Q F0(is set to the inde)2.5 E 2.5(xo)-.15 G 2.5(ft)-2.5
+G(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F3(name)2.5 E F0
+(is set to ?.)2.5 E F3(getopts)144 168 Q F0 2.393
+(normally parses the positional parameters, b)4.893 F 2.392
+(ut if more ar)-.2 F 2.392(guments are gi)-.18 F -.15(ve)-.25 G 4.892
+(ni).15 G(n)-4.892 E/F4 10/Times-Italic@0 SF(ar)4.892 E(gs)-.37 E F0(,)
+.27 E F3(getopts)144 180 Q F0(parses those instead.)2.5 E F3(getopts)144
+204 Q F0 1.165(can report errors in tw)3.665 F 3.665(ow)-.1 G 3.665
+(ays. If)-3.765 F 1.165(the \214rst character of)3.665 F F4(optstring)
+3.895 E F0 1.166(is a colon,)3.886 F F4(silent)4.006 E F0(error)4.346 E
+1.264(reporting is used.)144 216 R 1.263
+(In normal operation diagnostic messages are printed when in)6.263 F
+-.25(va)-.4 G 1.263(lid options or).25 F .393(missing option ar)144 228
+R .393(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable)
+-.25 E F1(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F
+(will be displayed, e)144 240 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5
+G(he \214rst character of)-2.5 E F4(optstring)2.73 E F0(is not a colon.)
+2.72 E .667(If an in)144 264 R -.25(va)-.4 G .667(lid option is seen,)
+.25 F F3(getopts)3.167 E F0 .667(places ? into)3.167 F F4(name)3.527 E
+F0 .666(and, if not silent, prints an error message)3.347 F .399
+(and unsets)144 276 R F1(OPT)2.899 E(ARG)-.81 E F2(.)A F0(If)4.899 E F3
+(getopts)2.899 E F0 .399
+(is silent, the option character found is placed in)2.899 F F1(OPT)2.899
+E(ARG)-.81 E F0 .4(and no)2.65 F(diagnostic message is printed.)144 288
+Q 1.242(If a required ar)144 312 R 1.242(gument is not found, and)-.18 F
+F3(getopts)3.741 E F0 1.241(is not silent, a question mark \()3.741 F F3
+(?).833 E F0 3.741(\)i).833 G 3.741(sp)-3.741 G 1.241(laced in)-3.741 F
+F4(name)144 324 Q F0(,).18 E F1(OPT)2.734 E(ARG)-.81 E F0 .234
+(is unset, and a diagnostic message is printed.)2.484 F(If)5.234 E F3
+(getopts)2.734 E F0 .235(is silent, then a colon \()2.734 F F3(:).833 E
+F0(\)).833 E(is placed in)144 336 Q F4(name)2.86 E F0(and)2.68 E F1(OPT)
+2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F3
+(getopts)144 360 Q F0 .902
+(returns true if an option, speci\214ed or unspeci\214ed, is found.)
+3.402 F .902(It returns f)5.902 F .901(alse if the end of)-.1 F
+(options is encountered or an error occurs.)144 372 Q F3(hash)108 388.8
+Q F0([)2.5 E F3(\255lr)A F0 2.5(][)C F3<ad70>-2.5 E F4(\214lename)2.5 E
+F0 2.5(][)C F3(\255dt)-2.5 E F0 2.5(][)C F4(name)-2.5 E F0(])A -.15(Fo)
+144 400.8 S 3.554(re).15 G(ach)-3.554 E F4(name)3.554 E F0 3.554(,t).18
+G 1.054(he full \214le name of the command is determined by searching t\
+he directories in)-3.554 F F3($P)144 412.8 Q -.95(AT)-.74 G(H).95 E F0
+.35(and remembered.)2.85 F .35(If the)5.35 F F3<ad70>2.85 E F0 .349
+(option is supplied, no path search is performed, and)2.849 F F4
+(\214lename)4.759 E F0 .452
+(is used as the full \214le name of the command.)144 424.8 R(The)5.452 E
+F3<ad72>2.952 E F0 .452(option causes the shell to for)2.952 F .453
+(get all remem-)-.18 F .593(bered locations.)144 436.8 R(The)5.593 E F3
+<ad64>3.093 E F0 .593(option causes the shell to for)3.093 F .592
+(get the remembered location of each)-.18 F F4(name)3.092 E F0(.)A .02
+(If the)144 448.8 R F3<ad74>2.52 E F0 .02
+(option is supplied, the full pathname to which each)2.52 F F4(name)
+2.521 E F0 .021(corresponds is printed.)2.521 F .021(If multi-)5.021 F
+(ple)144 460.8 Q F4(name)3.704 E F0(ar)3.704 E 1.204
+(guments are supplied with)-.18 F F3<ad74>3.703 E F0 3.703(,t)C(he)
+-3.703 E F4(name)3.703 E F0 1.203
+(is printed before the hashed full pathname.)3.703 F(The)144 472.8 Q F3
+<ad6c>3.215 E F0 .715(option causes output to be displayed in a format \
+that may be reused as input.)3.215 F .716(If no ar)5.716 F(gu-)-.18 E
+1.184(ments are gi)144 484.8 R -.15(ve)-.25 G 1.184(n, or if only).15 F
+F3<ad6c>3.684 E F0 1.183
+(is supplied, information about remembered commands is printed.)3.684 F
+(The return status is true unless a)144 496.8 Q F4(name)2.86 E F0
+(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25
+E F3(help)108 513.6 Q F0([)2.5 E F3(\255dms)A F0 2.5(][)C F4(pattern)
+-2.5 E F0(])A .866(Display helpful information about b)144 525.6 R .867
+(uiltin commands.)-.2 F(If)5.867 E F4(pattern)4.617 E F0 .867
+(is speci\214ed,)3.607 F F3(help)3.367 E F0(gi)3.367 E -.15(ve)-.25 G
+3.367(sd).15 G(etailed)-3.367 E .307(help on all commands matching)144
+537.6 R F4(pattern)2.807 E F0 2.807(;o).24 G .307
+(therwise help for all the b)-2.807 F .306
+(uiltins and shell control struc-)-.2 F(tures is printed.)144 549.6 Q F3
+<ad64>144 561.6 Q F0(Display a short description of each)24.74 E F4
+(pattern)2.5 E F3(-m)146.5 573.6 Q F0(Display the description of each)
+21.84 E F4(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)
+-2.5 E F3<ad73>144 585.6 Q F0
+(Display only a short usage synopsis for each)26.41 E F4(pattern)2.5 E
+F0(The return status is 0 unless no command matches)108 597.6 Q F4
+(pattern)2.5 E F0(.).24 E F3(history [)108 614.4 Q F4(n)A F3(])A
+(history \255c)108 626.4 Q(history \255d)108 638.4 Q F4(of)2.5 E(fset)
+-.18 E F3(history \255anrw)108 650.4 Q F0([)2.5 E F4(\214lename)A F0(])A
+F3(history \255p)108 662.4 Q F4(ar)2.5 E(g)-.37 E F0([)2.5 E F4(ar)A 2.5
+(g.)-.37 G(..)-2.5 E F0(])A F3(history \255s)108 674.4 Q F4(ar)2.5 E(g)
+-.37 E F0([)2.5 E F4(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144
+686.4 S .752
+(th no options, display the command history list with line numbers.).4 F
+.752(Lines listed with a)5.752 F F3(*)3.252 E F0(ha)3.252 E -.15(ve)-.2
+G 1.231(been modi\214ed.)144 698.4 R 1.231(An ar)6.231 F 1.231
+(gument of)-.18 F F4(n)4.091 E F0 1.231(lists only the last)3.971 F F4
+(n)4.091 E F0 3.73(lines. If)3.97 F 1.23(the shell v)3.73 F(ariable)-.25
+E F3(HISTTIME-)3.73 E(FORMA)144 710.4 Q(T)-.95 E F0 .249
+(is set and not null, it is used as a format string for)2.749 F F4
+(strftime)2.75 E F0 .25(\(3\) to display the time stamp)B 3.118
+(associated with each displayed history entry)144 722.4 R 8.118(.N)-.65
+G 5.617(oi)-8.118 G(nterv)-5.617 E 3.117
+(ening blank is printed between the)-.15 F(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(55)190.95 E 0 Cg EP
+%%Page: 56 56
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .083(formatted time stamp and the history line.)144 84 R(If)5.084
+E/F1 10/Times-Italic@0 SF(\214lename)2.584 E F0 .084
+(is supplied, it is used as the name of the his-)2.584 F .097
+(tory \214le; if not, the v)144 96 R .097(alue of)-.25 F/F2 9
+/Times-Bold@0 SF(HISTFILE)2.597 E F0 .096(is used.)2.347 F .096
+(Options, if supplied, ha)5.096 F .396 -.15(ve t)-.2 H .096(he follo).15
+F .096(wing meanings:)-.25 F/F3 10/Times-Bold@0 SF<ad63>144 108 Q F0
+(Clear the history list by deleting all the entries.)25.86 E F3<ad64>144
+120 Q F1(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
+180 132 Q F1(of)2.5 E(fset)-.18 E F0(.)A F3<ad61>144 144 Q F0 .598
+(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.098('h)-.74 G .598
+(istory lines \(history lines entered since the be)-3.098 F .599
+(ginning of the current)-.15 F F3(bash)180 156 Q F0
+(session\) to the history \214le.)2.5 E F3<ad6e>144 168 Q F0 .854(Read \
+the history lines not already read from the history \214le into the cur\
+rent history list.)24.74 F .772
+(These are lines appended to the history \214le since the be)180 180 R
+.773(ginning of the current)-.15 F F3(bash)3.273 E F0(ses-)3.273 E
+(sion.)180 192 Q F3<ad72>144 204 Q F0(Read the contents of the history \
+\214le and use them as the current history)25.86 E(.)-.65 E F3<ad77>144
+216 Q F0(Write the current history to the history \214le, o)23.08 E -.15
+(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G(ontents.)
+-2.5 E F3<ad70>144 228 Q F0 .626
+(Perform history substitution on the follo)24.74 F(wing)-.25 E F1(ar)
+3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F
+2.975(output. Does)180 240 R .475
+(not store the results in the history list.)2.975 F(Each)5.475 E F1(ar)
+2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
+(normal history e)180 252 Q(xpansion.)-.15 E F3<ad73>144 264 Q F0 .363
+(Store the)26.41 F F1(ar)3.193 E(gs)-.37 E F0 .363
+(in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
+(he last command in the history list is)-5.363 F(remo)180 276 Q -.15(ve)
+-.15 G 2.5(db).15 G(efore the)-2.5 E F1(ar)2.83 E(gs)-.37 E F0
+(are added.)2.77 E .28(If the)144 292.8 R F3(HISTTIMEFORMA)2.78 E(T)-.95
+E F0 .28
+(is set, the time stamp information associated with each history entry)
+2.78 F .54(is written to the history \214le, mark)144 304.8 R .539
+(ed with the history comment character)-.1 F 5.539(.W)-.55 G .539
+(hen the history \214le is)-5.539 F 1.778(read, lines be)144 316.8 R
+1.778(ginning with the history comment character follo)-.15 F 1.779
+(wed immediately by a digit are)-.25 F 1.424
+(interpreted as timestamps for the pre)144 328.8 R 1.424
+(vious history line.)-.25 F 1.424(The return v)6.424 F 1.424
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\
+ncountered, an error occurs while reading or writing the history \214le\
+, an in)144 340.8 R -.25(va)-.4 G(lid).25 E F1(of)3 E(fset)-.18 E F0(is)
+3 E(supplied as an ar)144 352.8 Q(gument to)-.18 E F3<ad64>2.5 E F0 2.5
+(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E(xpansion supplied as an ar)-.15
+E(gument to)-.18 E F3<ad70>2.5 E F0 -.1(fa)2.5 G(ils.).1 E F3(jobs)108
+369.6 Q F0([)2.5 E F3(\255lnprs)A F0 2.5(][)C F1(jobspec)A F0(... ])2.5
+E F3(jobs \255x)108 381.6 Q F1(command)2.5 E F0([)2.5 E F1(ar)2.5 E(gs)
+-.37 E F0(... ])2.5 E(The \214rst form lists the acti)144 393.6 Q .3
+-.15(ve j)-.25 H 2.5(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F3<ad6c>144 405.6 Q F0
+(List process IDs in addition to the normal information.)27.52 E F3
+<ad70>144 417.6 Q F0(List only the process ID of the job')24.74 E 2.5
+(sp)-.55 G(rocess group leader)-2.5 E(.)-.55 E F3<ad6e>144 429.6 Q F0
+.194(Display information only about jobs that ha)24.74 F .494 -.15(ve c)
+-.2 H .193(hanged status since the user w).15 F .193(as last noti-)-.1 F
+(\214ed of their status.)180 441.6 Q F3<ad72>144 453.6 Q F0
+(Restrict output to running jobs.)25.86 E F3<ad73>144 465.6 Q F0
+(Restrict output to stopped jobs.)26.41 E(If)144 482.4 Q F1(jobspec)
+4.553 E F0 .313(is gi)3.123 F -.15(ve)-.25 G .313
+(n, output is restricted to information about that job).15 F 5.314(.T)
+-.4 G .314(he return status is 0 unless)-5.314 F(an in)144 494.4 Q -.25
+(va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
+E F1(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 511.2 R F3
+<ad78>2.895 E F0 .394(option is supplied,)2.894 F F3(jobs)2.894 E F0
+.394(replaces an)2.894 F(y)-.15 E F1(jobspec)4.634 E F0 .394(found in)
+3.204 F F1(command)3.094 E F0(or)3.664 E F1(ar)3.224 E(gs)-.37 E F0 .394
+(with the corre-)3.164 F(sponding process group ID, and e)144 523.2 Q
+-.15(xe)-.15 G(cutes).15 E F1(command)2.7 E F0(passing it)3.27 E F1(ar)
+2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15 E
+F3(kill)108 540 Q F0([)2.5 E F3<ad73>A F1(sigspec)2.5 E F0(|)2.5 E F3
+<ad6e>2.5 E F1(signum)2.5 E F0(|)2.5 E F3<ad>2.5 E F1(sigspec)A F0 2.5
+(][)C F1(pid)-2.5 E F0(|)2.5 E F1(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F3
+(kill \255l)108 552 Q F0([)2.5 E F1(sigspec)A F0(|)2.5 E F1 -.2(ex)2.5 G
+(it_status).2 E F0(])A .119(Send the signal named by)144 564 R F1
+(sigspec)2.959 E F0(or)2.929 E F1(signum)2.959 E F0 .119
+(to the processes named by)2.939 F F1(pid)3.87 E F0(or)3.39 E F1
+(jobspec)2.62 E F0(.).31 E F1(sigspec)5.46 E F0(is)2.93 E .319
+(either a case-insensiti)144 576 R .619 -.15(ve s)-.25 H .319
+(ignal name such as).15 F F2(SIGKILL)2.819 E F0 .318
+(\(with or without the)2.569 F F2(SIG)2.818 E F0 .318
+(pre\214x\) or a signal)2.568 F(number;)144 588 Q F1(signum)4.188 E F0
+1.349(is a signal number)4.168 F 6.349(.I)-.55 G(f)-6.349 E F1(sigspec)
+4.189 E F0 1.349(is not present, then)4.159 F F2(SIGTERM)3.849 E F0
+1.349(is assumed.)3.599 F(An)6.349 E(ar)144 600 Q .523(gument of)-.18 F
+F3<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523
+F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F
+F3<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names)
+.15 F .28(of the signals corresponding to the ar)144 612 R .28
+(guments are listed, and the return status is 0.)-.18 F(The)5.28 E F1
+-.2(ex)2.78 G(it_status).2 E F0(ar)144 624 Q .378(gument to)-.18 F F3
+<ad6c>2.878 E F0 .378
+(is a number specifying either a signal number or the e)2.878 F .377
+(xit status of a process termi-)-.15 F .593(nated by a signal.)144 636 R
+F3(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
+.593(as successfully sent, or f)-.1 F .594(alse if an error)-.1 F
+(occurs or an in)144 648 Q -.25(va)-.4 G(lid option is encountered.).25
+E F3(let)108 664.8 Q F1(ar)2.5 E(g)-.37 E F0([)2.5 E F1(ar)A(g)-.37 E F0
+(...])2.5 E(Each)144 676.8 Q F1(ar)3.965 E(g)-.37 E F0 1.135
+(is an arithmetic e)3.855 F 1.134(xpression to be e)-.15 F -.25(va)-.25
+G 1.134(luated \(see).25 F F2 1.134(ARITHMETIC EV)3.634 F(ALU)-1.215 E
+-.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(\).)A F0 1.134(If the)
+5.634 F(last)144 688.8 Q F1(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G
+(luates to 0,).25 E F3(let)2.5 E F0(returns 1; 0 is returned otherwise.)
+2.5 E F3(local)108 705.6 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(name)
+-2.5 E F0([=)A F1(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 717.6 S
+2.56(re).15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06
+(ariable named)-.25 F F1(name)2.92 E F0 .06(is created, and assigned)
+2.74 F F1(value)2.56 E F0 5.06(.T).18 G(he)-5.06 E F1(option)2.56 E F0
+.06(can be)2.56 F(an)144 729.6 Q 4.514(yo)-.15 G 4.514(ft)-4.514 G 2.014
+(he options accepted by)-4.514 F F3(declar)4.514 E(e)-.18 E F0 7.014(.W)
+C(hen)-7.014 E F3(local)4.514 E F0 2.013
+(is used within a function, it causes the)4.514 F(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(56)190.95 E 0 Cg EP
+%%Page: 57 57
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E -.25(va)144 84 S(riable).25 E/F1 10/Times-Italic@0 SF(name)3.87 E
+F0 1.01(to ha)3.69 F 1.31 -.15(ve a v)-.2 H 1.011
+(isible scope restricted to that function and its children.).15 F -.4
+(Wi)6.011 G 1.011(th no oper).4 F(-)-.2 E(ands,)144 96 Q/F2 10
+/Times-Bold@0 SF(local)3.242 E F0 .741(writes a list of local v)3.241 F
+.741(ariables to the standard output.)-.25 F .741(It is an error to use)
+5.741 F F2(local)3.241 E F0(when)3.241 E 1.34(not within a function.)144
+108 R 1.34(The return status is 0 unless)6.34 F F2(local)3.84 E F0 1.34
+(is used outside a function, an in)3.84 F -.25(va)-.4 G(lid).25 E F1
+(name)144.36 120 Q F0(is supplied, or)2.68 E F1(name)2.5 E F0
+(is a readonly v)2.5 E(ariable.)-.25 E F2(logout)108 136.8 Q F0
+(Exit a login shell.)9.33 E F2(map\214le)108 153.6 Q F0([)2.5 E F2<ad6e>
+A F1(count)2.5 E F0 2.5(][)C F2<ad4f>-2.5 E F1(origin)2.5 E F0 2.5(][)C
+F2<ad73>-2.5 E F1(count)2.5 E F0 2.5(][)C F2<ad74>-2.5 E F0 2.5(][)C F2
+<ad75>-2.5 E F1(fd)2.5 E F0 2.5(][)C F2<ad43>-2.5 E F1(callbac)2.5 E(k)
+-.2 E F0 2.5(][)C F2<ad63>-2.5 E F1(quantum)2.5 E F0 2.5(][)C F1(arr)
+-2.5 E(ay)-.15 E F0(])A F2 -.18(re)108 165.6 S(adarray).18 E F0([)2.5 E
+F2<ad6e>A F1(count)2.5 E F0 2.5(][)C F2<ad4f>-2.5 E F1(origin)2.5 E F0
+2.5(][)C F2<ad73>-2.5 E F1(count)2.5 E F0 2.5(][)C F2<ad74>-2.5 E F0 2.5
+(][)C F2<ad75>-2.5 E F1(fd)2.5 E F0 2.5(][)C F2<ad43>-2.5 E F1(callbac)
+2.5 E(k)-.2 E F0 2.5(][)C F2<ad63>-2.5 E F1(quantum)2.5 E F0 2.5(][)C F1
+(arr)-2.5 E(ay)-.15 E F0(])A 1.006
+(Read lines from the standard input into array v)144 177.6 R(ariable)
+-.25 E F1(arr)3.506 E(ay)-.15 E F0 3.506(,o).32 G 3.506(rf)-3.506 G
+1.006(rom \214le descriptor)-3.506 F F1(fd)3.506 E F0 1.005(if the)3.506
+F F2<ad75>3.505 E F0 1.086(option is supplied.)144 189.6 R 1.086(The v)
+6.086 F(ariable)-.25 E F2(MAPFILE)3.586 E F0 1.086(is the def)3.586 F
+(ault)-.1 E F1(arr)3.587 E(ay)-.15 E F0 6.087(.O)C 1.087
+(ptions, if supplied, ha)-6.087 F 1.387 -.15(ve t)-.2 H(he).15 E(follo)
+144 201.6 Q(wing meanings:)-.25 E F2<ad6e>144 213.6 Q F0(Cop)24.74 E 2.5
+(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F1(count)2.7 E F0 2.5(lines. If)3.18
+F F1(count)2.5 E F0(is 0, all lines are copied.)2.5 E F2<ad4f>144 225.6
+Q F0(Be)22.52 E(gin assigning to)-.15 E F1(arr)2.83 E(ay)-.15 E F0
+(at inde)2.82 E(x)-.15 E F1(origin)2.5 E F0 5(.T).24 G(he def)-5 E
+(ault inde)-.1 E 2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F2<ad73>144 237.6
+Q F0(Discard the \214rst)26.41 E F1(count)2.5 E F0(lines read.)2.5 E F2
+<ad74>144 249.6 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H
+(railing line from each line read.).15 E F2<ad75>144 261.6 Q F0
+(Read lines from \214le descriptor)24.74 E F1(fd)2.5 E F0
+(instead of the standard input.)2.5 E F2<ad43>144 273.6 Q F0(Ev)23.08 E
+(aluate)-.25 E F1(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F1(quantum)
+2.5 E F0(lines are read.)2.5 E(The)5 E F2<ad63>2.5 E F0
+(option speci\214es)2.5 E F1(quantum)2.5 E F0(.).32 E F2<ad63>144 285.6
+Q F0(Specify the number of lines read between each call to)25.86 E F1
+(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 302.4 Q F2<ad43>2.968 E F0 .467
+(is speci\214ed without)2.967 F F2<ad63>2.967 E F0 2.967(,t)C .467
+(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F1
+(callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
+(luated, it is sup-).25 F 1.22(plied the inde)144 314.4 R 3.72(xo)-.15 G
+3.72(ft)-3.72 G 1.22(he ne)-3.72 F 1.22
+(xt array element to be assigned as an additional ar)-.15 F(gument.)-.18
+E F1(callbac)6.22 E(k)-.2 E F0(is)3.72 E -.25(eva)144 326.4 S
+(luated after the line is read b).25 E
+(ut before the array element is assigned.)-.2 E
+(If not supplied with an e)144 343.2 Q(xplicit origin,)-.15 E F2
+(map\214le)2.5 E F0(will clear)2.5 E F1(arr)2.5 E(ay)-.15 E F0
+(before assigning to it.)2.5 E F2(map\214le)144 360 Q F0 .996
+(returns successfully unless an in)3.496 F -.25(va)-.4 G .996
+(lid option or option ar).25 F .995(gument is supplied, or)-.18 F F1
+(arr)3.495 E(ay)-.15 E F0(is)3.495 E(in)144 372 Q -.25(va)-.4 G
+(lid or unassignable.).25 E F2(popd)108 388.8 Q F0<5bad>2.5 E F2(n)A F0
+2.5(][)C(+)-2.5 E F1(n)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0(])A(Remo)144
+400.8 Q -.15(ve)-.15 G 2.799(se).15 G .299
+(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G .299(th no ar)
+.4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G .3
+(he top directory from the)-2.799 F 1.479(stack, and performs a)144
+412.8 R F2(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479
+(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.478
+(uments, if supplied, ha).18 F 1.778 -.15(ve t)-.2 H 1.478(he follo).15
+F(wing)-.25 E(meanings:)144 424.8 Q F2<ad6e>144 436.8 Q F0 .551
+(Suppresses the normal change of directory when remo)24.74 F .551
+(ving directories from the stack, so)-.15 F
+(that only the stack is manipulated.)180 448.8 Q F2(+)144 460.8 Q F1(n)A
+F0(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F1(n)2.64 E F0
+.14(th entry counting from the left of the list sho)B .14(wn by)-.25 F
+F2(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
+472.8 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0
+(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)
+-.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F2<ad>144 484.8 Q F1(n)A F0
+(Remo)25.3 E -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F1(n)3.759 E F0
+1.259(th entry counting from the right of the list sho)B 1.26(wn by)-.25
+F F2(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180
+496.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15
+(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5
+E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 513.6 R F2(popd)
+3.144 E F0 .644(command is successful, a)3.144 F F2(dirs)3.143 E F0 .643
+(is performed as well, and the return status is 0.)3.143 F F2(popd)5.643
+E F0 .415(returns f)144 525.6 R .415(alse if an in)-.1 F -.25(va)-.4 G
+.415(lid option is encountered, the directory stack is empty).25 F 2.916
+(,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F
+(tory stack entry is speci\214ed, or the directory change f)144 537.6 Q
+(ails.)-.1 E F2(printf)108 554.4 Q F0([)2.5 E F2<ad76>A F1(var)2.5 E F0
+(])A F1(format)2.5 E F0([)2.5 E F1(ar)A(guments)-.37 E F0(])A .372
+(Write the formatted)144 566.4 R F1(ar)2.872 E(guments)-.37 E F0 .372
+(to the standard output under the control of the)2.872 F F1(format)2.872
+E F0 5.372(.T)C(he)-5.372 E F1(format)2.872 E F0 1.804(is a character s\
+tring which contains three types of objects: plain characters, which ar\
+e simply)144 578.4 R .159
+(copied to standard output, character escape sequences, which are con)
+144 590.4 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(\
+dard output, and format speci\214cations, each of which causes printing\
+ of the ne)144 602.4 R .5(xt successi)-.15 F -.15(ve)-.25 G F1(ar)3.15 E
+(gu-)-.37 E(ment)144 614.4 Q F0 5.424(.I)C 2.924(na)-5.424 G .424
+(ddition to the standard)-2.924 F F1(printf)2.924 E F0 .424
+(\(1\) formats,)B F2(%b)2.924 E F0(causes)2.923 E F2(printf)2.923 E F0
+.423(to e)2.923 F .423(xpand backslash escape)-.15 F .976
+(sequences in the corresponding)144 626.4 R F1(ar)3.476 E(gument)-.37 E
+F0(\(e)3.476 E .976(xcept that)-.15 F F2(\\c)3.476 E F0 .976
+(terminates output, backslashes in)3.476 F F2<5c08>3.477 E F0(,)A F2
+(\\")3.477 E F0(,)A(and)144 638.4 Q F2(\\?)3.422 E F0 .922(are not remo)
+3.422 F -.15(ve)-.15 G .922(d, and octal escapes be).15 F .922
+(ginning with)-.15 F F2(\\0)3.422 E F0 .921
+(may contain up to four digits\), and)3.422 F F2(%q)144 650.4 Q F0
+(causes)3.63 E F2(printf)3.63 E F0 1.13(to output the corresponding)3.63
+F F1(ar)3.631 E(gument)-.37 E F0 1.131
+(in a format that can be reused as shell)3.631 F(input.)144 662.4 Q(The)
+144 686.4 Q F2<ad76>2.904 E F0 .404
+(option causes the output to be assigned to the v)2.904 F(ariable)-.25 E
+F1(var)2.904 E F0 .404(rather than being printed to the)2.904 F
+(standard output.)144 698.4 Q(The)144 722.4 Q F1(format)3.423 E F0 .923
+(is reused as necessary to consume all of the)3.423 F F1(ar)3.423 E
+(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F1(format)
+3.423 E F0 .924(requires more)3.424 F(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(57)190.95 E 0 Cg EP
+%%Page: 58 58
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Italic@0 SF(ar)144 84 Q(guments)-.37 E F0 .033
+(than are supplied, the e)2.534 F .033
+(xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si)
+.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .033(alue or null string,)
+-.25 F(as appropriate, had been supplied.)144 96 Q(The return v)5 E
+(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E/F2 10
+/Times-Bold@0 SF(pushd)108 112.8 Q F0([)2.5 E F2<ad6e>A F0 2.5(][)C(+)
+-2.5 E F1(n)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0(])A F2(pushd)108 124.8 Q
+F0([)2.5 E F2<ad6e>A F0 2.5(][)C F1(dir)-2.5 E F0(])A .639(Adds a direc\
+tory to the top of the directory stack, or rotates the stack, making th\
+e ne)144 136.8 R 3.14(wt)-.25 G .64(op of the)-3.14 F 1.316
+(stack the current w)144 148.8 R 1.316(orking directory)-.1 F 6.316(.W)
+-.65 G 1.315(ith no ar)-6.716 F 1.315(guments, e)-.18 F 1.315
+(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315(irectories and)-3.815 F
+.871(returns 0, unless the directory stack is empty)144 160.8 R 5.871
+(.A)-.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172
+-.15(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144
+172.8 Q F2<ad6e>144 184.8 Q F0 .902(Suppresses the normal change of dir\
+ectory when adding directories to the stack, so that)24.74 F
+(only the stack is manipulated.)180 196.8 Q F2(+)144 208.8 Q F1(n)A F0
+1.267(Rotates the stack so that the)25.3 F F1(n)3.767 E F0 1.268
+(th directory \(counting from the left of the list sho)B 1.268(wn by)
+-.25 F F2(dirs)180 220.8 Q F0 2.5(,s)C
+(tarting with zero\) is at the top.)-2.5 E F2<ad>144 232.8 Q F1(n)A F0
+.92(Rotates the stack so that the)25.3 F F1(n)3.42 E F0 .92
+(th directory \(counting from the right of the list sho)B .92(wn by)-.25
+F F2(dirs)180 244.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E F1(dir)144.35 256.8 Q F0(Adds)23.98 E F1(dir)2.85 E F0
+(to the directory stack at the top, making it the ne)3.23 E 2.5(wc)-.25
+G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 273.6
+R F2(pushd)2.988 E F0 .488(command is successful, a)2.988 F F2(dirs)
+2.988 E F0 .488(is performed as well.)2.988 F .489
+(If the \214rst form is used,)5.488 F F2(pushd)2.989 E F0 1.04
+(returns 0 unless the cd to)144 285.6 R F1(dir)3.89 E F0 -.1(fa)4.27 G
+3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F2(pushd)3.539 E F0
+1.039(returns 0 unless the directory)3.539 F .846(stack is empty)144
+297.6 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack ele\
+ment is speci\214ed, or the directory change to the)-.15 F
+(speci\214ed ne)144 309.6 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E
+(ails.)-.1 E F2(pwd)108 326.4 Q F0([)2.5 E F2(\255LP)A F0(])A .845
+(Print the absolute pathname of the current w)144 338.4 R .845
+(orking directory)-.1 F 5.844(.T)-.65 G .844
+(he pathname printed contains no)-5.844 F .181(symbolic links if the)144
+350.4 R F2<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F2
+.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F2
+(set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264
+(enabled. If)144 362.4 R(the)3.264 E F2<ad4c>3.264 E F0 .763
+(option is used, the pathname printed may contain symbolic links.)3.264
+F .763(The return)5.763 F 1.36(status is 0 unless an error occurs while\
+ reading the name of the current directory or an in)144 374.4 R -.25(va)
+-.4 G(lid).25 E(option is supplied.)144 386.4 Q F2 -.18(re)108 403.2 S
+(ad).18 E F0([)2.5 E F2(\255ers)A F0 2.5(][)C F2<ad61>-2.5 E F1(aname)
+2.5 E F0 2.5(][)C F2<ad64>-2.5 E F1(delim)2.5 E F0 2.5(][)C F2<ad69>-2.5
+E F1(te)2.5 E(xt)-.2 E F0 2.5(][)C F2<ad6e>-2.5 E F1(nc)2.5 E(har)-.15 E
+(s)-.1 E F0 2.5(][)C F2<ad70>-2.5 E F1(pr)2.5 E(ompt)-.45 E F0 2.5(][)C
+F2<ad74>-2.5 E F1(timeout)2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1(fd)2.5 E
+F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E .516(One line is read from the\
+ standard input, or from the \214le descriptor)144 415.2 R F1(fd)3.016 E
+F0 .516(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 427.2 Q
+F2<ad75>2.538 E F0 .038(option, and the \214rst w)2.538 F .038
+(ord is assigned to the \214rst)-.1 F F1(name)2.539 E F0 2.539(,t).18 G
+.039(he second w)-2.539 F .039(ord to the second)-.1 F F1(name)2.539 E
+F0(,).18 E .42(and so on, with lefto)144 439.2 R -.15(ve)-.15 G 2.92(rw)
+.15 G .42(ords and their interv)-3.02 F .42
+(ening separators assigned to the last)-.15 F F1(name)2.92 E F0 5.42(.I)
+.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 451.2 R .54(wer w)-.25
+F .541(ords read from the input stream than names, the remaining names \
+are assigned empty)-.1 F -.25(va)144 463.2 S 2.511(lues. The).25 F .011
+(characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011
+(are used to split the line into w)2.261 F 2.511(ords. The)-.1 F .011
+(backslash character \()2.511 F F2(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89
+(be used to remo)144 475.2 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H
+1.891(pecial meaning for the ne).15 F 1.891
+(xt character read and for line continuation.)-.15 F
+(Options, if supplied, ha)144 487.2 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F2<ad61>144 499.2 Q F1(aname)2.5 E F0 1.05(The w)
+180 511.2 R 1.049
+(ords are assigned to sequential indices of the array v)-.1 F(ariable)
+-.25 E F1(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F
+F1(aname)180.33 523.2 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
+-.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F1(name)2.5 E F0
+(ar)2.5 E(guments are ignored.)-.18 E F2<ad64>144 535.2 Q F1(delim)2.5 E
+F0(The \214rst character of)180 547.2 Q F1(delim)2.5 E F0
+(is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E
+F2<ad65>144 559.2 Q F0 .372
+(If the standard input is coming from a terminal,)25.86 F F2 -.18(re)
+2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E
+-.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218
+(to obtain the line.)180 571.2 R .218
+(Readline uses the current \(or def)5.218 F .218
+(ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
+(acti)180 583.2 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E
+F2<ad69>144 595.2 Q F1(te)2.5 E(xt)-.2 E F0(If)10.78 E F2 -.18(re)2.715
+G(adline).18 E F0 .216(is being used to read the line,)2.715 F F1(te)
+2.716 E(xt)-.2 E F0 .216(is placed into the editing b)2.716 F(uf)-.2 E
+.216(fer before edit-)-.25 F(ing be)180 607.2 Q(gins.)-.15 E F2<ad6e>144
+619.2 Q F1(nc)2.5 E(har)-.15 E(s)-.1 E F2 -.18(re)180 631.2 S(ad).18 E
+F0 1.395(returns after reading)3.895 F F1(nc)3.895 E(har)-.15 E(s)-.1 E
+F0 1.395(characters rather than w)3.895 F 1.394
+(aiting for a complete line of)-.1 F(input.)180 643.2 Q F2<ad70>144
+655.2 Q F1(pr)2.5 E(ompt)-.45 E F0(Display)180 667.2 Q F1(pr)3.66 E
+(ompt)-.45 E F0 1.161(on standard error)3.66 F 3.661(,w)-.4 G 1.161
+(ithout a trailing ne)-3.661 F 1.161(wline, before attempting to read)
+-.25 F(an)180 679.2 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F
+(prompt is displayed only if input is coming from a terminal.)2.5 E F2
+<ad72>144 691.2 Q F0 .544(Backslash does not act as an escape character)
+25.86 F 5.543(.T)-.55 G .543(he backslash is considered to be part of)
+-5.543 F(the line.)180 703.2 Q(In particular)5 E 2.5(,ab)-.4 G
+(ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.)
+-.25 E F2<ad73>144 715.2 Q F0(Silent mode.)26.41 E
+(If input is coming from a terminal, characters are not echoed.)5 E
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(58)190.95 E 0 Cg EP
+%%Page: 59 59
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF<ad74>144 84 Q/F2 10/Times-Italic@0 SF
+(timeout)2.5 E F0(Cause)180 96 Q F1 -.18(re)3.548 G(ad).18 E F0 1.048
+(to time out and return f)3.548 F 1.048
+(ailure if a complete line of input is not read within)-.1 F F2(timeout)
+180 108 Q F0(seconds.)3.497 E F2(timeout)5.997 E F0 .997
+(may be a decimal number with a fractional portion follo)3.497 F(wing)
+-.25 E .576(the decimal point.)180 120 R .576(This option is only ef)
+5.576 F(fecti)-.25 E .876 -.15(ve i)-.25 H(f).15 E F1 -.18(re)3.076 G
+(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .142
+(pipe, or other special \214le; it has no ef)180 132 R .142
+(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.141 E
+F2(timeout)2.641 E F0 .141(is 0,)2.641 F F1 -.18(re)180 144 S(ad).18 E
+F0 .113(returns success if input is a)2.613 F -.25(va)-.2 G .113
+(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .114
+(ailure otherwise.)-2.713 F(The e)180 156 Q
+(xit status is greater than 128 if the timeout is e)-.15 E(xceeded.)-.15
+E F1<ad75>144 168 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
+14.46 E F2(fd)2.5 E F0(.)A .192(If no)144 184.8 R F2(names)3.052 E F0
+.192(are supplied, the line read is assigned to the v)2.962 F(ariable)
+-.25 E/F3 9/Times-Bold@0 SF(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF
+(.)A F0 .191(The return code is zero,)4.691 F 1.343
+(unless end-of-\214le is encountered,)144 196.8 R F1 -.18(re)3.843 G(ad)
+.18 E F0 1.343
+(times out \(in which case the return code is greater than)3.843 F
+(128\), or an in)144 208.8 Q -.25(va)-.4 G
+(lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F1
+<ad75>2.5 E F0(.)A F1 -.18(re)108 225.6 S(adonly).18 E F0([)2.5 E F1
+(\255aA)A(pf)-.25 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E
+F0 2.5(].)C(..])-2.5 E .77(The gi)144 237.6 R -.15(ve)-.25 G(n).15 E F2
+(names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77
+(alues of these)-.25 F F2(names)3.63 E F0 .77
+(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 249.6 R
+1.096(If the)6.096 F F1<ad66>3.596 E F0 1.097
+(option is supplied, the functions corresponding to the)3.596 F F2
+(names)3.597 E F0 1.097(are so)3.597 F(mark)144 261.6 Q 3.334(ed. The)
+-.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
+(ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
+-3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
+-.25 E .537(ables to associati)144 273.6 R .837 -.15(ve a)-.25 H 3.037
+(rrays. If).15 F(no)3.038 E F2(name)3.398 E F0(ar)3.218 E .538
+(guments are gi)-.18 F -.15(ve)-.25 G .538(n, or if the).15 F F1<ad70>
+3.038 E F0 .538(option is supplied, a list)3.038 F .081
+(of all readonly names is printed.)144 285.6 R(The)5.081 E F1<ad70>2.581
+E F0 .08(option causes output to be displayed in a format that may)2.581
+F 1.176(be reused as input.)144 297.6 R 1.176(If a v)6.176 F 1.176
+(ariable name is follo)-.25 F 1.176(wed by =)-.25 F F2(wor)A(d)-.37 E F0
+3.676(,t)C 1.176(he v)-3.676 F 1.177(alue of the v)-.25 F 1.177
+(ariable is set to)-.25 F F2(wor)144 309.6 Q(d)-.37 E F0 6.206(.T)C
+1.206(he return status is 0 unless an in)-6.206 F -.25(va)-.4 G 1.205
+(lid option is encountered, one of the).25 F F2(names)4.065 E F0 1.205
+(is not a)3.975 F -.25(va)144 321.6 S(lid shell v).25 E
+(ariable name, or)-.25 E F1<ad66>2.5 E F0(is supplied with a)2.5 E F2
+(name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 338.4 S
+(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .586
+(Causes a function to e)144 350.4 R .587(xit with the return v)-.15 F
+.587(alue speci\214ed by)-.25 F F2(n)3.087 E F0 5.587(.I).24 G(f)-5.587
+E F2(n)3.447 E F0 .587(is omitted, the return status is)3.327 F 1.335
+(that of the last command e)144 362.4 R -.15(xe)-.15 G 1.335
+(cuted in the function body).15 F 6.335(.I)-.65 G 3.835(fu)-6.335 G
+1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F -.15(exe)
+144 374.4 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\()
+5.794 E F1(sour)A(ce)-.18 E F0 3.294(\)c)C .794
+(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .795
+(cuting that script).15 F .246(and return either)144 386.4 R F2(n)3.106
+E F0 .246(or the e)2.986 F .246(xit status of the last command e)-.15 F
+-.15(xe)-.15 G .246(cuted within the script as the e).15 F .245
+(xit sta-)-.15 F .081(tus of the script.)144 398.4 R .082
+(If used outside a function and not during e)5.082 F -.15(xe)-.15 G .082
+(cution of a script by).15 F F1(.)2.582 E F0 2.582(,t).833 G .082
+(he return sta-)-2.582 F 2.306(tus is f)144 410.4 R 4.806(alse. An)-.1 F
+4.806(yc)-.15 G 2.305(ommand associated with the)-4.806 F F1(RETURN)
+4.805 E F0 2.305(trap is e)4.805 F -.15(xe)-.15 G 2.305(cuted before e)
+.15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.)
+144 422.4 Q F1(set)108 439.2 Q F0([)2.5 E F1
+(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E F2(option)2.5
+E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 451.2 Q F0
+([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option)
+2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 463.2 S
+.835(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
+.836(ariable are displayed in a format that can be)-.25 F .784
+(reused as input for setting or resetting the currently-set v)144 475.2
+R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
+(riables cannot be).25 F 2.946(reset. In)144 487.2 R F2 .447(posix mode)
+2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+(ariables are listed.)-.25 F .447
+(The output is sorted according to the current)5.447 F 3.531
+(locale. When)144 499.2 R 1.031(options are speci\214ed, the)3.531 F
+3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)
+-.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623
+(after option processing are treated as v)144 511.2 R 1.624
+(alues for the positional parameters and are assigned, in)-.25 F(order)
+144 523.2 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
+F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 535.2 Q
+F0 .54(Automatically mark v)29.3 F .539
+(ariables and functions which are modi\214ed or created for e)-.25 F
+.539(xport to)-.15 F(the en)184 547.2 Q
+(vironment of subsequent commands.)-.4 E F1<ad62>144 559.2 Q F0 .131
+(Report the status of terminated background jobs immediately)28.74 F
+2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
+(primary prompt.)184 571.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
+-.25 H(nly when job control is enabled.).15 E F1<ad65>144 583.2 Q F0
+.511(Exit immediately if a)29.86 F F2(pipeline)3.011 E F0 .511
+(\(which may consist of a single)3.011 F F2 .51(simple command)3.01 F F0
+3.01(\), a)B F2(sub-)3.01 E(shell)184 595.2 Q F0 .872
+(command enclosed in parentheses, or one of the commands e)3.372 F -.15
+(xe)-.15 G .872(cuted as part of a).15 F .399
+(command list enclosed by braces \(see)184 607.2 R F3 .399
+(SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15 G 2.899(\)e).15 G
+.399(xits with a non-zero)-3.049 F 3.968(status. The)184 619.2 R 1.468
+(shell does not e)3.968 F 1.468(xit if the command that f)-.15 F 1.468
+(ails is part of the command list)-.1 F .57(immediately follo)184 631.2
+R .57(wing a)-.25 F F1(while)3.07 E F0(or)3.07 E F1(until)3.07 E F0 -.1
+(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .569
+(wing the)-.25 F F1(if)3.069 E F0(or)3.069 E F1(elif)3.069 E F0(reserv)
+184 643.2 Q .544(ed w)-.15 F .544(ords, part of an)-.1 F 3.044(yc)-.15 G
+.544(ommand e)-3.044 F -.15(xe)-.15 G .544(cuted in a).15 F F1(&&)3.044
+E F0(or)3.044 E/F5 10/Symbol SF<efef>3.044 E F0 .544(list e)3.044 F .544
+(xcept the command)-.15 F(follo)184 655.2 Q 1.231(wing the \214nal)-.25
+F F1(&&)3.731 E F0(or)3.731 E F5<efef>3.731 E F0 3.731(,a)C 1.531 -.15
+(ny c)-3.731 H 1.231(ommand in a pipeline b).15 F 1.23
+(ut the last, or if the com-)-.2 F(mand')184 667.2 Q 3.19(sr)-.55 G .69
+(eturn v)-3.19 F .69(alue is being in)-.25 F -.15(ve)-.4 G .69
+(rted with).15 F F1(!)3.191 E F0 5.691(.A)C .691(trap on)-2.5 F F1(ERR)
+3.191 E F0 3.191(,i)C 3.191(fs)-3.191 G .691(et, is e)-3.191 F -.15(xe)
+-.15 G .691(cuted before).15 F .687(the shell e)184 679.2 R 3.186
+(xits. This)-.15 F .686(option applies to the shell en)3.186 F .686
+(vironment and each subshell en)-.4 F(viron-)-.4 E .658
+(ment separately \(see)184 691.2 R F1 .659(COMMAND EXECUTION ENVIR)3.159
+F(ONMENT)-.3 E F0(abo)3.159 E -.15(ve)-.15 G .659(\), and may).15 F
+(cause subshells to e)184 703.2 Q(xit before e)-.15 E -.15(xe)-.15 G
+(cuting all the commands in the subshell.).15 E F1<ad66>144 715.2 Q F0
+(Disable pathname e)30.97 E(xpansion.)-.15 E(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(59)190.95 E 0 Cg EP
+%%Page: 60 60
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF<ad68>144 84 Q F0 2.239
+(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G 2.238
+(re look)-4.738 F 2.238(ed up for e)-.1 F -.15(xe)-.15 G 4.738
+(cution. This).15 F(is)4.738 E(enabled by def)184 96 Q(ault.)-.1 E F1
+<ad6b>144 108 Q F0 .513(All ar)28.74 F .514
+(guments in the form of assignment statements are placed in the en)-.18
+F .514(vironment for a)-.4 F
+(command, not just those that precede the command name.)184 120 Q F1
+<ad6d>144 132 Q F0 .149(Monitor mode.)25.97 F .149
+(Job control is enabled.)5.149 F .148(This option is on by def)5.149 F
+.148(ault for interacti)-.1 F .448 -.15(ve s)-.25 H(hells).15 E .636
+(on systems that support it \(see)184 144 R/F2 9/Times-Bold@0 SF .636
+(JOB CONTR)3.136 F(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136
+(\). Background).15 F .637(processes run in a)3.136 F .642
+(separate process group and a line containing their e)184 156 R .641
+(xit status is printed upon their com-)-.15 F(pletion.)184 168 Q F1
+<ad6e>144 180 Q F0 .652(Read commands b)28.74 F .652(ut do not e)-.2 F
+-.15(xe)-.15 G .652(cute them.).15 F .653
+(This may be used to check a shell script for)5.652 F(syntax errors.)184
+192 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E
+F1<ad6f>144 204 Q/F3 10/Times-Italic@0 SF(option\255name)2.5 E F0(The)
+184 216 Q F3(option\255name)2.5 E F0(can be one of the follo)2.5 E
+(wing:)-.25 E F1(allexport)184 228 Q F0(Same as)224 240 Q F1<ad61>2.5 E
+F0(.)A F1(braceexpand)184 252 Q F0(Same as)224 264 Q F1<ad42>2.5 E F0(.)
+A F1(emacs)184 276 Q F0 .089
+(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
+-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
+(when the shell is interacti)224 288 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E
+F0 2.5(option. This)224 300 R(also af)2.5 E(fects the editing interf)
+-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1
+(errtrace)184 312 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1(functrace)
+184 324 Q F0(Same as)224 336 Q F1<ad54>2.5 E F0(.)A F1(err)184 348 Q
+(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1(hashall)184 360
+Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)184 372 Q F0
+(Same as)224 384 Q F1<ad48>2.5 E F0(.)A F1(history)184 396 Q F0 .587
+(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587
+(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E F2(HIST)3.087 E
+(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF(.)A F0 .587(This option is)
+5.087 F(on by def)224 408 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H
+(hells.).15 E F1(ignor)184 420 Q(eeof)-.18 E F0 1.656(The ef)224 432 R
+1.656(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF
+(IGNOREEOF=10)4.157 E F0 1.657(had been e)4.157 F -.15(xe)-.15 G(cuted)
+.15 E(\(see)224 444 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15
+(ve)-.15 G(\).).15 E F1 -.1(ke)184 456 S(yw).1 E(ord)-.1 E F0(Same as)
+224 468 Q F1<ad6b>2.5 E F0(.)A F1(monitor)184 480 Q F0(Same as)5.56 E F1
+<ad6d>2.5 E F0(.)A F1(noclob)184 492 Q(ber)-.1 E F0(Same as)224 504 Q F1
+<ad43>2.5 E F0(.)A F1(noexec)184 516 Q F0(Same as)11.12 E F1<ad6e>2.5 E
+F0(.)A F1(noglob)184 528 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1
+(nolog)184 540 Q F0(Currently ignored.)16.66 E F1(notify)184 552 Q F0
+(Same as)15 E F1<ad62>2.5 E F0(.)A F1(nounset)184 564 Q F0(Same as)6.66
+E F1<ad75>2.5 E F0(.)A F1(onecmd)184 576 Q F0(Same as)6.67 E F1<ad74>2.5
+E F0(.)A F1(ph)184 588 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E
+F0(.)A F1(pipefail)184 600 Q F0 1.03(If set, the return v)7.77 F 1.029
+(alue of a pipeline is the v)-.25 F 1.029
+(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 612 R
+1.136
+(xit with a non-zero status, or zero if all commands in the pipeline)
+-.15 F -.15(ex)224 624 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 636 Q F0
+2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
+2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
+(fers from the)-.25 F(POSIX standard to match the standard \()224 648 Q
+F3(posix mode)A F0(\).)A F1(pri)184 660 Q(vileged)-.1 E F0(Same as)224
+672 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 684 S(rbose).1 E F0(Same as)
+7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 696 Q F0 1.465
+(Use a vi-style command line editing interf)32.22 F 3.966(ace. This)-.1
+F 1.466(also af)3.966 F 1.466(fects the editing)-.25 F(interf)224 708 Q
+(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A(GNU Bash-4.0)
+72 768 Q(2009 February 7)140.96 E(60)190.95 E 0 Cg EP
+%%Page: 61 61
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(xtrace)184 84 Q F0(Same as)13.35 E F1<ad78>
+2.5 E F0(.)A(If)184 102 Q F1<ad6f>3.053 E F0 .553(is supplied with no)
+3.053 F/F2 10/Times-Italic@0 SF(option\255name)3.053 E F0 3.053(,t)C
+.553(he v)-3.053 F .552(alues of the current options are printed.)-.25 F
+(If)5.552 E F1(+o)184 114 Q F0 1.071(is supplied with no)3.571 F F2
+(option\255name)3.571 E F0 3.571(,as)C 1.071(eries of)-3.571 F F1(set)
+3.572 E F0 1.072(commands to recreate the current)3.572 F
+(option settings is displayed on the standard output.)184 126 Q F1<ad70>
+144 138 Q F0 -.45(Tu)28.74 G 1.072(rn on).45 F F2(privile)4.822 E -.1
+(ge)-.4 G(d).1 E F0 3.572(mode. In)4.342 F 1.072(this mode, the)3.572 F
+/F3 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)
+-.27 E F0 1.071(\214les are not pro-)3.322 F 1.5
+(cessed, shell functions are not inherited from the en)184 150 R 1.501
+(vironment, and the)-.4 F F3(SHELLOPTS)4.001 E/F4 9/Times-Roman@0 SF(,)A
+F1(CDP)184 162 Q -.95(AT)-.74 G(H).95 E F0 5.603(,a)C(nd)-5.603 E F1
+(GLOBIGNORE)5.603 E F0 -.25(va)5.603 G 3.103(riables, if the).25 F 5.603
+(ya)-.15 G 3.103(ppear in the en)-5.603 F 3.103(vironment, are)-.4 F
+2.617(ignored. If)184 174 R .117(the shell is started with the ef)2.617
+F(fecti)-.25 E .418 -.15(ve u)-.25 H .118
+(ser \(group\) id not equal to the real user).15 F 1.018
+(\(group\) id, and the)184 186 R F1<ad70>3.518 E F0 1.018
+(option is not supplied, these actions are tak)3.518 F 1.018
+(en and the ef)-.1 F(fecti)-.25 E -.15(ve)-.25 G .286
+(user id is set to the real user id.)184 198 R .286(If the)5.286 F F1
+<ad70>2.786 E F0 .287(option is supplied at startup, the ef)2.786 F
+(fecti)-.25 E .587 -.15(ve u)-.25 H(ser).15 E .103(id is not reset.)184
+210 R -.45(Tu)5.103 G .102(rning this option of).45 F 2.602(fc)-.25 G
+.102(auses the ef)-2.602 F(fecti)-.25 E .402 -.15(ve u)-.25 H .102
+(ser and group ids to be set to).15 F(the real user and group ids.)184
+222 Q F1<ad74>144 234 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15
+G(cuting one command.).15 E F1<ad75>144 246 Q F0 -.35(Tr)28.74 G .444
+(eat unset v).35 F .444
+(ariables as an error when performing parameter e)-.25 F 2.944
+(xpansion. If)-.15 F -.15(ex)2.945 G .445(pansion is).15 F .52
+(attempted on an unset v)184 258 R .519
+(ariable, the shell prints an error message, and, if not interacti)-.25
+F -.15(ve)-.25 G(,).15 E -.15(ex)184 270 S(its with a non-zero status.)
+.15 E F1<ad76>144 282 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 294 Q F0 .315(After e)29.3 F .315
+(xpanding each)-.15 F F2 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
+2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E
+F1(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 306 R F1
+-.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236
+(xpanded v)-.15 F 1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F0(follo)
+3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 318 Q
+(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
+<ad42>144 330 Q F0 2.578(The shell performs brace e)27.63 F 2.578
+(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
+-.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 342 Q
+(ault.)-.1 E F1<ad43>144 354 Q F0 .214(If set,)27.08 F F1(bash)2.714 E
+F0 .214(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
+2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F
+3.053(tors. This)184 366 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+(rridden when creating output \214les by using the redirection opera-)
+.15 F(tor)184 378 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 390 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on)
+-2.604 F F1(ERR)2.604 E F0 .103
+(is inherited by shell functions, command substitutions, and com-)2.604
+F .838(mands e)184 402 R -.15(xe)-.15 G .838(cuted in a subshell en).15
+F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839
+(trap is normally not inherited in)3.339 F(such cases.)184 414 Q F1
+<ad48>144 426 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532
+(style history substitution.)5.532 F .531(This option is on by def)5.532
+F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 438 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 450 Q F0 1.164
+(If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
+(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.165
+(cuting commands such as).15 F F1(cd)3.665 E F0 2.822
+(that change the current w)184 462 R 2.822(orking directory)-.1 F 7.822
+(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.821
+(ysical directory structure)-.05 F 2.685(instead. By)184 474 R(def)2.685
+E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
+(ws the logical chain of directories when performing com-)-.25 F
+(mands which change the current directory)184 486 Q(.)-.65 E F1<ad54>144
+498 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
+(DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89
+(are inherited by shell functions, command)3.39 F 1.932
+(substitutions, and commands e)184 510 R -.15(xe)-.15 G 1.932
+(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 522 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 534 Q
+F0 .401(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
+(his option, then the positional parameters are unset.)-2.901 F
+(Otherwise,)5.4 E(the positional parameters are set to the)184 546 Q F2
+(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
+(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E F0(.)A F1<ad>144
+558 Q F0 1.944(Signal the end of options, cause all remaining)34.3 F F2
+(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.445(ea)-4.444 G
+1.945(ssigned to the positional)-4.445 F 3.446(parameters. The)184 570 R
+F1<ad78>3.446 E F0(and)3.446 E F1<ad76>3.446 E F0 .945
+(options are turned of)3.446 F 3.445(f. If)-.25 F .945(there are no)
+3.445 F F2(ar)3.445 E(g)-.37 E F0 .945(s, the positional)B
+(parameters remain unchanged.)184 582 Q .425(The options are of)144
+598.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+(ault unless otherwise noted.)-.1 F .425
+(Using + rather than \255 causes these options)5.425 F .178
+(to be turned of)144 610.8 R 2.678(f. The)-.25 F .178
+(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
+-.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066
+(current set of options may be found in)144 622.8 R F1<24ad>2.566 E F0
+5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
+(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F
+(is encountered.)144 634.8 Q F1(shift)108 651.6 Q F0([)2.5 E F2(n)A F0
+(])A .429(The positional parameters from)144 663.6 R F2(n)2.929 E F0
+.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.428 G
+.428(rameters represented by the num-).15 F(bers)144 675.6 Q F1($#)2.582
+E F0(do)2.582 E .082(wn to)-.25 F F1($#)2.582 E F0<ad>A F2(n)A F0 .082
+(+1 are unset.)B F2(n)5.442 E F0 .082(must be a non-ne)2.822 F -.05(ga)
+-.15 G(ti).05 E .383 -.15(ve n)-.25 H .083(umber less than or equal to)
+.15 F F1($#)2.583 E F0 5.083(.I)C(f)-5.083 E F2(n)2.943 E F0 .06
+(is 0, no parameters are changed.)144 687.6 R(If)5.06 E F2(n)2.92 E F0
+.06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
+(If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
+(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 699.6 R
+.144(The return status is greater than zero if)5.143 F F2(n)3.004 E F0
+.144(is greater than)2.884 F F1($#)2.644 E F0
+(or less than zero; otherwise 0.)144 711.6 Q(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(61)190.95 E 0 Cg EP
+%%Page: 62 62
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(shopt)108 84 Q F0([)2.5 E F1(\255pqsu)A F0
+2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 SF(optname)-2.5
+E F0(...])2.5 E -.8(To)144 96 S .222(ggle the v).8 F .222(alues of v)
+-.25 F .222(ariables controlling optional shell beha)-.25 F(vior)-.2 E
+5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1<ad70>2.722
+E F0 .721(option, a list of all settable options is displayed, with an \
+indication of whether or not each is set.)144 108 R(The)144 120 Q F1
+<ad70>2.828 E F0 .327(option causes output to be displayed in a form th\
+at may be reused as input.)2.828 F .327(Other options)5.327 F(ha)144 132
+Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad73>144
+144 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5 E F0(.)A F1<ad75>144
+156 Q F0(Disable \(unset\) each)24.74 E F2(optname)2.5 E F0(.)A F1<ad71>
+144 168 Q F0 .003(Suppresses normal output \(quiet mode\); the return s\
+tatus indicates whether the)24.74 F F2(optname)2.504 E F0(is)2.504 E
+.256(set or unset.)180 180 R .256(If multiple)5.256 F F2(optname)2.756 E
+F0(ar)2.756 E .256(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G
+(ith)-2.756 E F1<ad71>2.756 E F0 2.755(,t)C .255
+(he return status is zero if)-2.755 F(all)180 192 Q F2(optnames)2.5 E F0
+(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 204 Q F0
+(Restricts the v)25.3 E(alues of)-.25 E F2(optname)2.5 E F0
+(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0(option to the)2.5
+E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .127(If either)144 220.8 R F1
+<ad73>2.627 E F0(or)2.627 E F1<ad75>2.627 E F0 .127(is used with no)
+2.627 F F2(optname)2.627 E F0(ar)2.627 E .127
+(guments, the display is limited to those options which)-.18 F 1.024
+(are set or unset, respecti)144 232.8 R -.15(ve)-.25 G(ly).15 E 6.024
+(.U)-.65 G 1.024(nless otherwise noted, the)-6.024 F F1(shopt)3.523 E F0
+1.023(options are disabled \(unset\) by)3.523 F(def)144 244.8 Q(ault.)
+-.1 E 1.544(The return status when listing options is zero if all)144
+261.6 R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)
+4.045 F .696
+(When setting or unsetting options, the return status is zero unless an)
+144 273.6 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695
+(alid shell)-.25 F(option.)144 285.6 Q(The list of)144 302.4 Q F1(shopt)
+2.5 E F0(options is:)2.5 E F1(autocd)144 320.4 Q F0 .199
+(If set, a command name that is the name of a directory is e)11.11 F
+-.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
+(ment to the)184 332.4 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
+F1(cdable_v)144 344.4 Q(ars)-.1 E F0 .156(If set, an ar)184 356.4 R .156
+(gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
+(iltin command that is not a directory is assumed to be the).2 F
+(name of a v)184 368.4 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 380.4 Q F0
+1.055
+(If set, minor errors in the spelling of a directory component in a)
+10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
+(corrected. The)184 392.4 R 1.488(errors check)3.988 F 1.487
+(ed for are transposed characters, a missing character)-.1 F 3.987(,a)
+-.4 G(nd)-3.987 E .552(one character too man)184 404.4 R 4.352 -.65
+(y. I)-.15 H 3.052(fac).65 G .552
+(orrection is found, the corrected \214le name is printed, and)-3.052 F
+(the command proceeds.)184 416.4 Q
+(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
+.15 E F1(checkhash)144 428.4 Q F0 2.08(If set,)184 440.4 R F1(bash)4.58
+E F0 2.079(checks that a command found in the hash table e)4.58 F 2.079
+(xists before trying to)-.15 F -.15(exe)184 452.4 S(cute it.).15 E
+(If a hashed command no longer e)5 E
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 464.4
+Q F0 .448(If set,)184 476.4 R F1(bash)2.948 E F0 .448
+(lists the status of an)2.948 F 2.949(ys)-.15 G .449
+(topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15
+F -.15(ve)-.25 G 3.439(shell. If)184 488.4 R(an)3.439 E 3.439(yj)-.15 G
+.938(obs are running, this causes the e)-3.439 F .938
+(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 1.456
+(attempted without an interv)184 500.4 R 1.456(ening command \(see)-.15
+F F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G
+3.956(\). The).15 F(shell)3.956 E(al)184 512.4 Q -.1(wa)-.1 G
+(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)
+-2.5 E F1(checkwinsize)144 524.4 Q F0 .797(If set,)184 536.4 R F1(bash)
+3.297 E F0 .797(checks the windo)3.297 F 3.297(ws)-.25 G .796
+(ize after each command and, if necessary)-3.297 F 3.296(,u)-.65 G .796
+(pdates the)-3.296 F -.25(va)184 548.4 S(lues of).25 E/F3 9/Times-Bold@0
+SF(LINES)2.5 E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A
+F1(cmdhist)144 560.4 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
+(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202
+(ll lines of a multiple-line command in the same history).15 F(entry)184
+572.4 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 584.4
+Q F0 .42(If set,)184 596.4 R F1(bash)2.92 E F0 .42(changes its beha)2.92
+F .419(vior to that of v)-.2 F .419
+(ersion 3.1 with respect to quoted ar)-.15 F(guments)-.18 E
+(to the conditional command')184 608.4 Q 2.5(s=)-.55 G 2.5(~o)-2.5 G
+(perator)-2.5 E(.)-.55 E F1(dirspell)144 620.4 Q F0 .858(If set,)7.77 F
+F1(bash)3.358 E F0 .858
+(attempts spelling correction on directory names during w)3.358 F .859
+(ord completion if)-.1 F
+(the directory name initially supplied does not e)184 632.4 Q(xist.)-.15
+E F1(dotglob)144 644.4 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
+(includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i)
+-.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
+(xpansion.)-.15 E F1(execfail)144 656.4 Q F0 1.386
+(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H 1.386
+(hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
+1.387(cute the \214le speci\214ed as an).15 F(ar)184 668.4 Q
+(gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
+(An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 680.4 Q
+F0 .717(If set, aliases are e)184 692.4 R .717(xpanded as described abo)
+-.15 F 1.017 -.15(ve u)-.15 H(nder).15 E F3(ALIASES)3.217 E F4(.)A F0
+.716(This option is enabled)5.217 F(by def)184 704.4 Q
+(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E(GNU Bash-4.0)
+72 768 Q(2009 February 7)140.96 E(62)190.95 E 0 Cg EP
+%%Page: 63 63
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(extdeb)144 84 Q(ug)-.2 E F0(If set, beha)
+184 96 Q(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1
+(1.)184 108 Q F0(The)28.5 E F1<ad46>4.25 E F0 1.75(option to the)4.25 F
+F1(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
+(iltin displays the source \214le name and line).2 F
+(number corresponding to each function name supplied as an ar)220 120 Q
+(gument.)-.18 E F1(2.)184 132 Q F0 1.667(If the command run by the)28.5
+F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
+1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 144
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 156 Q F0 .84
+(If the command run by the)28.5 F F1(DEB)3.34 E(UG)-.1 E F0 .841
+(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15
+(exe)220 168 S .488
+(cuting in a subroutine \(a shell function or a shell script e).15 F
+-.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
+(sour)220 180 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
+-.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1 26(4. B)184
+192 R(ASH_ARGC)-.3 E F0(and)3.775 E F1 -.3(BA)3.775 G(SH_ARGV).3 E F0
+1.276(are updated as described in their descrip-)3.775 F(tions abo)220
+204 Q -.15(ve)-.15 G(.).15 E F1(5.)184 216 Q F0 1.359
+(Function tracing is enabled:)28.5 F 1.359
+(command substitution, shell functions, and sub-)6.359 F(shells in)220
+228 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F2 10
+/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
+(DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
+184 240 Q F0 .804(Error tracing is enabled:)28.5 F .805
+(command substitution, shell functions, and subshells)5.804 F(in)220 252
+Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F2
+(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E(OR)-.3 E F0
+(trap.)2.5 E F1(extglob)144 264 Q F0 .4(If set, the e)8.89 F .4
+(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 276 Q
+F0(are enabled.)2.5 E F1(extquote)144 288 Q F0 2.473(If set,)184 300 R
+F1($)4.973 E F0<08>A F2(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
+E F0(")A F2(string)A F0 4.973("q)C 2.473(uoting is performed within)
+-4.973 F F1(${)4.973 E F2(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
+(pansions).15 E(enclosed in double quotes.)184 312 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 324 Q F0
+1.425(If set, patterns which f)7.77 F 1.425
+(ail to match \214lenames during pathname e)-.1 F 1.424
+(xpansion result in an)-.15 F -.15(ex)184 336 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 348 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.585(If set, the suf)184 360 R<8c78>-.25 E .585(es speci\214ed by the)
+-.15 F F1(FIGNORE)3.085 E F0 .585(shell v)3.085 F .585(ariable cause w)
+-.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 372 R .32
+(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
+(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.329
+(pletions. See)184 384 R/F3 9/Times-Bold@0 SF .829(SHELL V)3.329 F
+(ARIABLES)-1.215 E F0(abo)3.079 E 1.129 -.15(ve f)-.15 H .83
+(or a description of).15 F F1(FIGNORE)3.33 E F0 5.83(.T)C .83
+(his option)-5.83 F(is enabled by def)184 396 Q(ault.)-.1 E F1(globstar)
+144 408 Q F0 .44(If set, the pattern)5 F F1(**)2.94 E F0 .44
+(used in a \214lename e)2.94 F .439(xpansion conte)-.15 F .439
+(xt will match a \214les and zero or)-.15 F 1.297
+(more directories and subdirectories.)184 420 R 1.298
+(If the pattern is follo)6.297 F 1.298(wed by a)-.25 F F1(/)3.798 E F0
+3.798(,o)C 1.298(nly directories)-3.798 F(and subdirectories match.)184
+432 Q F1(gnu_errfmt)144 444 Q F0(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 456 Q F1(histappend)144
+468 Q F0 .384
+(If set, the history list is appended to the \214le named by the v)184
+480 R .383(alue of the)-.25 F F1(HISTFILE)2.883 E F0 -.25(va)2.883 G
+(ri-).25 E(able when the shell e)184 492 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 504 Q(eedit)-.18
+E F0 .575(If set, and)184 516 R F1 -.18(re)3.075 G(adline).18 E F0 .575
+(is being used, a user is gi)3.075 F -.15(ve)-.25 G 3.075(nt).15 G .576
+(he opportunity to re-edit a f)-3.075 F .576(ailed his-)-.1 F
+(tory substitution.)184 528 Q F1(histv)144 540 Q(erify)-.1 E F0 .403
+(If set, and)184 552 R F1 -.18(re)2.903 G(adline).18 E F0 .403
+(is being used, the results of history substitution are not immediately)
+2.903 F .661(passed to the shell parser)184 564 R 5.661(.I)-.55 G .662
+(nstead, the resulting line is loaded into the)-5.661 F F1 -.18(re)3.162
+G(adline).18 E F0(editing)3.162 E -.2(bu)184 576 S -.25(ff).2 G(er).25 E
+2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
+(hostcomplete)144 588 Q F0 1.182(If set, and)184 600 R F1 -.18(re)3.682
+G(adline).18 E F0 1.182(is being used,)3.682 F F1(bash)3.682 E F0 1.181
+(will attempt to perform hostname completion)3.681 F 1.38(when a w)184
+612 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E
+F3(READLINE)3.881 E F0(abo)184 624 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 636 Q F0(If set,)
+184 648 Q F1(bash)2.5 E F0(will send)2.5 E F3(SIGHUP)2.5 E F0
+(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
+.15 E(xits.)-.15 E F1(interacti)144 660 Q -.1(ve)-.1 G(_comments).1 E F0
+.33(If set, allo)184 672 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
+(ginning with)-.15 F F1(#)2.83 E F0 .33(to cause that w)2.83 F .33
+(ord and all remaining characters on)-.1 F .967
+(that line to be ignored in an interacti)184 684 R 1.267 -.15(ve s)-.25
+H .967(hell \(see).15 F F3(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
+G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 696 Q
+(ault.)-.1 E F1(lithist)144 708 Q F0 .655(If set, and the)15.55 F F1
+(cmdhist)3.155 E F0 .654(option is enabled, multi-line commands are sa)
+3.154 F -.15(ve)-.2 G 3.154(dt).15 G 3.154(ot)-3.154 G .654(he history)
+-3.154 F(with embedded ne)184 720 Q
+(wlines rather than using semicolon separators where possible.)-.25 E
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(63)190.95 E 0 Cg EP
+%%Page: 64 64
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(login_shell)144 84 Q F0 .486
+(The shell sets this option if it is started as a login shell \(see)184
+96 R/F2 9/Times-Bold@0 SF(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(abo)
+2.737 E -.15(ve)-.15 G 2.987(\). The).15 F -.25(va)184 108 S
+(lue may not be changed.).25 E F1(mailwar)144 120 Q(n)-.15 E F0 .815
+(If set, and a \214le that)184 132 R F1(bash)3.315 E F0 .814
+(is checking for mail has been accessed since the last time it)3.315 F
+-.1(wa)184 144 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+(`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
+(has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
+(no_empty_cmd_completion)144 156 Q F0 .145(If set, and)184 168 R F1 -.18
+(re)2.645 G(adline).18 E F0 .145(is being used,)2.645 F F1(bash)2.646 E
+F0 .146(will not attempt to search the)2.646 F F1 -.74(PA)2.646 G(TH)
+-.21 E F0 .146(for possible)2.646 F
+(completions when completion is attempted on an empty line.)184 180 Q F1
+(nocaseglob)144 192 Q F0 .437(If set,)184 204 R F1(bash)2.937 E F0 .436
+(matches \214lenames in a case\255insensiti)2.937 F .736 -.15(ve f)-.25
+H .436(ashion when performing pathname).05 F -.15(ex)184 216 S
+(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 228 Q F0 1.193(If set,)184
+240 R F1(bash)3.693 E F0 1.194(matches patterns in a case\255insensiti)
+3.693 F 1.494 -.15(ve f)-.25 H 1.194(ashion when performing matching).05
+F(while e)184 252 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
+E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 264 Q F0
+.855(If set,)184 276 R F1(bash)3.355 E F0(allo)3.355 E .855
+(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.354 G .854
+(thname Expansion).1 F F0(abo)3.354 E -.15(ve)-.15 G 3.354(\)t).15 G(o)
+-3.354 E -.15(ex)184 288 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 300 Q(ogcomp)-.18 E F0 .676
+(If set, the programmable completion f)184 312 R .677(acilities \(see)
+-.1 F F1(Pr)3.177 E .677(ogrammable Completion)-.18 F F0(abo)3.177 E
+-.15(ve)-.15 G(\)).15 E(are enabled.)184 324 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 336 Q(omptv)
+-.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 348 R 1.448
+(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic)
+-.15 F -.15(ex)184 360 S .17(pansion, and quote remo).15 F -.25(va)-.15
+G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
+-.15 F F2(PR)2.671 E(OMPTING)-.27 E F0(abo)2.421 E -.15(ve)-.15 G(.).15
+E(This option is enabled by def)184 372 Q(ault.)-.1 E F1 -.18(re)144 384
+S(stricted_shell).18 E F0 1.069
+(The shell sets this option if it is started in restricted mode \(see)
+184 396 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 408 Q 4.178
+(w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F
+1.678(This is not reset when the startup \214les are)6.678 F -.15(exe)
+184 420 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
+-.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
+F1(shift_v)144 432 Q(erbose)-.1 E F0 .502(If set, the)184 444 R F1
+(shift)3.002 E F0 -.2(bu)3.002 G .501
+(iltin prints an error message when the shift count e).2 F .501
+(xceeds the number)-.15 F(of positional parameters.)184 456 Q F1(sour)
+144 468 Q(cepath)-.18 E F0 .77(If set, the)184 480 R F1(sour)3.27 E(ce)
+-.18 E F0(\()3.27 E F1(.)A F0 3.27(\)b)C .77(uiltin uses the v)-3.47 F
+.771(alue of)-.25 F F2 -.666(PA)3.271 G(TH)-.189 E F0 .771
+(to \214nd the directory containing the)3.021 F
+(\214le supplied as an ar)184 492 Q 2.5(gument. This)-.18 F
+(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 504 Q F0
+(If set, the)184 516 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
+(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
+108 528 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 540 R -.15
+(xe)-.15 G 1.002(cution of this shell until it recei).15 F -.15(ve)-.25
+G 3.501(sa).15 G F2(SIGCONT)A F0 3.501(signal. A)3.251 F 1.001
+(login shell cannot be)3.501 F .022(suspended; the)144 552 R F1<ad66>
+2.522 E F0 .022(option can be used to o)2.522 F -.15(ve)-.15 G .022
+(rride this and force the suspension.).15 F .023(The return status is)
+5.023 F 2.5(0u)144 564 S(nless the shell is a login shell and)-2.5 E F1
+<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5 E
+F1(test)108 576 Q F3 -.2(ex)2.5 G(pr).2 E F1([)108 588 Q F3 -.2(ex)2.5 G
+(pr).2 E F1(])2.5 E F0 1.15
+(Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15
+(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G
+(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.187
+(operator and operand must be a separate ar)144 600 R 3.688
+(gument. Expressions)-.18 F 1.188(are composed of the primaries)3.688 F
+1.89(described abo)144 612 R 2.19 -.15(ve u)-.15 H(nder).15 E F2
+(CONDITION)4.39 E 1.89(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
+F1(test)6.39 E F0 1.889(does not accept an)4.389 F 4.389(yo)-.15 G 1.889
+(ptions, nor)-4.389 F(does it accept and ignore an ar)144 624 Q
+(gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
+E .785(Expressions may be combined using the follo)144 642 R .786
+(wing operators, listed in decreasing order of prece-)-.25 F 2.5
+(dence. The)144 654 R -.25(eva)2.5 G
+(luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65
+(w.)-.25 G F1(!)144 666 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
+(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()
+144 678 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
+F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
+(his may be used to o)-5.26 F -.15(ve)-.15 G .26
+(rride the normal precedence of opera-).15 F(tors.)180 690 Q F3 -.2(ex)
+144 702 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35
+(Tr)180 714 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3
+-.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(64)190.95 E 0 Cg EP
+%%Page: 65 65
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Italic@0 SF -.2(ex)144 84 S(pr1).2 E F0<ad>2.5 E/F2
+10/Times-Bold@0 SF(o)A F1 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 96 S
+(ue if either).35 E F1 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F1 -.2(ex)2.5 G
+(pr2).2 E F0(is true.)2.52 E F2(test)144 112.8 Q F0(and)2.5 E F2([)2.5 E
+F0 -.25(eva)2.5 G(luate conditional e).25 E
+(xpressions using a set of rules based on the number of ar)-.15 E
+(guments.)-.18 E 2.5(0a)144 130.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 142.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 154.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 166.8 Q
+(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
+E 2.5(2a)144 178.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 190.8 R .37(gument is)-.18 F F2(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
+F .37(xpression is true if and only if the second ar)-.15 F .37
+(gument is null.)-.18 F .38(If the \214rst ar)180 202.8 R .38
+(gument is one of the unary conditional operators listed abo)-.18 F .679
+-.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.879 E(TION)180
+214.8 Q .552(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
+(the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F
+.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 226.8 Q
+(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 238.8 S -.18(rg)-2.5 G
+(uments).18 E .024(If the second ar)180 250.8 R .023
+(gument is one of the binary conditional operators listed abo)-.18 F
+.323 -.15(ve u)-.15 H(nder).15 E F3(CON-)2.523 E(DITION)180 262.8 Q
+1.477(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
+1.477(xpression is the result of the binary test)-.15 F .513
+(using the \214rst and third ar)180 274.8 R .513(guments as operands.)
+-.18 F(The)5.513 E F2<ad61>3.013 E F0(and)3.013 E F2<ad6f>3.013 E F0
+.512(operators are considered)3.013 F .972
+(binary operators when there are three ar)180 286.8 R 3.472(guments. If)
+-.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F2(!)3.472 E F0
+3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .884(the ne)180 298.8
+R -.05(ga)-.15 G .884(tion of the tw).05 F(o-ar)-.1 E .884
+(gument test using the second and third ar)-.18 F 3.383(guments. If)-.18
+F .883(the \214rst)3.383 F(ar)180 310.8 Q .874(gument is e)-.18 F
+(xactly)-.15 E F2(\()3.374 E F0 .875(and the third ar)3.374 F .875
+(gument is e)-.18 F(xactly)-.15 E F2(\))3.375 E F0 3.375(,t)C .875
+(he result is the one-ar)-3.375 F(gument)-.18 E(test of the second ar)
+180 322.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
+-.15 E(alse.)-.1 E 2.5(4a)144 334.8 S -.18(rg)-2.5 G(uments).18 E .385
+(If the \214rst ar)180 346.8 R .385(gument is)-.18 F F2(!)2.885 E F0
+2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .384
+(tion of the three-ar).05 F .384(gument e)-.18 F .384(xpression com-)
+-.15 F 1.647(posed of the remaining ar)180 358.8 R 4.147
+(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.648
+(xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
+(according to precedence using the rules listed abo)180 370.8 Q -.15(ve)
+-.15 G(.).15 E 2.5(5o)144 382.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
+-.18 E 1.635(The e)180 394.8 R 1.635(xpression is parsed and e)-.15 F
+-.25(va)-.25 G 1.635
+(luated according to precedence using the rules listed).25 F(abo)180
+406.8 Q -.15(ve)-.15 G(.).15 E F2(times)108 423.6 Q F0 1.229(Print the \
+accumulated user and system times for the shell and for processes run f\
+rom the shell.)13.23 F(The return status is 0.)144 435.6 Q F2(trap)108
+452.4 Q F0([)2.5 E F2(\255lp)A F0 2.5(][)C([)-2.5 E F1(ar)A(g)-.37 E F0
+(])A F1(sigspec)2.5 E F0(...])2.5 E .703(The command)144 464.4 R F1(ar)
+3.533 E(g)-.37 E F0 .703(is to be read and e)3.423 F -.15(xe)-.15 G .702
+(cuted when the shell recei).15 F -.15(ve)-.25 G 3.202(ss).15 G
+(ignal\(s\))-3.202 E F1(sigspec)3.202 E F0 5.702(.I).31 G(f)-5.702 E F1
+(ar)3.532 E(g)-.37 E F0(is)3.422 E .608(absent \(and there is a single)
+144 476.4 R F1(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F2<ad>3.108 E
+F0 3.108(,e)C .608
+(ach speci\214ed signal is reset to its original disposition)-3.108 F
+.659(\(the v)144 488.4 R .659(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F1(ar)3.488 E(g)-.37 E F0 .658
+(is the null string the signal speci\214ed by each)3.378 F F1(sigspec)
+144.34 500.4 Q F0 .58(is ignored by the shell and by the commands it in)
+3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F1(ar)3.411 E(g)-.37 E
+F0 .581(is not present and)3.301 F F2<ad70>3.081 E F0(has)3.081 E 1.215
+(been supplied, then the trap commands associated with each)144 512.4 R
+F1(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214
+F(gu-)-.18 E .86(ments are supplied or if only)144 524.4 R F2<ad70>3.36
+E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F2(trap)3.36 E F0 .86
+(prints the list of commands associated with each)3.36 F 2.83
+(signal. The)144 536.4 R F2<ad6c>2.83 E F0 .33(option causes the shell \
+to print a list of signal names and their corresponding num-)2.83 F 4.31
+(bers. Each)144 548.4 R F1(sigspec)4.65 E F0 1.811
+(is either a signal name de\214ned in <)4.62 F F1(signal.h)A F0 1.811
+(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E .745
+(names are case insensiti)144 560.4 R 1.045 -.15(ve a)-.25 H .745
+(nd the SIG pre\214x is optional.).15 F .745(If a)5.745 F F1(sigspec)
+3.585 E F0(is)3.555 E F3(EXIT)3.245 E F0 .745(\(0\) the command)2.995 F
+F1(ar)144.33 572.4 Q(g)-.37 E F0 1.629(is e)4.349 F -.15(xe)-.15 G 1.629
+(cuted on e).15 F 1.63(xit from the shell.)-.15 F 1.63(If a)6.63 F F1
+(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)-.09 E F4(,)A F0 1.63
+(the command)3.88 F F1(ar)4.46 E(g)-.37 E F0 1.63(is e)4.35 F -.15(xe)
+-.15 G(cuted).15 E 1.207(before e)144 584.4 R -.15(ve)-.25 G(ry).15 E F1
+1.207(simple command)3.707 F F0(,)A F1(for)3.707 E F0(command,)3.706 E
+F1(case)3.706 E F0(command,)3.706 E F1(select)3.706 E F0 1.206
+(command, e)3.706 F -.15(ve)-.25 G 1.206(ry arithmetic).15 F F1(for)144
+596.4 Q F0 .412(command, and before the \214rst command e)2.912 F -.15
+(xe)-.15 G .412(cutes in a shell function \(see).15 F F3 .413
+(SHELL GRAMMAR)2.912 F F0(abo)144 608.4 Q -.15(ve)-.15 G 2.666
+(\). Refer).15 F .166(to the description of the)2.666 F F2(extdeb)2.666
+E(ug)-.2 E F0 .166(option to the)2.666 F F2(shopt)2.666 E F0 -.2(bu)
+2.666 G .166(iltin for details of its ef).2 F(fect)-.25 E .508(on the)
+144 620.4 R F2(DEB)3.008 E(UG)-.1 E F0 3.008(trap. If)3.008 F(a)3.008 E
+F1(sigspec)3.348 E F0(is)3.318 E F3(ERR)3.008 E F4(,)A F0 .508
+(the command)2.758 F F1(ar)3.338 E(g)-.37 E F0 .509(is e)3.228 F -.15
+(xe)-.15 G .509(cuted whene).15 F -.15(ve)-.25 G 3.009(ras).15 G .509
+(imple com-)-3.009 F 2.506(mand has a non\255zero e)144 632.4 R 2.506
+(xit status, subject to the follo)-.15 F 2.506(wing conditions.)-.25 F
+(The)7.506 E F3(ERR)5.006 E F0 2.506(trap is not)4.756 F -.15(exe)144
+644.4 S .105(cuted if the f).15 F .105
+(ailed command is part of the command list immediately follo)-.1 F .105
+(wing a)-.25 F F2(while)2.605 E F0(or)2.605 E F2(until)2.605 E F0 -.1
+(ke)144 656.4 S(yw)-.05 E .549(ord, part of the test in an)-.1 F F1(if)
+3.059 E F0 .549(statement, part of a command e)5.009 F -.15(xe)-.15 G
+.549(cuted in a).15 F F2(&&)3.049 E F0(or)3.049 E/F5 10/Symbol SF<efef>
+3.049 E F0 .549(list, or if)3.049 F .577(the command')144 668.4 R 3.077
+(sr)-.55 G .577(eturn v)-3.077 F .577(alue is being in)-.25 F -.15(ve)
+-.4 G .577(rted via).15 F F2(!)3.077 E F0 5.578(.T)C .578
+(hese are the same conditions obe)-5.578 F .578(yed by the)-.15 F F2
+(err)144 680.4 Q(exit)-.18 E F0 3.031(option. If)3.031 F(a)3.031 E F1
+(sigspec)3.371 E F0(is)3.341 E F3(RETURN)3.031 E F4(,)A F0 .531
+(the command)2.781 F F1(ar)3.361 E(g)-.37 E F0 .531(is e)3.251 F -.15
+(xe)-.15 G .53(cuted each time a shell function).15 F .316
+(or a script e)144 692.4 R -.15(xe)-.15 G .317(cuted with the).15 F F2
+(.)2.817 E F0(or)2.817 E F2(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G
+.317(iltins \214nishes e).2 F -.15(xe)-.15 G 2.817(cuting. Signals).15 F
+.317(ignored upon entry to)2.817 F .787
+(the shell cannot be trapped or reset.)144 704.4 R -.35(Tr)5.787 G .787
+(apped signals that are not being ignored are reset to their).35 F 1.1
+(original v)144 716.4 R 1.1
+(alues in a child process when it is created.)-.25 F 1.1
+(The return status is f)6.1 F 1.1(alse if an)-.1 F(y)-.15 E F1(sigspec)
+3.94 E F0(is)3.91 E(in)144 728.4 Q -.25(va)-.4 G(lid; otherwise).25 E F2
+(trap)2.5 E F0(returns true.)2.5 E(GNU Bash-4.0)72 768 Q
+(2009 February 7)140.96 E(65)190.95 E 0 Cg EP
+%%Page: 66 66
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(type)108 84 Q F0([)2.5 E F1(\255aftpP)A F0
+(])A/F2 10/Times-Italic@0 SF(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5
+E -.4(Wi)144 96 S .174(th no options, indicate ho).4 F 2.674(we)-.25 G
+(ach)-2.674 E F2(name)3.034 E F0 -.1(wo)2.854 G .173
+(uld be interpreted if used as a command name.).1 F .173(If the)5.173 F
+F1<ad74>144 108 Q F0 .842(option is used,)3.342 F F1(type)3.342 E F0
+.843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E
+F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0
+(,).24 E F2 -.2(bu)3.343 G(iltin).2 E F0 3.343(,o).24 G(r)-3.343 E F2
+(\214le)5.253 E F0(if)3.523 E F2(name)144.36 120 Q F0 .087
+(is an alias, shell reserv)2.767 F .087(ed w)-.15 F .087
+(ord, function, b)-.1 F .086(uiltin, or disk \214le, respecti)-.2 F -.15
+(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F2
+(name)2.946 E F0 .086(is not)2.766 F .118
+(found, then nothing is printed, and an e)144 132 R .118
+(xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F
+F1<ad70>2.619 E F0 .119(option is used,)2.619 F F1(type)2.619 E F0 .855
+(either returns the name of the disk \214le that w)144 144 R .855
+(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
+.855(were speci\214ed as a com-)3.535 F .64(mand name, or nothing if)144
+156 R/F3 10/Courier@0 SF .64(type -t name)3.14 F F0 -.1(wo)3.14 G .641
+(uld not return).1 F F2(\214le)3.141 E F0 5.641(.T).18 G(he)-5.641 E F1
+<ad50>3.141 E F0 .641(option forces a)3.141 F/F4 9/Times-Bold@0 SF -.666
+(PA)3.141 G(TH)-.189 E F0 .113(search for each)144 168 R F2(name)2.613 E
+F0 2.613(,e)C -.15(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F3 .113
+(type -t name)2.613 F F0 -.1(wo)2.613 G .113(uld not return).1 F F2
+(\214le)2.613 E F0 5.113(.I).18 G 2.613(fa)-5.113 G .112
+(command is hashed,)-.001 F F1<ad70>2.612 E F0(and)144 180 Q F1<ad50>
+2.944 E F0 .444(print the hashed v)2.944 F .444
+(alue, not necessarily the \214le that appears \214rst in)-.25 F F4
+-.666(PA)2.945 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .445(If the)
+4.945 F F1<ad61>2.945 E F0(option)2.945 E .265(is used,)144 192 R F1
+(type)2.765 E F0 .265(prints all of the places that contain an e)2.765 F
+-.15(xe)-.15 G .265(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18
+G .265(his includes aliases)-5.265 F .426
+(and functions, if and only if the)144 204 R F1<ad70>2.926 E F0 .426
+(option is not also used.)2.926 F .427
+(The table of hashed commands is not)5.426 F .549(consulted when using)
+144 216 R F1<ad61>3.049 E F0 5.549(.T)C(he)-5.549 E F1<ad66>3.049 E F0
+.548(option suppresses shell function lookup, as with the)3.049 F F1
+(command)3.048 E F0 -.2(bu)144 228 S(iltin.).2 E F1(type)5 E F0
+(returns true if all of the ar)2.5 E(guments are found, f)-.18 E
+(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 244.8
+Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2
+(limit)A F0(]])A(Pro)144 256.8 Q .243(vides control o)-.15 F -.15(ve)
+-.15 G 2.743(rt).15 G .243(he resources a)-2.743 F -.25(va)-.2 G .244
+(ilable to the shell and to processes started by it, on systems).25 F
+.944(that allo)144 268.8 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
+(The)5.944 E F1<ad48>3.444 E F0(and)3.444 E F1<ad53>3.444 E F0 .943
+(options specify that the hard or soft limit is set for the)3.444 F(gi)
+144 280.8 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
+(hard limit cannot be increased by a non-root user once it is set; a so\
+ft limit may)2.708 F .426(be increased up to the v)144 292.8 R .426
+(alue of the hard limit.)-.25 F .425(If neither)5.426 F F1<ad48>2.925 E
+F0(nor)2.925 E F1<ad53>2.925 E F0 .425
+(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
+304.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
+(can be a number in the unit speci\214ed for the resource or one)3.319 F
+.742(of the special v)144 316.8 R(alues)-.25 E F1(hard)3.242 E F0(,)A F1
+(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
+C .741(hich stand for the current hard limit, the current)-3.241 F .78
+(soft limit, and no limit, respecti)144 328.8 R -.15(ve)-.25 G(ly).15 E
+5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
+(is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
+F .499(resource is printed, unless the)144 340.8 R F1<ad48>2.999 E F0
+.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .498
+(more than one resource is speci\214ed, the)2.999 F
+(limit name and unit are printed before the v)144 352.8 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1
+<ad61>144 364.8 Q F0(All current limits are reported)25.3 E F1<ad62>144
+376.8 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E
+F1<ad63>144 388.8 Q F0(The maximum size of core \214les created)25.86 E
+F1<ad64>144 400.8 Q F0(The maximum size of a process')24.74 E 2.5(sd)
+-.55 G(ata se)-2.5 E(gment)-.15 E F1<ad65>144 412.8 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 424.8 Q
+F0(The maximum size of \214les written by the shell and its children)
+26.97 E F1<ad69>144 436.8 Q F0(The maximum number of pending signals)
+27.52 E F1<ad6c>144 448.8 Q F0(The maximum size that may be lock)27.52 E
+(ed into memory)-.1 E F1<ad6d>144 460.8 Q F0
+(The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G
+(ystems do not honor this limit\))-2.5 E F1<ad6e>144 472.8 Q F0 .791(Th\
+e maximum number of open \214le descriptors \(most systems do not allo)
+24.74 F 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F
+(be set\))180 484.8 Q F1<ad70>144 496.8 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
+<ad71>144 508.8 Q F0
+(The maximum number of bytes in POSIX message queues)24.74 E F1<ad72>144
+520.8 Q F0(The maximum real-time scheduling priority)25.86 E F1<ad73>144
+532.8 Q F0(The maximum stack size)26.41 E F1<ad74>144 544.8 Q F0
+(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144 556.8 Q
+F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
+(ilable to a single user).25 E F1<ad76>144 568.8 Q F0
+(The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
+(ilable to the shell).25 E F1<ad78>144 580.8 Q F0
+(The maximum number of \214le locks)25.3 E F1<ad54>144 592.8 Q F0
+(The maximum number of threads)23.63 E(If)144 609.6 Q F2(limit)2.933 E
+F0 .343(is gi)3.523 F -.15(ve)-.25 G .343(n, it is the ne).15 F 2.843
+(wv)-.25 G .343(alue of the speci\214ed resource \(the)-3.093 F F1<ad61>
+2.843 E F0 .343(option is display only\).)2.843 F .343(If no)5.343 F
+.175(option is gi)144 621.6 R -.15(ve)-.25 G .175(n, then).15 F F1<ad66>
+2.675 E F0 .175(is assumed.)2.675 F -1.11(Va)5.175 G .175
+(lues are in 1024-byte increments, e)1.11 F .176(xcept for)-.15 F F1
+<ad74>2.676 E F0 2.676(,w)C .176(hich is in)-2.676 F(seconds,)144 633.6
+Q F1<ad70>2.516 E F0 2.516(,w)C .016
+(hich is in units of 512-byte blocks, and)-2.516 F F1<ad54>2.516 E F0(,)
+A F1<ad62>2.515 E F0(,)A F1<ad6e>2.515 E F0 2.515(,a)C(nd)-2.515 E F1
+<ad75>2.515 E F0 2.515(,w)C .015(hich are unscaled v)-2.515 F(al-)-.25 E
+3.787(ues. The)144 645.6 R 1.287(return status is 0 unless an in)3.787 F
+-.25(va)-.4 G 1.287(lid option or ar).25 F 1.287
+(gument is supplied, or an error occurs)-.18 F(while setting a ne)144
+657.6 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 674.4 Q F0([)2.5 E F1
+<ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0 2.5(][)C F2(mode)-2.5 E F0(])A .2
+(The user \214le-creation mask is set to)144 686.4 R F2(mode)2.7 E F0
+5.2(.I).18 G(f)-5.2 E F2(mode)3.08 E F0(be)2.88 E .2
+(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
+therwise it is interpreted as a symbolic mode mask similar to that acce\
+pted by)144 698.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+710.4 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382
+(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
+(option causes the mask to be)2.882 F .547
+(printed in symbolic form; the def)144 722.4 R .547
+(ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
+(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(66)190.95 E 0 Cg EP
+%%Page: 67 67
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Italic@0 SF(mode)144.38 84 Q F0 .552
+(is omitted, the output is in a form that may be reused as input.)3.232
+F .551(The return status is 0 if the)5.551 F(mode w)144 96 Q
+(as successfully changed or if no)-.1 E F1(mode)2.5 E F0(ar)2.5 E
+(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E/F2 10
+/Times-Bold@0 SF(unalias)108 112.8 Q F0<5bad>2.5 E F2(a)A F0 2.5(][)C F1
+(name)-2.5 E F0(...])2.5 E(Remo)144 124.8 Q 1.955 -.15(ve e)-.15 H(ach)
+.15 E F1(name)4.155 E F0 1.655(from the list of de\214ned aliases.)4.155
+F(If)6.655 E F2<ad61>4.155 E F0 1.655
+(is supplied, all alias de\214nitions are)4.155 F(remo)144 136.8 Q -.15
+(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+(alue is true unless a supplied)-.25 E F1(name)2.86 E F0
+(is not a de\214ned alias.)2.68 E F2(unset)108 153.6 Q F0<5bad>2.5 E F2
+(fv)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E -.15(Fo)144 165.6 S 3.107
+(re).15 G(ach)-3.107 E F1(name)3.107 E F0 3.107(,r).18 G(emo)-3.107 E
+.907 -.15(ve t)-.15 H .607(he corresponding v).15 F .607
+(ariable or function.)-.25 F .606(If no options are supplied, or the)
+5.607 F F2<ad76>144 177.6 Q F0 .304(option is gi)2.804 F -.15(ve)-.25 G
+.304(n, each).15 F F1(name)3.164 E F0 .305(refers to a shell v)2.985 F
+2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .305
+(riables may not be unset.).25 F(If)5.305 E F2<ad66>144 189.6 Q F0 .46
+(is speci\214ed, each)2.96 F F1(name)3.32 E F0 .459
+(refers to a shell function, and the function de\214nition is remo)3.14
+F -.15(ve)-.15 G 2.959(d. Each).15 F .902(unset v)144 201.6 R .902
+(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.402(df).15 G .902
+(rom the en)-3.402 F .903(vironment passed to subsequent commands.)-.4 F
+(If)5.903 E(an)144 213.6 Q 4.285(yo)-.15 G(f)-4.285 E/F3 9/Times-Bold@0
+SF(RANDOM)4.285 E/F4 9/Times-Roman@0 SF(,)A F3(SECONDS)4.035 E F4(,)A F3
+(LINENO)4.035 E F4(,)A F3(HISTCMD)4.035 E F4(,)A F3(FUNCN)4.035 E(AME)
+-.18 E F4(,)A F3(GR)4.035 E(OUPS)-.27 E F4(,)A F0(or)4.035 E F3(DIRST)
+4.284 E -.495(AC)-.81 G(K).495 E F0(are)4.034 E .328(unset, the)144
+225.6 R 2.828(yl)-.15 G .328(ose their special properties, e)-2.828 F
+-.15(ve)-.25 G 2.828(ni).15 G 2.828(ft)-2.828 G(he)-2.828 E 2.828(ya)
+-.15 G .328(re subsequently reset.)-2.828 F .328(The e)5.328 F .329
+(xit status is true)-.15 F(unless a)144 237.6 Q F1(name)2.86 E F0
+(is readonly)2.68 E(.)-.65 E F2(wait)108 254.4 Q F0([)2.5 E F1 2.5(n.)C
+(..)-2.5 E F0(])A -.8(Wa)144 266.4 S .288
+(it for each speci\214ed process and return its termination status.).8 F
+(Each)5.288 E F1(n)3.148 E F0 .287(may be a process ID or a)3.028 F .722
+(job speci\214cation; if a job spec is gi)144 278.4 R -.15(ve)-.25 G
+.722(n, all processes in that job').15 F 3.222(sp)-.55 G .722
+(ipeline are w)-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E
+F1(n)3.583 E F0(is)3.463 E 1.266(not gi)144 290.4 R -.15(ve)-.25 G 1.266
+(n, all currently acti).15 F 1.566 -.15(ve c)-.25 H 1.265
+(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.265
+(nd the return status is zero.)-3.765 F(If)6.265 E F1(n)4.125 E F0 .456
+(speci\214es a non-e)144 302.4 R .457
+(xistent process or job, the return status is 127.)-.15 F .457
+(Otherwise, the return status is the)5.457 F -.15(ex)144 314.4 S
+(it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E
+/F5 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 331.2 Q F0(If)108 343.2 Q
+F2(bash)4.397 E F0 1.897(is started with the name)4.397 F F2(rbash)4.397
+E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F2<ad72>4.397 E F0 1.896
+(option is supplied at in)4.397 F -.2(vo)-.4 G 1.896
+(cation, the shell becomes).2 F 3.445(restricted. A)108 355.2 R .945
+(restricted shell is used to set up an en)3.445 F .946
+(vironment more controlled than the standard shell.)-.4 F(It)5.946 E
+(beha)108 367.2 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F2
+(bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E
+(wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108 384
+S(hanging directories with)-32.5 E F2(cd)2.5 E F0 32.5<8373>108 400.8 S
+(etting or unsetting the v)-32.5 E(alues of)-.25 E F2(SHELL)2.5 E F0(,)A
+F2 -.74(PA)2.5 G(TH)-.21 E F0(,)A F2(ENV)2.5 E F0 2.5(,o)C(r)-2.5 E F2
+-.3(BA)2.5 G(SH_ENV).3 E F0 32.5<8373>108 417.6 S
+(pecifying command names containing)-32.5 E F2(/)2.5 E F0 32.5<8373>108
+434.4 S(pecifying a \214le name containing a)-32.5 E F2(/)2.5 E F0
+(as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F0 -.2(bu)5 G
+(iltin command).2 E 32.5<8353>108 451.2 S .351
+(pecifying a \214lename containing a slash as an ar)-32.5 F .351
+(gument to the)-.18 F F2<ad70>2.851 E F0 .351(option to the)2.851 F F2
+(hash)2.851 E F0 -.2(bu)2.851 G .351(iltin com-).2 F(mand)144 463.2 Q
+32.5<8369>108 480 S(mporting function de\214nitions from the shell en)
+-32.5 E(vironment at startup)-.4 E 32.5<8370>108 496.8 S(arsing the v)
+-32.5 E(alue of)-.25 E F2(SHELLOPTS)2.5 E F0(from the shell en)2.5 E
+(vironment at startup)-.4 E 32.5<8372>108 513.6 S(edirecting output usi\
+ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5
+<8375>108 530.4 S(sing the)-32.5 E F2(exec)2.5 E F0 -.2(bu)2.5 G
+(iltin command to replace the shell with another command).2 E 32.5<8361>
+108 547.2 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E
+F2<ad66>2.5 E F0(and)2.5 E F2<ad64>2.5 E F0(options to the)2.5 E F2
+(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8355>108 564 S
+(sing the)-32.5 E F2(enable)2.5 E F0 -.2(bu)2.5 G
+(iltin command to enable disabled shell b).2 E(uiltins)-.2 E 32.5<8373>
+108 580.8 S(pecifying the)-32.5 E F2<ad70>2.5 E F0(option to the)2.5 E
+F2(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8374>108 597.6
+S(urning of)-32.5 E 2.5(fr)-.25 G(estricted mode with)-2.5 E F2(set +r)
+2.5 E F0(or)2.5 E F2(set +o r)2.5 E(estricted)-.18 E F0(.)A
+(These restrictions are enforced after an)108 614.4 Q 2.5(ys)-.15 G
+(tartup \214les are read.)-2.5 E 1.566
+(When a command that is found to be a shell script is e)108 631.2 R -.15
+(xe)-.15 G 1.567(cuted \(see).15 F F3 1.567(COMMAND EXECUTION)4.067 F F0
+(abo)3.817 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 643.2 Q F0(turns of)
+2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H(estrictions in the shell spa).15
+E(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E F5(SEE ALSO)72
+660 Q F1(Bash Refer)108 672 Q(ence Manual)-.37 E F0 2.5(,B)C(rian F)-2.5
+E(ox and Chet Rame)-.15 E(y)-.15 E F1(The Gnu Readline Libr)108 684 Q
+(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E
+F1(The Gnu History Libr)108 696 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E(GNU Bash-4.0)72 768 Q(2009 February 7)
+140.96 E(67)190.95 E 0 Cg EP
+%%Page: 68 68
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Italic@0 SF -.8(Po)108 84 S(rtable Oper).8 E
+(ating System Interface \(POSIX\) P)-.15 E(art 2: Shell and Utilities)
+-.8 E F0 2.5(,I)C(EEE)-2.5 E F1(sh)108 96 Q F0(\(1\),)A F1(ksh)2.5 E F0
+(\(1\),)A F1(csh)2.5 E F0(\(1\))A F1(emacs)108 108 Q F0(\(1\),)A F1(vi)
+2.5 E F0(\(1\))A F1 -.37(re)108 120 S(adline).37 E F0(\(3\))A/F2 10.95
+/Times-Bold@0 SF(FILES)72 136.8 Q F1(/bin/bash)109.666 148.8 Q F0(The)
+144 160.8 Q/F3 10/Times-Bold@0 SF(bash)2.5 E F0 -.15(exe)2.5 G(cutable)
+.15 E F1(/etc/pr)109.666 172.8 Q(o\214le)-.45 E F0
+(The systemwide initialization \214le, e)144 184.8 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F1(~/.bash_pr)109.666 196.8 Q(o\214le)-.45
+E F0(The personal initialization \214le, e)144 208.8 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F1(~/.bashr)109.666 220.8 Q(c)-.37 E F0
+(The indi)144 232.8 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G
+(-shell startup \214le).15 E F1(~/.bash_lo)109.666 244.8 Q(gout)-.1 E F0
+(The indi)144 256.8 Q(vidual login shell cleanup \214le, e)-.25 E -.15
+(xe)-.15 G(cuted when a login shell e).15 E(xits)-.15 E F1(~/.inputr)
+109.666 268.8 Q(c)-.37 E F0(Indi)144 280.8 Q(vidual)-.25 E F1 -.37(re)
+2.5 G(adline).37 E F0(initialization \214le)2.5 E F2 -.548(AU)72 297.6 S
+(THORS).548 E F0(Brian F)108 309.6 Q(ox, Free Softw)-.15 E(are F)-.1 E
+(oundation)-.15 E(bfox@gnu.or)108 321.6 Q(g)-.18 E(Chet Rame)108 338.4 Q
+1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)
+-2.5 E -.15(ve)-.25 G(rsity).15 E(chet.rame)108 350.4 Q(y@case.edu)-.15
+E F2 -.11(BU)72 367.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .568
+(If you \214nd a b)108 379.2 R .568(ug in)-.2 F F3(bash,)3.068 E F0 .568
+(you should report it.)3.068 F .568(But \214rst, you should mak)5.568 F
+3.068(es)-.1 G .568(ure that it really is a b)-3.068 F .567(ug, and)-.2
+F 5.625(that it appears in the latest v)108 391.2 R 5.625(ersion of)-.15
+F F3(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.626
+(ersion is al)-.15 F -.1(wa)-.1 G 5.626(ys a).1 F -.25(va)-.2 G 5.626
+(ilable from).25 F F1(ftp://ftp.gnu.or)108 403.2 Q(g/pub/bash/)-.37 E F0
+(.)A .411(Once you ha)108 420 R .711 -.15(ve d)-.2 H .411
+(etermined that a b).15 F .411(ug actually e)-.2 F .411(xists, use the)
+-.15 F F1(bashb)3.18 E(ug)-.2 E F0 .41(command to submit a b)3.13 F .41
+(ug report.)-.2 F(If)5.41 E .594(you ha)108 432 R .894 -.15(ve a \214)
+-.2 H .595(x, you are encouraged to mail that as well!).15 F .595
+(Suggestions and `philosophical' b)5.595 F .595(ug reports may)-.2 F
+(be mailed to)108 444 Q F1 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
+(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3(gnu.bash.b)2.5 E(ug)
+-.2 E F0(.)A(ALL b)108 460.8 Q(ug reports should include:)-.2 E(The v)
+108 477.6 Q(ersion number of)-.15 E F3(bash)2.5 E F0(The hardw)108 489.6
+Q(are and operating system)-.1 E(The compiler used to compile)108 501.6
+Q 2.5(Ad)108 513.6 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2
+E 2.5(As)108 525.6 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15
+G(rcises the b).15 E(ug)-.2 E F1(bashb)108.27 542.4 Q(ug)-.2 E F0
+(inserts the \214rst three items automatically into the template it pro)
+2.72 E(vides for \214ling a b)-.15 E(ug report.)-.2 E(Comments and b)108
+559.2 Q(ug reports concerning this manual page should be directed to)-.2
+E F1 -.15(ch)2.5 G(et@po.cwru.edu).15 E F0(.).25 E F2 -.11(BU)72 576 S
+(GS).11 E F0(It')108 588 Q 2.5(st)-.55 G(oo big and too slo)-2.5 E -.65
+(w.)-.25 G 1.869(There are some subtle dif)108 604.8 R 1.869
+(ferences between)-.25 F F3(bash)4.369 E F0 1.869(and traditional v)
+4.369 F 1.869(ersions of)-.15 F F3(sh)4.368 E F0 4.368(,m)C 1.868
+(ostly because of the)-4.368 F/F4 9/Times-Bold@0 SF(POSIX)108 616.8 Q F0
+(speci\214cation.)2.25 E(Aliases are confusing in some uses.)108 633.6 Q
+(Shell b)108 650.4 Q
+(uiltin commands and functions are not stoppable/restartable.)-.2 E
+1.315(Compound commands and command sequences of the form `a ; b ; c' a\
+re not handled gracefully when)108 667.2 R .39
+(process suspension is attempted.)108 679.2 R .389
+(When a process is stopped, the shell immediately e)5.39 F -.15(xe)-.15
+G .389(cutes the ne).15 F .389(xt com-)-.15 F .192
+(mand in the sequence.)108 691.2 R .192(It suf)5.192 F .192(\214ces to \
+place the sequence of commands between parentheses to force it into a)
+-.25 F(subshell, which may be stopped as a unit.)108 703.2 Q(Array v)108
+720 Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E(GNU Bash-4.0)
+72 768 Q(2009 February 7)140.96 E(68)190.95 E 0 Cg EP
+%%Page: 69 69
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(There may be only one acti)108 84 Q .3 -.15(ve c)-.25 H
+(oprocess at a time.).15 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96
+E(69)190.95 E 0 Cg EP
+%%Trailer
+end
+%%EOF
diff --git a/doc/bashbug.0 b/doc/bashbug.0
new file mode 100644 (file)
index 0000000..41fc1ed
--- /dev/null
@@ -0,0 +1,50 @@
+BASHBUG(1)                                                          BASHBUG(1)
+
+
+
+N\bNA\bAM\bME\bE
+       bashbug - report a bug in bash
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       b\bba\bas\bsh\bhb\bbu\bug\bg [_\b-_\b-_\bv_\be_\br_\bs_\bi_\bo_\bn] [_\b-_\b-_\bh_\be_\bl_\bp] [_\be_\bm_\ba_\bi_\bl_\b-_\ba_\bd_\bd_\br_\be_\bs_\bs]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       b\bba\bas\bsh\bhb\bbu\bug\bg is a shell script to help the user compose and mail bug reports
+       concerning bash in a standard format.  b\bba\bas\bsh\bhb\bbu\bug\bg invokes the editor spec-
+       ified by the environment variable E\bED\bDI\bIT\bTO\bOR\bR on a temporary copy of the bug
+       report format outline. The user must fill in the appropriate fields and
+       exit  the  editor.   b\bba\bas\bsh\bhb\bbu\bug\bg  then  mails  the completed report to _\bb_\bu_\bg_\b-
+       _\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg, or _\be_\bm_\ba_\bi_\bl_\b-_\ba_\bd_\bd_\br_\be_\bs_\bs.  If the report cannot be mailed, it  is
+       saved in the file _\bd_\be_\ba_\bd_\b._\bb_\ba_\bs_\bh_\bb_\bu_\bg in the invoking user's home directory.
+
+       The  bug report format outline consists of several sections.  The first
+       section provides information about the machine, operating  system,  the
+       bash  version,  and  the  compilation  environment.  The second section
+       should be filled in with a description of the bug.  The  third  section
+       should  be  a  description  of  how to reproduce the bug.  The optional
+       fourth section is for a proposed fix.  Fixes are encouraged.
+
+E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+       b\bba\bas\bsh\bhb\bbu\bug\bg will utilize the following environment variables if they exist:
+
+       E\bED\bDI\bIT\bTO\bOR\bR Specifies  the  preferred  editor. If E\bED\bDI\bIT\bTO\bOR\bR is not set, b\bba\bas\bsh\bhb\bbu\bug\bg
+              defaults to e\bem\bma\bac\bcs\bs.
+
+       H\bHO\bOM\bME\bE   Directory in which the failed bug report is saved  if  the  mail
+              fails.
+
+       T\bTM\bMP\bPD\bDI\bIR\bR Directory in which to create temporary files and directories.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       _\bb_\ba_\bs_\bh(1)
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Brian Fox, Free Software Foundation
+       bfox@gnu.org
+
+       Chet Ramey, Case Western Reserve University
+       chet@po.cwru.edu
+
+
+
+GNU Bash-4.0                     1998 July 30                       BASHBUG(1)
diff --git a/doc/bashbug.ps b/doc/bashbug.ps
new file mode 100644 (file)
index 0000000..efbcdda
--- /dev/null
@@ -0,0 +1,284 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.19.2
+%%CreationDate: Mon Nov 17 17:38:06 2008
+%%DocumentNeededResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%DocumentSuppliedResources: procset grops 1.19 2
+%%Pages: 1
+%%PageOrder: Ascend
+%%DocumentMedia: Default 595 842 0 () ()
+%%Orientation: Portrait
+%%EndComments
+%%BeginDefaults
+%%PageMedia: Default
+%%EndDefaults
+%%BeginProlog
+%%BeginResource: procset grops 1.19 2
+%!PS-Adobe-3.0 Resource-ProcSet
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/Fr{
+setrgbcolor fill
+}bind def
+/setcmykcolor where{
+pop
+/Fk{
+setcmykcolor fill
+}bind def
+}if
+/Fg{
+setgray fill
+}bind def
+/FL/fill load def
+/LW/setlinewidth load def
+/Cr/setrgbcolor load def
+/setcmykcolor where{
+pop
+/Ck/setcmykcolor load def
+}if
+/Cg/setgray load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+/setpagedevice{}def
+}bind def
+/PEND{
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%%BeginFeature: *PageSize Default
+<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice
+%%EndFeature
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
+/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
+/Times-Roman@0 ENC0/Times-Roman RE
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SHB).35 E 347.52(UG\(1\) B)-.1 F
+(ASHB)-.35 E(UG\(1\))-.1 E/F1 10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME)
+.219 E F0(bashb)108 96 Q(ug \255 report a b)-.2 E(ug in bash)-.2 E F1
+(SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF(bashb)108 124.8 Q(ug)-.2 E F0
+([)2.5 E/F3 10/Times-Italic@0 SF(--ver)A(sion)-.1 E F0 2.5(][)C F3
+(--help)-2.5 E F0 2.5(][)C F3(email-addr)-2.5 E(ess)-.37 E F0(])A F1
+(DESCRIPTION)72 141.6 Q F2(bashb)108 153.6 Q(ug)-.2 E F0 .446
+(is a shell script to help the user compose and mail b)2.947 F .446
+(ug reports concerning bash in a standard for)-.2 F(-)-.2 E(mat.)108
+165.6 Q F2(bashb)5.961 E(ug)-.2 E F0(in)3.461 E -.2(vo)-.4 G -.1(ke).2 G
+3.461(st).1 G .962(he editor speci\214ed by the en)-3.461 F .962
+(vironment v)-.4 F(ariable)-.25 E/F4 9/Times-Bold@0 SF(EDIT)3.462 E(OR)
+-.162 E F0 .962(on a temporary cop)3.212 F 3.462(yo)-.1 G(f)-3.462 E
+.374(the b)108 177.6 R .374(ug report format outline. The user must \
+\214ll in the appropriate \214elds and e)-.2 F .374(xit the editor)-.15
+F(.)-.55 E F2(bashb)5.373 E(ug)-.2 E F0(then)2.873 E 1.141
+(mails the completed report to)108 189.6 R F3 -.2(bu)3.641 G
+(g-bash@gnu.or).2 E(g)-.37 E F0 3.641(,o)C(r)-3.641 E F3(email-addr)
+3.641 E(ess)-.37 E F0 6.141(.I)C 3.641(ft)-6.141 G 1.142
+(he report cannot be mailed, it is)-3.641 F(sa)108 201.6 Q -.15(ve)-.2 G
+2.5(di).15 G 2.5(nt)-2.5 G(he \214le)-2.5 E F3(dead.bashb)2.5 E(ug)-.2 E
+F0(in the in)2.5 E -.2(vo)-.4 G(king user').2 E 2.5(sh)-.55 G
+(ome directory)-2.5 E(.)-.65 E .354(The b)108 218.4 R .354
+(ug report format outline consists of se)-.2 F -.15(ve)-.25 G .353
+(ral sections.).15 F .353(The \214rst section pro)5.353 F .353
+(vides information about the)-.15 F .37
+(machine, operating system, the bash v)108 230.4 R .371
+(ersion, and the compilation en)-.15 F 2.871(vironment. The)-.4 F .371
+(second section should)2.871 F .209
+(be \214lled in with a description of the b)108 242.4 R 2.709(ug. The)
+-.2 F .208(third section should be a description of ho)2.709 F 2.708(wt)
+-.25 G 2.708(or)-2.708 G .208(eproduce the)-2.708 F -.2(bu)108 254.4 S
+2.5(g. The).2 F(optional fourth section is for a proposed \214x.)2.5 E
+(Fix)5 E(es are encouraged.)-.15 E F1(ENVIR)72 271.2 Q(ONMENT)-.329 E F2
+(bashb)108 283.2 Q(ug)-.2 E F0(will utilize the follo)2.5 E(wing en)-.25
+E(vironment v)-.4 E(ariables if the)-.25 E 2.5(ye)-.15 G(xist:)-2.65 E
+F2(EDIT)108 300 Q(OR)-.18 E F0(Speci\214es the preferred editor)144 312
+Q 2.5(.I)-.55 G(f)-2.5 E F4(EDIT)2.5 E(OR)-.162 E F0(is not set,)2.25 E
+F2(bashb)2.5 E(ug)-.2 E F0(def)2.5 E(aults to)-.1 E F2(emacs)2.5 E F0(.)
+A F2(HOME)108 328.8 Q F0(Directory in which the f)144 340.8 Q(ailed b)
+-.1 E(ug report is sa)-.2 E -.15(ve)-.2 G 2.5(di).15 G 2.5(ft)-2.5 G
+(he mail f)-2.5 E(ails.)-.1 E F2(TMPDIR)108 357.6 Q F0
+(Directory in which to create temporary \214les and directories.)144
+369.6 Q F1(SEE ALSO)72 386.4 Q F3(bash)108 398.4 Q F0(\(1\))A F1 -.548
+(AU)72 415.2 S(THORS).548 E F0(Brian F)108 427.2 Q(ox, Free Softw)-.15 E
+(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 439.2 Q(g)-.18 E
+(Chet Rame)108 456 Q 1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)-.8
+E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E(chet@po.cwru.edu)
+108 468 Q(GNU Bash-4.0)72 768 Q(1998 July 30)148.175 E(1)203.165 E 0 Cg
+EP
+%%Trailer
+end
+%%EOF
diff --git a/doc/bashref.dvi b/doc/bashref.dvi
new file mode 100644 (file)
index 0000000..2891246
Binary files /dev/null and b/doc/bashref.dvi differ
diff --git a/doc/bashref.html b/doc/bashref.html
new file mode 100644 (file)
index 0000000..630de5c
--- /dev/null
@@ -0,0 +1,15955 @@
+<HTML>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!-- Created on February, 5  2009 by texi2html 1.64 -->
+<!-- 
+Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
+            Karl Berry  <karl@freefriends.org>
+            Olaf Bachmann <obachman@mathematik.uni-kl.de>
+            and many others.
+Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
+Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
+-->
+<HEAD>
+<TITLE>Bash Reference Manual: </TITLE>
+
+<META NAME="description" CONTENT="Bash Reference Manual: ">
+<META NAME="keywords" CONTENT="Bash Reference Manual: ">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<META NAME="Generator" CONTENT="texi2html 1.64">
+
+</HEAD>
+
+<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
+
+<A NAME="SEC_Top"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1>Bash Reference Manual</H1></P><P>
+
+This text is a brief description of the features that are present in
+the Bash shell (version 4.0, 29 December 2008).
+</P><P>
+
+This is Edition 4.0, last updated 29 December 2008,
+of <CITE>The GNU Bash Reference Manual</CITE>,
+for <CODE>Bash</CODE>, Version 4.0.
+</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 (<TT>`sh'</TT>), the Korn Shell
+(<TT>`ksh'</TT>), and the C-shell (<TT>`csh'</TT> and its successor,
+<TT>`tcsh'</TT>). The following menu breaks the features up into
+categories based upon which one of these other shells inspired the
+feature.
+</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><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC1">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"><A HREF="bashref.html#SEC4">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"><A HREF="bashref.html#SEC5">3. Basic Shell Features</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The shell "building blocks".</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC58">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"><A HREF="bashref.html#SEC65">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"><A HREF="bashref.html#SEC68">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"><A HREF="bashref.html#SEC91">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"><A HREF="bashref.html#SEC95">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"><A HREF="bashref.html#SEC119">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"><A HREF="bashref.html#SEC126">10. 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"><A HREF="bashref.html#SEC135">A. 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"><A HREF="bashref.html#SEC136">B. 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"><A HREF="bashref.html#SEC138">C. 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"><A HREF="bashref.html#SEC140">D. Indexes</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Various indexes for this manual.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<HR SIZE=1>
+<A NAME="SEC1"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC2"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC4"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<A NAME="Introduction"></A>
+<H1> 1. Introduction </H1>
+<!--docid::SEC1::-->
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC2">1.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"><A HREF="bashref.html#SEC3">1.2 What is a shell?</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A brief introduction to shells.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="What is Bash?"></A>
+<HR SIZE="6">
+<A NAME="SEC2"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC1"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC3"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC1"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC4"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 1.1 What is Bash? </H2>
+<!--docid::SEC2::-->
+<P>
+
+Bash is the shell, or command language interpreter,
+for the GNU operating system.
+The name is an acronym for the <SAMP>`Bourne-Again SHell'</SAMP>,
+a pun on Stephen Bourne, the author of the direct ancestor of
+the current Unix shell <CODE>sh</CODE>, 
+which appeared in the Seventh Edition Bell Labs Research version
+of Unix.
+</P><P>
+
+Bash is largely compatible with <CODE>sh</CODE> and incorporates useful
+features from the Korn shell <CODE>ksh</CODE> and the C shell <CODE>csh</CODE>.
+It is intended to be a conformant implementation of the IEEE
+POSIX Shell and Tools portion of the IEEE POSIX
+specification (IEEE Standard 1003.1).
+It offers functional improvements over <CODE>sh</CODE> for both interactive and
+programming use.
+</P><P>
+
+While the GNU operating system provides other shells, including
+a version of <CODE>csh</CODE>, Bash is the default shell.
+Like other GNU software, Bash is quite portable.  It currently runs
+on nearly every version of Unix and a few other operating systems -
+independently-supported ports exist for MS-DOS, OS/2,
+and Windows platforms.
+</P><P>
+
+<A NAME="What is a shell?"></A>
+<HR SIZE="6">
+<A NAME="SEC3"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC2"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC4"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC1"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC4"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 1.2 What is a shell? </H2>
+<!--docid::SEC3::-->
+<P>
+
+At its base, a shell is simply a macro processor that executes
+commands.  The term macro processor means functionality where text
+and symbols are expanded to create larger expressions.
+</P><P>
+
+A Unix shell is both a command interpreter and a programming
+language.  As a command interpreter, the shell provides the user
+interface to the rich set of GNU utilities.  The programming
+language features allow these utilities to be combined.
+Files containing commands can be created, and become
+commands themselves.  These new commands have the same status as
+system commands in directories such as <TT>`/bin'</TT>, allowing users
+or groups to establish custom environments to automate their common
+tasks.
+</P><P>
+
+Shells may be used interactively or non-interactively.  In
+interactive mode, they accept input typed from the keyboard.
+When executing non-interactively, shells execute commands read
+from a file.
+</P><P>
+
+A shell allows execution of GNU commands, both synchronously and
+asynchronously.
+The shell waits for synchronous commands to complete before accepting
+more input; asynchronous commands continue to execute in parallel
+with the shell while it reads and executes additional commands.
+The <EM>redirection</EM> constructs permit
+fine-grained control of the input and output of those commands.
+Moreover, the shell allows control over the contents of commands'
+environments.
+</P><P>
+
+Shells also provide a small set of built-in
+commands (<EM>builtins</EM>) implementing functionality impossible
+or inconvenient to obtain via separate utilities.
+For example, <CODE>cd</CODE>, <CODE>break</CODE>, <CODE>continue</CODE>, and
+<CODE>exec</CODE>) cannot be implemented outside of the shell because
+they directly manipulate the shell itself.
+The <CODE>history</CODE>, <CODE>getopts</CODE>, <CODE>kill</CODE>, or <CODE>pwd</CODE>
+builtins, among others, could be implemented in separate utilities,
+but they are more convenient to use as builtin commands.
+All of the shell builtins are described in
+subsequent sections.
+</P><P>
+
+While executing commands is essential, most of the power (and
+complexity) of shells is due to their embedded programming
+languages.  Like any high-level language, the shell provides
+variables, flow control constructs, quoting, and functions. 
+</P><P>
+
+Shells offer features geared specifically for
+interactive use rather than to augment the programming language. 
+These interactive features include job control, command line
+editing, command history and aliases.  Each of these features is
+described in this manual.
+</P><P>
+
+<A NAME="Definitions"></A>
+<HR SIZE="6">
+<A NAME="SEC4"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC3"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> 2. Definitions </H1>
+<!--docid::SEC4::-->
+These definitions are used throughout the remainder of this manual.
+<P>
+
+<DL COMPACT>
+
+<DT><CODE>POSIX</CODE>
+<DD><A NAME="IDX1"></A>
+A family of open system standards based on Unix.  Bash
+is primarily concerned with the Shell and Utilities portion of the
+POSIX 1003.1 standard. 
+<P>
+
+<DT><CODE>blank</CODE>
+<DD>A space or tab character.
+<P>
+
+<DT><CODE>builtin</CODE>
+<DD><A NAME="IDX2"></A>
+A command that is implemented internally by the shell itself, rather
+than by an executable program somewhere in the file system.
+<P>
+
+<DT><CODE>control operator</CODE>
+<DD><A NAME="IDX3"></A>
+A <CODE>token</CODE> that performs a control function.  It is a <CODE>newline</CODE>
+or one of the following:
+<SAMP>`||'</SAMP>, <SAMP>`&#38;&#38;'</SAMP>, <SAMP>`&#38;'</SAMP>, <SAMP>`;'</SAMP>, <SAMP>`;;'</SAMP>,
+<SAMP>`|'</SAMP>, <SAMP>`|&#38;'</SAMP>, <SAMP>`('</SAMP>, or <SAMP>`)'</SAMP>.
+<P>
+
+<DT><CODE>exit status</CODE>
+<DD><A NAME="IDX4"></A>
+The value returned by a command to its caller.  The value is restricted
+to eight bits, so the maximum value is 255.
+<P>
+
+<DT><CODE>field</CODE>
+<DD><A NAME="IDX5"></A>
+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>
+
+<DT><CODE>filename</CODE>
+<DD><A NAME="IDX6"></A>
+A string of characters used to identify a file.
+<P>
+
+<DT><CODE>job</CODE>
+<DD><A NAME="IDX7"></A>
+A set of processes comprising a pipeline, and any processes descended
+from it, that are all in the same process group.
+<P>
+
+<DT><CODE>job control</CODE>
+<DD><A NAME="IDX8"></A>
+A mechanism by which users can selectively stop (suspend) and restart
+(resume) execution of processes.
+<P>
+
+<DT><CODE>metacharacter</CODE>
+<DD><A NAME="IDX9"></A>
+A character that, when unquoted, separates words.  A metacharacter is
+a <CODE>blank</CODE> or one of the following characters:
+<SAMP>`|'</SAMP>, <SAMP>`&#38;'</SAMP>, <SAMP>`;'</SAMP>, <SAMP>`('</SAMP>, <SAMP>`)'</SAMP>, <SAMP>`&#60;'</SAMP>, or
+<SAMP>`&#62;'</SAMP>.
+<P>
+
+<DT><CODE>name</CODE>
+<DD><A NAME="IDX10"></A>
+<A NAME="IDX11"></A>
+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>
+
+<DT><CODE>operator</CODE>
+<DD><A NAME="IDX12"></A>
+A <CODE>control operator</CODE> or a <CODE>redirection operator</CODE>.
+See section <A HREF="bashref.html#SEC39">3.6 Redirections</A>, for a list of redirection operators.
+Operators contain at least one unquoted <CODE>metacharacter</CODE>.
+<P>
+
+<DT><CODE>process group</CODE>
+<DD><A NAME="IDX13"></A>
+A collection of related processes each having the same process
+group ID.
+<P>
+
+<DT><CODE>process group ID</CODE>
+<DD><A NAME="IDX14"></A>
+A unique identifier that represents a <CODE>process group</CODE>
+during its lifetime.
+<P>
+
+<DT><CODE>reserved word</CODE>
+<DD><A NAME="IDX15"></A>
+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>
+
+<DT><CODE>return status</CODE>
+<DD><A NAME="IDX16"></A>
+A synonym for <CODE>exit status</CODE>.
+<P>
+
+<DT><CODE>signal</CODE>
+<DD><A NAME="IDX17"></A>
+A mechanism by which a process may be notified by the kernel
+of an event occurring in the system.
+<P>
+
+<DT><CODE>special builtin</CODE>
+<DD><A NAME="IDX18"></A>
+A shell builtin command that has been classified as special by the
+POSIX standard.
+<P>
+
+<DT><CODE>token</CODE>
+<DD><A NAME="IDX19"></A>
+A sequence of characters considered a single unit by the shell.
+It is either a <CODE>word</CODE> or an <CODE>operator</CODE>.
+<P>
+
+<DT><CODE>word</CODE>
+<DD><A NAME="IDX20"></A>
+A sequence of characters treated as a unit by the shell.
+Words may not include unquoted <CODE>metacharacters</CODE>.
+</DL>
+<P>
+
+<A NAME="Basic Shell Features"></A>
+<HR SIZE="6">
+<A NAME="SEC5"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC4"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC6"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> 3. Basic Shell Features </H1>
+<!--docid::SEC5::-->
+<P>
+
+Bash is an acronym for <SAMP>`Bourne-Again SHell'</SAMP>.
+The Bourne shell is
+the traditional Unix shell originally written by Stephen Bourne.
+All of the Bourne shell builtin commands are available in Bash,
+The rules for evaluation and quoting are taken from the POSIX
+specification for the `standard' Unix shell.
+</P><P>
+
+This chapter briefly summarizes the shell's `building blocks':
+commands, control structures, shell functions, shell <I>parameters</I>,
+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><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC6">3.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"><A HREF="bashref.html#SEC15">3.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"><A HREF="bashref.html#SEC24">3.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"><A HREF="bashref.html#SEC25">3.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"><A HREF="bashref.html#SEC28">3.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"><A HREF="bashref.html#SEC39">3.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"><A HREF="bashref.html#SEC50">3.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"><A HREF="bashref.html#SEC57">3.8 Shell Scripts</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Executing files of shell commands.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="Shell Syntax"></A>
+<HR SIZE="6">
+<A NAME="SEC6"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC7"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 3.1 Shell Syntax </H2>
+<!--docid::SEC6::-->
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC7">3.1.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"><A HREF="bashref.html#SEC8">3.1.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"><A HREF="bashref.html#SEC14">3.1.3 Comments</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to specify comments.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+When the shell reads input, it proceeds through a
+sequence of operations.  If the input indicates the beginning of a
+comment, the shell ignores the comment symbol (<SAMP>`#'</SAMP>), and the rest
+of that line.
+                                
+Otherwise, roughly speaking,  the shell reads its input and
+divides the input into words and operators, employing the quoting rules
+to select which meanings to assign various words and characters.
+</P><P>
+
+The shell then parses these tokens into commands and other constructs,
+removes the special meaning of certain words or characters, expands
+others, redirects input and output as needed, executes the specified
+command, waits for the command's exit status, and makes that exit status
+available for further inspection or processing.
+</P><P>
+
+<A NAME="Shell Operation"></A>
+<HR SIZE="6">
+<A NAME="SEC7"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC6"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC8"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC6"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.1.1 Shell Operation </H3>
+<!--docid::SEC7::-->
+<P>
+
+The following is a brief description of the shell's operation when it
+reads and executes a command.  Basically, the shell does the
+following:
+</P><P>
+
+<OL>
+<LI>
+Reads its input from a file (see section <A HREF="bashref.html#SEC57">3.8 Shell Scripts</A>), from a string
+supplied as an argument to the <SAMP>`-c'</SAMP> invocation option
+(see section <A HREF="bashref.html#SEC69">6.1 Invoking Bash</A>), or from the user's terminal.
+<P>
+
+<LI>
+Breaks the input into words and operators, obeying the quoting rules
+described in <A HREF="bashref.html#SEC8">3.1.2 Quoting</A>.  These tokens are separated by
+<CODE>metacharacters</CODE>.  Alias expansion is performed by this step
+(see section <A HREF="bashref.html#SEC84">6.6 Aliases</A>).
+<P>
+
+<LI>
+Parses the tokens into simple and compound commands
+(see section <A HREF="bashref.html#SEC15">3.2 Shell Commands</A>).
+<P>
+
+<LI>
+Performs the various shell expansions (see section <A HREF="bashref.html#SEC28">3.5 Shell Expansions</A>), breaking
+the expanded tokens into lists of filenames (see section <A HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A>)
+and commands and arguments.
+<P>
+
+<LI>
+Performs any necessary redirections (see section <A HREF="bashref.html#SEC39">3.6 Redirections</A>) and removes
+the redirection operators and their operands from the argument list.
+<P>
+
+<LI>
+Executes the command (see section <A HREF="bashref.html#SEC50">3.7 Executing Commands</A>).
+<P>
+
+<LI>
+Optionally waits for the command to complete and collects its exit
+status (see section <A HREF="bashref.html#SEC55">3.7.5 Exit Status</A>).
+<P>
+
+</OL>
+<P>
+
+<A NAME="Quoting"></A>
+<HR SIZE="6">
+<A NAME="SEC8"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC7"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC9"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC6"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.1.2 Quoting </H3>
+<!--docid::SEC8::-->
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC9">3.1.2.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"><A HREF="bashref.html#SEC10">3.1.2.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"><A HREF="bashref.html#SEC11">3.1.2.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"><A HREF="bashref.html#SEC12">3.1.2.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"><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to translate strings into different languages.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+Quoting is used to remove the special meaning of certain
+characters or words to the shell.  Quoting can be used to
+disable special treatment for special characters, to prevent
+reserved words from being recognized as such, and to prevent
+parameter expansion.
+</P><P>
+
+Each of the shell metacharacters (see section <A HREF="bashref.html#SEC4">2. Definitions</A>)
+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 section <A HREF="bashref.html#SEC122">9.3 History Expansion</A>), the
+<VAR>history expansion</VAR> character, usually <SAMP>`!'</SAMP>, must be quoted
+to prevent history expansion.  See section <A HREF="bashref.html#SEC120">9.1 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><P>
+
+<A NAME="Escape Character"></A>
+<HR SIZE="6">
+<A NAME="SEC9"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC8"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC10"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC8"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H4> 3.1.2.1 Escape Character </H4>
+<!--docid::SEC9::-->
+A non-quoted backslash <SAMP>`\'</SAMP> is the Bash escape character.
+It preserves the literal value of the next character that follows,
+with the exception of <CODE>newline</CODE>.  If a <CODE>\newline</CODE> pair
+appears, and the backslash itself is not quoted, the <CODE>\newline</CODE>
+is treated as a line continuation (that is, it is removed from
+the input stream and effectively ignored).
+<P>
+
+<A NAME="Single Quotes"></A>
+<HR SIZE="6">
+<A NAME="SEC10"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC9"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC11"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC11"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC8"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H4> 3.1.2.2 Single Quotes </H4>
+<!--docid::SEC10::-->
+<P>
+
+Enclosing characters in single quotes (<SAMP>`''</SAMP>) preserves the literal value
+of each character within the quotes.  A single quote may not occur
+between single quotes, even when preceded by a backslash.
+</P><P>
+
+<A NAME="Double Quotes"></A>
+<HR SIZE="6">
+<A NAME="SEC11"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC10"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC12"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC12"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC8"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H4> 3.1.2.3 Double Quotes </H4>
+<!--docid::SEC11::-->
+<P>
+
+Enclosing characters in double quotes (<SAMP>`"'</SAMP>) preserves the literal value
+of all characters within the quotes, with the exception of
+<SAMP>`$'</SAMP>, <SAMP>``'</SAMP>, <SAMP>`\'</SAMP>,
+and, when history expansion is enabled, <SAMP>`!'</SAMP>.
+The characters <SAMP>`$'</SAMP> and <SAMP>``'</SAMP>
+retain their special meaning within double quotes (see section <A HREF="bashref.html#SEC28">3.5 Shell Expansions</A>).
+The backslash retains its special meaning only when followed by one of
+the following characters:
+<SAMP>`$'</SAMP>, <SAMP>``'</SAMP>, <SAMP>`"'</SAMP>, <SAMP>`\'</SAMP>, or <CODE>newline</CODE>.
+Within double quotes, backslashes that are followed by one of these
+characters are removed.  Backslashes preceding characters without a
+special meaning are left unmodified.
+A double quote may be quoted within double quotes by preceding it with
+a backslash.
+If enabled, history expansion will be performed unless an <SAMP>`!'</SAMP>
+appearing in double quotes is escaped using a backslash.
+The backslash preceding the <SAMP>`!'</SAMP> is not removed.
+</P><P>
+
+The special parameters <SAMP>`*'</SAMP> and <SAMP>`@'</SAMP> have special meaning
+when in double quotes (see section <A HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A>).
+</P><P>
+
+<A NAME="ANSI-C Quoting"></A>
+<HR SIZE="6">
+<A NAME="SEC12"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC11"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC13"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC13"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC8"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H4> 3.1.2.4 ANSI-C Quoting </H4>
+<!--docid::SEC12::-->
+<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><P>
+
+<DL COMPACT>
+<DT><CODE>\a</CODE>
+<DD>alert (bell)
+<DT><CODE>\b</CODE>
+<DD>backspace
+<DT><CODE>\e</CODE>
+<DD>an escape character (not ANSI C)
+<DT><CODE>\f</CODE>
+<DD>form feed
+<DT><CODE>\n</CODE>
+<DD>newline
+<DT><CODE>\r</CODE>
+<DD>carriage return
+<DT><CODE>\t</CODE>
+<DD>horizontal tab
+<DT><CODE>\v</CODE>
+<DD>vertical tab
+<DT><CODE>\\</CODE>
+<DD>backslash
+<DT><CODE>\'</CODE>
+<DD>single quote
+<DT><CODE>\<VAR>nnn</VAR></CODE>
+<DD>the eight-bit character whose value is the octal value <VAR>nnn</VAR>
+(one to three digits)
+<DT><CODE>\x<VAR>HH</VAR></CODE>
+<DD>the eight-bit character whose value is the hexadecimal value <VAR>HH</VAR>
+(one or two hex digits)
+<DT><CODE>\c<VAR>x</VAR></CODE>
+<DD>a control-<VAR>x</VAR> character
+</DL>
+<P>
+
+The expanded result is single-quoted, as if the dollar sign had not
+been present.
+</P><P>
+
+<A NAME="Locale Translation"></A>
+<HR SIZE="6">
+<A NAME="SEC13"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC12"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC8"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H4> 3.1.2.5 Locale-Specific Translation </H4>
+<!--docid::SEC13::-->
+<P>
+
+A double-quoted string preceded by a dollar sign (<SAMP>`$'</SAMP>) will cause
+the string to be translated according to the current locale.
+If the current locale is <CODE>C</CODE> or <CODE>POSIX</CODE>, the dollar sign
+is ignored.
+If the string is translated and replaced, the replacement is
+double-quoted.
+</P><P>
+
+<A NAME="IDX21"></A>
+<A NAME="IDX22"></A>
+<A NAME="IDX23"></A>
+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 <SAMP>`.mo'</SAMP>.  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><P>
+
+<A NAME="Comments"></A>
+<HR SIZE="6">
+<A NAME="SEC14"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC13"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC6"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.1.3 Comments </H3>
+<!--docid::SEC14::-->
+<P>
+
+In a non-interactive shell, or an interactive shell in which the
+<CODE>interactive_comments</CODE> option to the <CODE>shopt</CODE>
+builtin is enabled (see section <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>),
+a word beginning with <SAMP>`#'</SAMP>
+causes that word and all remaining characters on that line to
+be ignored.  An interactive shell without the <CODE>interactive_comments</CODE>
+option enabled does not allow comments.  The <CODE>interactive_comments</CODE>
+option is on by default in interactive shells.
+See section <A HREF="bashref.html#SEC78">6.3 Interactive Shells</A>, for a description of what makes
+a shell interactive.
+</P><P>
+
+<A NAME="Shell Commands"></A>
+<HR SIZE="6">
+<A NAME="SEC15"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC16"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC24"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC24"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 3.2 Shell Commands </H2>
+<!--docid::SEC15::-->
+<P>
+
+A simple shell command such as <CODE>echo a b c</CODE> consists of the command
+itself followed by arguments, separated by spaces.
+</P><P>
+
+More complex shell commands are composed of simple commands arranged together
+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><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC16">3.2.1 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"><A HREF="bashref.html#SEC17">3.2.2 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"><A HREF="bashref.html#SEC18">3.2.3 Lists of Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to execute commands sequentially.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC19">3.2.4 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"><A HREF="bashref.html#SEC23">3.2.5 Coprocesses</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Two-way communication between commands.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="Simple Commands"></A>
+<HR SIZE="6">
+<A NAME="SEC16"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC17"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC24"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC24"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.2.1 Simple Commands </H3>
+<!--docid::SEC16::-->
+<P>
+
+A simple command is the kind of command encountered most often.
+It's just a sequence of words separated by <CODE>blank</CODE>s, terminated
+by one of the shell's control operators (see section <A HREF="bashref.html#SEC4">2. Definitions</A>).  The
+first word generally specifies a command to be executed, with the
+rest of the words being that command's arguments.
+</P><P>
+
+The return status (see section <A HREF="bashref.html#SEC55">3.7.5 Exit Status</A>) of a simple command is
+its exit status as provided
+by the POSIX 1003.1 <CODE>waitpid</CODE> function, or 128+<VAR>n</VAR> if
+the command was terminated by signal <VAR>n</VAR>.
+</P><P>
+
+<A NAME="Pipelines"></A>
+<HR SIZE="6">
+<A NAME="SEC17"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC16"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC18"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC18"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC24"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.2.2 Pipelines </H3>
+<!--docid::SEC17::-->
+<P>
+
+A <CODE>pipeline</CODE> is a sequence of simple commands separated by one of
+the control operators <SAMP>`|'</SAMP> or <SAMP>`|&#38;'</SAMP>.
+</P><P>
+
+<A NAME="IDX24"></A>
+<A NAME="IDX25"></A>
+<A NAME="IDX26"></A>
+The format for a pipeline is
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[<CODE>time</CODE> [<CODE>-p</CODE>]] [<CODE>!</CODE>] <VAR>command1</VAR> [ [<CODE>|</CODE> or <CODE>|&#38;</CODE>] <VAR>command2</VAR> <small>...</small>]
+</pre></td></tr></table></P><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's output.  This
+connection is performed before any redirections specified by the
+command.
+</P><P>
+
+If <SAMP>`|&#38;'</SAMP> is used, the standard error of <VAR>command1</VAR> is connected to
+<VAR>command2</VAR>'s standard input through the pipe; it is shorthand for
+<CODE>2&#62;&#38;1 |</CODE>.  This implicit redirection of the standard error is
+performed after any redirections specified by the command.
+</P><P>
+
+The reserved word <CODE>time</CODE> causes timing statistics
+to be printed for the pipeline once it finishes.
+The statistics currently consist of elapsed (wall-clock) time and
+user and system time consumed by the command's execution.
+The <SAMP>`-p'</SAMP> option changes the output format to that specified
+by POSIX.
+The <CODE>TIMEFORMAT</CODE> variable may be set to a format string that
+specifies how the timing information should be displayed.
+See section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>, for a description of the available formats.
+The use of <CODE>time</CODE> as a reserved word permits the timing of
+shell builtins, shell functions, and pipelines.  An external
+<CODE>time</CODE> command cannot time these easily.
+</P><P>
+
+If the pipeline is not executed asynchronously (see section <A HREF="bashref.html#SEC18">3.2.3 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
+(see section <A HREF="bashref.html#SEC53">3.7.3 Command Execution Environment</A>).  The exit
+status of a pipeline is the exit status of the last command in the
+pipeline, unless the <CODE>pipefail</CODE> option is enabled
+(see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+If <CODE>pipefail</CODE> is enabled, the pipeline's return status is the
+value of the last (rightmost) command to exit with a non-zero status,
+or zero if all commands exit successfully.
+If the reserved word <SAMP>`!'</SAMP> precedes the pipeline, the
+exit status is the logical negation of the exit status as described
+above.
+The shell waits for all commands in the pipeline to terminate before
+returning a value.
+</P><P>
+
+<A NAME="Lists"></A>
+<HR SIZE="6">
+<A NAME="SEC18"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC17"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC19"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC19"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC24"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.2.3 Lists of Commands </H3>
+<!--docid::SEC18::-->
+<P>
+
+A <CODE>list</CODE> is a sequence of one or more pipelines separated by one
+of the operators <SAMP>`;'</SAMP>, <SAMP>`&#38;'</SAMP>, <SAMP>`&#38;&#38;'</SAMP>, or <SAMP>`||'</SAMP>,
+and optionally terminated by one of <SAMP>`;'</SAMP>, <SAMP>`&#38;'</SAMP>, or a
+<CODE>newline</CODE>.
+</P><P>
+
+Of these list operators, <SAMP>`&#38;&#38;'</SAMP> and <SAMP>`||'</SAMP>
+have equal precedence, followed by <SAMP>`;'</SAMP> and <SAMP>`&#38;'</SAMP>,
+which have equal precedence.
+</P><P>
+
+A sequence of one or more newlines may appear in a <CODE>list</CODE>
+to delimit commands, equivalent to a semicolon.
+</P><P>
+
+If a command is terminated by the control operator <SAMP>`&#38;'</SAMP>,
+the shell executes the command asynchronously in a subshell.
+This is known as executing the command in the <VAR>background</VAR>.
+The shell does not wait for the command to finish, and the return
+status is 0 (true).
+When job control is not active (see section <A HREF="bashref.html#SEC91">7. Job Control</A>),
+the standard input for asynchronous commands, in the absence of any
+explicit redirections, is redirected from <CODE>/dev/null</CODE>.
+</P><P>
+
+Commands separated by a <SAMP>`;'</SAMP> are executed sequentially; the shell
+waits for each command to terminate in turn.  The return status is the
+exit status of the last command executed.
+</P><P>
+
+AND and OR lists are sequences of one or more pipelines
+separated by the control operators <SAMP>`&#38;&#38;'</SAMP> and <SAMP>`||'</SAMP>,
+respectively.  AND and OR lists are executed with left
+associativity.
+</P><P>
+
+An AND list has the form
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><VAR>command1</VAR> &#38;&#38; <VAR>command2</VAR>
+</pre></td></tr></table></P><P>
+
+<VAR>command2</VAR> is executed if, and only if, <VAR>command1</VAR>
+returns an exit status of zero.
+</P><P>
+
+An OR list has the form
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><VAR>command1</VAR> || <VAR>command2</VAR>
+</pre></td></tr></table></P><P>
+
+<VAR>command2</VAR> is executed if, and only if, <VAR>command1</VAR>
+returns a non-zero exit status.
+</P><P>
+
+The return status of
+AND and OR lists is the exit status of the last command
+executed in the list.
+</P><P>
+
+<A NAME="Compound Commands"></A>
+<HR SIZE="6">
+<A NAME="SEC19"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC18"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC20"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.2.4 Compound Commands </H3>
+<!--docid::SEC19::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC20">3.2.4.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"><A HREF="bashref.html#SEC21">3.2.4.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"><A HREF="bashref.html#SEC22">3.2.4.3 Grouping Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Ways to group commands.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+Compound commands are the shell programming constructs.
+Each construct begins with a reserved word or control operator and is
+terminated by a corresponding reserved word or operator.
+Any redirections (see section <A HREF="bashref.html#SEC39">3.6 Redirections</A>) associated with a compound command
+apply to all commands within that compound command unless explicitly overridden.
+</P><P>
+
+Bash provides looping constructs, conditional commands, and mechanisms
+to group commands and execute them as a unit.
+</P><P>
+
+<A NAME="Looping Constructs"></A>
+<HR SIZE="6">
+<A NAME="SEC20"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC19"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC21"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC19"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H4> 3.2.4.1 Looping Constructs </H4>
+<!--docid::SEC20::-->
+<P>
+
+Bash supports the following looping constructs.
+</P><P>
+
+Note that wherever a <SAMP>`;'</SAMP> appears in the description of a
+command's syntax, it may be replaced with one or more newlines.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>until</CODE>
+<DD><A NAME="IDX27"></A>
+<A NAME="IDX28"></A>
+<A NAME="IDX29"></A>
+The syntax of the <CODE>until</CODE> command is:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>until <VAR>test-commands</VAR>; do <VAR>consequent-commands</VAR>; done
+</pre></td></tr></table>Execute <VAR>consequent-commands</VAR> as long as
+<VAR>test-commands</VAR> has an exit status which is not zero.
+The return status is the exit status of the last command executed
+in <VAR>consequent-commands</VAR>, or zero if none was executed.
+<P>
+
+<DT><CODE>while</CODE>
+<DD><A NAME="IDX30"></A>
+The syntax of the <CODE>while</CODE> command is:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>while <VAR>test-commands</VAR>; do <VAR>consequent-commands</VAR>; done
+</pre></td></tr></table><P>
+
+Execute <VAR>consequent-commands</VAR> as long as
+<VAR>test-commands</VAR> has an exit status of zero.
+The return status is the exit status of the last command executed
+in <VAR>consequent-commands</VAR>, or zero if none was executed.
+</P><P>
+
+<DT><CODE>for</CODE>
+<DD><A NAME="IDX31"></A>
+The syntax of the <CODE>for</CODE> command is:
+<P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>for <VAR>name</VAR> [in <VAR>words</VAR> <small>...</small>]; do <VAR>commands</VAR>; done
+</pre></td></tr></table>Expand <VAR>words</VAR>, and execute <VAR>commands</VAR> once for each member
+in the resultant list, with <VAR>name</VAR> bound to the current member.
+If <SAMP>`in <VAR>words</VAR>'</SAMP> is not present, the <CODE>for</CODE> command
+executes the <VAR>commands</VAR> once for each positional parameter that is
+set, as if <SAMP>`in "$@"'</SAMP> had been specified
+(see section <A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A>).
+The return status is the exit status of the last command that executes.
+If there are no items in the expansion of <VAR>words</VAR>, no commands are
+executed, and the return status is zero.
+</P><P>
+
+An alternate form of the <CODE>for</CODE> command is also supported:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>for (( <VAR>expr1</VAR> ; <VAR>expr2</VAR> ; <VAR>expr3</VAR> )) ; do <VAR>commands</VAR> ; done
+</pre></td></tr></table>First, the arithmetic expression <VAR>expr1</VAR> is evaluated according
+to the rules described below (see section <A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A>).
+The arithmetic expression <VAR>expr2</VAR> is then evaluated repeatedly
+until it evaluates to zero.   
+Each time <VAR>expr2</VAR> evaluates to a non-zero value, <VAR>commands</VAR> are
+executed and the arithmetic expression <VAR>expr3</VAR> is evaluated.       
+If any expression is omitted, it behaves as if it evaluates to 1.
+The return value is the exit status of the last command in <VAR>list</VAR>
+that is executed, or false if any of the expressions is invalid.
+</P><P>
+
+</DL>
+<P>
+
+The <CODE>break</CODE> and <CODE>continue</CODE> builtins (see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>)
+may be used to control loop execution.
+</P><P>
+
+<A NAME="Conditional Constructs"></A>
+<HR SIZE="6">
+<A NAME="SEC21"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC20"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC22"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC22"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC19"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H4> 3.2.4.2 Conditional Constructs </H4>
+<!--docid::SEC21::-->
+<P>
+
+<DL COMPACT>
+<DT><CODE>if</CODE>
+<DD><A NAME="IDX32"></A>
+<A NAME="IDX33"></A>
+<A NAME="IDX34"></A>
+<A NAME="IDX35"></A>
+<A NAME="IDX36"></A>
+The syntax of the <CODE>if</CODE> command is:
+<P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>if <VAR>test-commands</VAR>; then
+  <VAR>consequent-commands</VAR>;
+[elif <VAR>more-test-commands</VAR>; then
+  <VAR>more-consequents</VAR>;]
+[else <VAR>alternate-consequents</VAR>;]
+fi
+</pre></td></tr></table></P><P>
+
+The <VAR>test-commands</VAR> list is executed, and if its return status is zero,
+the <VAR>consequent-commands</VAR> list is executed.
+If <VAR>test-commands</VAR> returns a non-zero status, each <CODE>elif</CODE> list
+is executed in turn, and if its exit status is zero,
+the corresponding <VAR>more-consequents</VAR> is executed and the   
+command completes.
+If <SAMP>`else <VAR>alternate-consequents</VAR>'</SAMP> is present, and
+the final command in the final <CODE>if</CODE> or <CODE>elif</CODE> clause
+has a non-zero exit status, then <VAR>alternate-consequents</VAR> is executed.
+The return status is the exit status of the last command executed, or
+zero if no condition tested true.
+</P><P>
+
+<DT><CODE>case</CODE>
+<DD><A NAME="IDX37"></A>
+<A NAME="IDX38"></A>
+<A NAME="IDX39"></A>
+The syntax of the <CODE>case</CODE> command is:
+<P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>case <VAR>word</VAR> in [ [(] <VAR>pattern</VAR> [| <VAR>pattern</VAR>]<small>...</small>) <VAR>command-list</VAR> ;;]<small>...</small> esac</CODE>
+</pre></td></tr></table></P><P>
+
+<CODE>case</CODE> will selectively execute the <VAR>command-list</VAR> corresponding to
+the first <VAR>pattern</VAR> that matches <VAR>word</VAR>.
+If the shell option <CODE>nocasematch</CODE>
+(see the description of <CODE>shopt</CODE> in <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>)
+is enabled, the match is performed without regard to the case
+of alphabetic characters.
+The <SAMP>`|'</SAMP> is used to separate multiple patterns, and the <SAMP>`)'</SAMP>
+operator terminates a pattern list.
+A list of patterns and an associated command-list is known
+as a <VAR>clause</VAR>.
+</P><P>
+
+Each clause must be terminated with <SAMP>`;;'</SAMP>, <SAMP>`,&#38;'</SAMP>, or <SAMP>`;;&#38;'</SAMP>.
+The <VAR>word</VAR> undergoes tilde expansion, parameter expansion, command
+substitution, arithmetic expansion, and quote removal before matching is
+attempted.  Each <VAR>pattern</VAR> undergoes tilde expansion, parameter
+expansion, command substitution, and arithmetic expansion.
+</P><P>
+
+There may be an arbitrary number of <CODE>case</CODE> clauses, each terminated
+by a <SAMP>`;;'</SAMP>, <SAMP>`;&#38;'</SAMP>, or <SAMP>`;;&#38;'</SAMP>.
+The first pattern that matches determines the
+command-list that is executed.
+</P><P>
+
+Here is an example using <CODE>case</CODE> in a script that could be used to
+describe one interesting feature of an animal:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>echo -n "Enter the name of an animal: "
+read ANIMAL
+echo -n "The $ANIMAL has "
+case $ANIMAL in
+  horse | dog | cat) echo -n "four";;
+  man | kangaroo ) echo -n "two";;
+  *) echo -n "an unknown number of";;
+esac
+echo " legs."
+</pre></td></tr></table></P><P>
+
+</P><P>
+
+If the <SAMP>`;;'</SAMP> operator is used, no subsequent matches are attempted after
+the first pattern match.
+Using <SAMP>`;&#38;'</SAMP>  in place of <SAMP>`;;'</SAMP> causes execution to continue with
+the <VAR>command-list</VAR> associated with the next clause, if any.
+Using <SAMP>`;;&#38;'</SAMP> in place of <SAMP>`;;'</SAMP> causes the shell to test the patterns
+in the next clause, if any, and execute any associated <VAR>command-list</VAR>
+on a successful match.
+</P><P>
+
+The return status is zero if no <VAR>pattern</VAR> is matched.  Otherwise, the
+return status is the exit status of the <VAR>command-list</VAR> executed.
+</P><P>
+
+<DT><CODE>select</CODE>
+<DD><A NAME="IDX40"></A>
+<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><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>select <VAR>name</VAR> [in <VAR>words</VAR> <small>...</small>]; do <VAR>commands</VAR>; done
+</pre></td></tr></table></P><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
+error output stream, each preceded by a number.  If the
+<SAMP>`in <VAR>words</VAR>'</SAMP> is omitted, the positional parameters are printed,
+as if <SAMP>`in "$@"'</SAMP> had been specified.
+The <CODE>PS3</CODE> prompt is then displayed and a line is read from the
+standard input.
+If the line consists of a number corresponding to one of the displayed
+words, then the value of <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.
+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><P>
+
+The <VAR>commands</VAR> are executed after each selection until a
+<CODE>break</CODE> command is executed, at which
+point the <CODE>select</CODE> command completes.
+</P><P>
+
+Here is an example that allows the user to pick a filename from the
+current directory, and displays the name and index of the file
+selected.
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>select fname in *;
+do
+       echo you picked $fname \($REPLY\)
+       break;
+done
+</pre></td></tr></table></P><P>
+
+<DT><CODE>((<small>...</small>))</CODE>
+<DD><TABLE><tr><td>&nbsp;</td><td class=example><pre>(( <VAR>expression</VAR> ))
+</pre></td></tr></table><P>
+
+The arithmetic <VAR>expression</VAR> is evaluated according to the rules
+described below (see section <A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A>).
+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
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>let "<VAR>expression</VAR>"
+</pre></td></tr></table>See section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>, for a full description of the <CODE>let</CODE> builtin.
+</P><P>
+
+<DT><CODE>[[<small>...</small>]]</CODE>
+<DD><A NAME="IDX41"></A>
+<A NAME="IDX42"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[[ <VAR>expression</VAR> ]]
+</pre></td></tr></table><P>
+
+Return a status of 0 or 1 depending on the evaluation of
+the conditional expression <VAR>expression</VAR>.
+Expressions are composed of the primaries described below in
+<A HREF="bashref.html#SEC82">6.4 Bash Conditional Expressions</A>.
+Word splitting and filename expansion are not performed on the words
+between the <SAMP>`[['</SAMP> and <SAMP>`]]'</SAMP>; tilde expansion, parameter and
+variable expansion, arithmetic expansion, command substitution, process
+substitution, and quote removal are performed.
+Conditional operators such as <SAMP>`-f'</SAMP> must be unquoted to be recognized
+as primaries.
+</P><P>
+
+When the <SAMP>`=='</SAMP> and <SAMP>`!='</SAMP> operators are used, the string to the
+right of the operator is considered a pattern and matched according
+to the rules described below in <A HREF="bashref.html#SEC37">3.5.8.1 Pattern Matching</A>.
+If the shell option <CODE>nocasematch</CODE>
+(see the description of <CODE>shopt</CODE> in <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>)
+is enabled, the match is performed without regard to the case
+of alphabetic characters.
+The return value is 0 if the string matches (<SAMP>`=='</SAMP>) or does not
+match (<SAMP>`!='</SAMP>)the pattern, and 1 otherwise.
+Any part of the pattern may be quoted to force it to be matched as a
+string.
+</P><P>
+
+An additional binary operator, <SAMP>`=~'</SAMP>, is available, with the same
+precedence as <SAMP>`=='</SAMP> and <SAMP>`!='</SAMP>.
+When it is used, the string to the right of the operator is considered
+an extended regular expression and matched accordingly (as in <I>regex</I>3)).  
+The return value is 0 if the string matches
+the pattern, and 1 otherwise.
+If the regular expression is syntactically incorrect, the conditional
+expression's return value is 2.
+If the shell option <CODE>nocasematch</CODE>
+(see the description of <CODE>shopt</CODE> in <A HREF="bashref.html#SEC63">4.3.2 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 it to be matched as a
+string.
+Substrings matched by parenthesized subexpressions within the regular
+expression are saved in the array variable <CODE>BASH_REMATCH</CODE>.
+The element of <CODE>BASH_REMATCH</CODE> with index 0 is the portion of the string
+matching the entire regular expression.
+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>
+
+Expressions may be combined using the following operators, listed
+in decreasing order of precedence:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>( <VAR>expression</VAR> )</CODE>
+<DD>Returns the value of <VAR>expression</VAR>.
+This may be used to override the normal precedence of operators.
+<P>
+
+<DT><CODE>! <VAR>expression</VAR></CODE>
+<DD>True if <VAR>expression</VAR> is false.
+<P>
+
+<DT><CODE><VAR>expression1</VAR> &#38;&#38; <VAR>expression2</VAR></CODE>
+<DD>True if both <VAR>expression1</VAR> and <VAR>expression2</VAR> are true.
+<P>
+
+<DT><CODE><VAR>expression1</VAR> || <VAR>expression2</VAR></CODE>
+<DD>True if either <VAR>expression1</VAR> or <VAR>expression2</VAR> is true.
+</DL>
+The <CODE>&#38;&#38;</CODE> and <CODE>||</CODE> operators do not evaluate <VAR>expression2</VAR> if the
+value of <VAR>expression1</VAR> is sufficient to determine the return
+value of the entire conditional expression.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Command Grouping"></A>
+<HR SIZE="6">
+<A NAME="SEC22"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC21"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC19"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H4> 3.2.4.3 Grouping Commands </H4>
+<!--docid::SEC22::-->
+<P>
+
+Bash provides two ways to group a list of commands to be executed
+as a unit.  When commands are grouped, redirections may be applied
+to the entire command list.  For example, the output of all the
+commands in the list may be redirected to a single stream.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>()</CODE>
+<DD><TABLE><tr><td>&nbsp;</td><td class=example><pre>( <VAR>list</VAR> )
+</pre></td></tr></table><P>
+
+Placing a list of commands between parentheses causes a subshell
+environment to be created (see section <A HREF="bashref.html#SEC53">3.7.3 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><P>
+
+<DT><CODE>{}</CODE>
+<DD><A NAME="IDX43"></A>
+<A NAME="IDX44"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>{ <VAR>list</VAR>; }
+</pre></td></tr></table><P>
+
+Placing a list of commands between curly braces causes the list to
+be executed in the current shell context.  No subshell is created.
+The semicolon (or newline) following <VAR>list</VAR> is required.
+</DL>
+<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>
+by <CODE>blank</CODE>s or other shell metacharacters.
+The parentheses are <CODE>operators</CODE>, and are
+recognized as separate tokens by the shell even if they are not separated
+from the <VAR>list</VAR> by whitespace.
+</P><P>
+
+The exit status of both of these constructs is the exit status of
+<VAR>list</VAR>.
+</P><P>
+
+<A NAME="Coprocesses"></A>
+<HR SIZE="6">
+<A NAME="SEC23"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC22"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC24"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC24"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC24"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.2.5 Coprocesses </H3>
+<!--docid::SEC23::-->
+<P>
+
+A <CODE>coprocess</CODE> is a shell command preceded by the <CODE>coproc</CODE>
+reserved word.
+A coprocess is executed asynchronously in a subshell, as if the command
+had been terminated with the <SAMP>`&#38;'</SAMP> control operator, with a two-way pipe
+established between the executing shell and the coprocess.
+</P><P>
+
+The format for a coprocess is:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>coproc</CODE> [<VAR>NAME</VAR>] <VAR>command</VAR> [<VAR>redirections</VAR>]
+</pre></td></tr></table></P><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 section <A HREF="bashref.html#SEC16">3.2.1 Simple Commands</A>); otherwise, it is interpreted as
+the first word of the simple command.
+</P><P>
+
+When the coproc is executed, the shell creates an array variable
+(see section <A HREF="bashref.html#SEC85">6.7 Arrays</A>)
+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 <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 <VAR>NAME</VAR>[1].
+This pipe is established before any redirections specified by the
+command (see section <A HREF="bashref.html#SEC39">3.6 Redirections</A>).
+The file descriptors can be utilized as arguments to shell commands
+and redirections using standard word expansions.
+</P><P>
+
+The process id of the shell spawned to execute the coprocess is
+available as the value of the variable <VAR>NAME</VAR>_PID.
+The <CODE>wait</CODE>
+builtin command may be used to wait for the coprocess to terminate.
+</P><P>
+
+The return status of a coprocess is the exit status of <VAR>command</VAR>.
+</P><P>
+
+<A NAME="Shell Functions"></A>
+<HR SIZE="6">
+<A NAME="SEC24"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 3.3 Shell Functions </H2>
+<!--docid::SEC24::-->
+<P>
+
+Shell functions are a way to group commands for later execution
+using a single name for the group.  They are executed just like
+a "regular" command.
+When the name of a shell function is used as a simple command name,
+the list of commands associated with that function name is executed.
+Shell functions are executed in the current
+shell context; no new process is created to interpret them.
+</P><P>
+
+Functions are declared using this syntax:
+<A NAME="IDX45"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[ <CODE>function</CODE> ] <VAR>name</VAR> () <VAR>compound-command</VAR> [ <VAR>redirections</VAR> ]
+</pre></td></tr></table></P><P>
+
+This defines a shell function named <VAR>name</VAR>.  The reserved
+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
+<VAR>compound-command</VAR> (see section <A HREF="bashref.html#SEC19">3.2.4 Compound Commands</A>).
+That command is usually a <VAR>list</VAR> enclosed between { and }, but
+may be any compound command listed above.
+<VAR>compound-command</VAR> is executed whenever <VAR>name</VAR> is specified as the
+name of a command.
+Any redirections (see section <A HREF="bashref.html#SEC39">3.6 Redirections</A>) associated with the shell function
+are performed when the function is executed.
+</P><P>
+
+A function definition may be deleted using the <SAMP>`-f'</SAMP> option to the
+<CODE>unset</CODE> builtin (see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+</P><P>
+
+The exit status of a function definition is zero unless a syntax error
+occurs or a readonly function with the same name already exists.
+When executed, the exit status of a function is the exit status of the
+last command executed in the body.
+</P><P>
+
+Note that for historical reasons, in the most common usage the curly braces
+that surround the body of the function must be separated from the body by
+<CODE>blank</CODE>s or newlines.
+This is because the braces are reserved words and are only recognized
+as such when they are separated from the command list
+by whitespace or another shell metacharacter.
+Also, when using the braces, the <VAR>list</VAR> must be terminated by a semicolon,
+a <SAMP>`&#38;'</SAMP>, or a newline.
+</P><P>
+
+When a function is executed, the arguments to the
+function become the positional parameters
+during its execution (see section <A HREF="bashref.html#SEC26">3.4.1 Positional Parameters</A>).
+The special parameter <SAMP>`#'</SAMP> that expands to the number of
+positional parameters is updated to reflect the change.
+Special parameter <CODE>0</CODE> is unchanged.
+The first element of the <CODE>FUNCNAME</CODE> variable is set to the
+name of the function while the function is executing.
+All other aspects of the shell execution
+environment are identical between a function and its caller
+with the exception that the <CODE>DEBUG</CODE> and <CODE>RETURN</CODE> traps
+are not inherited unless the function has been given the
+<CODE>trace</CODE> attribute using the <CODE>declare</CODE> builtin or
+the <CODE>-o functrace</CODE> option has been enabled with
+the <CODE>set</CODE> builtin,
+(in which case all functions inherit the <CODE>DEBUG</CODE> and <CODE>RETURN</CODE> traps).
+See section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>, for the description of the
+<CODE>trap</CODE> builtin.
+</P><P>
+
+If the builtin command <CODE>return</CODE>
+is executed in a function, the function completes and
+execution resumes with the next command after the function
+call.
+Any command associated with the <CODE>RETURN</CODE> trap is executed
+before execution resumes.
+When a function completes, the values of the
+positional parameters and the special parameter <SAMP>`#'</SAMP>
+are restored to the values they had prior to the function's
+execution.  If a numeric argument is given to <CODE>return</CODE>,
+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</CODE>.
+</P><P>
+
+Variables local to the function may be declared with the
+<CODE>local</CODE> builtin.  These variables are visible only to
+the function and the commands it invokes.
+</P><P>
+
+Function names and definitions may be listed with the
+<SAMP>`-f'</SAMP> option to the <CODE>declare</CODE> or <CODE>typeset</CODE>
+builtin commands (see section <A HREF="bashref.html#SEC60">4.2 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
+automatically have them defined with the
+<SAMP>`-f'</SAMP> option to the <CODE>export</CODE> builtin
+(see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+Note that shell functions and variables with the same name may result
+in multiple identically-named entries in the environment passed to the
+shell's children.
+Care should be taken in cases where this may cause a problem.
+</P><P>
+
+Functions may be recursive.  No limit is placed on the number of
+recursive  calls.
+</P><P>
+
+<A NAME="Shell Parameters"></A>
+<HR SIZE="6">
+<A NAME="SEC25"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC24"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC26"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 3.4 Shell Parameters </H2>
+<!--docid::SEC25::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC26">3.4.1 Positional Parameters</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The shell's command-line arguments.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Parameters denoted by special characters.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+A <VAR>parameter</VAR> 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>.
+Attributes are assigned using the <CODE>declare</CODE> builtin command
+(see the description of the <CODE>declare</CODE> builtin in <A HREF="bashref.html#SEC60">4.2 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
+the <CODE>unset</CODE> builtin command.
+</P><P>
+
+A variable may be assigned to by a statement of the form
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><VAR>name</VAR>=[<VAR>value</VAR>]
+</pre></td></tr></table>If <VAR>value</VAR>
+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>
+attribute set, then <VAR>value</VAR> 
+is evaluated as an arithmetic expression even if the <CODE>$((<small>...</small>))</CODE>
+expansion is not used (see section <A HREF="bashref.html#SEC33">3.5.5 Arithmetic Expansion</A>).
+Word splitting is not performed, with the exception
+of <CODE>"$@"</CODE> as explained below.
+Filename expansion is 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.
+</P><P>
+
+In the context where an assignment statement is assigning a value  
+to a shell variable or array index (see section <A HREF="bashref.html#SEC85">6.7 Arrays</A>), the <SAMP>`+='</SAMP>
+operator can be used to   
+append to or add to the variable's previous value.
+When <SAMP>`+='</SAMP> is applied to a variable for which the integer attribute
+has been set, <VAR>value</VAR> is evaluated as an arithmetic expression and
+added to the variable's current value, which is also evaluated.
+When <SAMP>`+='</SAMP> is applied to an array variable using compound assignment
+(see section <A HREF="bashref.html#SEC85">6.7 Arrays</A>), the
+variable's value is not unset (as it is when using <SAMP>`='</SAMP>), and new
+values are appended to the array beginning at one greater than the array's
+maximum index (for indexed arrays),  or added as additional key-value pairs
+in an associative array.
+When applied to a string-valued variable, <VAR>value</VAR> is expanded and
+appended to the variable's value.
+</P><P>
+
+<A NAME="Positional Parameters"></A>
+<HR SIZE="6">
+<A NAME="SEC26"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC27"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.4.1 Positional Parameters </H3>
+<!--docid::SEC26::-->
+<P>
+
+A <VAR>positional parameter</VAR> is a parameter denoted by one or more
+digits, other than the single digit <CODE>0</CODE>.  Positional parameters are
+assigned from the shell's arguments when it is invoked,
+and may be reassigned using the <CODE>set</CODE> builtin command.
+Positional parameter <CODE>N</CODE> may be referenced as <CODE>${N}</CODE>, or
+as <CODE>$N</CODE> when <CODE>N</CODE> consists of a single digit.
+Positional parameters may not be assigned to with assignment statements.
+The <CODE>set</CODE> and <CODE>shift</CODE> builtins are used to set and
+unset them (see section <A HREF="bashref.html#SEC58">4. Shell Builtin Commands</A>).
+The positional parameters are
+temporarily replaced when a shell function is executed
+(see section <A HREF="bashref.html#SEC24">3.3 Shell Functions</A>).
+</P><P>
+
+When a positional parameter consisting of more than a single
+digit is expanded, it must be enclosed in braces.
+</P><P>
+
+<A NAME="Special Parameters"></A>
+<HR SIZE="6">
+<A NAME="SEC27"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC26"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.4.2 Special Parameters </H3>
+<!--docid::SEC27::-->
+<P>
+
+The shell treats several parameters specially.  These parameters may
+only be referenced; assignment to them is not allowed.
+</P><P>
+
+<DL COMPACT>
+
+<A NAME="IDX46"></A>
+<DT><CODE>*</CODE>
+<DD><A NAME="IDX47"></A>
+Expands to the positional parameters, starting from one.  When the
+expansion occurs within double quotes, it expands to a single word
+with the value of each parameter separated by the first character
+of the <CODE>IFS</CODE>
+special variable.  That is, <CODE>"$*"</CODE> is equivalent
+to <CODE>"$1<VAR>c</VAR>$2<VAR>c</VAR><small>...</small>"</CODE>, where <VAR>c</VAR>
+is the first character of the value of the <CODE>IFS</CODE>
+variable.
+If <CODE>IFS</CODE> is unset, the parameters are separated by spaces.
+If <CODE>IFS</CODE> is null, the parameters are joined without intervening
+separators.
+<P>
+
+<A NAME="IDX48"></A>
+<DT><CODE>@</CODE>
+<DD><A NAME="IDX49"></A>
+Expands to the positional parameters, starting from one.  When the
+expansion occurs within double quotes, each parameter expands to a
+separate word.  That is, <CODE>"$@"</CODE> is equivalent to
+<CODE>"$1" "$2" <small>...</small></CODE>.
+If the double-quoted expansion occurs within a word, the expansion of
+the first parameter is joined with the beginning part of the original
+word, and the expansion of the last parameter is joined with the last
+part of the original word.
+When there are no positional parameters, <CODE>"$@"</CODE> and
+<CODE>$@</CODE>
+expand to nothing (i.e., they are removed).
+<P>
+
+<A NAME="IDX50"></A>
+<DT><CODE>#</CODE>
+<DD><A NAME="IDX51"></A>
+Expands to the number of positional parameters in decimal.
+<P>
+
+<A NAME="IDX52"></A>
+<DT><CODE>?</CODE>
+<DD><A NAME="IDX53"></A>
+Expands to the exit status of the most recently executed foreground
+pipeline.
+<P>
+
+<A NAME="IDX54"></A>
+<DT><CODE>-</CODE>
+<DD><A NAME="IDX55"></A>
+(A hyphen.)  Expands to the current option flags as specified upon
+invocation, by the <CODE>set</CODE>
+builtin command, or those set by the shell itself
+(such as the <SAMP>`-i'</SAMP> option).
+<P>
+
+<A NAME="IDX56"></A>
+<DT><CODE>$</CODE>
+<DD><A NAME="IDX57"></A>
+Expands to the process ID of the shell.  In a <CODE>()</CODE> subshell, it
+expands to the process ID of the invoking shell, not the subshell.
+<P>
+
+<A NAME="IDX58"></A>
+<DT><CODE>!</CODE>
+<DD><A NAME="IDX59"></A>
+Expands to the process ID of the most recently executed background
+(asynchronous) command.
+<P>
+
+<A NAME="IDX60"></A>
+<DT><CODE>0</CODE>
+<DD><A NAME="IDX61"></A>
+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
+(see section <A HREF="bashref.html#SEC57">3.8 Shell Scripts</A>), <CODE>$0</CODE> is set to the name of that file.
+If Bash is started with the <SAMP>`-c'</SAMP> option (see section <A HREF="bashref.html#SEC69">6.1 Invoking Bash</A>),
+then <CODE>$0</CODE> is set to the first argument after the string to be
+executed, if one is present.  Otherwise, it is set
+to the filename used to invoke Bash, as given by argument zero.
+<P>
+
+<A NAME="IDX62"></A>
+<DT><CODE>_</CODE>
+<DD><A NAME="IDX63"></A>
+(An underscore.)
+At shell startup, set to the absolute pathname used to invoke the
+shell or shell script being executed as passed in the environment
+or argument list.
+Subsequently, expands to the last argument to the previous command,
+after expansion.   
+Also set to the full pathname used to invoke each command executed
+and placed in the environment exported to that command.
+When checking mail, this parameter holds the name of the mail file.
+</DL>
+<P>
+
+<A NAME="Shell Expansions"></A>
+<HR SIZE="6">
+<A NAME="SEC28"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC27"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC29"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 3.5 Shell Expansions </H2>
+<!--docid::SEC28::-->
+<P>
+
+Expansion is performed on the command line after it has been split into
+<CODE>token</CODE>s.  There are seven kinds of expansion performed:
+<UL>
+<LI>brace expansion
+<LI>tilde expansion
+<LI>parameter and variable expansion
+<LI>command substitution
+<LI>arithmetic expansion
+<LI>word splitting
+<LI>filename expansion
+</UL>
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC29">3.5.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"><A HREF="bashref.html#SEC30">3.5.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"><A HREF="bashref.html#SEC31">3.5.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"><A HREF="bashref.html#SEC32">3.5.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"><A HREF="bashref.html#SEC33">3.5.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"><A HREF="bashref.html#SEC34">3.5.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"><A HREF="bashref.html#SEC35">3.5.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"><A HREF="bashref.html#SEC36">3.5.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"><A HREF="bashref.html#SEC38">3.5.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></BLOCKQUOTE>
+<P>
+
+The order of expansions is: brace expansion, tilde expansion,
+parameter, variable, and arithmetic expansion and
+command substitution
+(done in a left-to-right fashion), word splitting, and filename
+expansion.
+</P><P>
+
+On systems that can support it, there is an additional expansion
+available: <VAR>process substitution</VAR>.  This is performed at the
+same time as parameter, variable, and arithmetic expansion and
+command substitution.
+</P><P>
+
+Only brace expansion, word splitting, and filename expansion
+can change the number of words of the expansion; other expansions
+expand a single word to a single word.
+The only exceptions to this are the expansions of
+<CODE>"$@"</CODE> (see section <A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A>) and <CODE>"${<VAR>name</VAR>[@]}"</CODE>
+(see section <A HREF="bashref.html#SEC85">6.7 Arrays</A>).
+</P><P>
+
+After all expansions, <CODE>quote removal</CODE> (see section <A HREF="bashref.html#SEC38">3.5.9 Quote Removal</A>)
+is performed.
+</P><P>
+
+<A NAME="Brace Expansion"></A>
+<HR SIZE="6">
+<A NAME="SEC29"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC30"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.5.1 Brace Expansion </H3>
+<!--docid::SEC29::-->
+<P>
+
+Brace expansion is a mechanism by which arbitrary strings may be generated.
+This mechanism is similar to
+<VAR>filename expansion</VAR> (see section <A HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A>),
+but the file names 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 seqeunce expression
+between a pair of braces,
+followed by an optional <VAR>postscript</VAR>.
+The preamble is prefixed to each string contained within the braces, and
+the postscript is then appended to each resulting string, expanding left
+to right.
+</P><P>
+
+Brace expansions may be nested.
+The results of each expanded string are not sorted; left to right order
+is preserved.
+For example,
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>bash$ echo a{d,c,b}e
+ade ace abe
+</pre></td></tr></table></P><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,
+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.
+Supplied integers may be prefixed with <SAMP>`0'</SAMP> to force each term to have the
+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
+lexicographically between <VAR>x</VAR> and <VAR>y</VAR>, inclusive.  Note that
+both <VAR>x</VAR> and <VAR>y</VAR> must be of the same type.
+When the increment is supplied, it is used as the difference between
+each term.  The default increment is 1 or -1 as appropriate.
+</P><P>
+
+Brace expansion is performed before any other expansions,
+and any characters special to other expansions are preserved
+in the result.  It is strictly textual.  Bash
+does not apply any syntactic interpretation to the context of the
+expansion or the text between the braces.
+To avoid conflicts with parameter expansion, the string <SAMP>`${'</SAMP>
+is not considered eligible for brace expansion.
+</P><P>
+
+A correctly-formed brace expansion must contain unquoted opening
+and closing braces, and at least one unquoted comma or a valid
+sequence expression.
+Any incorrectly formed brace expansion is left unchanged.
+</P><P>
+
+A { or <SAMP>`,'</SAMP> may be quoted with a backslash to prevent its
+being considered part of a brace expression.
+To avoid conflicts with parameter expansion, the string <SAMP>`${'</SAMP>
+is not considered eligible for brace expansion.
+</P><P>
+
+This construct is typically used as shorthand when the common
+prefix of the strings to be generated is longer than in the
+above example:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>mkdir /usr/local/src/bash/{old,new,dist,bugs}
+</pre></td></tr></table>or
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
+</pre></td></tr></table></P><P>
+
+<A NAME="Tilde Expansion"></A>
+<HR SIZE="6">
+<A NAME="SEC30"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC29"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC31"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC31"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.5.2 Tilde Expansion </H3>
+<!--docid::SEC30::-->
+<P>
+
+If a word begins with an unquoted tilde character (<SAMP>`~'</SAMP>), all of the
+characters up to the first unquoted slash (or all characters,
+if there is no unquoted slash) are considered a <VAR>tilde-prefix</VAR>.
+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>.
+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
+shell is substituted instead.
+Otherwise, the tilde-prefix is replaced with the home directory
+associated with the specified login name.
+</P><P>
+
+If the tilde-prefix is <SAMP>`~+'</SAMP>, the value of
+the shell variable <CODE>PWD</CODE> replaces the tilde-prefix.
+If the tilde-prefix is <SAMP>`~-'</SAMP>, the value of the shell variable
+<CODE>OLDPWD</CODE>, if it is set, is substituted.
+</P><P>
+
+If the characters following the tilde in the tilde-prefix consist of a
+number <VAR>N</VAR>, optionally prefixed by a <SAMP>`+'</SAMP> or a <SAMP>`-'</SAMP>,
+the tilde-prefix is replaced with the
+corresponding element from the directory stack, as it would be displayed
+by the <CODE>dirs</CODE> builtin invoked with the characters following tilde
+in the tilde-prefix as an argument (see section <A HREF="bashref.html#SEC86">6.8 The Directory Stack</A>).
+If the tilde-prefix, sans the tilde, consists of a number without a
+leading <SAMP>`+'</SAMP> or <SAMP>`-'</SAMP>, <SAMP>`+'</SAMP> is assumed.
+</P><P>
+
+If the login name is invalid, or the tilde expansion fails, the word is
+left unchanged.
+</P><P>
+
+Each variable assignment is checked for unquoted tilde-prefixes immediately
+following a <SAMP>`:'</SAMP> or the first <SAMP>`='</SAMP>.
+In these cases, tilde expansion is also performed.
+Consequently, one may use file names with tildes in assignments to
+<CODE>PATH</CODE>, <CODE>MAILPATH</CODE>, and <CODE>CDPATH</CODE>,
+and the shell assigns the expanded value.
+</P><P>
+
+The following table shows how Bash treats unquoted tilde-prefixes:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>~</CODE>
+<DD>The value of <CODE>$HOME</CODE>
+<DT><CODE>~/foo</CODE>
+<DD><TT>`$HOME/foo'</TT>
+<P>
+
+<DT><CODE>~fred/foo</CODE>
+<DD>The subdirectory <CODE>foo</CODE> of the home directory of the user
+<CODE>fred</CODE>
+<P>
+
+<DT><CODE>~+/foo</CODE>
+<DD><TT>`$PWD/foo'</TT>
+<P>
+
+<DT><CODE>~-/foo</CODE>
+<DD><TT>`${OLDPWD-'~-'}/foo'</TT>
+<P>
+
+<DT><CODE>~<VAR>N</VAR></CODE>
+<DD>The string that would be displayed by <SAMP>`dirs +<VAR>N</VAR>'</SAMP>
+<P>
+
+<DT><CODE>~+<VAR>N</VAR></CODE>
+<DD>The string that would be displayed by <SAMP>`dirs +<VAR>N</VAR>'</SAMP>
+<P>
+
+<DT><CODE>~-<VAR>N</VAR></CODE>
+<DD>The string that would be displayed by <SAMP>`dirs -<VAR>N</VAR>'</SAMP>
+<P>
+
+</DL>
+<P>
+
+<A NAME="Shell Parameter Expansion"></A>
+<HR SIZE="6">
+<A NAME="SEC31"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC30"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC32"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC32"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.5.3 Shell Parameter Expansion </H3>
+<!--docid::SEC31::-->
+<P>
+
+The <SAMP>`$'</SAMP> character introduces parameter expansion,
+command substitution, or arithmetic expansion.  The parameter name
+or symbol to be expanded may be enclosed in braces, which
+are optional but serve to protect the variable to be expanded from
+characters immediately following it which could be
+interpreted as part of the name.
+</P><P>
+
+When braces are used, the matching ending brace is the first <SAMP>`}'</SAMP>
+not escaped by a backslash or within a quoted string, and not within an
+embedded arithmetic expansion, command substitution, or parameter
+expansion.
+</P><P>
+
+The basic form of parameter expansion is ${<VAR>parameter</VAR>}.
+The value of <VAR>parameter</VAR> is substituted.  The braces are required
+when <VAR>parameter</VAR>
+is a positional parameter with more than one digit,
+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,
+a level of variable indirection is introduced.
+Bash uses the value of the variable formed from the rest of
+<VAR>parameter</VAR> as the name of the variable; this variable is then
+expanded and that value is used in the rest of the substitution, rather
+than the value of <VAR>parameter</VAR> itself.
+This is known as <CODE>indirect expansion</CODE>.
+The exceptions to this are the expansions of ${!<VAR>prefix*</VAR>}
+and ${!<VAR>name</VAR>[@]}
+described below.
+The exclamation point must immediately follow the left brace in order to
+introduce indirection.
+</P><P>
+
+In each of the cases below, <VAR>word</VAR> is subject to tilde expansion,
+parameter expansion, command substitution, and arithmetic expansion.
+</P><P>
+
+When not performing substring expansion, using the form described
+below, Bash tests for a parameter that is unset or null.
+Omitting the colon results in a test only for a parameter that is unset.
+Put another way, if the colon is included,
+the operator tests for both <VAR>parameter</VAR>'s existence and that its value
+is not null; if the colon is omitted, the operator tests only for existence.
+</P><P>
+
+<DL COMPACT>
+
+<DT><CODE>${<VAR>parameter</VAR>:-<VAR>word</VAR>}</CODE>
+<DD>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>
+
+<DT><CODE>${<VAR>parameter</VAR>:=<VAR>word</VAR>}</CODE>
+<DD>If <VAR>parameter</VAR>
+is unset or null, the expansion of <VAR>word</VAR>
+is assigned to <VAR>parameter</VAR>.
+The value of <VAR>parameter</VAR> is then substituted. 
+Positional parameters and special parameters may not be assigned to
+in this way.
+<P>
+
+<DT><CODE>${<VAR>parameter</VAR>:?<VAR>word</VAR>}</CODE>
+<DD>If <VAR>parameter</VAR>
+is null or unset, the expansion of <VAR>word</VAR> (or a message
+to that effect if <VAR>word</VAR>
+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>
+
+<DT><CODE>${<VAR>parameter</VAR>:+<VAR>word</VAR>}</CODE>
+<DD>If <VAR>parameter</VAR>
+is null or unset, nothing is substituted, otherwise the expansion of
+<VAR>word</VAR> is substituted.
+<P>
+
+<DT><CODE>${<VAR>parameter</VAR>:<VAR>offset</VAR>}</CODE>
+<DD><DT><CODE>${<VAR>parameter</VAR>:<VAR>offset</VAR>:<VAR>length</VAR>}</CODE>
+<DD>Expands to up to <VAR>length</VAR> characters of <VAR>parameter</VAR>
+starting at the character specified by <VAR>offset</VAR>.
+If <VAR>length</VAR> is omitted, expands to the substring of
+<VAR>parameter</VAR> starting at the character specified by <VAR>offset</VAR>.
+<VAR>length</VAR> and <VAR>offset</VAR> are arithmetic expressions
+(see section <A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A>).
+This is referred to as Substring Expansion.
+<P>
+
+<VAR>length</VAR> must evaluate to a number greater than or equal to zero.
+If <VAR>offset</VAR> evaluates to a number less than zero, the value
+is used as an offset from the end of the value of <VAR>parameter</VAR>.
+If <VAR>parameter</VAR> is <SAMP>`@'</SAMP>, the result is <VAR>length</VAR> positional
+parameters beginning at <VAR>offset</VAR>.
+If <VAR>parameter</VAR> is an indexed array name subscripted
+by <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>, the result is the <VAR>length</VAR>
+members of the array beginning with <CODE>${<VAR>parameter</VAR>[<VAR>offset</VAR>]}</CODE>.
+A negative <VAR>offset</VAR> is taken relative to one greater than the maximum
+index of the specified array.
+Substring expansion applied to an associative array produces undefined
+results.
+</P><P>
+
+Note that a negative offset must be separated from the colon by at least
+one space to avoid being confused with the <SAMP>`:-'</SAMP> expansion.
+Substring indexing is zero-based unless the positional parameters
+are used, in which case the indexing starts at 1 by default.
+If <VAR>offset</VAR> is 0, and the positional parameters are used, <CODE>$@</CODE> is
+prefixed to the list.
+</P><P>
+
+<DT><CODE>${!<VAR>prefix</VAR>*}</CODE>
+<DD><DT><CODE>${!<VAR>prefix</VAR>@}</CODE>
+<DD>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 <SAMP>`@'</SAMP> is used and the expansion appears within double quotes, each
+variable name expands to a separate word.
+<P>
+
+<DT><CODE>${!<VAR>name</VAR>[@]}</CODE>
+<DD><DT><CODE>${!<VAR>name</VAR>[*]}</CODE>
+<DD>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
+otherwise.
+When <SAMP>`@'</SAMP> is used and the expansion appears within double quotes, each
+key expands to a separate word.
+<P>
+
+<DT><CODE>${#<VAR>parameter</VAR>}</CODE>
+<DD>The length in characters of the expanded value of <VAR>parameter</VAR> is
+substituted.
+If <VAR>parameter</VAR> is <SAMP>`*'</SAMP> or <SAMP>`@'</SAMP>, the value substituted
+is the number of positional parameters.
+If <VAR>parameter</VAR> is an array name subscripted by <SAMP>`*'</SAMP> or <SAMP>`@'</SAMP>, 
+the value substituted is the number of elements in the array.
+<P>
+
+<DT><CODE>${<VAR>parameter</VAR>#<VAR>word</VAR>}</CODE>
+<DD><DT><CODE>${<VAR>parameter</VAR>##<VAR>word</VAR>}</CODE>
+<DD>The <VAR>word</VAR>
+is expanded to produce a pattern just as in filename
+expansion (see section <A HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A>).  If the pattern matches
+the beginning of the expanded value of <VAR>parameter</VAR>,
+then the result of the expansion is the expanded value of <VAR>parameter</VAR>
+with the shortest matching pattern (the <SAMP>`#'</SAMP> case) or the
+longest matching pattern (the <SAMP>`##'</SAMP> case) deleted.
+If <VAR>parameter</VAR> is <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>,
+the pattern removal operation is applied to each positional
+parameter in turn, and the expansion is the resultant list.
+If <VAR>parameter</VAR> is an array variable subscripted with
+<SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>,
+the pattern removal operation is applied to each member of the
+array in turn, and the expansion is the resultant list.
+<P>
+
+<DT><CODE>${<VAR>parameter</VAR>%<VAR>word</VAR>}</CODE>
+<DD><DT><CODE>${<VAR>parameter</VAR>%%<VAR>word</VAR>}</CODE>
+<DD>The <VAR>word</VAR> is expanded to produce a pattern just as in
+filename expansion.
+If the pattern matches a trailing portion of the expanded value of
+<VAR>parameter</VAR>, then the result of the expansion is the value of
+<VAR>parameter</VAR> with the shortest matching pattern (the <SAMP>`%'</SAMP> case)
+or the longest matching pattern (the <SAMP>`%%'</SAMP> case) deleted.
+If <VAR>parameter</VAR> is <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>,
+the pattern removal operation is applied to each positional
+parameter in turn, and the expansion is the resultant list.
+If <VAR>parameter</VAR>
+is an array variable subscripted with <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>,
+the pattern removal operation is applied to each member of the
+array in turn, and the expansion is the resultant list.
+<P>
+
+<DT><CODE>${<VAR>parameter</VAR>/<VAR>pattern</VAR>/<VAR>string</VAR>}</CODE>
+<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>.
+If <VAR>pattern</VAR> begins with <SAMP>`/'</SAMP>, 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 <SAMP>`#'</SAMP>, it must match at the beginning
+of the expanded value of <VAR>parameter</VAR>.
+If <VAR>pattern</VAR> begins with <SAMP>`%'</SAMP>, 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 <VAR>parameter</VAR> is <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>,
+the substitution operation is applied to each positional
+parameter in turn, and the expansion is the resultant list.
+If <VAR>parameter</VAR>
+is an array variable subscripted with <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>,
+the substitution operation is applied to each member of the
+array in turn, and the expansion is the resultant list.
+</P><P>
+
+<DT><CODE>${<VAR>parameter</VAR>^<VAR>pattern</VAR>}</CODE>
+<DD><DT><CODE>${<VAR>parameter</VAR>^^<VAR>pattern</VAR>}</CODE>
+<DD><DT><CODE>${<VAR>parameter</VAR>,<VAR>pattern</VAR>}</CODE>
+<DD><DT><CODE>${<VAR>parameter</VAR>,,<VAR>pattern</VAR>}</CODE>
+<DD>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
+pathname expansion.
+The <SAMP>`^'</SAMP> operator converts lowercase letters matching <VAR>pattern</VAR>
+to uppercase; the <SAMP>`,'</SAMP> operator converts matching uppercase letters
+to lowercase.
+The <SAMP>`^^'</SAMP> and <SAMP>`,,'</SAMP> expansions convert each matched character in the
+expanded value; the <SAMP>`^'</SAMP> and <SAMP>`,'</SAMP> expansions match and convert only
+the first character in the expanded value.
+If <VAR>pattern</VAR> is omitted, it is treated like a <SAMP>`?'</SAMP>, which matches
+every character.
+If <VAR>parameter</VAR> is <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>,
+the case modification operation is applied to each positional
+parameter in turn, and the expansion is the resultant list.
+If <VAR>parameter</VAR>
+is an array variable subscripted with <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>,
+the case modification operation is applied to each member of the
+array in turn, and the expansion is the resultant list.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Command Substitution"></A>
+<HR SIZE="6">
+<A NAME="SEC32"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC31"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC33"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC33"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.5.4 Command Substitution </H3>
+<!--docid::SEC32::-->
+<P>
+
+Command substitution allows the output of a command to replace
+the command itself.
+Command substitution occurs when a command is enclosed as follows:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>$(<VAR>command</VAR>)
+</pre></td></tr></table>or
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>`<VAR>command</VAR>`
+</pre></td></tr></table></P><P>
+
+Bash performs the expansion by executing <VAR>command</VAR> and
+replacing the command substitution with the standard output of the
+command, with any trailing newlines deleted.
+Embedded newlines are not deleted, but they may be removed during
+word splitting.
+The command substitution <CODE>$(cat <VAR>file</VAR>)</CODE> can be
+replaced by the equivalent but faster <CODE>$(&#60; <VAR>file</VAR>)</CODE>.
+</P><P>
+
+When the old-style backquote form of substitution is used,
+backslash retains its literal meaning except when followed by
+<SAMP>`$'</SAMP>, <SAMP>``'</SAMP>, or <SAMP>`\'</SAMP>. 
+The first backquote not preceded by a backslash terminates the
+command substitution.
+When using the <CODE>$(<VAR>command</VAR>)</CODE> form, all characters between
+the parentheses make up the command; none are treated specially.
+</P><P>
+
+Command substitutions may be nested.  To nest when using the backquoted
+form, escape the inner backquotes with backslashes.
+</P><P>
+
+If the substitution appears within double quotes, word splitting and
+filename expansion are not performed on the results.
+</P><P>
+
+<A NAME="Arithmetic Expansion"></A>
+<HR SIZE="6">
+<A NAME="SEC33"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC32"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC34"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC34"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.5.5 Arithmetic Expansion </H3>
+<!--docid::SEC33::-->
+<P>
+
+Arithmetic expansion allows the evaluation of an arithmetic expression
+and the substitution of the result.  The format for arithmetic expansion is:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>$(( <VAR>expression</VAR> ))
+</pre></td></tr></table></P><P>
+
+The expression is treated as if it were within double quotes, but
+a double quote inside the parentheses is not treated specially.
+All tokens in the expression undergo parameter expansion, command
+substitution, and quote removal.
+Arithmetic expansions may be nested. 
+</P><P>
+
+The evaluation is performed according to the rules listed below
+(see section <A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A>).
+If the expression is invalid, Bash prints a message indicating
+failure to the standard error and no substitution occurs.
+</P><P>
+
+<A NAME="Process Substitution"></A>
+<HR SIZE="6">
+<A NAME="SEC34"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC33"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC35"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC35"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.5.6 Process Substitution </H3>
+<!--docid::SEC34::-->
+<P>
+
+Process substitution is supported on systems that support named
+pipes (FIFOs) or the <TT>`/dev/fd'</TT> method of naming open files.
+It takes the form of 
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#60;(<VAR>list</VAR>)
+</pre></td></tr></table>or
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#62;(<VAR>list</VAR>)
+</pre></td></tr></table>The process <VAR>list</VAR> is run with its input or output connected to a
+FIFO or some file in <TT>`/dev/fd'</TT>.  The name of this file is
+passed as an argument to the current command as the result of the
+expansion.  If the <CODE>&#62;(<VAR>list</VAR>)</CODE> form is used, writing to
+the file will provide input for <VAR>list</VAR>.  If the
+<CODE>&#60;(<VAR>list</VAR>)</CODE> form is used, the file passed as an
+argument should be read to obtain the output of <VAR>list</VAR>.
+Note that no space may appear between the <CODE>&#60;</CODE> or <CODE>&#62;</CODE>
+and the left parenthesis, otherwise the construct would be interpreted
+as a redirection.
+</P><P>
+
+When available, process substitution is performed simultaneously with
+parameter and variable expansion, command substitution, and arithmetic
+expansion.
+</P><P>
+
+<A NAME="Word Splitting"></A>
+<HR SIZE="6">
+<A NAME="SEC35"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC34"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC36"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC36"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.5.7 Word Splitting </H3>
+<!--docid::SEC35::-->
+<P>
+
+The shell scans the results of parameter expansion, command substitution,
+and arithmetic expansion that did not occur within double quotes for
+word splitting.
+</P><P>
+
+The shell treats each character of <CODE>$IFS</CODE> as a delimiter, and splits
+the results of the other expansions into words on these characters.
+If <CODE>IFS</CODE> is unset, or its value is exactly <CODE>&#60;space&#62;&#60;tab&#62;&#60;newline&#62;</CODE>,
+the default, then sequences of
+<CODE> &#60;space&#62;</CODE>, <CODE>&#60;tab&#62;</CODE>, and <CODE>&#60;newline&#62;</CODE>
+at the beginning and end of the results of the previous
+expansions are ignored, and any sequence of <CODE>IFS</CODE>
+characters not at the beginning or end serves to delimit words.
+If <CODE>IFS</CODE> has a value other than the default, then sequences of
+the whitespace characters <CODE>space</CODE> and <CODE>tab</CODE>
+are ignored at the beginning and end of the
+word, as long as the whitespace character is in the
+value of <CODE>IFS</CODE> (an <CODE>IFS</CODE> whitespace character).
+Any character in <CODE>IFS</CODE> that is not <CODE>IFS</CODE>
+whitespace, along with any adjacent <CODE>IFS</CODE>
+whitespace characters, delimits a field.  A sequence of <CODE>IFS</CODE>
+whitespace characters is also treated as a delimiter.
+If the value of <CODE>IFS</CODE> is null, no word splitting occurs.
+</P><P>
+
+Explicit null arguments (<CODE>""</CODE> or <CODE>"</CODE>) are retained.
+Unquoted implicit null arguments, resulting from the expansion of
+parameters that have no values, are removed.
+If a parameter with no value is expanded within double quotes, a
+null argument results and is retained.
+</P><P>
+
+Note that if no expansion occurs, no splitting
+is performed.
+</P><P>
+
+<A NAME="Filename Expansion"></A>
+<HR SIZE="6">
+<A NAME="SEC36"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC35"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC37"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC38"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC38"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.5.8 Filename Expansion </H3>
+<!--docid::SEC36::-->
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC37">3.5.8.1 Pattern Matching</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How the shell matches patterns.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<A NAME="IDX64"></A>
+<A NAME="IDX65"></A>
+<A NAME="IDX66"></A>
+<A NAME="IDX67"></A>
+<P>
+
+After word splitting, unless the <SAMP>`-f'</SAMP> option has been set
+(see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>), Bash scans each word for the characters
+<SAMP>`*'</SAMP>, <SAMP>`?'</SAMP>, and <SAMP>`['</SAMP>.
+If one of these characters appears, then the word is
+regarded as a <VAR>pattern</VAR>,
+and replaced with an alphabetically sorted list of
+file names matching the pattern. If no matching file names are found,
+and the shell option <CODE>nullglob</CODE> is disabled, the word is left
+unchanged.
+If the <CODE>nullglob</CODE> option is set, and no matches are found, the word
+is removed.
+If the <CODE>failglob</CODE> shell option is set, and no matches are found,
+an error message is printed and the command is not executed.
+If the shell option <CODE>nocaseglob</CODE> is enabled, the match is performed
+without regard to the case of alphabetic characters.
+</P><P>
+
+When a pattern is used for filename generation, the character <SAMP>`.'</SAMP>
+at the start of a filename or immediately following a slash
+must be matched explicitly, unless the shell option <CODE>dotglob</CODE> is set.
+When matching a file name, the slash character must always be
+matched explicitly.
+In other cases, the <SAMP>`.'</SAMP> character is not treated specially.
+</P><P>
+
+See the description of <CODE>shopt</CODE> in <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>,
+for a description of the <CODE>nocaseglob</CODE>, <CODE>nullglob</CODE>,
+<CODE>failglob</CODE>, and <CODE>dotglob</CODE> options.
+</P><P>
+
+The <CODE>GLOBIGNORE</CODE>
+shell variable may be used to restrict the set of filenames matching a
+pattern.  If <CODE>GLOBIGNORE</CODE>
+is set, each matching filename that also matches one of the patterns in
+<CODE>GLOBIGNORE</CODE> is removed from the list of matches.  The filenames
+<TT>`.'</TT> and <TT>`..'</TT>
+are always ignored when <CODE>GLOBIGNORE</CODE>
+is set and not null.
+However, setting <CODE>GLOBIGNORE</CODE> to a non-null value has the effect of
+enabling the <CODE>dotglob</CODE>
+shell option, so all other filenames beginning with a
+<SAMP>`.'</SAMP> will match.
+To get the old behavior of ignoring filenames beginning with a
+<SAMP>`.'</SAMP>, make <SAMP>`.*'</SAMP> one of the patterns in <CODE>GLOBIGNORE</CODE>.
+The <CODE>dotglob</CODE> option is disabled when <CODE>GLOBIGNORE</CODE>
+is unset.
+</P><P>
+
+<A NAME="Pattern Matching"></A>
+<HR SIZE="6">
+<A NAME="SEC37"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC36"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC38"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC38"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC36"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC38"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H4> 3.5.8.1 Pattern Matching </H4>
+<!--docid::SEC37::-->
+<P>
+
+Any character that appears in a pattern, other than the special pattern
+characters described below, matches itself.
+The NUL character may not occur in a pattern.
+A backslash escapes the following character; the
+escaping backslash is discarded when matching.
+The special pattern characters must be quoted if they are to be matched
+literally.
+</P><P>
+
+The special pattern characters have the following meanings:
+<DL COMPACT>
+<DT><CODE>*</CODE>
+<DD>Matches any string, including the null string.
+When the <CODE>globstar</CODE> shell option is enabled, and <SAMP>`*'</SAMP> is used in
+a filename expansion context, two adjacent <SAMP>`*'</SAMP>s used as a single
+pattern will match all files and zero or more directories and
+subdirectories.
+If followed by a <SAMP>`/'</SAMP>, two adjacent <SAMP>`*'</SAMP>s will match only
+directories and subdirectories.
+<DT><CODE>?</CODE>
+<DD>Matches any single character.
+<DT><CODE>[<small>...</small>]</CODE>
+<DD>Matches any one of the enclosed characters.  A pair of characters
+separated by a hyphen denotes a <VAR>range expression</VAR>;
+any character that sorts between those two characters, inclusive,
+using the current locale's collating sequence and character set,
+is matched.  If the first character following the
+<SAMP>`['</SAMP> is a <SAMP>`!'</SAMP>  or a <SAMP>`^'</SAMP>
+then any character not enclosed is matched.  A <SAMP>`-'</SAMP>
+may be matched by including it as the first or last character
+in the set.  A <SAMP>`]'</SAMP> may be matched by including it as the first
+character in the set.
+The sorting order of characters in range expressions is determined by
+the current locale and the value of the <CODE>LC_COLLATE</CODE> shell variable,
+if set.
+<P>
+
+For example, in the default C locale, <SAMP>`[a-dx-z]'</SAMP> is equivalent to
+<SAMP>`[abcdxyz]'</SAMP>.  Many locales sort characters in dictionary order, and in
+these locales <SAMP>`[a-dx-z]'</SAMP> is typically not equivalent to <SAMP>`[abcdxyz]'</SAMP>;
+it might be equivalent to <SAMP>`[aBbCcDdxXyYz]'</SAMP>, 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 <SAMP>`C'</SAMP>.
+</P><P>
+
+Within <SAMP>`['</SAMP> and <SAMP>`]'</SAMP>, <VAR>character classes</VAR> 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 POSIX standard:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>alnum   alpha   ascii   blank   cntrl   digit   graph   lower
+print   punct   space   upper   word    xdigit
+</pre></td></tr></table>A character class matches any character belonging to that class.
+The <CODE>word</CODE> character class matches letters, digits, and the character
+<SAMP>`_'</SAMP>.
+</P><P>
+
+Within <SAMP>`['</SAMP> and <SAMP>`]'</SAMP>, an <VAR>equivalence class</VAR> 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>.
+</P><P>
+
+Within <SAMP>`['</SAMP> and <SAMP>`]'</SAMP>, the syntax <CODE>[.</CODE><VAR>symbol</VAR><CODE>.]</CODE>
+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.
+In the following description, a <VAR>pattern-list</VAR> is a list of one
+or more patterns separated by a <SAMP>`|'</SAMP>.
+Composite patterns may be formed using one or more of the following
+sub-patterns:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>?(<VAR>pattern-list</VAR>)</CODE>
+<DD>Matches zero or one occurrence of the given patterns.
+<P>
+
+<DT><CODE>*(<VAR>pattern-list</VAR>)</CODE>
+<DD>Matches zero or more occurrences of the given patterns.
+<P>
+
+<DT><CODE>+(<VAR>pattern-list</VAR>)</CODE>
+<DD>Matches one or more occurrences of the given patterns.
+<P>
+
+<DT><CODE>@(<VAR>pattern-list</VAR>)</CODE>
+<DD>Matches one of the given patterns.
+<P>
+
+<DT><CODE>!(<VAR>pattern-list</VAR>)</CODE>
+<DD>Matches anything except one of the given patterns.
+</DL>
+<P>
+
+<A NAME="Quote Removal"></A>
+<HR SIZE="6">
+<A NAME="SEC38"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC37"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC28"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.5.9 Quote Removal </H3>
+<!--docid::SEC38::-->
+<P>
+
+After the preceding expansions, all unquoted occurrences of the
+characters <SAMP>`\'</SAMP>, <SAMP>`''</SAMP>, and <SAMP>`"'</SAMP> that did not
+result from one of the above expansions are removed.
+</P><P>
+
+<A NAME="Redirections"></A>
+<HR SIZE="6">
+<A NAME="SEC39"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC38"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 3.6 Redirections </H2>
+<!--docid::SEC39::-->
+<P>
+
+Before a command is executed, its input and output
+may be <VAR>redirected</VAR>
+using a special notation interpreted by the shell.
+Redirection may also be used to open and close files for the
+current shell execution environment.  The following redirection
+operators may precede or appear anywhere within a
+simple command or may follow a command.
+Redirections are processed in the order they appear, from
+left to right.
+</P><P>
+
+In the following descriptions, if the file descriptor number is
+omitted, and the first character of the redirection operator is
+<SAMP>`&#60;'</SAMP>, the redirection refers to the standard input (file
+descriptor 0).  If the first character of the redirection operator
+is <SAMP>`&#62;'</SAMP>, the redirection refers to the standard output (file
+descriptor 1).
+</P><P>
+
+The word following the redirection operator in the following
+descriptions, unless otherwise noted, is subjected to brace expansion,
+tilde expansion, parameter expansion, command substitution, arithmetic
+expansion, quote removal, filename expansion, and word splitting.
+If it expands to more than one word, Bash reports an error.
+</P><P>
+
+Note that the order of redirections is significant.  For example,
+the command
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>ls &#62; <VAR>dirlist</VAR> 2&#62;&#38;1
+</pre></td></tr></table>directs both standard output (file descriptor 1) and standard error
+(file descriptor 2) to the file <VAR>dirlist</VAR>, while the command
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>ls 2&#62;&#38;1 &#62; <VAR>dirlist</VAR>
+</pre></td></tr></table>directs only the standard output to file <VAR>dirlist</VAR>,
+because the standard error was duplicated as standard output
+before the standard output was redirected to <VAR>dirlist</VAR>.
+</P><P>
+
+Bash handles several filenames specially when they are used in
+redirections, as described in the following table:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>/dev/fd/<VAR>fd</VAR></CODE>
+<DD>If <VAR>fd</VAR> is a valid integer, file descriptor <VAR>fd</VAR> is duplicated.
+<P>
+
+<DT><CODE>/dev/stdin</CODE>
+<DD>File descriptor 0 is duplicated.
+<P>
+
+<DT><CODE>/dev/stdout</CODE>
+<DD>File descriptor 1 is duplicated.
+<P>
+
+<DT><CODE>/dev/stderr</CODE>
+<DD>File descriptor 2 is duplicated.
+<P>
+
+<DT><CODE>/dev/tcp/<VAR>host</VAR>/<VAR>port</VAR></CODE>
+<DD>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 a TCP
+connection to the corresponding socket.
+<P>
+
+<DT><CODE>/dev/udp/<VAR>host</VAR>/<VAR>port</VAR></CODE>
+<DD>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 a UDP
+connection to the corresponding socket.
+<P>
+
+</DL>
+<P>
+
+A failure to open or create a file causes the redirection to fail.
+</P><P>
+
+Redirections using file descriptors greater than 9 should be used with
+care, as they may conflict with file descriptors the shell uses
+internally.
+</P><P>
+
+<HR SIZE="6">
+<A NAME="SEC40"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC41"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.6.1 Redirecting Input </H3>
+<!--docid::SEC40::-->
+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>,
+or the standard input (file descriptor 0) if <CODE>n</CODE>
+is not specified.
+<P>
+
+The general format for redirecting input is:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[<VAR>n</VAR>]&#60;<VAR>word</VAR>
+</pre></td></tr></table></P><P>
+
+<HR SIZE="6">
+<A NAME="SEC41"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC42"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC42"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.6.2 Redirecting Output </H3>
+<!--docid::SEC41::-->
+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>,
+or the standard output (file descriptor 1) if <VAR>n</VAR>
+is not specified.  If the file does not exist it is created;
+if it does exist it is truncated to zero size.
+<P>
+
+The general format for redirecting output is:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[<VAR>n</VAR>]&#62;[|]<VAR>word</VAR>
+</pre></td></tr></table></P><P>
+
+If the redirection operator is <SAMP>`&#62;'</SAMP>, and the <CODE>noclobber</CODE>
+option to the <CODE>set</CODE> builtin has been enabled, the redirection
+will fail if the file whose name results from the expansion of
+<VAR>word</VAR> exists and is a regular file.
+If the redirection operator is <SAMP>`&#62;|'</SAMP>, or the redirection operator is
+<SAMP>`&#62;'</SAMP> and the <CODE>noclobber</CODE> option is not enabled, the redirection
+is attempted even if the file named by <VAR>word</VAR> exists.
+</P><P>
+
+<HR SIZE="6">
+<A NAME="SEC42"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC41"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC43"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC43"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.6.3 Appending Redirected Output </H3>
+<!--docid::SEC42::-->
+Redirection of output in this fashion
+causes the file whose name results from
+the expansion of <VAR>word</VAR>
+to be opened for appending on file descriptor <VAR>n</VAR>,
+or the standard output (file descriptor 1) if <VAR>n</VAR>
+is not specified.  If the file does not exist it is created.
+<P>
+
+The general format for appending output is:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[<VAR>n</VAR>]&#62;&#62;<VAR>word</VAR>
+</pre></td></tr></table></P><P>
+
+<HR SIZE="6">
+<A NAME="SEC43"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC42"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC44"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC44"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.6.4 Redirecting Standard Output and Standard Error </H3>
+<!--docid::SEC43::-->
+This construct allows both the
+standard output (file descriptor 1) and
+the standard error output (file descriptor 2)
+to be redirected to the file whose name is the
+expansion of <VAR>word</VAR>.
+<P>
+
+There are two formats for redirecting standard output and
+standard error:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#38;&#62;<VAR>word</VAR>
+</pre></td></tr></table>and
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#62;&#38;<VAR>word</VAR>
+</pre></td></tr></table>Of the two forms, the first is preferred.
+This is semantically equivalent to
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#62;<VAR>word</VAR> 2&#62;&#38;1
+</pre></td></tr></table></P><P>
+
+<HR SIZE="6">
+<A NAME="SEC44"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC43"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC45"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC45"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.6.5 Appending Standard Output and Standard Error </H3>
+<!--docid::SEC44::-->
+This construct allows both the
+standard output (file descriptor 1) and
+the standard error output (file descriptor 2)
+to be appended to the file whose name is the
+expansion of <VAR>word</VAR>.
+<P>
+
+The format for appending standard output and standard error is:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#38;&#62;&#62;<VAR>word</VAR>
+</pre></td></tr></table>This is semantically equivalent to
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#62;&#62;<VAR>word</VAR> 2&#62;&#38;1
+</pre></td></tr></table></P><P>
+
+<HR SIZE="6">
+<A NAME="SEC45"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC44"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC46"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC46"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.6.6 Here Documents </H3>
+<!--docid::SEC45::-->
+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
+the lines read up to that point are then used as the standard
+input for a command.
+<P>
+
+The format of here-documents is:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#60;&#60;[-]<VAR>word</VAR>
+        <VAR>here-document</VAR>
+<VAR>delimiter</VAR>
+</pre></td></tr></table></P><P>
+
+No parameter expansion, command substitution, arithmetic expansion,
+or filename expansion is performed on
+<VAR>word</VAR>.  If any characters in <VAR>word</VAR> are quoted, the
+<VAR>delimiter</VAR> is the result of quote removal on <VAR>word</VAR>,
+and the lines in the here-document are not expanded.
+If <VAR>word</VAR> is unquoted,
+all lines of the here-document are subjected to parameter expansion,
+command substitution, and arithmetic expansion.  In the latter
+case, the character sequence <CODE>\newline</CODE> is ignored, and <SAMP>`\'</SAMP>
+must be used to quote the characters
+<SAMP>`\'</SAMP>, <SAMP>`$'</SAMP>, and <SAMP>``'</SAMP>.
+</P><P>
+
+If the redirection operator is <SAMP>`&#60;&#60;-'</SAMP>,
+then all leading tab characters are stripped from input lines and the
+line containing <VAR>delimiter</VAR>.
+This allows here-documents within shell scripts to be indented in a
+natural fashion.
+</P><P>
+
+<HR SIZE="6">
+<A NAME="SEC46"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC45"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC47"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC47"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.6.7 Here Strings </H3>
+<!--docid::SEC46::-->
+A variant of here documents, the format is:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#60;&#60;&#60; <VAR>word</VAR>
+</pre></td></tr></table><P>
+
+The <VAR>word</VAR> is expanded and supplied to the command on its standard
+input.
+</P><P>
+
+<HR SIZE="6">
+<A NAME="SEC47"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC46"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC48"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC48"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.6.8 Duplicating File Descriptors </H3>
+<!--docid::SEC47::-->
+The redirection operator
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[<VAR>n</VAR>]&#60;&#38;<VAR>word</VAR>
+</pre></td></tr></table>is used to duplicate input file descriptors.
+If <VAR>word</VAR>
+expands to one or more digits, the file descriptor denoted by <VAR>n</VAR>
+is made to be a copy of that file descriptor.
+If the digits in <VAR>word</VAR> do not specify a file descriptor open for
+input, a redirection error occurs.
+If <VAR>word</VAR>
+evaluates to <SAMP>`-'</SAMP>, file descriptor <VAR>n</VAR> is closed.  If
+<VAR>n</VAR> is not specified, the standard input (file descriptor 0) is used.
+<P>
+
+The operator
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[<VAR>n</VAR>]&#62;&#38;<VAR>word</VAR>
+</pre></td></tr></table>is used similarly to duplicate output file descriptors.  If
+<VAR>n</VAR> is not specified, the standard output (file descriptor 1) is used.
+If the digits in <VAR>word</VAR> do not specify a file descriptor open for
+output, a redirection error occurs.
+As a special case, if <VAR>n</VAR> is omitted, and <VAR>word</VAR> does not
+expand to one or more digits, the standard output and standard
+error are redirected as described previously.
+</P><P>
+
+<HR SIZE="6">
+<A NAME="SEC48"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC47"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC49"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.6.9 Moving File Descriptors </H3>
+<!--docid::SEC48::-->
+The redirection operator
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[<VAR>n</VAR>]&#60;&#38;<VAR>digit</VAR>-
+</pre></td></tr></table>moves the file descriptor <VAR>digit</VAR> to file descriptor <VAR>n</VAR>,
+or the standard input (file descriptor 0) if <VAR>n</VAR> is not specified.
+<VAR>digit</VAR> is closed after being duplicated to <VAR>n</VAR>.
+<P>
+
+Similarly, the redirection operator
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[<VAR>n</VAR>]&#62;&#38;<VAR>digit</VAR>-
+</pre></td></tr></table>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><P>
+
+<HR SIZE="6">
+<A NAME="SEC49"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC48"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC41"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.6.10 Opening File Descriptors for Reading and Writing </H3>
+<!--docid::SEC49::-->
+The redirection operator
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[<VAR>n</VAR>]&#60;&#62;<VAR>word</VAR>
+</pre></td></tr></table>causes the file whose name is the expansion of <VAR>word</VAR>
+to be opened for both reading and writing on file descriptor
+<VAR>n</VAR>, or on file descriptor 0 if <VAR>n</VAR>
+is not specified.  If the file does not exist, it is created.
+<P>
+
+<A NAME="Executing Commands"></A>
+<HR SIZE="6">
+<A NAME="SEC50"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC49"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 3.7 Executing Commands </H2>
+<!--docid::SEC50::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC51">3.7.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"><A HREF="bashref.html#SEC52">3.7.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"><A HREF="bashref.html#SEC53">3.7.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"><A HREF="bashref.html#SEC54">3.7.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"><A HREF="bashref.html#SEC55">3.7.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"><A HREF="bashref.html#SEC56">3.7.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></BLOCKQUOTE>
+<P>
+
+<A NAME="Simple Command Expansion"></A>
+<HR SIZE="6">
+<A NAME="SEC51"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC52"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.7.1 Simple Command Expansion </H3>
+<!--docid::SEC51::-->
+<P>
+
+When a simple command is executed, the shell performs the following
+expansions, assignments, and redirections, from left to right.
+</P><P>
+
+<OL>
+<LI>
+The words that the parser has marked as variable assignments (those
+preceding the command name) and redirections are saved for later
+processing.
+<P>
+
+<LI>
+The words that are not variable assignments or redirections are
+expanded (see section <A HREF="bashref.html#SEC28">3.5 Shell Expansions</A>).
+If any words remain after expansion, the first word
+is taken to be the name of the command and the remaining words are
+the arguments.
+<P>
+
+<LI>
+Redirections are performed as described above (see section <A HREF="bashref.html#SEC39">3.6 Redirections</A>).
+<P>
+
+<LI>
+The text after the <SAMP>`='</SAMP> in each variable assignment undergoes tilde
+expansion, parameter expansion, command substitution, arithmetic expansion,
+and quote removal before being assigned to the variable.
+</OL>
+<P>
+
+If no command name results, the variable assignments affect the current
+shell environment.  Otherwise, the variables are added to the environment
+of the executed command and do not affect the current shell environment.
+If any of the assignments attempts to assign a value to a readonly variable,
+an error occurs, and the command exits with a non-zero status.
+</P><P>
+
+If no command name results, redirections are performed, but do not
+affect the current shell environment.  A redirection error causes the
+command to exit with a non-zero status.
+</P><P>
+
+If there is a command name left after expansion, execution proceeds as
+described below.  Otherwise, the command exits.  If one of the expansions
+contained a command substitution, the exit status of the command is
+the exit status of the last command substitution performed.  If there
+were no command substitutions, the command exits with a status of zero.
+</P><P>
+
+<A NAME="Command Search and Execution"></A>
+<HR SIZE="6">
+<A NAME="SEC52"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC53"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC53"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.7.2 Command Search and Execution </H3>
+<!--docid::SEC52::-->
+<P>
+
+After a command has been split into words, if it results in a
+simple command and an optional list of arguments, the following
+actions are taken.
+</P><P>
+
+<OL>
+<LI>
+If the command name contains no slashes, the shell attempts to
+locate it.  If there exists a shell function by that name, that
+function is invoked as described in <A HREF="bashref.html#SEC24">3.3 Shell Functions</A>.
+<P>
+
+<LI>
+If the name does not match a function, the shell searches for
+it in the list of shell builtins.  If a match is found, that
+builtin is invoked.
+<P>
+
+<LI>
+If the name is neither a shell function nor a builtin,
+and contains no slashes, Bash searches each element of
+<CODE>$PATH</CODE> for a directory containing an executable file
+by that name.  Bash uses a hash table to remember the full
+pathnames of executable files to avoid multiple <CODE>PATH</CODE> searches
+(see the description of <CODE>hash</CODE> in <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+A full search of the directories in <CODE>$PATH</CODE>
+is performed only if the command is not found in the hash table.
+If the search is unsuccessful, the shell searches for a defined shell
+function named <CODE>command_not_found_handle</CODE>.
+If that function exists, it is invoked with the original command and
+the original command's arguments as its arguments, and the function's
+exit status becomes the exit status of the shell.
+If that function is not defined, the shell prints an error
+message and returns an exit status of 127.
+<P>
+
+<LI>
+If the search is successful, or if the command name contains
+one or more slashes, the shell executes the named program in
+a separate execution environment.
+Argument 0 is set to the name given, and the remaining arguments
+to the command are set to the arguments supplied, if any.
+<P>
+
+<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
+<A HREF="bashref.html#SEC57">3.8 Shell Scripts</A>.
+<P>
+
+<LI>
+If the command was not begun asynchronously, the shell waits for
+the command to complete and collects its exit status.
+<P>
+
+</OL>
+<P>
+
+<A NAME="Command Execution Environment"></A>
+<HR SIZE="6">
+<A NAME="SEC53"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC52"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC54"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC54"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.7.3 Command Execution Environment </H3>
+<!--docid::SEC53::-->
+<P>
+
+The shell has an <VAR>execution environment</VAR>, which consists of the
+following:
+</P><P>
+
+<UL>
+<LI>
+open files inherited by the shell at invocation, as modified by
+redirections supplied to the <CODE>exec</CODE> builtin
+<P>
+
+<LI>
+the current working directory as set by <CODE>cd</CODE>, <CODE>pushd</CODE>, or
+<CODE>popd</CODE>, or inherited by the shell at invocation
+<P>
+
+<LI>
+the file creation mode mask as set by <CODE>umask</CODE> or inherited from
+the shell's parent
+<P>
+
+<LI>
+current traps set by <CODE>trap</CODE>
+<P>
+
+<LI>
+shell parameters that are set by variable assignment or with <CODE>set</CODE>
+or inherited from the shell's parent in the environment
+<P>
+
+<LI>
+shell functions defined during execution or inherited from the shell's
+parent in the environment
+<P>
+
+<LI>
+options enabled at invocation (either by default or with command-line
+arguments) or by <CODE>set</CODE>
+<P>
+
+<LI>
+options enabled by <CODE>shopt</CODE> (see section <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>)
+<P>
+
+<LI>
+shell aliases defined with <CODE>alias</CODE> (see section <A HREF="bashref.html#SEC84">6.6 Aliases</A>)
+<P>
+
+<LI>
+various process IDs, including those of background jobs
+(see section <A HREF="bashref.html#SEC18">3.2.3 Lists of Commands</A>), the value of <CODE>$$</CODE>, and the value of
+<CODE>$PPID</CODE>
+<P>
+
+</UL>
+<P>
+
+When a simple command other than a builtin or shell function
+is to be executed, it
+is invoked in a separate execution environment that consists of
+the following.  Unless otherwise noted, the values are inherited
+from the shell.
+</P><P>
+
+<UL>
+<LI>
+the shell's open files, plus any modifications and additions specified
+by redirections to the command
+<P>
+
+<LI>
+the current working directory
+<P>
+
+<LI>
+the file creation mode mask
+<P>
+
+<LI>
+shell variables and functions marked for export, along with variables
+exported for the command, passed in the environment (see section <A HREF="bashref.html#SEC54">3.7.4 Environment</A>)
+<P>
+
+<LI>
+traps caught by the shell are reset to the values inherited from the
+shell's parent, and traps ignored by the shell are ignored
+<P>
+
+</UL>
+<P>
+
+A command invoked in this separate environment cannot affect the
+shell's execution environment. 
+</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,
+except that traps caught by the shell are reset to the values
+that the shell inherited from its parent at invocation.  Builtin
+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.
+</P><P>
+
+Subshells spawned to execute command substitutions inherit the value of
+the <SAMP>`-e'</SAMP> option from the parent shell.  When not in POSIX mode,
+Bash clears the <SAMP>`-e'</SAMP> option in such subshells.
+</P><P>
+
+If a command is followed by a <SAMP>`&#38;'</SAMP> and job control is not active, the
+default standard input for the command is the empty file <TT>`/dev/null'</TT>.
+Otherwise, the invoked command inherits the file descriptors of the calling
+shell as modified by redirections.
+</P><P>
+
+<A NAME="Environment"></A>
+<HR SIZE="6">
+<A NAME="SEC54"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC53"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC55"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC55"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.7.4 Environment </H3>
+<!--docid::SEC54::-->
+<P>
+
+When a program is invoked it is given an array of strings
+called the <VAR>environment</VAR>.
+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>
+to child processes.  Executed commands inherit the environment.
+The <CODE>export</CODE> and <SAMP>`declare -x'</SAMP>
+commands allow parameters and functions to be added to and
+deleted from the environment.  If the value of a parameter
+in the environment is modified, the new value becomes part
+of the environment, replacing the old.  The environment
+inherited by any executed command consists of the shell's
+initial environment, whose values may be modified in the shell,
+less any pairs removed by the <CODE>unset</CODE> and <SAMP>`export -n'</SAMP>
+commands, plus any additions via the <CODE>export</CODE> and
+<SAMP>`declare -x'</SAMP> commands.
+</P><P>
+
+The environment for any simple command
+or function may be augmented temporarily by prefixing it with
+parameter assignments, as described in <A HREF="bashref.html#SEC25">3.4 Shell Parameters</A>.
+These assignment statements affect only the environment seen
+by that command.
+</P><P>
+
+If the <SAMP>`-k'</SAMP> option is set (see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>), then all
+parameter assignments are placed in the environment for a command,
+not just those that precede the command name.
+</P><P>
+
+When Bash invokes an external command, the variable <SAMP>`$_'</SAMP>
+is set to the full path name of the command and passed to that
+command in its environment.
+</P><P>
+
+<A NAME="Exit Status"></A>
+<HR SIZE="6">
+<A NAME="SEC55"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC54"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC56"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC56"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.7.5 Exit Status </H3>
+<!--docid::SEC55::-->
+<P>
+
+The exit status of an executed command is the value returned by the
+<VAR>waitpid</VAR> system call or equivalent function.  Exit statuses    
+fall between 0 and 255, though, as explained below, the shell may
+use values above 125 specially.  Exit statuses from shell builtins and
+compound commands are also limited to this range. Under certain
+circumstances, the shell will use special values to indicate specific
+failure modes.
+</P><P>
+
+For the shell's purposes, a command which exits with a
+zero exit status has succeeded.
+A non-zero exit status indicates failure.
+This seemingly counter-intuitive scheme is used so there
+is one well-defined way to indicate success and a variety of
+ways to indicate various failure modes.
+When a command terminates on a fatal signal whose number is <VAR>N</VAR>,
+Bash uses the value 128+<VAR>N</VAR> as the exit status.
+</P><P>
+
+If a command is not found, the child process created to
+execute it returns a status of 127.  If a command is found  
+but is not executable, the return status is 126.
+</P><P>
+
+If a command fails because of an error during expansion or redirection,
+the exit status is greater than zero.
+</P><P>
+
+The exit status is used by the Bash conditional commands
+(see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>) and some of the list
+constructs (see section <A HREF="bashref.html#SEC18">3.2.3 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
+conditional and list constructs.
+All builtins return an exit status of 2 to indicate incorrect usage.
+</P><P>
+
+<A NAME="Signals"></A>
+<HR SIZE="6">
+<A NAME="SEC56"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC55"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC50"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 3.7.6 Signals </H3>
+<!--docid::SEC56::-->
+<P>
+
+When Bash is interactive, in the absence of any traps, it ignores
+<CODE>SIGTERM</CODE> (so that <SAMP>`kill 0'</SAMP> does not kill an interactive shell),
+and <CODE>SIGINT</CODE>
+is caught and handled (so that the <CODE>wait</CODE> builtin is interruptible).
+When Bash receives a <CODE>SIGINT</CODE>, it breaks out of any executing loops.
+In all cases, Bash ignores <CODE>SIGQUIT</CODE>.
+If job control is in effect (see section <A HREF="bashref.html#SEC91">7. Job Control</A>), Bash
+ignores <CODE>SIGTTIN</CODE>, <CODE>SIGTTOU</CODE>, and <CODE>SIGTSTP</CODE>.
+</P><P>
+
+Non-builtin commands started by Bash have signal handlers set to the
+values inherited by the shell from its parent.
+When job control is not in effect, asynchronous commands
+ignore <CODE>SIGINT</CODE> and <CODE>SIGQUIT</CODE> in addition to these inherited
+handlers.
+Commands run as a result of
+command substitution ignore the keyboard-generated job control signals
+<CODE>SIGTTIN</CODE>, <CODE>SIGTTOU</CODE>, and <CODE>SIGTSTP</CODE>.
+</P><P>
+
+The shell exits by default upon receipt of a <CODE>SIGHUP</CODE>.
+Before exiting, an interactive shell resends the <CODE>SIGHUP</CODE> to
+all jobs, running or stopped.
+Stopped jobs are sent <CODE>SIGCONT</CODE> to ensure that they receive
+the <CODE>SIGHUP</CODE>.
+To prevent the shell from sending the <CODE>SIGHUP</CODE> signal to a
+particular job, it should be removed
+from the jobs table with the <CODE>disown</CODE>
+builtin (see section <A HREF="bashref.html#SEC93">7.2 Job Control Builtins</A>) or marked
+to not receive <CODE>SIGHUP</CODE> using <CODE>disown -h</CODE>.
+</P><P>
+
+If the  <CODE>huponexit</CODE> shell option has been set with <CODE>shopt</CODE>
+(see section <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>), Bash sends a <CODE>SIGHUP</CODE> to all jobs when
+an interactive login shell exits.
+</P><P>
+
+If Bash is waiting for a command to complete and receives a signal
+for which a trap has been set, the trap will not be executed until
+the command completes. 
+When Bash is waiting for an asynchronous
+command via the <CODE>wait</CODE> builtin, the reception of a signal for
+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>
+
+<A NAME="Shell Scripts"></A>
+<HR SIZE="6">
+<A NAME="SEC57"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC56"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 3.8 Shell Scripts </H2>
+<!--docid::SEC57::-->
+<P>
+
+A shell script is a text file containing shell commands.  When such
+a file is used as the first non-option argument when invoking Bash,
+and neither the <SAMP>`-c'</SAMP> nor <SAMP>`-s'</SAMP> option is supplied
+(see section <A HREF="bashref.html#SEC69">6.1 Invoking Bash</A>), 
+Bash reads and executes commands from the file, then exits.  This
+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 <CODE>$PATH</CODE> if not found there.
+</P><P>
+
+When Bash runs
+a shell script, it sets the special parameter <CODE>0</CODE> 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.
+If no additional arguments are supplied, the positional parameters
+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
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>filename <VAR>arguments</VAR>
+</pre></td></tr></table>is equivalent to executing
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>bash filename <VAR>arguments</VAR>
+</pre></td></tr></table></P><P>
+
+if <CODE>filename</CODE> is an executable shell script.
+This subshell reinitializes itself, so that the effect is as if a
+new shell had been invoked to interpret the script, with the
+exception that the locations of commands remembered by the parent
+(see the description of <CODE>hash</CODE> in <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>)
+are retained by the child.
+</P><P>
+
+Most versions of Unix make this a part of the operating system's command
+execution mechanism.  If the first line of a script begins with
+the two characters <SAMP>`#!'</SAMP>, the remainder of the line specifies
+an interpreter for the program.
+Thus, you can specify Bash, <CODE>awk</CODE>, Perl, or some other
+interpreter and write the rest of the script file in that language.
+</P><P>
+
+The arguments to the interpreter
+consist of a single optional argument following the interpreter
+name on the first line of the script file, followed by the name of
+the script file, followed by the rest of the arguments.  Bash
+will perform this action on operating systems that do not handle it
+themselves.  Note that some older versions of Unix limit the interpreter
+name and argument to a maximum of 32 characters.
+</P><P>
+
+Bash scripts often begin with <CODE>#! /bin/bash</CODE> (assuming that
+Bash has been installed in <TT>`/bin'</TT>), since this ensures that
+Bash will be used to interpret the script, even if it is executed
+under another shell.
+</P><P>
+
+<A NAME="Shell Builtin Commands"></A>
+<HR SIZE="6">
+<A NAME="SEC58"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC57"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC59"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> 4. Shell Builtin Commands </H1>
+<!--docid::SEC58::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC59">4.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"><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</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"><A HREF="bashref.html#SEC61">4.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"><A HREF="bashref.html#SEC64">4.4 Special Builtins</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Builtin commands classified specially by
+                               POSIX.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+Builtin commands are contained within the shell itself.
+When the name of a builtin command is used as the first word of
+a simple command (see section <A HREF="bashref.html#SEC16">3.2.1 Simple Commands</A>), the shell executes
+the command directly, without invoking another program.
+Builtin commands are necessary to implement functionality impossible
+or inconvenient to obtain with separate utilities.
+</P><P>
+
+This section briefly describes the builtins which Bash inherits from
+the Bourne Shell, as well as the builtin commands which are unique
+to or have been extended in Bash.
+</P><P>
+
+Several builtin commands are described in other chapters:  builtin
+commands which provide the Bash interface to the job control
+facilities (see section <A HREF="bashref.html#SEC93">7.2 Job Control Builtins</A>), the directory stack
+(see section <A HREF="bashref.html#SEC87">6.8.1 Directory Stack Builtins</A>), the command history
+(see section <A HREF="bashref.html#SEC121">9.2 Bash History Builtins</A>), and the programmable completion
+facilities (see section <A HREF="bashref.html#SEC118">8.7 Programmable Completion Builtins</A>).
+</P><P>
+
+Many of the builtins have been extended by POSIX or Bash.
+</P><P>
+
+Unless otherwise noted, each builtin command documented as accepting
+options preceded by <SAMP>`-'</SAMP> accepts <SAMP>`--'</SAMP>
+to signify the end of the options.
+For example, the <CODE>:</CODE>, <CODE>true</CODE>, <CODE>false</CODE>, and <CODE>test</CODE>
+builtins do not accept options.
+</P><P>
+
+<A NAME="Bourne Shell Builtins"></A>
+<HR SIZE="6">
+<A NAME="SEC59"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC60"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 4.1 Bourne Shell Builtins </H2>
+<!--docid::SEC59::-->
+<P>
+
+The following shell builtin commands are inherited from the Bourne Shell.
+These commands are implemented as specified by the POSIX standard.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>:    (a colon)</CODE>
+<DD><A NAME="IDX68"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>: [<VAR>arguments</VAR>]
+</pre></td></tr></table>Do nothing beyond expanding <VAR>arguments</VAR> and performing redirections.
+The return status is zero.
+<P>
+
+<DT><CODE>.    (a period)</CODE>
+<DD><A NAME="IDX69"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>. <VAR>filename</VAR> [<VAR>arguments</VAR>]
+</pre></td></tr></table>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 POSIX mode, the current directory is searched
+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.
+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>
+
+<DT><CODE>break</CODE>
+<DD><A NAME="IDX70"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>break [<VAR>n</VAR>]
+</pre></td></tr></table>Exit from a <CODE>for</CODE>, <CODE>while</CODE>, <CODE>until</CODE>, or <CODE>select</CODE> loop.
+If <VAR>n</VAR> is supplied, the <VAR>n</VAR>th enclosing loop is exited.
+<VAR>n</VAR> must be greater than or equal to 1.
+The return status is zero unless <VAR>n</VAR> is not greater than or equal to 1.
+<P>
+
+<DT><CODE>cd</CODE>
+<DD><A NAME="IDX71"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>cd [-L|-P] [<VAR>directory</VAR>]
+</pre></td></tr></table>Change the current working directory to <VAR>directory</VAR>.
+If <VAR>directory</VAR> is not given, the value of the <CODE>HOME</CODE> shell
+variable is used.
+If the shell variable <CODE>CDPATH</CODE> exists, it is used as a search path.
+If <VAR>directory</VAR> begins with a slash, <CODE>CDPATH</CODE> is not used.
+<P>
+
+The <SAMP>`-P'</SAMP> option means to not follow symbolic links; symbolic
+links are followed by default or with the <SAMP>`-L'</SAMP> option.
+If <VAR>directory</VAR> is <SAMP>`-'</SAMP>, it is equivalent to <CODE>$OLDPWD</CODE>.
+</P><P>
+
+If a non-empty directory name from <CODE>CDPATH</CODE> is used, or if
+<SAMP>`-'</SAMP> is the first argument, and the directory change is
+successful, the absolute pathname of the new working directory is
+written to the standard output.
+</P><P>
+
+The return status is zero if the directory is successfully changed,
+non-zero otherwise.
+</P><P>
+
+<DT><CODE>continue</CODE>
+<DD><A NAME="IDX72"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>continue [<VAR>n</VAR>]
+</pre></td></tr></table>Resume the next iteration of an enclosing <CODE>for</CODE>, <CODE>while</CODE>,
+<CODE>until</CODE>, or <CODE>select</CODE> loop.
+If <VAR>n</VAR> is supplied, the execution of the <VAR>n</VAR>th enclosing loop
+is resumed.
+<VAR>n</VAR> must be greater than or equal to 1.
+The return status is zero unless <VAR>n</VAR> is not greater than or equal to 1.
+<P>
+
+<DT><CODE>eval</CODE>
+<DD><A NAME="IDX73"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>eval [<VAR>arguments</VAR>]
+</pre></td></tr></table>The arguments are concatenated together into a single command, which is
+then read and executed, and its exit status returned as the exit status
+of <CODE>eval</CODE>.
+If there are no arguments or only empty arguments, the return status is
+zero.
+<P>
+
+<DT><CODE>exec</CODE>
+<DD><A NAME="IDX74"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>exec [-cl] [-a <VAR>name</VAR>] [<VAR>command</VAR> [<VAR>arguments</VAR>]]
+</pre></td></tr></table>If <VAR>command</VAR>
+is supplied, it replaces the shell without creating a new process.
+If the <SAMP>`-l'</SAMP> option is supplied, the shell places a dash at the
+beginning of the zeroth argument passed to <VAR>command</VAR>.
+This is what the <CODE>login</CODE> program does.
+The <SAMP>`-c'</SAMP> option causes <VAR>command</VAR> to be executed with an empty
+environment.
+If <SAMP>`-a'</SAMP> is supplied, the shell passes <VAR>name</VAR> as the zeroth
+argument to <VAR>command</VAR>.
+If no <VAR>command</VAR> is specified, redirections may be used to affect
+the current shell environment.  If there are no redirection errors, the
+return status is zero; otherwise the return status is non-zero.
+<P>
+
+<DT><CODE>exit</CODE>
+<DD><A NAME="IDX75"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>exit [<VAR>n</VAR>]
+</pre></td></tr></table>Exit the shell, returning a status of <VAR>n</VAR> to the shell's parent.
+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>
+
+<DT><CODE>export</CODE>
+<DD><A NAME="IDX76"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>export [-fn] [-p] [<VAR>name</VAR>[=<VAR>value</VAR>]]
+</pre></td></tr></table>Mark each <VAR>name</VAR> to be passed to child processes
+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
+list of exported names 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
+the variable is set to <VAR>value</VAR>.
+<P>
+
+The return status is zero unless an invalid option is supplied, one of
+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><P>
+
+<DT><CODE>getopts</CODE>
+<DD><A NAME="IDX77"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>getopts <VAR>optstring</VAR> <VAR>name</VAR> [<VAR>args</VAR>]
+</pre></td></tr></table><CODE>getopts</CODE> is used by shell scripts to parse positional parameters.
+<VAR>optstring</VAR> contains the option characters to be recognized; if a
+character is followed by a colon, the option is expected to have an
+argument, which should be separated from it by white space.
+The colon (<SAMP>`:'</SAMP>) and question mark (<SAMP>`?'</SAMP>) may not be
+used as option characters.
+Each time it is invoked, <CODE>getopts</CODE>
+places the next option in the shell variable <VAR>name</VAR>, initializing
+<VAR>name</VAR> if it does not exist,
+and the index of the next argument to be processed into the
+variable <CODE>OPTIND</CODE>.
+<CODE>OPTIND</CODE> is initialized to 1 each time the shell or a shell script
+is invoked.
+When an option requires an argument,
+<CODE>getopts</CODE> places that argument into the variable <CODE>OPTARG</CODE>.
+The shell does not reset <CODE>OPTIND</CODE> automatically; it must be manually
+reset between multiple calls to <CODE>getopts</CODE> within the same shell
+invocation if a new set of parameters is to be used.
+<P>
+
+When the end of options is encountered, <CODE>getopts</CODE> exits with a
+return value greater than zero.
+<CODE>OPTIND</CODE> is set to the index of the first non-option argument,
+and <CODE>name</CODE> is set to <SAMP>`?'</SAMP>.
+</P><P>
+
+<CODE>getopts</CODE>
+normally parses the positional parameters, but if more arguments are
+given in <VAR>args</VAR>, <CODE>getopts</CODE> parses those instead.
+</P><P>
+
+<CODE>getopts</CODE> can report errors in two ways.  If the first character of
+<VAR>optstring</VAR> is a colon, <VAR>silent</VAR>
+error reporting is used.  In normal operation diagnostic messages
+are printed when invalid options or missing option arguments are
+encountered.
+If the variable <CODE>OPTERR</CODE>
+is set to 0, no error messages will be displayed, even if the first
+character of <CODE>optstring</CODE> is not a colon.
+</P><P>
+
+If an invalid option is seen,
+<CODE>getopts</CODE> places <SAMP>`?'</SAMP> into <VAR>name</VAR> and, if not silent,
+prints an error message and unsets <CODE>OPTARG</CODE>.
+If <CODE>getopts</CODE> is silent, the option character found is placed in
+<CODE>OPTARG</CODE> and no diagnostic message is printed.
+</P><P>
+
+If a required argument is not found, and <CODE>getopts</CODE>
+is not silent, a question mark (<SAMP>`?'</SAMP>) is placed in <VAR>name</VAR>,
+<CODE>OPTARG</CODE> is unset, and a diagnostic message is printed.
+If <CODE>getopts</CODE> is silent, then a colon (<SAMP>`:'</SAMP>) is placed in
+<VAR>name</VAR> and <CODE>OPTARG</CODE> is set to the option character found.
+</P><P>
+
+<DT><CODE>hash</CODE>
+<DD><A NAME="IDX78"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>hash [-r] [-p <VAR>filename</VAR>] [-dt] [<VAR>name</VAR>]
+</pre></td></tr></table>Remember the full pathnames of commands specified as <VAR>name</VAR> arguments,
+so they need not be searched for on subsequent invocations.
+The commands are found by searching through the directories listed in
+<CODE>$PATH</CODE>.
+The <SAMP>`-p'</SAMP> option inhibits the path search, and <VAR>filename</VAR> is
+used as the location of <VAR>name</VAR>.
+The <SAMP>`-r'</SAMP> option causes the shell to forget all remembered locations.
+The <SAMP>`-d'</SAMP> option causes the shell to forget the remembered location
+of each <VAR>name</VAR>.
+If the <SAMP>`-t'</SAMP> option is supplied, the full pathname to which each
+<VAR>name</VAR> corresponds is printed.  If multiple <VAR>name</VAR> arguments are
+supplied with <SAMP>`-t'</SAMP> the <VAR>name</VAR> is printed before the hashed
+full pathname.
+The <SAMP>`-l'</SAMP> option causes output to be displayed in a format
+that may be reused as input.
+If no arguments are given, or if only <SAMP>`-l'</SAMP> is supplied,
+information about remembered commands is printed.
+The return status is zero unless a <VAR>name</VAR> is not found or an invalid
+option is supplied.
+<P>
+
+<DT><CODE>pwd</CODE>
+<DD><A NAME="IDX79"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>pwd [-LP]
+</pre></td></tr></table>Print the absolute pathname of the current working directory.
+If the <SAMP>`-P'</SAMP> option is supplied, the pathname printed will not
+contain symbolic links.
+If the <SAMP>`-L'</SAMP> option is supplied, the pathname printed may contain
+symbolic links.
+The return status is zero unless an error is encountered while
+determining the name of the current directory or an invalid option
+is supplied.
+<P>
+
+<DT><CODE>readonly</CODE>
+<DD><A NAME="IDX80"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>readonly [-aApf] [<VAR>name</VAR>[=<VAR>value</VAR>]] <small>...</small>
+</pre></td></tr></table>Mark each <VAR>name</VAR> as readonly.
+The values of these names may not be changed by subsequent assignment.
+If the <SAMP>`-f'</SAMP> option is supplied, each <VAR>name</VAR> refers to a shell
+function.
+The <SAMP>`-a'</SAMP> option means each <VAR>name</VAR> refers to an indexed
+array variable; the <SAMP>`-A'</SAMP> option means each <VAR>name</VAR> refers
+to an associative array variable.
+If no <VAR>name</VAR> arguments are given, or if the <SAMP>`-p'</SAMP>
+option is supplied, a list of all readonly names is printed.
+The <SAMP>`-p'</SAMP> option causes output to be displayed in a format that
+may be reused as input.
+If a variable name is followed by =<VAR>value</VAR>, the value of
+the variable is set to <VAR>value</VAR>.
+The return status is zero unless an invalid option is supplied, one of
+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>
+
+<DT><CODE>return</CODE>
+<DD><A NAME="IDX81"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>return [<VAR>n</VAR>]
+</pre></td></tr></table>Cause a shell function to exit with the return value <VAR>n</VAR>.
+If <VAR>n</VAR> is not supplied, the return value is the exit status of the
+last command executed in the function.
+This may also be used to terminate execution of a script being executed
+with the <CODE>.</CODE> (or <CODE>source</CODE>) builtin, returning either <VAR>n</VAR> or
+the exit status of the last command executed within the script as the exit
+status of the script.
+Any command associated with the <CODE>RETURN</CODE> trap is executed
+before execution resumes after the function or script.
+The return status is non-zero if <CODE>return</CODE> is used outside a function
+and not during the execution of a script by <CODE>.</CODE> or <CODE>source</CODE>.
+<P>
+
+<DT><CODE>shift</CODE>
+<DD><A NAME="IDX82"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>shift [<VAR>n</VAR>]
+</pre></td></tr></table>Shift the positional parameters to the left by <VAR>n</VAR>.
+The positional parameters from <VAR>n</VAR>+1 <small>...</small> <CODE>$#</CODE> are
+renamed to <CODE>$1</CODE> <small>...</small> <CODE>$#</CODE>-<VAR>n</VAR>.
+Parameters represented by the numbers <CODE>$#</CODE> to <CODE>$#</CODE>-<VAR>n</VAR>+1
+are unset.
+<VAR>n</VAR> must be a non-negative number less than or equal to <CODE>$#</CODE>.
+If <VAR>n</VAR> is zero or greater than <CODE>$#</CODE>, the positional parameters
+are not changed.
+If <VAR>n</VAR> is not supplied, it is assumed to be 1.
+The return status is zero unless <VAR>n</VAR> is greater than <CODE>$#</CODE> or
+less than zero, non-zero otherwise.
+<P>
+
+<DT><CODE>test</CODE>
+<DD><DT><CODE>[</CODE>
+<DD><A NAME="IDX83"></A>
+<A NAME="IDX84"></A>
+Evaluate a conditional expression <VAR>expr</VAR>.
+Each operator and operand must be a separate argument.
+Expressions are composed of the primaries described below in
+<A HREF="bashref.html#SEC82">6.4 Bash Conditional Expressions</A>.
+<CODE>test</CODE> does not accept any options, nor does it accept and ignore
+an argument of <SAMP>`--'</SAMP> as signifying the end of options.
+<P>
+
+When the <CODE>[</CODE> form is used, the last argument to the command must
+be a <CODE>]</CODE>.
+</P><P>
+
+Expressions may be combined using the following operators, listed in
+decreasing order of precedence.
+The evaluation depends on the number of arguments; see below.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>! <VAR>expr</VAR></CODE>
+<DD>True if <VAR>expr</VAR> is false.
+<P>
+
+<DT><CODE>( <VAR>expr</VAR> )</CODE>
+<DD>Returns the value of <VAR>expr</VAR>.
+This may be used to override the normal precedence of operators.
+<P>
+
+<DT><CODE><VAR>expr1</VAR> -a <VAR>expr2</VAR></CODE>
+<DD>True if both <VAR>expr1</VAR> and <VAR>expr2</VAR> are true.
+<P>
+
+<DT><CODE><VAR>expr1</VAR> -o <VAR>expr2</VAR></CODE>
+<DD>True if either <VAR>expr1</VAR> or <VAR>expr2</VAR> is true.
+</DL>
+<P>
+
+The <CODE>test</CODE> and <CODE>[</CODE> builtins evaluate conditional
+expressions using a set of rules based on the number of arguments.
+</P><P>
+
+<DL COMPACT>
+<DT>0 arguments
+<DD>The expression is false.
+<P>
+
+<DT>1 argument
+<DD>The expression is true if and only if the argument is not null.
+<P>
+
+<DT>2 arguments
+<DD>If the first argument is <SAMP>`!'</SAMP>, the expression is true if and
+only if the second argument is null.
+If the first argument is one of the unary conditional operators
+(see section <A HREF="bashref.html#SEC82">6.4 Bash Conditional Expressions</A>), the expression
+is true if the unary test is true.
+If the first argument is not a valid unary operator, the expression is
+false.
+<P>
+
+<DT>3 arguments
+<DD>If the second argument is one of the binary conditional
+operators (see section <A HREF="bashref.html#SEC82">6.4 Bash Conditional Expressions</A>), the
+result of the expression is the result of the binary test using the
+first and third arguments as operands.
+The <SAMP>`-a'</SAMP> and <SAMP>`-o'</SAMP> operators are considered binary operators
+when there are three arguments.
+If the first argument is <SAMP>`!'</SAMP>, the value is the negation of
+the two-argument test using the second and third arguments.
+If the first argument is exactly <SAMP>`('</SAMP> and the third argument is
+exactly <SAMP>`)'</SAMP>, the result is the one-argument test of the second
+argument.
+Otherwise, the expression is false.
+<P>
+
+<DT>4 arguments
+<DD>If the first argument is <SAMP>`!'</SAMP>, the result is the negation of
+the three-argument expression composed of the remaining arguments.
+Otherwise, the expression is parsed and evaluated according to 
+precedence using the rules listed above.
+<P>
+
+<DT>5 or more arguments
+<DD>The expression is parsed and evaluated according to precedence
+using the rules listed above.
+</DL>
+<P>
+
+<DT><CODE>times</CODE>
+<DD><A NAME="IDX85"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>times
+</pre></td></tr></table>Print out the user and system times used by the shell and its children.
+The return status is zero.
+<P>
+
+<DT><CODE>trap</CODE>
+<DD><A NAME="IDX86"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>trap [-lp] [<VAR>arg</VAR>] [<VAR>sigspec</VAR> <small>...</small>]
+</pre></td></tr></table>The commands in <VAR>arg</VAR> are to be read and executed when the
+shell receives signal <VAR>sigspec</VAR>.  If <VAR>arg</VAR> is absent (and
+there is a single <VAR>sigspec</VAR>) or
+equal to <SAMP>`-'</SAMP>, each specified signal's disposition is reset
+to the value it had when the shell was started.
+If <VAR>arg</VAR> is the null string, then the signal specified by
+each <VAR>sigspec</VAR> is ignored by the shell and commands it invokes.
+If <VAR>arg</VAR> is not present and <SAMP>`-p'</SAMP> has been supplied,
+the shell displays the trap commands associated with each <VAR>sigspec</VAR>.
+If no arguments are supplied, or
+only <SAMP>`-p'</SAMP> is given, <CODE>trap</CODE> prints the list of commands
+associated with each signal number in a form that may be reused as
+shell input.
+The <SAMP>`-l'</SAMP> option causes the shell to print a list of signal names
+and their corresponding numbers.
+Each <VAR>sigspec</VAR> is either a signal name or a signal number.
+Signal names are case insensitive and the <CODE>SIG</CODE> prefix is optional.
+If a <VAR>sigspec</VAR>
+is <CODE>0</CODE> or <CODE>EXIT</CODE>, <VAR>arg</VAR> is executed when the shell exits.
+If a <VAR>sigspec</VAR> is <CODE>DEBUG</CODE>, the command <VAR>arg</VAR> is executed
+before every simple command, <CODE>for</CODE> command, <CODE>case</CODE> command,
+<CODE>select</CODE> command, every arithmetic <CODE>for</CODE> command, and before
+the first command executes in a shell function.
+Refer to the description of the <CODE>extglob</CODE> option to the
+<CODE>shopt</CODE> builtin (see section <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>) for details of its
+effect on the <CODE>DEBUG</CODE> trap.
+If a <VAR>sigspec</VAR> is <CODE>ERR</CODE>, the command <VAR>arg</VAR> 
+is executed whenever a simple command has a non-zero exit status,
+subject to the following conditions.
+The <CODE>ERR</CODE> trap is not executed if the failed command is part of the
+command list immediately following an <CODE>until</CODE> or <CODE>while</CODE> keyword,
+part of the test in an <CODE>if</CODE> statement,
+part of a command executed in a <CODE>&#38;&#38;</CODE> or <CODE>||</CODE> list,
+or if the command's return
+status is being inverted using <CODE>!</CODE>.
+These are the same conditions obeyed by the <CODE>errexit</CODE> option.
+If a <VAR>sigspec</VAR> is <CODE>RETURN</CODE>, the command <VAR>arg</VAR> is executed
+each time a shell function or a script executed with the <CODE>.</CODE> or
+<CODE>source</CODE> builtins finishes executing.
+<P>
+
+Signals ignored upon entry to the shell cannot be trapped or reset.
+Trapped signals that are not being ignored are reset to their original
+values in a child process when it is created.
+</P><P>
+
+The return status is zero unless a <VAR>sigspec</VAR> does not specify a
+valid signal.
+</P><P>
+
+<DT><CODE>umask</CODE>
+<DD><A NAME="IDX87"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>umask [-p] [-S] [<VAR>mode</VAR>]
+</pre></td></tr></table>Set the shell process's file creation mask to <VAR>mode</VAR>.  If
+<VAR>mode</VAR> begins with a digit, it is interpreted as an octal number;
+if not, it is interpreted as a symbolic mode mask similar
+to that accepted by the <CODE>chmod</CODE> command.  If <VAR>mode</VAR> is
+omitted, the current value of the mask is printed.  If the <SAMP>`-S'</SAMP>
+option is supplied without a <VAR>mode</VAR> argument, the mask is printed
+in a symbolic format.
+If the  <SAMP>`-p'</SAMP> option is supplied, and <VAR>mode</VAR>
+is omitted, the output is in a form that may be reused as input.
+The return status is zero if the mode is successfully changed or if
+no <VAR>mode</VAR> argument is supplied, and non-zero otherwise.
+<P>
+
+Note that when the mode is interpreted as an octal number, each number
+of the umask is subtracted from <CODE>7</CODE>.  Thus, a umask of <CODE>022</CODE>
+results in permissions of <CODE>755</CODE>.
+</P><P>
+
+<DT><CODE>unset</CODE>
+<DD><A NAME="IDX88"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>unset [-fv] [<VAR>name</VAR>]
+</pre></td></tr></table>Each variable or function <VAR>name</VAR> is removed.
+If no options are supplied, or the <SAMP>`-v'</SAMP> option is given, each
+<VAR>name</VAR> refers to a shell variable. 
+If the <SAMP>`-f'</SAMP> option is given, the <VAR>name</VAR>s refer to shell
+functions, and the function definition is removed.
+Readonly variables and functions may not be unset.
+The return status is zero unless a <VAR>name</VAR> is readonly.
+</DL>
+<P>
+
+<A NAME="Bash Builtins"></A>
+<HR SIZE="6">
+<A NAME="SEC60"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC59"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC61"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC61"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 4.2 Bash Builtin Commands </H2>
+<!--docid::SEC60::-->
+<P>
+
+This section describes builtin commands which are unique to
+or have been extended in Bash.
+Some of these commands are specified in the POSIX standard.
+</P><P>
+
+<DL COMPACT>
+
+<DT><CODE>alias</CODE>
+<DD><A NAME="IDX89"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>alias [<CODE>-p</CODE>] [<VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>]
+</pre></td></tr></table><P>
+
+Without arguments or with the <SAMP>`-p'</SAMP> option, <CODE>alias</CODE> prints
+the list of aliases on the standard output in a form that allows
+them to be reused as input.
+If arguments are supplied, an alias is defined for each <VAR>name</VAR>
+whose <VAR>value</VAR> is given.  If no <VAR>value</VAR> is given, the name
+and value of the alias is printed.
+Aliases are described in <A HREF="bashref.html#SEC84">6.6 Aliases</A>.
+</P><P>
+
+<DT><CODE>bind</CODE>
+<DD><A NAME="IDX90"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>bind [-m <VAR>keymap</VAR>] [-lpsvPSV]
+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 <VAR>readline-command</VAR>
+</pre></td></tr></table><P>
+
+Display current Readline (see section <A HREF="bashref.html#SEC95">8. Command Line Editing</A>)
+key and function bindings,
+bind a key sequence to a Readline function or macro,
+or set a Readline variable.
+Each non-option argument is a command as it would appear in a
+Readline initialization file (see section <A HREF="bashref.html#SEC103">8.3 Readline Init File</A>),
+but each binding or command must be passed as a separate argument;  e.g.,
+<SAMP>`"\C-x\C-r":re-read-init-file'</SAMP>.
+</P><P>
+
+Options, if supplied, have the following meanings:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-m <VAR>keymap</VAR></CODE>
+<DD>Use <VAR>keymap</VAR> as the keymap to be affected by
+the subsequent bindings.  Acceptable <VAR>keymap</VAR>
+names are
+<CODE>emacs</CODE>,
+<CODE>emacs-standard</CODE>,
+<CODE>emacs-meta</CODE>,
+<CODE>emacs-ctlx</CODE>,
+<CODE>vi</CODE>,
+<CODE>vi-move</CODE>,
+<CODE>vi-command</CODE>, and
+<CODE>vi-insert</CODE>.
+<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>;
+<CODE>emacs</CODE> is equivalent to <CODE>emacs-standard</CODE>.
+<P>
+
+<DT><CODE>-l</CODE>
+<DD>List the names of all Readline functions.
+<P>
+
+<DT><CODE>-p</CODE>
+<DD>Display Readline function names and bindings in such a way that they
+can be used as input or in a Readline initialization file.
+<P>
+
+<DT><CODE>-P</CODE>
+<DD>List current Readline function names and bindings.
+<P>
+
+<DT><CODE>-v</CODE>
+<DD>Display Readline variable names and values in such a way that they
+can be used as input or in a Readline initialization file.
+<P>
+
+<DT><CODE>-V</CODE>
+<DD>List current Readline variable names and values.
+<P>
+
+<DT><CODE>-s</CODE>
+<DD>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>
+
+<DT><CODE>-S</CODE>
+<DD>Display Readline key sequences bound to macros and the strings they output.
+<P>
+
+<DT><CODE>-f <VAR>filename</VAR></CODE>
+<DD>Read key bindings from <VAR>filename</VAR>.
+<P>
+
+<DT><CODE>-q <VAR>function</VAR></CODE>
+<DD>Query about which keys invoke the named <VAR>function</VAR>.
+<P>
+
+<DT><CODE>-u <VAR>function</VAR></CODE>
+<DD>Unbind all keys bound to the named <VAR>function</VAR>.
+<P>
+
+<DT><CODE>-r <VAR>keyseq</VAR></CODE>
+<DD>Remove any current binding for <VAR>keyseq</VAR>.
+<P>
+
+<DT><CODE>-x <VAR>keyseq:shell-command</VAR></CODE>
+<DD>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
+<CODE>READLINE_LINE</CODE> variable to the contents of the Readline line
+buffer and the <CODE>READLINE_POINT</CODE> variable to the current location
+of the insertion point.
+If the executed command changes the value of <CODE>READLINE_LINE</CODE> or
+<CODE>READLINE_POINT</CODE>, those new values will be reflected in the
+editing state.
+</DL>
+<P>
+
+The return status is zero unless an invalid option is supplied or an
+error occurs.
+</P><P>
+
+<DT><CODE>builtin</CODE>
+<DD><A NAME="IDX91"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>builtin [<VAR>shell-builtin</VAR> [<VAR>args</VAR>]]
+</pre></td></tr></table>Run a shell builtin, passing it <VAR>args</VAR>, and return its exit status.
+This is useful when defining a shell function with the same
+name as a shell builtin, retaining the functionality of the builtin within
+the function.
+The return status is non-zero if <VAR>shell-builtin</VAR> is not a shell
+builtin command.
+<P>
+
+<DT><CODE>caller</CODE>
+<DD><A NAME="IDX92"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>caller [<VAR>expr</VAR>]
+</pre></td></tr></table>Returns the context of any active subroutine call (a shell function or
+a script executed with the <CODE>.</CODE> or <CODE>source</CODE> builtins).
+<P>
+
+Without <VAR>expr</VAR>, <CODE>caller</CODE> displays the line number and source
+filename of the current subroutine call.
+If a non-negative integer is supplied as <VAR>expr</VAR>, <CODE>caller</CODE> 
+displays the line number, subroutine name, and source file corresponding
+to that position in the current execution call stack.  This extra
+information may be used, for example, to print a stack trace.  The
+current frame is frame 0.
+</P><P>
+
+The return value is 0 unless the shell is not executing a subroutine
+call or <VAR>expr</VAR> does not correspond to a valid position in the
+call stack.
+</P><P>
+
+<DT><CODE>command</CODE>
+<DD><A NAME="IDX93"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>command [-pVv] <VAR>command</VAR> [<VAR>arguments</VAR> <small>...</small>]
+</pre></td></tr></table>Runs <VAR>command</VAR> with <VAR>arguments</VAR> ignoring any shell function
+named <VAR>command</VAR>.
+Only shell builtin commands or commands found by searching the
+<CODE>PATH</CODE> are executed.
+If there is a shell function named <CODE>ls</CODE>, running <SAMP>`command ls'</SAMP>
+within the function will execute the external command <CODE>ls</CODE>
+instead of calling the function recursively.
+The <SAMP>`-p'</SAMP> option means to use a default value for <CODE>PATH</CODE>
+that is guaranteed to find all of the standard utilities.
+The return status in this case is 127 if <VAR>command</VAR> cannot be
+found or an error occurred, and the exit status of <VAR>command</VAR>
+otherwise.
+<P>
+
+If either the <SAMP>`-V'</SAMP> or <SAMP>`-v'</SAMP> option is supplied, a
+description of <VAR>command</VAR> is printed.  The <SAMP>`-v'</SAMP> option
+causes a single word indicating the command or file name used to
+invoke <VAR>command</VAR> to be displayed; the <SAMP>`-V'</SAMP> option produces
+a more verbose description.  In this case, the return status is
+zero if <VAR>command</VAR> is found, and non-zero if not.
+</P><P>
+
+<DT><CODE>declare</CODE>
+<DD><A NAME="IDX94"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>declare [-aAfFilrtux] [-p] [<VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>]
+</pre></td></tr></table><P>
+
+Declare variables and give them attributes.  If no <VAR>name</VAR>s
+are given, then display the values of variables instead. 
+</P><P>
+
+The <SAMP>`-p'</SAMP> option will display the attributes and values of each
+<VAR>name</VAR>.
+When <SAMP>`-p'</SAMP> is used with <VAR>name</VAR> arguments, additional options
+are ignored.
+</P><P>
+
+When <SAMP>`-p'</SAMP> is supplied without <VAR>name</VAR> arguments, <CODE>declare</CODE>
+will display the attributes and values of all variables having the
+attributes specified by the additional options.
+If no other options are supplied with <SAMP>`-p'</SAMP>, <CODE>declare</CODE> will
+display the attributes and values of all shell variables.  The <SAMP>`-f'</SAMP>
+option will restrict the display to shell functions.
+</P><P>
+
+The <SAMP>`-F'</SAMP> option inhibits the display of function definitions;
+only the function name and attributes are printed.
+If the <CODE>extdebug</CODE> shell option is enabled using <CODE>shopt</CODE>
+(see section <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>), the source file name and line number where
+the function is defined are displayed as well.
+<SAMP>`-F'</SAMP> implies <SAMP>`-f'</SAMP>.
+The following options can be used to restrict output to variables with
+the specified attributes or to give variables attributes:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-a</CODE>
+<DD>Each <VAR>name</VAR> is an indexed array variable (see section <A HREF="bashref.html#SEC85">6.7 Arrays</A>).
+<P>
+
+<DT><CODE>-A</CODE>
+<DD>Each <VAR>name</VAR> is an associative array variable (see section <A HREF="bashref.html#SEC85">6.7 Arrays</A>).
+<P>
+
+<DT><CODE>-f</CODE>
+<DD>Use function names only.
+<P>
+
+<DT><CODE>-i</CODE>
+<DD>The variable is to be treated as
+an integer; arithmetic evaluation (see section <A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A>) is
+performed when the variable is assigned a value.
+<P>
+
+<DT><CODE>-l</CODE>
+<DD>When the variable is assigned a value, all upper-case characters are
+converted to lower-case.
+The upper-case attribute is disabled.
+<P>
+
+<DT><CODE>-r</CODE>
+<DD>Make <VAR>name</VAR>s readonly.  These names cannot then be assigned values
+by subsequent assignment statements or unset.
+<P>
+
+<DT><CODE>-t</CODE>
+<DD>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>
+
+<DT><CODE>-u</CODE>
+<DD>When the variable is assigned a value, all lower-case characters are
+converted to upper-case.
+The lower-case attribute is disabled.
+<P>
+
+<DT><CODE>-x</CODE>
+<DD>Mark each <VAR>name</VAR> for export to subsequent commands via
+the environment.
+</DL>
+<P>
+
+Using <SAMP>`+'</SAMP> instead of <SAMP>`-'</SAMP> turns off the attribute instead,
+with the exceptions that <SAMP>`+a'</SAMP>
+may not be used to destroy an array variable and <SAMP>`+r'</SAMP> will not
+remove the readonly attribute.
+When used in a function, <CODE>declare</CODE> makes each <VAR>name</VAR> local,
+as with the <CODE>local</CODE> command.  If a variable name is followed by
+=<VAR>value</VAR>, the value of the variable is set to <VAR>value</VAR>.
+</P><P>
+
+The return status is zero unless an invalid option is encountered,
+an attempt is made to define a function using <SAMP>`-f foo=bar'</SAMP>,
+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 section <A HREF="bashref.html#SEC85">6.7 Arrays</A>),
+one of the <VAR>names</VAR> 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><P>
+
+<DT><CODE>echo</CODE>
+<DD><A NAME="IDX95"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>echo [-neE] [<VAR>arg</VAR> <small>...</small>]
+</pre></td></tr></table>Output the <VAR>arg</VAR>s, separated by spaces, terminated with a
+newline.
+The return status is always 0.
+If <SAMP>`-n'</SAMP> is specified, the trailing newline is suppressed.
+If the <SAMP>`-e'</SAMP> option is given, interpretation of the following
+backslash-escaped characters is enabled.
+The <SAMP>`-E'</SAMP> option disables the interpretation of these escape characters,
+even on systems where they are interpreted by default.
+The <CODE>xpg_echo</CODE> shell option may be used to
+dynamically determine whether or not <CODE>echo</CODE> expands these
+escape characters by default.
+<CODE>echo</CODE> does not interpret <SAMP>`--'</SAMP> to mean the end of options.
+<P>
+
+<CODE>echo</CODE> interprets the following escape sequences:
+<DL COMPACT>
+<DT><CODE>\a</CODE>
+<DD>alert (bell)
+<DT><CODE>\b</CODE>
+<DD>backspace
+<DT><CODE>\c</CODE>
+<DD>suppress further output
+<DT><CODE>\e</CODE>
+<DD>escape
+<DT><CODE>\f</CODE>
+<DD>form feed
+<DT><CODE>\n</CODE>
+<DD>new line
+<DT><CODE>\r</CODE>
+<DD>carriage return
+<DT><CODE>\t</CODE>
+<DD>horizontal tab
+<DT><CODE>\v</CODE>
+<DD>vertical tab
+<DT><CODE>\\</CODE>
+<DD>backslash
+<DT><CODE>\0<VAR>nnn</VAR></CODE>
+<DD>the eight-bit character whose value is the octal value <VAR>nnn</VAR>
+(zero to three octal digits)
+<DT><CODE>\x<VAR>HH</VAR></CODE>
+<DD>the eight-bit character whose value is the hexadecimal value <VAR>HH</VAR>
+(one or two hex digits)
+</DL>
+<P>
+
+<DT><CODE>enable</CODE>
+<DD><A NAME="IDX96"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>enable [-a] [-dnps] [-f <VAR>filename</VAR>] [<VAR>name</VAR> <small>...</small>]
+</pre></td></tr></table>Enable and disable builtin shell commands.
+Disabling a builtin allows a disk command which has the same name
+as a shell builtin to be executed without specifying a full pathname,
+even though the shell normally searches for builtins before disk commands.
+If <SAMP>`-n'</SAMP> is used, the <VAR>name</VAR>s become disabled.  Otherwise
+<VAR>name</VAR>s are enabled.  For example, to use the <CODE>test</CODE> binary
+found via <CODE>$PATH</CODE> instead of the shell builtin version, type
+<SAMP>`enable -n test'</SAMP>.
+<P>
+
+If the <SAMP>`-p'</SAMP> option is supplied, or no <VAR>name</VAR> arguments appear,
+a list of shell builtins is printed.  With no other arguments, the list
+consists of all enabled shell builtins.
+The <SAMP>`-a'</SAMP> option means to list
+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.
+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.
+The <SAMP>`-s'</SAMP> option restricts <CODE>enable</CODE> to the POSIX special
+builtins.  If <SAMP>`-s'</SAMP> is used with <SAMP>`-f'</SAMP>, the new builtin becomes
+a special builtin (see section <A HREF="bashref.html#SEC64">4.4 Special Builtins</A>).
+</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><P>
+
+<DT><CODE>help</CODE>
+<DD><A NAME="IDX97"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>help [-dms] [<VAR>pattern</VAR>]
+</pre></td></tr></table>Display helpful information about builtin commands.
+If <VAR>pattern</VAR> is specified, <CODE>help</CODE> gives detailed help
+on all commands matching <VAR>pattern</VAR>, otherwise a list of
+the builtins is printed.
+<P>
+
+Options, if supplied, have the following meanings:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-d</CODE>
+<DD>Display a short description of each <VAR>pattern</VAR>
+<DT><CODE>-m</CODE>
+<DD>Display the description of each <VAR>pattern</VAR> in a manpage-like format
+<DT><CODE>-s</CODE>
+<DD>Display only a short usage synopsis for each <VAR>pattern</VAR>
+</DL>
+<P>
+
+The return status is zero unless no command matches <VAR>pattern</VAR>.
+</P><P>
+
+<DT><CODE>let</CODE>
+<DD><A NAME="IDX98"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>let <VAR>expression</VAR> [<VAR>expression</VAR>]
+</pre></td></tr></table>The <CODE>let</CODE> builtin allows arithmetic to be performed on shell
+variables.  Each <VAR>expression</VAR> is evaluated according to the
+rules given below in <A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A>.  If the
+last <VAR>expression</VAR> evaluates to 0, <CODE>let</CODE> returns 1;
+otherwise 0 is returned.
+<P>
+
+<DT><CODE>local</CODE>
+<DD><A NAME="IDX99"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>local [<VAR>option</VAR>] <VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>
+</pre></td></tr></table>For each argument, a local variable named <VAR>name</VAR> is created,
+and assigned <VAR>value</VAR>.
+The <VAR>option</VAR> can be any of the options accepted by <CODE>declare</CODE>.
+<CODE>local</CODE> can only be used within a function; it makes the variable
+<VAR>name</VAR> have a visible scope restricted to that function and its
+children.  The return status is zero unless <CODE>local</CODE> is used outside
+a function, an invalid <VAR>name</VAR> is supplied, or <VAR>name</VAR> is a
+readonly variable.
+<P>
+
+<DT><CODE>logout</CODE>
+<DD><A NAME="IDX100"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>logout [<VAR>n</VAR>]
+</pre></td></tr></table>Exit a login shell, returning a status of <VAR>n</VAR> to the shell's
+parent.
+<P>
+
+<DT><CODE>mapfile</CODE>
+<DD><A NAME="IDX101"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>mapfile [-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></td></tr></table>Read lines from the standard input into array variable <VAR>array</VAR>,
+or from file descriptor <VAR>fd</VAR>
+if the <SAMP>`-u'</SAMP> option is supplied.
+The variable <CODE>MAPFILE</CODE> is the default <VAR>array</VAR>.
+Options, if supplied, have the following meanings:
+<DL COMPACT>
+
+<DT><CODE>-n</CODE>
+<DD>Copy at most <VAR>count</VAR> lines.  If <VAR>count</VAR> is 0, all lines are copied.
+<DT><CODE>-O</CODE>
+<DD>Begin assigning to <VAR>array</VAR> at index <VAR>origin</VAR>.
+The default index is 0.
+<DT><CODE>-s</CODE>
+<DD>Discard the first <VAR>count</VAR> lines read.
+<DT><CODE>-t</CODE>
+<DD>Remove a trailing line from each line read.
+<DT><CODE>-u</CODE>
+<DD>Read lines from file descriptor <VAR>fd</VAR> instead of the standard input.
+<DT><CODE>-C</CODE>
+<DD>Evaluate <VAR>callback</VAR> each time <VAR>quantum</VAR>P lines are read.
+The <SAMP>`-c'</SAMP> option specifies <VAR>quantum</VAR>.
+<DT><CODE>-c</CODE>
+<DD>Specify the number of lines read between each call to <VAR>callback</VAR>.
+</DL>
+<P>
+
+If <SAMP>`-C'</SAMP> is specified without <SAMP>`-c'</SAMP>, 
+the default quantum is 5000.
+When <VAR>callback</VAR>  is evaluated, it is supplied the index of the next
+array element to be assigned as an additional argument.
+<VAR>callback</VAR> is evaluated after the line is read but before the 
+array element is assigned.
+</P><P>
+
+If not supplied with an explicit origin, <CODE>mapfile</CODE> will clear <VAR>array</VAR>
+before assigning to it.
+</P><P>
+
+<CODE>mapfile</CODE> returns successfully unless an invalid option or option
+argument is supplied, or <VAR>array</VAR> is invalid or unassignable.
+</P><P>
+
+<DT><CODE>printf</CODE>
+<DD><A NAME="IDX102"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>printf [-v <VAR>var</VAR>] <VAR>format</VAR> [<VAR>arguments</VAR>]
+</pre></td></tr></table>Write the formatted <VAR>arguments</VAR> to the standard output under the
+control of the <VAR>format</VAR>.
+The <VAR>format</VAR> is a character string which contains three types of objects:
+plain characters, which are simply copied to standard output, character
+escape sequences, which are converted and copied to the standard output, and
+format specifications, each of which causes printing of the next successive
+<VAR>argument</VAR>.
+In addition to the standard <CODE>printf(1)</CODE> formats, <SAMP>`%b'</SAMP> causes
+<CODE>printf</CODE> to expand backslash escape sequences in the corresponding
+<VAR>argument</VAR>,
+(except that <SAMP>`\c'</SAMP> terminates output, backslashes in
+<SAMP>`\''</SAMP>, <SAMP>`\"'</SAMP>, and <SAMP>`\?'</SAMP> are not removed, and octal escapes
+beginning with <SAMP>`\0'</SAMP> may contain up to four digits),
+and <SAMP>`%q'</SAMP> causes <CODE>printf</CODE> to output the
+corresponding <VAR>argument</VAR> in a format that can be reused as shell input.
+<P>
+
+The <SAMP>`-v'</SAMP> option causes the output to be assigned to the variable
+<VAR>var</VAR> rather than being printed to the standard output.
+</P><P>
+
+The <VAR>format</VAR> is reused as necessary to consume all of the <VAR>arguments</VAR>.
+If the <VAR>format</VAR> requires more <VAR>arguments</VAR> than are supplied, the
+extra format specifications behave as if a zero value or null string, as
+appropriate, had been supplied.  The return value is zero on success,
+non-zero on failure.
+</P><P>
+
+<DT><CODE>read</CODE>
+<DD><A NAME="IDX103"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>read [-ers] [-a <VAR>aname</VAR>] [-d <VAR>delim</VAR>] [-i <VAR>text</VAR>] [-n <VAR>nchars</VAR>] [-p <VAR>prompt</VAR>] [-t <VAR>timeout</VAR>] [-u <VAR>fd</VAR>] [<VAR>name</VAR> <small>...</small>]
+</pre></td></tr></table>One line is read from the standard input, or from the file descriptor
+<VAR>fd</VAR> supplied as an argument to the <SAMP>`-u'</SAMP> option, and the first word
+is assigned to the first <VAR>name</VAR>, the second word to the second <VAR>name</VAR>,
+and so on, with leftover words and their intervening separators assigned
+to the last <VAR>name</VAR>.
+If there are fewer words read from the input stream than names,
+the remaining names are assigned empty values.
+The characters in the value of the <CODE>IFS</CODE> variable
+are used to split the line into words.
+The backslash character <SAMP>`\'</SAMP> may be used to remove any special
+meaning for the next character read and for line continuation.
+If no names are supplied, the line read is assigned to the
+variable <CODE>REPLY</CODE>.
+The return code is zero, unless end-of-file is encountered, <CODE>read</CODE>
+times out (in which case the return code is greater than 128), or an
+invalid file descriptor is supplied as the argument to <SAMP>`-u'</SAMP>.
+<P>
+
+Options, if supplied, have the following meanings:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-a <VAR>aname</VAR></CODE>
+<DD>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>
+
+<DT><CODE>-d <VAR>delim</VAR></CODE>
+<DD>The first character of <VAR>delim</VAR> is used to terminate the input line,
+rather than newline.
+<P>
+
+<DT><CODE>-e</CODE>
+<DD>Readline (see section <A HREF="bashref.html#SEC95">8. 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.
+<P>
+
+<DT><CODE>-i <VAR>text</VAR></CODE>
+<DD>If Readline is being used to read the line, <VAR>text</VAR> is placed into
+the editing buffer before editing begins.
+<P>
+
+<DT><CODE>-n <VAR>nchars</VAR></CODE>
+<DD><CODE>read</CODE> returns after reading <VAR>nchars</VAR> characters rather than
+waiting for a complete line of input.
+<P>
+
+<DT><CODE>-p <VAR>prompt</VAR></CODE>
+<DD>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>
+
+<DT><CODE>-r</CODE>
+<DD>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 be used as a line
+continuation.
+<P>
+
+<DT><CODE>-s</CODE>
+<DD>Silent mode.  If input is coming from a terminal, characters are
+not echoed.
+<P>
+
+<DT><CODE>-t <VAR>timeout</VAR></CODE>
+<DD>Cause <CODE>read</CODE> to time out and return failure if a complete line of
+input is not read within <VAR>timeout</VAR> seconds.
+<VAR>timeout</VAR>  may be a decimal number with a fractional portion following
+the decimal point.
+This option is only effective if <CODE>read</CODE> is reading input from a
+terminal, pipe, or other special file; it has no effect when reading
+from regular files.
+If <VAR>timeout</VAR> is 0, <CODE>read</CODE> returns success if input is available on
+the specified file descriptor, failure otherwise.
+The exit status is greater than 128 if the timeout is exceeded.
+<P>
+
+<DT><CODE>-u <VAR>fd</VAR></CODE>
+<DD>Read input from file descriptor <VAR>fd</VAR>.
+<P>
+
+</DL>
+<P>
+
+<DT><CODE>readarray</CODE>
+<DD><A NAME="IDX104"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>readarray [-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></td></tr></table>Read lines from the standard input into array variable <VAR>array</VAR>,
+or from file descriptor <VAR>fd</VAR>
+if the <SAMP>`-u'</SAMP> option is supplied.
+<P>
+
+A synonym for <CODE>mapfile</CODE>.
+</P><P>
+
+<DT><CODE>source</CODE>
+<DD><A NAME="IDX105"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>source <VAR>filename</VAR>
+</pre></td></tr></table>A synonym for <CODE>.</CODE> (see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+<P>
+
+<DT><CODE>type</CODE>
+<DD><A NAME="IDX106"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>type [-afptP] [<VAR>name</VAR> <small>...</small>]
+</pre></td></tr></table>For each <VAR>name</VAR>, indicate how it would be interpreted if used as a
+command name.
+<P>
+
+If the <SAMP>`-t'</SAMP> option is used, <CODE>type</CODE> prints a single word
+which is one of <SAMP>`alias'</SAMP>, <SAMP>`function'</SAMP>, <SAMP>`builtin'</SAMP>,
+<SAMP>`file'</SAMP> or <SAMP>`keyword'</SAMP>,
+if <VAR>name</VAR> is an alias, shell function, shell builtin,
+disk file, or shell reserved word, respectively.
+If the <VAR>name</VAR> is not found, then nothing is printed, and
+<CODE>type</CODE> returns a failure status.
+</P><P>
+
+If the <SAMP>`-p'</SAMP> option is used, <CODE>type</CODE> either returns the name
+of the disk file that would be executed, or nothing if <SAMP>`-t'</SAMP>
+would not return <SAMP>`file'</SAMP>.
+</P><P>
+
+The <SAMP>`-P'</SAMP> option forces a path search for each <VAR>name</VAR>, even if
+<SAMP>`-t'</SAMP> would not return <SAMP>`file'</SAMP>.
+</P><P>
+
+If a command is hashed, <SAMP>`-p'</SAMP> and <SAMP>`-P'</SAMP> print the hashed value,
+not necessarily the file that appears first in <CODE>$PATH</CODE>.
+</P><P>
+
+If the <SAMP>`-a'</SAMP> option is used, <CODE>type</CODE> returns all of the places
+that contain an executable named <VAR>file</VAR>.
+This includes aliases and functions, if and only if the <SAMP>`-p'</SAMP> option
+is not also used.
+</P><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
+if any are not found.
+</P><P>
+
+<DT><CODE>typeset</CODE>
+<DD><A NAME="IDX107"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>typeset [-afFrxi] [-p] [<VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>]
+</pre></td></tr></table>The <CODE>typeset</CODE> command is supplied for compatibility with the Korn
+shell; however, it has been deprecated in favor of the <CODE>declare</CODE>
+builtin command.
+<P>
+
+<DT><CODE>ulimit</CODE>
+<DD><A NAME="IDX108"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>ulimit [-abcdefilmnpqrstuvxHST] [<VAR>limit</VAR>]
+</pre></td></tr></table><CODE>ulimit</CODE> provides control over the resources available to processes
+started by the shell, on systems that allow such control.  If an
+option is given, it is interpreted as follows:
+<DL COMPACT>
+<DT><CODE>-S</CODE>
+<DD>Change and report the soft limit associated with a resource.
+<P>
+
+<DT><CODE>-H</CODE>
+<DD>Change and report the hard limit associated with a resource.
+<P>
+
+<DT><CODE>-a</CODE>
+<DD>All current limits are reported.
+<P>
+
+<DT><CODE>-b</CODE>
+<DD>The maximum socket buffer size.
+<P>
+
+<DT><CODE>-c</CODE>
+<DD>The maximum size of core files created.
+<P>
+
+<DT><CODE>-d</CODE>
+<DD>The maximum size of a process's data segment.
+<P>
+
+<DT><CODE>-e</CODE>
+<DD>The maximum scheduling priority ("nice").
+<P>
+
+<DT><CODE>-f</CODE>
+<DD>The maximum size of files written by the shell and its children.
+<P>
+
+<DT><CODE>-i</CODE>
+<DD>The maximum number of pending signals.
+<P>
+
+<DT><CODE>-l</CODE>
+<DD>The maximum size that may be locked into memory.
+<P>
+
+<DT><CODE>-m</CODE>
+<DD>The maximum resident set size.
+<P>
+
+<DT><CODE>-n</CODE>
+<DD>The maximum number of open file descriptors.
+<P>
+
+<DT><CODE>-p</CODE>
+<DD>The pipe buffer size.
+<P>
+
+<DT><CODE>-q</CODE>
+<DD>The maximum number of bytes in POSIX message queues.
+<P>
+
+<DT><CODE>-r</CODE>
+<DD>The maximum real-time scheduling priority.
+<P>
+
+<DT><CODE>-s</CODE>
+<DD>The maximum stack size.
+<P>
+
+<DT><CODE>-t</CODE>
+<DD>The maximum amount of cpu time in seconds.
+<P>
+
+<DT><CODE>-u</CODE>
+<DD>The maximum number of processes available to a single user.
+<P>
+
+<DT><CODE>-v</CODE>
+<DD>The maximum amount of virtual memory available to the process.
+<P>
+
+<DT><CODE>-x</CODE>
+<DD>The maximum number of file locks.
+<P>
+
+<DT><CODE>-T</CODE>
+<DD>The maximum number of threads.
+<P>
+
+</DL>
+<P>
+
+If <VAR>limit</VAR> is given, it is the new value of the specified resource;
+the special <VAR>limit</VAR> values <CODE>hard</CODE>, <CODE>soft</CODE>, and
+<CODE>unlimited</CODE> stand for the current hard limit, the current soft limit,
+and no limit, respectively.
+A hard limit cannot be increased by a non-root user once it is set;
+a soft limit may be increased up to the value of the hard limit.
+Otherwise, the current value of the soft limit for the specified resource
+is printed, unless the <SAMP>`-H'</SAMP> option is supplied.
+When setting new limits, if neither <SAMP>`-H'</SAMP> nor <SAMP>`-S'</SAMP> is supplied,
+both the hard and soft limits are set.
+If no option is given, then <SAMP>`-f'</SAMP> is assumed.  Values are in 1024-byte
+increments, except for <SAMP>`-t'</SAMP>, which is in seconds, <SAMP>`-p'</SAMP>,
+which is in units of 512-byte blocks, and <SAMP>`-n'</SAMP> and <SAMP>`-u'</SAMP>, which
+are unscaled values.
+</P><P>
+
+The return status is zero unless an invalid option or argument is supplied,
+or an error occurs while setting a new limit.
+</P><P>
+
+<DT><CODE>unalias</CODE>
+<DD><A NAME="IDX109"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>unalias [-a] [<VAR>name</VAR> <small>...</small> ]
+</pre></td></tr></table><P>
+
+Remove each <VAR>name</VAR> from the list of aliases.  If <SAMP>`-a'</SAMP> is
+supplied, all aliases are removed.
+Aliases are described in <A HREF="bashref.html#SEC84">6.6 Aliases</A>.
+</P><P>
+
+</DL>
+<P>
+
+<A NAME="Modifying Shell Behavior"></A>
+<HR SIZE="6">
+<A NAME="SEC61"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC60"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC62"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC64"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC64"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 4.3 Modifying Shell Behavior </H2>
+<!--docid::SEC61::-->
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC62">4.3.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"><A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Modify shell optional behavior.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="The Set Builtin"></A>
+<HR SIZE="6">
+<A NAME="SEC62"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC61"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC63"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC64"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC61"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC64"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 4.3.1 The Set Builtin </H3>
+<!--docid::SEC62::-->
+<P>
+
+This builtin is so complicated that it deserves its own section.  <CODE>set</CODE>
+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><P>
+
+<DL COMPACT>
+<DT><CODE>set</CODE>
+<DD><A NAME="IDX110"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>set [--abefhkmnptuvxBCEHPT] [-o <VAR>option</VAR>] [<VAR>argument</VAR> <small>...</small>]
+set [+abefhkmnptuvxBCEHPT] [+o <VAR>option</VAR>] [<VAR>argument</VAR> <small>...</small>]
+</pre></td></tr></table><P>
+
+If no options or arguments are supplied, <CODE>set</CODE> displays the names
+and values of all shell variables and functions, sorted according to the
+current locale, in a format that may be reused as input
+for setting or resetting the currently-set variables.
+Read-only variables cannot be reset.
+In POSIX mode, only shell variables are listed.
+</P><P>
+
+When options are supplied, they set or unset shell attributes.
+Options, if specified, have the following meanings:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-a</CODE>
+<DD>Mark variables and function which are modified or created for export
+to the environment of subsequent commands.
+<P>
+
+<DT><CODE>-b</CODE>
+<DD>Cause the status of terminated background jobs to be reported
+immediately, rather than before printing the next primary prompt.
+<P>
+
+<DT><CODE>-e</CODE>
+<DD>Exit immediately if a simple command (see section <A HREF="bashref.html#SEC16">3.2.1 Simple Commands</A>) exits
+with a non-zero status, unless the command that fails is part of the
+command list immediately following a <CODE>while</CODE> or <CODE>until</CODE> keyword,
+part of the test in an <CODE>if</CODE> statement,
+part of a command executed in a <CODE>&#38;&#38;</CODE> or <CODE>||b</CODE> list,
+any command in a pipeline but the last,
+or if the command's return status is being inverted using <CODE>!</CODE>.
+Failing simple commands that are part of shell functions or command lists
+enclosed in braces or parentheses satisfying the above conditions do not
+cause the shell to exit.
+A trap on <CODE>ERR</CODE>, if set, is executed before the shell exits.
+<P>
+
+<DT><CODE>-f</CODE>
+<DD>Disable file name generation (globbing).
+<P>
+
+<DT><CODE>-h</CODE>
+<DD>Locate and remember (hash) commands as they are looked up for execution.
+This option is enabled by default.
+<P>
+
+<DT><CODE>-k</CODE>
+<DD>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>
+
+<DT><CODE>-m</CODE>
+<DD>Job control is enabled (see section <A HREF="bashref.html#SEC91">7. Job Control</A>).
+<P>
+
+<DT><CODE>-n</CODE>
+<DD>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>
+
+<DT><CODE>-o <VAR>option-name</VAR></CODE>
+<DD><P>
+
+Set the option corresponding to <VAR>option-name</VAR>:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>allexport</CODE>
+<DD>Same as <CODE>-a</CODE>.
+<P>
+
+<DT><CODE>braceexpand</CODE>
+<DD>Same as <CODE>-B</CODE>.
+<P>
+
+<DT><CODE>emacs</CODE>
+<DD>Use an <CODE>emacs</CODE>-style line editing interface (see section <A HREF="bashref.html#SEC95">8. Command Line Editing</A>).
+This also affects the editing interface used for <CODE>read -e</CODE>.
+<P>
+
+<DT><CODE>errexit</CODE>
+<DD>Same as <CODE>-e</CODE>.
+<P>
+
+<DT><CODE>errtrace</CODE>
+<DD>Same as <CODE>-E</CODE>.
+<P>
+
+<DT><CODE>functrace</CODE>
+<DD>Same as <CODE>-T</CODE>.
+<P>
+
+<DT><CODE>hashall</CODE>
+<DD>Same as <CODE>-h</CODE>.
+<P>
+
+<DT><CODE>histexpand</CODE>
+<DD>Same as <CODE>-H</CODE>.
+<P>
+
+<DT><CODE>history</CODE>
+<DD>Enable command history, as described in <A HREF="bashref.html#SEC120">9.1 Bash History Facilities</A>.
+This option is on by default in interactive shells.
+<P>
+
+<DT><CODE>ignoreeof</CODE>
+<DD>An interactive shell will not exit upon reading EOF.
+<P>
+
+<DT><CODE>keyword</CODE>
+<DD>Same as <CODE>-k</CODE>.
+<P>
+
+<DT><CODE>monitor</CODE>
+<DD>Same as <CODE>-m</CODE>.
+<P>
+
+<DT><CODE>noclobber</CODE>
+<DD>Same as <CODE>-C</CODE>.
+<P>
+
+<DT><CODE>noexec</CODE>
+<DD>Same as <CODE>-n</CODE>.
+<P>
+
+<DT><CODE>noglob</CODE>
+<DD>Same as <CODE>-f</CODE>.
+<P>
+
+<DT><CODE>nolog</CODE>
+<DD>Currently ignored.
+<P>
+
+<DT><CODE>notify</CODE>
+<DD>Same as <CODE>-b</CODE>.
+<P>
+
+<DT><CODE>nounset</CODE>
+<DD>Same as <CODE>-u</CODE>.
+<P>
+
+<DT><CODE>onecmd</CODE>
+<DD>Same as <CODE>-t</CODE>.
+<P>
+
+<DT><CODE>physical</CODE>
+<DD>Same as <CODE>-P</CODE>.
+<P>
+
+<DT><CODE>pipefail</CODE>
+<DD>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>
+
+<DT><CODE>posix</CODE>
+<DD>Change the behavior of Bash where the default operation differs
+from the POSIX standard to match the standard
+(see section <A HREF="bashref.html#SEC90">6.11 Bash POSIX Mode</A>).
+This is intended to make Bash behave as a strict superset of that
+standard.
+<P>
+
+<DT><CODE>privileged</CODE>
+<DD>Same as <CODE>-p</CODE>.
+<P>
+
+<DT><CODE>verbose</CODE>
+<DD>Same as <CODE>-v</CODE>.
+<P>
+
+<DT><CODE>vi</CODE>
+<DD>Use a <CODE>vi</CODE>-style line editing interface.
+This also affects the editing interface used for <CODE>read -e</CODE>.
+<P>
+
+<DT><CODE>xtrace</CODE>
+<DD>Same as <CODE>-x</CODE>.
+</DL>
+<P>
+
+<DT><CODE>-p</CODE>
+<DD>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,
+and the <CODE>SHELLOPTS</CODE>, <CODE>CDPATH</CODE> and <CODE>GLOBIGNORE</CODE>  variables,
+if they appear in the environment, are ignored.
+If the shell is started with the effective user (group) id not equal to the
+real user (group) id, and the <CODE>-p</CODE> option is not supplied, these actions
+are taken and the effective user id is set to the real user id.
+If the <CODE>-p</CODE> option is supplied at startup, the effective user id is
+not reset.
+Turning this option off causes the effective user
+and group ids to be set to the real user and group ids.
+<P>
+
+<DT><CODE>-t</CODE>
+<DD>Exit after reading and executing one command.
+<P>
+
+<DT><CODE>-u</CODE>
+<DD>Treat unset variables 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>
+
+<DT><CODE>-v</CODE>
+<DD>Print shell input lines as they are read.
+<P>
+
+<DT><CODE>-x</CODE>
+<DD>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
+expanded and before they are executed.  The value of the <CODE>PS4</CODE>
+variable is expanded and the resultant value is printed before
+the command and its expanded arguments.
+<P>
+
+<DT><CODE>-B</CODE>
+<DD>The shell will perform brace expansion (see section <A HREF="bashref.html#SEC29">3.5.1 Brace Expansion</A>).
+This option is on by default.
+<P>
+
+<DT><CODE>-C</CODE>
+<DD>Prevent output redirection using <SAMP>`&#62;'</SAMP>, <SAMP>`&#62;&#38;'</SAMP>, and <SAMP>`&#60;&#62;'</SAMP>
+from overwriting existing files.
+<P>
+
+<DT><CODE>-E</CODE>
+<DD>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>
+
+<DT><CODE>-H</CODE>
+<DD>Enable <SAMP>`!'</SAMP> style history substitution (see section <A HREF="bashref.html#SEC122">9.3 History Expansion</A>).
+This option is on by default for interactive shells.
+<P>
+
+<DT><CODE>-P</CODE>
+<DD>If set, do not follow 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
+the logical chain of directories when performing commands
+which change the current directory.
+<P>
+
+For example, if <TT>`/usr/sys'</TT> is a symbolic link to <TT>`/usr/local/sys'</TT>
+then:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>$ cd /usr/sys; echo $PWD
+/usr/sys
+$ cd ..; pwd
+/usr
+</pre></td></tr></table></P><P>
+
+If <CODE>set -P</CODE> is on, then:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>$ cd /usr/sys; echo $PWD
+/usr/local/sys
+$ cd ..; pwd
+/usr/local
+</pre></td></tr></table></P><P>
+
+<DT><CODE>-T</CODE>
+<DD>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.
+The <CODE>DEBUG</CODE> and <CODE>RETURN</CODE> traps are normally not inherited
+in such cases.
+<P>
+
+<DT><CODE>--</CODE>
+<DD>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 <SAMP>`-'</SAMP>.
+<P>
+
+<DT><CODE>-</CODE>
+<DD>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.
+If there are no arguments, the positional parameters remain unchanged.
+</DL>
+<P>
+
+Using <SAMP>`+'</SAMP> rather than <SAMP>`-'</SAMP> causes these options to be
+turned off.  The options can also be used upon invocation of the
+shell.  The current set of options may be found in <CODE>$-</CODE>.
+</P><P>
+
+The remaining N <VAR>arguments</VAR> are positional parameters and are
+assigned, in order, to <CODE>$1</CODE>, <CODE>$2</CODE>, <small>...</small>  <CODE>$N</CODE>.
+The special parameter <CODE>#</CODE> is set to N.
+</P><P>
+
+The return status is always zero unless an invalid option is supplied.
+</DL>
+<P>
+
+<A NAME="The Shopt Builtin"></A>
+<HR SIZE="6">
+<A NAME="SEC63"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC62"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC64"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC64"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC61"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC64"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 4.3.2 The Shopt Builtin </H3>
+<!--docid::SEC63::-->
+<P>
+
+This builtin allows you to change additional shell optional behavior.
+</P><P>
+
+<DL COMPACT>
+
+<DT><CODE>shopt</CODE>
+<DD><A NAME="IDX111"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>shopt [-pqsu] [-o] [<VAR>optname</VAR> <small>...</small>]
+</pre></td></tr></table>Toggle the values of variables controlling optional shell behavior.
+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.
+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>
+<DT><CODE>-s</CODE>
+<DD>Enable (set) each <VAR>optname</VAR>.
+<P>
+
+<DT><CODE>-u</CODE>
+<DD>Disable (unset) each <VAR>optname</VAR>.
+<P>
+
+<DT><CODE>-q</CODE>
+<DD>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;
+non-zero otherwise.
+<P>
+
+<DT><CODE>-o</CODE>
+<DD>Restricts the values of
+<VAR>optname</VAR> to be those defined for the <SAMP>`-o'</SAMP> option to the
+<CODE>set</CODE> builtin (see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+</DL>
+<P>
+
+If either <SAMP>`-s'</SAMP> or <SAMP>`-u'</SAMP>
+is used with no <VAR>optname</VAR> arguments, the display is limited to
+those options which are set or unset, respectively.
+</P><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>
+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:
+<DL COMPACT>
+
+<DT><CODE>autocd</CODE>
+<DD>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>
+
+<DT><CODE>cdable_vars</CODE>
+<DD>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>
+
+<DT><CODE>cdspell</CODE>
+<DD>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,
+a missing character, and a character too many.
+If a correction is found, the corrected path is printed,
+and the command proceeds.
+This option is only used by interactive shells.
+<P>
+
+<DT><CODE>checkhash</CODE>
+<DD>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>
+
+<DT><CODE>checkjobs</CODE>
+<DD>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
+intervening command (see section <A HREF="bashref.html#SEC91">7. Job Control</A>).
+The shell always postpones exiting if any jobs are stopped.
+<P>
+
+<DT><CODE>checkwinsize</CODE>
+<DD>If set, Bash checks the window size after each command
+and, if necessary, updates the values of    
+<CODE>LINES</CODE> and <CODE>COLUMNS</CODE>.
+<P>
+
+<DT><CODE>cmdhist</CODE>
+<DD>If set, Bash
+attempts to save all lines of a multiple-line
+command in the same history entry.  This allows
+easy re-editing of multi-line commands.
+<P>
+
+<DT><CODE>compat31</CODE>
+<DD>If set, Bash
+changes its behavior to that of version 3.1 with respect to quoted
+arguments to the conditional command's =~ operator.
+<P>
+
+<DT><CODE>dirspell</CODE>
+<DD>If set, Bash
+attempts spelling correction on directory names during word completion 
+if the directory name initially supplied does not exist.
+<P>
+
+<DT><CODE>dotglob</CODE>
+<DD>If set, Bash includes filenames beginning with a `.' in
+the results of filename expansion.
+<P>
+
+<DT><CODE>execfail</CODE>
+<DD>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>
+
+<DT><CODE>expand_aliases</CODE>
+<DD>If set, aliases are expanded as described below under Aliases,
+<A HREF="bashref.html#SEC84">6.6 Aliases</A>.
+This option is enabled by default for interactive shells.
+<P>
+
+<DT><CODE>extdebug</CODE>
+<DD>If set, behavior intended for use by debuggers is enabled:
+<P>
+
+<OL>
+<LI>
+The <SAMP>`-F'</SAMP> option to the <CODE>declare</CODE> builtin (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>)
+displays the source file name and line number corresponding to each function
+name supplied as an argument.
+<P>
+
+<LI>
+If the command run by the <CODE>DEBUG</CODE> trap returns a non-zero value, the
+next command is skipped and not executed.
+<P>
+
+<LI>
+If the command run by the <CODE>DEBUG</CODE> trap returns a value of 2, and the
+shell is executing in a subroutine (a shell function or a shell script
+executed by the <CODE>.</CODE> or <CODE>source</CODE> builtins), a call to
+<CODE>return</CODE> is simulated.
+<P>
+
+<LI>
+<CODE>BASH_ARGC</CODE> and <CODE>BASH_ARGV</CODE> are updated as described in their
+descriptions (see section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>).
+<P>
+
+<LI>
+Function tracing is enabled:  command substitution, shell functions, and
+subshells invoked with <CODE>( <VAR>command</VAR> )</CODE> inherit the
+<CODE>DEBUG</CODE> and <CODE>RETURN</CODE> traps.
+<P>
+
+<LI>
+Error tracing is enabled:  command substitution, shell functions, and
+subshells invoked with <CODE>( <VAR>command</VAR> )</CODE> inherit the
+<CODE>ERROR</CODE> trap.
+</OL>
+<P>
+
+<DT><CODE>extglob</CODE>
+<DD>If set, the extended pattern matching features described above
+(see section <A HREF="bashref.html#SEC37">3.5.8.1 Pattern Matching</A>) are enabled.
+<P>
+
+<DT><CODE>extquote</CODE>
+<DD>If set, <CODE>$'<VAR>string</VAR>'</CODE> and <CODE>$"<VAR>string</VAR>"</CODE> quoting is  
+performed within <CODE>${<VAR>parameter</VAR>}</CODE> expansions                     
+enclosed in double quotes.  This option is enabled by default. 
+<P>
+
+<DT><CODE>failglob</CODE>
+<DD>If set, patterns which fail to match filenames during pathname expansion
+result in an expansion error.
+<P>
+
+<DT><CODE>force_fignore</CODE>
+<DD>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.
+See section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>, for a description of <CODE>FIGNORE</CODE>.
+This option is enabled by default.
+<P>
+
+<DT><CODE>globstar</CODE>
+<DD>If set, the pattern <SAMP>`**'</SAMP> used in a filename expansion context will
+match a files and zero or more directories and subdirectories.
+If the pattern is followed by a <SAMP>`/'</SAMP>, only directories and
+subdirectories match.
+<P>
+
+<DT><CODE>gnu_errfmt</CODE>
+<DD>If set, shell error messages are written in the standard GNU error
+message format.
+<P>
+
+<DT><CODE>histappend</CODE>
+<DD>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>
+
+<DT><CODE>histreedit</CODE>
+<DD>If set, and Readline
+is being used, a user is given the opportunity to re-edit a
+failed history substitution.
+<P>
+
+<DT><CODE>histverify</CODE>
+<DD>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>
+
+<DT><CODE>hostcomplete</CODE>
+<DD>If set, and Readline is being used, Bash will attempt to perform
+hostname completion when a word containing a <SAMP>`@'</SAMP> is being
+completed (see section <A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A>).  This option is enabled
+by default.
+<P>
+
+<DT><CODE>huponexit</CODE>
+<DD>If set, Bash will send <CODE>SIGHUP</CODE> to all jobs when an interactive
+login shell exits (see section <A HREF="bashref.html#SEC56">3.7.6 Signals</A>).
+<P>
+
+<DT><CODE>interactive_comments</CODE>
+<DD>Allow a word beginning with <SAMP>`#'</SAMP>
+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>
+
+<DT><CODE>lithist</CODE>
+<DD>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>
+
+<DT><CODE>login_shell</CODE>
+<DD>The shell sets this option if it is started as a login shell
+(see section <A HREF="bashref.html#SEC69">6.1 Invoking Bash</A>).
+The value may not be changed.
+<P>
+
+<DT><CODE>mailwarn</CODE>
+<DD>If set, and a file that Bash is checking for mail has been  
+accessed since the last time it was checked, the message
+<CODE>"The mail in <VAR>mailfile</VAR> has been read"</CODE> is displayed.
+<P>
+
+<DT><CODE>no_empty_cmd_completion</CODE>
+<DD>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>
+
+<DT><CODE>nocaseglob</CODE>
+<DD>If set, Bash matches filenames in a case-insensitive fashion when
+performing filename expansion.
+<P>
+
+<DT><CODE>nocasematch</CODE>
+<DD>If set, Bash matches patterns in a case-insensitive fashion when
+performing matching while executing <CODE>case</CODE> or <CODE>[[</CODE>
+conditional commands.
+<P>
+
+<DT><CODE>nullglob</CODE>
+<DD>If set, Bash allows filename patterns which match no
+files to expand to a null string, rather than themselves.
+<P>
+
+<DT><CODE>progcomp</CODE>
+<DD>If set, the programmable completion facilities
+(see section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>) are enabled.
+This option is enabled by default.
+<P>
+
+<DT><CODE>promptvars</CODE>
+<DD>If set, prompt strings undergo
+parameter expansion, command substitution, arithmetic
+expansion, and quote removal after being expanded
+as described below (see section <A HREF="bashref.html#SEC88">6.9 Controlling the Prompt</A>).
+This option is enabled by default.
+<P>
+
+<DT><CODE>restricted_shell</CODE>
+<DD>The shell sets this option if it is started in restricted mode
+(see section <A HREF="bashref.html#SEC89">6.10 The Restricted Shell</A>).
+The value may not be changed.
+This is not reset when the startup files are executed, allowing
+the startup files to discover whether or not a shell is restricted.
+<P>
+
+<DT><CODE>shift_verbose</CODE>
+<DD>If this is set, the <CODE>shift</CODE>
+builtin prints an error message when the shift count exceeds the
+number of positional parameters.
+<P>
+
+<DT><CODE>sourcepath</CODE>
+<DD>If set, the <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>
+
+<DT><CODE>xpg_echo</CODE>
+<DD>If set, the <CODE>echo</CODE> builtin expands backslash-escape sequences
+by default.
+<P>
+
+</DL>
+<P>
+
+The return status when listing options is zero if all <VAR>optnames</VAR>
+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>
+
+</DL>
+<P>
+
+<A NAME="Special Builtins"></A>
+<HR SIZE="6">
+<A NAME="SEC64"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC63"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 4.4 Special Builtins </H2>
+<!--docid::SEC64::-->
+<P>
+
+For historical reasons, the POSIX standard has classified
+several builtin commands as <EM>special</EM>.
+When Bash is executing in POSIX mode, the special builtins
+differ from other builtin commands in three respects:
+</P><P>
+
+<OL>
+<LI>
+Special builtins are found before shell functions during command lookup.
+<P>
+
+<LI>
+If a special builtin returns an error status, a non-interactive shell exits.
+<P>
+
+<LI>
+Assignment statements preceding the command stay in effect in the shell
+environment after the command completes.
+</OL>
+<P>
+
+When Bash is not executing in POSIX mode, these builtins behave no
+differently than the rest of the Bash builtin commands.
+The Bash POSIX mode is described in <A HREF="bashref.html#SEC90">6.11 Bash POSIX Mode</A>. 
+</P><P>
+
+These are the POSIX special builtins:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>break : . continue eval exec exit export readonly return set
+shift trap unset
+</pre></td></tr></table></P><P>
+
+<A NAME="Shell Variables"></A>
+<HR SIZE="6">
+<A NAME="SEC65"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC64"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC66"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> 5. Shell Variables </H1>
+<!--docid::SEC65::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC66">5.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"><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">List of variables that exist in Bash.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+This chapter describes the shell variables that Bash uses.
+Bash automatically assigns default values to a number of variables.
+</P><P>
+
+<A NAME="Bourne Shell Variables"></A>
+<HR SIZE="6">
+<A NAME="SEC66"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC67"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 5.1 Bourne Shell Variables </H2>
+<!--docid::SEC66::-->
+<P>
+
+Bash uses certain shell variables in the same way as the Bourne shell.
+In some cases, Bash assigns a default value to the variable.
+</P><P>
+
+<DL COMPACT>
+
+<A NAME="IDX112"></A>
+<DT><CODE>CDPATH</CODE>
+<DD><A NAME="IDX113"></A>
+A colon-separated list of directories used as a search path for
+the <CODE>cd</CODE> builtin command.
+<P>
+
+<A NAME="IDX114"></A>
+<DT><CODE>HOME</CODE>
+<DD><A NAME="IDX115"></A>
+The current user's home directory; the default for the <CODE>cd</CODE> builtin
+command.
+The value of this variable is also used by tilde expansion
+(see section <A HREF="bashref.html#SEC30">3.5.2 Tilde Expansion</A>).
+<P>
+
+<A NAME="IDX116"></A>
+<DT><CODE>IFS</CODE>
+<DD><A NAME="IDX117"></A>
+A list of characters that separate fields; used when the shell splits
+words as part of expansion.
+<P>
+
+<A NAME="IDX118"></A>
+<DT><CODE>MAIL</CODE>
+<DD><A NAME="IDX119"></A>
+If this parameter is set to a filename and the <CODE>MAILPATH</CODE> variable
+is not set, Bash informs the user of the arrival of mail in
+the specified file.
+<P>
+
+<A NAME="IDX120"></A>
+<DT><CODE>MAILPATH</CODE>
+<DD><A NAME="IDX121"></A>
+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
+arrives in the mail file by separating the file name from the message with
+a <SAMP>`?'</SAMP>.
+When used in the text of the message, <CODE>$_</CODE> expands to the name of
+the current mail file.
+<P>
+
+<A NAME="IDX122"></A>
+<DT><CODE>OPTARG</CODE>
+<DD><A NAME="IDX123"></A>
+The value of the last option argument processed by the <CODE>getopts</CODE> builtin.
+<P>
+
+<A NAME="IDX124"></A>
+<DT><CODE>OPTIND</CODE>
+<DD><A NAME="IDX125"></A>
+The index of the last option argument processed by the <CODE>getopts</CODE> builtin.
+<P>
+
+<A NAME="IDX126"></A>
+<DT><CODE>PATH</CODE>
+<DD><A NAME="IDX127"></A>
+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
+current directory.
+A null directory name may appear as two adjacent colons, or as an initial
+or trailing colon.
+<P>
+
+<A NAME="IDX128"></A>
+<DT><CODE>PS1</CODE>
+<DD><A NAME="IDX129"></A>
+The primary prompt string.  The default value is <SAMP>`\s-\v\$ '</SAMP>.
+See section <A HREF="bashref.html#SEC88">6.9 Controlling the Prompt</A>, for the complete list of escape
+sequences that are expanded before <CODE>PS1</CODE> is displayed.
+<P>
+
+<A NAME="IDX130"></A>
+<DT><CODE>PS2</CODE>
+<DD><A NAME="IDX131"></A>
+The secondary prompt string.  The default value is <SAMP>`&#62; '</SAMP>.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Bash Variables"></A>
+<HR SIZE="6">
+<A NAME="SEC67"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC66"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 5.2 Bash Variables </H2>
+<!--docid::SEC67::-->
+<P>
+
+These variables are set or used by Bash, but other shells
+do not normally treat them specially.
+</P><P>
+
+A few variables used by Bash are described in different chapters:
+variables for controlling the job control facilities
+(see section <A HREF="bashref.html#SEC94">7.3 Job Control Variables</A>).
+</P><P>
+
+<DL COMPACT>
+
+<A NAME="IDX132"></A>
+<DT><CODE>BASH</CODE>
+<DD><A NAME="IDX133"></A>
+The full pathname used to execute the current instance of Bash.
+<P>
+
+<A NAME="IDX134"></A>
+<DT><CODE>BASHPID</CODE>
+<DD><A NAME="IDX135"></A>
+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.
+<P>
+
+<A NAME="IDX136"></A>
+<DT><CODE>BASH_ALIASES</CODE>
+<DD><A NAME="IDX137"></A>
+An associative array variable whose members correspond to the internal
+list of aliases as maintained by the <CODE>alias</CODE> builtin
+(see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+Elements added to this array appear in the alias list; unsetting array
+elements cause aliases to be removed from the alias list.
+<P>
+
+<A NAME="IDX138"></A>
+<DT><CODE>BASH_ARGC</CODE>
+<DD><A NAME="IDX139"></A>
+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
+with <CODE>.</CODE> or <CODE>source</CODE>) is at the top of the stack.  When a
+subroutine is executed, the number of parameters passed is pushed onto
+<CODE>BASH_ARGC</CODE>.
+The shell sets <CODE>BASH_ARGC</CODE> only when in extended debugging mode
+(see <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>
+for a description of the <CODE>extdebug</CODE> option to the <CODE>shopt</CODE>
+builtin).
+<P>
+
+<A NAME="IDX140"></A>
+<DT><CODE>BASH_ARGV</CODE>
+<DD><A NAME="IDX141"></A>
+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
+at the bottom.  When a subroutine is executed, the parameters supplied
+are pushed onto <CODE>BASH_ARGV</CODE>.
+The shell sets <CODE>BASH_ARGV</CODE> only when in extended debugging mode
+(see <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>
+for a description of the <CODE>extdebug</CODE> option to the <CODE>shopt</CODE>
+builtin).
+<P>
+
+<A NAME="IDX142"></A>
+<DT><CODE>BASH_CMDS</CODE>
+<DD><A NAME="IDX143"></A>
+An associative array variable whose members correspond to the internal
+hash table of commands as maintained by the <CODE>hash</CODE> builtin
+(see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+Elements added to this array appear in the hash table; unsetting array
+elements cause commands to be removed from the hash table.
+<P>
+
+<A NAME="IDX144"></A>
+<DT><CODE>BASH_COMMAND</CODE>
+<DD><A NAME="IDX145"></A>
+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.
+<P>
+
+<A NAME="IDX146"></A>
+<DT><CODE>BASH_ENV</CODE>
+<DD><A NAME="IDX147"></A>
+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 section <A HREF="bashref.html#SEC70">6.2 Bash Startup Files</A>.
+<P>
+
+<A NAME="IDX148"></A>
+<DT><CODE>BASH_EXECUTION_STRING</CODE>
+<DD><A NAME="IDX149"></A>
+The command argument to the <SAMP>`-c'</SAMP> invocation option.
+<P>
+
+<A NAME="IDX150"></A>
+<DT><CODE>BASH_LINENO</CODE>
+<DD><A NAME="IDX151"></A>
+An array variable whose members are the line numbers in source files
+corresponding to each member of <VAR>FUNCNAME</VAR>.
+<CODE>${BASH_LINENO[$i]}</CODE> is the line number in the source file where
+<CODE>${FUNCNAME[$i]}</CODE> was called (or <CODE>${BASH_LINENO[$i-1]}</CODE> if
+referenced within another shell function).
+The corresponding source file name is <CODE>${BASH_SOURCE[$i]}</CODE>.
+Use <CODE>LINENO</CODE> to obtain the current line number.
+<P>
+
+<A NAME="IDX152"></A>
+<DT><CODE>BASH_REMATCH</CODE>
+<DD><A NAME="IDX153"></A>
+An array variable whose members are assigned by the <SAMP>`=~'</SAMP> binary
+operator to the <CODE>[[</CODE> conditional command
+(see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>).
+The element with index 0 is the portion of the string
+matching the entire regular expression.
+The element with index <VAR>n</VAR> is the portion of the
+string matching the <VAR>n</VAR>th parenthesized subexpression.
+This variable is read-only.
+<P>
+
+<A NAME="IDX154"></A>
+<DT><CODE>BASH_SOURCE</CODE>
+<DD><A NAME="IDX155"></A>
+An array variable whose members are the source filenames corresponding
+to the elements in the <CODE>FUNCNAME</CODE> array variable.
+<P>
+
+<A NAME="IDX156"></A>
+<DT><CODE>BASH_SUBSHELL</CODE>
+<DD><A NAME="IDX157"></A>
+Incremented by one each time a subshell or subshell environment is spawned.
+The initial value is 0.
+<P>
+
+<A NAME="IDX158"></A>
+<DT><CODE>BASH_VERSINFO</CODE>
+<DD><A NAME="IDX159"></A>
+A readonly array variable (see section <A HREF="bashref.html#SEC85">6.7 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>
+
+<DT><CODE>BASH_VERSINFO[0]</CODE>
+<DD>The major version number (the <VAR>release</VAR>).
+<P>
+
+<DT><CODE>BASH_VERSINFO[1]</CODE>
+<DD>The minor version number (the <VAR>version</VAR>).
+<P>
+
+<DT><CODE>BASH_VERSINFO[2]</CODE>
+<DD>The patch level.
+<P>
+
+<DT><CODE>BASH_VERSINFO[3]</CODE>
+<DD>The build version.
+<P>
+
+<DT><CODE>BASH_VERSINFO[4]</CODE>
+<DD>The release status (e.g., <VAR>beta1</VAR>).
+<P>
+
+<DT><CODE>BASH_VERSINFO[5]</CODE>
+<DD>The value of <CODE>MACHTYPE</CODE>.
+<P>
+
+</DL>
+<P>
+
+<A NAME="IDX160"></A>
+<DT><CODE>BASH_VERSION</CODE>
+<DD><A NAME="IDX161"></A>
+The version number of the current instance of Bash.
+<P>
+
+<A NAME="IDX162"></A>
+<DT><CODE>COLUMNS</CODE>
+<DD><A NAME="IDX163"></A>
+Used by the <CODE>select</CODE> builtin command to determine the terminal width
+when printing selection lists.  Automatically set upon receipt of a
+<CODE>SIGWINCH</CODE>.
+<P>
+
+<A NAME="IDX164"></A>
+<DT><CODE>COMP_CWORD</CODE>
+<DD><A NAME="IDX165"></A>
+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 section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>).
+<P>
+
+<A NAME="IDX166"></A>
+<DT><CODE>COMP_LINE</CODE>
+<DD><A NAME="IDX167"></A>
+The current command line.
+This variable is available only in shell functions and external
+commands invoked by the
+programmable completion facilities (see section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>).
+<P>
+
+<A NAME="IDX168"></A>
+<DT><CODE>COMP_POINT</CODE>
+<DD><A NAME="IDX169"></A>
+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,
+the value of this variable is equal to <CODE>${#COMP_LINE}</CODE>.
+This variable is available only in shell functions and external
+commands invoked by the
+programmable completion facilities (see section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>).
+<P>
+
+<A NAME="IDX170"></A>
+<DT><CODE>COMP_TYPE</CODE>
+<DD><A NAME="IDX171"></A>
+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,
+<SAMP>`?'</SAMP>, for listing completions after successive tabs,
+<SAMP>`!'</SAMP>, for listing alternatives on partial word completion,
+<SAMP>`@'</SAMP>, to list completions if the word is not unmodified,
+or
+<SAMP>`%'</SAMP>, for menu completion.
+This variable is available only in shell functions and external
+commands invoked by the
+programmable completion facilities (see section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>).
+<P>
+
+<A NAME="IDX172"></A>
+<DT><CODE>COMP_KEY</CODE>
+<DD><A NAME="IDX173"></A>
+The key (or final key of a key sequence) used to invoke the current
+completion function.
+<P>
+
+<A NAME="IDX174"></A>
+<DT><CODE>COMP_WORDBREAKS</CODE>
+<DD><A NAME="IDX175"></A>
+The set of characters that the Readline library treats as word
+separators when performing word completion.
+If <CODE>COMP_WORDBREAKS</CODE> is unset, it loses its special properties,
+even if it is subsequently reset.
+<P>
+
+<A NAME="IDX176"></A>
+<DT><CODE>COMP_WORDS</CODE>
+<DD><A NAME="IDX177"></A>
+An array variable consisting of the individual
+words in the current command line.
+The words are split on shell metacharacters as the shell parser would
+separate them.
+This variable is available only in shell functions invoked by the
+programmable completion facilities (see section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>).
+<P>
+
+<A NAME="IDX178"></A>
+<DT><CODE>COMPREPLY</CODE>
+<DD><A NAME="IDX179"></A>
+An array variable from which Bash reads the possible completions
+generated by a shell function invoked by the programmable completion
+facility (see section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>).
+<P>
+
+<A NAME="IDX180"></A>
+<DT><CODE>DIRSTACK</CODE>
+<DD><A NAME="IDX181"></A>
+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.
+Assigning to members of this array variable may be used to modify
+directories already in the stack, but the <CODE>pushd</CODE> and <CODE>popd</CODE>
+builtins must be used to add and remove directories.
+Assignment to this variable will not change the current directory.
+If <CODE>DIRSTACK</CODE> is unset, it loses its special properties, even if
+it is subsequently reset.
+<P>
+
+<A NAME="IDX182"></A>
+<DT><CODE>EMACS</CODE>
+<DD><A NAME="IDX183"></A>
+If Bash finds this variable in the environment when the shell
+starts with value <SAMP>`t'</SAMP>, it assumes that the shell is running in an
+emacs shell buffer and disables line editing.
+<P>
+
+<A NAME="IDX184"></A>
+<DT><CODE>EUID</CODE>
+<DD><A NAME="IDX185"></A>
+The numeric effective user id of the current user.  This variable
+is readonly.
+<P>
+
+<A NAME="IDX186"></A>
+<DT><CODE>FCEDIT</CODE>
+<DD><A NAME="IDX187"></A>
+The editor used as a default by the <SAMP>`-e'</SAMP> option to the <CODE>fc</CODE>
+builtin command.
+<P>
+
+<A NAME="IDX188"></A>
+<DT><CODE>FIGNORE</CODE>
+<DD><A NAME="IDX189"></A>
+A colon-separated list of suffixes to ignore when performing
+filename completion.
+A file name whose suffix matches one of the entries in 
+<CODE>FIGNORE</CODE>
+is excluded from the list of matched file names.  A sample
+value is <SAMP>`.o:~'</SAMP>
+<P>
+
+<A NAME="IDX190"></A>
+<DT><CODE>FUNCNAME</CODE>
+<DD><A NAME="IDX191"></A>
+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
+shell function.
+The bottom-most element is <CODE>"main"</CODE>.
+This variable exists only when a shell function is executing.
+Assignments to <CODE>FUNCNAME</CODE> have no effect and return an error status.
+If <CODE>FUNCNAME</CODE> is unset, it loses its special properties, even if
+it is subsequently reset.
+<P>
+
+<A NAME="IDX192"></A>
+<DT><CODE>GLOBIGNORE</CODE>
+<DD><A NAME="IDX193"></A>
+A colon-separated list of patterns defining the set of filenames to
+be ignored by filename expansion.
+If a filename matched by a filename expansion pattern also matches one
+of the patterns in <CODE>GLOBIGNORE</CODE>, it is removed from the list
+of matches.
+<P>
+
+<A NAME="IDX194"></A>
+<DT><CODE>GROUPS</CODE>
+<DD><A NAME="IDX195"></A>
+An array variable containing the list of groups of which the current    
+user is a member.
+Assignments to <CODE>GROUPS</CODE> have no effect and return an error status.
+If <CODE>GROUPS</CODE> is unset, it loses its special properties, even if it is
+subsequently reset.
+<P>
+
+<A NAME="IDX196"></A>
+<DT><CODE>histchars</CODE>
+<DD><A NAME="IDX197"></A>
+Up to three characters which control history expansion, quick
+substitution, and tokenization (see section <A HREF="bashref.html#SEC122">9.3 History Expansion</A>).
+The first character is the
+<VAR>history expansion</VAR> character, that is, the character which signifies the
+start of a history expansion, normally <SAMP>`!'</SAMP>.  The second character is the
+character which signifies `quick substitution' when seen as the first
+character on a line, normally <SAMP>`^'</SAMP>.  The optional third character is the
+character which indicates that the remainder of the line is a comment when
+found as the first character of a word, usually <SAMP>`#'</SAMP>.  The history
+comment character causes history substitution to be skipped for the
+remaining words on the line.  It does not necessarily cause the shell
+parser to treat the rest of the line as a comment.
+<P>
+
+<A NAME="IDX198"></A>
+<DT><CODE>HISTCMD</CODE>
+<DD><A NAME="IDX199"></A>
+The history number, or index in the history list, of the current
+command.  If <CODE>HISTCMD</CODE> is unset, it loses its special properties,
+even if it is subsequently reset.
+<P>
+
+<A NAME="IDX200"></A>
+<DT><CODE>HISTCONTROL</CODE>
+<DD><A NAME="IDX201"></A>
+A colon-separated list of values controlling how commands are saved on
+the history list.
+If the list of values includes <SAMP>`ignorespace'</SAMP>, lines which begin
+with a space character are not saved in the history list.
+A value of <SAMP>`ignoredups'</SAMP> causes lines which match the previous
+history entry to not be saved.
+A value of <SAMP>`ignoreboth'</SAMP> is shorthand for
+<SAMP>`ignorespace'</SAMP> and <SAMP>`ignoredups'</SAMP>.
+A value of <SAMP>`erasedups'</SAMP> causes all previous lines matching the
+current line to be removed from the history list before that line
+is saved.
+Any value not in the above list is ignored.
+If <CODE>HISTCONTROL</CODE> is unset, or does not include a valid value, 
+all lines read by the shell parser are saved on the history list, 
+subject to the value of <CODE>HISTIGNORE</CODE>.
+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
+<CODE>HISTCONTROL</CODE>.
+<P>
+
+<A NAME="IDX202"></A>
+<DT><CODE>HISTFILE</CODE>
+<DD><A NAME="IDX203"></A>
+The name of the file to which the command history is saved.  The
+default value is <TT>`~/.bash_history'</TT>.
+<P>
+
+<A NAME="IDX204"></A>
+<DT><CODE>HISTFILESIZE</CODE>
+<DD><A NAME="IDX205"></A>
+The maximum number of lines contained in the history file.  When this
+variable is assigned a value, the history file is truncated, if
+necessary, by removing the oldest entries,
+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.
+<P>
+
+<A NAME="IDX206"></A>
+<DT><CODE>HISTIGNORE</CODE>
+<DD><A NAME="IDX207"></A>
+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
+line (no implicit <SAMP>`*'</SAMP> is appended).  Each pattern is tested
+against the line after the checks specified by <CODE>HISTCONTROL</CODE>
+are applied.  In addition to the normal shell pattern matching
+characters, <SAMP>`&#38;'</SAMP> matches the previous history line.  <SAMP>`&#38;'</SAMP>
+may be escaped using a backslash; the backslash is removed
+before attempting a match. 
+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
+<CODE>HISTIGNORE</CODE>.
+<P>
+
+<CODE>HISTIGNORE</CODE> subsumes the function of <CODE>HISTCONTROL</CODE>.  A
+pattern of <SAMP>`&#38;'</SAMP> is identical to <CODE>ignoredups</CODE>, and a
+pattern of <SAMP>`[ ]*'</SAMP> is identical to <CODE>ignorespace</CODE>. 
+Combining these two patterns, separating them with a colon,
+provides the functionality of <CODE>ignoreboth</CODE>. 
+</P><P>
+
+<A NAME="IDX208"></A>
+<DT><CODE>HISTSIZE</CODE>
+<DD><A NAME="IDX209"></A>
+The maximum number of commands to remember on the history list.
+The default value is 500.
+<P>
+
+<A NAME="IDX210"></A>
+<DT><CODE>HISTTIMEFORMAT</CODE>
+<DD><A NAME="IDX211"></A>
+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
+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.
+This uses the history comment character to distinguish timestamps from
+other history lines.
+<P>
+
+<A NAME="IDX212"></A>
+<DT><CODE>HOSTFILE</CODE>
+<DD><A NAME="IDX213"></A>
+Contains the name of a file in the same format as <TT>`/etc/hosts'</TT> that
+should be read when the shell needs to complete a hostname.
+The list of possible hostname completions may be changed while the shell
+is running;
+the next time hostname completion is attempted after the
+value is changed, Bash adds the contents of the new file to the
+existing list.
+If <CODE>HOSTFILE</CODE> is set, but has no value, Bash attempts to read 
+<TT>`/etc/hosts'</TT> to obtain the list of possible hostname completions.
+When <CODE>HOSTFILE</CODE> is unset, the hostname list is cleared.
+<P>
+
+<A NAME="IDX214"></A>
+<DT><CODE>HOSTNAME</CODE>
+<DD><A NAME="IDX215"></A>
+The name of the current host.
+<P>
+
+<A NAME="IDX216"></A>
+<DT><CODE>HOSTTYPE</CODE>
+<DD><A NAME="IDX217"></A>
+A string describing the machine Bash is running on.
+<P>
+
+<A NAME="IDX218"></A>
+<DT><CODE>IGNOREEOF</CODE>
+<DD><A NAME="IDX219"></A>
+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
+first character on an input line
+before the shell will exit.  If the variable exists but does not
+have a numeric value (or has no value) then the default is 10.
+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>
+
+<A NAME="IDX220"></A>
+<DT><CODE>INPUTRC</CODE>
+<DD><A NAME="IDX221"></A>
+The name of the Readline initialization file, overriding the default
+of <TT>`~/.inputrc'</TT>.
+<P>
+
+<A NAME="IDX222"></A>
+<DT><CODE>LANG</CODE>
+<DD><A NAME="IDX223"></A>
+Used to determine the locale category for any category not specifically
+selected with a variable starting with <CODE>LC_</CODE>.
+<P>
+
+<A NAME="IDX224"></A>
+<DT><CODE>LC_ALL</CODE>
+<DD><A NAME="IDX225"></A>
+This variable overrides the value of <CODE>LANG</CODE> and any other
+<CODE>LC_</CODE> variable specifying a locale category.
+<P>
+
+<A NAME="IDX226"></A>
+<DT><CODE>LC_COLLATE</CODE>
+<DD><A NAME="IDX227"></A>
+This variable determines the collation order used when sorting the
+results of filename expansion, and
+determines the behavior of range expressions, equivalence classes,
+and collating sequences within filename expansion and pattern matching
+(see section <A HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A>).
+<P>
+
+<A NAME="IDX228"></A>
+<DT><CODE>LC_CTYPE</CODE>
+<DD><A NAME="IDX229"></A>
+This variable determines the interpretation of characters and the
+behavior of character classes within filename expansion and pattern
+matching (see section <A HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A>).
+<P>
+
+<A NAME="IDX230"></A>
+<DT><CODE>LC_MESSAGES</CODE>
+<DD><A NAME="IDX231"></A>
+This variable determines the locale used to translate double-quoted
+strings preceded by a <SAMP>`$'</SAMP> (see section <A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A>).
+<P>
+
+<A NAME="IDX232"></A>
+<DT><CODE>LC_NUMERIC</CODE>
+<DD><A NAME="IDX233"></A>
+This variable determines the locale category used for number formatting.
+<P>
+
+<A NAME="IDX234"></A>
+<DT><CODE>LINENO</CODE>
+<DD><A NAME="IDX235"></A>
+The line number in the script or shell function currently executing.
+<P>
+
+<A NAME="IDX236"></A>
+<DT><CODE>LINES</CODE>
+<DD><A NAME="IDX237"></A>
+Used by the <CODE>select</CODE> builtin command to determine the column length
+for printing selection lists.  Automatically set upon receipt of a
+<CODE>SIGWINCH</CODE>.
+<P>
+
+<A NAME="IDX238"></A>
+<DT><CODE>MACHTYPE</CODE>
+<DD><A NAME="IDX239"></A>
+A string that fully describes the system type on which Bash
+is executing, in the standard GNU <VAR>cpu-company-system</VAR> format.
+<P>
+
+<A NAME="IDX240"></A>
+<DT><CODE>MAILCHECK</CODE>
+<DD><A NAME="IDX241"></A>
+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
+for mail, the shell does so before displaying the primary prompt.
+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>
+
+<A NAME="IDX242"></A>
+<DT><CODE>OLDPWD</CODE>
+<DD><A NAME="IDX243"></A>
+The previous working directory as set by the <CODE>cd</CODE> builtin.
+<P>
+
+<A NAME="IDX244"></A>
+<DT><CODE>OPTERR</CODE>
+<DD><A NAME="IDX245"></A>
+If set to the value 1, Bash displays error messages
+generated by the <CODE>getopts</CODE> builtin command.
+<P>
+
+<A NAME="IDX246"></A>
+<DT><CODE>OSTYPE</CODE>
+<DD><A NAME="IDX247"></A>
+A string describing the operating system Bash is running on.
+<P>
+
+<A NAME="IDX248"></A>
+<DT><CODE>PIPESTATUS</CODE>
+<DD><A NAME="IDX249"></A>
+An array variable (see section <A HREF="bashref.html#SEC85">6.7 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>
+
+<A NAME="IDX250"></A>
+<DT><CODE>POSIXLY_CORRECT</CODE>
+<DD><A NAME="IDX251"></A>
+If this variable is in the environment when <CODE>bash</CODE> starts, the shell
+enters POSIX mode (see section <A HREF="bashref.html#SEC90">6.11 Bash POSIX Mode</A>) before reading the
+startup files, as if the <SAMP>`--posix'</SAMP> invocation option had been supplied.
+If it is set while the shell is running, <CODE>bash</CODE> enables POSIX mode,
+as if the command
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>set -o posix</CODE>
+</pre></td></tr></table>had been executed.  
+<P>
+
+<A NAME="IDX252"></A>
+<DT><CODE>PPID</CODE>
+<DD><A NAME="IDX253"></A>
+The process ID of the shell's parent process.  This variable
+is readonly.
+<P>
+
+<A NAME="IDX254"></A>
+<DT><CODE>PROMPT_COMMAND</CODE>
+<DD><A NAME="IDX255"></A>
+If set, the value is interpreted as a command to execute
+before the printing of each primary prompt (<CODE>$PS1</CODE>).
+<P>
+
+<A NAME="IDX256"></A>
+<DT><CODE>PROMPT_DIRTRIM</CODE>
+<DD><A NAME="IDX257"></A>
+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 section <A HREF="bashref.html#SEC88">6.9 Controlling the Prompt</A>).
+Characters removed are replaced with an ellipsis.
+<P>
+
+<A NAME="IDX258"></A>
+<DT><CODE>PS3</CODE>
+<DD><A NAME="IDX259"></A>
+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 <SAMP>`#? '</SAMP>
+<P>
+
+<A NAME="IDX260"></A>
+<DT><CODE>PS4</CODE>
+<DD><A NAME="IDX261"></A>
+The value is the prompt printed before the command line is echoed
+when the <SAMP>`-x'</SAMP> option is set (see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+The first character of <CODE>PS4</CODE> is replicated multiple times, as
+necessary, to indicate multiple levels of indirection.
+The default is <SAMP>`+ '</SAMP>.
+<P>
+
+<A NAME="IDX262"></A>
+<DT><CODE>PWD</CODE>
+<DD><A NAME="IDX263"></A>
+The current working directory as set by the <CODE>cd</CODE> builtin.
+<P>
+
+<A NAME="IDX264"></A>
+<DT><CODE>RANDOM</CODE>
+<DD><A NAME="IDX265"></A>
+Each time this parameter is referenced, a random integer
+between 0 and 32767 is generated.  Assigning a value to this
+variable seeds the random number generator.
+<P>
+
+<A NAME="IDX266"></A>
+<DT><CODE>REPLY</CODE>
+<DD><A NAME="IDX267"></A>
+The default variable for the <CODE>read</CODE> builtin.
+<P>
+
+<A NAME="IDX268"></A>
+<DT><CODE>SECONDS</CODE>
+<DD><A NAME="IDX269"></A>
+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.
+<P>
+
+<A NAME="IDX270"></A>
+<DT><CODE>SHELL</CODE>
+<DD><A NAME="IDX271"></A>
+The full pathname to the shell is kept in this environment variable.
+If it is not set when the shell starts,
+Bash assigns to it the full pathname of the current user's login shell.
+<P>
+
+<A NAME="IDX272"></A>
+<DT><CODE>SHELLOPTS</CODE>
+<DD><A NAME="IDX273"></A>
+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 section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+The options appearing in <CODE>SHELLOPTS</CODE> are those reported
+as <SAMP>`on'</SAMP> by <SAMP>`set -o'</SAMP>.
+If this variable is in the environment when Bash
+starts up, each shell option in the list will be enabled before
+reading any startup files.  This variable is readonly.
+<P>
+
+<A NAME="IDX274"></A>
+<DT><CODE>SHLVL</CODE>
+<DD><A NAME="IDX275"></A>
+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>
+
+<A NAME="IDX276"></A>
+<DT><CODE>TIMEFORMAT</CODE>
+<DD><A NAME="IDX277"></A>
+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.
+The <SAMP>`%'</SAMP> character introduces an
+escape sequence that is expanded to a time value or other
+information.
+The escape sequences and their meanings are as
+follows; the braces denote optional portions. 
+<P>
+
+<DL COMPACT>
+
+<DT><CODE>%%</CODE>
+<DD>A literal <SAMP>`%'</SAMP>.
+<P>
+
+<DT><CODE>%[<VAR>p</VAR>][l]R</CODE>
+<DD>The elapsed time in seconds. 
+<P>
+
+<DT><CODE>%[<VAR>p</VAR>][l]U</CODE>
+<DD>The number of CPU seconds spent in user mode. 
+<P>
+
+<DT><CODE>%[<VAR>p</VAR>][l]S</CODE>
+<DD>The number of CPU seconds spent in system mode. 
+<P>
+
+<DT><CODE>%P</CODE>
+<DD>The CPU percentage, computed as (%U + %S) / %R. 
+</DL>
+<P>
+
+The optional <VAR>p</VAR> is a digit specifying the precision, the number of
+fractional digits after a decimal point.
+A value of 0 causes no decimal point or fraction to be output.
+At most three places after the decimal point may be specified; values
+of <VAR>p</VAR> greater than 3 are changed to 3.
+If <VAR>p</VAR> is not specified, the value 3 is used. 
+</P><P>
+
+The optional <CODE>l</CODE> specifies a longer format, including minutes, of
+the form <VAR>MM</VAR>m<VAR>SS</VAR>.<VAR>FF</VAR>s.
+The value of <VAR>p</VAR> determines whether or not the fraction is included. 
+</P><P>
+
+If this variable is not set, Bash acts as if it had the value
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>$'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'</CODE>
+</pre></td></tr></table>If the value is null, no timing information is displayed.
+A trailing newline is added when the format string is displayed.
+</P><P>
+
+<A NAME="IDX278"></A>
+<DT><CODE>TMOUT</CODE>
+<DD><A NAME="IDX279"></A>
+If set to a value greater than zero, <CODE>TMOUT</CODE> is treated as the
+default timeout for the <CODE>read</CODE> builtin (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+The <CODE>select</CODE> command (see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>) terminates
+if input does not arrive after <CODE>TMOUT</CODE> seconds when input is coming
+from a terminal.
+<P>
+
+In an interactive shell, the value is interpreted as
+the number of seconds to wait for input after issuing the primary
+prompt when the shell is interactive.
+Bash terminates after that number of seconds if input does
+not arrive.
+</P><P>
+
+<A NAME="IDX280"></A>
+<DT><CODE>TMPDIR</CODE>
+<DD><A NAME="IDX281"></A>
+If set, Bash uses its value as the name of a directory in which
+Bash creates temporary files for the shell's use.
+<P>
+
+<A NAME="IDX282"></A>
+<DT><CODE>UID</CODE>
+<DD><A NAME="IDX283"></A>
+The numeric real user id of the current user.  This variable is readonly.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Bash Features"></A>
+<HR SIZE="6">
+<A NAME="SEC68"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC67"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC69"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> 6. Bash Features </H1>
+<!--docid::SEC68::-->
+<P>
+
+This section describes features unique to Bash.
+</P><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC69">6.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"><A HREF="bashref.html#SEC70">6.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"><A HREF="bashref.html#SEC78">6.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"><A HREF="bashref.html#SEC82">6.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"><A HREF="bashref.html#SEC83">6.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"><A HREF="bashref.html#SEC84">6.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"><A HREF="bashref.html#SEC85">6.7 Arrays</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Array Variables.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC86">6.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"><A HREF="bashref.html#SEC88">6.9 Controlling the Prompt</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Controlling the PS1 string.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC89">6.10 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"><A HREF="bashref.html#SEC90">6.11 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>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="Invoking Bash"></A>
+<HR SIZE="6">
+<A NAME="SEC69"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC70"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.1 Invoking Bash </H2>
+<!--docid::SEC69::-->
+<P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o <VAR>option</VAR>] [-O <VAR>shopt_option</VAR>] [<VAR>argument</VAR> <small>...</small>]
+bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o <VAR>option</VAR>] [-O <VAR>shopt_option</VAR>] -c <VAR>string</VAR> [<VAR>argument</VAR> <small>...</small>]
+bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o <VAR>option</VAR>] [-O <VAR>shopt_option</VAR>] [<VAR>argument</VAR> <small>...</small>]
+</pre></td></tr></table></P><P>
+
+In addition to the single-character shell command-line options
+(see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>), there are several multi-character
+options that you can use.  These options must appear on the command
+line before the single-character options to be recognized. 
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>--debugger</CODE>
+<DD>Arrange for the debugger profile to be executed before the shell
+starts.  Turns on extended debugging mode (see <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>
+for a description of the <CODE>extdebug</CODE> option to the <CODE>shopt</CODE>
+builtin) and shell function tracing
+(see <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A> for a description of the <CODE>-o functrace</CODE>
+option).
+<P>
+
+<DT><CODE>--dump-po-strings</CODE>
+<DD>A list of all double-quoted strings preceded by <SAMP>`$'</SAMP>
+is printed on the standard output
+in the GNU <CODE>gettext</CODE> PO (portable object) file format.
+Equivalent to <SAMP>`-D'</SAMP> except for the output format.
+<P>
+
+<DT><CODE>--dump-strings</CODE>
+<DD>Equivalent to <SAMP>`-D'</SAMP>.
+<P>
+
+<DT><CODE>--help</CODE>
+<DD>Display a usage message on standard output and exit successfully.
+<P>
+
+<DT><CODE>--init-file <VAR>filename</VAR></CODE>
+<DD><DT><CODE>--rcfile <VAR>filename</VAR></CODE>
+<DD>Execute commands from <VAR>filename</VAR> (instead of <TT>`~/.bashrc'</TT>)
+in an interactive shell.
+<P>
+
+<DT><CODE>--login</CODE>
+<DD>Equivalent to <SAMP>`-l'</SAMP>.
+<P>
+
+<DT><CODE>--noediting</CODE>
+<DD>Do not use the GNU Readline library (see section <A HREF="bashref.html#SEC95">8. Command Line Editing</A>)
+to read  command lines when the shell is interactive.
+<P>
+
+<DT><CODE>--noprofile</CODE>
+<DD>Don't load the system-wide startup file <TT>`/etc/profile'</TT>
+or any of the personal initialization files
+<TT>`~/.bash_profile'</TT>, <TT>`~/.bash_login'</TT>, or <TT>`~/.profile'</TT>
+when Bash is invoked as a login shell.
+<P>
+
+<DT><CODE>--norc</CODE>
+<DD>Don't read the <TT>`~/.bashrc'</TT> initialization file in an
+interactive shell.  This is on by default if the shell is
+invoked as <CODE>sh</CODE>.
+<P>
+
+<DT><CODE>--posix</CODE>
+<DD>Change the behavior of Bash where the default operation differs
+from the POSIX standard to match the standard.  This
+is intended to make Bash behave as a strict superset of that
+standard.  See section <A HREF="bashref.html#SEC90">6.11 Bash POSIX Mode</A>, for a description of the Bash
+POSIX mode.
+<P>
+
+<DT><CODE>--restricted</CODE>
+<DD>Make the shell a restricted shell (see section <A HREF="bashref.html#SEC89">6.10 The Restricted Shell</A>).
+<P>
+
+<DT><CODE>--verbose</CODE>
+<DD>Equivalent to <SAMP>`-v'</SAMP>.  Print shell input lines as they're read.
+<P>
+
+<DT><CODE>--version</CODE>
+<DD>Show version information for this instance of
+Bash on the standard output and exit successfully.
+<P>
+
+</DL>
+<P>
+
+There are several single-character options that may be supplied at
+invocation which are not available with the <CODE>set</CODE> builtin.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-c <VAR>string</VAR></CODE>
+<DD>Read and execute commands from <VAR>string</VAR> after processing the
+options, then exit.  Any remaining arguments are assigned to the
+positional parameters, starting with <CODE>$0</CODE>.
+<P>
+
+<DT><CODE>-i</CODE>
+<DD>Force the shell to run interactively.  Interactive shells are
+described in <A HREF="bashref.html#SEC78">6.3 Interactive Shells</A>.
+<P>
+
+<DT><CODE>-l</CODE>
+<DD>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 <SAMP>`exec -l bash'</SAMP>.
+When the shell is not interactive, the login shell startup files will
+be executed.
+<SAMP>`exec bash -l'</SAMP> or <SAMP>`exec bash --login'</SAMP>
+will replace the current shell with a Bash login shell.
+See section <A HREF="bashref.html#SEC70">6.2 Bash Startup Files</A>, for a description of the special behavior
+of a login shell.
+<P>
+
+<DT><CODE>-r</CODE>
+<DD>Make the shell a restricted shell (see section <A HREF="bashref.html#SEC89">6.10 The Restricted Shell</A>).
+<P>
+
+<DT><CODE>-s</CODE>
+<DD>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
+when invoking an interactive shell.
+<P>
+
+<DT><CODE>-D</CODE>
+<DD>A list of all double-quoted strings preceded by <SAMP>`$'</SAMP>
+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 section <A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A>).
+This implies the <SAMP>`-n'</SAMP> option; no commands will be executed.
+<P>
+
+<DT><CODE>[-+]O [<VAR>shopt_option</VAR>]</CODE>
+<DD><VAR>shopt_option</VAR> is one of the shell options accepted by the
+<CODE>shopt</CODE> builtin (see section <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>).
+If <VAR>shopt_option</VAR> is present, <SAMP>`-O'</SAMP> sets the value of that option;
+<SAMP>`+O'</SAMP> unsets it.  
+If <VAR>shopt_option</VAR> is not supplied, the names and values of the shell
+options accepted by <CODE>shopt</CODE> are printed on the standard output.
+If the invocation option is <SAMP>`+O'</SAMP>, the output is displayed in a format
+that may be reused as input.
+<P>
+
+<DT><CODE>--</CODE>
+<DD>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.
+<P>
+
+</DL>
+<P>
+
+<A NAME="IDX284"></A>
+A <EM>login</EM> shell is one whose first character of argument zero is
+<SAMP>`-'</SAMP>, or one invoked with the <SAMP>`--login'</SAMP> option.
+</P><P>
+
+<A NAME="IDX285"></A>
+An <EM>interactive</EM> shell is one started without non-option arguments,
+unless <SAMP>`-s'</SAMP> is specified,
+without specifying the <SAMP>`-c'</SAMP> option, and whose input and output are both
+connected to terminals (as determined by <CODE>isatty(3)</CODE>), or one
+started with the <SAMP>`-i'</SAMP> option.  See section <A HREF="bashref.html#SEC78">6.3 Interactive Shells</A>, for more
+information.
+</P><P>
+
+If arguments remain after option processing, and neither the
+<SAMP>`-c'</SAMP> nor the <SAMP>`-s'</SAMP>
+option has been supplied, the first argument is assumed to
+be the name of a file containing shell commands (see section <A HREF="bashref.html#SEC57">3.8 Shell Scripts</A>).
+When Bash is invoked in this fashion, <CODE>$0</CODE>
+is set to the name of the file, and the positional parameters
+are set to the remaining arguments.
+Bash reads and executes commands from this file, then exits.   
+Bash'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><P>
+
+<A NAME="Bash Startup Files"></A>
+<HR SIZE="6">
+<A NAME="SEC70"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC69"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC78"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC78"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.2 Bash Startup Files </H2>
+<!--docid::SEC70::-->
+<P>
+
+This section describes how Bash executes its startup files.
+If any of the files exist but cannot be read, Bash reports an error.
+Tildes are expanded in file names as described above under
+Tilde Expansion (see section <A HREF="bashref.html#SEC30">3.5.2 Tilde Expansion</A>).
+</P><P>
+
+Interactive shells are described in <A HREF="bashref.html#SEC78">6.3 Interactive Shells</A>.
+</P><P>
+
+<A NAME="SEC71"></A>
+<H4> Invoked as an interactive login shell, or with <SAMP>`--login'</SAMP> </H4>
+<!--docid::SEC71::-->
+<P>
+
+When Bash is invoked as an interactive login shell, or as a
+non-interactive shell with the <SAMP>`--login'</SAMP> option, it first reads and
+executes commands from the file <TT>`/etc/profile'</TT>, if that file exists.
+After reading that file, it looks for <TT>`~/.bash_profile'</TT>,
+<TT>`~/.bash_login'</TT>, and <TT>`~/.profile'</TT>, in that order, and reads
+and executes commands from the first one that exists and is readable.
+The <SAMP>`--noprofile'</SAMP> option may be used when the shell is started to
+inhibit this behavior.
+</P><P>
+
+When a login shell exits, Bash reads and executes commands from
+the file <TT>`~/.bash_logout'</TT>, if it exists.
+</P><P>
+
+<A NAME="SEC72"></A>
+<H4> Invoked as an interactive non-login shell </H4>
+<!--docid::SEC72::-->
+<P>
+
+When an interactive shell that is not a login shell is started, Bash
+reads and executes commands from <TT>`~/.bashrc'</TT>, if that file exists.
+This may be inhibited by using the <SAMP>`--norc'</SAMP> option.
+The <SAMP>`--rcfile <VAR>file</VAR>'</SAMP> option will force Bash to read and
+execute commands from <VAR>file</VAR> instead of <TT>`~/.bashrc'</TT>.
+</P><P>
+
+So, typically, your <TT>`~/.bash_profile'</TT> contains the line
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>if [ -f ~/.bashrc ]; then . ~/.bashrc; fi</CODE>
+</pre></td></tr></table>after (or before) any login-specific initializations.
+</P><P>
+
+<A NAME="SEC73"></A>
+<H4> Invoked non-interactively </H4>
+<!--docid::SEC73::-->
+<P>
+
+When Bash is started non-interactively, to run a shell script,
+for example, it looks for the variable <CODE>BASH_ENV</CODE> in the environment,
+expands its value if it appears there, and uses the expanded value as
+the name of a file to read and execute.  Bash behaves as if the
+following command were executed:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi</CODE>
+</pre></td></tr></table>but the value of the <CODE>PATH</CODE> variable is not used to search for the
+file name.
+</P><P>
+
+As noted above, if a non-interactive shell is invoked with the
+<SAMP>`--login'</SAMP> option, Bash attempts to read and execute commands from the
+login shell startup files. 
+</P><P>
+
+<A NAME="SEC74"></A>
+<H4> Invoked with name <CODE>sh</CODE> </H4>
+<!--docid::SEC74::-->
+<P>
+
+If Bash is invoked with the name <CODE>sh</CODE>, it tries to mimic the
+startup behavior of historical versions of <CODE>sh</CODE> as closely as
+possible, while conforming to the POSIX standard as well.
+</P><P>
+
+When invoked as an interactive login shell, or as a non-interactive
+shell with the <SAMP>`--login'</SAMP> option, it first attempts to read
+and execute commands from <TT>`/etc/profile'</TT> and <TT>`~/.profile'</TT>, in
+that order.
+The <SAMP>`--noprofile'</SAMP> option may be used to inhibit this behavior.
+When invoked as an interactive shell with the name <CODE>sh</CODE>, Bash
+looks for the variable <CODE>ENV</CODE>, expands its value if it is defined,
+and uses the expanded value as the name of a file to read and execute.
+Since a shell invoked as <CODE>sh</CODE> does not attempt to read and execute
+commands from any other startup files, the <SAMP>`--rcfile'</SAMP> option has
+no effect.
+A non-interactive shell invoked with the name <CODE>sh</CODE> does not attempt
+to read any other startup files.
+</P><P>
+
+When invoked as <CODE>sh</CODE>, Bash enters POSIX mode after
+the startup files are read.
+</P><P>
+
+<A NAME="SEC75"></A>
+<H4> Invoked in POSIX mode </H4>
+<!--docid::SEC75::-->
+<P>
+
+When Bash is started in POSIX mode, as with the
+<SAMP>`--posix'</SAMP> command line option, it follows the POSIX standard
+for startup files.
+In this mode, interactive shells expand the <CODE>ENV</CODE> variable
+and commands are read and executed from the file whose name is the
+expanded value.
+No other startup files are read.
+</P><P>
+
+<A NAME="SEC76"></A>
+<H4> Invoked by remote shell daemon </H4>
+<!--docid::SEC76::-->
+<P>
+
+Bash attempts to determine when it is being run with its standard input
+connected to a a network connection, as if 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 <TT>`~/.bashrc'</TT>, 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
+<SAMP>`--rcfile'</SAMP> option may be used to force another file to be read, but
+<CODE>rshd</CODE> does not generally invoke the shell with those options or
+allow them to be specified.
+</P><P>
+
+<A NAME="SEC77"></A>
+<H4> Invoked with unequal effective and real UID/GIDs </H4>
+<!--docid::SEC77::-->
+<P>
+
+If Bash is started with the effective user (group) id not equal to the
+real user (group) id, and the <CODE>-p</CODE> option is not supplied, no startup
+files are read, shell functions are not inherited from the environment,
+the <CODE>SHELLOPTS</CODE> variable, if it appears in the environment, is ignored,
+and the effective user id is set to the real user id.
+If the <CODE>-p</CODE> option is supplied at invocation, the startup behavior is
+the same, but the effective user id is not reset.
+</P><P>
+
+<A NAME="Interactive Shells"></A>
+<HR SIZE="6">
+<A NAME="SEC78"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC70"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC79"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC82"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC82"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.3 Interactive Shells </H2>
+<!--docid::SEC78::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC79">6.3.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"><A HREF="bashref.html#SEC80">6.3.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"><A HREF="bashref.html#SEC81">6.3.3 Interactive Shell Behavior</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What changes in a interactive shell?</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="What is an Interactive Shell?"></A>
+<HR SIZE="6">
+<A NAME="SEC79"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC78"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC80"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC82"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC78"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC82"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 6.3.1 What is an Interactive Shell? </H3>
+<!--docid::SEC79::-->
+<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
+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.
+</P><P>
+
+An interactive shell generally reads from and writes to a user's
+terminal.
+</P><P>
+
+The <SAMP>`-s'</SAMP> invocation option may be used to set the positional parameters
+when an interactive shell is started.
+</P><P>
+
+<A NAME="Is this Shell Interactive?"></A>
+<HR SIZE="6">
+<A NAME="SEC80"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC79"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC81"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC81"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC78"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC82"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 6.3.2 Is this Shell Interactive? </H3>
+<!--docid::SEC80::-->
+<P>
+
+To determine within a startup script whether or not Bash is
+running interactively,
+test the value of the <SAMP>`-'</SAMP> special parameter.
+It contains <CODE>i</CODE> when the shell is interactive.  For example:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>case "$-" in
+*i*)   echo This shell is interactive ;;
+*)     echo This shell is not interactive ;;
+esac
+</pre></td></tr></table></P><P>
+
+Alternatively, startup scripts may examine the variable
+<CODE>PS1</CODE>; it is unset in non-interactive shells, and set in
+interactive shells.  Thus:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>if [ -z "$PS1" ]; then
+        echo This shell is not interactive
+else
+        echo This shell is interactive
+fi
+</pre></td></tr></table></P><P>
+
+<A NAME="Interactive Shell Behavior"></A>
+<HR SIZE="6">
+<A NAME="SEC81"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC80"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC82"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC82"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC78"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC82"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 6.3.3 Interactive Shell Behavior </H3>
+<!--docid::SEC81::-->
+<P>
+
+When the shell is running interactively, it changes its behavior in
+several ways.
+</P><P>
+
+<OL>
+<LI>
+Startup files are read and executed as described in <A HREF="bashref.html#SEC70">6.2 Bash Startup Files</A>.
+<P>
+
+<LI>
+Job Control (see section <A HREF="bashref.html#SEC91">7. Job Control</A>) is enabled by default.  When job
+control is in effect, Bash ignores the keyboard-generated job control
+signals <CODE>SIGTTIN</CODE>, <CODE>SIGTTOU</CODE>, and <CODE>SIGTSTP</CODE>.
+<P>
+
+<LI>
+Bash expands and displays <CODE>PS1</CODE> before reading the first line
+of a command, and expands and displays <CODE>PS2</CODE> before reading the
+second and subsequent lines of a multi-line command.
+<P>
+
+<LI>
+Bash executes the value of the <CODE>PROMPT_COMMAND</CODE> variable as a command
+before printing the primary prompt, <CODE>$PS1</CODE>
+(see section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>).
+<P>
+
+<LI>
+Readline (see section <A HREF="bashref.html#SEC95">8. Command Line Editing</A>) is used to read commands from
+the user's terminal.
+<P>
+
+<LI>
+Bash inspects the value of the <CODE>ignoreeof</CODE> option to <CODE>set -o</CODE>
+instead of exiting immediately when it receives an <CODE>EOF</CODE> on its
+standard input when reading a command (see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+<P>
+
+<LI>
+Command history (see section <A HREF="bashref.html#SEC120">9.1 Bash History Facilities</A>)
+and history expansion (see section <A HREF="bashref.html#SEC122">9.3 History Expansion</A>)
+are enabled by default.
+Bash will save the command history to the file named by <CODE>$HISTFILE</CODE>
+when an interactive shell exits.
+<P>
+
+<LI>
+Alias expansion (see section <A HREF="bashref.html#SEC84">6.6 Aliases</A>) is performed by default.
+<P>
+
+<LI>
+In the absence of any traps, Bash ignores <CODE>SIGTERM</CODE>
+(see section <A HREF="bashref.html#SEC56">3.7.6 Signals</A>).
+<P>
+
+<LI>
+In the absence of any traps, <CODE>SIGINT</CODE> is caught and handled
+((see section <A HREF="bashref.html#SEC56">3.7.6 Signals</A>).
+<CODE>SIGINT</CODE> will interrupt some shell builtins.
+<P>
+
+<LI>
+An interactive login shell sends a <CODE>SIGHUP</CODE> to all jobs on exit
+if the <CODE>huponexit</CODE> shell option has been enabled (see section <A HREF="bashref.html#SEC56">3.7.6 Signals</A>).
+<P>
+
+<LI>
+The <SAMP>`-n'</SAMP> invocation option is ignored, and <SAMP>`set -n'</SAMP> has
+no effect (see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+<P>
+
+<LI>
+Bash will check for mail periodically, depending on the values of the
+<CODE>MAIL</CODE>, <CODE>MAILPATH</CODE>, and <CODE>MAILCHECK</CODE> shell variables
+(see section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>).
+<P>
+
+<LI>
+Expansion errors due to references to unbound shell variables after
+<SAMP>`set -u'</SAMP> has been enabled will not cause the shell to exit
+(see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+<P>
+
+<LI>
+The shell will not exit on expansion errors caused by <VAR>var</VAR> being unset
+or null in <CODE>${<VAR>var</VAR>:?<VAR>word</VAR>}</CODE> expansions
+(see section <A HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A>).
+<P>
+
+<LI>
+Redirection errors encountered by shell builtins will not cause the
+shell to exit.
+<P>
+
+<LI>
+When running in POSIX mode, a special builtin returning an error
+status will not cause the shell to exit (see section <A HREF="bashref.html#SEC90">6.11 Bash POSIX Mode</A>).
+<P>
+
+<LI>
+A failed <CODE>exec</CODE> will not cause the shell to exit
+(see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+<P>
+
+<LI>
+Parser syntax errors will not cause the shell to exit.
+<P>
+
+<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>
+option to the <CODE>shopt</CODE> builtin in <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>).
+<P>
+
+<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
+printing <CODE>$PS1</CODE> (see section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>).
+<P>
+
+</OL>
+<P>
+
+<A NAME="Bash Conditional Expressions"></A>
+<HR SIZE="6">
+<A NAME="SEC82"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC81"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC83"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC83"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.4 Bash Conditional Expressions </H2>
+<!--docid::SEC82::-->
+<P>
+
+Conditional expressions are used by the <CODE>[[</CODE> compound command
+and the <CODE>test</CODE> and <CODE>[</CODE> builtin commands.
+</P><P>
+
+Expressions may be unary or binary.
+Unary expressions are often used to examine the status of a file.
+There are string operators and numeric comparison operators as well.
+If the <VAR>file</VAR> argument to one of the primaries is of the form
+<TT>`/dev/fd/<VAR>N</VAR>'</TT>, then file descriptor <VAR>N</VAR> is checked.
+If the <VAR>file</VAR> argument to one of the primaries is one of
+<TT>`/dev/stdin'</TT>, <TT>`/dev/stdout'</TT>, or <TT>`/dev/stderr'</TT>, file
+descriptor 0, 1, or 2, respectively, is checked.
+</P><P>
+
+Unless otherwise specified, primaries that operate on files follow symbolic
+links and operate on the target of the link, rather than the link itself.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-a <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists.
+<P>
+
+<DT><CODE>-b <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is a block special file.
+<P>
+
+<DT><CODE>-c <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is a character special file.
+<P>
+
+<DT><CODE>-d <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is a directory.
+<P>
+
+<DT><CODE>-e <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists.
+<P>
+
+<DT><CODE>-f <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is a regular file.
+<P>
+
+<DT><CODE>-g <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and its set-group-id bit is set.
+<P>
+
+<DT><CODE>-h <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is a symbolic link.
+<P>
+
+<DT><CODE>-k <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and its "sticky" bit is set.
+<P>
+
+<DT><CODE>-p <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is a named pipe (FIFO).
+<P>
+
+<DT><CODE>-r <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is readable.
+<P>
+
+<DT><CODE>-s <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and has a size greater than zero.
+<P>
+
+<DT><CODE>-t <VAR>fd</VAR></CODE>
+<DD>True if file descriptor <VAR>fd</VAR> is open and refers to a terminal.
+<P>
+
+<DT><CODE>-u <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and its set-user-id bit is set.
+<P>
+
+<DT><CODE>-w <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is writable.
+<P>
+
+<DT><CODE>-x <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is executable.
+<P>
+
+<DT><CODE>-O <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is owned by the effective user id.
+<P>
+
+<DT><CODE>-G <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is owned by the effective group id.
+<P>
+
+<DT><CODE>-L <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is a symbolic link.
+<P>
+
+<DT><CODE>-S <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and is a socket.
+<P>
+
+<DT><CODE>-N <VAR>file</VAR></CODE>
+<DD>True if <VAR>file</VAR> exists and has been modified since it was last read.
+<P>
+
+<DT><CODE><VAR>file1</VAR> -nt <VAR>file2</VAR></CODE>
+<DD>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>
+
+<DT><CODE><VAR>file1</VAR> -ot <VAR>file2</VAR></CODE>
+<DD>True if <VAR>file1</VAR> is older than <VAR>file2</VAR>,
+or if <VAR>file2</VAR> exists and <VAR>file1</VAR> does not.
+<P>
+
+<DT><CODE><VAR>file1</VAR> -ef <VAR>file2</VAR></CODE>
+<DD>True if <VAR>file1</VAR> and <VAR>file2</VAR> refer to the same device and
+inode numbers.
+<P>
+
+<DT><CODE>-o <VAR>optname</VAR></CODE>
+<DD>True if 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 section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+<P>
+
+<DT><CODE>-z <VAR>string</VAR></CODE>
+<DD>True if the length of <VAR>string</VAR> is zero.
+<P>
+
+<DT><CODE>-n <VAR>string</VAR></CODE>
+<DD><DT><CODE><VAR>string</VAR></CODE>
+<DD>True if the length of <VAR>string</VAR> is non-zero.
+<P>
+
+<DT><CODE><VAR>string1</VAR> == <VAR>string2</VAR></CODE>
+<DD>True if the strings are equal.
+<SAMP>`='</SAMP> may be used in place of <SAMP>`=='</SAMP> for strict POSIX compliance.
+<P>
+
+<DT><CODE><VAR>string1</VAR> != <VAR>string2</VAR></CODE>
+<DD>True if the strings are not equal.
+<P>
+
+<DT><CODE><VAR>string1</VAR> &#60; <VAR>string2</VAR></CODE>
+<DD>True if <VAR>string1</VAR> sorts before <VAR>string2</VAR> lexicographically
+in the current locale.
+<P>
+
+<DT><CODE><VAR>string1</VAR> &#62; <VAR>string2</VAR></CODE>
+<DD>True if <VAR>string1</VAR> sorts after <VAR>string2</VAR> lexicographically
+in the current locale.
+<P>
+
+<DT><CODE><VAR>arg1</VAR> OP <VAR>arg2</VAR></CODE>
+<DD><CODE>OP</CODE> is one of 
+<SAMP>`-eq'</SAMP>, <SAMP>`-ne'</SAMP>, <SAMP>`-lt'</SAMP>, <SAMP>`-le'</SAMP>, <SAMP>`-gt'</SAMP>, or <SAMP>`-ge'</SAMP>.
+These arithmetic binary operators return true if <VAR>arg1</VAR>
+is equal to, not equal to, less than, less than or equal to,
+greater than, or greater than or equal to <VAR>arg2</VAR>,
+respectively.  <VAR>Arg1</VAR> and <VAR>arg2</VAR>
+may be positive or negative integers.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Shell Arithmetic"></A>
+<HR SIZE="6">
+<A NAME="SEC83"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC82"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC84"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC84"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.5 Shell Arithmetic </H2>
+<!--docid::SEC83::-->
+<P>
+
+The shell allows arithmetic expressions to be evaluated, as one of
+the shell expansions or by the <CODE>let</CODE> and the <SAMP>`-i'</SAMP> option
+to the <CODE>declare</CODE> builtins.
+</P><P>
+
+Evaluation is done in fixed-width integers with no check for overflow,
+though division by 0 is trapped and flagged as an error.
+The operators and their precedence, associativity, and values
+are the same as in the C language.
+The following list of operators is grouped into levels of
+equal-precedence operators.
+The levels are listed in order of decreasing precedence. 
+</P><P>
+
+<DL COMPACT>
+
+<DT><CODE><VAR>id</VAR>++ <VAR>id</VAR>--</CODE>
+<DD>variable post-increment and post-decrement 
+<P>
+
+<DT><CODE>++<VAR>id</VAR> --<VAR>id</VAR></CODE>
+<DD>variable pre-increment and pre-decrement
+<P>
+
+<DT><CODE>- +</CODE>
+<DD>unary minus and plus
+<P>
+
+<DT><CODE>! ~</CODE>
+<DD>logical and bitwise negation
+<P>
+
+<DT><CODE>**</CODE>
+<DD>exponentiation
+<P>
+
+<DT><CODE>* / %</CODE>
+<DD>multiplication, division, remainder
+<P>
+
+<DT><CODE>+ -</CODE>
+<DD>addition, subtraction
+<P>
+
+<DT><CODE>&#60;&#60; &#62;&#62;</CODE>
+<DD>left and right bitwise shifts
+<P>
+
+<DT><CODE>&#60;= &#62;= &#60; &#62;</CODE>
+<DD>comparison
+<P>
+
+<DT><CODE>== !=</CODE>
+<DD>equality and inequality
+<P>
+
+<DT><CODE>&#38;</CODE>
+<DD>bitwise AND
+<P>
+
+<DT><CODE>^</CODE>
+<DD>bitwise exclusive OR
+<P>
+
+<DT><CODE>|</CODE>
+<DD>bitwise OR
+<P>
+
+<DT><CODE>&#38;&#38;</CODE>
+<DD>logical AND
+<P>
+
+<DT><CODE>||</CODE>
+<DD>logical OR
+<P>
+
+<DT><CODE>expr ? expr : expr</CODE>
+<DD>conditional operator
+<P>
+
+<DT><CODE>= *= /= %= += -= &#60;&#60;= &#62;&#62;= &#38;= ^= |=</CODE>
+<DD>assignment
+<P>
+
+<DT><CODE>expr1 , expr2</CODE>
+<DD>comma
+</DL>
+<P>
+
+Shell variables are allowed as operands; parameter expansion is
+performed before the expression is evaluated. 
+Within an expression, shell variables may also be referenced by name
+without using the parameter expansion syntax.
+A shell variable that is null or unset evaluates to 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 <SAMP>`declare -i'</SAMP> is assigned a value.
+A null value evaluates to 0.
+A shell variable need not have its integer attribute turned on
+to be used in an expression.
+</P><P>
+
+Constants with a leading 0 are interpreted as octal numbers.
+A leading <SAMP>`0x'</SAMP> or <SAMP>`0X'</SAMP> denotes hexadecimal.  Otherwise,
+numbers take the form [<VAR>base</VAR><CODE>#</CODE>]<VAR>n</VAR>, where <VAR>base</VAR>
+is a decimal number between 2 and 64 representing the arithmetic
+base, and <VAR>n</VAR> is a number in that base.  If <VAR>base</VAR><CODE>#</CODE> is
+omitted, then base 10 is used.
+The digits greater than 9 are represented by the lowercase letters,
+the uppercase letters, <SAMP>`@'</SAMP>, and <SAMP>`_'</SAMP>, in that order.
+If <VAR>base</VAR> is less than or equal to 36, lowercase and uppercase
+letters may be used interchangeably to represent numbers between 10
+and 35.
+</P><P>
+
+Operators are evaluated in order of precedence.  Sub-expressions in
+parentheses are evaluated first and may override the precedence
+rules above.
+</P><P>
+
+<A NAME="Aliases"></A>
+<HR SIZE="6">
+<A NAME="SEC84"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC83"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC85"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC85"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.6 Aliases </H2>
+<!--docid::SEC84::-->
+<P>
+
+<VAR>Aliases</VAR> 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.
+</P><P>
+
+The first word of each simple command, if unquoted, is checked to see
+if it has an alias.
+If so, that word is replaced by the text of the alias.
+The characters <SAMP>`/'</SAMP>, <SAMP>`$'</SAMP>, <SAMP>``'</SAMP>, <SAMP>`='</SAMP> and any of the
+shell metacharacters or quoting characters listed above may not appear
+in an alias name.
+The replacement text may contain any valid
+shell input, including shell metacharacters.
+The first word of the replacement text is tested for
+aliases, but a word that is identical to an alias being expanded
+is not expanded a second time.
+This means that one may alias <CODE>ls</CODE> to <CODE>"ls -F"</CODE>,
+for instance, and Bash does not try to recursively expand the
+replacement text. If the last character of the alias value is a
+space or tab character, 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>
+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
+(see section <A HREF="bashref.html#SEC24">3.3 Shell Functions</A>).
+</P><P>
+
+Aliases are not expanded when the shell is not interactive,
+unless the <CODE>expand_aliases</CODE> shell option is set using
+<CODE>shopt</CODE> (see section <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>).
+</P><P>
+
+The rules concerning the definition and use of aliases are
+somewhat confusing.  Bash
+always reads at least one complete line
+of input before executing any
+of the commands on that line.  Aliases are expanded when a
+command is read, not when it is executed.  Therefore, an
+alias definition appearing on the same line as another
+command does not take effect until the next line of input is read.
+The commands following the alias definition
+on that line are not affected by the new alias.
+This behavior is also an issue when functions are executed.
+Aliases are expanded when a function definition is read,
+not when the function is executed, because a function definition
+is itself a compound command.  As a consequence, aliases
+defined in a function are not available until after that
+function is executed.  To be safe, always put
+alias definitions on a separate line, and do not use <CODE>alias</CODE>
+in compound commands.
+</P><P>
+
+For almost every purpose, shell functions are preferred over aliases.
+</P><P>
+
+<A NAME="Arrays"></A>
+<HR SIZE="6">
+<A NAME="SEC85"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC84"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC86"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC86"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.7 Arrays </H2>
+<!--docid::SEC85::-->
+<P>
+
+Bash provides one-dimensional indexed and associative array variables.
+Any variable may be used as an indexed array;
+the <CODE>declare</CODE> builtin will explicitly declare an array.
+There is no maximum
+limit on the size of an array, nor any requirement that members
+be indexed or assigned contiguously.
+Indexed arrays are referenced using integers (including arithmetic
+expressions (see section <A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A>) and are zero-based;
+associative arrays use arbitrary strings.
+</P><P>
+
+An indexed array is created automatically if any variable is assigned to
+using the syntax
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>name[<VAR>subscript</VAR>]=<VAR>value</VAR>
+</pre></td></tr></table></P><P>
+
+The <VAR>subscript</VAR>
+is treated as an arithmetic expression that must evaluate to a number
+greater than or equal to zero.  To explicitly declare an array, use
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>declare -a <VAR>name</VAR>
+</pre></td></tr></table>The syntax
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>declare -a <VAR>name</VAR>[<VAR>subscript</VAR>]
+</pre></td></tr></table>is also accepted; the <VAR>subscript</VAR> is ignored.
+</P><P>
+
+Associative arrays are created using
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>declare -A <VAR>name</VAR>.
+</pre></td></tr></table></P><P>
+
+Attributes may be
+specified for an array variable using the <CODE>declare</CODE> and
+<CODE>readonly</CODE> builtins.  Each attribute applies to all members of
+an array.
+</P><P>
+
+Arrays are assigned to using compound assignments of the form
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>name=(value<VAR>1</VAR> <small>...</small> value<VAR>n</VAR>)
+</pre></td></tr></table>where each
+<VAR>value</VAR> is of the form <CODE>[<VAR>subscript</VAR>]=</CODE><VAR>string</VAR>.
+Indexed array assignments do not require the bracket and subscript.
+When assigning to indexed arrays, if
+the optional subscript is supplied, that index is assigned to;
+otherwise the index of the element assigned is the last index assigned
+to by the statement plus one.  Indexing starts at zero.
+</P><P>
+
+When assigning to an associative array, the subscript is required.
+</P><P>
+
+This syntax is also accepted by the <CODE>declare</CODE>
+builtin.  Individual array elements may be assigned to using the
+<CODE>name[</CODE><VAR>subscript</VAR><CODE>]=</CODE><VAR>value</VAR> syntax introduced above.
+</P><P>
+
+Any element of an array may be referenced using
+<CODE>${name[</CODE><VAR>subscript</VAR><CODE>]}</CODE>.
+The braces are required to avoid
+conflicts with the shell's filename expansion operators.  If the
+<VAR>subscript</VAR> is <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>, the word expands to all members
+of the array <VAR>name</VAR>.  These subscripts differ only when the word
+appears within double quotes.
+If the word is double-quoted,
+<CODE>${name[*]}</CODE> expands to a single word with
+the value of each array member separated by the first character of the
+<CODE>IFS</CODE> variable, and <CODE>${name[@]}</CODE> expands each element of
+<VAR>name</VAR> to a separate word.  When there are no array members,
+<CODE>${name[@]}</CODE> expands to nothing.
+If the double-quoted expansion occurs within a word, the expansion of
+the first parameter is joined with the beginning part of the original
+word, and the expansion of the last parameter is joined with the last
+part of the original word.
+This is analogous to the
+expansion of the special parameters <SAMP>`@'</SAMP> and <SAMP>`*'</SAMP>. 
+<CODE>${#name[</CODE><VAR>subscript</VAR><CODE>]}</CODE> expands to the length of
+<CODE>${name[</CODE><VAR>subscript</VAR><CODE>]}</CODE>.
+If <VAR>subscript</VAR> is <SAMP>`@'</SAMP> or
+<SAMP>`*'</SAMP>, the expansion is the number of elements in the array. 
+Referencing an array variable without a subscript is equivalent to
+referencing with a subscript of 0. 
+</P><P>
+
+The <CODE>unset</CODE> builtin is used to destroy arrays.
+<CODE>unset</CODE> <VAR>name</VAR>[<VAR>subscript</VAR>]
+destroys the array element at index <VAR>subscript</VAR>.
+Care must be taken to avoid unwanted side effects caused by filename
+generation.
+<CODE>unset</CODE> <VAR>name</VAR>, where <VAR>name</VAR> is an array, removes the
+entire array. A subscript of <SAMP>`*'</SAMP> or <SAMP>`@'</SAMP> also removes the
+entire array.
+</P><P>
+
+The <CODE>declare</CODE>, <CODE>local</CODE>, and <CODE>readonly</CODE>
+builtins each accept a <SAMP>`-a'</SAMP> option to specify an indexed
+array and a <SAMP>`-A'</SAMP> option to specify an associative array.
+The <CODE>read</CODE> builtin accepts a <SAMP>`-a'</SAMP>
+option to assign a list of words read from the standard input
+to an array, and can read values from the standard input into
+individual array elements.  The <CODE>set</CODE> and <CODE>declare</CODE>
+builtins display array values in a way that allows them to be
+reused as input.
+</P><P>
+
+<A NAME="The Directory Stack"></A>
+<HR SIZE="6">
+<A NAME="SEC86"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC85"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC87"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC88"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC88"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.8 The Directory Stack </H2>
+<!--docid::SEC86::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC87">6.8.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></BLOCKQUOTE>
+<P>
+
+The directory stack is a list of recently-visited directories.  The
+<CODE>pushd</CODE> builtin adds directories to the stack as it changes
+the current directory, and the <CODE>popd</CODE> builtin removes specified
+directories from the stack and changes the current directory to
+the directory removed.  The <CODE>dirs</CODE> builtin displays the contents
+of the directory stack.
+</P><P>
+
+The contents of the directory stack are also visible
+as the value of the <CODE>DIRSTACK</CODE> shell variable.
+</P><P>
+
+<A NAME="Directory Stack Builtins"></A>
+<HR SIZE="6">
+<A NAME="SEC87"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC86"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC88"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC88"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC86"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC88"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 6.8.1 Directory Stack Builtins </H3>
+<!--docid::SEC87::-->
+<P>
+
+<DL COMPACT>
+
+<DT><CODE>dirs</CODE>
+<DD><A NAME="IDX286"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>dirs [+<VAR>N</VAR> | -<VAR>N</VAR>] [-clpv]
+</pre></td></tr></table>Display the list of currently remembered directories.  Directories
+are added to the list with the <CODE>pushd</CODE> command; the
+<CODE>popd</CODE> command removes directories from the list.
+<DL COMPACT>
+<DT><CODE>+<VAR>N</VAR></CODE>
+<DD>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.
+<DT><CODE>-<VAR>N</VAR></CODE>
+<DD>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.
+<DT><CODE>-c</CODE>
+<DD>Clears the directory stack by deleting all of the elements.
+<DT><CODE>-l</CODE>
+<DD>Produces a longer listing; the default listing format uses a 
+tilde to denote the home directory.
+<DT><CODE>-p</CODE>
+<DD>Causes <CODE>dirs</CODE> to print the directory stack with one entry per
+line.
+<DT><CODE>-v</CODE>
+<DD>Causes <CODE>dirs</CODE> to print the directory stack with one entry per
+line, prefixing each entry with its index in the stack.
+</DL>
+<P>
+
+<DT><CODE>popd</CODE>
+<DD><A NAME="IDX287"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>popd [+<VAR>N</VAR> | -<VAR>N</VAR>] [-n]
+</pre></td></tr></table><P>
+
+Remove the top entry from the directory stack, and <CODE>cd</CODE>
+to the new top directory.
+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.  The
+elements are numbered from 0 starting at the first directory listed with
+<CODE>dirs</CODE>; i.e., <CODE>popd</CODE> is equivalent to <CODE>popd +0</CODE>.
+<DL COMPACT>
+<DT><CODE>+<VAR>N</VAR></CODE>
+<DD>Removes the <VAR>N</VAR>th directory (counting from the left of the
+list printed by <CODE>dirs</CODE>), starting with zero.
+<DT><CODE>-<VAR>N</VAR></CODE>
+<DD>Removes the <VAR>N</VAR>th directory (counting from the right of the
+list printed by <CODE>dirs</CODE>), starting with zero.
+<DT><CODE>-n</CODE>
+<DD>Suppresses the normal change of directory when removing directories
+from the stack, so that only the stack is manipulated.
+</DL>
+<P>
+
+<A NAME="IDX288"></A>
+<DT><CODE>pushd</CODE>
+<DD><TABLE><tr><td>&nbsp;</td><td class=example><pre>pushd [-n] [<VAR>+N</VAR> | <VAR>-N</VAR> | <VAR>dir</VAR> ]
+</pre></td></tr></table><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.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-n</CODE>
+<DD>Suppresses the normal change of directory when adding directories
+to the stack, so that only the stack is manipulated.
+<DT><CODE>+<VAR>N</VAR></CODE>
+<DD>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.
+<DT><CODE>-<VAR>N</VAR></CODE>
+<DD>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.
+<DT><CODE><VAR>dir</VAR></CODE>
+<DD>Makes the current working directory be the top of the stack, and then
+executes the equivalent of `<CODE>cd</CODE> <VAR>dir</VAR>'.
+<CODE>cd</CODE>s to <VAR>dir</VAR>.
+</DL>
+<P>
+
+</DL>
+<P>
+
+<A NAME="Printing a Prompt"></A>
+<HR SIZE="6">
+<A NAME="SEC88"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC87"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC89"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.9 Controlling the Prompt </H2>
+<!--docid::SEC88::-->
+<P>
+
+The value of the variable <CODE>PROMPT_COMMAND</CODE> is examined just before
+Bash prints each primary prompt.  If <CODE>PROMPT_COMMAND</CODE> is set and
+has a non-null value, then the
+value is executed just as if it had been typed on the command line.
+</P><P>
+
+In addition, the following table describes the special characters which
+can appear in the prompt variables:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>\a</CODE>
+<DD>A bell character.
+<DT><CODE>\d</CODE>
+<DD>The date, in "Weekday Month Date" format (e.g., "Tue May 26").
+<DT><CODE>\D{<VAR>format</VAR>}</CODE>
+<DD>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.
+<DT><CODE>\e</CODE>
+<DD>An escape character.
+<DT><CODE>\h</CODE>
+<DD>The hostname, up to the first `.'.
+<DT><CODE>\H</CODE>
+<DD>The hostname.
+<DT><CODE>\j</CODE>
+<DD>The number of jobs currently managed by the shell.
+<DT><CODE>\l</CODE>
+<DD>The basename of the shell's terminal device name.
+<DT><CODE>\n</CODE>
+<DD>A newline.
+<DT><CODE>\r</CODE>
+<DD>A carriage return.
+<DT><CODE>\s</CODE>
+<DD>The name of the shell, the basename of <CODE>$0</CODE> (the portion
+following the final slash).
+<DT><CODE>\t</CODE>
+<DD>The time, in 24-hour HH:MM:SS format.
+<DT><CODE>\T</CODE>
+<DD>The time, in 12-hour HH:MM:SS format.
+<DT><CODE>\@</CODE>
+<DD>The time, in 12-hour am/pm format.
+<DT><CODE>\A</CODE>
+<DD>The time, in 24-hour HH:MM format.
+<DT><CODE>\u</CODE>
+<DD>The username of the current user.
+<DT><CODE>\v</CODE>
+<DD>The version of Bash (e.g., 2.00)          
+<DT><CODE>\V</CODE>
+<DD>The release of Bash, version + patchlevel (e.g., 2.00.0)
+<DT><CODE>\w</CODE>
+<DD>The current working directory, with <CODE>$HOME</CODE> abbreviated with a tilde
+(uses the <CODE>$PROMPT_DIRTRIM</CODE> variable).
+<DT><CODE>\W</CODE>
+<DD>The basename of <CODE>$PWD</CODE>, with <CODE>$HOME</CODE> abbreviated with a tilde.
+<DT><CODE>\!</CODE>
+<DD>The history number of this command.
+<DT><CODE>\#</CODE>
+<DD>The command number of this command.
+<DT><CODE>\$</CODE>
+<DD>If the effective uid is 0, <CODE>#</CODE>, otherwise <CODE>$</CODE>.
+<DT><CODE>\<VAR>nnn</VAR></CODE>
+<DD>The character whose ASCII code is the octal value <VAR>nnn</VAR>.
+<DT><CODE>\\</CODE>
+<DD>A backslash.
+<DT><CODE>\[</CODE>
+<DD>Begin a sequence of non-printing characters.  This could be used to
+embed a terminal control sequence into the prompt.
+<DT><CODE>\]</CODE>
+<DD>End a sequence of non-printing characters.
+</DL>
+<P>
+
+The command number and the history number are usually different:
+the history number of a command is its position in the history
+list, which may include commands restored from the history file
+(see section <A HREF="bashref.html#SEC120">9.1 Bash History Facilities</A>), while the command number is
+the position in the sequence of commands executed during the current
+shell session.
+</P><P>
+
+After the string is decoded, it is expanded via
+parameter expansion, command substitution, arithmetic
+expansion, and quote removal, subject to the value of the
+<CODE>promptvars</CODE> shell option (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+</P><P>
+
+<A NAME="The Restricted Shell"></A>
+<HR SIZE="6">
+<A NAME="SEC89"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC88"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC90"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC70"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.10 The Restricted Shell </H2>
+<!--docid::SEC89::-->
+<P>
+
+If Bash is started with the name <CODE>rbash</CODE>, or the
+<SAMP>`--restricted'</SAMP>
+or
+<SAMP>`-r'</SAMP>
+option is supplied at invocation, the shell becomes restricted.
+A restricted shell is used to
+set up an environment more controlled than the standard shell.
+A restricted shell behaves identically to <CODE>bash</CODE>
+with the exception that the following are disallowed or not performed:
+</P><P>
+
+<UL>
+<LI>
+Changing directories with the <CODE>cd</CODE> builtin.
+<LI>
+Setting or unsetting the values of the <CODE>SHELL</CODE>, <CODE>PATH</CODE>,
+<CODE>ENV</CODE>, or <CODE>BASH_ENV</CODE> variables.
+<LI>
+Specifying command names containing slashes.
+<LI>
+Specifying a filename containing a slash as an argument to the <CODE>.</CODE>
+builtin command.
+<LI>
+Specifying a filename containing a slash as an argument to the <SAMP>`-p'</SAMP>
+option to the <CODE>hash</CODE> builtin command.
+<LI>
+Importing function definitions from the shell environment at startup.
+<LI>
+Parsing the value of <CODE>SHELLOPTS</CODE> from the shell environment at startup.
+<LI>
+Redirecting output using the <SAMP>`&#62;'</SAMP>, <SAMP>`&#62;|'</SAMP>, <SAMP>`&#60;&#62;'</SAMP>, <SAMP>`&#62;&#38;'</SAMP>,
+<SAMP>`&#38;&#62;'</SAMP>, and <SAMP>`&#62;&#62;'</SAMP> redirection operators.
+<LI>
+Using the <CODE>exec</CODE> builtin to replace the shell with another command.
+<LI>
+Adding or deleting builtin commands with the
+<SAMP>`-f'</SAMP> and <SAMP>`-d'</SAMP> options to the <CODE>enable</CODE> builtin.
+<LI>
+Using the <CODE>enable</CODE> builtin command to enable disabled shell builtins.
+<LI>
+Specifying the <SAMP>`-p'</SAMP> option to the <CODE>command</CODE> builtin.
+<LI>
+Turning off restricted mode with <SAMP>`set +r'</SAMP> or <SAMP>`set +o restricted'</SAMP>.
+</UL>
+<P>
+
+These restrictions are enforced after any startup files are read.
+</P><P>
+
+When a command that is found to be a shell script is executed
+(see section <A HREF="bashref.html#SEC57">3.8 Shell Scripts</A>), <CODE>rbash</CODE> turns off any restrictions in
+the shell spawned to execute the script.
+</P><P>
+
+<A NAME="Bash POSIX Mode"></A>
+<HR SIZE="6">
+<A NAME="SEC90"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC89"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC70"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC68"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 6.11 Bash POSIX Mode </H2>
+<!--docid::SEC90::-->
+<P>
+
+Starting Bash with the <SAMP>`--posix'</SAMP> command-line option or executing
+<SAMP>`set -o posix'</SAMP> while Bash is running will cause Bash to conform more
+closely to the POSIX standard by changing the behavior to
+match that specified by POSIX in areas where the Bash default differs.
+</P><P>
+
+When invoked as <CODE>sh</CODE>, Bash enters POSIX mode after reading the
+startup files.
+</P><P>
+
+The following list is what's changed when `POSIX mode' is in effect:
+</P><P>
+
+<OL>
+<LI>
+When a command in the hash table no longer exists, Bash will re-search
+<CODE>$PATH</CODE> to find the new location.  This is also available with
+<SAMP>`shopt -s checkhash'</SAMP>.
+<P>
+
+<LI>
+The message printed by the job control code and builtins when a job
+exits with a non-zero status is `Done(status)'.
+<P>
+
+<LI>
+The message printed by the job control code and builtins when a job
+is stopped is `Stopped(<VAR>signame</VAR>)', where <VAR>signame</VAR> is, for
+example, <CODE>SIGTSTP</CODE>.
+<P>
+
+<LI>
+The <CODE>bg</CODE> builtin uses the required format to describe each job placed
+in the background, which does not include an indication of whether the job
+is the current or previous job.
+<P>
+
+<LI>
+Reserved words appearing in a context where reserved words are recognized
+do not undergo alias expansion.
+<P>
+
+<LI>
+The POSIX <CODE>PS1</CODE> and <CODE>PS2</CODE> expansions of <SAMP>`!'</SAMP> to
+the history number and <SAMP>`!!'</SAMP> to <SAMP>`!'</SAMP> are enabled,
+and parameter expansion is performed on the values of <CODE>PS1</CODE> and
+<CODE>PS2</CODE> regardless of the setting of the <CODE>promptvars</CODE> option.
+<P>
+
+<LI>
+The POSIX startup files are executed (<CODE>$ENV</CODE>) rather than
+the normal Bash files.
+<P>
+
+<LI>
+Tilde expansion is only performed on assignments preceding a command
+name, rather than on all assignment statements on the line.
+<P>
+
+<LI>
+The default history file is <TT>`~/.sh_history'</TT> (this is the
+default value of <CODE>$HISTFILE</CODE>).
+<P>
+
+<LI>
+The output of <SAMP>`kill -l'</SAMP> prints all the signal names on a single line,
+separated by spaces, without the <SAMP>`SIG'</SAMP> prefix.
+<P>
+
+<LI>
+The <CODE>kill</CODE> builtin does not accept signal names with a <SAMP>`SIG'</SAMP>
+prefix.
+<P>
+
+<LI>
+Non-interactive shells exit if <VAR>filename</VAR> in <CODE>.</CODE> <VAR>filename</VAR>
+is not found.
+<P>
+
+<LI>
+Non-interactive shells exit if a syntax error in an arithmetic expansion
+results in an invalid expression.
+<P>
+
+<LI>
+Redirection operators do not perform filename expansion on the word
+in the redirection unless the shell is interactive.
+<P>
+
+<LI>
+Redirection operators do not perform word splitting on the word in the
+redirection.
+<P>
+
+<LI>
+Function names must be valid shell <CODE>name</CODE>s.  That is, they may not
+contain characters other than letters, digits, and underscores, and
+may not start with a digit.  Declaring a function with an invalid name
+causes a fatal syntax error in non-interactive shells.
+<P>
+
+<LI>
+POSIX special builtins are found before shell functions
+during command lookup.
+<P>
+
+<LI>
+If a POSIX special builtin returns an error status, a
+non-interactive shell exits.  The fatal errors are those listed in
+the POSIX standard, and include things like passing incorrect options,
+redirection errors, variable assignment errors for assignments preceding
+the command name, and so on.
+<P>
+
+<LI>
+If <CODE>CDPATH</CODE> is set, the <CODE>cd</CODE> builtin will not implicitly
+append the current directory to it.  This means that <CODE>cd</CODE> will
+fail if no valid directory name can be constructed from
+any of the entries in <CODE>$CDPATH</CODE>, even if the a directory with
+the same name as the name given as an argument to <CODE>cd</CODE> exists
+in the current directory.
+<P>
+
+<LI>
+A non-interactive shell exits with an error status if a variable
+assignment error occurs when no command name follows the assignment
+statements.
+A variable assignment error occurs, for example, when trying to assign
+a value to a readonly variable.
+<P>
+
+<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
+<CODE>select</CODE> statement is a readonly variable.
+<P>
+
+<LI>
+Process substitution is not available.
+<P>
+
+<LI>
+Assignment statements preceding POSIX special builtins
+persist in the shell environment after the builtin completes.
+<P>
+
+<LI>
+Assignment statements preceding shell function calls persist in the
+shell environment after the function returns, as if a POSIX
+special builtin command had been executed.
+<P>
+
+<LI>
+The <CODE>export</CODE> and <CODE>readonly</CODE> builtin commands display their
+output in the format required by POSIX.
+<P>
+
+<LI>
+The <CODE>trap</CODE> builtin displays signal names without the leading
+<CODE>SIG</CODE>.
+<P>
+
+<LI>
+The <CODE>trap</CODE> builtin doesn't check the first argument for a possible
+signal specification and revert the signal handling to the original
+disposition if it is, unless that argument consists solely of digits and
+is a valid signal number.  If users want to reset the handler for a given
+signal to the original disposition, they should use <SAMP>`-'</SAMP> as the
+first argument.
+<P>
+
+<LI>
+The <CODE>.</CODE> and <CODE>source</CODE> builtins do not search the current directory
+for the filename argument if it is not found by searching <CODE>PATH</CODE>.
+<P>
+
+<LI>
+Subshells spawned to execute command substitutions inherit the value of
+the <SAMP>`-e'</SAMP> option from the parent shell.  When not in POSIX mode,
+Bash clears the <SAMP>`-e'</SAMP> option in such subshells.
+<P>
+
+<LI>
+Alias expansion is always enabled, even in non-interactive shells.
+<P>
+
+<LI>
+When the <CODE>alias</CODE> builtin displays alias definitions, it does not
+display them with a leading <SAMP>`alias '</SAMP> unless the <SAMP>`-p'</SAMP> option
+is supplied.
+<P>
+
+<LI>
+When the <CODE>set</CODE> builtin is invoked without options, it does not display
+shell function names and definitions.
+<P>
+
+<LI>
+When the <CODE>set</CODE> builtin is invoked without options, it displays
+variable values without quotes, unless they contain shell metacharacters,
+even if the result contains nonprinting characters.
+<P>
+
+<LI>
+When the <CODE>cd</CODE> builtin is invoked in <VAR>logical</VAR> 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.
+<P>
+
+<LI>
+When the <CODE>pwd</CODE> builtin is supplied the <SAMP>`-P'</SAMP> option, it resets
+<CODE>$PWD</CODE> to a pathname containing no symlinks.
+<P>
+
+<LI>
+The <CODE>pwd</CODE> builtin verifies that the value it prints is the same as the
+current directory, even if it is not asked to check the file system with the
+<SAMP>`-P'</SAMP> option.
+<P>
+
+<LI>
+When listing the history, the <CODE>fc</CODE> builtin does not include an
+indication of whether or not a history entry has been modified.
+<P>
+
+<LI>
+The default editor used by <CODE>fc</CODE> is <CODE>ed</CODE>.
+<P>
+
+<LI>
+The <CODE>type</CODE> and <CODE>command</CODE> builtins will not report a non-executable
+file as having been found, though the shell will attempt to execute such a
+file if it is the only so-named file found in <CODE>$PATH</CODE>.
+<P>
+
+<LI>
+The <CODE>vi</CODE> editing mode will invoke the <CODE>vi</CODE> editor directly when
+the <SAMP>`v'</SAMP> command is run, instead of checking <CODE>$VISUAL</CODE> and
+<CODE>$EDITOR</CODE>.
+<P>
+
+<LI>
+When the <CODE>xpg_echo</CODE> option is enabled, Bash does not attempt to interpret
+any arguments to <CODE>echo</CODE> as options.  Each argument is displayed, after
+escape characters are converted.
+<P>
+
+<LI>
+The <CODE>ulimit</CODE> builtin uses a block size of 512 bytes for the <SAMP>`-c'</SAMP>
+and <SAMP>`-f'</SAMP> options.
+<P>
+
+</OL>
+<P>
+
+There is other POSIX behavior that Bash does not implement by
+default even when in POSIX mode.
+Specifically:
+</P><P>
+
+<OL>
+
+<LI>
+The <CODE>fc</CODE> builtin checks <CODE>$EDITOR</CODE> as a program to edit history
+entries if <CODE>FCEDIT</CODE> is unset, rather than defaulting directly to
+<CODE>ed</CODE>.  <CODE>fc</CODE> uses <CODE>ed</CODE> if <CODE>EDITOR</CODE> is unset.
+<P>
+
+<LI>
+As noted above, Bash requires the <CODE>xpg_echo</CODE> option to be enabled for
+the <CODE>echo</CODE> builtin to be fully conformant.
+<P>
+
+</OL>
+<P>
+
+Bash can be configured to be POSIX-conformant by default, by specifying
+the <SAMP>`--enable-strict-posix-default'</SAMP> to <CODE>configure</CODE> when building
+(see section <A HREF="bashref.html#SEC134">10.8 Optional Features</A>).
+</P><P>
+
+<A NAME="Job Control"></A>
+<HR SIZE="6">
+<A NAME="SEC91"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC90"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> 7. Job Control </H1>
+<!--docid::SEC91::-->
+<P>
+
+This chapter discusses what job control is, how it works, and how
+Bash allows you to access its facilities.
+</P><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC92">7.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"><A HREF="bashref.html#SEC93">7.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"><A HREF="bashref.html#SEC94">7.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></BLOCKQUOTE>
+<P>
+
+<A NAME="Job Control Basics"></A>
+<HR SIZE="6">
+<A NAME="SEC92"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC93"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 7.1 Job Control Basics </H2>
+<!--docid::SEC92::-->
+<P>
+
+Job control
+refers to the ability to selectively stop (suspend)
+the execution of processes and continue (resume)
+their execution at a later point.  A user typically employs
+this facility via an interactive interface supplied jointly
+by the system's terminal driver and Bash.
+</P><P>
+
+The shell associates a <VAR>job</VAR> with each pipeline.  It keeps a
+table of currently executing jobs, which may be listed with the
+<CODE>jobs</CODE> command.  When Bash starts a job
+asynchronously, it prints a line that looks
+like:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[1] 25647
+</pre></td></tr></table>indicating that this job is job number 1 and that the process ID
+of the last process in the pipeline associated with this job is
+25647.  All of the processes in a single pipeline are members of
+the same job.  Bash uses the <VAR>job</VAR> abstraction as the
+basis for job control. 
+</P><P>
+
+To facilitate the implementation of the user interface to job
+control, the operating system maintains the notion of a current terminal
+process group ID.  Members of this process group (processes whose
+process group ID is equal to the current terminal process group
+ID) receive keyboard-generated signals such as <CODE>SIGINT</CODE>. 
+These processes are said to be in the foreground.  Background
+processes are those whose process group ID differs from the
+terminal's; such processes are immune to keyboard-generated
+signals.  Only foreground processes are allowed to read from or
+write to the terminal.  Background processes which attempt to
+read from (write to) the terminal are sent a <CODE>SIGTTIN</CODE>
+(<CODE>SIGTTOU</CODE>) signal by the terminal driver, 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 <SAMP>`^Z'</SAMP>, 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
+(typically <SAMP>`^Y'</SAMP>, Control-Y) causes the process to be stopped
+when it attempts to read input from the terminal, and control to
+be returned to Bash.  The user then manipulates the state of
+this job, using the <CODE>bg</CODE> command to continue it in the
+background, the <CODE>fg</CODE> command to continue it in the
+foreground, or the <CODE>kill</CODE> command to kill it.  A <SAMP>`^Z'</SAMP>
+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 <SAMP>`%'</SAMP> introduces a job specification (<VAR>jobspec</VAR>).
+</P><P>
+
+Job number <CODE>n</CODE> may be referred to as <SAMP>`%n'</SAMP>.
+The symbols <SAMP>`%%'</SAMP> and  <SAMP>`%+'</SAMP> refer to the shell's notion of the
+current job, which is the last job stopped while it was in the foreground
+or started in the background.
+A single <SAMP>`%'</SAMP> (with no accompanying job specification) also refers
+to the current job.
+The previous job may be referenced using <SAMP>`%-'</SAMP>.
+If there is only a single job, <SAMP>`%+'</SAMP> and <SAMP>`%-'</SAMP> can both be used
+to refer to that job.
+In output pertaining to jobs (e.g., the output of the <CODE>jobs</CODE>
+command), the current job is always flagged with a <SAMP>`+'</SAMP>, and the
+previous job with a <SAMP>`-'</SAMP>. 
+</P><P>
+
+A job may also be referred to
+using a prefix of the name used to start it, or using a substring
+that appears in its command line.  For example, <SAMP>`%ce'</SAMP> refers
+to a stopped <CODE>ce</CODE> job. Using <SAMP>`%?ce'</SAMP>, on the
+other hand, refers to any job containing the string <SAMP>`ce'</SAMP> in
+its command line.  If the prefix or substring matches more than one job,
+Bash reports an error.
+</P><P>
+
+Simply naming a job can be used to bring it into the foreground:
+<SAMP>`%1'</SAMP> is a synonym for <SAMP>`fg %1'</SAMP>, bringing job 1 from the
+background into the foreground.  Similarly, <SAMP>`%1 &#38;'</SAMP> resumes
+job 1 in the background, equivalent to <SAMP>`bg %1'</SAMP>
+</P><P>
+
+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 <SAMP>`-b'</SAMP> option to the <CODE>set</CODE> builtin is enabled,
+Bash reports such changes immediately (see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+Any trap on <CODE>SIGCHLD</CODE> is executed for each child process
+that exits.
+</P><P>
+
+If an attempt to exit Bash is made while jobs are stopped, (or running, if
+the <CODE>checkjobs</CODE> option is enabled -- see <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>), the
+shell prints a warning message, and if the <CODE>checkjobs</CODE> option is
+enabled, lists the jobs and their statuses.
+The <CODE>jobs</CODE> command may then be used to inspect their status.
+If a second attempt to exit is made without an intervening command,
+Bash does not print another warning, and any stopped jobs are terminated.
+</P><P>
+
+<A NAME="Job Control Builtins"></A>
+<HR SIZE="6">
+<A NAME="SEC93"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC94"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC94"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 7.2 Job Control Builtins </H2>
+<!--docid::SEC93::-->
+<P>
+
+<DL COMPACT>
+
+<DT><CODE>bg</CODE>
+<DD><A NAME="IDX289"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>bg [<VAR>jobspec</VAR> <small>...</small>]
+</pre></td></tr></table>Resume each suspended job <VAR>jobspec</VAR> in the background, as if it
+had been started with <SAMP>`&#38;'</SAMP>.
+If <VAR>jobspec</VAR> is not supplied, the current job is used.
+The return status is zero unless it is run when job control is not
+enabled, or, when run with job control enabled, any
+<VAR>jobspec</VAR> was not found or specifies a job
+that was started without job control.
+<P>
+
+<DT><CODE>fg</CODE>
+<DD><A NAME="IDX290"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>fg [<VAR>jobspec</VAR>]
+</pre></td></tr></table>Resume the job <VAR>jobspec</VAR> in the foreground and make it the current job.
+If <VAR>jobspec</VAR> is not supplied, the current job is used.
+The return status is that of the command placed into the foreground,
+or non-zero if run when job control is disabled or, when run with
+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>
+
+<DT><CODE>jobs</CODE>
+<DD><A NAME="IDX291"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>jobs [-lnprs] [<VAR>jobspec</VAR>]
+jobs -x <VAR>command</VAR> [<VAR>arguments</VAR>]
+</pre></td></tr></table><P>
+
+The first form lists the active jobs.  The options have the
+following meanings:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-l</CODE>
+<DD>List process IDs in addition to the normal information.
+<P>
+
+<DT><CODE>-n</CODE>
+<DD>Display information only about jobs that have changed status since
+the user was last notified of their status.
+<P>
+
+<DT><CODE>-p</CODE>
+<DD>List only the process ID of the job's process group leader.
+<P>
+
+<DT><CODE>-r</CODE>
+<DD>Restrict output to running jobs.
+<P>
+
+<DT><CODE>-s</CODE>
+<DD>Restrict output to stopped jobs.
+</DL>
+<P>
+
+If <VAR>jobspec</VAR> is given,
+output is restricted to information about that job. 
+If <VAR>jobspec</VAR> is not supplied, the status of all jobs is
+listed.
+</P><P>
+
+If the <SAMP>`-x'</SAMP> option is supplied, <CODE>jobs</CODE> replaces any
+<VAR>jobspec</VAR> found in <VAR>command</VAR> or <VAR>arguments</VAR> with the
+corresponding process group ID, and executes <VAR>command</VAR>,
+passing it <VAR>argument</VAR>s, returning its exit status. 
+</P><P>
+
+<DT><CODE>kill</CODE>
+<DD><A NAME="IDX292"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>kill [-s <VAR>sigspec</VAR>] [-n <VAR>signum</VAR>] [-<VAR>sigspec</VAR>] <VAR>jobspec</VAR> or <VAR>pid</VAR>
+kill -l [<VAR>exit_status</VAR>]
+</pre></td></tr></table>Send a signal specified by <VAR>sigspec</VAR> or <VAR>signum</VAR> to the process
+named by job specification <VAR>jobspec</VAR> or process ID <VAR>pid</VAR>.
+<VAR>sigspec</VAR> is either a case-insensitive signal name such as
+<CODE>SIGINT</CODE> (with or without the <CODE>SIG</CODE> prefix)
+or a signal number; <VAR>signum</VAR> is a signal number.
+If <VAR>sigspec</VAR> and <VAR>signum</VAR> are not present, <CODE>SIGTERM</CODE> is used.
+The <SAMP>`-l'</SAMP> option lists the signal names.
+If any arguments are supplied when <SAMP>`-l'</SAMP> is given, the names of the
+signals corresponding to the arguments are listed, and the return status
+is zero.
+<VAR>exit_status</VAR> is a number specifying a signal number or the exit
+status of a process terminated by a signal.
+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>
+
+<DT><CODE>wait</CODE>
+<DD><A NAME="IDX293"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>wait [<VAR>jobspec</VAR> or <VAR>pid</VAR> ...]
+</pre></td></tr></table>Wait until the child process specified by each process ID <VAR>pid</VAR>
+or job specification <VAR>jobspec</VAR> exits and return the exit status of the
+last command waited for.
+If a job spec is given, all processes in the job are waited for.
+If no arguments are given, all currently active child processes are
+waited for, and the return status is zero.
+If neither <VAR>jobspec</VAR> nor <VAR>pid</VAR> specifies an active child process
+of the shell, the return status is 127.
+<P>
+
+<DT><CODE>disown</CODE>
+<DD><A NAME="IDX294"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>disown [-ar] [-h] [<VAR>jobspec</VAR> <small>...</small>]
+</pre></td></tr></table>Without options, each <VAR>jobspec</VAR> is removed from the table of
+active jobs.
+If the <SAMP>`-h'</SAMP> option is given, the job is not removed from the table,
+but is marked so that <CODE>SIGHUP</CODE> is not sent to the job if the shell
+receives a <CODE>SIGHUP</CODE>.
+If <VAR>jobspec</VAR> is not present, and neither the <SAMP>`-a'</SAMP> nor <SAMP>`-r'</SAMP>
+option is supplied, the current job is used.
+If no <VAR>jobspec</VAR> is supplied, the <SAMP>`-a'</SAMP> option means to remove or
+mark all jobs; the <SAMP>`-r'</SAMP> option without a <VAR>jobspec</VAR>
+argument restricts operation to running jobs.
+<P>
+
+<DT><CODE>suspend</CODE>
+<DD><A NAME="IDX295"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>suspend [-f]
+</pre></td></tr></table>Suspend the execution of this shell until it receives a
+<CODE>SIGCONT</CODE> signal.
+A login shell cannot be suspended; the <SAMP>`-f'</SAMP>
+option can be used to override this and force the suspension.
+<P>
+
+</DL>
+<P>
+
+When job control is not active, the <CODE>kill</CODE> and <CODE>wait</CODE>
+builtins do not accept <VAR>jobspec</VAR> arguments.  They must be
+supplied process IDs.
+</P><P>
+
+<A NAME="Job Control Variables"></A>
+<HR SIZE="6">
+<A NAME="SEC94"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC93"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC91"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 7.3 Job Control Variables </H2>
+<!--docid::SEC94::-->
+<P>
+
+<DL COMPACT>
+
+<A NAME="IDX296"></A>
+<DT><CODE>auto_resume</CODE>
+<DD><A NAME="IDX297"></A>
+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
+of an existing job.  There is no ambiguity allowed; if there is
+more than one job beginning with the string typed, then
+the most recently accessed job will be selected.
+The name of a stopped job, in this context, is the command line
+used to start it.  If this variable is set to the value <SAMP>`exact'</SAMP>,
+the string supplied must match the name of a stopped job exactly;
+if set to <SAMP>`substring'</SAMP>,
+the string supplied needs to match a substring of the name of a
+stopped job.  The <SAMP>`substring'</SAMP> value provides functionality
+analogous to the <SAMP>`%?'</SAMP> job ID (see section <A HREF="bashref.html#SEC92">7.1 Job Control Basics</A>).
+If set to any other value, the supplied string must
+be a prefix of a stopped job's name; this provides functionality
+analogous to the <SAMP>`%'</SAMP> job ID.
+<P>
+
+</DL>
+<P>
+
+<A NAME="IDX298"></A>
+</P><P>
+
+<A NAME="Command Line Editing"></A>
+<HR SIZE="6">
+<A NAME="SEC95"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC94"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> 8. Command Line Editing </H1>
+<!--docid::SEC95::-->
+<P>
+
+This chapter describes the basic features of the GNU
+command line editing interface.
+Command line editing is provided by the Readline library, which is
+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 section <A HREF="bashref.html#SEC60">4.2 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
+<SAMP>`-o vi'</SAMP> options to the <CODE>set</CODE> builtin command
+(see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>), or disabled using the <SAMP>`+o emacs'</SAMP> or 
+<SAMP>`+o vi'</SAMP> options to <CODE>set</CODE>.
+</P><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC96">8.1 Introduction to Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Notation used in this text.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC97">8.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"><A HREF="bashref.html#SEC103">8.3 Readline Init File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Customizing Readline from a user's view.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC107">8.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"><A HREF="bashref.html#SEC116">8.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"><A HREF="bashref.html#SEC117">8.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"><A HREF="bashref.html#SEC118">8.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>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="Introduction and Notation"></A>
+<HR SIZE="6">
+<A NAME="SEC96"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC97"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.1 Introduction to Line Editing </H2>
+<!--docid::SEC96::-->
+<P>
+
+The following paragraphs describe the notation used to represent
+keystrokes.
+</P><P>
+
+The text <KBD>C-k</KBD> is read as `Control-K' and describes the character
+produced when the <KBD>k</KBD> key is pressed while the Control key
+is depressed.
+</P><P>
+
+The text <KBD>M-k</KBD> is read as `Meta-K' and describes the character
+produced when the Meta key (if you have one) is depressed, and the <KBD>k</KBD>
+key is pressed.
+The Meta key is labeled <KBD>ALT</KBD> on many keyboards.
+On keyboards with two keys labeled <KBD>ALT</KBD> (usually to either side of
+the space bar), the <KBD>ALT</KBD> on the left side is generally set to
+work as a Meta key.
+The <KBD>ALT</KBD> key on the right may also be configured to work as a
+Meta key or may be configured as some other modifier, such as a
+Compose key for typing accented characters.
+</P><P>
+
+If you do not have a Meta or <KBD>ALT</KBD> key, or another key working as
+a Meta key, the identical keystroke can be generated by typing <KBD>ESC</KBD>
+<EM>first</EM>, and then typing <KBD>k</KBD>.
+Either process is known as <EM>metafying</EM> the <KBD>k</KBD> key.
+</P><P>
+
+The text <KBD>M-C-k</KBD> is read as `Meta-Control-k' and describes the
+character produced by <EM>metafying</EM> <KBD>C-k</KBD>.
+</P><P>
+
+In addition, several keys have their own names.  Specifically,
+<KBD>DEL</KBD>, <KBD>ESC</KBD>, <KBD>LFD</KBD>, <KBD>SPC</KBD>, <KBD>RET</KBD>, and <KBD>TAB</KBD> all
+stand for themselves when seen in this text, or in an init file
+(see section <A HREF="bashref.html#SEC103">8.3 Readline Init File</A>).
+If your keyboard lacks a <KBD>LFD</KBD> key, typing <KBD>C-j</KBD> will
+produce the desired character.
+The <KBD>RET</KBD> key may be labeled <KBD>Return</KBD> or <KBD>Enter</KBD> on
+some keyboards.
+</P><P>
+
+<A NAME="Readline Interaction"></A>
+<HR SIZE="6">
+<A NAME="SEC97"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC98"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.2 Readline Interaction </H2>
+<!--docid::SEC97::-->
+<P>
+
+Often during an interactive session you type in a long line of text,
+only to notice that the first word on the line is misspelled.  The
+Readline library gives you a set of commands for manipulating the text
+as you type it in, allowing you to just fix your typo, and not forcing
+you to retype the majority of the line.  Using these editing commands,
+you move the cursor to the place that needs correction, and delete or
+insert the text of the corrections.  Then, when you are satisfied with
+the line, you simply press <KBD>RET</KBD>.  You do not have to be at the
+end of the line to press <KBD>RET</KBD>; the entire line is accepted
+regardless of the location of the cursor within the line.
+</P><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC98">8.2.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"><A HREF="bashref.html#SEC99">8.2.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"><A HREF="bashref.html#SEC100">8.2.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"><A HREF="bashref.html#SEC101">8.2.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"><A HREF="bashref.html#SEC102">8.2.5 Searching for Commands in the History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Searching through previous lines.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="Readline Bare Essentials"></A>
+<HR SIZE="6">
+<A NAME="SEC98"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC97"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC99"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC97"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.2.1 Readline Bare Essentials </H3>
+<!--docid::SEC98::-->
+<P>
+
+In order to enter characters into the line, simply type them.  The typed
+character appears where the cursor was, and then the cursor moves one
+space to the right.  If you mistype a character, you can use your
+erase character to back up and delete the mistyped character.
+</P><P>
+
+Sometimes you may mistype a character, and
+not notice the error until you have typed several other characters.  In
+that case, you can type <KBD>C-b</KBD> to move the cursor to the left, and then
+correct your mistake.  Afterwards, you can move the cursor to the right
+with <KBD>C-f</KBD>.
+</P><P>
+
+When you add text in the middle of a line, you will notice that characters
+to the right of the cursor are `pushed over' to make room for the text
+that you have inserted.  Likewise, when you delete text behind the cursor,
+characters to the right of the cursor are `pulled back' to fill in the
+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><P>
+
+<DL COMPACT>
+<DT><KBD>C-b</KBD>
+<DD>Move back one character.
+<DT><KBD>C-f</KBD>
+<DD>Move forward one character.
+<DT><KBD>DEL</KBD> or <KBD>Backspace</KBD>
+<DD>Delete the character to the left of the cursor.
+<DT><KBD>C-d</KBD>
+<DD>Delete the character underneath the cursor.
+<DT>Printing characters
+<DD>Insert the character into the line at the cursor.
+<DT><KBD>C-_</KBD> or <KBD>C-x C-u</KBD>
+<DD>Undo the last editing command.  You can undo all the way back to an
+empty line.
+</DL>
+<P>
+
+(Depending on your configuration, the <KBD>Backspace</KBD> key be set to
+delete the character to the left of the cursor and the <KBD>DEL</KBD> 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><P>
+
+<A NAME="Readline Movement Commands"></A>
+<HR SIZE="6">
+<A NAME="SEC99"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC98"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC100"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC100"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC97"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.2.2 Readline Movement Commands </H3>
+<!--docid::SEC99::-->
+<P>
+
+The above table describes the most basic keystrokes that you need
+in order to do editing of the input line.  For your convenience, many
+other commands have been added in addition to <KBD>C-b</KBD>, <KBD>C-f</KBD>,
+<KBD>C-d</KBD>, and <KBD>DEL</KBD>.  Here are some commands for moving more rapidly
+about the line.
+</P><P>
+
+<DL COMPACT>
+<DT><KBD>C-a</KBD>
+<DD>Move to the start of the line.
+<DT><KBD>C-e</KBD>
+<DD>Move to the end of the line.
+<DT><KBD>M-f</KBD>
+<DD>Move forward a word, where a word is composed of letters and digits.
+<DT><KBD>M-b</KBD>
+<DD>Move backward a word.
+<DT><KBD>C-l</KBD>
+<DD>Clear the screen, reprinting the current line at the top.
+</DL>
+<P>
+
+Notice how <KBD>C-f</KBD> moves forward a character, while <KBD>M-f</KBD> moves
+forward a word.  It is a loose convention that control keystrokes
+operate on characters while meta keystrokes operate on words.
+</P><P>
+
+<A NAME="Readline Killing Commands"></A>
+<HR SIZE="6">
+<A NAME="SEC100"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC99"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC101"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC101"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC97"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.2.3 Readline Killing Commands </H3>
+<!--docid::SEC100::-->
+<P>
+
+<A NAME="IDX299"></A>
+<A NAME="IDX300"></A>
+</P><P>
+
+<EM>Killing</EM> text means to delete the text from the line, but to save
+it away for later use, usually by <EM>yanking</EM> (re-inserting)
+it back into the line.
+(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
+</P><P>
+
+If the description for a command says that it `kills' text, then you can
+be sure that you can get the text back in a different (or the same)
+place later.
+</P><P>
+
+When you use a kill command, the text is saved in a <EM>kill-ring</EM>.
+Any number of consecutive kills save all of the killed text together, so
+that when you yank it back, you get it all.  The kill
+ring is not line specific; the text that you killed on a previously
+typed line is available to be yanked back later, when you are typing
+another line.
+<A NAME="IDX301"></A>
+</P><P>
+
+Here is the list of commands for killing text.
+</P><P>
+
+<DL COMPACT>
+<DT><KBD>C-k</KBD>
+<DD>Kill the text from the current cursor position to the end of the line.
+<P>
+
+<DT><KBD>M-d</KBD>
+<DD>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>
+
+<DT><KBD>M-<KBD>DEL</KBD></KBD>
+<DD>Kill from the cursor the start of the current word, or, if between
+words, to the start of the previous word.
+Word boundaries are the same as those used by <KBD>M-b</KBD>.
+<P>
+
+<DT><KBD>C-w</KBD>
+<DD>Kill from the cursor to the previous whitespace.  This is different than
+<KBD>M-<KBD>DEL</KBD></KBD> because the word boundaries differ.
+<P>
+
+</DL>
+<P>
+
+Here is how to <EM>yank</EM> the text back into the line.  Yanking
+means to copy the most-recently-killed text from the kill buffer.
+</P><P>
+
+<DL COMPACT>
+<DT><KBD>C-y</KBD>
+<DD>Yank the most recently killed text back into the buffer at the cursor.
+<P>
+
+<DT><KBD>M-y</KBD>
+<DD>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>.
+</DL>
+<P>
+
+<A NAME="Readline Arguments"></A>
+<HR SIZE="6">
+<A NAME="SEC101"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC100"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC102"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC102"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC97"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.2.4 Readline Arguments </H3>
+<!--docid::SEC101::-->
+<P>
+
+You can pass numeric arguments to Readline commands.  Sometimes the
+argument acts as a repeat count, other times it is the <I>sign</I> of the
+argument that is significant.  If you pass a negative argument to a
+command which normally acts in a forward direction, that command will
+act in a backward direction.  For example, to kill text back to the
+start of the line, you might type <SAMP>`M-- C-k'</SAMP>.
+</P><P>
+
+The general way to pass numeric arguments to a command is to type meta
+digits before the command.  If the first `digit' typed is a minus
+sign (<SAMP>`-'</SAMP>), then the sign of the argument will be negative.  Once
+you have typed one meta digit to get the argument started, you can type
+the remainder of the digits, and then the command.  For example, to give
+the <KBD>C-d</KBD> command an argument of 10, you could type <SAMP>`M-1 0 C-d'</SAMP>,
+which will delete the next ten characters on the input line.
+</P><P>
+
+<A NAME="Searching"></A>
+<HR SIZE="6">
+<A NAME="SEC102"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC101"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC97"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.2.5 Searching for Commands in the History </H3>
+<!--docid::SEC102::-->
+<P>
+
+Readline provides commands for searching through the command history
+(see section <A HREF="bashref.html#SEC120">9.1 Bash History Facilities</A>)
+for lines containing a specified string.
+There are two search modes:  <EM>incremental</EM> and <EM>non-incremental</EM>.
+</P><P>
+
+Incremental searches begin before the user has finished typing the
+search string.
+As each character of the search string is typed, Readline displays
+the next entry from the history matching the string typed so far.
+An incremental search requires only as many characters as needed to
+find the desired history entry.
+To search backward in the history for a particular string, type
+<KBD>C-r</KBD>.  Typing <KBD>C-s</KBD> searches forward through the history.
+The characters present in the value of the <CODE>isearch-terminators</CODE> variable
+are used to terminate an incremental search.
+If that variable has not been assigned a value, the <KBD>ESC</KBD> and
+<KBD>C-J</KBD> characters will terminate an incremental search.
+<KBD>C-g</KBD> will abort an incremental search and restore the original line.
+When the search is terminated, the history entry containing the
+search string becomes the current line.
+</P><P>
+
+To find other matching entries in the history list, type <KBD>C-r</KBD> or
+<KBD>C-s</KBD> as appropriate.
+This will search backward or forward in the history for the next
+entry matching the search string typed so far.
+Any other key sequence bound to a Readline command will terminate
+the search and execute that command.
+For instance, a <KBD>RET</KBD> will terminate the search and accept
+the line, thereby executing the command from the history list.
+A movement command will terminate the search, make the last line found
+the current line, and begin editing.
+</P><P>
+
+Readline remembers the last incremental search string.  If two
+<KBD>C-r</KBD>s are typed without any intervening characters defining a new
+search string, any remembered search string is used.
+</P><P>
+
+Non-incremental searches read the entire search string before starting
+to search for matching history lines.  The search string may be
+typed by the user or be part of the contents of the current line.
+</P><P>
+
+<A NAME="Readline Init File"></A>
+<HR SIZE="6">
+<A NAME="SEC103"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC102"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC104"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.3 Readline Init File </H2>
+<!--docid::SEC103::-->
+<P>
+
+Although the Readline library comes with a set of Emacs-like
+keybindings installed by default, it is possible to use a different set
+of keybindings.
+Any user can customize programs that use Readline by putting
+commands in an <EM>inputrc</EM> file, conventionally in his 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 <TT>`~/.inputrc'</TT>.  If that
+file does not exist or cannot be read, the ultimate default is
+<TT>`/etc/inputrc'</TT>.
+</P><P>
+
+When a program which uses the Readline library starts up, the
+init file is read, and the key bindings are set.
+</P><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><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC104">8.3.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>
+</TABLE>
+
+<br>
+<TABLE BORDER=0 CELLSPACING=0>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC105">8.3.2 Conditional Init Constructs</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Conditional key bindings in the inputrc file.</TD></TR>
+</TABLE>
+
+<br>
+<TABLE BORDER=0 CELLSPACING=0>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC106">8.3.3 Sample Init File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example inputrc file.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="Readline Init File Syntax"></A>
+<HR SIZE="6">
+<A NAME="SEC104"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC105"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.3.1 Readline Init File Syntax </H3>
+<!--docid::SEC104::-->
+<P>
+
+There are only a few basic constructs allowed in the
+Readline init file.  Blank lines are ignored.
+Lines beginning with a <SAMP>`#'</SAMP> are comments.
+Lines beginning with a <SAMP>`$'</SAMP> indicate conditional
+constructs (see section <A HREF="bashref.html#SEC105">8.3.2 Conditional Init Constructs</A>).  Other lines
+denote variable settings and key bindings.
+</P><P>
+
+<DL COMPACT>
+<DT>Variable Settings
+<DD>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.
+The syntax is simple:
+<P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>set <VAR>variable</VAR> <VAR>value</VAR>
+</pre></td></tr></table></P><P>
+
+Here, for example, is how to
+change from the default Emacs-like key binding to use
+<CODE>vi</CODE> line editing commands:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>set editing-mode vi
+</pre></td></tr></table></P><P>
+
+Variable names and values, where appropriate, are recognized without regard
+to case.  Unrecognized variable names are ignored.
+</P><P>
+
+Boolean variables (those that can be set to on or off) are set to on if
+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 -V</CODE> command lists the current Readline variable names
+and values.  See section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>.
+</P><P>
+
+A great deal of run-time behavior is changeable with the following
+variables.
+</P><P>
+
+<A NAME="IDX302"></A>
+<DL COMPACT>
+
+<DT><CODE>bell-style</CODE>
+<DD><A NAME="IDX303"></A>
+Controls what happens when Readline wants to ring the terminal bell.
+If set to <SAMP>`none'</SAMP>, Readline never rings the bell.  If set to
+<SAMP>`visible'</SAMP>, Readline uses a visible bell if one is available.
+If set to <SAMP>`audible'</SAMP> (the default), Readline attempts to ring
+the terminal's bell.
+<P>
+
+<DT><CODE>bind-tty-special-chars</CODE>
+<DD><A NAME="IDX304"></A>
+If set to <SAMP>`on'</SAMP>, Readline attempts to bind the control characters  
+treated specially by the kernel's terminal driver to their Readline
+equivalents.
+<P>
+
+<DT><CODE>comment-begin</CODE>
+<DD><A NAME="IDX305"></A>
+The string to insert at the beginning of the line when the
+<CODE>insert-comment</CODE> command is executed.  The default value
+is <CODE>"#"</CODE>.
+<P>
+
+<DT><CODE>completion-ignore-case</CODE>
+<DD>If set to <SAMP>`on'</SAMP>, Readline performs filename matching and completion
+in a case-insensitive fashion.
+The default value is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>completion-prefix-display-length</CODE>
+<DD><A NAME="IDX306"></A>
+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>
+
+<DT><CODE>completion-query-items</CODE>
+<DD><A NAME="IDX307"></A>
+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 this value,
+Readline will ask the user whether or not he wishes to view
+them; otherwise, they are simply listed.
+This variable must be set to an integer value greater than or equal to 0.
+A negative value means Readline should never ask.
+The default limit is <CODE>100</CODE>.
+<P>
+
+<DT><CODE>convert-meta</CODE>
+<DD><A NAME="IDX308"></A>
+If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
+eighth bit set to an ASCII key sequence by stripping the eighth
+bit and prefixing an <KBD>ESC</KBD> character, converting them to a
+meta-prefixed key sequence.  The default value is <SAMP>`on'</SAMP>.
+<P>
+
+<DT><CODE>disable-completion</CODE>
+<DD><A NAME="IDX309"></A>
+If set to <SAMP>`On'</SAMP>, 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 <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>editing-mode</CODE>
+<DD><A NAME="IDX310"></A>
+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 <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
+<P>
+
+<DT><CODE>enable-keypad</CODE>
+<DD><A NAME="IDX311"></A>
+When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
+keypad when it is called.  Some systems need this to enable the
+arrow keys.  The default is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>expand-tilde</CODE>
+<DD><A NAME="IDX312"></A>
+If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
+attempts word completion.  The default is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>history-preserve-point</CODE>
+<DD><A NAME="IDX313"></A>
+If set to <SAMP>`on'</SAMP>, 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 <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>history-size</CODE>
+<DD><A NAME="IDX314"></A>
+Set the maximum number of history entries saved in the history list.  If
+set to zero, the number of entries in the history list is not limited.
+<P>
+
+<DT><CODE>horizontal-scroll-mode</CODE>
+<DD><A NAME="IDX315"></A>
+This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>.  Setting it
+to <SAMP>`on'</SAMP> 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.  By default,
+this variable is set to <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>input-meta</CODE>
+<DD><A NAME="IDX316"></A>
+<A NAME="IDX317"></A>
+If set to <SAMP>`on'</SAMP>, 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 <SAMP>`off'</SAMP>.  The name <CODE>meta-flag</CODE> is a
+synonym for this variable.
+<P>
+
+<DT><CODE>isearch-terminators</CODE>
+<DD><A NAME="IDX318"></A>
+The string of characters that should terminate an incremental search without
+subsequently executing the character as a command (see section <A HREF="bashref.html#SEC102">8.2.5 Searching for Commands in the History</A>).
+If this variable has not been given a value, the characters <KBD>ESC</KBD> and
+<KBD>C-J</KBD> will terminate an incremental search.
+<P>
+
+<DT><CODE>keymap</CODE>
+<DD><A NAME="IDX319"></A>
+Sets Readline's idea of the current keymap for key binding commands.
+Acceptable <CODE>keymap</CODE> names are
+<CODE>emacs</CODE>,
+<CODE>emacs-standard</CODE>,
+<CODE>emacs-meta</CODE>,
+<CODE>emacs-ctlx</CODE>,
+<CODE>vi</CODE>,
+<CODE>vi-move</CODE>,
+<CODE>vi-command</CODE>, and
+<CODE>vi-insert</CODE>.
+<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>; <CODE>emacs</CODE> is
+equivalent to <CODE>emacs-standard</CODE>.  The default value is <CODE>emacs</CODE>.
+The value of the <CODE>editing-mode</CODE> variable also affects the
+default keymap.
+<P>
+
+<DT><CODE>mark-directories</CODE>
+<DD>If set to <SAMP>`on'</SAMP>, completed directory names have a slash
+appended.  The default is <SAMP>`on'</SAMP>.
+<P>
+
+<DT><CODE>mark-modified-lines</CODE>
+<DD><A NAME="IDX320"></A>
+This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
+asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
+This variable is <SAMP>`off'</SAMP> by default.
+<P>
+
+<DT><CODE>mark-symlinked-directories</CODE>
+<DD><A NAME="IDX321"></A>
+If set to <SAMP>`on'</SAMP>, completed names which are symbolic links
+to directories have a slash appended (subject to the value of
+<CODE>mark-directories</CODE>).
+The default is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>match-hidden-files</CODE>
+<DD><A NAME="IDX322"></A>
+This variable, when set to <SAMP>`on'</SAMP>, causes Readline to match files whose
+names begin with a <SAMP>`.'</SAMP> (hidden files) when performing filename
+completion, unless the leading <SAMP>`.'</SAMP> is
+supplied by the user in the filename to be completed.
+This variable is <SAMP>`on'</SAMP> by default.
+<P>
+
+<DT><CODE>output-meta</CODE>
+<DD><A NAME="IDX323"></A>
+If set to <SAMP>`on'</SAMP>, Readline will display characters with the
+eighth bit set directly rather than as a meta-prefixed escape
+sequence.  The default is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>page-completions</CODE>
+<DD><A NAME="IDX324"></A>
+If set to <SAMP>`on'</SAMP>, Readline uses an internal <CODE>more</CODE>-like pager
+to display a screenful of possible completions at a time.
+This variable is <SAMP>`on'</SAMP> by default.
+<P>
+
+<DT><CODE>print-completions-horizontally</CODE>
+<DD>If set to <SAMP>`on'</SAMP>, Readline will display completions with matches
+sorted horizontally in alphabetical order, rather than down the screen.
+The default is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>revert-all-at-newline</CODE>
+<DD><A NAME="IDX325"></A>
+If set to <SAMP>`on'</SAMP>, 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 <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>show-all-if-ambiguous</CODE>
+<DD><A NAME="IDX326"></A>
+This alters the default behavior of the completion functions.  If
+set to <SAMP>`on'</SAMP>, 
+words which have more than one possible completion cause the
+matches to be listed immediately instead of ringing the bell.
+The default value is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>show-all-if-unmodified</CODE>
+<DD><A NAME="IDX327"></A>
+This alters the default behavior of the completion functions in
+a fashion similar to <VAR>show-all-if-ambiguous</VAR>.
+If set to <SAMP>`on'</SAMP>, 
+words which have more than one possible completion without any
+possible partial completion (the possible completions don't share
+a common prefix) cause the matches to be listed immediately instead
+of ringing the bell.
+The default value is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>visible-stats</CODE>
+<DD><A NAME="IDX328"></A>
+If set to <SAMP>`on'</SAMP>, a character denoting a file's type
+is appended to the filename when listing possible
+completions.  The default is <SAMP>`off'</SAMP>.
+<P>
+
+</DL>
+<P>
+
+<DT>Key Bindings
+<DD>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
+name, the default keybinding, if any, and a short description of what
+the command does.
+<P>
+
+Once you know the name of the command, simply place on a line
+in the init file the name of the key
+you wish to bind the command to, a colon, and then the name of the
+command.
+There can be no space between the key name and the colon -- that will be
+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
+to a string that is inserted when the key is pressed (a <VAR>macro</VAR>).
+</P><P>
+
+The <CODE>bind -p</CODE> command displays Readline function names and
+bindings in a format that can put directly into an initialization file.
+See section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>.
+</P><P>
+
+<DL COMPACT>
+<DT><VAR>keyname</VAR>: <VAR>function-name</VAR> or <VAR>macro</VAR>
+<DD><VAR>keyname</VAR> is the name of a key spelled out in English.  For example:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>Control-u: universal-argument
+Meta-Rubout: backward-kill-word
+Control-o: "&#62; output"
+</pre></td></tr></table><P>
+
+In the above example, <KBD>C-u</KBD> is bound to the function
+<CODE>universal-argument</CODE>,
+<KBD>M-DEL</KBD> is bound to the function <CODE>backward-kill-word</CODE>, and
+<KBD>C-o</KBD> is bound to run the macro
+expressed on the right hand side (that is, to insert the text
+<SAMP>`&#62; output'</SAMP> into the line).
+</P><P>
+
+A number of symbolic character names are recognized while
+processing this key binding syntax:
+<VAR>DEL</VAR>,
+<VAR>ESC</VAR>,
+<VAR>ESCAPE</VAR>,
+<VAR>LFD</VAR>,
+<VAR>NEWLINE</VAR>,
+<VAR>RET</VAR>,
+<VAR>RETURN</VAR>,
+<VAR>RUBOUT</VAR>,
+<VAR>SPACE</VAR>,
+<VAR>SPC</VAR>,
+and
+<VAR>TAB</VAR>.
+</P><P>
+
+<DT>"<VAR>keyseq</VAR>": <VAR>function-name</VAR> or <VAR>macro</VAR>
+<DD><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 GNU Emacs style key
+escapes can be used, as in the following example, but the
+special character names are not recognized.
+<P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>"\C-u": universal-argument
+"\C-x\C-r": re-read-init-file
+"\e[11~": "Function Key 1"
+</pre></td></tr></table></P><P>
+
+In the above example, <KBD>C-u</KBD> is again bound to the function
+<CODE>universal-argument</CODE> (just as it was in the first example),
+<SAMP>`<KBD>C-x</KBD> <KBD>C-r</KBD>'</SAMP> is bound to the function <CODE>re-read-init-file</CODE>,
+and <SAMP>`<KBD>ESC</KBD> <KBD>[</KBD> <KBD>1</KBD> <KBD>1</KBD> <KBD>~</KBD>'</SAMP> is bound to insert
+the text <SAMP>`Function Key 1'</SAMP>.
+</P><P>
+
+</DL>
+<P>
+
+The following GNU Emacs style escape sequences are available when
+specifying key sequences:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE><KBD>\C-</KBD></CODE>
+<DD>control prefix
+<DT><CODE><KBD>\M-</KBD></CODE>
+<DD>meta prefix
+<DT><CODE><KBD>\e</KBD></CODE>
+<DD>an escape character
+<DT><CODE><KBD>\\</KBD></CODE>
+<DD>backslash
+<DT><CODE><KBD>\"</KBD></CODE>
+<DD><KBD>"</KBD>, a double quotation mark
+<DT><CODE><KBD>\'</KBD></CODE>
+<DD><KBD>'</KBD>, a single quote or apostrophe
+</DL>
+<P>
+
+In addition to the GNU Emacs style escape sequences, a second
+set of backslash escapes is available:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>\a</CODE>
+<DD>alert (bell)
+<DT><CODE>\b</CODE>
+<DD>backspace
+<DT><CODE>\d</CODE>
+<DD>delete
+<DT><CODE>\f</CODE>
+<DD>form feed
+<DT><CODE>\n</CODE>
+<DD>newline
+<DT><CODE>\r</CODE>
+<DD>carriage return
+<DT><CODE>\t</CODE>
+<DD>horizontal tab
+<DT><CODE>\v</CODE>
+<DD>vertical tab
+<DT><CODE>\<VAR>nnn</VAR></CODE>
+<DD>the eight-bit character whose value is the octal value <VAR>nnn</VAR>
+(one to three digits)
+<DT><CODE>\x<VAR>HH</VAR></CODE>
+<DD>the eight-bit character whose value is the hexadecimal value <VAR>HH</VAR>
+(one or two hex digits)
+</DL>
+<P>
+
+When entering the text of a macro, single or double quotes must
+be used to indicate a macro definition.
+Unquoted text is assumed to be a function name.
+In the macro body, the backslash escapes described above are expanded.
+Backslash will quote any other character in the macro text,
+including <SAMP>`"'</SAMP> and <SAMP>`''</SAMP>.
+For example, the following binding will make <SAMP>`<KBD>C-x</KBD> \'</SAMP>
+insert a single <SAMP>`\'</SAMP> into the line:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>"\C-x\\": "\\"
+</pre></td></tr></table></P><P>
+
+</DL>
+<P>
+
+<A NAME="Conditional Init Constructs"></A>
+<HR SIZE="6">
+<A NAME="SEC105"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC104"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC106"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC106"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.3.2 Conditional Init Constructs </H3>
+<!--docid::SEC105::-->
+<P>
+
+Readline implements a facility similar in spirit to the conditional
+compilation features of the C preprocessor which allows key
+bindings and variable settings to be performed as the result
+of tests.  There are four parser directives used.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>$if</CODE>
+<DD>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 extends to the end of the line;
+no characters are required to isolate it.
+<P>
+
+<DL COMPACT>
+<DT><CODE>mode</CODE>
+<DD>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
+with the <SAMP>`set keymap'</SAMP> command, for instance, to set bindings in
+the <CODE>emacs-standard</CODE> and <CODE>emacs-ctlx</CODE> keymaps only if
+Readline is starting out in <CODE>emacs</CODE> mode.
+<P>
+
+<DT><CODE>term</CODE>
+<DD>The <CODE>term=</CODE> form may be used to include terminal-specific
+key bindings, perhaps to bind the key sequences output by the
+terminal's function keys.  The word on the right side of the
+<SAMP>`='</SAMP> is tested against both the full name of the terminal and
+the portion of the terminal name before the first <SAMP>`-'</SAMP>.  This
+allows <CODE>sun</CODE> to match both <CODE>sun</CODE> and <CODE>sun-cmd</CODE>,
+for instance.
+<P>
+
+<DT><CODE>application</CODE>
+<DD>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
+a particular value. 
+This could be used to bind key sequences to functions useful for
+a specific program.  For instance, the following command adds a
+key sequence that quotes the current or previous word in Bash:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>$if Bash
+# Quote the current or previous word
+"\C-xq": "\eb\"\ef\""
+$endif
+</pre></td></tr></table></DL>
+<P>
+
+<DT><CODE>$endif</CODE>
+<DD>This command, as seen in the previous example, terminates an
+<CODE>$if</CODE> command.
+<P>
+
+<DT><CODE>$else</CODE>
+<DD>Commands in this branch of the <CODE>$if</CODE> directive are executed if
+the test fails.
+<P>
+
+<DT><CODE>$include</CODE>
+<DD>This directive takes a single filename as an argument and reads commands
+and bindings from that file.
+For example, the following directive reads from <TT>`/etc/inputrc'</TT>:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>$include /etc/inputrc
+</pre></td></tr></table></DL>
+<P>
+
+<A NAME="Sample Init File"></A>
+<HR SIZE="6">
+<A NAME="SEC106"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC105"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC103"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.3.3 Sample Init File </H3>
+<!--docid::SEC106::-->
+<P>
+
+Here is an example of an <VAR>inputrc</VAR> file.  This illustrates key
+binding, variable assignment, and conditional syntax.
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre># This file controls the behaviour of line input editing for
+# programs that use the GNU Readline library.  Existing
+# programs include FTP, Bash, and GDB.
+#
+# You can re-read the inputrc file with C-x C-r.
+# Lines beginning with '#' are comments.
+#
+# First, include any systemwide bindings and variable
+# assignments from /etc/Inputrc
+$include /etc/Inputrc
+
+#
+# Set various bindings for emacs mode.
+
+set editing-mode emacs 
+
+$if mode=emacs
+
+Meta-Control-h:        backward-kill-word      Text after the function name is ignored
+
+#
+# Arrow keys in keypad mode
+#
+#"\M-OD":        backward-char
+#"\M-OC":        forward-char
+#"\M-OA":        previous-history
+#"\M-OB":        next-history
+#
+# Arrow keys in ANSI mode
+#
+"\M-[D":        backward-char
+"\M-[C":        forward-char
+"\M-[A":        previous-history
+"\M-[B":        next-history
+#
+# Arrow keys in 8 bit keypad mode
+#
+#"\M-\C-OD":       backward-char
+#"\M-\C-OC":       forward-char
+#"\M-\C-OA":       previous-history
+#"\M-\C-OB":       next-history
+#
+# Arrow keys in 8 bit ANSI mode
+#
+#"\M-\C-[D":       backward-char
+#"\M-\C-[C":       forward-char
+#"\M-\C-[A":       previous-history
+#"\M-\C-[B":       next-history
+
+C-q: quoted-insert
+
+$endif
+
+# An old-style binding.  This happens to be the default.
+TAB: complete
+
+# Macros that are convenient for shell interaction
+$if Bash
+# edit the path
+"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
+# prepare to type a quoted word --
+# insert open and close double quotes
+# and move to just after the open quote
+"\C-x\"": "\"\"\C-b"
+# insert a backslash (testing backslash escapes
+# in sequences and macros)
+"\C-x\\": "\\"
+# Quote the current or previous word
+"\C-xq": "\eb\"\ef\""
+# Add a binding to refresh the line, which is unbound
+"\C-xr": redraw-current-line
+# Edit variable on current line.
+"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
+$endif
+
+# use a visible bell if one is available
+set bell-style visible
+
+# don't strip characters to 7 bits when reading
+set input-meta on
+
+# allow iso-latin1 characters to be inserted rather
+# than converted to prefix-meta sequences
+set convert-meta off
+
+# display characters with the eighth bit set directly
+# rather than as meta-prefixed characters
+set output-meta on
+
+# if there are more than 150 possible completions for
+# a word, ask the user if he wants to see all of them
+set completion-query-items 150
+
+# For FTP
+$if Ftp
+"\C-xg": "get \M-?"
+"\C-xt": "put \M-?"
+"\M-.": yank-last-arg
+$endif
+</pre></td></tr></table></P><P>
+
+<A NAME="Bindable Readline Commands"></A>
+<HR SIZE="6">
+<A NAME="SEC107"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC106"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC108"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.4 Bindable Readline Commands </H2>
+<!--docid::SEC107::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC108">8.4.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"><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Getting at previous lines.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Commands for changing text.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Commands for killing and yanking.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC112">8.4.5 Specifying 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"><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</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"><A HREF="bashref.html#SEC114">8.4.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"><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Other miscellaneous commands.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+This section describes Readline commands that may be bound to key
+sequences.
+You can list your key bindings by executing
+<CODE>bind -P</CODE> or, for a more terse format, suitable for an
+<VAR>inputrc</VAR> file, <CODE>bind -p</CODE>.  (See section <A HREF="bashref.html#SEC60">4.2 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
+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><P>
+
+<A NAME="Commands For Moving"></A>
+<HR SIZE="6">
+<A NAME="SEC108"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC109"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.1 Commands For Moving </H3>
+<!--docid::SEC108::-->
+<DL COMPACT>
+<A NAME="IDX329"></A>
+<DT><CODE>beginning-of-line (C-a)</CODE>
+<DD><A NAME="IDX330"></A>
+Move to the start of the current line.
+<P>
+
+<A NAME="IDX331"></A>
+<DT><CODE>end-of-line (C-e)</CODE>
+<DD><A NAME="IDX332"></A>
+Move to the end of the line.
+<P>
+
+<A NAME="IDX333"></A>
+<DT><CODE>forward-char (C-f)</CODE>
+<DD><A NAME="IDX334"></A>
+Move forward a character.
+<P>
+
+<A NAME="IDX335"></A>
+<DT><CODE>backward-char (C-b)</CODE>
+<DD><A NAME="IDX336"></A>
+Move back a character.
+<P>
+
+<A NAME="IDX337"></A>
+<DT><CODE>forward-word (M-f)</CODE>
+<DD><A NAME="IDX338"></A>
+Move forward to the end of the next word.
+Words are composed of letters and digits.
+<P>
+
+<A NAME="IDX339"></A>
+<DT><CODE>backward-word (M-b)</CODE>
+<DD><A NAME="IDX340"></A>
+Move back to the start of the current or previous word.
+Words are composed of letters and digits.
+<P>
+
+<A NAME="IDX341"></A>
+<DT><CODE>shell-forward-word ()</CODE>
+<DD><A NAME="IDX342"></A>
+Move forward to the end of the next word.
+Words are delimited by non-quoted shell metacharacters.
+<P>
+
+<A NAME="IDX343"></A>
+<DT><CODE>shell-backward-word ()</CODE>
+<DD><A NAME="IDX344"></A>
+Move back to the start of the current or previous word.
+Words are delimited by non-quoted shell metacharacters.
+<P>
+
+<A NAME="IDX345"></A>
+<DT><CODE>clear-screen (C-l)</CODE>
+<DD><A NAME="IDX346"></A>
+Clear the screen and redraw the current line,
+leaving the current line at the top of the screen.
+<P>
+
+<A NAME="IDX347"></A>
+<DT><CODE>redraw-current-line ()</CODE>
+<DD><A NAME="IDX348"></A>
+Refresh the current line.  By default, this is unbound.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Commands For History"></A>
+<HR SIZE="6">
+<A NAME="SEC109"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC108"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC110"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC110"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.2 Commands For Manipulating The History </H3>
+<!--docid::SEC109::-->
+<P>
+
+<DL COMPACT>
+<A NAME="IDX349"></A>
+<DT><CODE>accept-line (Newline or Return)</CODE>
+<DD><A NAME="IDX350"></A>
+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
+the <CODE>HISTCONTROL</CODE> and <CODE>HISTIGNORE</CODE> variables.
+If this line is a modified history line, then restore the history line
+to its original state.
+<P>
+
+<A NAME="IDX351"></A>
+<DT><CODE>previous-history (C-p)</CODE>
+<DD><A NAME="IDX352"></A>
+Move `back' through the history list, fetching the previous command.
+<P>
+
+<A NAME="IDX353"></A>
+<DT><CODE>next-history (C-n)</CODE>
+<DD><A NAME="IDX354"></A>
+Move `forward' through the history list, fetching the next command.
+<P>
+
+<A NAME="IDX355"></A>
+<DT><CODE>beginning-of-history (M-&#60;)</CODE>
+<DD><A NAME="IDX356"></A>
+Move to the first line in the history.
+<P>
+
+<A NAME="IDX357"></A>
+<DT><CODE>end-of-history (M-&#62;)</CODE>
+<DD><A NAME="IDX358"></A>
+Move to the end of the input history, i.e., the line currently
+being entered.
+<P>
+
+<A NAME="IDX359"></A>
+<DT><CODE>reverse-search-history (C-r)</CODE>
+<DD><A NAME="IDX360"></A>
+Search backward starting at the current line and moving `up' through
+the history as necessary.  This is an incremental search.
+<P>
+
+<A NAME="IDX361"></A>
+<DT><CODE>forward-search-history (C-s)</CODE>
+<DD><A NAME="IDX362"></A>
+Search forward starting at the current line and moving `down' through
+the the history as necessary.  This is an incremental search.
+<P>
+
+<A NAME="IDX363"></A>
+<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
+<DD><A NAME="IDX364"></A>
+Search backward starting at the current line and moving `up'
+through the history as necessary using a non-incremental search
+for a string supplied by the user.
+<P>
+
+<A NAME="IDX365"></A>
+<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
+<DD><A NAME="IDX366"></A>
+Search forward starting at the current line and moving `down'
+through the the history as necessary using a non-incremental search
+for a string supplied by the user.
+<P>
+
+<A NAME="IDX367"></A>
+<DT><CODE>history-search-forward ()</CODE>
+<DD><A NAME="IDX368"></A>
+Search forward through the history for the string of characters
+between the start of the current line and the point.
+This is a non-incremental search.
+By default, this command is unbound.
+<P>
+
+<A NAME="IDX369"></A>
+<DT><CODE>history-search-backward ()</CODE>
+<DD><A NAME="IDX370"></A>
+Search backward through the history for the string of characters
+between the start of the current line and the point.  This
+is a non-incremental search.  By default, this command is unbound.
+<P>
+
+<A NAME="IDX371"></A>
+<DT><CODE>yank-nth-arg (M-C-y)</CODE>
+<DD><A NAME="IDX372"></A>
+Insert the first argument to the previous command (usually
+the second word on the previous line) at point.
+With an argument <VAR>n</VAR>,
+insert the <VAR>n</VAR>th word from the previous command (the words
+in the previous command begin with word 0).  A negative argument
+inserts the <VAR>n</VAR>th word from the end of the previous command.
+Once the argument <VAR>n</VAR> is computed, the argument is extracted
+as if the <SAMP>`!<VAR>n</VAR>'</SAMP> history expansion had been specified.
+<P>
+
+<A NAME="IDX373"></A>
+<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
+<DD><A NAME="IDX374"></A>
+Insert last argument to the previous command (the last word of the
+previous history entry).  With an
+argument, behave exactly like <CODE>yank-nth-arg</CODE>.
+Successive calls to <CODE>yank-last-arg</CODE> move back through the history
+list, inserting the last argument of each line in turn.
+The history expansion facilities are used to extract the last argument,
+as if the <SAMP>`!$'</SAMP> history expansion had been specified.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Commands For Text"></A>
+<HR SIZE="6">
+<A NAME="SEC110"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC109"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC111"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC111"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.3 Commands For Changing Text </H3>
+<!--docid::SEC110::-->
+<P>
+
+<DL COMPACT>
+<A NAME="IDX375"></A>
+<DT><CODE>delete-char (C-d)</CODE>
+<DD><A NAME="IDX376"></A>
+Delete the character at point.  If point is at the
+beginning of the line, there are no characters in the line, and
+the last character typed was not bound to <CODE>delete-char</CODE>, then
+return EOF.
+<P>
+
+<A NAME="IDX377"></A>
+<DT><CODE>backward-delete-char (Rubout)</CODE>
+<DD><A NAME="IDX378"></A>
+Delete the character behind the cursor.  A numeric argument means
+to kill the characters instead of deleting them.
+<P>
+
+<A NAME="IDX379"></A>
+<DT><CODE>forward-backward-delete-char ()</CODE>
+<DD><A NAME="IDX380"></A>
+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>
+
+<A NAME="IDX381"></A>
+<DT><CODE>quoted-insert (C-q or C-v)</CODE>
+<DD><A NAME="IDX382"></A>
+Add the next character typed to the line verbatim.  This is
+how to insert key sequences like <KBD>C-q</KBD>, for example.
+<P>
+
+<A NAME="IDX383"></A>
+<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
+<DD><A NAME="IDX384"></A>
+Insert yourself.
+<P>
+
+<A NAME="IDX385"></A>
+<DT><CODE>transpose-chars (C-t)</CODE>
+<DD><A NAME="IDX386"></A>
+Drag the character before the cursor forward over
+the character at the cursor, moving the
+cursor forward as well.  If the insertion point
+is at the end of the line, then this
+transposes the last two characters of the line.
+Negative arguments have no effect.
+<P>
+
+<A NAME="IDX387"></A>
+<DT><CODE>transpose-words (M-t)</CODE>
+<DD><A NAME="IDX388"></A>
+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>
+
+<A NAME="IDX389"></A>
+<DT><CODE>upcase-word (M-u)</CODE>
+<DD><A NAME="IDX390"></A>
+Uppercase the current (or following) word.  With a negative argument,
+uppercase the previous word, but do not move the cursor.
+<P>
+
+<A NAME="IDX391"></A>
+<DT><CODE>downcase-word (M-l)</CODE>
+<DD><A NAME="IDX392"></A>
+Lowercase the current (or following) word.  With a negative argument,
+lowercase the previous word, but do not move the cursor.
+<P>
+
+<A NAME="IDX393"></A>
+<DT><CODE>capitalize-word (M-c)</CODE>
+<DD><A NAME="IDX394"></A>
+Capitalize the current (or following) word.  With a negative argument,
+capitalize the previous word, but do not move the cursor.
+<P>
+
+<A NAME="IDX395"></A>
+<DT><CODE>overwrite-mode ()</CODE>
+<DD><A NAME="IDX396"></A>
+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
+<CODE>emacs</CODE> mode; <CODE>vi</CODE> mode does overwrite differently.
+Each call to <CODE>readline()</CODE> starts in insert mode.
+<P>
+
+In overwrite mode, characters bound to <CODE>self-insert</CODE> replace
+the text at point rather than pushing the text to the right.
+Characters bound to <CODE>backward-delete-char</CODE> replace the character
+before point with a space.
+</P><P>
+
+By default, this command is unbound.
+</P><P>
+
+</DL>
+<P>
+
+<A NAME="Commands For Killing"></A>
+<HR SIZE="6">
+<A NAME="SEC111"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC110"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC112"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC112"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.4 Killing And Yanking </H3>
+<!--docid::SEC111::-->
+<P>
+
+<DL COMPACT>
+
+<A NAME="IDX397"></A>
+<DT><CODE>kill-line (C-k)</CODE>
+<DD><A NAME="IDX398"></A>
+Kill the text from point to the end of the line.
+<P>
+
+<A NAME="IDX399"></A>
+<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
+<DD><A NAME="IDX400"></A>
+Kill backward to the beginning of the line.
+<P>
+
+<A NAME="IDX401"></A>
+<DT><CODE>unix-line-discard (C-u)</CODE>
+<DD><A NAME="IDX402"></A>
+Kill backward from the cursor to the beginning of the current line.
+<P>
+
+<A NAME="IDX403"></A>
+<DT><CODE>kill-whole-line ()</CODE>
+<DD><A NAME="IDX404"></A>
+Kill all characters on the current line, no matter where point is.
+By default, this is unbound.
+<P>
+
+<A NAME="IDX405"></A>
+<DT><CODE>kill-word (M-d)</CODE>
+<DD><A NAME="IDX406"></A>
+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>
+
+<A NAME="IDX407"></A>
+<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
+<DD><A NAME="IDX408"></A>
+Kill the word behind point.
+Word boundaries are the same as <CODE>backward-word</CODE>.
+<P>
+
+<A NAME="IDX409"></A>
+<DT><CODE>shell-kill-word ()</CODE>
+<DD><A NAME="IDX410"></A>
+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>
+
+<A NAME="IDX411"></A>
+<DT><CODE>backward-kill-word ()</CODE>
+<DD><A NAME="IDX412"></A>
+Kill the word behind point.
+Word boundaries are the same as <CODE>shell-backward-word</CODE>.
+<P>
+
+<A NAME="IDX413"></A>
+<DT><CODE>unix-word-rubout (C-w)</CODE>
+<DD><A NAME="IDX414"></A>
+Kill the word behind point, using white space as a word boundary.
+The killed text is saved on the kill-ring.
+<P>
+
+<A NAME="IDX415"></A>
+<DT><CODE>unix-filename-rubout ()</CODE>
+<DD><A NAME="IDX416"></A>
+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>
+
+<A NAME="IDX417"></A>
+<DT><CODE>delete-horizontal-space ()</CODE>
+<DD><A NAME="IDX418"></A>
+Delete all spaces and tabs around point.  By default, this is unbound.
+<P>
+
+<A NAME="IDX419"></A>
+<DT><CODE>kill-region ()</CODE>
+<DD><A NAME="IDX420"></A>
+Kill the text in the current region.
+By default, this command is unbound.
+<P>
+
+<A NAME="IDX421"></A>
+<DT><CODE>copy-region-as-kill ()</CODE>
+<DD><A NAME="IDX422"></A>
+Copy the text in the region to the kill buffer, so it can be yanked
+right away.  By default, this command is unbound.
+<P>
+
+<A NAME="IDX423"></A>
+<DT><CODE>copy-backward-word ()</CODE>
+<DD><A NAME="IDX424"></A>
+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>
+
+<A NAME="IDX425"></A>
+<DT><CODE>copy-forward-word ()</CODE>
+<DD><A NAME="IDX426"></A>
+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>
+
+<A NAME="IDX427"></A>
+<DT><CODE>yank (C-y)</CODE>
+<DD><A NAME="IDX428"></A>
+Yank the top of the kill ring into the buffer at point.
+<P>
+
+<A NAME="IDX429"></A>
+<DT><CODE>yank-pop (M-y)</CODE>
+<DD><A NAME="IDX430"></A>
+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>.
+</DL>
+<P>
+
+<A NAME="Numeric Arguments"></A>
+<HR SIZE="6">
+<A NAME="SEC112"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC111"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC113"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC113"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.5 Specifying Numeric Arguments </H3>
+<!--docid::SEC112::-->
+<DL COMPACT>
+
+<A NAME="IDX431"></A>
+<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
+<DD><A NAME="IDX432"></A>
+Add this digit to the argument already accumulating, or start a new
+argument.  <KBD>M--</KBD> starts a negative argument.
+<P>
+
+<A NAME="IDX433"></A>
+<DT><CODE>universal-argument ()</CODE>
+<DD><A NAME="IDX434"></A>
+This is another way to specify an argument.
+If this command is followed by one or more digits, optionally with a
+leading minus sign, those digits define the argument.
+If the command is followed by digits, executing <CODE>universal-argument</CODE>
+again ends the numeric argument, but is otherwise ignored.
+As a special case, if this command is immediately followed by a
+character that is neither a digit or minus sign, the argument count
+for the next command is multiplied by four.
+The argument count is initially one, so executing this function the
+first time makes the argument count four, a second time makes the
+argument count sixteen, and so on.
+By default, this is not bound to a key.
+</DL>
+<P>
+
+<A NAME="Commands For Completion"></A>
+<HR SIZE="6">
+<A NAME="SEC113"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC112"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC114"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC114"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.6 Letting Readline Type For You </H3>
+<!--docid::SEC113::-->
+<P>
+
+<DL COMPACT>
+<A NAME="IDX435"></A>
+<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
+<DD><A NAME="IDX436"></A>
+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
+text begins with <SAMP>`$'</SAMP>), username (if the text begins with
+<SAMP>`~'</SAMP>), hostname (if the text begins with <SAMP>`@'</SAMP>), or
+command (including aliases and functions) in turn.  If none 
+of these produces a match, filename completion is attempted.
+<P>
+
+<A NAME="IDX437"></A>
+<DT><CODE>possible-completions (M-?)</CODE>
+<DD><A NAME="IDX438"></A>
+List the possible completions of the text before point.
+<P>
+
+<A NAME="IDX439"></A>
+<DT><CODE>insert-completions (M-*)</CODE>
+<DD><A NAME="IDX440"></A>
+Insert all completions of the text before point that would have
+been generated by <CODE>possible-completions</CODE>.
+<P>
+
+<A NAME="IDX441"></A>
+<DT><CODE>menu-complete ()</CODE>
+<DD><A NAME="IDX442"></A>
+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
+of possible completions, inserting each match in turn.
+At the end of the list of completions, the bell is rung
+(subject to the setting of <CODE>bell-style</CODE>)
+and the original text is restored.
+An argument of <VAR>n</VAR> moves <VAR>n</VAR> positions forward in the list
+of matches; a negative argument may be used to move backward
+through the list.
+This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
+by default.
+<P>
+
+<A NAME="IDX443"></A>
+<DT><CODE>delete-char-or-list ()</CODE>
+<DD><A NAME="IDX444"></A>
+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
+<CODE>possible-completions</CODE>.
+This command is unbound by default.
+<P>
+
+<A NAME="IDX445"></A>
+<DT><CODE>complete-filename (M-/)</CODE>
+<DD><A NAME="IDX446"></A>
+Attempt filename completion on the text before point.
+<P>
+
+<A NAME="IDX447"></A>
+<DT><CODE>possible-filename-completions (C-x /)</CODE>
+<DD><A NAME="IDX448"></A>
+List the possible completions of the text before point,
+treating it as a filename.
+<P>
+
+<A NAME="IDX449"></A>
+<DT><CODE>complete-username (M-~)</CODE>
+<DD><A NAME="IDX450"></A>
+Attempt completion on the text before point, treating
+it as a username.
+<P>
+
+<A NAME="IDX451"></A>
+<DT><CODE>possible-username-completions (C-x ~)</CODE>
+<DD><A NAME="IDX452"></A>
+List the possible completions of the text before point,
+treating it as a username.
+<P>
+
+<A NAME="IDX453"></A>
+<DT><CODE>complete-variable (M-$)</CODE>
+<DD><A NAME="IDX454"></A>
+Attempt completion on the text before point, treating
+it as a shell variable.
+<P>
+
+<A NAME="IDX455"></A>
+<DT><CODE>possible-variable-completions (C-x $)</CODE>
+<DD><A NAME="IDX456"></A>
+List the possible completions of the text before point,
+treating it as a shell variable.
+<P>
+
+<A NAME="IDX457"></A>
+<DT><CODE>complete-hostname (M-@)</CODE>
+<DD><A NAME="IDX458"></A>
+Attempt completion on the text before point, treating
+it as a hostname.
+<P>
+
+<A NAME="IDX459"></A>
+<DT><CODE>possible-hostname-completions (C-x @)</CODE>
+<DD><A NAME="IDX460"></A>
+List the possible completions of the text before point,
+treating it as a hostname.
+<P>
+
+<A NAME="IDX461"></A>
+<DT><CODE>complete-command (M-!)</CODE>
+<DD><A NAME="IDX462"></A>
+Attempt completion on the text before point, treating
+it as a command name.  Command completion attempts to
+match the text against aliases, reserved words, shell
+functions, shell builtins, and finally executable filenames,
+in that order.
+<P>
+
+<A NAME="IDX463"></A>
+<DT><CODE>possible-command-completions (C-x !)</CODE>
+<DD><A NAME="IDX464"></A>
+List the possible completions of the text before point,
+treating it as a command name.
+<P>
+
+<A NAME="IDX465"></A>
+<DT><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE>
+<DD><A NAME="IDX466"></A>
+Attempt completion on the text before point, comparing
+the text against lines from the history list for possible
+completion matches.
+<P>
+
+<A NAME="IDX467"></A>
+<DT><CODE>dabbrev-expand ()</CODE>
+<DD><A NAME="IDX468"></A>
+Attempt menu completion on the text before point, comparing
+the text against lines from the history list for possible
+completion matches.
+<P>
+
+<A NAME="IDX469"></A>
+<DT><CODE>complete-into-braces (M-{)</CODE>
+<DD><A NAME="IDX470"></A>
+Perform filename completion and insert the list of possible completions
+enclosed within braces so the list is available to the shell
+(see section <A HREF="bashref.html#SEC29">3.5.1 Brace Expansion</A>).
+<P>
+
+</DL>
+<P>
+
+<A NAME="Keyboard Macros"></A>
+<HR SIZE="6">
+<A NAME="SEC114"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC113"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC115"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC115"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.7 Keyboard Macros </H3>
+<!--docid::SEC114::-->
+<DL COMPACT>
+
+<A NAME="IDX471"></A>
+<DT><CODE>start-kbd-macro (C-x ()</CODE>
+<DD><A NAME="IDX472"></A>
+Begin saving the characters typed into the current keyboard macro.
+<P>
+
+<A NAME="IDX473"></A>
+<DT><CODE>end-kbd-macro (C-x ))</CODE>
+<DD><A NAME="IDX474"></A>
+Stop saving the characters typed into the current keyboard macro
+and save the definition.
+<P>
+
+<A NAME="IDX475"></A>
+<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
+<DD><A NAME="IDX476"></A>
+Re-execute the last keyboard macro defined, by making the characters
+in the macro appear as if typed at the keyboard.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Miscellaneous Commands"></A>
+<HR SIZE="6">
+<A NAME="SEC115"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC114"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC107"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 8.4.8 Some Miscellaneous Commands </H3>
+<!--docid::SEC115::-->
+<DL COMPACT>
+
+<A NAME="IDX477"></A>
+<DT><CODE>re-read-init-file (C-x C-r)</CODE>
+<DD><A NAME="IDX478"></A>
+Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
+any bindings or variable assignments found there.
+<P>
+
+<A NAME="IDX479"></A>
+<DT><CODE>abort (C-g)</CODE>
+<DD><A NAME="IDX480"></A>
+Abort the current editing command and
+ring the terminal's bell (subject to the setting of
+<CODE>bell-style</CODE>).
+<P>
+
+<A NAME="IDX481"></A>
+<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
+<DD><A NAME="IDX482"></A>
+If the metafied character <VAR>x</VAR> is lowercase, run the command
+that is bound to the corresponding uppercase character.
+<P>
+
+<A NAME="IDX483"></A>
+<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
+<DD><A NAME="IDX484"></A>
+Metafy the next character typed.  This is for keyboards
+without a meta key.  Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
+<KBD>M-f</KBD>.
+<P>
+
+<A NAME="IDX485"></A>
+<DT><CODE>undo (C-_ or C-x C-u)</CODE>
+<DD><A NAME="IDX486"></A>
+Incremental undo, separately remembered for each line.
+<P>
+
+<A NAME="IDX487"></A>
+<DT><CODE>revert-line (M-r)</CODE>
+<DD><A NAME="IDX488"></A>
+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>
+
+<A NAME="IDX489"></A>
+<DT><CODE>tilde-expand (M-&#38;)</CODE>
+<DD><A NAME="IDX490"></A>
+Perform tilde expansion on the current word.
+<P>
+
+<A NAME="IDX491"></A>
+<DT><CODE>set-mark (C-@)</CODE>
+<DD><A NAME="IDX492"></A>
+Set the mark to the point.  If a
+numeric argument is supplied, the mark is set to that position.
+<P>
+
+<A NAME="IDX493"></A>
+<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
+<DD><A NAME="IDX494"></A>
+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>
+
+<A NAME="IDX495"></A>
+<DT><CODE>character-search (C-])</CODE>
+<DD><A NAME="IDX496"></A>
+A character is read and point is moved to the next occurrence of that
+character.  A negative count searches for previous occurrences.
+<P>
+
+<A NAME="IDX497"></A>
+<DT><CODE>character-search-backward (M-C-])</CODE>
+<DD><A NAME="IDX498"></A>
+A character is read and point is moved to the previous occurrence
+of that character.  A negative count searches for subsequent
+occurrences.
+<P>
+
+<A NAME="IDX499"></A>
+<DT><CODE>insert-comment (M-#)</CODE>
+<DD><A NAME="IDX500"></A>
+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
+the characters at the beginning of the line do not match the value
+of <CODE>comment-begin</CODE>, the value is inserted, otherwise
+the characters in <CODE>comment-begin</CODE> are deleted from the beginning of
+the line.
+In either case, the line is accepted as if a newline had been typed.
+The default value of <CODE>comment-begin</CODE> causes this command
+to make the current line a shell comment.
+If a numeric argument causes the comment character to be removed, the line
+will be executed by the shell.
+<P>
+
+<A NAME="IDX501"></A>
+<DT><CODE>dump-functions ()</CODE>
+<DD><A NAME="IDX502"></A>
+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>
+
+<A NAME="IDX503"></A>
+<DT><CODE>dump-variables ()</CODE>
+<DD><A NAME="IDX504"></A>
+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>
+
+<A NAME="IDX505"></A>
+<DT><CODE>dump-macros ()</CODE>
+<DD><A NAME="IDX506"></A>
+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>
+
+<A NAME="IDX507"></A>
+<DT><CODE>glob-complete-word (M-g)</CODE>
+<DD><A NAME="IDX508"></A>
+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>
+
+<A NAME="IDX509"></A>
+<DT><CODE>glob-expand-word (C-x *)</CODE>
+<DD><A NAME="IDX510"></A>
+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 <SAMP>`*'</SAMP> is appended before
+pathname expansion.
+<P>
+
+<A NAME="IDX511"></A>
+<DT><CODE>glob-list-expansions (C-x g)</CODE>
+<DD><A NAME="IDX512"></A>
+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 <SAMP>`*'</SAMP> is appended before
+pathname expansion.
+<P>
+
+<A NAME="IDX513"></A>
+<DT><CODE>display-shell-version (C-x C-v)</CODE>
+<DD><A NAME="IDX514"></A>
+Display version information about the current instance of Bash.
+<P>
+
+<A NAME="IDX515"></A>
+<DT><CODE>shell-expand-line (M-C-e)</CODE>
+<DD><A NAME="IDX516"></A>
+Expand the line as the shell does.
+This performs alias and history expansion as well as all of the shell
+word expansions (see section <A HREF="bashref.html#SEC28">3.5 Shell Expansions</A>).
+<P>
+
+<A NAME="IDX517"></A>
+<DT><CODE>history-expand-line (M-^)</CODE>
+<DD><A NAME="IDX518"></A>
+Perform history expansion on the current line.
+<P>
+
+<A NAME="IDX519"></A>
+<DT><CODE>magic-space ()</CODE>
+<DD><A NAME="IDX520"></A>
+Perform history expansion on the current line and insert a space
+(see section <A HREF="bashref.html#SEC122">9.3 History Expansion</A>).
+<P>
+
+<A NAME="IDX521"></A>
+<DT><CODE>alias-expand-line ()</CODE>
+<DD><A NAME="IDX522"></A>
+Perform alias expansion on the current line (see section <A HREF="bashref.html#SEC84">6.6 Aliases</A>).
+<P>
+
+<A NAME="IDX523"></A>
+<DT><CODE>history-and-alias-expand-line ()</CODE>
+<DD><A NAME="IDX524"></A>
+Perform history and alias expansion on the current line.
+<P>
+
+<A NAME="IDX525"></A>
+<DT><CODE>insert-last-argument (M-. or M-_)</CODE>
+<DD><A NAME="IDX526"></A>
+A synonym for <CODE>yank-last-arg</CODE>.
+<P>
+
+<A NAME="IDX527"></A>
+<DT><CODE>operate-and-get-next (C-o)</CODE>
+<DD><A NAME="IDX528"></A>
+Accept the current line for execution and fetch the next line
+relative to the current line from the history for editing.  Any
+argument is ignored.
+<P>
+
+<A NAME="IDX529"></A>
+<DT><CODE>edit-and-execute-command (C-xC-e)</CODE>
+<DD><A NAME="IDX530"></A>
+Invoke an editor on the current command line, and execute the result as shell
+commands.
+Bash attempts to invoke
+<CODE>$VISUAL</CODE>, <CODE>$EDITOR</CODE>, and <CODE>emacs</CODE>
+as the editor, in that order.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Readline vi Mode"></A>
+<HR SIZE="6">
+<A NAME="SEC116"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC115"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.5 Readline vi Mode </H2>
+<!--docid::SEC116::-->
+<P>
+
+While the Readline library does not have a full set of <CODE>vi</CODE>
+editing functions, it does contain enough to allow simple editing
+of the line.  The Readline <CODE>vi</CODE> mode behaves as specified in
+the POSIX 1003.2 standard.
+</P><P>
+
+In order to switch interactively between <CODE>emacs</CODE> and <CODE>vi</CODE>
+editing modes, use the <SAMP>`set -o emacs'</SAMP> and <SAMP>`set -o vi'</SAMP>
+commands (see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+The Readline default is <CODE>emacs</CODE> mode.
+</P><P>
+
+When you enter a line in <CODE>vi</CODE> mode, you are already placed in
+`insertion' mode, as if you had typed an <SAMP>`i'</SAMP>.  Pressing <KBD>ESC</KBD>
+switches you into `command' mode, where you can edit the text of the
+line with the standard <CODE>vi</CODE> movement keys, move to previous
+history lines with <SAMP>`k'</SAMP> and subsequent lines with <SAMP>`j'</SAMP>, and
+so forth.
+</P><P>
+
+<A NAME="Programmable Completion"></A>
+<HR SIZE="6">
+<A NAME="SEC117"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC116"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC118"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC118"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.6 Programmable Completion </H2>
+<!--docid::SEC117::-->
+<P>
+
+When word completion is attempted for an argument to a command for
+which a completion specification (a <VAR>compspec</VAR>) has been defined
+using the <CODE>complete</CODE> builtin (see section <A HREF="bashref.html#SEC118">8.7 Programmable Completion Builtins</A>),
+the programmable completion facilities are invoked. 
+</P><P>
+
+First, the command name is identified.
+If a compspec has been defined for that command, the
+compspec is used to generate the list of possible completions for the word.
+If the command word is a full pathname, a compspec for the full
+pathname is searched for first.
+If no compspec is found for the full pathname, an attempt is made to
+find a compspec for the portion following the final slash.
+</P><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 section <A HREF="bashref.html#SEC113">8.4.6 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
+returned.
+When the <SAMP>`-f'</SAMP> or <SAMP>`-d'</SAMP> option is used for filename or
+directory name completion, the shell variable <CODE>FIGNORE</CODE> is
+used to filter the matches.
+See section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>, for a description of <CODE>FIGNORE</CODE>.
+</P><P>
+
+Any completions specified by a filename expansion pattern to the
+<SAMP>`-G'</SAMP> option are generated next.
+The words generated by the pattern need not match the word being completed.
+The <CODE>GLOBIGNORE</CODE> shell variable is not used to filter the matches,
+but the <CODE>FIGNORE</CODE> shell variable is used.
+</P><P>
+
+Next, the string specified as the argument to the <SAMP>`-W'</SAMP> option
+is considered.
+The string is first split using the characters in the <CODE>IFS</CODE>
+special variable as delimiters.
+Shell quoting is honored.
+Each word is then expanded using
+brace expansion, tilde expansion, parameter and variable expansion,
+command substitution, and arithmetic expansion,
+as described above (see section <A HREF="bashref.html#SEC28">3.5 Shell Expansions</A>).
+The results are split using the rules described above
+(see section <A HREF="bashref.html#SEC35">3.5.7 Word Splitting</A>).
+The results of the expansion are prefix-matched against the word being
+completed, and the matching words become the possible completions.
+</P><P>
+
+After these matches have been generated, any shell function or command
+specified with the <SAMP>`-F'</SAMP> and <SAMP>`-C'</SAMP> options is invoked.
+When the command or function is invoked, the <CODE>COMP_LINE</CODE>,
+<CODE>COMP_POINT</CODE>, <CODE>COMP_KEY</CODE>, and <CODE>COMP_TYPE</CODE> variables are
+assigned values as described above (see section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>).
+If a shell function is being invoked, the <CODE>COMP_WORDS</CODE> and
+<CODE>COMP_CWORD</CODE> variables are also set.
+When the function or command is invoked, the first argument is the
+name of the command whose arguments are being completed, the
+second argument is the word being completed, and the third argument
+is the word preceding the word being completed on the current command line.
+No filtering of the generated completions against the word being completed
+is performed; the function or command has complete freedom in generating
+the matches.
+</P><P>
+
+Any function specified with <SAMP>`-F'</SAMP> is invoked first.
+The function may use any of the shell facilities, including the
+<CODE>compgen</CODE> and <CODE>compopt</CODE> builtins described below
+(see section <A HREF="bashref.html#SEC118">8.7 Programmable Completion Builtins</A>), to generate the matches.
+It must put the possible completions in the <CODE>COMPREPLY</CODE> array
+variable.
+</P><P>
+
+Next, any command specified with the <SAMP>`-C'</SAMP> option is invoked
+in an environment equivalent to command substitution.
+It should print a list of completions, one per line, to
+the standard output.
+Backslash may be used to escape a newline, if necessary.
+</P><P>
+
+After all of the possible completions are generated, any filter
+specified with the <SAMP>`-X'</SAMP> option is applied to the list.
+The filter is a pattern as used for pathname expansion; a <SAMP>`&#38;'</SAMP>
+in the pattern is replaced with the text of the word being completed.
+A literal <SAMP>`&#38;'</SAMP> may be escaped with a backslash; the backslash
+is removed before attempting a match.
+Any completion that matches the pattern will be removed from the list.
+A leading <SAMP>`!'</SAMP> negates the pattern; in this case any completion
+not matching the pattern will be removed.
+</P><P>
+
+Finally, any prefix and suffix specified with the <SAMP>`-P'</SAMP> and <SAMP>`-S'</SAMP>
+options are added to each member of the completion list, and the result is
+returned to the Readline completion code as the list of possible
+completions.
+</P><P>
+
+If the previously-applied actions do not generate any matches, and the
+<SAMP>`-o dirnames'</SAMP> option was supplied to <CODE>complete</CODE> when the
+compspec was defined, directory name completion is attempted. 
+</P><P>
+
+If the <SAMP>`-o plusdirs'</SAMP> option was supplied to <CODE>complete</CODE> when
+the compspec was defined, directory name completion is attempted and any
+matches are added to the results of the other actions.
+</P><P>
+
+By default, if a compspec is found, whatever it generates is returned to
+the completion code as the full set of possible completions.
+The default Bash completions are not attempted, and the Readline default
+of filename completion is disabled.
+If the <SAMP>`-o bashdefault'</SAMP> option was supplied to <CODE>complete</CODE> when
+the compspec was defined, the default Bash completions are attempted
+if the compspec generates no matches.
+If the <SAMP>`-o default'</SAMP> option was supplied to <CODE>complete</CODE> when the
+compspec was defined, Readline's default completion will be performed
+if the compspec (and, if attempted, the default Bash completions)
+generate no matches.
+</P><P>
+
+When a compspec indicates that directory name completion is desired,
+the programmable completion functions force Readline to append a slash
+to completed names which are symbolic links to directories, subject to
+the value of the <VAR>mark-directories</VAR> Readline variable, regardless
+of the setting of the <VAR>mark-symlinked-directories</VAR> Readline variable.
+</P><P>
+
+<A NAME="Programmable Completion Builtins"></A>
+<HR SIZE="6">
+<A NAME="SEC118"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.7 Programmable Completion Builtins </H2>
+<!--docid::SEC118::-->
+<P>
+
+Two builtin commands are available to manipulate the programmable completion
+facilities.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>compgen</CODE>
+<DD><A NAME="IDX531"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>compgen [<VAR>option</VAR>] [<VAR>word</VAR>]</CODE>
+</pre></td></tr></table><P>
+
+Generate possible completion matches for <VAR>word</VAR> according to
+the <VAR>option</VAR>s, which may be any option accepted by the
+<CODE>complete</CODE>
+builtin with the exception of <SAMP>`-p'</SAMP> and <SAMP>`-r'</SAMP>, and write
+the matches to the standard output.
+When using the <SAMP>`-F'</SAMP> or <SAMP>`-C'</SAMP> options, the various shell variables
+set by the programmable completion facilities, while available, will not
+have useful values.
+</P><P>
+
+The matches will be generated in the same way as if the programmable
+completion code had generated them directly from a completion specification
+with the same flags.
+If <VAR>word</VAR> is specified, only those completions matching <VAR>word</VAR>
+will be displayed.
+</P><P>
+
+The return value is true unless an invalid option is supplied, or no
+matches were generated.
+</P><P>
+
+<DT><CODE>complete</CODE>
+<DD><A NAME="IDX532"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>complete [-abcdefgjksuv] [-o <VAR>comp-option</VAR>] [-E] [-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> <small>...</small>]</CODE>
+<CODE>complete -pr [-E] [<VAR>name</VAR> <small>...</small>]</CODE>
+</pre></td></tr></table><P>
+
+Specify how arguments to each <VAR>name</VAR> should be completed.
+If the <SAMP>`-p'</SAMP> option is supplied, or if no options are supplied, existing
+completion specifications are printed in a way that allows them to be
+reused as input.
+The <SAMP>`-r'</SAMP> option removes a completion specification for
+each <VAR>name</VAR>, or, if no <VAR>name</VAR>s are supplied, all
+completion specifications.
+The <SAMP>`-E'</SAMP> option indicates that the remaining options and actions should
+apply to "empty" command completion; that is, completion attempted on a 
+blank line.
+</P><P>
+
+The process of applying these completion specifications when word completion
+is attempted is described above (see section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>).
+</P><P>
+
+Other options, if specified, have the following meanings.
+The arguments to the <SAMP>`-G'</SAMP>, <SAMP>`-W'</SAMP>, and <SAMP>`-X'</SAMP> options
+(and, if necessary, the <SAMP>`-P'</SAMP> and <SAMP>`-S'</SAMP> options)
+should be quoted to protect them from expansion before the
+<CODE>complete</CODE> builtin is invoked.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-o <VAR>comp-option</VAR></CODE>
+<DD>The <VAR>comp-option</VAR> controls several aspects of the compspec's behavior
+beyond the simple generation of completions.
+<VAR>comp-option</VAR> may be one of: 
+<P>
+
+<DL COMPACT>
+
+<DT><CODE>bashdefault</CODE>
+<DD>Perform the rest of the default Bash completions if the compspec
+generates no matches.
+<P>
+
+<DT><CODE>default</CODE>
+<DD>Use Readline's default filename completion if the compspec generates
+no matches.
+<P>
+
+<DT><CODE>dirnames</CODE>
+<DD>Perform directory name completion if the compspec generates no matches.
+<P>
+
+<DT><CODE>filenames</CODE>
+<DD>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).
+This option is intended to be used with shell functions specified
+with <SAMP>`-F'</SAMP>.
+<P>
+
+<DT><CODE>nospace</CODE>
+<DD>Tell Readline not to append a space (the default) to words completed at
+the end of the line.
+<P>
+
+<DT><CODE>plusdirs</CODE>
+<DD>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.
+<P>
+
+</DL>
+<P>
+
+<DT><CODE>-A <VAR>action</VAR></CODE>
+<DD>The <VAR>action</VAR> may be one of the following to generate a list of possible
+completions:
+<P>
+
+<DL COMPACT>
+<DT><CODE>alias</CODE>
+<DD>Alias names.  May also be specified as <SAMP>`-a'</SAMP>.
+<P>
+
+<DT><CODE>arrayvar</CODE>
+<DD>Array variable names.
+<P>
+
+<DT><CODE>binding</CODE>
+<DD>Readline key binding names (see section <A HREF="bashref.html#SEC107">8.4 Bindable Readline Commands</A>).
+<P>
+
+<DT><CODE>builtin</CODE>
+<DD>Names of shell builtin commands.  May also be specified as <SAMP>`-b'</SAMP>.
+<P>
+
+<DT><CODE>command</CODE>
+<DD>Command names.  May also be specified as <SAMP>`-c'</SAMP>.
+<P>
+
+<DT><CODE>directory</CODE>
+<DD>Directory names.  May also be specified as <SAMP>`-d'</SAMP>.
+<P>
+
+<DT><CODE>disabled</CODE>
+<DD>Names of disabled shell builtins.
+<P>
+
+<DT><CODE>enabled</CODE>
+<DD>Names of enabled shell builtins.
+<P>
+
+<DT><CODE>export</CODE>
+<DD>Names of exported shell variables.  May also be specified as <SAMP>`-e'</SAMP>.
+<P>
+
+<DT><CODE>file</CODE>
+<DD>File names.  May also be specified as <SAMP>`-f'</SAMP>.
+<P>
+
+<DT><CODE>function</CODE>
+<DD>Names of shell functions.
+<P>
+
+<DT><CODE>group</CODE>
+<DD>Group names.  May also be specified as <SAMP>`-g'</SAMP>.
+<P>
+
+<DT><CODE>helptopic</CODE>
+<DD>Help topics as accepted by the <CODE>help</CODE> builtin (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+<P>
+
+<DT><CODE>hostname</CODE>
+<DD>Hostnames, as taken from the file specified by the
+<CODE>HOSTFILE</CODE> shell variable (see section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>).
+<P>
+
+<DT><CODE>job</CODE>
+<DD>Job names, if job control is active.  May also be specified as <SAMP>`-j'</SAMP>.
+<P>
+
+<DT><CODE>keyword</CODE>
+<DD>Shell reserved words.  May also be specified as <SAMP>`-k'</SAMP>.
+<P>
+
+<DT><CODE>running</CODE>
+<DD>Names of running jobs, if job control is active.
+<P>
+
+<DT><CODE>service</CODE>
+<DD>Service names.  May also be specified as <SAMP>`-s'</SAMP>.
+<P>
+
+<DT><CODE>setopt</CODE>
+<DD>Valid arguments for the <SAMP>`-o'</SAMP> option to the <CODE>set</CODE> builtin
+(see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+<P>
+
+<DT><CODE>shopt</CODE>
+<DD>Shell option names as accepted by the <CODE>shopt</CODE> builtin
+(see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+<P>
+
+<DT><CODE>signal</CODE>
+<DD>Signal names.
+<P>
+
+<DT><CODE>stopped</CODE>
+<DD>Names of stopped jobs, if job control is active.
+<P>
+
+<DT><CODE>user</CODE>
+<DD>User names.  May also be specified as <SAMP>`-u'</SAMP>.
+<P>
+
+<DT><CODE>variable</CODE>
+<DD>Names of all shell variables.  May also be specified as <SAMP>`-v'</SAMP>.
+</DL>
+<P>
+
+<DT><CODE>-G <VAR>globpat</VAR></CODE>
+<DD>The filename expansion pattern <VAR>globpat</VAR> is expanded to generate
+the possible completions.
+<P>
+
+<DT><CODE>-W <VAR>wordlist</VAR></CODE>
+<DD>The <VAR>wordlist</VAR> is split using the characters in the
+<CODE>IFS</CODE> special variable as delimiters, and each resultant word
+is expanded.
+The possible completions are the members of the resultant list which
+match the word being completed.
+<P>
+
+<DT><CODE>-C <VAR>command</VAR></CODE>
+<DD><VAR>command</VAR> is executed in a subshell environment, and its output is
+used as the possible completions.
+<P>
+
+<DT><CODE>-F <VAR>function</VAR></CODE>
+<DD>The shell function <VAR>function</VAR> is executed in the current shell
+environment.
+When it finishes, the possible completions are retrieved from the value
+of the <CODE>COMPREPLY</CODE> array variable.
+<P>
+
+<DT><CODE>-X <VAR>filterpat</VAR></CODE>
+<DD><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
+<VAR>filterpat</VAR> is removed from the list.
+A leading <SAMP>`!'</SAMP> in <VAR>filterpat</VAR> negates the pattern; in this
+case, any completion not matching <VAR>filterpat</VAR> is removed.
+<P>
+
+<DT><CODE>-P <VAR>prefix</VAR></CODE>
+<DD><VAR>prefix</VAR> is added at the beginning of each possible completion
+after all other options have been applied.
+<P>
+
+<DT><CODE>-S <VAR>suffix</VAR></CODE>
+<DD><VAR>suffix</VAR> is appended to each possible completion
+after all other options have been applied.
+</DL>
+<P>
+
+The return value is true unless an invalid option is supplied, an option
+other than <SAMP>`-p'</SAMP> or <SAMP>`-r'</SAMP> is supplied without a <VAR>name</VAR>
+argument, an attempt is made to remove a completion specification for
+a <VAR>name</VAR> for which no specification exists, or
+an error occurs adding a completion specification.
+</P><P>
+
+<DT><CODE>compopt</CODE>
+<DD><A NAME="IDX533"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>compopt</CODE> [-o <VAR>option</VAR>] [+o <VAR>option</VAR>] [<VAR>name</VAR>]
+</pre></td></tr></table>Modify completion options for each <VAR>name</VAR> according to the
+<VAR>option</VAR>s, or for the currently-execution completion if no <VAR>name</VAR>s
+are supplied.
+If no <VAR>option</VAR>s are given, display the completion options for each
+<VAR>name</VAR> or the current completion.
+The possible values of <VAR>option</VAR> are those valid for the <CODE>complete</CODE>
+builtin described above.
+<P>
+
+The return value is true unless an invalid option is supplied, an attempt
+is made to modify the options for a <VAR>name</VAR> for which no completion
+specification exists, or an output error occurs.
+</P><P>
+
+</DL>
+<P>
+
+<A NAME="IDX534"></A>
+</P><P>
+
+<A NAME="Using History Interactively"></A>
+<HR SIZE="6">
+<A NAME="SEC119"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC118"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> 9. Using History Interactively </H1>
+<!--docid::SEC119::-->
+<P>
+
+This chapter describes how to use the GNU History Library
+interactively, from a user's standpoint.
+It should be considered a user's guide.
+For information on using the GNU History Library in other programs,
+see the GNU Readline Library Manual.
+</P><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC120">9.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"><A HREF="bashref.html#SEC121">9.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"><A HREF="bashref.html#SEC122">9.3 History Expansion</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What it feels like using History as a user.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="Bash History Facilities"></A>
+<HR SIZE="6">
+<A NAME="SEC120"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 9.1 Bash History Facilities </H2>
+<!--docid::SEC120::-->
+<P>
+
+When the <SAMP>`-o history'</SAMP> option to the <CODE>set</CODE> builtin
+is enabled (see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>),
+the shell provides access to the <EM>command history</EM>,
+the list of commands previously typed.
+The value of the <CODE>HISTSIZE</CODE> shell variable is used as the
+number of commands to save in a history list.
+The text of the last <CODE>$HISTSIZE</CODE>
+commands (default 500) is saved.
+The shell stores each command in the history list prior to
+parameter and variable expansion
+but after history expansion is performed, subject to the
+values of the shell variables
+<CODE>HISTIGNORE</CODE> and <CODE>HISTCONTROL</CODE>.
+</P><P>
+
+When the shell starts up, the history is initialized from the
+file named by the <CODE>HISTFILE</CODE> variable (default <TT>`~/.bash_history'</TT>).
+The file named by the value of <CODE>HISTFILE</CODE> is truncated, if
+necessary, to contain no more than the number of lines specified by
+the value of the <CODE>HISTFILESIZE</CODE> variable.
+When an interactive shell 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 section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>),
+the lines are appended to the history file,
+otherwise the history file is overwritten.
+If <CODE>HISTFILE</CODE>
+is unset, or if the history file is unwritable, the history is
+not saved.  After saving the history, the history file is truncated
+to contain no more than <CODE>$HISTFILESIZE</CODE>
+lines.  If <CODE>HISTFILESIZE</CODE> is not set, no truncation is performed.
+</P><P>
+
+If the <CODE>HISTTIMEFORMAT</CODE> is set, the time stamp information
+associated with each history entry is written to the history file,
+marked with the history comment character.
+When the history file is read, lines beginning with the history
+comment character followed immediately by a digit are interpreted
+as timestamps for the previous history line.
+</P><P>
+
+The builtin command <CODE>fc</CODE> may be used to list or edit and re-execute
+a portion of the history list.
+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 section <A HREF="bashref.html#SEC109">8.4.2 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>
+variables may be set to cause the shell to save only a subset of the
+commands entered.
+The <CODE>cmdhist</CODE>
+shell option, if enabled, causes the shell to attempt to save each
+line of a multi-line command in the same history entry, adding
+semicolons where necessary to preserve syntactic correctness.
+The <CODE>lithist</CODE>
+shell option causes the shell to save the command with embedded newlines
+instead of semicolons.
+The <CODE>shopt</CODE> builtin is used to set these options.
+See section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>, for a description of <CODE>shopt</CODE>.
+</P><P>
+
+<A NAME="Bash History Builtins"></A>
+<HR SIZE="6">
+<A NAME="SEC121"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC122"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC122"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 9.2 Bash History Builtins </H2>
+<!--docid::SEC121::-->
+<P>
+
+Bash provides two builtin commands which manipulate the
+history list and history file.
+</P><P>
+
+<DL COMPACT>
+
+<DT><CODE>fc</CODE>
+<DD><A NAME="IDX535"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><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></td></tr></table><P>
+
+Fix Command.  In the first form, a range of commands from <VAR>first</VAR> to
+<VAR>last</VAR> is selected from the history list.  Both <VAR>first</VAR> and
+<VAR>last</VAR> may be specified as a string (to locate the most recent
+command beginning with that string) or as a number (an index into the
+history list, where a negative number is used as an offset from the
+current command number).  If <VAR>last</VAR> is not specified it is set to
+<VAR>first</VAR>.  If <VAR>first</VAR> is not specified it is set to the previous
+command for editing and -16 for listing.  If the <SAMP>`-l'</SAMP> flag is
+given, the commands are listed on standard output.  The <SAMP>`-n'</SAMP> flag
+suppresses the command numbers when listing.  The <SAMP>`-r'</SAMP> flag
+reverses the order of the listing.  Otherwise, the editor given by
+<VAR>ename</VAR> is invoked on a file containing those commands.  If
+<VAR>ename</VAR> is not given, the value of the following variable expansion
+is used: <CODE>${FCEDIT:-${EDITOR:-vi}}</CODE>.  This says to use the
+value of the <CODE>FCEDIT</CODE> variable if set, or the value of the
+<CODE>EDITOR</CODE> variable if that is set, or <CODE>vi</CODE> if neither is set.
+When editing is complete, the edited commands are echoed and executed.
+</P><P>
+
+In the second form, <VAR>command</VAR> is re-executed after each instance
+of <VAR>pat</VAR> in the selected command is replaced by <VAR>rep</VAR>.
+</P><P>
+
+A useful alias to use with the <CODE>fc</CODE> command is <CODE>r='fc -s'</CODE>, so
+that typing <SAMP>`r cc'</SAMP> runs the last command beginning with <CODE>cc</CODE>
+and typing <SAMP>`r'</SAMP> re-executes the last command (see section <A HREF="bashref.html#SEC84">6.6 Aliases</A>).
+</P><P>
+
+<DT><CODE>history</CODE>
+<DD><A NAME="IDX536"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>history [<VAR>n</VAR>]
+history -c
+history -d <VAR>offset</VAR>
+history [-anrw] [<VAR>filename</VAR>]
+history -ps <VAR>arg</VAR>
+</pre></td></tr></table><P>
+
+With no options, display the history list with line numbers.
+Lines prefixed with a <SAMP>`*'</SAMP> have been modified.
+An argument of <VAR>n</VAR> lists only the last <VAR>n</VAR> lines.
+If the shell variable <CODE>HISTTIMEFORMAT</CODE> is set and not null,
+it is used as a format string for <VAR>strftime</VAR> to display
+the time stamp associated with each displayed history entry.
+No intervening blank is printed between the formatted time stamp
+and the history line.
+</P><P>
+
+Options, if supplied, have the following meanings:
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>-c</CODE>
+<DD>Clear the history list.  This may be combined
+with the other options to replace the history list completely.
+<P>
+
+<DT><CODE>-d <VAR>offset</VAR></CODE>
+<DD>Delete the history entry at position <VAR>offset</VAR>.
+<VAR>offset</VAR> should be specified as it appears when the history is
+displayed.
+<P>
+
+<DT><CODE>-a</CODE>
+<DD>Append the new
+history lines (history lines entered since the beginning of the
+current Bash session) to the history file.
+<P>
+
+<DT><CODE>-n</CODE>
+<DD>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>
+
+<DT><CODE>-r</CODE>
+<DD>Read the current history file and append its contents to
+the history list.
+<P>
+
+<DT><CODE>-w</CODE>
+<DD>Write out the current history to the history file.
+<P>
+
+<DT><CODE>-p</CODE>
+<DD>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>
+
+<DT><CODE>-s</CODE>
+<DD>The <VAR>arg</VAR>s are added to the end of
+the history list as a single entry.
+<P>
+
+</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><P>
+
+</DL>
+<P>
+
+<A NAME="History Interaction"></A>
+<HR SIZE="6">
+<A NAME="SEC122"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC123"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 9.3 History Expansion </H2>
+<!--docid::SEC122::-->
+<P>
+
+The History library provides a history expansion feature that is similar
+to the history expansion provided by <CODE>csh</CODE>.  This section
+describes the syntax used to manipulate the history information.
+</P><P>
+
+History expansions introduce words from the history list into
+the input stream, making it easy to repeat commands, insert the
+arguments to a previous command into the current input line, or
+fix errors in previous commands quickly.
+</P><P>
+
+History expansion takes place in two parts.  The first is to determine
+which line from the history list should be used during substitution.
+The second is to select portions of that line for inclusion into the
+current one.  The line selected from the history is called the
+<EM>event</EM>, and the portions of that line that are acted upon are
+called <EM>words</EM>.  Various <EM>modifiers</EM> are available to manipulate
+the selected words.  The line is broken into words in the same fashion
+that Bash does, so that several words
+surrounded by quotes are considered one word.
+History expansions are introduced by the appearance of the
+history expansion character, which is <SAMP>`!'</SAMP> by default.
+Only <SAMP>`\'</SAMP> and <SAMP>`''</SAMP> may be used to escape the history expansion
+character.
+</P><P>
+
+Several shell options settable with the <CODE>shopt</CODE>
+builtin (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>) may be used to tailor
+the behavior of history expansion.  If the
+<CODE>histverify</CODE> shell option is enabled, and Readline
+is being used, history substitutions are not immediately passed to
+the shell parser.
+Instead, the expanded line is reloaded into the Readline
+editing buffer for further modification.
+If Readline is being used, and the <CODE>histreedit</CODE>
+shell option is enabled, a failed history expansion will be
+reloaded into the Readline editing buffer for correction.
+The <SAMP>`-p'</SAMP> option to the <CODE>history</CODE> builtin command
+may be used to see what a history expansion will do before using it.
+The <SAMP>`-s'</SAMP> option to the <CODE>history</CODE> builtin may be used to
+add commands to the end of the history list without actually executing
+them, so that they are available for subsequent recall.
+This is most useful in conjunction with Readline.
+</P><P>
+
+The shell allows control of the various characters used by the
+history expansion mechanism with the <CODE>histchars</CODE> variable,
+as explained above (see section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>).  The shell uses
+the history comment character to mark history timestamps when
+writing the history file.
+</P><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC123">9.3.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"><A HREF="bashref.html#SEC124">9.3.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"><A HREF="bashref.html#SEC125">9.3.3 Modifiers</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Modifying the results of substitution.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="Event Designators"></A>
+<HR SIZE="6">
+<A NAME="SEC123"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC122"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC124"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC122"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 9.3.1 Event Designators </H3>
+<!--docid::SEC123::-->
+<P>
+
+An event designator is a reference to a command line entry in the
+history list.
+<A NAME="IDX537"></A>
+</P><P>
+
+<DL COMPACT>
+
+<DT><CODE>!</CODE>
+<DD>Start a history substitution, except when followed by a space, tab,
+the end of the line, <SAMP>`='</SAMP> or <SAMP>`('</SAMP> (when the
+<CODE>extglob</CODE> shell option is enabled using the <CODE>shopt</CODE> builtin).
+<P>
+
+<DT><CODE>!<VAR>n</VAR></CODE>
+<DD>Refer to command line <VAR>n</VAR>.
+<P>
+
+<DT><CODE>!-<VAR>n</VAR></CODE>
+<DD>Refer to the command <VAR>n</VAR> lines back.
+<P>
+
+<DT><CODE>!!</CODE>
+<DD>Refer to the previous command.  This is a synonym for <SAMP>`!-1'</SAMP>.
+<P>
+
+<DT><CODE>!<VAR>string</VAR></CODE>
+<DD>Refer to the most recent command starting with <VAR>string</VAR>.
+<P>
+
+<DT><CODE>!?<VAR>string</VAR>[?]</CODE>
+<DD>Refer to the most recent command containing <VAR>string</VAR>.  The trailing
+<SAMP>`?'</SAMP> may be omitted if the <VAR>string</VAR> is followed immediately by
+a newline.
+<P>
+
+<DT><CODE>^<VAR>string1</VAR>^<VAR>string2</VAR>^</CODE>
+<DD>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>
+
+<DT><CODE>!#</CODE>
+<DD>The entire command line typed so far.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Word Designators"></A>
+<HR SIZE="6">
+<A NAME="SEC124"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC123"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC125"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC125"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC122"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 9.3.2 Word Designators </H3>
+<!--docid::SEC124::-->
+<P>
+
+Word designators are used to select desired words from the event.
+A <SAMP>`:'</SAMP> separates the event specification from the word designator.  It
+may be omitted if the word designator begins with a <SAMP>`^'</SAMP>, <SAMP>`$'</SAMP>,
+<SAMP>`*'</SAMP>, <SAMP>`-'</SAMP>, or <SAMP>`%'</SAMP>.  Words are numbered from the beginning
+of the line, with the first word being denoted by 0 (zero).  Words are
+inserted into the current line separated by single spaces.
+</P><P>
+
+For example,
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>!!</CODE>
+<DD>designates the preceding command.  When you type this, the preceding
+command is repeated in toto.
+<P>
+
+<DT><CODE>!!:$</CODE>
+<DD>designates the last argument of the preceding command.  This may be
+shortened to <CODE>!$</CODE>.
+<P>
+
+<DT><CODE>!fi:2</CODE>
+<DD>designates the second argument of the most recent command starting with
+the letters <CODE>fi</CODE>.
+</DL>
+<P>
+
+Here are the word designators:
+<DL COMPACT>
+
+<DT><CODE>0 (zero)</CODE>
+<DD>The <CODE>0</CODE>th word.  For many applications, this is the command word.
+<P>
+
+<DT><CODE><VAR>n</VAR></CODE>
+<DD>The <VAR>n</VAR>th word.
+<P>
+
+<DT><CODE>^</CODE>
+<DD>The first argument; that is, word 1.
+<P>
+
+<DT><CODE>$</CODE>
+<DD>The last argument.
+<P>
+
+<DT><CODE>%</CODE>
+<DD>The word matched by the most recent <SAMP>`?<VAR>string</VAR>?'</SAMP> search.
+<P>
+
+<DT><CODE><VAR>x</VAR>-<VAR>y</VAR></CODE>
+<DD>A range of words; <SAMP>`-<VAR>y</VAR>'</SAMP> abbreviates <SAMP>`0-<VAR>y</VAR>'</SAMP>.
+<P>
+
+<DT><CODE>*</CODE>
+<DD>All of the words, except the <CODE>0</CODE>th.  This is a synonym for <SAMP>`1-$'</SAMP>.
+It is not an error to use <SAMP>`*'</SAMP> if there is just one word in the event;
+the empty string is returned in that case.
+<P>
+
+<DT><CODE><VAR>x</VAR>*</CODE>
+<DD>Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP>
+<P>
+
+<DT><CODE><VAR>x</VAR>-</CODE>
+<DD>Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP> like <SAMP>`<VAR>x</VAR>*'</SAMP>, but omits the last word.
+<P>
+
+</DL>
+<P>
+
+If a word designator is supplied without an event specification, the
+previous command is used as the event.
+</P><P>
+
+<A NAME="Modifiers"></A>
+<HR SIZE="6">
+<A NAME="SEC125"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC124"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC122"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> 9.3.3 Modifiers </H3>
+<!--docid::SEC125::-->
+<P>
+
+After the optional word designator, you can add a sequence of one or more
+of the following modifiers, each preceded by a <SAMP>`:'</SAMP>.
+</P><P>
+
+<DL COMPACT>
+
+<DT><CODE>h</CODE>
+<DD>Remove a trailing pathname component, leaving only the head.
+<P>
+
+<DT><CODE>t</CODE>
+<DD>Remove all leading pathname components, leaving the tail.
+<P>
+
+<DT><CODE>r</CODE>
+<DD>Remove a trailing suffix of the form <SAMP>`.<VAR>suffix</VAR>'</SAMP>, leaving
+the basename.
+<P>
+
+<DT><CODE>e</CODE>
+<DD>Remove all but the trailing suffix.
+<P>
+
+<DT><CODE>p</CODE>
+<DD>Print the new command but do not execute it.
+<P>
+
+<DT><CODE>q</CODE>
+<DD>Quote the substituted words, escaping further substitutions.
+<P>
+
+<DT><CODE>x</CODE>
+<DD>Quote the substituted words as with <SAMP>`q'</SAMP>,
+but break into words at spaces, tabs, and newlines.
+<P>
+
+<DT><CODE>s/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>
+<DD>Substitute <VAR>new</VAR> for the first occurrence of <VAR>old</VAR> in the
+event line.  Any delimiter may be used in place of <SAMP>`/'</SAMP>.
+The delimiter may be quoted in <VAR>old</VAR> and <VAR>new</VAR>
+with a single backslash.  If <SAMP>`&#38;'</SAMP> appears in <VAR>new</VAR>,
+it is replaced by <VAR>old</VAR>.  A single backslash will quote
+the <SAMP>`&#38;'</SAMP>.  The final delimiter is optional if it is the last
+character on the input line.
+<P>
+
+<DT><CODE>&#38;</CODE>
+<DD>Repeat the previous substitution.
+<P>
+
+<DT><CODE>g</CODE>
+<DD><DT><CODE>a</CODE>
+<DD>Cause changes to be applied over the entire event line.  Used in
+conjunction with <SAMP>`s'</SAMP>, as in <CODE>gs/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>,
+or with <SAMP>`&#38;'</SAMP>.
+<P>
+
+<DT><CODE>G</CODE>
+<DD>Apply the following <SAMP>`s'</SAMP> modifier once to each word in the event.
+<P>
+
+</DL>
+<P>
+
+<A NAME="Installing Bash"></A>
+<HR SIZE="6">
+<A NAME="SEC126"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC125"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC4"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> 10. Installing Bash </H1>
+<!--docid::SEC126::-->
+<P>
+
+This chapter provides basic instructions for installing Bash on
+the various supported platforms.  The distribution supports the
+GNU operating systems, nearly every version of Unix, and several
+non-Unix systems such as BeOS and Interix.
+Other independent ports exist for
+MS-DOS, OS/2, and Windows platforms.
+</P><P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC127">10.1 Basic Installation</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Installation instructions.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC128">10.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"><A HREF="bashref.html#SEC129">10.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"><A HREF="bashref.html#SEC130">10.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"><A HREF="bashref.html#SEC131">10.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"><A HREF="bashref.html#SEC132">10.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"><A HREF="bashref.html#SEC133">10.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"><A HREF="bashref.html#SEC134">10.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></BLOCKQUOTE>
+<P>
+
+<A NAME="Basic Installation"></A>
+<HR SIZE="6">
+<A NAME="SEC127"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 10.1 Basic Installation </H2>
+<!--docid::SEC127::-->
+<P>
+
+These are installation instructions for Bash.
+</P><P>
+
+The simplest way to compile Bash is:
+</P><P>
+
+<OL>
+<LI>
+<CODE>cd</CODE> to the directory containing the source code and type
+<SAMP>`./configure'</SAMP> to configure Bash for your system.  If you're
+using <CODE>csh</CODE> on an old version of System V, you might need to
+type <SAMP>`sh ./configure'</SAMP> instead to prevent <CODE>csh</CODE> from trying
+to execute <CODE>configure</CODE> itself.
+<P>
+
+Running <CODE>configure</CODE> takes some time.
+While running, it prints messages telling which features it is
+checking for.
+</P><P>
+
+<LI>
+Type <SAMP>`make'</SAMP> to compile Bash and build the <CODE>bashbug</CODE> bug
+reporting script.
+<P>
+
+<LI>
+Optionally, type <SAMP>`make tests'</SAMP> to run the Bash test suite.
+<P>
+
+<LI>
+Type <SAMP>`make install'</SAMP> to install <CODE>bash</CODE> and <CODE>bashbug</CODE>.
+This will also install the manual pages and Info file.
+<P>
+
+</OL>
+<P>
+
+The <CODE>configure</CODE> shell script attempts to guess correct
+values for various system-dependent variables used during
+compilation.  It uses those values to create a <TT>`Makefile'</TT> in
+each directory of the package (the top directory, the
+<TT>`builtins'</TT>, <TT>`doc'</TT>, and <TT>`support'</TT> directories,
+each directory under <TT>`lib'</TT>, and several others).  It also creates a
+<TT>`config.h'</TT> file containing system-dependent definitions. 
+Finally, it creates a shell script named <CODE>config.status</CODE> that you
+can run in the future to recreate the current configuration, a
+file <TT>`config.cache'</TT> that saves the results of its tests to
+speed up reconfiguring, and a file <TT>`config.log'</TT> containing
+compiler output (useful mainly for debugging <CODE>configure</CODE>). 
+If at some point
+<TT>`config.cache'</TT> contains results you don't want to keep, you
+may remove or edit it. 
+</P><P>
+
+To find out more about the options and arguments that the
+<CODE>configure</CODE> script understands, type 
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>bash-2.04$ ./configure --help
+</pre></td></tr></table></P><P>
+
+at the Bash prompt in your Bash source directory.
+</P><P>
+
+If you need to do unusual things to compile Bash, please
+try to figure out how <CODE>configure</CODE> could check whether or not
+to do them, and mail diffs or instructions to
+<A HREF="mailto:bash-maintainers@gnu.org">bash-maintainers@gnu.org</A> so they can be
+considered for the next release.
+</P><P>
+
+The file <TT>`configure.in'</TT> is used to create <CODE>configure</CODE>
+by a program called Autoconf.  You only need
+<TT>`configure.in'</TT> 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
+newer.
+</P><P>
+
+You can remove the program binaries and object files from the
+source code directory by typing <SAMP>`make clean'</SAMP>.  To also remove the
+files that <CODE>configure</CODE> created (so you can compile Bash for
+a different kind of computer), type <SAMP>`make distclean'</SAMP>.
+</P><P>
+
+<A NAME="Compilers and Options"></A>
+<HR SIZE="6">
+<A NAME="SEC128"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC129"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC129"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 10.2 Compilers and Options </H2>
+<!--docid::SEC128::-->
+<P>
+
+Some systems require unusual options for compilation or linking
+that the <CODE>configure</CODE> script does not know about.  You can
+give <CODE>configure</CODE> initial values for variables by setting
+them in the environment.  Using a Bourne-compatible shell, you
+can do that on the command line like this:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+</pre></td></tr></table></P><P>
+
+On systems that have the <CODE>env</CODE> program, you can do it like this:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+</pre></td></tr></table></P><P>
+
+The configuration process uses GCC to build Bash if it
+is available.
+</P><P>
+
+<A NAME="Compiling For Multiple Architectures"></A>
+<HR SIZE="6">
+<A NAME="SEC129"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC130"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC130"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 10.3 Compiling For Multiple Architectures </H2>
+<!--docid::SEC129::-->
+<P>
+
+You can compile Bash for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of <CODE>make</CODE> that
+supports the <CODE>VPATH</CODE> variable, such as GNU <CODE>make</CODE>.
+<CODE>cd</CODE> to the
+directory where you want the object files and executables to go and run
+the <CODE>configure</CODE> script from the source directory.  You may need to
+supply the <SAMP>`--srcdir=PATH'</SAMP> argument to tell <CODE>configure</CODE> where the
+source files are.  <CODE>configure</CODE> automatically checks for the
+source code in the directory that <CODE>configure</CODE> is in and in `..'.
+</P><P>
+
+If you have to use a <CODE>make</CODE> that does not supports 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 <SAMP>`make distclean'</SAMP> before
+reconfiguring for another architecture.
+</P><P>
+
+Alternatively, if your system supports symbolic links, you can use the
+<TT>`support/mkclone'</TT> script to create a build tree which has
+symbolic links back to each file in the source directory.  Here's an
+example that creates a build directory in the current directory from a
+source directory <TT>`/usr/gnu/src/bash-2.0'</TT>:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>bash /usr/gnu/src/bash-2.0/support/mkclone -s /usr/gnu/src/bash-2.0 .
+</pre></td></tr></table></P><P>
+
+The <CODE>mkclone</CODE> script requires Bash, so you must have already built
+Bash for at least one architecture before you can create build
+directories for other architectures.
+</P><P>
+
+<A NAME="Installation Names"></A>
+<HR SIZE="6">
+<A NAME="SEC130"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC129"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC131"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC131"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 10.4 Installation Names </H2>
+<!--docid::SEC130::-->
+<P>
+
+By default, <SAMP>`make install'</SAMP> will install into
+<TT>`/usr/local/bin'</TT>, <TT>`/usr/local/man'</TT>, etc.  You can
+specify an installation prefix other than <TT>`/usr/local'</TT> by
+giving <CODE>configure</CODE> the option <SAMP>`--prefix=<VAR>PATH</VAR>'</SAMP>,
+or by specifying a value for the <CODE>DESTDIR</CODE> <SAMP>`make'</SAMP>
+variable when running <SAMP>`make install'</SAMP>.
+</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>, <SAMP>`make install'</SAMP> will use
+<VAR>PATH</VAR> as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix. 
+</P><P>
+
+<A NAME="Specifying the System Type"></A>
+<HR SIZE="6">
+<A NAME="SEC131"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC130"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC132"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC132"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 10.5 Specifying the System Type </H2>
+<!--docid::SEC131::-->
+<P>
+
+There may be some features <CODE>configure</CODE> can not figure out
+automatically, but need 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.  <SAMP>`TYPE'</SAMP> can
+either be a short name for the system type, such as <SAMP>`sun4'</SAMP>,
+or a canonical name with three fields: <SAMP>`CPU-COMPANY-SYSTEM'</SAMP>
+(e.g., <SAMP>`i386-unknown-freebsd4.2'</SAMP>).
+</P><P>
+
+See the file <TT>`support/config.sub'</TT> for the possible
+values of each field. 
+</P><P>
+
+<A NAME="Sharing Defaults"></A>
+<HR SIZE="6">
+<A NAME="SEC132"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC131"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC133"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC133"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 10.6 Sharing Defaults </H2>
+<!--docid::SEC132::-->
+<P>
+
+If you want to set default values for <CODE>configure</CODE> scripts to
+share, you can create a site shell script called
+<CODE>config.site</CODE> that gives default values for variables like
+<CODE>CC</CODE>, <CODE>cache_file</CODE>, and <CODE>prefix</CODE>.  <CODE>configure</CODE>
+looks for <TT>`PREFIX/share/config.site'</TT> if it exists, then
+<TT>`PREFIX/etc/config.site'</TT> if it exists.  Or, you can set the
+<CODE>CONFIG_SITE</CODE> environment variable to the location of the site
+script.  A warning: the Bash <CODE>configure</CODE> looks for a site script,
+but not all <CODE>configure</CODE> scripts do.
+</P><P>
+
+<A NAME="Operation Controls"></A>
+<HR SIZE="6">
+<A NAME="SEC133"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC132"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC134"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC134"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 10.7 Operation Controls </H2>
+<!--docid::SEC133::-->
+<P>
+
+<CODE>configure</CODE> recognizes the following options to control how it
+operates.
+</P><P>
+
+<DL COMPACT>
+
+<DT><CODE>--cache-file=<VAR>file</VAR></CODE>
+<DD>Use and save the results of the tests in
+<VAR>file</VAR> instead of <TT>`./config.cache'</TT>.  Set <VAR>file</VAR> to
+<TT>`/dev/null'</TT> to disable caching, for debugging
+<CODE>configure</CODE>. 
+<P>
+
+<DT><CODE>--help</CODE>
+<DD>Print a summary of the options to <CODE>configure</CODE>, and exit.
+<P>
+
+<DT><CODE>--quiet</CODE>
+<DD><DT><CODE>--silent</CODE>
+<DD><DT><CODE>-q</CODE>
+<DD>Do not print messages saying which checks are being made.
+<P>
+
+<DT><CODE>--srcdir=<VAR>dir</VAR></CODE>
+<DD>Look for the Bash source code in directory <VAR>dir</VAR>.  Usually
+<CODE>configure</CODE> can determine that directory automatically.
+<P>
+
+<DT><CODE>--version</CODE>
+<DD>Print the version of Autoconf used to generate the <CODE>configure</CODE>
+script, and exit.
+</DL>
+<P>
+
+<CODE>configure</CODE> also accepts some other, not widely used, boilerplate
+options.  <SAMP>`configure --help'</SAMP> prints the complete list.
+</P><P>
+
+<A NAME="Optional Features"></A>
+<HR SIZE="6">
+<A NAME="SEC134"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC133"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 10.8 Optional Features </H2>
+<!--docid::SEC134::-->
+<P>
+
+The Bash <CODE>configure</CODE> has a number of <SAMP>`--enable-<VAR>feature</VAR>'</SAMP>
+options, where <VAR>feature</VAR> indicates an optional part of Bash.
+There are also several <SAMP>`--with-<VAR>package</VAR>'</SAMP> options,
+where <VAR>package</VAR> is something like <SAMP>`bash-malloc'</SAMP> or <SAMP>`purify'</SAMP>.
+To turn off the default use of a package, use
+<SAMP>`--without-<VAR>package</VAR>'</SAMP>.  To configure Bash without a feature
+that is enabled by default, use <SAMP>`--disable-<VAR>feature</VAR>'</SAMP>.
+</P><P>
+
+Here is a complete list of the <SAMP>`--enable-'</SAMP> and
+<SAMP>`--with-'</SAMP> options that the Bash <CODE>configure</CODE> recognizes. 
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>--with-afs</CODE>
+<DD>Define if you are using the Andrew File System from Transarc.
+<P>
+
+<DT><CODE>--with-bash-malloc</CODE>
+<DD>Use the Bash version of
+<CODE>malloc</CODE> in the directory <TT>`lib/malloc'</TT>.  This is not the same
+<CODE>malloc</CODE> that appears in GNU libc, but an older version
+originally derived from the 4.2 BSD <CODE>malloc</CODE>.  This <CODE>malloc</CODE>
+is very fast, but wastes some space on each allocation.
+This option is enabled by default.
+The <TT>`NOTES'</TT> file contains a list of systems for
+which this should be turned off, and <CODE>configure</CODE> disables this
+option automatically for a number of systems.
+<P>
+
+<DT><CODE>--with-curses</CODE>
+<DD>Use the curses library instead of the termcap library.  This should
+be supplied if your system has an inadequate or incomplete termcap
+database.
+<P>
+
+<DT><CODE>--with-gnu-malloc</CODE>
+<DD>A synonym for <CODE>--with-bash-malloc</CODE>.
+<P>
+
+<DT><CODE>--with-installed-readline[=<VAR>PREFIX</VAR>]</CODE>
+<DD>Define this to make Bash link with a locally-installed version of Readline
+rather than the version in <TT>`lib/readline'</TT>.  This works only with
+Readline 5.0 and later versions.  If <VAR>PREFIX</VAR> is <CODE>yes</CODE> or not
+supplied, <CODE>configure</CODE> uses the values of the make variables
+<CODE>includedir</CODE> and <CODE>libdir</CODE>, which are subdirectories of <CODE>prefix</CODE>
+by default, to find the installed version of Readline if it is not in
+the standard system include and library directories.
+If <VAR>PREFIX</VAR> is <CODE>no</CODE>, Bash links with the version in
+<TT>`lib/readline'</TT>.
+If <VAR>PREFIX</VAR> is set to any other value, <CODE>configure</CODE> treats it as
+a directory pathname and looks for
+the installed version of Readline in subdirectories of that directory
+(include files in <VAR>PREFIX</VAR>/<CODE>include</CODE> and the library in
+<VAR>PREFIX</VAR>/<CODE>lib</CODE>).
+<P>
+
+<DT><CODE>--with-purify</CODE>
+<DD>Define this to use the Purify memory allocation checker from Rational
+Software.
+<P>
+
+<DT><CODE>--enable-minimal-config</CODE>
+<DD>This produces a shell with minimal features, close to the historical
+Bourne shell.
+</DL>
+<P>
+
+There are several <SAMP>`--enable-'</SAMP> options that alter how Bash is
+compiled and linked, rather than changing run-time features.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>--enable-largefile</CODE>
+<DD>Enable support for <A HREF="http://www.sas.com/standards/large_file/x_open.20Mar96.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>
+
+<DT><CODE>--enable-profiling</CODE>
+<DD>This builds a Bash binary that produces profiling information to be
+processed by <CODE>gprof</CODE> each time it is executed.
+<P>
+
+<DT><CODE>--enable-static-link</CODE>
+<DD>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's shell.
+</DL>
+<P>
+
+The <SAMP>`minimal-config'</SAMP> option can be used to disable all of
+the following options, but it is processed first, so individual
+options may be enabled using <SAMP>`enable-<VAR>feature</VAR>'</SAMP>. 
+</P><P>
+
+All of the following options except for <SAMP>`disabled-builtins'</SAMP> and
+<SAMP>`xpg-echo-default'</SAMP> are
+enabled by default, unless the operating system does not provide the
+necessary support.
+</P><P>
+
+<DL COMPACT>
+<DT><CODE>--enable-alias</CODE>
+<DD>Allow alias expansion and include the <CODE>alias</CODE> and <CODE>unalias</CODE>
+builtins (see section <A HREF="bashref.html#SEC84">6.6 Aliases</A>).
+<P>
+
+<DT><CODE>--enable-arith-for-command</CODE>
+<DD>Include support for the alternate form of the <CODE>for</CODE> command
+that behaves like the C language <CODE>for</CODE> statement
+(see section <A HREF="bashref.html#SEC20">3.2.4.1 Looping Constructs</A>).
+<P>
+
+<DT><CODE>--enable-array-variables</CODE>
+<DD>Include support for one-dimensional array shell variables
+(see section <A HREF="bashref.html#SEC85">6.7 Arrays</A>).
+<P>
+
+<DT><CODE>--enable-bang-history</CODE>
+<DD>Include support for <CODE>csh</CODE>-like history substitution
+(see section <A HREF="bashref.html#SEC122">9.3 History Expansion</A>).
+<P>
+
+<DT><CODE>--enable-brace-expansion</CODE>
+<DD>Include <CODE>csh</CODE>-like brace expansion
+( <CODE>b{a,b}c</CODE> ==> <CODE>bac bbc</CODE> ).
+See <A HREF="bashref.html#SEC29">3.5.1 Brace Expansion</A>, for a complete description.
+<P>
+
+<DT><CODE>--enable-casemod-attributes</CODE>
+<DD>Include support for case-modifying attributes in the <CODE>declare</CODE> builtin
+and assignment statements.  Variables with the <VAR>uppercase</VAR> attribute,
+for example, will have their values converted to uppercase upon assignment.
+<P>
+
+<DT><CODE>--enable-casemod-expansion</CODE>
+<DD>Include support for case-modifying word expansions.
+<P>
+
+<DT><CODE>--enable-command-timing</CODE>
+<DD>Include support for recognizing <CODE>time</CODE> as a reserved word and for
+displaying timing statistics for the pipeline following <CODE>time</CODE>
+(see section <A HREF="bashref.html#SEC17">3.2.2 Pipelines</A>).
+This allows pipelines as well as shell builtins and functions to be timed.
+<P>
+
+<DT><CODE>--enable-cond-command</CODE>
+<DD>Include support for the <CODE>[[</CODE> conditional command.
+(see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>).
+<P>
+
+<DT><CODE>--enable-cond-regexp</CODE>
+<DD>Include support for matching POSIX regular expressions using the
+<SAMP>`=~'</SAMP> binary operator in the <CODE>[[</CODE> conditional command.
+(see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>).
+<P>
+
+<DT><CODE>--enable-coprocesses</CODE>
+<DD>Include support for coprocesses and the <CODE>coproc</CODE> reserved word
+(see section <A HREF="bashref.html#SEC17">3.2.2 Pipelines</A>).
+<P>
+
+<DT><CODE>--enable-debugger</CODE>
+<DD>Include support for the bash debugger (distributed separately).
+<P>
+
+<DT><CODE>--enable-directory-stack</CODE>
+<DD>Include support for a <CODE>csh</CODE>-like directory stack and the
+<CODE>pushd</CODE>, <CODE>popd</CODE>, and <CODE>dirs</CODE> builtins
+(see section <A HREF="bashref.html#SEC86">6.8 The Directory Stack</A>).
+<P>
+
+<DT><CODE>--enable-disabled-builtins</CODE>
+<DD>Allow builtin commands to be invoked via <SAMP>`builtin xxx'</SAMP>
+even after <CODE>xxx</CODE> has been disabled using <SAMP>`enable -n xxx'</SAMP>.
+See <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>, for details of the <CODE>builtin</CODE> and
+<CODE>enable</CODE> builtin commands.
+<P>
+
+<DT><CODE>--enable-dparen-arithmetic</CODE>
+<DD>Include support for the <CODE>((<small>...</small>))</CODE> command
+(see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>).
+<P>
+
+<DT><CODE>--enable-extended-glob</CODE>
+<DD>Include support for the extended pattern matching features described
+above under <A HREF="bashref.html#SEC37">3.5.8.1 Pattern Matching</A>.
+<P>
+
+<DT><CODE>--enable-help-builtin</CODE>
+<DD>Include the <CODE>help</CODE> builtin, which displays help on shell builtins and
+variables (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+<P>
+
+<DT><CODE>--enable-history</CODE>
+<DD>Include command history and the <CODE>fc</CODE> and <CODE>history</CODE>
+builtin commands (see section <A HREF="bashref.html#SEC120">9.1 Bash History Facilities</A>).
+<P>
+
+<DT><CODE>--enable-job-control</CODE>
+<DD>This enables the job control features (see section <A HREF="bashref.html#SEC91">7. Job Control</A>),
+if the operating system supports them.
+<P>
+
+<DT><CODE>--enable-multibyte</CODE>
+<DD>This enables support for multibyte characters if the operating
+system provides the necessary support.
+<P>
+
+<DT><CODE>--enable-net-redirections</CODE>
+<DD>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 section <A HREF="bashref.html#SEC39">3.6 Redirections</A>).
+<P>
+
+<DT><CODE>--enable-process-substitution</CODE>
+<DD>This enables process substitution (see section <A HREF="bashref.html#SEC34">3.5.6 Process Substitution</A>) if
+the operating system provides the necessary support.
+<P>
+
+<DT><CODE>--enable-progcomp</CODE>
+<DD>Enable the programmable completion facilities
+(see section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>).
+If Readline is not enabled, this option has no effect.
+<P>
+
+<DT><CODE>--enable-prompt-string-decoding</CODE>
+<DD>Turn on the interpretation of a number of backslash-escaped characters
+in the <CODE>$PS1</CODE>, <CODE>$PS2</CODE>, <CODE>$PS3</CODE>, and <CODE>$PS4</CODE> prompt
+strings.  See <A HREF="bashref.html#SEC88">6.9 Controlling the Prompt</A>, for a complete list of prompt
+string escape sequences.
+<P>
+
+<DT><CODE>--enable-readline</CODE>
+<DD>Include support for command-line editing and history with the Bash
+version of the Readline library (see section <A HREF="bashref.html#SEC95">8. Command Line Editing</A>).
+<P>
+
+<DT><CODE>--enable-restricted</CODE>
+<DD>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="bashref.html#SEC89">6.10 The Restricted Shell</A>, for a description of restricted mode.
+<P>
+
+<DT><CODE>--enable-select</CODE>
+<DD>Include the <CODE>select</CODE> builtin, which allows the generation of simple
+menus (see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>).
+<P>
+
+<DT><CODE>--enable-separate-helpfiles</CODE>
+<DD>Use external files for the documentation displayed by the <CODE>help</CODE> builtin
+instead of storing the text internally.
+<P>
+
+<DT><CODE>--enable-single-help-strings</CODE>
+<DD>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>
+
+<DT><CODE>--enable-strict-posix-default</CODE>
+<DD>Make Bash POSIX-conformant by default (see section <A HREF="bashref.html#SEC90">6.11 Bash POSIX Mode</A>).
+<P>
+
+<DT><CODE>--enable-usg-echo-default</CODE>
+<DD>A synonym for <CODE>--enable-xpg-echo-default</CODE>.
+<P>
+
+<DT><CODE>--enable-xpg-echo-default</CODE>
+<DD>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 section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>, for a description of the escape sequences that
+<CODE>echo</CODE> recognizes.
+<P>
+
+</DL>
+<P>
+
+The file <TT>`config-top.h'</TT> contains C Preprocessor
+<SAMP>`#define'</SAMP> statements for options which are not settable from
+<CODE>configure</CODE>.
+Some of these are not meant to be changed; beware of the consequences if
+you do.
+Read the comments associated with each definition for more
+information about its effect.
+</P><P>
+
+<A NAME="Reporting Bugs"></A>
+<HR SIZE="6">
+<A NAME="SEC135"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC134"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> A. Reporting Bugs </H1>
+<!--docid::SEC135::-->
+<P>
+
+Please report all bugs you find in Bash.
+But first, you should
+make sure that it really is a bug, and that it appears in the latest
+version of Bash.
+The latest version of Bash is always available for FTP from
+<A HREF="ftp://ftp.gnu.org/pub/bash/">ftp://ftp.gnu.org/pub/bash/</A>.
+</P><P>
+
+Once you have determined that a bug actually exists, use the
+<CODE>bashbug</CODE> command to submit a bug report.
+If you have a fix, you are encouraged to mail that as well!
+Suggestions and `philosophical' bug reports may be mailed
+to <A HREF="mailto:bug-bash@gnu.org">bug-bash@gnu.org</A> or posted to the Usenet
+newsgroup <CODE>gnu.bash.bug</CODE>.
+</P><P>
+
+All bug reports should include:
+<UL>
+<LI>
+The version number of Bash.
+<LI>
+The hardware and operating system.
+<LI>
+The compiler used to compile Bash.
+<LI>
+A description of the bug behaviour.
+<LI>
+A short script or `recipe' which exercises the bug and may be used
+to reproduce it.
+</UL>
+<P>
+
+<CODE>bashbug</CODE> inserts the first three items automatically into
+the template it provides for filing a bug report.
+</P><P>
+
+Please send all reports concerning this manual to
+<A HREF="mailto:chet@po.CWRU.Edu">chet@po.CWRU.Edu</A>.
+</P><P>
+
+<A NAME="Major Differences From The Bourne Shell"></A>
+<HR SIZE="6">
+<A NAME="SEC136"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> B. Major Differences From The Bourne Shell </H1>
+<!--docid::SEC136::-->
+<P>
+
+Bash implements essentially the same grammar, parameter and
+variable expansion, redirection, and quoting as the Bourne Shell. 
+Bash uses the POSIX standard as the specification of
+how these features are to be implemented.  There are some
+differences between the traditional Bourne shell and Bash; this
+section quickly details the differences of significance.  A
+number of these differences are explained in greater depth in
+previous sections.
+This section uses the version of <CODE>sh</CODE> included in SVR4.2 (the
+last version of the historical Bourne shell) as the baseline reference.
+</P><P>
+
+<UL>
+
+<LI>
+Bash is POSIX-conformant, even where the POSIX specification
+differs from traditional <CODE>sh</CODE> behavior (see section <A HREF="bashref.html#SEC90">6.11 Bash POSIX Mode</A>).
+<P>
+
+<LI>
+Bash has multi-character invocation options (see section <A HREF="bashref.html#SEC69">6.1 Invoking Bash</A>).
+<P>
+
+<LI>
+Bash has command-line editing (see section <A HREF="bashref.html#SEC95">8. Command Line Editing</A>) and
+the <CODE>bind</CODE> builtin.
+<P>
+
+<LI>
+Bash provides a programmable word completion mechanism
+(see section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>), and builtin commands
+<CODE>complete</CODE>, <CODE>compgen</CODE>, and <CODE>compopt</CODE>, to
+manipulate it.
+<P>
+
+<LI>
+Bash has command history (see section <A HREF="bashref.html#SEC120">9.1 Bash History Facilities</A>) and the
+<CODE>history</CODE> and <CODE>fc</CODE> builtins to manipulate it.
+The Bash history list maintains timestamp information and uses the
+value of the <CODE>HISTTIMEFORMAT</CODE> variable to display it.
+<P>
+
+<LI>
+Bash implements <CODE>csh</CODE>-like history expansion
+(see section <A HREF="bashref.html#SEC122">9.3 History Expansion</A>).
+<P>
+
+<LI>
+Bash has one-dimensional array variables (see section <A HREF="bashref.html#SEC85">6.7 Arrays</A>), and the
+appropriate variable expansions and assignment syntax to use them.
+Several of the Bash builtins take options to act on arrays.
+Bash provides a number of built-in array variables.
+<P>
+
+<LI>
+The <CODE>$'<small>...</small>'</CODE> quoting syntax, which expands ANSI-C
+backslash-escaped characters in the text between the single quotes,
+is supported (see section <A HREF="bashref.html#SEC12">3.1.2.4 ANSI-C Quoting</A>).
+<P>
+
+<LI>
+Bash supports the <CODE>$"<small>...</small>"</CODE> quoting syntax to do
+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 section <A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A>).
+<P>
+
+<LI>
+Bash implements the <CODE>!</CODE> keyword to negate the return value of
+a pipeline (see section <A HREF="bashref.html#SEC17">3.2.2 Pipelines</A>).
+Very useful when an <CODE>if</CODE> statement needs to act only if a test fails.
+The Bash <SAMP>`-o pipefail'</SAMP> option to <CODE>set</CODE> will cause a pipeline to
+return a failure status if any command fails.
+<P>
+
+<LI>
+Bash has the <CODE>time</CODE> reserved word and command timing (see section <A HREF="bashref.html#SEC17">3.2.2 Pipelines</A>).
+The display of the timing statistics may be controlled with the
+<CODE>TIMEFORMAT</CODE> variable.
+<P>
+
+<LI>
+Bash implements the <CODE>for (( <VAR>expr1</VAR> ; <VAR>expr2</VAR> ; <VAR>expr3</VAR> ))</CODE>
+arithmetic for command, similar to the C language (see section <A HREF="bashref.html#SEC20">3.2.4.1 Looping Constructs</A>).
+<P>
+
+<LI>
+Bash includes the <CODE>select</CODE> compound command, which allows the
+generation of simple menus (see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>).
+<P>
+
+<LI>
+Bash includes the <CODE>[[</CODE> compound command, which makes conditional
+testing part of the shell grammar (see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>), including
+optional regular expression matching.
+<P>
+
+<LI>
+Bash provides optional case-insensitive matching for the <CODE>case</CODE> and
+<CODE>[[</CODE> constructs.
+<P>
+
+<LI>
+Bash includes brace expansion (see section <A HREF="bashref.html#SEC29">3.5.1 Brace Expansion</A>) and tilde
+expansion (see section <A HREF="bashref.html#SEC30">3.5.2 Tilde Expansion</A>).
+<P>
+
+<LI>
+Bash implements command aliases and the <CODE>alias</CODE> and <CODE>unalias</CODE>
+builtins (see section <A HREF="bashref.html#SEC84">6.6 Aliases</A>).
+<P>
+
+<LI>
+Bash provides shell arithmetic, the <CODE>((</CODE> compound command
+(see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>),
+and arithmetic expansion (see section <A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A>).
+<P>
+
+<LI>
+Variables present in the shell's initial environment are automatically
+exported to child processes.  The Bourne shell does not normally do
+this unless the variables are explicitly marked using the <CODE>export</CODE>
+command.
+<P>
+
+<LI>
+Bash supports the <SAMP>`+='</SAMP> assignment operator, which appends to the value
+of the variable named on the left hand side.
+<P>
+
+<LI>
+Bash includes the POSIX pattern removal <SAMP>`%'</SAMP>, <SAMP>`#'</SAMP>, <SAMP>`%%'</SAMP>
+and <SAMP>`##'</SAMP> expansions to remove leading or trailing substrings from
+variable values (see section <A HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A>).
+<P>
+
+<LI>
+The expansion <CODE>${#xx}</CODE>, which returns the length of <CODE>${xx}</CODE>,
+is supported (see section <A HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A>).
+<P>
+
+<LI>
+The expansion <CODE>${var:</CODE><VAR>offset</VAR><CODE>[:</CODE><VAR>length</VAR><CODE>]}</CODE>,
+which expands to the substring of <CODE>var</CODE>'s value of length
+<VAR>length</VAR>, beginning at <VAR>offset</VAR>, is present
+(see section <A HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A>).
+<P>
+
+<LI>
+The expansion
+<CODE>${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 section <A HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A>).
+<P>
+
+<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 section <A HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A>).
+<P>
+
+<LI>
+Bash has <VAR>indirect</VAR> variable expansion using <CODE>${!word}</CODE>
+(see section <A HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A>).
+<P>
+
+<LI>
+Bash can expand positional parameters beyond <CODE>$9</CODE> using
+<CODE>${<VAR>num</VAR>}</CODE>.
+<P>
+
+<LI>
+The POSIX <CODE>$()</CODE> form of command substitution
+is implemented (see section <A HREF="bashref.html#SEC32">3.5.4 Command Substitution</A>),
+and preferred to the Bourne shell's <CODE>"</CODE> (which
+is also implemented for backwards compatibility).
+<P>
+
+<LI>
+Bash has process substitution (see section <A HREF="bashref.html#SEC34">3.5.6 Process Substitution</A>).
+<P>
+
+<LI>
+Bash automatically assigns variables that provide information about the
+current user (<CODE>UID</CODE>, <CODE>EUID</CODE>, and <CODE>GROUPS</CODE>), the current host
+(<CODE>HOSTTYPE</CODE>, <CODE>OSTYPE</CODE>, <CODE>MACHTYPE</CODE>, and <CODE>HOSTNAME</CODE>),
+and the instance of Bash that is running (<CODE>BASH</CODE>,
+<CODE>BASH_VERSION</CODE>, and <CODE>BASH_VERSINFO</CODE>).  See section <A HREF="bashref.html#SEC67">5.2 Bash Variables</A>,
+for details.
+<P>
+
+<LI>
+The <CODE>IFS</CODE> variable is used to split only the results of expansion,
+not all words (see section <A HREF="bashref.html#SEC35">3.5.7 Word Splitting</A>).
+This closes a longstanding shell security hole.
+<P>
+
+<LI>
+Bash implements the full set of POSIX filename expansion operators,
+including <VAR>character classes</VAR>, <VAR>equivalence classes</VAR>, and
+<VAR>collating symbols</VAR> (see section <A HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A>).
+<P>
+
+<LI>
+Bash implements extended pattern matching features when the <CODE>extglob</CODE>
+shell option is enabled (see section <A HREF="bashref.html#SEC37">3.5.8.1 Pattern Matching</A>).
+<P>
+
+<LI>
+It is possible to have a variable and a function with the same name;
+<CODE>sh</CODE> does not separate the two name spaces.
+<P>
+
+<LI>
+Bash functions are permitted to have local variables using the
+<CODE>local</CODE> builtin, and thus useful recursive functions may be written
+(see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+<P>
+
+<LI>
+Variable assignments preceding commands affect only that command, even
+builtins and functions (see section <A HREF="bashref.html#SEC54">3.7.4 Environment</A>).
+In <CODE>sh</CODE>, all variable assignments 
+preceding commands are global unless the command is executed from the
+file system.
+<P>
+
+<LI>
+Bash performs filename expansion on filenames specified as operands
+to input and output redirection operators (see section <A HREF="bashref.html#SEC39">3.6 Redirections</A>).
+<P>
+
+<LI>
+Bash contains the <SAMP>`&#60;&#62;'</SAMP> redirection operator, allowing a file to be
+opened for both reading and writing, and the <SAMP>`&#38;&#62;'</SAMP> redirection
+operator, for directing standard output and standard error to the same
+file (see section <A HREF="bashref.html#SEC39">3.6 Redirections</A>).
+<P>
+
+<LI>
+Bash includes the <SAMP>`&#60;&#60;&#60;'</SAMP> redirection operator, allowing a string to
+be used as the standard input to a command.
+<P>
+
+<LI>
+Bash implements the <SAMP>`[n]&#60;&#38;<VAR>word</VAR>'</SAMP> and <SAMP>`[n]&#62;&#38;<VAR>word</VAR>'</SAMP>
+redirection operators, which move one file descriptor to another.
+<P>
+
+<LI>
+Bash treats a number of filenames specially when they are
+used in redirection operators (see section <A HREF="bashref.html#SEC39">3.6 Redirections</A>).
+<P>
+
+<LI>
+Bash can open network connections to arbitrary machines and services
+with the redirection operators (see section <A HREF="bashref.html#SEC39">3.6 Redirections</A>).
+<P>
+
+<LI>
+The <CODE>noclobber</CODE> option is available to avoid overwriting existing
+files with output redirection (see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+The <SAMP>`&#62;|'</SAMP> redirection operator may be used to override <CODE>noclobber</CODE>.
+<P>
+
+<LI>
+The Bash <CODE>cd</CODE> and <CODE>pwd</CODE> builtins (see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>)
+each take <SAMP>`-L'</SAMP> and <SAMP>`-P'</SAMP> options to switch between logical and
+physical modes.
+<P>
+
+<LI>
+Bash allows a function to override a builtin with the same name, and provides
+access to that builtin's functionality within the function via the
+<CODE>builtin</CODE> and <CODE>command</CODE> builtins (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+<P>
+
+<LI>
+The <CODE>command</CODE> builtin allows selective disabling of functions
+when command lookup is performed (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+<P>
+
+<LI>
+Individual builtins may be enabled or disabled using the <CODE>enable</CODE>
+builtin (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+<P>
+
+<LI>
+The Bash <CODE>exec</CODE> builtin takes additional options that allow users
+to control the contents of the environment passed to the executed
+command, and what the zeroth argument to the command is to be
+(see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+<P>
+
+<LI>
+Shell functions may be exported to children via the environment
+using <CODE>export -f</CODE> (see section <A HREF="bashref.html#SEC24">3.3 Shell Functions</A>).
+<P>
+
+<LI>
+The Bash <CODE>export</CODE>, <CODE>readonly</CODE>, and <CODE>declare</CODE> builtins can
+take a <SAMP>`-f'</SAMP> option to act on shell functions, a <SAMP>`-p'</SAMP> option to
+display variables with various attributes set in a format that can be
+used as shell input, a <SAMP>`-n'</SAMP> option to remove various variable
+attributes, and <SAMP>`name=value'</SAMP> arguments to set variable attributes
+and values simultaneously.
+<P>
+
+<LI>
+The Bash <CODE>hash</CODE> builtin allows a name to be associated with
+an arbitrary filename, even when that filename cannot be found by
+searching the <CODE>$PATH</CODE>, using <SAMP>`hash -p'</SAMP>
+(see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+<P>
+
+<LI>
+Bash includes a <CODE>help</CODE> builtin for quick reference to shell
+facilities (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+<P>
+
+<LI>
+The <CODE>printf</CODE> builtin is available to display formatted output
+(see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+<P>
+
+<LI>
+The Bash <CODE>read</CODE> builtin (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>)
+will read a line ending in <SAMP>`\'</SAMP> with
+the <SAMP>`-r'</SAMP> option, and will use the <CODE>REPLY</CODE> variable as a
+default if no non-option arguments are supplied.
+The Bash <CODE>read</CODE> builtin
+also accepts a prompt string with the <SAMP>`-p'</SAMP> option and will use
+Readline to obtain the line when given the <SAMP>`-e'</SAMP> option.
+The <CODE>read</CODE> builtin also has additional options to control input:
+the <SAMP>`-s'</SAMP> option will turn off echoing of input characters as
+they are read, the <SAMP>`-t'</SAMP> option will allow <CODE>read</CODE> to time out
+if input does not arrive within a specified number of seconds, the
+<SAMP>`-n'</SAMP> option will allow reading only a specified number of
+characters rather than a full line, and the <SAMP>`-d'</SAMP> option will read
+until a particular character rather than newline.
+<P>
+
+<LI>
+The <CODE>return</CODE> builtin may be used to abort execution of scripts
+executed with the <CODE>.</CODE> or <CODE>source</CODE> builtins
+(see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+<P>
+
+<LI>
+Bash includes the <CODE>shopt</CODE> builtin, for finer control of shell
+optional capabilities (see section <A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>), and allows these options
+to be set and unset at shell invocation (see section <A HREF="bashref.html#SEC69">6.1 Invoking Bash</A>).
+<P>
+
+<LI>
+Bash has much more optional behavior controllable with the <CODE>set</CODE>
+builtin (see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+<P>
+
+<LI>
+The <SAMP>`-x'</SAMP> (<CODE>xtrace</CODE>) option displays commands other than
+simple commands when performing an execution trace
+(see section <A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>).
+<P>
+
+<LI>
+The <CODE>test</CODE> builtin (see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>)
+is slightly different, as it implements the POSIX algorithm,
+which specifies the behavior based on the number of arguments.
+<P>
+
+<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
+debugger.
+<P>
+
+<LI>
+The <CODE>trap</CODE> builtin (see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>) allows a
+<CODE>DEBUG</CODE> pseudo-signal specification, similar to <CODE>EXIT</CODE>.
+Commands specified with a <CODE>DEBUG</CODE> trap are executed before every
+simple command, <CODE>for</CODE> command, <CODE>case</CODE> command,
+<CODE>select</CODE> command, every arithmetic <CODE>for</CODE> command, and before
+the first command executes in a shell function.
+The <CODE>DEBUG</CODE> trap is not inherited by shell functions unless the
+function has been given the <CODE>trace</CODE> attribute or the
+<CODE>functrace</CODE> option has been enabled using the <CODE>shopt</CODE> builtin.
+The <CODE>extdebug</CODE> shell option has additional effects on the
+<CODE>DEBUG</CODE> trap.
+<P>
+
+The <CODE>trap</CODE> builtin (see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>) allows an
+<CODE>ERR</CODE> pseudo-signal specification, similar to <CODE>EXIT</CODE> and <CODE>DEBUG</CODE>.
+Commands specified with an <CODE>ERR</CODE> trap are executed after a simple
+command fails, with a few exceptions.
+The <CODE>ERR</CODE> trap is not inherited by shell functions unless the
+<CODE>-o errtrace</CODE> option to the <CODE>set</CODE> builtin is enabled.
+</P><P>
+
+The <CODE>trap</CODE> builtin (see section <A HREF="bashref.html#SEC59">4.1 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
+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
+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><P>
+
+<LI>
+The Bash <CODE>type</CODE> builtin is more extensive and gives more information
+about the names it finds (see section <A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>).
+<P>
+
+<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
+that may be reused as input (see section <A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>).
+<P>
+
+<LI>
+Bash implements a <CODE>csh</CODE>-like directory stack, and provides the
+<CODE>pushd</CODE>, <CODE>popd</CODE>, and <CODE>dirs</CODE> builtins to manipulate it
+(see section <A HREF="bashref.html#SEC86">6.8 The Directory Stack</A>).
+Bash also makes the directory stack visible as the value of the
+<CODE>DIRSTACK</CODE> shell variable.
+<P>
+
+<LI>
+Bash interprets special backslash-escaped characters in the prompt
+strings when interactive (see section <A HREF="bashref.html#SEC88">6.9 Controlling the Prompt</A>).
+<P>
+
+<LI>
+The Bash restricted mode is more useful (see section <A HREF="bashref.html#SEC89">6.10 The Restricted Shell</A>);
+the SVR4.2 shell restricted mode is too limited.
+<P>
+
+<LI>
+The <CODE>disown</CODE> builtin can remove a job from the internal shell
+job table (see section <A HREF="bashref.html#SEC93">7.2 Job Control Builtins</A>) or suppress the sending
+of <CODE>SIGHUP</CODE> to a job when the shell exits as the result of a
+<CODE>SIGHUP</CODE>.
+<P>
+
+<LI>
+Bash includes a number of features to support a separate debugger for
+shell scripts.
+<P>
+
+<LI>
+The SVR4.2 shell has two privilege-related builtins
+(<CODE>mldmode</CODE> and <CODE>priv</CODE>) not present in Bash.
+<P>
+
+<LI>
+Bash does not have the <CODE>stop</CODE> or <CODE>newgrp</CODE> builtins.
+<P>
+
+<LI>
+Bash does not use the <CODE>SHACCT</CODE> variable or perform shell accounting.
+<P>
+
+<LI>
+The SVR4.2 <CODE>sh</CODE> uses a <CODE>TIMEOUT</CODE> variable like Bash uses
+<CODE>TMOUT</CODE>.
+<P>
+
+</UL>
+<P>
+
+More features unique to Bash may be found in <A HREF="bashref.html#SEC68">6. Bash Features</A>.
+</P><P>
+
+<HR SIZE="6">
+<A NAME="SEC137"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> B.1 Implementation Differences From The SVR4.2 Shell </H2>
+<!--docid::SEC137::-->
+<P>
+
+Since Bash is a completely new implementation, it does not suffer from
+many of the limitations of the SVR4.2 shell.  For instance:
+</P><P>
+
+<UL>
+
+<LI>
+Bash does not fork a subshell when redirecting into or out of
+a shell control structure such as  an <CODE>if</CODE> or <CODE>while</CODE>
+statement.
+<P>
+
+<LI>
+Bash does not allow unbalanced quotes.  The SVR4.2 shell will silently
+insert a needed closing quote at <CODE>EOF</CODE> under certain circumstances.
+This can be the cause of some hard-to-find errors.
+<P>
+
+<LI>
+The SVR4.2 shell uses a baroque memory management scheme based on
+trapping <CODE>SIGSEGV</CODE>.  If the shell is started from a process with
+<CODE>SIGSEGV</CODE> blocked (e.g., by using the <CODE>system()</CODE> C library
+function call), it misbehaves badly.
+<P>
+
+<LI>
+In a questionable attempt at security, the SVR4.2 shell,
+when invoked without the <SAMP>`-p'</SAMP> option, will alter its real
+and effective UID and GID if they are less than some
+magic threshold value, commonly 100.
+This can lead to unexpected results.
+<P>
+
+<LI>
+The SVR4.2 shell does not allow users to trap <CODE>SIGSEGV</CODE>,
+<CODE>SIGALRM</CODE>, or <CODE>SIGCHLD</CODE>.
+<P>
+
+<LI>
+The SVR4.2 shell does not allow the <CODE>IFS</CODE>, <CODE>MAILCHECK</CODE>,
+<CODE>PATH</CODE>, <CODE>PS1</CODE>, or <CODE>PS2</CODE> variables to be unset.
+<P>
+
+<LI>
+The SVR4.2 shell treats <SAMP>`^'</SAMP> as the undocumented equivalent of
+<SAMP>`|'</SAMP>.
+<P>
+
+<LI>
+Bash allows multiple option arguments when it is invoked (<CODE>-x -v</CODE>);
+the SVR4.2 shell allows only one option argument (<CODE>-xv</CODE>).  In
+fact, some versions of the shell dump core if the second argument begins
+with a <SAMP>`-'</SAMP>.
+<P>
+
+<LI>
+The SVR4.2 shell exits a script if any builtin fails; Bash exits
+a script only if one of the POSIX special builtins fails, and
+only for certain failures, as enumerated in the POSIX standard.
+<P>
+
+<LI>
+The SVR4.2 shell behaves differently when invoked as <CODE>jsh</CODE>
+(it turns on job control).
+</UL>
+<P>
+
+<A NAME="GNU Free Documentation License"></A>
+<HR SIZE="6">
+<A NAME="SEC138"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> C. GNU Free Documentation License </H1>
+<!--docid::SEC138::-->
+<P>
+
+<center>
+ Version 1.2, November 2002
+</center>
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=display><pre style="font-family: serif">Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table></P><P>
+
+<OL>
+<LI>
+PREAMBLE
+<P>
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document <EM>free</EM> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</P><P>
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</P><P>
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</P><P>
+
+<LI>
+APPLICABILITY AND DEFINITIONS
+<P>
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The "Document", below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as "you".  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</P><P>
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</P><P>
+
+A "Secondary Section" is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</P><P>
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</P><P>
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</P><P>
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not "Transparent" is called "Opaque".
+</P><P>
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input
+format, <FONT SIZE="-1">SGML</FONT> or <FONT SIZE="-1">XML</FONT> using a publicly available
+<FONT SIZE="-1">DTD</FONT>, and standard-conforming simple <FONT SIZE="-1">HTML</FONT>,
+PostScript or <FONT SIZE="-1">PDF</FONT> designed for human modification.  Examples
+of transparent image formats include <FONT SIZE="-1">PNG</FONT>, <FONT SIZE="-1">XCF</FONT> and
+<FONT SIZE="-1">JPG</FONT>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <FONT SIZE="-1">SGML</FONT> or
+<FONT SIZE="-1">XML</FONT> for which the <FONT SIZE="-1">DTD</FONT> and/or processing tools are
+not generally available, and the machine-generated <FONT SIZE="-1">HTML</FONT>,
+PostScript or <FONT SIZE="-1">PDF</FONT> produced by some word processors for
+output purposes only.
+</P><P>
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+</P><P>
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".)  To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+</P><P>
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</P><P>
+
+<LI>
+VERBATIM COPYING
+<P>
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</P><P>
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</P><P>
+
+<LI>
+COPYING IN QUANTITY
+<P>
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</P><P>
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</P><P>
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</P><P>
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</P><P>
+
+<LI>
+MODIFICATIONS
+<P>
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</P><P>
+
+<OL>
+<LI>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+<P>
+
+<LI>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+<P>
+
+<LI>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+<P>
+
+<LI>
+Preserve all the copyright notices of the Document.
+<P>
+
+<LI>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+<P>
+
+<LI>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+<P>
+
+<LI>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document's license notice.
+<P>
+
+<LI>
+Include an unaltered copy of this License.
+<P>
+
+<LI>
+Preserve the section Entitled "History", Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled "History" in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+<P>
+
+<LI>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the "History" section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+<P>
+
+<LI>
+For any section Entitled "Acknowledgements" or "Dedications", Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+<P>
+
+<LI>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+<P>
+
+<LI>
+Delete any section Entitled "Endorsements".  Such a section
+may not be included in the Modified Version.
+<P>
+
+<LI>
+Do not retitle any existing section to be Entitled "Endorsements" or
+to conflict in title with any Invariant Section.
+<P>
+
+<LI>
+Preserve any Warranty Disclaimers.
+</OL>
+<P>
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+</P><P>
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</P><P>
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</P><P>
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</P><P>
+
+<LI>
+COMBINING DOCUMENTS
+<P>
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</P><P>
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</P><P>
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications".  You must delete all
+sections Entitled "Endorsements."
+</P><P>
+
+<LI>
+COLLECTIONS OF DOCUMENTS
+<P>
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</P><P>
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</P><P>
+
+<LI>
+AGGREGATION WITH INDEPENDENT WORKS
+<P>
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</P><P>
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</P><P>
+
+<LI>
+TRANSLATION
+<P>
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</P><P>
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</P><P>
+
+<LI>
+TERMINATION
+<P>
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</P><P>
+
+<LI>
+FUTURE REVISIONS OF THIS LICENSE
+<P>
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<A HREF="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</A>.
+</P><P>
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</OL>
+<P>
+
+<A NAME="SEC139"></A>
+<H2> ADDENDUM: How to use this License for your documents </H2>
+<!--docid::SEC139::-->
+<P>
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre>  Copyright (C)  <VAR>year</VAR>  <VAR>your name</VAR>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or 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''.
+</FONT></pre></td></tr></table></P><P>
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with<small>...</small>Texts." line with this:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre>    with the Invariant Sections being <VAR>list their titles</VAR>, with
+    the Front-Cover Texts being <VAR>list</VAR>, and with the Back-Cover Texts
+    being <VAR>list</VAR>.
+</FONT></pre></td></tr></table></P><P>
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</P><P>
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</P><P>
+
+<A NAME="Indexes"></A>
+<HR SIZE="6">
+<A NAME="SEC140"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> D. Indexes </H1>
+<!--docid::SEC140::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC141">D.1 Index of Shell Builtin Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of Bash builtin commands.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC142">D.2 Index of Shell Reserved Words</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of Bash reserved words.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC143">D.3 Parameter and 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"><A HREF="bashref.html#SEC144">D.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"><A HREF="bashref.html#SEC145">D.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></BLOCKQUOTE>
+<P>
+
+<A NAME="Builtin Index"></A>
+<HR SIZE="6">
+<A NAME="SEC141"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> D.1 Index of Shell Builtin Commands </H2>
+<!--docid::SEC141::-->
+<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#bt_." style="text-decoration:none"><b>.</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_:" style="text-decoration:none"><b>:</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_[" style="text-decoration:none"><b>[</b></A>
+ &nbsp; 
+<BR>
+<A HREF="bashref.html#bt_A" style="text-decoration:none"><b>A</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_B" style="text-decoration:none"><b>B</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_C" style="text-decoration:none"><b>C</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_D" style="text-decoration:none"><b>D</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_E" style="text-decoration:none"><b>E</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_G" style="text-decoration:none"><b>G</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_H" style="text-decoration:none"><b>H</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_J" style="text-decoration:none"><b>J</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_K" style="text-decoration:none"><b>K</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_L" style="text-decoration:none"><b>L</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_M" style="text-decoration:none"><b>M</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_P" style="text-decoration:none"><b>P</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_R" style="text-decoration:none"><b>R</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_S" style="text-decoration:none"><b>S</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_T" style="text-decoration:none"><b>T</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_U" style="text-decoration:none"><b>U</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_W" style="text-decoration:none"><b>W</b></A>
+ &nbsp; 
+</td></tr></table><br><P></P>
+<TABLE border=0>
+<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_."></A>.</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX69"><CODE>.</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_:"></A>:</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX68"><CODE>:</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_["></A>[</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX84"><CODE>[</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_A"></A>A</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX89"><CODE>alias</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_B"></A>B</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX289"><CODE>bg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC93">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX90"><CODE>bind</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX70"><CODE>break</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX91"><CODE>builtin</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_C"></A>C</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX92"><CODE>caller</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX71"><CODE>cd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX93"><CODE>command</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX531"><CODE>compgen</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC118">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX532"><CODE>complete</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC118">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX533"><CODE>compopt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC118">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX72"><CODE>continue</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_D"></A>D</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX94"><CODE>declare</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX286"><CODE>dirs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC87">6.8.1 Directory Stack Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX294"><CODE>disown</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC93">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_E"></A>E</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX95"><CODE>echo</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX96"><CODE>enable</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX73"><CODE>eval</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX74"><CODE>exec</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX75"><CODE>exit</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX76"><CODE>export</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_F"></A>F</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX535"><CODE>fc</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC121">9.2 Bash History Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX290"><CODE>fg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC93">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_G"></A>G</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX77"><CODE>getopts</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_H"></A>H</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX78"><CODE>hash</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX97"><CODE>help</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX536"><CODE>history</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC121">9.2 Bash History Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_J"></A>J</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX291"><CODE>jobs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC93">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_K"></A>K</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX292"><CODE>kill</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC93">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_L"></A>L</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX98"><CODE>let</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX99"><CODE>local</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX100"><CODE>logout</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_M"></A>M</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX101"><CODE>mapfile</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_P"></A>P</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX287"><CODE>popd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC87">6.8.1 Directory Stack Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX102"><CODE>printf</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX288"><CODE>pushd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC87">6.8.1 Directory Stack Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX79"><CODE>pwd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_R"></A>R</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX103"><CODE>read</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX104"><CODE>readarray</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX80"><CODE>readonly</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX81"><CODE>return</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_S"></A>S</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX110"><CODE>set</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX82"><CODE>shift</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX111"><CODE>shopt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX105"><CODE>source</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX295"><CODE>suspend</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC93">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_T"></A>T</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX83"><CODE>test</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX85"><CODE>times</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX86"><CODE>trap</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX106"><CODE>type</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX107"><CODE>typeset</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_U"></A>U</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX108"><CODE>ulimit</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX87"><CODE>umask</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX109"><CODE>unalias</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX88"><CODE>unset</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="bt_W"></A>W</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX293"><CODE>wait</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC93">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#bt_." style="text-decoration:none"><b>.</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_:" style="text-decoration:none"><b>:</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_[" style="text-decoration:none"><b>[</b></A>
+ &nbsp; 
+<BR>
+<A HREF="bashref.html#bt_A" style="text-decoration:none"><b>A</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_B" style="text-decoration:none"><b>B</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_C" style="text-decoration:none"><b>C</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_D" style="text-decoration:none"><b>D</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_E" style="text-decoration:none"><b>E</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_G" style="text-decoration:none"><b>G</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_H" style="text-decoration:none"><b>H</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_J" style="text-decoration:none"><b>J</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_K" style="text-decoration:none"><b>K</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_L" style="text-decoration:none"><b>L</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_M" style="text-decoration:none"><b>M</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_P" style="text-decoration:none"><b>P</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_R" style="text-decoration:none"><b>R</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_S" style="text-decoration:none"><b>S</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_T" style="text-decoration:none"><b>T</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_U" style="text-decoration:none"><b>U</b></A>
+ &nbsp; 
+<A HREF="bashref.html#bt_W" style="text-decoration:none"><b>W</b></A>
+ &nbsp; 
+</td></tr></table><br><P>
+
+<A NAME="Reserved Word Index"></A>
+<HR SIZE="6">
+<A NAME="SEC142"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC143"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC143"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> D.2 Index of Shell Reserved Words </H2>
+<!--docid::SEC142::-->
+<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#rw_!" style="text-decoration:none"><b>!</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_[" style="text-decoration:none"><b>[</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_]" style="text-decoration:none"><b>]</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_{" style="text-decoration:none"><b>{</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_}" style="text-decoration:none"><b>}</b></A>
+ &nbsp; 
+<BR>
+<A HREF="bashref.html#rw_C" style="text-decoration:none"><b>C</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_D" style="text-decoration:none"><b>D</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_E" style="text-decoration:none"><b>E</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_I" style="text-decoration:none"><b>I</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_S" style="text-decoration:none"><b>S</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_T" style="text-decoration:none"><b>T</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_U" style="text-decoration:none"><b>U</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_W" style="text-decoration:none"><b>W</b></A>
+ &nbsp; 
+</td></tr></table><br><P></P>
+<TABLE border=0>
+<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_!"></A>!</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX25"><CODE>!</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC17">3.2.2 Pipelines</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_["></A>[</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX41"><CODE>[[</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_]"></A>]</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX42"><CODE>]]</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_{"></A>{</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX43"><CODE>{</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC22">3.2.4.3 Grouping Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_}"></A>}</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX44"><CODE>}</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC22">3.2.4.3 Grouping Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_C"></A>C</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX37"><CODE>case</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_D"></A>D</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX28"><CODE>do</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC20">3.2.4.1 Looping Constructs</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX29"><CODE>done</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC20">3.2.4.1 Looping Constructs</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_E"></A>E</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX35"><CODE>elif</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX34"><CODE>else</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX39"><CODE>esac</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_F"></A>F</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX36"><CODE>fi</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX31"><CODE>for</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC20">3.2.4.1 Looping Constructs</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX45"><CODE>function</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC24">3.3 Shell Functions</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_I"></A>I</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX32"><CODE>if</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX38"><CODE>in</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_S"></A>S</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX40"><CODE>select</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_T"></A>T</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX33"><CODE>then</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX24"><CODE>time</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC17">3.2.2 Pipelines</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_U"></A>U</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX27"><CODE>until</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC20">3.2.4.1 Looping Constructs</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="rw_W"></A>W</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX30"><CODE>while</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC20">3.2.4.1 Looping Constructs</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#rw_!" style="text-decoration:none"><b>!</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_[" style="text-decoration:none"><b>[</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_]" style="text-decoration:none"><b>]</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_{" style="text-decoration:none"><b>{</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_}" style="text-decoration:none"><b>}</b></A>
+ &nbsp; 
+<BR>
+<A HREF="bashref.html#rw_C" style="text-decoration:none"><b>C</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_D" style="text-decoration:none"><b>D</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_E" style="text-decoration:none"><b>E</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_I" style="text-decoration:none"><b>I</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_S" style="text-decoration:none"><b>S</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_T" style="text-decoration:none"><b>T</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_U" style="text-decoration:none"><b>U</b></A>
+ &nbsp; 
+<A HREF="bashref.html#rw_W" style="text-decoration:none"><b>W</b></A>
+ &nbsp; 
+</td></tr></table><br><P>
+
+<A NAME="Variable Index"></A>
+<HR SIZE="6">
+<A NAME="SEC143"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC144"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC144"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> D.3 Parameter and Variable Index </H2>
+<!--docid::SEC143::-->
+<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#vr_!" style="text-decoration:none"><b>!</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_#" style="text-decoration:none"><b>#</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_$" style="text-decoration:none"><b>$</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_*" style="text-decoration:none"><b>*</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_-" style="text-decoration:none"><b>-</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_0" style="text-decoration:none"><b>0</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_?" style="text-decoration:none"><b>?</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_@" style="text-decoration:none"><b>@</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr__" style="text-decoration:none"><b>_</b></A>
+ &nbsp; 
+<BR>
+<A HREF="bashref.html#vr_A" style="text-decoration:none"><b>A</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_B" style="text-decoration:none"><b>B</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_C" style="text-decoration:none"><b>C</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_D" style="text-decoration:none"><b>D</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_E" style="text-decoration:none"><b>E</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_G" style="text-decoration:none"><b>G</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_H" style="text-decoration:none"><b>H</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_I" style="text-decoration:none"><b>I</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_K" style="text-decoration:none"><b>K</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_L" style="text-decoration:none"><b>L</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_M" style="text-decoration:none"><b>M</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_O" style="text-decoration:none"><b>O</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_P" style="text-decoration:none"><b>P</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_R" style="text-decoration:none"><b>R</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_S" style="text-decoration:none"><b>S</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_T" style="text-decoration:none"><b>T</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_U" style="text-decoration:none"><b>U</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_V" style="text-decoration:none"><b>V</b></A>
+ &nbsp; 
+</td></tr></table><br><P></P>
+<TABLE border=0>
+<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_!"></A>!</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX58"><CODE>!</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX59"><CODE>!</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_#"></A>#</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX50"><CODE>#</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX51"><CODE>#</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_$"></A>$</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX56"><CODE>$</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX57"><CODE>$</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_*"></A>*</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX46"><CODE>*</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX47"><CODE>*</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_-"></A>-</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX54"><CODE>-</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX55"><CODE>-</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_0"></A>0</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX60"><CODE>0</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX61"><CODE>0</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_?"></A>?</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX52"><CODE>?</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX53"><CODE>?</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_@"></A>@</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX48"><CODE>@</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX49"><CODE>@</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr__"></A>_</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX62"><CODE>_</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX63"><CODE>_</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_A"></A>A</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX296"><CODE>auto_resume</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.3 Job Control Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX297"><CODE>auto_resume</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.3 Job Control Variables</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_B"></A>B</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX132"><CODE>BASH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX133"><CODE>BASH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX136"><CODE>BASH_ALIASES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX137"><CODE>BASH_ALIASES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX138"><CODE>BASH_ARGC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX139"><CODE>BASH_ARGC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX140"><CODE>BASH_ARGV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX141"><CODE>BASH_ARGV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX142"><CODE>BASH_CMDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX143"><CODE>BASH_CMDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX144"><CODE>BASH_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX145"><CODE>BASH_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX146"><CODE>BASH_ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX147"><CODE>BASH_ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX148"><CODE>BASH_EXECUTION_STRING</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX149"><CODE>BASH_EXECUTION_STRING</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX150"><CODE>BASH_LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX151"><CODE>BASH_LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX152"><CODE>BASH_REMATCH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX153"><CODE>BASH_REMATCH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX154"><CODE>BASH_SOURCE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX155"><CODE>BASH_SOURCE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX156"><CODE>BASH_SUBSHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX157"><CODE>BASH_SUBSHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX158"><CODE>BASH_VERSINFO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX159"><CODE>BASH_VERSINFO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX160"><CODE>BASH_VERSION</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX161"><CODE>BASH_VERSION</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX134"><CODE>BASHPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX135"><CODE>BASHPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX303"><CODE>bell-style</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX304"><CODE>bind-tty-special-chars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_C"></A>C</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX112"><CODE>CDPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX113"><CODE>CDPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX162"><CODE>COLUMNS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX163"><CODE>COLUMNS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX305"><CODE>comment-begin</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX164"><CODE>COMP_CWORD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX165"><CODE>COMP_CWORD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX172"><CODE>COMP_KEY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX173"><CODE>COMP_KEY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX166"><CODE>COMP_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX167"><CODE>COMP_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX168"><CODE>COMP_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX169"><CODE>COMP_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX170"><CODE>COMP_TYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX171"><CODE>COMP_TYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX174"><CODE>COMP_WORDBREAKS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX175"><CODE>COMP_WORDBREAKS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX176"><CODE>COMP_WORDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX177"><CODE>COMP_WORDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX306"><CODE>completion-prefix-display-length</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX307"><CODE>completion-query-items</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX178"><CODE>COMPREPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX179"><CODE>COMPREPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX308"><CODE>convert-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_D"></A>D</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX180"><CODE>DIRSTACK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX181"><CODE>DIRSTACK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX309"><CODE>disable-completion</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_E"></A>E</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX310"><CODE>editing-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX182"><CODE>EMACS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX183"><CODE>EMACS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX311"><CODE>enable-keypad</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX184"><CODE>EUID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX185"><CODE>EUID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX312"><CODE>expand-tilde</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_F"></A>F</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX186"><CODE>FCEDIT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX187"><CODE>FCEDIT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX188"><CODE>FIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX189"><CODE>FIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX190"><CODE>FUNCNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX191"><CODE>FUNCNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_G"></A>G</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX192"><CODE>GLOBIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX193"><CODE>GLOBIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX194"><CODE>GROUPS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX195"><CODE>GROUPS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_H"></A>H</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX196"><CODE>histchars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX197"><CODE>histchars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX198"><CODE>HISTCMD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX199"><CODE>HISTCMD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX200"><CODE>HISTCONTROL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX201"><CODE>HISTCONTROL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX202"><CODE>HISTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX203"><CODE>HISTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX204"><CODE>HISTFILESIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX205"><CODE>HISTFILESIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX206"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX207"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX313"><CODE>history-preserve-point</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX314"><CODE>history-size</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX208"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX209"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX210"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX211"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX114"><CODE>HOME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX115"><CODE>HOME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX315"><CODE>horizontal-scroll-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX212"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX213"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX214"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX215"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX216"><CODE>HOSTTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX217"><CODE>HOSTTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_I"></A>I</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX116"><CODE>IFS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX117"><CODE>IFS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX218"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX219"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX316"><CODE>input-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX220"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX221"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX318"><CODE>isearch-terminators</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_K"></A>K</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX319"><CODE>keymap</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_L"></A>L</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX222"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX223"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX224"><CODE>LC_ALL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX225"><CODE>LC_ALL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX226"><CODE>LC_COLLATE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX227"><CODE>LC_COLLATE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX228"><CODE>LC_CTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX229"><CODE>LC_CTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX21"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX230"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX231"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX232"><CODE>LC_NUMERIC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX233"><CODE>LC_NUMERIC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX234"><CODE>LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX235"><CODE>LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX236"><CODE>LINES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX237"><CODE>LINES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_M"></A>M</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX238"><CODE>MACHTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX239"><CODE>MACHTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX118"><CODE>MAIL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX119"><CODE>MAIL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX240"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX241"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX120"><CODE>MAILPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX121"><CODE>MAILPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX320"><CODE>mark-modified-lines</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX321"><CODE>mark-symlinked-directories</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX322"><CODE>match-hidden-files</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX317"><CODE>meta-flag</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_O"></A>O</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX242"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX243"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX122"><CODE>OPTARG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX123"><CODE>OPTARG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX244"><CODE>OPTERR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX245"><CODE>OPTERR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX124"><CODE>OPTIND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX125"><CODE>OPTIND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX246"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX247"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX323"><CODE>output-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_P"></A>P</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX324"><CODE>page-completions</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX126"><CODE>PATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX127"><CODE>PATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX248"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX249"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX250"><CODE>POSIXLY_CORRECT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX251"><CODE>POSIXLY_CORRECT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX252"><CODE>PPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX253"><CODE>PPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX254"><CODE>PROMPT_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX255"><CODE>PROMPT_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX256"><CODE>PROMPT_DIRTRIM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX257"><CODE>PROMPT_DIRTRIM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX128"><CODE>PS1</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX129"><CODE>PS1</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX130"><CODE>PS2</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX131"><CODE>PS2</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX258"><CODE>PS3</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX259"><CODE>PS3</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX260"><CODE>PS4</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX261"><CODE>PS4</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX262"><CODE>PWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX263"><CODE>PWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_R"></A>R</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX264"><CODE>RANDOM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX265"><CODE>RANDOM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX266"><CODE>REPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX267"><CODE>REPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX325"><CODE>revert-all-at-newline</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_S"></A>S</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX268"><CODE>SECONDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX269"><CODE>SECONDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX270"><CODE>SHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX271"><CODE>SHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX272"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX273"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX274"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX275"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX326"><CODE>show-all-if-ambiguous</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX327"><CODE>show-all-if-unmodified</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_T"></A>T</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX22"><CODE>TEXTDOMAIN</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX23"><CODE>TEXTDOMAINDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX276"><CODE>TIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX277"><CODE>TIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX278"><CODE>TMOUT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX279"><CODE>TMOUT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX280"><CODE>TMPDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX281"><CODE>TMPDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_U"></A>U</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX282"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX283"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.2 Bash Variables</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_V"></A>V</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX328"><CODE>visible-stats</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#vr_!" style="text-decoration:none"><b>!</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_#" style="text-decoration:none"><b>#</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_$" style="text-decoration:none"><b>$</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_*" style="text-decoration:none"><b>*</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_-" style="text-decoration:none"><b>-</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_0" style="text-decoration:none"><b>0</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_?" style="text-decoration:none"><b>?</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_@" style="text-decoration:none"><b>@</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr__" style="text-decoration:none"><b>_</b></A>
+ &nbsp; 
+<BR>
+<A HREF="bashref.html#vr_A" style="text-decoration:none"><b>A</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_B" style="text-decoration:none"><b>B</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_C" style="text-decoration:none"><b>C</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_D" style="text-decoration:none"><b>D</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_E" style="text-decoration:none"><b>E</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_G" style="text-decoration:none"><b>G</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_H" style="text-decoration:none"><b>H</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_I" style="text-decoration:none"><b>I</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_K" style="text-decoration:none"><b>K</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_L" style="text-decoration:none"><b>L</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_M" style="text-decoration:none"><b>M</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_O" style="text-decoration:none"><b>O</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_P" style="text-decoration:none"><b>P</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_R" style="text-decoration:none"><b>R</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_S" style="text-decoration:none"><b>S</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_T" style="text-decoration:none"><b>T</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_U" style="text-decoration:none"><b>U</b></A>
+ &nbsp; 
+<A HREF="bashref.html#vr_V" style="text-decoration:none"><b>V</b></A>
+ &nbsp; 
+</td></tr></table><br><P>
+
+<A NAME="Function Index"></A>
+<HR SIZE="6">
+<A NAME="SEC144"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC143"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC145"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC145"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> D.4 Function Index </H2>
+<!--docid::SEC144::-->
+<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#fn_A" style="text-decoration:none"><b>A</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_B" style="text-decoration:none"><b>B</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_C" style="text-decoration:none"><b>C</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_D" style="text-decoration:none"><b>D</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_E" style="text-decoration:none"><b>E</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_G" style="text-decoration:none"><b>G</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_H" style="text-decoration:none"><b>H</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_I" style="text-decoration:none"><b>I</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_K" style="text-decoration:none"><b>K</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_M" style="text-decoration:none"><b>M</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_N" style="text-decoration:none"><b>N</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_O" style="text-decoration:none"><b>O</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_P" style="text-decoration:none"><b>P</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_Q" style="text-decoration:none"><b>Q</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_R" style="text-decoration:none"><b>R</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_S" style="text-decoration:none"><b>S</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_T" style="text-decoration:none"><b>T</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_U" style="text-decoration:none"><b>U</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_Y" style="text-decoration:none"><b>Y</b></A>
+ &nbsp; 
+</td></tr></table><br><P></P>
+<TABLE border=0>
+<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_A"></A>A</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX479"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX480"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX349"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX350"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX521"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX522"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_B"></A>B</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX335"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX336"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX377"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX378"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX399"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX400"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX411"><CODE>backward-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX412"><CODE>backward-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX407"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX408"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX339"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX340"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX355"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX356"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX329"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX330"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_C"></A>C</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX475"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX476"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX393"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX394"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX495"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX496"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX497"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX498"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX345"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX346"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX435"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX436"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX461"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX462"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX445"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX446"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX457"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX458"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX469"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX470"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX449"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX450"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX453"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX454"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX423"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX424"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX425"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX426"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX421"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX422"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_D"></A>D</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX467"><CODE>dabbrev-expand ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX468"><CODE>dabbrev-expand ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX375"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX376"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX443"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX444"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX417"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX418"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX431"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX432"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX513"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX514"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX481"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX482"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX391"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX392"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX501"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX502"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX505"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX506"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX503"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX504"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX465"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX466"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_E"></A>E</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX529"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX530"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX473"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX474"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX357"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX358"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX331"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX332"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX493"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX494"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_F"></A>F</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX379"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX380"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX333"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX334"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX361"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX362"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX337"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX338"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_G"></A>G</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX507"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX508"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX509"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX510"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX511"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX512"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_H"></A>H</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX523"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX524"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX517"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX518"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX369"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX370"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX367"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX368"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_I"></A>I</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX499"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX500"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX439"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX440"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX525"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX526"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_K"></A>K</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX397"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX398"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX419"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX420"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX403"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX404"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX405"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX406"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_M"></A>M</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX519"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX520"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX441"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX442"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_N"></A>N</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX353"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX354"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX365"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX366"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX363"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX364"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_O"></A>O</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX527"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX528"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX395"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX396"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_P"></A>P</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX463"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX464"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX437"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX438"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX447"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX448"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX459"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX460"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX451"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX452"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX455"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX456"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX483"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX484"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX351"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX352"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_Q"></A>Q</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX381"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX382"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_R"></A>R</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX477"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX478"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX347"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX348"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX359"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX360"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX487"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX488"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_S"></A>S</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX383"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX384"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX491"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX492"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX343"><CODE>shell-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX344"><CODE>shell-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX515"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX516"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX341"><CODE>shell-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX342"><CODE>shell-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX409"><CODE>shell-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX410"><CODE>shell-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX471"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX472"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_T"></A>T</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX489"><CODE>tilde-expand (M-&#38;#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX490"><CODE>tilde-expand (M-&#38;#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX385"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX386"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX387"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX388"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_U"></A>U</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX485"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX486"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX433"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX434"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX415"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX416"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX401"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX402"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX413"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX414"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX389"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX390"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="fn_Y"></A>Y</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX427"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX428"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX373"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX374"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX371"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX372"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX429"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX430"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#fn_A" style="text-decoration:none"><b>A</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_B" style="text-decoration:none"><b>B</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_C" style="text-decoration:none"><b>C</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_D" style="text-decoration:none"><b>D</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_E" style="text-decoration:none"><b>E</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_G" style="text-decoration:none"><b>G</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_H" style="text-decoration:none"><b>H</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_I" style="text-decoration:none"><b>I</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_K" style="text-decoration:none"><b>K</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_M" style="text-decoration:none"><b>M</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_N" style="text-decoration:none"><b>N</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_O" style="text-decoration:none"><b>O</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_P" style="text-decoration:none"><b>P</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_Q" style="text-decoration:none"><b>Q</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_R" style="text-decoration:none"><b>R</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_S" style="text-decoration:none"><b>S</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_T" style="text-decoration:none"><b>T</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_U" style="text-decoration:none"><b>U</b></A>
+ &nbsp; 
+<A HREF="bashref.html#fn_Y" style="text-decoration:none"><b>Y</b></A>
+ &nbsp; 
+</td></tr></table><br><P>
+
+<A NAME="Concept Index"></A>
+<HR SIZE="6">
+<A NAME="SEC145"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC144"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> D.5 Concept Index </H2>
+<!--docid::SEC145::-->
+<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#cp_A" style="text-decoration:none"><b>A</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_B" style="text-decoration:none"><b>B</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_C" style="text-decoration:none"><b>C</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_D" style="text-decoration:none"><b>D</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_E" style="text-decoration:none"><b>E</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_H" style="text-decoration:none"><b>H</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_I" style="text-decoration:none"><b>I</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_J" style="text-decoration:none"><b>J</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_K" style="text-decoration:none"><b>K</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_L" style="text-decoration:none"><b>L</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_M" style="text-decoration:none"><b>M</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_N" style="text-decoration:none"><b>N</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_O" style="text-decoration:none"><b>O</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_P" style="text-decoration:none"><b>P</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_Q" style="text-decoration:none"><b>Q</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_R" style="text-decoration:none"><b>R</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_S" style="text-decoration:none"><b>S</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_T" style="text-decoration:none"><b>T</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_V" style="text-decoration:none"><b>V</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_W" style="text-decoration:none"><b>W</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_Y" style="text-decoration:none"><b>Y</b></A>
+ &nbsp; 
+</td></tr></table><br><P></P>
+<TABLE border=0>
+<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_A"></A>A</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC84">alias expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC84">6.6 Aliases</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC83">arithmetic evaluation</A></TD><TD valign=top><A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC33">arithmetic expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC33">3.5.5 Arithmetic Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC83">arithmetic, shell</A></TD><TD valign=top><A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC85">arrays</A></TD><TD valign=top><A HREF="bashref.html#SEC85">6.7 Arrays</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_B"></A>B</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC92">background</A></TD><TD valign=top><A HREF="bashref.html#SEC92">7.1 Job Control Basics</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC127">Bash configuration</A></TD><TD valign=top><A HREF="bashref.html#SEC127">10.1 Basic Installation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC127">Bash installation</A></TD><TD valign=top><A HREF="bashref.html#SEC127">10.1 Basic Installation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC5">Bourne shell</A></TD><TD valign=top><A HREF="bashref.html#SEC5">3. Basic Shell Features</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC29">brace expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC29">3.5.1 Brace Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX2">builtin</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_C"></A>C</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC98">command editing</A></TD><TD valign=top><A HREF="bashref.html#SEC98">8.2.1 Readline Bare Essentials</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC52">command execution</A></TD><TD valign=top><A HREF="bashref.html#SEC52">3.7.2 Command Search and Execution</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC51">command expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC51">3.7.1 Simple Command Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC120">command history</A></TD><TD valign=top><A HREF="bashref.html#SEC120">9.1 Bash History Facilities</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC52">command search</A></TD><TD valign=top><A HREF="bashref.html#SEC52">3.7.2 Command Search and Execution</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC32">command substitution</A></TD><TD valign=top><A HREF="bashref.html#SEC32">3.5.4 Command Substitution</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX26">command timing</A></TD><TD valign=top><A HREF="bashref.html#SEC17">3.2.2 Pipelines</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC19">commands, compound</A></TD><TD valign=top><A HREF="bashref.html#SEC19">3.2.4 Compound Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC21">commands, conditional</A></TD><TD valign=top><A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC22">commands, grouping</A></TD><TD valign=top><A HREF="bashref.html#SEC22">3.2.4.3 Grouping Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC18">commands, lists</A></TD><TD valign=top><A HREF="bashref.html#SEC18">3.2.3 Lists of Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC20">commands, looping</A></TD><TD valign=top><A HREF="bashref.html#SEC20">3.2.4.1 Looping Constructs</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC17">commands, pipelines</A></TD><TD valign=top><A HREF="bashref.html#SEC17">3.2.2 Pipelines</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC15">commands, shell</A></TD><TD valign=top><A HREF="bashref.html#SEC15">3.2 Shell Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC16">commands, simple</A></TD><TD valign=top><A HREF="bashref.html#SEC16">3.2.1 Simple Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC14">comments, shell</A></TD><TD valign=top><A HREF="bashref.html#SEC14">3.1.3 Comments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC118">completion builtins</A></TD><TD valign=top><A HREF="bashref.html#SEC118">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC127">configuration</A></TD><TD valign=top><A HREF="bashref.html#SEC127">10.1 Basic Installation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX3">control operator</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC23">coprocess</A></TD><TD valign=top><A HREF="bashref.html#SEC23">3.2.5 Coprocesses</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_D"></A>D</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC86">directory stack</A></TD><TD valign=top><A HREF="bashref.html#SEC86">6.8 The Directory Stack</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_E"></A>E</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC98">editing command lines</A></TD><TD valign=top><A HREF="bashref.html#SEC98">8.2.1 Readline Bare Essentials</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC54">environment</A></TD><TD valign=top><A HREF="bashref.html#SEC54">3.7.4 Environment</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC83">evaluation, arithmetic</A></TD><TD valign=top><A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC123">event designators</A></TD><TD valign=top><A HREF="bashref.html#SEC123">9.3.1 Event Designators</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC53">execution environment</A></TD><TD valign=top><A HREF="bashref.html#SEC53">3.7.3 Command Execution Environment</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX4">exit status</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC55">exit status</A></TD><TD valign=top><A HREF="bashref.html#SEC55">3.7.5 Exit Status</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC28">expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.5 Shell Expansions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC33">expansion, arithmetic</A></TD><TD valign=top><A HREF="bashref.html#SEC33">3.5.5 Arithmetic Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC29">expansion, brace</A></TD><TD valign=top><A HREF="bashref.html#SEC29">3.5.1 Brace Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX64">expansion, filename</A></TD><TD valign=top><A HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC31">expansion, parameter</A></TD><TD valign=top><A HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX65">expansion, pathname</A></TD><TD valign=top><A HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC30">expansion, tilde</A></TD><TD valign=top><A HREF="bashref.html#SEC30">3.5.2 Tilde Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC83">expressions, arithmetic</A></TD><TD valign=top><A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC82">expressions, conditional</A></TD><TD valign=top><A HREF="bashref.html#SEC82">6.4 Bash Conditional Expressions</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_F"></A>F</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX5">field</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX6">filename</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX66">filename expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC92">foreground</A></TD><TD valign=top><A HREF="bashref.html#SEC92">7.1 Job Control Basics</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC24">functions, shell</A></TD><TD valign=top><A HREF="bashref.html#SEC24">3.3 Shell Functions</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_H"></A>H</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC121">history builtins</A></TD><TD valign=top><A HREF="bashref.html#SEC121">9.2 Bash History Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX537">history events</A></TD><TD valign=top><A HREF="bashref.html#SEC123">9.3.1 Event Designators</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC122">history expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC122">9.3 History Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC120">history list</A></TD><TD valign=top><A HREF="bashref.html#SEC120">9.1 Bash History Facilities</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX534">History, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC118">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_I"></A>I</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX11">identifier</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC103">initialization file, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC103">8.3 Readline Init File</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC127">installation</A></TD><TD valign=top><A HREF="bashref.html#SEC127">10.1 Basic Installation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC97">interaction, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC97">8.2 Readline Interaction</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX285">interactive shell</A></TD><TD valign=top><A HREF="bashref.html#SEC69">6.1 Invoking Bash</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC78">interactive shell</A></TD><TD valign=top><A HREF="bashref.html#SEC78">6.3 Interactive Shells</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC13">internationalization</A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_J"></A>J</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX7">job</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX8">job control</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC92">job control</A></TD><TD valign=top><A HREF="bashref.html#SEC92">7.1 Job Control Basics</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_K"></A>K</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX301">kill ring</A></TD><TD valign=top><A HREF="bashref.html#SEC100">8.2.3 Readline Killing Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX299">killing text</A></TD><TD valign=top><A HREF="bashref.html#SEC100">8.2.3 Readline Killing Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_L"></A>L</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC13">localization</A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX284">login shell</A></TD><TD valign=top><A HREF="bashref.html#SEC69">6.1 Invoking Bash</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_M"></A>M</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC37">matching, pattern</A></TD><TD valign=top><A HREF="bashref.html#SEC37">3.5.8.1 Pattern Matching</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX9">metacharacter</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_N"></A>N</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX10">name</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC13">native languages</A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC98">notation, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC98">8.2.1 Readline Bare Essentials</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_O"></A>O</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX12">operator, shell</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_P"></A>P</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC31">parameter expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC25">parameters</A></TD><TD valign=top><A HREF="bashref.html#SEC25">3.4 Shell Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC26">parameters, positional</A></TD><TD valign=top><A HREF="bashref.html#SEC26">3.4.1 Positional Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC27">parameters, special</A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX67">pathname expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC37">pattern matching</A></TD><TD valign=top><A HREF="bashref.html#SEC37">3.5.8.1 Pattern Matching</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC17">pipeline</A></TD><TD valign=top><A HREF="bashref.html#SEC17">3.2.2 Pipelines</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX1">POSIX</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC90">POSIX Mode</A></TD><TD valign=top><A HREF="bashref.html#SEC90">6.11 Bash POSIX Mode</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX13">process group</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX14">process group ID</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC34">process substitution</A></TD><TD valign=top><A HREF="bashref.html#SEC34">3.5.6 Process Substitution</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC117">programmable completion</A></TD><TD valign=top><A HREF="bashref.html#SEC117">8.6 Programmable Completion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC88">prompting</A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.9 Controlling the Prompt</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_Q"></A>Q</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC8">quoting</A></TD><TD valign=top><A HREF="bashref.html#SEC8">3.1.2 Quoting</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC12">quoting, ANSI</A></TD><TD valign=top><A HREF="bashref.html#SEC12">3.1.2.4 ANSI-C Quoting</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_R"></A>R</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX298">Readline, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.3 Job Control Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC39">redirection</A></TD><TD valign=top><A HREF="bashref.html#SEC39">3.6 Redirections</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX15">reserved word</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC89">restricted shell</A></TD><TD valign=top><A HREF="bashref.html#SEC89">6.10 The Restricted Shell</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX16">return status</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_S"></A>S</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC83">shell arithmetic</A></TD><TD valign=top><A HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC24">shell function</A></TD><TD valign=top><A HREF="bashref.html#SEC24">3.3 Shell Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC57">shell script</A></TD><TD valign=top><A HREF="bashref.html#SEC57">3.8 Shell Scripts</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC25">shell variable</A></TD><TD valign=top><A HREF="bashref.html#SEC25">3.4 Shell Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC78">shell, interactive</A></TD><TD valign=top><A HREF="bashref.html#SEC78">6.3 Interactive Shells</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX17">signal</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC56">signal handling</A></TD><TD valign=top><A HREF="bashref.html#SEC56">3.7.6 Signals</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX18">special builtin</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC64">special builtin</A></TD><TD valign=top><A HREF="bashref.html#SEC64">4.4 Special Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC70">startup files</A></TD><TD valign=top><A HREF="bashref.html#SEC70">6.2 Bash Startup Files</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC92">suspending jobs</A></TD><TD valign=top><A HREF="bashref.html#SEC92">7.1 Job Control Basics</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_T"></A>T</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC30">tilde expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC30">3.5.2 Tilde Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX19">token</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC13">translation, native languages</A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_V"></A>V</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC25">variable, shell</A></TD><TD valign=top><A HREF="bashref.html#SEC25">3.4 Shell Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX302">variables, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_W"></A>W</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX20">word</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC35">word splitting</A></TD><TD valign=top><A HREF="bashref.html#SEC35">3.5.7 Word Splitting</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_Y"></A>Y</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX300">yanking text</A></TD><TD valign=top><A HREF="bashref.html#SEC100">8.2.3 Readline Killing Commands</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#cp_A" style="text-decoration:none"><b>A</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_B" style="text-decoration:none"><b>B</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_C" style="text-decoration:none"><b>C</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_D" style="text-decoration:none"><b>D</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_E" style="text-decoration:none"><b>E</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_H" style="text-decoration:none"><b>H</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_I" style="text-decoration:none"><b>I</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_J" style="text-decoration:none"><b>J</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_K" style="text-decoration:none"><b>K</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_L" style="text-decoration:none"><b>L</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_M" style="text-decoration:none"><b>M</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_N" style="text-decoration:none"><b>N</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_O" style="text-decoration:none"><b>O</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_P" style="text-decoration:none"><b>P</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_Q" style="text-decoration:none"><b>Q</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_R" style="text-decoration:none"><b>R</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_S" style="text-decoration:none"><b>S</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_T" style="text-decoration:none"><b>T</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_V" style="text-decoration:none"><b>V</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_W" style="text-decoration:none"><b>W</b></A>
+ &nbsp; 
+<A HREF="bashref.html#cp_Y" style="text-decoration:none"><b>Y</b></A>
+ &nbsp; 
+</td></tr></table><br><P>
+
+<HR SIZE="6">
+<A NAME="SEC_Contents"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1>Table of Contents</H1>
+<UL>
+<A NAME="TOC1" HREF="bashref.html#SEC1">1. Introduction</A>
+<BR>
+<UL>
+<A NAME="TOC2" HREF="bashref.html#SEC2">1.1 What is Bash?</A>
+<BR>
+<A NAME="TOC3" HREF="bashref.html#SEC3">1.2 What is a shell?</A>
+<BR>
+</UL>
+<A NAME="TOC4" HREF="bashref.html#SEC4">2. Definitions</A>
+<BR>
+<A NAME="TOC5" HREF="bashref.html#SEC5">3. Basic Shell Features</A>
+<BR>
+<UL>
+<A NAME="TOC6" HREF="bashref.html#SEC6">3.1 Shell Syntax</A>
+<BR>
+<UL>
+<A NAME="TOC7" HREF="bashref.html#SEC7">3.1.1 Shell Operation</A>
+<BR>
+<A NAME="TOC8" HREF="bashref.html#SEC8">3.1.2 Quoting</A>
+<BR>
+<UL>
+<A NAME="TOC9" HREF="bashref.html#SEC9">3.1.2.1 Escape Character</A>
+<BR>
+<A NAME="TOC10" HREF="bashref.html#SEC10">3.1.2.2 Single Quotes</A>
+<BR>
+<A NAME="TOC11" HREF="bashref.html#SEC11">3.1.2.3 Double Quotes</A>
+<BR>
+<A NAME="TOC12" HREF="bashref.html#SEC12">3.1.2.4 ANSI-C Quoting</A>
+<BR>
+<A NAME="TOC13" HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A>
+<BR>
+</UL>
+<A NAME="TOC14" HREF="bashref.html#SEC14">3.1.3 Comments</A>
+<BR>
+</UL>
+<A NAME="TOC15" HREF="bashref.html#SEC15">3.2 Shell Commands</A>
+<BR>
+<UL>
+<A NAME="TOC16" HREF="bashref.html#SEC16">3.2.1 Simple Commands</A>
+<BR>
+<A NAME="TOC17" HREF="bashref.html#SEC17">3.2.2 Pipelines</A>
+<BR>
+<A NAME="TOC18" HREF="bashref.html#SEC18">3.2.3 Lists of Commands</A>
+<BR>
+<A NAME="TOC19" HREF="bashref.html#SEC19">3.2.4 Compound Commands</A>
+<BR>
+<UL>
+<A NAME="TOC20" HREF="bashref.html#SEC20">3.2.4.1 Looping Constructs</A>
+<BR>
+<A NAME="TOC21" HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>
+<BR>
+<A NAME="TOC22" HREF="bashref.html#SEC22">3.2.4.3 Grouping Commands</A>
+<BR>
+</UL>
+<A NAME="TOC23" HREF="bashref.html#SEC23">3.2.5 Coprocesses</A>
+<BR>
+</UL>
+<A NAME="TOC24" HREF="bashref.html#SEC24">3.3 Shell Functions</A>
+<BR>
+<A NAME="TOC25" HREF="bashref.html#SEC25">3.4 Shell Parameters</A>
+<BR>
+<UL>
+<A NAME="TOC26" HREF="bashref.html#SEC26">3.4.1 Positional Parameters</A>
+<BR>
+<A NAME="TOC27" HREF="bashref.html#SEC27">3.4.2 Special Parameters</A>
+<BR>
+</UL>
+<A NAME="TOC28" HREF="bashref.html#SEC28">3.5 Shell Expansions</A>
+<BR>
+<UL>
+<A NAME="TOC29" HREF="bashref.html#SEC29">3.5.1 Brace Expansion</A>
+<BR>
+<A NAME="TOC30" HREF="bashref.html#SEC30">3.5.2 Tilde Expansion</A>
+<BR>
+<A NAME="TOC31" HREF="bashref.html#SEC31">3.5.3 Shell Parameter Expansion</A>
+<BR>
+<A NAME="TOC32" HREF="bashref.html#SEC32">3.5.4 Command Substitution</A>
+<BR>
+<A NAME="TOC33" HREF="bashref.html#SEC33">3.5.5 Arithmetic Expansion</A>
+<BR>
+<A NAME="TOC34" HREF="bashref.html#SEC34">3.5.6 Process Substitution</A>
+<BR>
+<A NAME="TOC35" HREF="bashref.html#SEC35">3.5.7 Word Splitting</A>
+<BR>
+<A NAME="TOC36" HREF="bashref.html#SEC36">3.5.8 Filename Expansion</A>
+<BR>
+<UL>
+<A NAME="TOC37" HREF="bashref.html#SEC37">3.5.8.1 Pattern Matching</A>
+<BR>
+</UL>
+<A NAME="TOC38" HREF="bashref.html#SEC38">3.5.9 Quote Removal</A>
+<BR>
+</UL>
+<A NAME="TOC39" HREF="bashref.html#SEC39">3.6 Redirections</A>
+<BR>
+<UL>
+<A NAME="TOC40" HREF="bashref.html#SEC40">3.6.1 Redirecting Input</A>
+<BR>
+<A NAME="TOC41" HREF="bashref.html#SEC41">3.6.2 Redirecting Output</A>
+<BR>
+<A NAME="TOC42" HREF="bashref.html#SEC42">3.6.3 Appending Redirected Output</A>
+<BR>
+<A NAME="TOC43" HREF="bashref.html#SEC43">3.6.4 Redirecting Standard Output and Standard Error</A>
+<BR>
+<A NAME="TOC44" HREF="bashref.html#SEC44">3.6.5 Appending Standard Output and Standard Error</A>
+<BR>
+<A NAME="TOC45" HREF="bashref.html#SEC45">3.6.6 Here Documents</A>
+<BR>
+<A NAME="TOC46" HREF="bashref.html#SEC46">3.6.7 Here Strings</A>
+<BR>
+<A NAME="TOC47" HREF="bashref.html#SEC47">3.6.8 Duplicating File Descriptors</A>
+<BR>
+<A NAME="TOC48" HREF="bashref.html#SEC48">3.6.9 Moving File Descriptors</A>
+<BR>
+<A NAME="TOC49" HREF="bashref.html#SEC49">3.6.10 Opening File Descriptors for Reading and Writing</A>
+<BR>
+</UL>
+<A NAME="TOC50" HREF="bashref.html#SEC50">3.7 Executing Commands</A>
+<BR>
+<UL>
+<A NAME="TOC51" HREF="bashref.html#SEC51">3.7.1 Simple Command Expansion</A>
+<BR>
+<A NAME="TOC52" HREF="bashref.html#SEC52">3.7.2 Command Search and Execution</A>
+<BR>
+<A NAME="TOC53" HREF="bashref.html#SEC53">3.7.3 Command Execution Environment</A>
+<BR>
+<A NAME="TOC54" HREF="bashref.html#SEC54">3.7.4 Environment</A>
+<BR>
+<A NAME="TOC55" HREF="bashref.html#SEC55">3.7.5 Exit Status</A>
+<BR>
+<A NAME="TOC56" HREF="bashref.html#SEC56">3.7.6 Signals</A>
+<BR>
+</UL>
+<A NAME="TOC57" HREF="bashref.html#SEC57">3.8 Shell Scripts</A>
+<BR>
+</UL>
+<A NAME="TOC58" HREF="bashref.html#SEC58">4. Shell Builtin Commands</A>
+<BR>
+<UL>
+<A NAME="TOC59" HREF="bashref.html#SEC59">4.1 Bourne Shell Builtins</A>
+<BR>
+<A NAME="TOC60" HREF="bashref.html#SEC60">4.2 Bash Builtin Commands</A>
+<BR>
+<A NAME="TOC61" HREF="bashref.html#SEC61">4.3 Modifying Shell Behavior</A>
+<BR>
+<UL>
+<A NAME="TOC62" HREF="bashref.html#SEC62">4.3.1 The Set Builtin</A>
+<BR>
+<A NAME="TOC63" HREF="bashref.html#SEC63">4.3.2 The Shopt Builtin</A>
+<BR>
+</UL>
+<A NAME="TOC64" HREF="bashref.html#SEC64">4.4 Special Builtins</A>
+<BR>
+</UL>
+<A NAME="TOC65" HREF="bashref.html#SEC65">5. Shell Variables</A>
+<BR>
+<UL>
+<A NAME="TOC66" HREF="bashref.html#SEC66">5.1 Bourne Shell Variables</A>
+<BR>
+<A NAME="TOC67" HREF="bashref.html#SEC67">5.2 Bash Variables</A>
+<BR>
+</UL>
+<A NAME="TOC68" HREF="bashref.html#SEC68">6. Bash Features</A>
+<BR>
+<UL>
+<A NAME="TOC69" HREF="bashref.html#SEC69">6.1 Invoking Bash</A>
+<BR>
+<A NAME="TOC70" HREF="bashref.html#SEC70">6.2 Bash Startup Files</A>
+<BR>
+<A NAME="TOC78" HREF="bashref.html#SEC78">6.3 Interactive Shells</A>
+<BR>
+<UL>
+<A NAME="TOC79" HREF="bashref.html#SEC79">6.3.1 What is an Interactive Shell?</A>
+<BR>
+<A NAME="TOC80" HREF="bashref.html#SEC80">6.3.2 Is this Shell Interactive?</A>
+<BR>
+<A NAME="TOC81" HREF="bashref.html#SEC81">6.3.3 Interactive Shell Behavior</A>
+<BR>
+</UL>
+<A NAME="TOC82" HREF="bashref.html#SEC82">6.4 Bash Conditional Expressions</A>
+<BR>
+<A NAME="TOC83" HREF="bashref.html#SEC83">6.5 Shell Arithmetic</A>
+<BR>
+<A NAME="TOC84" HREF="bashref.html#SEC84">6.6 Aliases</A>
+<BR>
+<A NAME="TOC85" HREF="bashref.html#SEC85">6.7 Arrays</A>
+<BR>
+<A NAME="TOC86" HREF="bashref.html#SEC86">6.8 The Directory Stack</A>
+<BR>
+<UL>
+<A NAME="TOC87" HREF="bashref.html#SEC87">6.8.1 Directory Stack Builtins</A>
+<BR>
+</UL>
+<A NAME="TOC88" HREF="bashref.html#SEC88">6.9 Controlling the Prompt</A>
+<BR>
+<A NAME="TOC89" HREF="bashref.html#SEC89">6.10 The Restricted Shell</A>
+<BR>
+<A NAME="TOC90" HREF="bashref.html#SEC90">6.11 Bash POSIX Mode</A>
+<BR>
+</UL>
+<A NAME="TOC91" HREF="bashref.html#SEC91">7. Job Control</A>
+<BR>
+<UL>
+<A NAME="TOC92" HREF="bashref.html#SEC92">7.1 Job Control Basics</A>
+<BR>
+<A NAME="TOC93" HREF="bashref.html#SEC93">7.2 Job Control Builtins</A>
+<BR>
+<A NAME="TOC94" HREF="bashref.html#SEC94">7.3 Job Control Variables</A>
+<BR>
+</UL>
+<A NAME="TOC95" HREF="bashref.html#SEC95">8. Command Line Editing</A>
+<BR>
+<UL>
+<A NAME="TOC96" HREF="bashref.html#SEC96">8.1 Introduction to Line Editing</A>
+<BR>
+<A NAME="TOC97" HREF="bashref.html#SEC97">8.2 Readline Interaction</A>
+<BR>
+<UL>
+<A NAME="TOC98" HREF="bashref.html#SEC98">8.2.1 Readline Bare Essentials</A>
+<BR>
+<A NAME="TOC99" HREF="bashref.html#SEC99">8.2.2 Readline Movement Commands</A>
+<BR>
+<A NAME="TOC100" HREF="bashref.html#SEC100">8.2.3 Readline Killing Commands</A>
+<BR>
+<A NAME="TOC101" HREF="bashref.html#SEC101">8.2.4 Readline Arguments</A>
+<BR>
+<A NAME="TOC102" HREF="bashref.html#SEC102">8.2.5 Searching for Commands in the History</A>
+<BR>
+</UL>
+<A NAME="TOC103" HREF="bashref.html#SEC103">8.3 Readline Init File</A>
+<BR>
+<UL>
+<A NAME="TOC104" HREF="bashref.html#SEC104">8.3.1 Readline Init File Syntax</A>
+<BR>
+<A NAME="TOC105" HREF="bashref.html#SEC105">8.3.2 Conditional Init Constructs</A>
+<BR>
+<A NAME="TOC106" HREF="bashref.html#SEC106">8.3.3 Sample Init File</A>
+<BR>
+</UL>
+<A NAME="TOC107" HREF="bashref.html#SEC107">8.4 Bindable Readline Commands</A>
+<BR>
+<UL>
+<A NAME="TOC108" HREF="bashref.html#SEC108">8.4.1 Commands For Moving</A>
+<BR>
+<A NAME="TOC109" HREF="bashref.html#SEC109">8.4.2 Commands For Manipulating The History</A>
+<BR>
+<A NAME="TOC110" HREF="bashref.html#SEC110">8.4.3 Commands For Changing Text</A>
+<BR>
+<A NAME="TOC111" HREF="bashref.html#SEC111">8.4.4 Killing And Yanking</A>
+<BR>
+<A NAME="TOC112" HREF="bashref.html#SEC112">8.4.5 Specifying Numeric Arguments</A>
+<BR>
+<A NAME="TOC113" HREF="bashref.html#SEC113">8.4.6 Letting Readline Type For You</A>
+<BR>
+<A NAME="TOC114" HREF="bashref.html#SEC114">8.4.7 Keyboard Macros</A>
+<BR>
+<A NAME="TOC115" HREF="bashref.html#SEC115">8.4.8 Some Miscellaneous Commands</A>
+<BR>
+</UL>
+<A NAME="TOC116" HREF="bashref.html#SEC116">8.5 Readline vi Mode</A>
+<BR>
+<A NAME="TOC117" HREF="bashref.html#SEC117">8.6 Programmable Completion</A>
+<BR>
+<A NAME="TOC118" HREF="bashref.html#SEC118">8.7 Programmable Completion Builtins</A>
+<BR>
+</UL>
+<A NAME="TOC119" HREF="bashref.html#SEC119">9. Using History Interactively</A>
+<BR>
+<UL>
+<A NAME="TOC120" HREF="bashref.html#SEC120">9.1 Bash History Facilities</A>
+<BR>
+<A NAME="TOC121" HREF="bashref.html#SEC121">9.2 Bash History Builtins</A>
+<BR>
+<A NAME="TOC122" HREF="bashref.html#SEC122">9.3 History Expansion</A>
+<BR>
+<UL>
+<A NAME="TOC123" HREF="bashref.html#SEC123">9.3.1 Event Designators</A>
+<BR>
+<A NAME="TOC124" HREF="bashref.html#SEC124">9.3.2 Word Designators</A>
+<BR>
+<A NAME="TOC125" HREF="bashref.html#SEC125">9.3.3 Modifiers</A>
+<BR>
+</UL>
+</UL>
+<A NAME="TOC126" HREF="bashref.html#SEC126">10. Installing Bash</A>
+<BR>
+<UL>
+<A NAME="TOC127" HREF="bashref.html#SEC127">10.1 Basic Installation</A>
+<BR>
+<A NAME="TOC128" HREF="bashref.html#SEC128">10.2 Compilers and Options</A>
+<BR>
+<A NAME="TOC129" HREF="bashref.html#SEC129">10.3 Compiling For Multiple Architectures</A>
+<BR>
+<A NAME="TOC130" HREF="bashref.html#SEC130">10.4 Installation Names</A>
+<BR>
+<A NAME="TOC131" HREF="bashref.html#SEC131">10.5 Specifying the System Type</A>
+<BR>
+<A NAME="TOC132" HREF="bashref.html#SEC132">10.6 Sharing Defaults</A>
+<BR>
+<A NAME="TOC133" HREF="bashref.html#SEC133">10.7 Operation Controls</A>
+<BR>
+<A NAME="TOC134" HREF="bashref.html#SEC134">10.8 Optional Features</A>
+<BR>
+</UL>
+<A NAME="TOC135" HREF="bashref.html#SEC135">A. Reporting Bugs</A>
+<BR>
+<A NAME="TOC136" HREF="bashref.html#SEC136">B. Major Differences From The Bourne Shell</A>
+<BR>
+<UL>
+<A NAME="TOC137" HREF="bashref.html#SEC137">B.1 Implementation Differences From The SVR4.2 Shell</A>
+<BR>
+</UL>
+<A NAME="TOC138" HREF="bashref.html#SEC138">C. GNU Free Documentation License</A>
+<BR>
+<A NAME="TOC140" HREF="bashref.html#SEC140">D. Indexes</A>
+<BR>
+<UL>
+<A NAME="TOC141" HREF="bashref.html#SEC141">D.1 Index of Shell Builtin Commands</A>
+<BR>
+<A NAME="TOC142" HREF="bashref.html#SEC142">D.2 Index of Shell Reserved Words</A>
+<BR>
+<A NAME="TOC143" HREF="bashref.html#SEC143">D.3 Parameter and Variable Index</A>
+<BR>
+<A NAME="TOC144" HREF="bashref.html#SEC144">D.4 Function Index</A>
+<BR>
+<A NAME="TOC145" HREF="bashref.html#SEC145">D.5 Concept Index</A>
+<BR>
+</UL>
+</UL>
+<HR SIZE=1>
+<A NAME="SEC_OVERVIEW"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1>Short Table of Contents</H1>
+<BLOCKQUOTE>
+<A NAME="TOC1" HREF="bashref.html#SEC1">1. Introduction</A>
+<BR>
+<A NAME="TOC4" HREF="bashref.html#SEC4">2. Definitions</A>
+<BR>
+<A NAME="TOC5" HREF="bashref.html#SEC5">3. Basic Shell Features</A>
+<BR>
+<A NAME="TOC58" HREF="bashref.html#SEC58">4. Shell Builtin Commands</A>
+<BR>
+<A NAME="TOC65" HREF="bashref.html#SEC65">5. Shell Variables</A>
+<BR>
+<A NAME="TOC68" HREF="bashref.html#SEC68">6. Bash Features</A>
+<BR>
+<A NAME="TOC91" HREF="bashref.html#SEC91">7. Job Control</A>
+<BR>
+<A NAME="TOC95" HREF="bashref.html#SEC95">8. Command Line Editing</A>
+<BR>
+<A NAME="TOC119" HREF="bashref.html#SEC119">9. Using History Interactively</A>
+<BR>
+<A NAME="TOC126" HREF="bashref.html#SEC126">10. Installing Bash</A>
+<BR>
+<A NAME="TOC135" HREF="bashref.html#SEC135">A. Reporting Bugs</A>
+<BR>
+<A NAME="TOC136" HREF="bashref.html#SEC136">B. Major Differences From The Bourne Shell</A>
+<BR>
+<A NAME="TOC138" HREF="bashref.html#SEC138">C. GNU Free Documentation License</A>
+<BR>
+<A NAME="TOC140" HREF="bashref.html#SEC140">D. Indexes</A>
+<BR>
+
+</BLOCKQUOTE>
+<HR SIZE=1>
+<A NAME="SEC_About"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1>About this document</H1>
+This document was generated by <I>Chet Ramey</I> on <I>February, 5  2009</I>
+using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
+"><I>texi2html</I></A>
+<P></P>  
+The buttons in the navigation panels have the following meaning:
+<P></P>
+<table border = "1">
+<TR>
+<TH> Button </TH>
+<TH> Name </TH>
+<TH> Go to </TH>
+<TH> From 1.2.3 go to</TH>
+</TR>
+<TR>
+<TD ALIGN="CENTER">
+ [ &lt; ] </TD>
+<TD ALIGN="CENTER">
+Back
+</TD>
+<TD>
+previous section in reading order
+</TD>
+<TD>
+1.2.2
+</TD>
+</TR>
+<TR>
+<TD ALIGN="CENTER">
+ [ &gt; ] </TD>
+<TD ALIGN="CENTER">
+Forward
+</TD>
+<TD>
+next section in reading order
+</TD>
+<TD>
+1.2.4
+</TD>
+</TR>
+<TR>
+<TD ALIGN="CENTER">
+ [ &lt;&lt; ] </TD>
+<TD ALIGN="CENTER">
+FastBack
+</TD>
+<TD>
+previous or up-and-previous section 
+</TD>
+<TD>
+1.1
+</TD>
+</TR>
+<TR>
+<TD ALIGN="CENTER">
+ [ Up ] </TD>
+<TD ALIGN="CENTER">
+Up
+</TD>
+<TD>
+up section
+</TD>
+<TD>
+1.2
+</TD>
+</TR>
+<TR>
+<TD ALIGN="CENTER">
+ [ &gt;&gt; ] </TD>
+<TD ALIGN="CENTER">
+FastForward
+</TD>
+<TD>
+next or up-and-next section
+</TD>
+<TD>
+1.3
+</TD>
+</TR>
+<TR>
+<TD ALIGN="CENTER">
+ [Top] </TD>
+<TD ALIGN="CENTER">
+Top
+</TD>
+<TD>
+cover (top) of document
+</TD>
+<TD>
+ &nbsp; 
+</TD>
+</TR>
+<TR>
+<TD ALIGN="CENTER">
+ [Contents] </TD>
+<TD ALIGN="CENTER">
+Contents
+</TD>
+<TD>
+table of contents
+</TD>
+<TD>
+ &nbsp; 
+</TD>
+</TR>
+<TR>
+<TD ALIGN="CENTER">
+ [Index] </TD>
+<TD ALIGN="CENTER">
+Index
+</TD>
+<TD>
+concept index
+</TD>
+<TD>
+ &nbsp; 
+</TD>
+</TR>
+<TR>
+<TD ALIGN="CENTER">
+ [ ? ] </TD>
+<TD ALIGN="CENTER">
+About
+</TD>
+<TD>
+this page
+</TD>
+<TD>
+ &nbsp; 
+</TD>
+</TR>
+</TABLE>
+<P></P>
+where the <STRONG> Example </STRONG> assumes that the current position 
+is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of 
+the following structure:
+<UL>
+<LI> 1. Section One  </LI>
+<UL>
+<LI>1.1 Subsection One-One</LI>
+<UL>
+<LI> ... </LI>
+</UL>
+<LI>1.2 Subsection One-Two</LI>
+<UL>
+<LI>1.2.1 Subsubsection One-Two-One
+</LI><LI>1.2.2 Subsubsection One-Two-Two
+</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
+&lt;== Current Position </STRONG>
+</LI><LI>1.2.4 Subsubsection One-Two-Four
+</LI></UL>
+<LI>1.3 Subsection One-Three</LI>
+<UL>
+<LI> ... </LI>
+</UL>
+<LI>1.4 Subsection One-Four</LI>
+</UL>
+</UL>
+
+<HR SIZE=1>
+<BR>  
+<FONT SIZE="-1">
+This document was generated
+by <I>Chet Ramey</I> on <I>February, 5  2009</I>
+using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
+"><I>texi2html</I></A>
+
+</BODY>
+</HTML>
index 58fd310249b4d2dbdf9aaf0998a63ae43529d03f..44e8d9b5d3d6dd5de2bf60e935e45abe7953007c 100644 (file)
@@ -1,13 +1,13 @@
-This is bashref.info, produced by makeinfo version 4.11 from
+This is bashref.info, produced by makeinfo version 4.13 from
 /Users/chet/src/bash/src/doc/bashref.texi.
 
 This text is a brief description of the features that are present in
-the Bash shell (version 4.0, 28 October 2008).
+the Bash shell (version 4.0, 29 December 2008).
 
-   This is Edition 4.0, last updated 28 October 2008, of `The GNU Bash
+   This is Edition 4.0, last updated 29 December 2008, of `The GNU Bash
 Reference Manual', for `Bash', Version 4.0.
 
-   Copyright (C) 1988-2008 Free Software Foundation, Inc.
+   Copyright (C) 1988-2009 Free Software Foundation, Inc.
 
    Permission is granted to make and distribute verbatim copies of this
 manual provided the copyright notice and this permission notice are
@@ -38,9 +38,9 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in
-the Bash shell (version 4.0, 28 October 2008).
+the Bash shell (version 4.0, 29 December 2008).
 
-   This is Edition 4.0, last updated 28 October 2008, of `The GNU Bash
+   This is Edition 4.0, last updated 29 December 2008, of `The GNU Bash
 Reference Manual', for `Bash', Version 4.0.
 
    Bash contains features that appear in other popular shells, and some
@@ -955,7 +955,9 @@ established between the executing shell and the coprocess.
      `coproc' [NAME] COMMAND [REDIRECTIONS]
 
 This creates a coprocess named NAME.  If NAME is not supplied, the
-default name is COPROC.
+default name is COPROC.  NAME must not be supplied if COMMAND is a
+simple command (*note Simple Commands::); otherwise, it is interpreted
+as the first word of the simple command.
 
    When the coproc is executed, the shell creates an array variable
 (*note Arrays::) named NAME in the context of the executing shell.  The
@@ -1405,11 +1407,12 @@ introduce indirection.
    In each of the cases below, WORD is subject to tilde expansion,
 parameter expansion, command substitution, and arithmetic expansion.
 
-   When not performing substring expansion, Bash tests for a parameter
-that is unset or null; omitting the colon results in a test only for a
-parameter that is unset.  Put another way, if the colon is included,
-the operator tests for both existence and that the value is not null;
-if the colon is omitted, the operator tests only for existence.
+   When not performing substring expansion, using the form described
+below, Bash tests for a parameter that is unset or null.  Omitting the
+colon results in a test only for a parameter that is unset.  Put
+another way, if the colon is included, the operator tests for both
+PARAMETER's existence and that its value is not null; if the colon is
+omitted, the operator tests only for existence.
 
 `${PARAMETER:-WORD}'
      If PARAMETER is unset or null, the expansion of WORD is
@@ -1534,14 +1537,14 @@ if the colon is omitted, the operator tests only for existence.
      matching PATTERN to uppercase; the `,' operator converts matching
      uppercase letters to lowercase.  The `^^' and `,,' expansions
      convert each matched character in the expanded value; the `^' and
-     `,' expansions match and convert only the first character.  If
-     PATTERN is omitted, it is treated like a `?', which matches every
-     character.  If PARAMETER is `@' or `*', the case modification
-     operation is applied to each positional parameter in turn, and the
-     expansion is the resultant list.  If PARAMETER is an array
-     variable subscripted with `@' or `*', the case modification
-     operation is applied to each member of the array in turn, and the
-     expansion is the resultant list.
+     `,' expansions match and convert only the first character in the
+     expanded value.  If PATTERN is omitted, it is treated like a `?',
+     which matches every character.  If PARAMETER is `@' or `*', the
+     case modification operation is applied to each positional
+     parameter in turn, and the expansion is the resultant list.  If
+     PARAMETER is an array variable subscripted with `@' or `*', the
+     case modification operation is applied to each member of the array
+     in turn, and the expansion is the resultant list.
 
 
 \1f
@@ -2184,6 +2187,10 @@ at invocation.  Builtin 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.
 
+   Subshells spawned to execute command substitutions inherit the value
+of the `-e' option from the parent shell.  When not in POSIX mode, Bash
+clears the `-e' option in such subshells.
+
    If a command is followed by a `&' and job control is not active, the
 default standard input for the command is the empty file `/dev/null'.
 Otherwise, the invoked command inherits the file descriptors of the
@@ -3122,6 +3129,10 @@ POSIX standard.
           CALLBACK.
 
      If `-C' is specified without `-c', the default quantum is 5000.
+     When CALLBACK  is evaluated, it is supplied the index of the next
+     array element to be assigned as an additional argument.  CALLBACK
+     is evaluated after the line is read but before the array element
+     is assigned.
 
      If not supplied with an explicit origin, `mapfile' will clear ARRAY
      before assigning to it.
@@ -3226,6 +3237,14 @@ POSIX standard.
           Read input from file descriptor FD.
 
 
+`readarray'
+          readarray [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD] [
+          -C CALLBACK] [-c QUANTUM] [ARRAY]
+     Read lines from the standard input into array variable ARRAY, or
+     from file descriptor FD if the `-u' option is supplied.
+
+     A synonym for `mapfile'.
+
 `source'
           source FILENAME
      A synonym for `.' (*note Bourne Shell Builtins::).
@@ -9463,12 +9482,13 @@ D.1 Index of Shell Builtin Commands
 * mapfile:                               Bash Builtins.       (line 342)
 * popd:                                  Directory Stack Builtins.
                                                               (line  37)
-* printf:                                Bash Builtins.       (line 383)
+* printf:                                Bash Builtins.       (line 387)
 * pushd:                                 Directory Stack Builtins.
                                                               (line  58)
 * pwd:                                   Bourne Shell Builtins.
                                                               (line 163)
-* read:                                  Bash Builtins.       (line 408)
+* read:                                  Bash Builtins.       (line 412)
+* readarray:                             Bash Builtins.       (line 484)
 * readonly:                              Bourne Shell Builtins.
                                                               (line 172)
 * return:                                Bourne Shell Builtins.
@@ -9477,7 +9497,7 @@ D.1 Index of Shell Builtin Commands
 * shift:                                 Bourne Shell Builtins.
                                                               (line 201)
 * shopt:                                 The Shopt Builtin.   (line   9)
-* source:                                Bash Builtins.       (line 480)
+* source:                                Bash Builtins.       (line 492)
 * suspend:                               Job Control Builtins.
                                                               (line  94)
 * test:                                  Bourne Shell Builtins.
@@ -9486,12 +9506,12 @@ D.1 Index of Shell Builtin Commands
                                                               (line 281)
 * trap:                                  Bourne Shell Builtins.
                                                               (line 286)
-* type:                                  Bash Builtins.       (line 484)
-* typeset:                               Bash Builtins.       (line 515)
-* ulimit:                                Bash Builtins.       (line 521)
+* type:                                  Bash Builtins.       (line 496)
+* typeset:                               Bash Builtins.       (line 527)
+* ulimit:                                Bash Builtins.       (line 533)
 * umask:                                 Bourne Shell Builtins.
                                                               (line 327)
-* unalias:                               Bash Builtins.       (line 607)
+* unalias:                               Bash Builtins.       (line 619)
 * unset:                                 Bourne Shell Builtins.
                                                               (line 344)
 * wait:                                  Job Control Builtins.
@@ -9974,132 +9994,132 @@ D.5 Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f1344
-Node: Introduction\7f3181
-Node: What is Bash?\7f3409
-Node: What is a shell?\7f4522
-Node: Definitions\7f7062
-Node: Basic Shell Features\7f9980
-Node: Shell Syntax\7f11199
-Node: Shell Operation\7f12229
-Node: Quoting\7f13523
-Node: Escape Character\7f14826
-Node: Single Quotes\7f15311
-Node: Double Quotes\7f15659
-Node: ANSI-C Quoting\7f16784
-Node: Locale Translation\7f17740
-Node: Comments\7f18636
-Node: Shell Commands\7f19254
-Node: Simple Commands\7f20078
-Node: Pipelines\7f20709
-Node: Lists\7f22965
-Node: Compound Commands\7f24694
-Node: Looping Constructs\7f25498
-Node: Conditional Constructs\7f27945
-Node: Command Grouping\7f35951
-Node: Coprocesses\7f37430
-Node: Shell Functions\7f38919
-Node: Shell Parameters\7f43380
-Node: Positional Parameters\7f45796
-Node: Special Parameters\7f46696
-Node: Shell Expansions\7f49660
-Node: Brace Expansion\7f51585
-Node: Tilde Expansion\7f54338
-Node: Shell Parameter Expansion\7f56689
-Node: Command Substitution\7f65520
-Node: Arithmetic Expansion\7f66853
-Node: Process Substitution\7f67703
-Node: Word Splitting\7f68753
-Node: Filename Expansion\7f70376
-Node: Pattern Matching\7f72516
-Node: Quote Removal\7f76155
-Node: Redirections\7f76450
-Node: Executing Commands\7f84593
-Node: Simple Command Expansion\7f85263
-Node: Command Search and Execution\7f87193
-Node: Command Execution Environment\7f89530
-Node: Environment\7f92329
-Node: Exit Status\7f93989
-Node: Signals\7f95610
-Node: Shell Scripts\7f97578
-Node: Shell Builtin Commands\7f100096
-Node: Bourne Shell Builtins\7f101773
-Node: Bash Builtins\7f119091
-Node: Modifying Shell Behavior\7f142764
-Node: The Set Builtin\7f143109
-Node: The Shopt Builtin\7f152149
-Node: Special Builtins\7f163011
-Node: Shell Variables\7f163990
-Node: Bourne Shell Variables\7f164430
-Node: Bash Variables\7f166411
-Node: Bash Features\7f188729
-Node: Invoking Bash\7f189612
-Node: Bash Startup Files\7f195421
-Node: Interactive Shells\7f200390
-Node: What is an Interactive Shell?\7f200800
-Node: Is this Shell Interactive?\7f201449
-Node: Interactive Shell Behavior\7f202264
-Node: Bash Conditional Expressions\7f205544
-Node: Shell Arithmetic\7f209123
-Node: Aliases\7f211869
-Node: Arrays\7f214441
-Node: The Directory Stack\7f218283
-Node: Directory Stack Builtins\7f218997
-Node: Printing a Prompt\7f221889
-Node: The Restricted Shell\7f224641
-Node: Bash POSIX Mode\7f226473
-Node: Job Control\7f234326
-Node: Job Control Basics\7f234786
-Node: Job Control Builtins\7f239399
-Node: Job Control Variables\7f243763
-Node: Command Line Editing\7f244921
-Node: Introduction and Notation\7f246488
-Node: Readline Interaction\7f248110
-Node: Readline Bare Essentials\7f249301
-Node: Readline Movement Commands\7f251090
-Node: Readline Killing Commands\7f252055
-Node: Readline Arguments\7f253975
-Node: Searching\7f255019
-Node: Readline Init File\7f257205
-Node: Readline Init File Syntax\7f258352
-Node: Conditional Init Constructs\7f271586
-Node: Sample Init File\7f274119
-Node: Bindable Readline Commands\7f277236
-Node: Commands For Moving\7f278443
-Node: Commands For History\7f279587
-Node: Commands For Text\7f282742
-Node: Commands For Killing\7f285415
-Node: Numeric Arguments\7f287866
-Node: Commands For Completion\7f289005
-Node: Keyboard Macros\7f292772
-Node: Miscellaneous Commands\7f293343
-Node: Readline vi Mode\7f298654
-Node: Programmable Completion\7f299568
-Node: Programmable Completion Builtins\7f305401
-Node: Using History Interactively\7f313827
-Node: Bash History Facilities\7f314511
-Node: Bash History Builtins\7f317425
-Node: History Interaction\7f321282
-Node: Event Designators\7f323987
-Node: Word Designators\7f325002
-Node: Modifiers\7f326641
-Node: Installing Bash\7f328045
-Node: Basic Installation\7f329182
-Node: Compilers and Options\7f331874
-Node: Compiling For Multiple Architectures\7f332615
-Node: Installation Names\7f334279
-Node: Specifying the System Type\7f335097
-Node: Sharing Defaults\7f335813
-Node: Operation Controls\7f336486
-Node: Optional Features\7f337444
-Node: Reporting Bugs\7f346846
-Node: Major Differences From The Bourne Shell\7f348040
-Node: GNU Free Documentation License\7f364727
-Node: Indexes\7f387188
-Node: Builtin Index\7f387642
-Node: Reserved Word Index\7f394396
-Node: Variable Index\7f396844
-Node: Function Index\7f408650
-Node: Concept Index\7f415382
+Node: Top\7f1346
+Node: Introduction\7f3185
+Node: What is Bash?\7f3413
+Node: What is a shell?\7f4526
+Node: Definitions\7f7066
+Node: Basic Shell Features\7f9984
+Node: Shell Syntax\7f11203
+Node: Shell Operation\7f12233
+Node: Quoting\7f13527
+Node: Escape Character\7f14830
+Node: Single Quotes\7f15315
+Node: Double Quotes\7f15663
+Node: ANSI-C Quoting\7f16788
+Node: Locale Translation\7f17744
+Node: Comments\7f18640
+Node: Shell Commands\7f19258
+Node: Simple Commands\7f20082
+Node: Pipelines\7f20713
+Node: Lists\7f22969
+Node: Compound Commands\7f24698
+Node: Looping Constructs\7f25502
+Node: Conditional Constructs\7f27949
+Node: Command Grouping\7f35955
+Node: Coprocesses\7f37434
+Node: Shell Functions\7f39078
+Node: Shell Parameters\7f43539
+Node: Positional Parameters\7f45955
+Node: Special Parameters\7f46855
+Node: Shell Expansions\7f49819
+Node: Brace Expansion\7f51744
+Node: Tilde Expansion\7f54497
+Node: Shell Parameter Expansion\7f56848
+Node: Command Substitution\7f65746
+Node: Arithmetic Expansion\7f67079
+Node: Process Substitution\7f67929
+Node: Word Splitting\7f68979
+Node: Filename Expansion\7f70602
+Node: Pattern Matching\7f72742
+Node: Quote Removal\7f76381
+Node: Redirections\7f76676
+Node: Executing Commands\7f84819
+Node: Simple Command Expansion\7f85489
+Node: Command Search and Execution\7f87419
+Node: Command Execution Environment\7f89756
+Node: Environment\7f92742
+Node: Exit Status\7f94402
+Node: Signals\7f96023
+Node: Shell Scripts\7f97991
+Node: Shell Builtin Commands\7f100509
+Node: Bourne Shell Builtins\7f102186
+Node: Bash Builtins\7f119504
+Node: Modifying Shell Behavior\7f143695
+Node: The Set Builtin\7f144040
+Node: The Shopt Builtin\7f153080
+Node: Special Builtins\7f163942
+Node: Shell Variables\7f164921
+Node: Bourne Shell Variables\7f165361
+Node: Bash Variables\7f167342
+Node: Bash Features\7f189660
+Node: Invoking Bash\7f190543
+Node: Bash Startup Files\7f196352
+Node: Interactive Shells\7f201321
+Node: What is an Interactive Shell?\7f201731
+Node: Is this Shell Interactive?\7f202380
+Node: Interactive Shell Behavior\7f203195
+Node: Bash Conditional Expressions\7f206475
+Node: Shell Arithmetic\7f210054
+Node: Aliases\7f212800
+Node: Arrays\7f215372
+Node: The Directory Stack\7f219214
+Node: Directory Stack Builtins\7f219928
+Node: Printing a Prompt\7f222820
+Node: The Restricted Shell\7f225572
+Node: Bash POSIX Mode\7f227404
+Node: Job Control\7f235257
+Node: Job Control Basics\7f235717
+Node: Job Control Builtins\7f240330
+Node: Job Control Variables\7f244694
+Node: Command Line Editing\7f245852
+Node: Introduction and Notation\7f247419
+Node: Readline Interaction\7f249041
+Node: Readline Bare Essentials\7f250232
+Node: Readline Movement Commands\7f252021
+Node: Readline Killing Commands\7f252986
+Node: Readline Arguments\7f254906
+Node: Searching\7f255950
+Node: Readline Init File\7f258136
+Node: Readline Init File Syntax\7f259283
+Node: Conditional Init Constructs\7f272517
+Node: Sample Init File\7f275050
+Node: Bindable Readline Commands\7f278167
+Node: Commands For Moving\7f279374
+Node: Commands For History\7f280518
+Node: Commands For Text\7f283673
+Node: Commands For Killing\7f286346
+Node: Numeric Arguments\7f288797
+Node: Commands For Completion\7f289936
+Node: Keyboard Macros\7f293703
+Node: Miscellaneous Commands\7f294274
+Node: Readline vi Mode\7f299585
+Node: Programmable Completion\7f300499
+Node: Programmable Completion Builtins\7f306332
+Node: Using History Interactively\7f314758
+Node: Bash History Facilities\7f315442
+Node: Bash History Builtins\7f318356
+Node: History Interaction\7f322213
+Node: Event Designators\7f324918
+Node: Word Designators\7f325933
+Node: Modifiers\7f327572
+Node: Installing Bash\7f328976
+Node: Basic Installation\7f330113
+Node: Compilers and Options\7f332805
+Node: Compiling For Multiple Architectures\7f333546
+Node: Installation Names\7f335210
+Node: Specifying the System Type\7f336028
+Node: Sharing Defaults\7f336744
+Node: Operation Controls\7f337417
+Node: Optional Features\7f338375
+Node: Reporting Bugs\7f347777
+Node: Major Differences From The Bourne Shell\7f348971
+Node: GNU Free Documentation License\7f365658
+Node: Indexes\7f388119
+Node: Builtin Index\7f388573
+Node: Reserved Word Index\7f395400
+Node: Variable Index\7f397848
+Node: Function Index\7f409654
+Node: Concept Index\7f416386
 \1f
 End Tag Table
diff --git a/doc/bashref.pdf b/doc/bashref.pdf
new file mode 100644 (file)
index 0000000..60958a6
Binary files /dev/null and b/doc/bashref.pdf differ
diff --git a/doc/bashref.ps b/doc/bashref.ps
new file mode 100644 (file)
index 0000000..fba1104
--- /dev/null
@@ -0,0 +1,16205 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
+%%Title: bashref.dvi
+%%Pages: 164
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSL10 CMSY10 CMBXTI10 CMTI10
+%%+ CMCSC10 CMSLTT10 CMTT12 CMSY9 CMR8 CMTT9 CMTI9 CMR9
+%%DocumentPaperSizes: Letter
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
+%DVIPSParameters: dpi=600
+%DVIPSSource:  TeX output 2009.02.05:0805
+%%BeginProcSet: tex.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginFont: CMTT12
+%!PS-AdobeFont-1.1: CMTT12 1.0
+%%CreationDate: 1991 Aug 20 16:45:46
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTT12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMTT12 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 45 /hyphen put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 115 /s put
+dup 123 /braceleft put
+dup 125 /braceright put
+readonly def
+/FontBBox{-1 -234 524 695}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E
+C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E
+3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B
+426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D
+D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161
+E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32
+6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5
+A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE
+0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC
+85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF
+F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4
+C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC
+12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D
+048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8
+0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725
+741D08B9DB688731A6C9886C15A83C28DADCC81385EA239E045E8F3670CE03DB
+9EE77ED067036595C9F3B1854343BE3A12E486B6E5A2F8AC44FA5378D28DCCEE
+306B0E283AA444423F9A4FF38E2B56DCF67A39CEB2C643DAE86865517D5D0371
+CB8797208ADEC637330A3A57902C9A88EDB75A7C16FA9850075D9F19578EC666
+1353CC1FC512D59DFF847ACCD3D295C5D09DFE2A27B87A0F54938CC908FC87F8
+A08FF8F94A3051855B401F349F5CBC1DAD02C3CBE583E69FBD18FC747D2730B9
+A62F25952755ECC04C1852CB5CA505043B428E2BF1D407A26E0AC0C85E0DEB4C
+425D14F1A1BA5972EC78AF68FFDB2425A9F5ED10220B1716A83D53D5958094ED
+3D2CD66F2A070515F737516108CB2B0205255E9BA568C2A847679FCE1B1AAC31
+128359CED2C77D35333CE94AB2B05797C43EA28810F314D3283555D399E30FEC
+C1F113B94484B6CFCC0988EA652BD5E0F61983225CE3A1CC1FA80F13DD945516
+C84962DC76A254C62CCBDB47B6CBE6DD237E38177D216AB3F9BBF876C4775680
+A4F8CE4DB65064C59D540E36EDCF9C3AD79FFCFA244A6FB20D047BB4774E6316
+69F7D47D459A56A68B2F45417DA9C04CF6F370D13E2292908671929511BAC37F
+B8F709AC597A2B80340B60584817C685319CE7CD7FB243F5D9F9848D4B45CC4D
+22CE6FEDDC2316EC3199EEEF12CA0263ED6122153C444612F0612C338981E889
+ECB0006CFA33076F02EA838E03E551785BFD414BB360B19A0CFCEA852C12F6A7
+C36E68E2121B416EB29CC55D87804D6E79B876C7A0BEA416FE1FCC727D00E341
+47F2B3A20534E6C16D81C0CAA970639C0D690DF2383FA7D6693E1863F2BFA94D
+D7A0B91D6E2A5770D6997971C227B38D3AB79D62CFA3BB7E18E5857FDE0271DC
+8D0467EB8A60EF3A0EBD77730AD8F4D7AE248C103CCEFC17C717DDFCDE9ACE1C
+1BBBF78434C9F66C455D1A02859960717C61B0FE911A0FEC12B0783F944F9B1C
+B7BE3D1B67108D79A2C5C578B97B870F5BB646CFCECB27885DDAF5342783ED3D
+84463FF40B432FCDCEDAC7827FA0C1F6E26805C50EE6448BE598BA51324A6F5E
+493F035C131B7D9DB57EF720FE2E5FE1C532C51A0905EAFFE463BF7E47202808
+DFB0934AB9B27C12D8BB566BCF4D89709D282CDA9607E25DBC140F61671B1926
+0CBE74FBB99D87802E74A250E87029AA28E98B3FA3DFEFAD4723DE5961E9AF3C
+B5A35E3BED0B97894CF8E44176570DDCD6EDF06CB66F0CDCBE75F77E14C90F89
+BA830760415ECCE0DD1A1B2191891182275904FA1B587DE149829C711CB58ACA
+33843E14B42B9C120C917D57DD8EE4F0ECC257767B6AC6EB80E563F84101AE08
+829ABC0A055A4D33AB19281A0345AEE764A7D135BCAB8735A051D8A7892B4702
+E9917E2CB149C24C721C1D12731A5F8412524CED7E850602D8BD05F7BEB64F46
+472A600F50E758FD22A8126A913C001473CBC84165A4B46B25E00FB2348F3896
+20C8886A5B08704C319924C1749F33A3096406A27FDADC6F17807103DA04D354
+FEF400100881609A42E8572819B845B8A8B7FCF2CCCA75A1CB25BBBF3E2B1C45
+FC4BDEC03311D6CCF78669C53432D786530039B36A8037A95A231F17E98359E6
+F0E892CAEB646877F4C4FFBCCB5C5A8143FF00B90F01A62D0BE68D593E97A2CF
+2EC3C1D389C2474878A7E7BAF4C97C2733F958D6CD02F9EF880158455958A15A
+C2A4ED22526838EC3530C7EC5654204444A28529BF68ADCF93E3DA72ABD50E46
+3499D9A9A061D59C0D35F1FA5C5EA5CB93500268FE96B416F66EF179E184D595
+14DED98C95A8EEF2D172F8F59AC529A392838572C0E48018F8C9D6E6644AEA2D
+60C68F8B4BE2420B171750C96F8398C99DFB709379085C901EE6DA44DC4F671D
+10172309F8E7E7E8D9F5D4A6EBCFE0C28BDD4D6DAA0C103AA0BB2F2D52217302
+B580D26E9A89AB56927E729AFB576FDE9877B16A2483B67D3917729597707B08
+C183A0DE48462D2E16BA17F8BACB18BB9B15434551FD9F0D9F6142F4A668F631
+8BE9288B53AAF5755A28DAA6D71D17062D29D19A9EB299814755C4C6E5D03B64
+CE8ECD65C961AB35E468C36E087857A9315D362A1D3655A41D249C32C459760E
+A66FD627FCC6745F9575782B47F362A33C418F10C16E0DFB67A151E107B5109F
+4F58565797D5BA3E4B0A45978FDFA804C452F708A81314B36D5F448A836C08EB
+A2FF2DE947BD3779658BEA382C00DE63BF2AC04DC2DED83B8DFC1263E7819446
+244FBF5CFD4581952D515909B617C205A54AB0B40CA7ADE8DF11B60C4F14802A
+1398444E83A91834D2BF6E9525E6F9BBB4757EC393751695D626926D4240CA7D
+501664845B89C7E6BE94E3BE8D67531C5528465CCF393A383238EE573E2A452A
+97ECE639797A8B18FE620BE63784BAAD630E0F534E3715408A0AAABDB0767EE9
+92E8CC835ADACCE79B38AF6C21DA95F5B5EB17AD07892B6DE3598FE66FDB07F6
+
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR9
+%!PS-AdobeFont-1.1: CMR9 1.0
+%%CreationDate: 1991 Aug 20 16:39:59
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR9 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 12 /fi put
+dup 44 /comma put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 65 /A put
+dup 66 /B put
+dup 68 /D put
+dup 72 /H put
+dup 73 /I put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 88 /X put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+readonly def
+/FontBBox{-39 -250 1036 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
+3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
+046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
+C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
+A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
+A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
+731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
+09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
+49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
+5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
+54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
+C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
+11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AC46268691C741B2D4
+48A840F1128D9B2F9CF07D0709FE796B23A836417BF7B5B12D67F74453C82F5F
+25F7B30701D6F6D4F4DC623C0C27D6A6FBECC7312A3CD10932FC7C10851C3C52
+24B75DEA8A648B7F34F5711DB0E843C914E25663C510185BC37BDB7593C1C259
+21D8DDAD33982C336BF272BAB2F48E68217403FE9F54877B243614A87E64784D
+2796EE4179FBF96123D1BEE3EF89D682B427BA4F12A1318A57F18BE5DD903815
+2614114FCB2EAD5C07129169D177068A05D123FA94A1BA4CB69D6866DE72B305
+542D8C5FC997943D3A74BCC67CE5838933B4DD72CFF5EF285AF1A3678FA1E276
+B880602235D8D3633777078D9CF03CED0145A2C98A90DF1DEB7AE8FF96D370F4
+DB15045DED7BC8EBFDECABDFF6FBBF244A31A576203FE1A8292E91A9D1FBE931
+051570D4224B4A0A6A229B322E8C312E422AE6B50B05DA2BD42B784B5F64AF81
+89010C01067C52625CFC6BE9A6D383C0A4117C3E7B5A6102B4E499DA1091F10E
+98790162606EC258F6A203691A8838758D5E915A78B191C56072663CB37CD138
+8CD0866D26682029FE24391284179BE85A1086C6C307756D7FF138284B662FBE
+A86B5216EF695048AE526910BFE88DDB8D651D585B5B8D7A1E457A284979BCCB
+7A38585791293443055C7C79EFC140E6725DCD4CC66866178331939ED55262F0
+68A85757C07FB3E661324FCCFB3C394164BDEE5AB9E19F48D4F8264BD153B0F3
+BDBB617BD78B95096AB3E1790675C1A4E553516EAE0BA4ECF3703EF646E9F4E0
+AE9B346936CCE23F44F821AB12DA11D312D33830F07A000529D3A2A0866F67BD
+D1E50FAE5C1539EA730EE72EA642A060F1352CE7D8DF27CFDD1D007FEB36070B
+0C807A2EECE49A3DE849DA9CEAD0487A2EAC929C92270EA13C1A03196937B747
+3DD88B5E47CE93D8B07F6DBFE375B6AFA033692C61CF03A842E358ADA933C697
+D26914CCC7505CAB2973E488A195DB54F82412E0AFF344B116763FBC730747F5
+24EBCC4FECAF9450ADFCFE7AFCEBB795C39599A5C38392F8376EC4BA39C42EC9
+C35EE3324D35A6C4902FFC9266A12B6F9B2F2FD6C25B54B86286C96942DF91DF
+770D4A1CA99D2D08079EFD8C5969FB473FD832646105CA6DD00EC559BE8EBB14
+04667BA9EF9370D1787D94A108ECF9E5FD2B1E86C0417147BB31020C9F6AB571
+63853F5718ABA2B0E8B5DBB1CF13A31E3EFC464631B3027DB4001EC0BEBE50AB
+24ADDEA0BE07A3D0A9656E5E7A235B7C23BC77A99D18B3962B095FCFAECC3189
+7A4FB593ABE57BC0587E1DD883C1C7708AE98B2BA288CF4DE3E759A046D1A4D2
+3AC2ED1D728FCFB52AC7092C24AA1A2BC0901C9875A3D547BE00AF69F96DFE6E
+E2465104579A8E72D62CA221DC32E0F8B7670250C6797E7A8D320F8FAF3CAF55
+06A48B1388A1890485E17DBD705F0EC72469733343A3CB0B5000EB286D86FD35
+089CEC45CE92E5F7E86D10EF6EA41B8B2E0ECCC9580A4D6EEEB1A632B421ABBF
+67946E1DB896C5093F733DC91B39F5426807647B5B0436468609DA0BAB8BE701
+FC10CFBD1C9D02810FE22F3E6FC4575D7A576FBB2CB4039E785C9180101386DB
+4AB343DE4E705B6E5BC821E0F0CF7D3B021C558E61D68B98A9C89218E19CCE3B
+80FF99E8C213C796FD3CF43476832FDAEEA71CDC2C8C475D18745332B845DC96
+1AF7E38FEC1E0C12A785718405BF5AE70780161A7B39278956B1C073DA090220
+87873DB2F2C84DF46EEF6D169E9243AC8CDF7AE56BD45F92EB921B216C3A182B
+0BACE2FF94B8CD6A0D089F58E96CAB516637A5BB4CA22FDC56503C947CB0BDB9
+E57204111C8A60FF1354604EDC13AF4062E53848BE4B82799CDB525E494170EF
+3131F3B1EF71F9018ABEB33B64EEE7640B3DCC7A1519C7EE1B88971676CDDA06
+8E7E54F8DE8485873F3297097C7A7BDBAB6BE876080C75E953CD2B875C541138
+59E72622A8719A1640FE2524889C19B80514BBE1EC2C8164E687624F49B890F8
+6D74A758BC66F9F269FEF1AE396F7EA885F739D4156F917B3C072BD68CE5A5D9
+92A8569884F5344DD92B7DB405990E6CB885BD9A4970BAA28FC168066DC943FC
+F3B9EDCE7E78B857E76B1B4C3200FCAC0298E2B8DF7105BD6458DB913EB76136
+FF9F6B7C940FC435F3E803A9603D24D97A683FF9C6DF75B29D10378AB7AAE5DA
+5F531DA50A1CA6837C88B16683D626AC7D22EBB06B09A72A893EE52BCD9BE1AE
+F53FD9B40FEF8E75EACCA630701C9BD333F2C4ADFDB69383A4B9791E65FC0A4C
+FEF2001704072FFF68DD6CE5252E0C35DB2E3C68D0B4BF6B31C175B77C1B2DB1
+D3BCA2C544E9B4CB843CA268E024CEF1420DD215C4F74FCDB39FFECA898ECA3F
+999693191EEE8A29B54F519177763F5580F59F82F427A776406A00A44E748A1F
+E5E0D292A763CAE8F278792822C41F0BBB828B18CF312EE0F8A4A09005AC1022
+6A40D186FB40A2BD6A8EDBFDC9D09D4A591BFC7A75E709E91C08CF379FC48B09
+BE319E09D18D18EAB2E4A4A9F3B2F8DBD064D836041AAC60BA5318417E65B130
+79724639EDE691DE718600EA592E08B2E6171A2B6BABCB867EE1B96B545AC399
+1A904D67B9127317BE9C5FB65887A22A356844857795C46A9AE4F81EF4686314
+B642FC7C3730DD3AEA4FC3A0443E8584C4A7A725A0FF1ED837729EC244163846
+C172F50122C0AF2D8813C20048CA2C94932D35C4C8DC04C39B4C36E81316F137
+50C2F675678BA9BD8B2CB9C4F2A38554BC54E85FD27CEAC8B555A3749C05C0FF
+E067ED27A933FE2081EE405C1A923D1A9334B4E8357430C4F637B90B6CEDC216
+B7F6892493686733268A8FDDA644DB79E8E5713C5F7C7A50DE64C40AEAE7DC54
+6CFACBB0C0F46A953899489787CFFD8C7FA1EC161F4B2EF2D2C0B704654C3225
+4FF4A4874E34B32E4F82E1ECED0BBDCAF0DADD3DCF20549E6A40345F5C442E32
+A191BDEF9431589D3778CE7083849F4983953686BB56D13FB8A6C1E9CA76BFED
+4F89CE11C81E551D994ABF775D2B60639F0A2A67C4DAF416A71821C1E3AB37A9
+A4353C908A9DB90712EAD91E66A909A18125E6B25CCACBD7298A9A0D3A787BBC
+FDD94B012AF32AB92ECF0041ECA76D445E00B92C3314B510BB4AA0050CB0DB88
+1C62F1103E1D55E4878ECA9400B92B139A31E7BBDB0642175D0B407F9FCDA194
+C9CDB455870EA50F2890A9284EB97A010832AAF9B7CD0A686C27F3EE3A23AFB1
+F8A53AFF67550FAE4AF01F7FF4E43C8F70CE90F0E011EA960EBEFC24D4FD63B0
+58C3377E262D09848D159B48E55C975C926E0E3B9A31E9A54869675593E0C822
+D54AB77B23F5A3EA77C844EAF690D887BA3142B7B947180EF1B02F5DE124E66E
+EA1221BE552672EF39A35F64C73ED1E4CEDB9BB34D2909E878377F0D9CB5F189
+FE76F098DB219D29B3933D446D67A7D9C3F6841ED9CC89BF31573FFDD1D796F8
+DDAE883524C758EBF7BE4EE6E659DDB4459E7844FB36B390A59EBC8E808D954D
+69A2595CF84112ED51613961F98AB24F0E343E88882CEC9B8EFA07AAE1352590
+F6C42DF3EE257D32C6066495B9D45E15F1EDE670303FF6B32D5F7A796474DCBB
+70BA1ECE7E6DC941883B37B7FCB918781F834F19A13A3CDF96101A1BE14A8040
+1C4EA70314CFDEBF0EDD6805C730F83DF7F637C057E2180C3D2B40811B0B79F8
+C30D4DFDCCFEDC943CB6FA25E862A0220C064AB3F8310047DBF33DFABD94B6E3
+0D5B49A8254AE26DE08DA4ED08A4D7BB2B8A55E4BFB8716B73FEC259D6BEEE26
+BB60AED6332A87E45897F51C7A12B03B9A36BEC38518BFC382DA4D41E1F5AE6D
+6E4B77DC99D23E18F2255EE43E594D350D7AE8C83A402041E42718EDA46AFA98
+857879E51E5DAF09848D852FD6827310EEFFDF1CD784B73EEC932C54EAC836E0
+70618B66801630EDB278E4508EF63C9831F0A4D8DB7CCB39728AD4A5044FDE07
+E2768FDC60191A7C70CBE976EE4C1BAEC6FF07DBE4614CF0CC1239C266269064
+BA7A950E4E8FE1F75191438B2C3DC018B94BC673EA0DC79BC52DE624B3DE39E7
+581BC8DAABFD865697BECA2007BE57E026BDA607B48D90804206BE5147D94F92
+CFD28198136B07829DDDA89DC06A4A738448882BEE3A961C4CEB245250416A5E
+057FE491568CDB970B580B922F7121D76B517CBF310CC3C6BDC79B156B33F96F
+DD649953DADD5A7666A91EE7614F7EB5D3F40C68C7A3E74C21C8AD3DA764D8AC
+C9289A5A5CF4E6BD220090A8CD749BE50D2C0135B1FF443E41A7F037E3136DE2
+6AD9DD4D840E2265D6EFC1862738D11D11CB0498111EAD036F9A920B8079EA13
+1DA60D4487DFBAEA127D9330305019BAC3D62CB449458B3728C37B5970CD7FCF
+2CEF653CB1A37B8E16149A796F5F1515C2D505CAA449CF1571D2403A66808534
+37E8EA975F71FBF84FAF9D2A6E19778D4F0A21DC35DC73CC6851EFB55C04F832
+98816C20F8A7AF1E7BD898BC92E5B17E0C2560BFF448FF4F0C61B9B619AA9344
+957BA4DF012AA7CB844F6A2045B35E002755949748483545CDE6BA268F45CF93
+9A4BB9847D73CD53C0C54D27678A3C6BE478928AE3F7FEA9CA415CDF4467304F
+90EE099A0D1597241AAFB7C6594D48D0076FC938FDDB99E769B7C9E26CD3B834
+E708F72D69EA101A7A659D9A45EAD212A79CA612C46AB0C3822390CF8C359715
+842B0B9724CD7968B62A9AB251DBE3230E2A75780344004EB9565798A41725D8
+62C9316F4DAFD66FB503EDABFE85CA7A2DC73F2D3CFEF347C4396F67199275D6
+C15D4441727F2CC6F749B527CFE9C8FF95F87DE5C45DFA8BDBE0639916E92F86
+B5191DBBFA50186ACB02D0CF4A978CABDC22673BE96EB7B9D55E8AC8A42F5616
+0D47CF1C4D2788339C8995A6E93348B313ED8ECD4F7562FD46FCF7DAB75216A0
+A7368EA565E2AFCB92857C37C41E54FF1DE1430EB24CCC1A0441FDC87D122DDC
+8959FA7A691C18CB44EC2A5A711FC9188362597510C894CBDA48486E932BB1ED
+A35DC7083570126411BCF1838F3593A4D208C042F55A4A96CC0DE494EDD67AE3
+89CD635AA5093B969B604241F4F01AF65B430EEAC934D9A23C5DF3CB7156419E
+2D8977C77CA4CEE2293FCAAD12B694163FB4AA99C7348216BE0A9A86AF66C01A
+4F98E0E6C9CC4FE29D1494ACF281B4A0656909B87E6336F8D5EB590032268401
+C186C2B53E1026BFC1D001363B376A6AA5EBCBDFFFE87468B2ED480496035BCF
+2F409D2A4755AFD7CDA87DD3A6D4490CC5E1A18339DF00D3BD8803A78E75EBA5
+DC16C429474AD2F1C4D6E33EC477DC7F63F03501745573C9295555FE520A4090
+97AE83F9A411879BFF20BE70893A2C8FA46889B0340C30294D69F6472B94B615
+21745C9EB65997EBA32789FDB9144A630A34100B3FC2142213248488DDD46B19
+0E7B03AA78B70F66DCB5D80AB7A59AD954D90B212E723B2C19CDC44BF34EF8CD
+876EE89F3B29C2B3B7E1EF2894B109B59F1C1423C02D89A9594566E5FE179778
+3523F2C665DD4E2ADED8B09A6B4B7E5977245DC95C8E626E8F02F72F6BC0C9CD
+6F6B396FCA89FCD9BDD82F21C72F0208877C38525E087AD63EF3A73A64B460C7
+437D3DE8A3D33C7E13885581A3B895F28EF6EE357B78D9FE7172F42A4363B18F
+9060AA31889FA69584FE4B99F62C387AAE5F47F233ABB03E56B066B7687F2E83
+2D1A5B1294B1F778B40EF5614E05953F0539EDBE10F8151D23F7301F1BD3CC80
+03D645F6CE4E8DAF2C126537A54EAC7AC1772D1128FFF1E2F7AAFB60790453BE
+F11898B68FD4344CE141046FC591B4B8FA886E8C3BA638946D1629DC93B48CBA
+633F48348E4AB5BAA46AB436B6542DBE4D3BC3B26B3BAC8C5BF99334F1D8DA68
+2A805CCEA0FF53510C91BB85E137D3E63DB8647C7E46A9765278767DA1838964
+43F9C84F4AC0FC4FAA4951BE3D02BD4DE4AE4778E492544F4D9997DCDCBDD3E8
+2A6A780DDA679D86BB60BD08F4AC2E3467DB2A4E1F17E1A38DF332F82EA8B3EE
+1676C93888796C57BDAE6572795990157084750D6B080C2BEBD3F19A5FC61AEB
+BCB426DB3570BB0803D0EDF1712CABDC6474828C1BBC1B1E67FA18AA21D86A16
+C6E72EF8F6F4DB2898191ABA2486F94048CEB5F4B2D1321B0047476764577A8F
+F0492DA9A77B606FBB6787B94536AB286C6F6E68350C7F92E1945BBEAD8575E1
+DA29818CB64C28B48013D6E1B8EE3F26A3EFE588A278988EC249FDAD4E077A4C
+9EF91FD4F8256CC77601D4A0D9A0724A43D156F0E7603D67476D2E3493C4690D
+A84B84834827B84138B934FEC3CEED73AC380934C041A9EB8B24C8C035418D3D
+05232452BB268C814EAE8F9C73B0E4A3625CA4FD471F69DD1D576B7E11B3EFDB
+B38139565DA3B669D91C68F42097B5467329D6F56B722EB39330C92448F63EB9
+C2E54DA0233CBA9FD6E3D12E9419A6101D1CF32AE8BFDCAD20C40E2FD1F1F57B
+A9756C0577EA1B24D9C36935F20806C0342BA7DC0CAAE4CEB5AF5FCDC29BE62A
+19F65367AC70A0E54B4E5FA4DFA84B0B65129FE167B0855BA02C519A6FBA3BD8
+11D03A4091BA6CADA914FDD2AE88725ADA74829D757CC226D2BF4C45737732E5
+0494A4CB815BCCB8C5C9C7F88BEC01D07788630D0412BA25E890F7863250A482
+4E5D799CC845B8B39D8D17367F8CBB3211C0BF2EC572545E0D413FC1EB25073B
+BFD3FA9E510AF6CA80C2B0F827B36B9306C1462C801CBE28D1F4CBB9930AFE79
+B860D82CB414823E255899D716DB932AC10C19C33849B8D75A7EF322577FE59F
+8E90608F83C6CFDD029D367B7B7C76C34A5FE5E6D2B53B2C63DBDFAD937F73A6
+77950F4BF36B5F506B2C153CEC1D8FFD9F6ACED3C0EF99006E8FEA7C7354C53B
+F2069BB90D4C150DAA5B04273E7A5456385464A1DFC7BAA74273D473D5BF0D64
+536A749405170936BA5AFBEE07E9263452BC0242E9544FBB084C1BF99B4EB8E7
+A57C91062D07DA08D56F12435C45204BA6268F47553A4635EFD17D6A6593CCE3
+3DA4C57DF99373EE38E012F69F77F1616CD94C7CA262E6E0D90D7B9795F34EF6
+C04B75687090633AF0AF8829DD5035A04CD9D6235309CC673BB61E0729C49815
+D9EF9E3F14A09E10DDD7741D621AFDBA25A4937D432E54D0079C26349EA54A01
+10DE11D9408BBB86E0861C4E0966E4F6DDC790CD86719D53B6A1EE3E85B3A65F
+9B1C72C7CBA58C768685104BB7E68D83080928947CF4C5F699F3690967D166C5
+E21B97AEDDC77930B43273D9F1C2BF5DE9934E4B888742139301CEE5DFEA2C15
+5F8E0C765789200784CA6CC04D56AF3DAF9D5990E11E5677082B54317C310054
+5531B57F088323356355BF7A5BC9D839BA7C96F7178CA23C0FD1A24AAACE763F
+A58B4C0485787C170F5606792E6F3B4610EF7960D62D3E45D78645FC19B624EA
+9E0E24CAD0115F3FC6A1DC312D7CF8A76CEBAAF6B87BD2954BFDF244F9B7EA80
+C8C3B5352DF852343E982E8E2ED15A5F5103C556FF2954EADE05BAA4CB066B7F
+F21E08D46561B074308DC324B490E66112B91973F17AE2C98FC16009F9A9B31A
+9E08614579C94948A68042092BD45D87C6191838188FB7EC077DF88BC0810EEA
+39CE5F6E6A4E79A1A1DA4B4D02D1086A2D88F4DD7CE7221B813734A3FF4B5E4D
+1504E2EB87FECE3621B4684237DE50F129294D134213EE5A47FFC1471750F66E
+123667282C40828E3EAE7B5CC2750226CD2B0FF9B2E49F5D859D6AA6104098BC
+671E502CF2BD475F7AFA0EF0F95C1303832EE419B6A9EC838E971941C0D27DB5
+B1D2622E69D103937B0A0A34A057ED275C4207AC3E1077751C9A25820B0CE2A2
+A44FC289D78ABD3C156F6F1ADF1816766E77F28FFB75A393ADE51FAB234AFCD5
+37E271175ACE565A85482A25620984BD5D0737D6AC77EEE4EA9F3402D4965D33
+C7000C1069803BA6C3A821904BB97A3587170381537FC5A581707D4C3C632EA2
+741279DAAF6F7726B8DFC4279B89DFD1A43B26CD09F5F38DB748D114047C310D
+50FC309491913198D180FBBB3C1A89F682D5758C5D940A132FF032F3B44CA0FC
+FBC6811739B78F9A22A0B9DBCB31BC08376365E08452F8E276E05B4ECC6A9B1F
+846A7A6EC7A7BC86551E26286F5EE860F72D76D40E22EFD637B632A22D061060
+E51360F95697B02F523598854827B76B0B4E86F0BA7B0850455561D0E4FA44CA
+FF98CD03F4E085B6494F3822A8BC6297872AA7E666E281BCC44DA002B73F3271
+2808A77E6B548B0FD7B24B03A32205A066ADE862C501E15591E1057595D1B983
+81DA042F3FC24EF52EC513F85AE80B88D673374AF31A671DB169BA4A8EC43DD6
+A27CCD44EE88C681EC61CE61C2A54E5F1867A5C8D5923FD0BD3E448C3B2E5626
+D311B706525D769F5062915F05BEEE5140B7860AE4E282C2C8810BF944AB4760
+DE02BFE3E1840160F8F080291BBB03FA55E2CB6D15E2D2F50DB74ACFE0AE1AD7
+5F415B63DA8E5C7444C64EB93EF3017DB1564BC6D3A07E1AC4126DA48E92F316
+C3D1BB18451AD8C5BD89E16607B680275B444F61ADB6832090B8488DDF7EA5A5
+EBB1E70DD1BA9B8CC665A16046F4075760783891B7FBC717BC3C49423528473E
+5C616359F7D0E528CA71E643EB88AAF241A20CFF8667FBF43743CDFD1E45BD2D
+4212A276BEBE73081A5A8BF890E3CF932F8B8E70E646E2D78D64182BBEA6A94B
+1BAD8F9FAEA95C2468B3377CBEF942CAAB37BC8E9FA902E27B0A032449895AE9
+46989ECFF2EA561EE0138C9A43A3A74331BE94F083278AA1DEAB6B2B691E17CD
+9E83B9F4BC05F58C44660A81FA8EC8977877EC572450EEFA3EA452DB93FD5C90
+3D6CD160F80534ABA44D7A88130B6B890805AC3B1F7549DAF96C49D1D7BCD684
+BF9361A00814CBCEC8E6A89D95FF3F702360939851170399E0B3EE4044B7034F
+466C09BF2ECE65D4A379F00724C447526D4D461161F79D9C17FF9551900A39A4
+13DC53A0694C26A90F644B19D343AC29FD49A826D51199D1A3C6BA16FAE9F790
+A757995A523C424459555FCB4F8D1E722E606904920C7F02948E2D1112D0C646
+76E66D29E5F727402299E6804BB21B4212BCBB9CD600DA03057FCCC0366D5BD0
+1420DF25CE02266819D912E433C8C4813D0FBE2A7CF429A6BFA942E0B8BF5705
+9C312FF2C6151973F03F3E75663F7F05477E9488547E5A25F3AFA84467CA7241
+2FACC538E87F6213D9151BA1622DAB8D0EB2DE7163BB82C3FEE77D18A409DA5D
+410572C0861469721C7627DC1AFD9A5A30C0F23FF26B31E66826093A22504F5B
+7F492FEC4C163074796CE703B9BA9B20D2A72ADEB311994FBCDB4CC94C1E9C5D
+E8DC754DA37D7FE30393D6E1C8B3047C6349A11932BEC07D78931ABDCA9AC911
+4D155A91C95508300C13404A24B94A116789A65A02BC19F87AA5165F9A421EE0
+4176DCA8CF68C8F2CA4B9F1E029C8AD47E27C9ED39DD00EB3865BCCB7823FC46
+8293334870B2DD9C260FF0163239DCA914D262300693FA51BF52440A9C04EDBA
+2A43C092C10D1AD9E82C4E2100B9D4EC8466EC5A035F2996F05496ECB61364DE
+5CB529D3F268E135A0B84ED583B3C217E48C1295A5DB3FA48BED14B8BD1B66E6
+74FD14BC56326945C406C66985B7CF135A72B58018DFC5B6D2FAE195D85A6BC0
+6E90E8621DA89B783A7E1FE79F5E731F929292D1B37F064417E51B64E0870B4C
+C094CA5EDBF626EEE88935261B25244F36158EC58E8EC77922A16D6DAAAB60B5
+883D8F6257971A7CDA8F52B8BE18748170E5CC0D4E6D7265D901B3875C228D26
+813D99357B6229C9C49E382FC14FC01CA2E34C39ED57E805A30A5AF850A3891C
+D873638CD806D88D42D749837878C14E0B9AB950BB9F367AAC3EA506C5742196
+9460A3A2C2F4A03705A4F0A75FAF09C62EF6DE40485D72444E8F92A22FA84624
+012D2FABBD0CF86907BC75571DEDC9A9DAC47CB61FDBD08606DBABB4F8AB0884
+2D705A8DC2044EF01FB71B31E087C6B30F90C10C295E82346EA4C702FFF1E98B
+D7382C180C960E81CC5E3DA66B44701EF921150938CEC0FB0E2ED609F4F3D2E9
+9AAE5E4D6A8C9F541799280F9EE2911A47633F72D739487798BB6AC40F375C74
+2AB78B8D4B2954C65E2D6C5EEB6E7657DBD6715CCAFC9859002566410F67CA80
+073C8238A3E35512C8B1FDE88A2D8CB35B444A837C931E9A5239970CE2F971EB
+13CA32BE3420455FDA398D508AB41B6F92401F0DCBBB78FC3E2D2FB1B5FB09AF
+B0717D615B3ED608ED99C968A2790761C102CDA4CE40A60E4AA58DA3B92F6726
+2D0C0DF60BE0A7D24F168902B6CED64C3C69900BCF6F53981150A9F307A7EC6E
+C7A61B401AB530D995D7DFE0714FDF186C2F71459D116923FA4B3AE794C463DB
+F6CDFD8504DFE9E2A37E59508CA79CF3ACB323CADEED5EB59931B160AC6F616E
+5A2E8021E12FA8AEA8CB004DB2F6783BEEE1C0CC2F86481503E690D3990990EB
+F9C8DA3B2134662A78BF5C9397321C07197EA40B9D2712ABA8AEC64CF511B6A6
+A903F75FAEFD5FD78BACEF6AA9F7F21870AE17BB4870481DC2E421115071CD68
+98FF25BBABA862683D0DEBEDD73C25389E998A4BC54EDC1DD1FC2CC1F90EC83F
+DC5D7322062DED9DD30EDEDE0B4DE90AAC1A9E1C5BE4978BCBA8A2065C88440D
+6801B6A5566E1D219644C4929497B28DF2F9D9A399EF07B24841AD158871DE63
+4ACD35A46AAEEBB3580401470CDB02D3568E4DFEAB6417AF1F26A61C88AE3422
+19C24FA79A446E68A0300662485DCA28404AED8F0A54B530BFD243DBB7DB1C24
+532F5B6D0430C0778E99836AD0195313B830CE169547070C6FB78CE10356A240
+90F82B11C69AAAB9BDE21164C547851CCA2537F28A5DA32C4ACAAA5B2DAD4018
+B110FA3DE7AC13248D2777E0BFF838CBF2970AE48FB22A62452B6C244CB3ED1B
+AF7EC8C45DE1633947246F8A08FA5C68EED3AEFBF010A9B5FD3D828D2FA99EFE
+4CAD56638EDBE256A918D772A39A549BB6B04702AE1E90C64019124E5EB66A22
+6B0352E76B9E504B5A9A3559F06F077089C214097031D462E4C174133F92504E
+3BB0C4A5681CC87B7CB49B87C196F22A50A567FECB211A706090606AF8BC0BDE
+C27141308785FF015B6684959527FEA8DFA797FB396BA417050DFCCE775E452B
+BA5B1C1B3D3DDAB465EF77B4D598F55A518BB51F5BE4CC56E4FEA18DAB1D8793
+6659192B7FED0634EF63651196C4EBF0131EFDED59020525114C65D04212106A
+6F701AF5FC13D79202F85D28FFABB3B24123652BD7CE8B4097A716519B96CF85
+26A71B6A39271A43417A381901436FB7AE6140AE32B01D7C2E3F512B143A6850
+B06BFECE1F804B59D376BA8D8C67925179A0154C8E3B9884FF1D7750AF416A55
+72591DFCEE2C809E40D7BC49541D3C1BAC83CAB239533D5EE5A6DEF300B5F46C
+B3A18679DE50905A1D3F77DA8F366C4D028256025EC193C3B1A71EEDBAB523C1
+9C3AE134629627057257CFDCFB1D14B9C3DFF7008F73D2A0638D9A72DCEB6FB8
+FBF0A604EF3A92C3A49E840C293ED592AC1138055525F6B1D92613266017968F
+75A072E62EAB08CFA7F9061113F6BDDC33BEA121DD1E3BD868587E86E055E4D0
+BCCBA1E827F3F37909A43B065945B93939FBF4588407270FB026F40BB171A88A
+3E7D888F95A0E9499851FADF25C9636C50198318EA652E031D64714A59812901
+22A4FCA0FA88754AE96CFEE4163A1DA328AB83DC9E4436B5A5870E8D5588DC09
+576FA26F2C2D995CF67639EE5C4C209687C25290B4531210D38BD5B9BF503B39
+067421FB71DA146ED4C22EDFBE5201DEA9C9CC4A6C5CE215D1F0076739E2A70F
+14A6365C6FBDD8A0F0DC091A7E121450493490B2B226CC9096D57EE0B818EBBB
+3B1E653E3AA2DF732D1AED8DE83C28F32EA03098A10A8BB1E3F10841F7E288B7
+0731D5DE0C0C243702C4571B0F08341029EA61A0AFBF2BA1CD41CC1904A48573
+BA511FFD7E4D880D4263CE69AD0ABF0E146C27CAD8D71299C4AFA2532F2E8481
+C6126402923476EAB2E345750D6A22A40ACA5617938FF6BA331B58225111539F
+1C8E2C83B75A62E22D3DB4B910E909A588084F69F60272A4DAF44F1469DBC9AF
+F91393D79AEC524DE64ED9AD42516985CE04D37027DFFFAFD36CF3D444D7F946
+288EFAB1744B8FF8F1CC6A0C268DBD466BCC0E9BABD426CB0E2F67
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMTI9
+%!PS-AdobeFont-1.1: CMTI9 1.0
+%%CreationDate: 1991 Aug 18 21:08:07
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTI9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI9 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 46 /period put
+readonly def
+/FontBBox{-35 -250 1148 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB3DF7BFF10C9BDA4EFE5F68A8CB1526990D1357AE6D2F7C2D2EF8496
+4E47B39E6712EB8908A3265E5FAB40567E866C244814449F1E993AAB422C3F1D
+DFA8C7118584F2E5197FD4BFA3A8AE9E953C6CD4672C0FF51E41C3A919749C1A
+F06650DF4C5E17492164BDBCDF22609A74BFA7F69960A64B9F949FFC2A807458
+8579366C4F41BDE1FDFBCC4845FA19BBB6963D65EE8532549274BAEBDFF24FA6
+03235D1BE37C06B1938AF369DA75BF38DDBC87A1FF445EAA16E1895ABE9506B9
+211955753E447865D33CEF007391D2666A046277A30A49804FFCED3FEA5EB2C3
+E52EE14A9F75241EA10C91974CDA6236EB840FD44D6DDE4D9B3266C3B99BD38B
+D835BCA8CB819C073480FB972CC028D218F6A1D344CE1B63F4FBF2C826F412E1
+6E0B05A26125865A14FD7B7030B478BB8BC6BC395335C3BA940E1C348267F4F9
+0AF97BBEE253511940F1048E175D3569F7D05A28851B6F50765FEB6C9654FEDC
+1BF52F535DB5BB90C1BD5D2EBF75E0AEBE82B20507F3C28A03746781018D4EB2
+298E4F2C27ACF73FA73EBE43F014BB575AAD516C0407B29E1653375135ECB74D
+C91372F06FA8EF37C31AF3FA48AE65318EAA6C34830A5377ABB2DFA5DA53A574
+433484BA1466709A4B186761655C8E482833B697673E847C691079E7F1DCB8D6
+1AD91101D757B83E2090337D525AEECB028FB3C9F6A6E6AD2F322CFDC5A833E6
+1CE4EDBF41FD34FD61630581D222F854A76C2EA9FD72796A7C9CC1F6C2FCCD16
+E95CA05826A4ECFADA6A5FB83C41A7131E52BA6585DD6DD78515D8F7327DFC6F
+9404F89293D6ACB433CD0802C43F0E74C6C4766A23A6AE3788FE6CAE82E1A104
+BAEC8BEFDEFE4F292F625E60362F3886F602CE4121BF0AAD93526314BCBB5971
+40091A7BBF7EFB3BA355B88C897D9C70C841DE41309348751EDFFA8675215988
+49CB1599834A01EC6CD4FD813AFF97A614F56975775D5F48E9C1A9CE532FAEB1
+4EBE20C3FA87CFE03664C428BFC5C894668E507950005BD8C2BCA8998C1FB92C
+4E6B791BA05B79F332EB8AF5B0F851B8B7EE372EC0861B09C007CDF43F82D0B7
+35446F682A0DA7F4112CDABE4F922EACFCB7B8C88BF550B60957E7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSLTT10
+%!PS-AdobeFont-1.1: CMSLTT10 1.0
+%%CreationDate: 1991 Aug 20 16:41:43
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSLTT10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -9.46 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMSLTT10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 39 /quoteright put
+dup 42 /asterisk put
+dup 45 /hyphen put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 58 /colon put
+dup 65 /A put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 80 /P put
+dup 82 /R put
+dup 84 /T put
+dup 88 /X put
+dup 92 /backslash put
+dup 95 /underscore put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+readonly def
+/FontBBox{-20 -233 617 696}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0528A405DF15F03DB1C3DA8B850431F8
+0E5F73DAC973450D1ED0530313057E971FC7E7CA88E61DA6DB9A5CD61F0F76CB
+4DE9105D0627B8DDF51A655098229920CF429CDAFC3F7788C95E7AB30E84F840
+8CED52E98DB4CFF161D2E62B0D28CB8B0AC82E7A8D2C007953BAFB3056D66079
+8064956E257D31C13509FB81A250D9E875C77A4E91CC49E9FB3C0718B2F691D4
+B4A64F351F4DD68133DED7629B0D96E5124584A16FD2AC7A3EB244A934FF059F
+ED7297B0505F3C2994AD66A3CA5D2728B034DE94B64A8AFAF341601BD4DB5858
+C9950A8BB9C598B8960609F48116ABA8C007190AF0ED335EB5BF61BA6871FA5F
+EAB5A26AEB5C7C352EB80799CEB983F19EEFA801093F62086AADD0B80BB6580F
+2CF61B1390FA56DFA1A0B61C58DEF96BA767A8A37EA44730783C600706606C60
+4EE74EA99B7C0F8E2525C8847F3D31907C3C483EFA98F6C416B6B2C343DE6370
+52FAE423008D086A76A1FFB327CC7FD84B1C66B203A4F41582F4599A82F8362D
+38108452EACCC937FFC4F3ABBFE3628DF51367DA6BA3F6826FC6522D6AC5E8EA
+00BAD300FFB6DEDAB93237704202BACD030AA824B1E97C0AFE17FCE8C75F4FA0
+B8A74329A6CF1788C7EB34DA7307411E9AD7ED8D6582884456E06E033B4FFE7D
+CD4DD8B06AD01340CCCFBC382C18CA451E4C886B01D082FF8CC5793F4727C3DF
+B52B4F1A242F31D1EB79D1E39A1D4FD13D6C5E2A42AD4B4D1CC4EE7BA0E5F80F
+802E5AB57EA15F4DE44D82AC408AA86D4BF58EF967FBC6497BBC7F017C0598AE
+32CF865DFFF0FC7FF9E6DCE9B5F2F4C7491AC674F46E8E7660452CE0A77C1EE8
+00DE382ABED85350033EC00053134DBABB69DD3098576DACC5D1E325C4B372B3
+943F8E90BE7B97B996D39337ED6D90F8041298B7A27B223358A5161FE98FA4E0
+6879524934E026863F790FE3B5A8A41AD2E91866F81B195E0A02D9BDF971633F
+0FE9A9BEA04CBEA9E46AA44C31D694A0AF3D7CBC1FC4988F6A81130613047150
+12203A85849EF4D9238604ED8040DC85FB0CDE867F50EE685C8B2BB0574FE22E
+B02F2595A161E810E2C9FB46B3E15BF0B3E7591FE9CCF7689B1988B354D81E42
+145BDD9A5C21B3E52BA1F1CB76BCEAD38C97D40F1FB50C505B0FC423A1F495BF
+62332481948BC331BE6395DB78C35E5DD1B55E92FD14F1943E73B157F5E5C24C
+AB2D70824FC69C818980EF3954F79FAA4E946064F55D8A62723694E4C489A1FB
+6A082DE0BE740A145A71F1F9FD011E558E3F27DFCCDDD49DC348707DAB524EA6
+88370F288567B17F313D9EF6300E8D910F49A4E9E581BC95D89B84E2591EE3FA
+41FFED57028D28600F1AEDFCB752BEE359856AB8F776A166C83929C17BA13600
+0A5D2447AD901988E5F5B6B9D710080392FEA79CD595FCAB7B9B52C94E0733A2
+BC63FBE36CECAE723EBAC3BDF4AAD1494B9F3D146F7E3DE66F77F6C3636C6BF9
+EE6C73AB8F1E98E043710DABDD1E9CE6E3F5FA8F44670AE15BF8FFEF72E849CC
+A9E20CBFB577BB42C9D842A3812FD73D0E26D592ECB2A920986F623184ACDCE0
+90610840699BF7302E534D6F9EC4B007E6CE4D8D07BF9D4F486C503A3EEF3999
+50E3A7402046E7C08AD26751A910154284312117F6C6AD506038B4A5A4E1097F
+26241689BA60A4B2E58103089301AEE41DDEEC60CA3ED74B2E838AC0A86E355E
+EFB46562208EC834133CACC4A6516B4378B8C3F86083B18AD53C3C1E13200B8C
+6F4ED7346CE480809EA316BC70C5AAD4FAFBAF995C7ED82624552BF2F0017E07
+51AEEB8E2529CE5E24087FF3F0921DD9963AF7BCA9582565573CB5A463C4A5DA
+0F1C8A82D76213DF461AD578C25340C4178CA8A7E99D85CEAF6605FB5AC336AC
+22CE77D930F859E0089A09D80C694C573BED5448F793FA7A3A977AC2EED1BD47
+7DDE4D72B9DB3828175AC20BBA66EB0C3D1CE9931AF3B5FDA9D9CF3C67E65CB7
+439F5FA380AFEC7DDB17FF8468D03ED4E99C507C3312E7926A5650346C44560B
+F729A594E0651F7BC3A0EAF5C66BBF27070CB1E691D584D48998189152D78F5A
+E2FFD2C517BA7127DF128CA5DEF2576FE2BF61733D5F3C0972BC423E34C102FC
+F84E33813FFB62ECDBDB494AD6A3AD2C9D1EF30D11031EE57D8F7775A6A0400F
+3EEE57D877FB8E007E4B309412660197770EF9792605C08668F694608E37BD9F
+264A298AB09C2A6E605C6A6BC523197E1F87DCA1150DE1A535C327CF09C86A3E
+2FF9FFA2C5A12E2C4F1DFB00BE313BA13F80379EB70873D89667D0E274EB43EC
+69E1D140DA4D02C8D2F8D088B2BF240EB96641836FA71EB749829ACFBAFB152A
+E67B9428C24006EC9AE92BBD00614E4FEF490944C906EC75508730FBD7F8E439
+1FC995C07CC43B83E2F4063A30BAA9E1E7398C250368C6E13BEDF0F14E6EF31B
+823FAF0EEC9A2F745125AA099110843D606073A374E97AA91139C190B0992CC7
+07926D8F9F04132B6C629B6149B07229E3774AB12FD9CD2917E8162D6F4D26AE
+99AB9F015A6C629B094E6C98767B8903678EFAEE09BF1C7B6F299A0821877171
+FD01FC4AB79872088C954ED616FC17DA91B76F33BC8AF20EB81BDD3CC686C5D1
+E28ADBE191E355419683D64E7A3C9F78C380052F9329EA6E7102ACD7D5588DDA
+B1EFEE6F0E6B4378D5E7DD88163141E47FF011C056319F8F8ACCFDCC2F352696
+3C04052BBEB16682801F73BE5B988BBED6D4C31B5D188E2C1D42C368BCF81B7F
+363189B07A5056FEB84F7DFA5186E9DB319854FCCF6AB41FD87EA5C65C66201E
+00D743116D2F0B799DCD60FF0F534FFA92A4B8073E12245F194D9DA9D76993F6
+A17AEDEF24027EBB10EC75130081B6843C302BB5EB62CA40186F2E9E4ED17296
+632B085C31B432E748433B4FF2F1CD7BDD4E6B1E6C0C369DBCB7D5AB64D2D275
+D93A35F54339DE4EB8DE77418B977E50D459732048AB32EA4CF69DD7DEF04CAA
+C22F16BCB3BE34512364791EE63E29B5733401C8F5A847764525E1B14CD6CCE1
+81A16F9FFC6D5B37B293938F0555AF9592537F4A9B2AEBE9EF766921DB1D2B43
+7AF063B20D66F4079ED13B0FA60EB782DBE17C5539A1A5CCD335F90B489E8C68
+95C28F9EE0E36BF385C0D554C681E5D927017B7DAC58A4C3442BD015892BB7CF
+51CB250208CF5661918B5098017CEA30B5C0402C155D4A8D4935B92670B333E9
+BE3154BAE9CF9BD47D79FA369216E2F3F0AA37DF598036400107B60E25FAA284
+87BDD4BA6459617AC77787137BA30F0CD07576E66527BF4D39E39E4AE54508DF
+351035A3A1BFFDFE5BC76222C8797D78723A2F3A69042BD31ED69F88E8F6C68C
+F0D8EA3F36AFA8ED13EBB95ADD129E21932EFCE965F89A399970F30011AF367B
+3AD8089D6B51E0DDC6B95F56435610DEE2AD9D8A2FCCD9699663523754C23A6F
+774F44816FECAC1EF43BA3F9A1D69CC5457482E07B1976EFE7A7FAA60579B95F
+8DDABBEAEE10353D72759E316932D064EF132FD0517BE7009431A5C185CF7A1B
+13EA10A69449674E950ACFD367713348FDBAEBD12AECBFE70C4B7FEF702BAD2B
+19DB97450F38E73B2784E98FBDAE84D2C3B1167E8B85A1ECAC09E62D187A3043
+ACB93A5701AB9E66F25BC7D103DEB8161FF7DE5CC957218F0D279723DA4377CF
+A08BB2B08218D5F62D4FE80B8EBC3B8B2D0847C561A2A8A1F09EA64AEC9281D0
+7BEA4DF7C7ADA40809268E1DDA46FB41216DEBE3C971CE51C367773F7492208E
+E7EB797235FD349F6BAD6D6E4F99C29F5A6C3C87D6662210AEB92C0FD64B3CF6
+AE2DF93D6A6EFA27B976E3A91BE80CCC2E7A1F2B90E1058F8AB9FAA0CF87C15D
+AF37C5EEF32ADACB6FDE08EB99F62F9194328C09BE10B390C349606AC58C167A
+15728318A475D8F402E294B0E07FBE936574A0FA09EC4F829794285AE3150269
+91D07377024ED8EF474898744B82C693B8D9C91E1A9011D60B34391564A747E8
+57EFD30427B4001470009229591EA924C547FD154E16646DAE7BD115B0C8E3E8
+BA8FDCDADFF9A09639A4B9FEB1B9F5C00CA5C87C7C04AC37BB7692689C832071
+5FC338C4E5B448BEB3B9F60394B6C8362D523E10B2DCDEEB70ECA04CC1C7CCDF
+2827E3A40F34B70247CF6C5D3A638896366D4A28FAA2B1B98F865626C69039FF
+3D54638C23EA32624CF10216A10D83BCB734A09575AF1B41A26B18FE5AC7C89F
+64B70002CBD12AA01EB9BB97EA993BEA9FA225552AD79B23ADE62D47C48BE023
+AB1ECD12E6D825A62962C41BC108E8E7FB37B976A4F826C12A59E7CE61C6CF71
+41F24BEF3E29709C371211809636651F02BC08EACA9B0AB2632DBD5D6E756953
+5C4145A7A3A81133D237335D202DF3673BDD07F679F650C67066ED300205584A
+26E444A3731355C11FE972E181D9C93C6C29CB8CF542CAC213D9040EAA05889C
+8C6EEF27DE0846314699DF54E99FAE310F11E3AB9005C432E5208D8BCE1A37AD
+F2D7F3289C7C564A24B951E0AA63BC60D75AF80428FA27EF965A1600D1A7D357
+935589477B0B5E12EA0512C7D219561F91A9BC95580D4CAEA7218F8B1045D6E3
+FABEA4A25ED4453A7773D2C314B8F156249CA4AA102AD02343E5BFD0396C07B3
+14DF0108D25FFE8ECFA22D7C5DD91D422A399821E7D910FC87B00544E53AF711
+E98F45C4329FBDACD3C332454809DEAB801F6DCB9511E92F235E1A17EF8DC8CA
+1C1B6217082CB95C1A605D7835741D3DECDE9202DE38392B18AC147608CFEE8A
+BF21E6DE2429846EDE6CA2D573C1506039E9AECF0A52318E992EE6A2F23469AE
+C0CA4F3F90A79E610E4928D95D0210A30E9DBE65B841D16CEEDB1D98FC42CD3E
+34426D5FEDC316E922F98EDE044DD192037787704B1206A21F759DE304972B60
+36115A6DA1512B38FECB759432F3A3BCF3DF0376B5F8D478DFF2BCEF69A3BF3C
+7A65C734EB54BA16D2DF4B7D12F646DCE4FDEC0BBBCE02A623EEEEB4C6E81593
+C0A3731B901C2D65F353937FB0CE821490398DD73B24EEF7943CDB0A1FA1EA6E
+6CDB64DDE68377298A655116C02BC58E7A1401024394FCB4A4781BB0ECCA339E
+7E8890D1C5E5B6549B5C7B42E3C1FE35703B21906A0B9AD51EE5117FAE9515E0
+3C1B82C57BDA12592692CB93370742E5AE20601AF5B4EF353CFA3EF5C92FEC69
+49EEBA22B9129068DEB74C4D04756695745C02DF963F12D7A256680DD052B070
+CD7B9EBB05015170EFA40BE9E5C6A3B6CFC2C2F2A2CADA796B837E0E9E308551
+E95A5D6598D332806D7E1423B0D572961949E322CA226726FB20DB1F25DB537D
+3579D615A955EA323132CF0DCA83AEA15A738111BC420C200067379B0E90584B
+7D142B52915DD2507477E6B6026CE3F55B42B6CD45263637D232FF9106934947
+0F31918EB3FE1AA0C56A67102D3341551365F0D02CFD324627C4C1BA77E9302F
+673FE00CAECDD5CDBDC142E7074631C26258B1BC4DC5301FBD06C5CC46ECC9EE
+8A3FC96AF26D9FAD776F4CB4BEA8A76362BA77AA07F4AF80BA17D6AFC668FAFD
+4444E78E82FE7D70226125C15388F46D723804D215BF2A16F7C21AD0A632998D
+E9023CC75FC816112850565757C5E537BE8AF1EE069C3817CC8C4FD85BA8791F
+6CFCD13667DC618DEF2B7F6CB788D8A039BEED888E4D0D8C41E36012774A92C1
+1B9D1A7343CC7513730619F110C055D61A4FEA3666097E27626F7AF00D63C49E
+C7B65540B1315CF48871455762EAA5EEB3714564E27C3C3F06AB0D5F08152B1C
+3FE59C125EC1EC478957F9C41523DB63EA844B6BCC3F37A7AB39780DA0886F21
+F3DF1BA3D37580DCE6D4E9A512669B1864EEAB35DEF3FD4A9279394E1E581020
+6FC27F2DB0AD5BCF04DD864B8070AF99E37440F80A80E13037CA7C146BE7943D
+B9BC86AD2B250657F97C7A96A551326980E14D16B5470CB75801581F8179BD05
+5A87E566BF2E2BD81C3CE1156E54636F0C0AE68AEF10BC74CD0A3B6DFAEC2970
+2C23166B8BC41F06EE48DE5D6B187F25C74A5A8C6A464CB9E3735320114E9A39
+00923504771DACDE90073F2DA7BA91E9D86B0660897BB72BE5D851F5AB62C6D4
+5709A2DBB85801A8D7FF60B14540305280E53C605121A863665E0A2D47D8A31D
+173372FF7C179A1D1A8E4F6F9B34D274A94B25BBE087C657E09EFC6BA43445C1
+70FAB6A3EF0814094FBF5370382DBC64C4F03CD96364E047CFFFFA66C2D4F478
+9280BE9F6538BE45898F52E2F05D58DAD8DE61D096B08D5A80A65FC46F8FEBFF
+C7506D9EE411E3D68BA61C3B768D563FB9942E0DC5DF82A6AD090D514D682ECA
+C1F50E14EBF58D3E1513909F4C7CEBACFD88102670F5EB176D5F53C9C92C6BC4
+B62C55E5555548B1D649D9A23EFAEAEF97EC0C3C627DFE4C8FD0E1065ADE5A74
+856863FEA0A73BBE28B5EC450596006508EF8FD468C1E2700D9B328684ECB780
+3167104317B143F059A53FBF64E4B7F7DC60B7701AA8CE4B5ED2A6AC991A1E99
+BAFA89A16DE0E3A0AA33022B87D694B3CC40A9D0B346B1080C840182A0917431
+CC2250854A407D83239A811130EF7EA6841A215B02248258FF3BA66DAEF6E137
+088980B04FC658DA0DF60DE24077F71318AE06B30627C3A638D6C0B2076D7A04
+5988936B9CC5ADAA2169F739B8F54AA91B85EB119E5E6894BF4A76E74F96F3FB
+CD6A3E96E85567581B91BE4A78FE90CBB1AD177F3A08B96BEABEEA5BA017B545
+69643B523626A76B823F8A010398229379FC051B846597EC174F3BDBE86AED57
+D29BEF440D0A458A51658A8F11A84D553ED15BE9437F4F0C8D3EC3084F0868F1
+C8E36F3E97E657F815560E470E8BAC98AE4E40DF2CEB35A76859083046CE172E
+C2F0DE76BDADE3E6C9FEC16F42605A41DFA748987D9196C3A8895535B756A37E
+D9E8056F6AE08DAB8BC625D127BD2B1633FEDB2DE282A2F22C0CC0CD45D7DF8F
+6735C77DCFC66730A8D0D5C802E3D3E8A2F7C95BDBC769E9C8975116F3B97C59
+4F57E6CB135B014E34E1B2914AD2C4DB41E573730783F6531347F27077A1DBBA
+FE6DC259D3CD70C36CAD4529DFFD07305D786AEACC8BF3C4D3B7A1ECDCD3C4C4
+0607418948E6C8510C9CFD3E2B93675C81C33D1ADEE32892A47D92A29BB8F04C
+278350E660667BE6139C0C8E1794FC9AD2099F3647BE96B1CBC8BA2F77A0AEFE
+97EDE59D9F9550FD3952449BEFEC5CD25632998EA8E32DB16E6C93A83687C853
+FEF32A49FF372CF8E580CFCDA6BD6E3BD60BE8E652FCE38D54FCB4F00055EC0D
+A41C9085CA039DC00843F9EFC88D12AF8C8826822464926023EB66AF8ECF3F86
+2F0488DAEA9F996FA25E8C8258FCE63B3A6C661BE677D165F65EA67B152ECA14
+0D2E61BEE481BEB1F45F2A83A96E95CFA2E2D076706320682B19F1547E68413C
+581183B679DE75B7CFA694BB4E9D032D43AC0F08AE04416A60DD62682D30838C
+DD4E0897E2D8A178F4A829DE0783312970A8431705CD2FC6DBFBF57FEF332AB0
+5473B356B7E2AE91BF8D1CD9D780FAADF246AC930C0347713F96D82F1EE3BC2E
+F84A6CB140CF7AC313F34B3C1E073501607447C8B8324BA5728A28669B5D44B3
+7F9B38562E61D74CACC250BF9EBC2097167A013338D44F51D036257398267560
+5B4BDF8089C59CC50704DB35FB7EFE08E51F6A7CAD8EEA51C4909F8B22313881
+D90C6CA7CFF8A4135330BF780BE40249052A29934D57F83F6667EEC4A7733447
+B84CBB016D021625AB1B40F9AFC0405DBE0D7394D46595613CF234CD7BA6979E
+4AFFE8FFFB005B3D18A93A2DBC465E0ED90B113DE484084914B9DF7EBF44A678
+AD814A4EA2815C3BB1811109F500738F860EF4079AB3E826C2F92980CDC7F942
+0679A6EE279291C5ED84D53EA15B59EE47646DD51155020EA7DA8D4A475F1266
+18A8C879F4CF3D0562E61122B59A087BBE110188E634685D9E87DC0E5A8D06BE
+98AADB84E98A4428B25E66DD2AE23AB185D95D62ECE4085BE1D4967E9CADD5E5
+EC92BB488AAE7814EDBFCE5BB7F866668CBD8AF904FE4C7699DE9764C96CE74C
+17AA20AC60CD480F562778A95E025A3B98233F6F7EBF2F0359498A389D0F5B55
+8CF1686AB3F1752B18B4A4B1D873DD8A35E73B3A7F08BD152DB528C52ABD9D29
+9BD2DB7F07658D1F7E51D9038CFE60DC9D03FB2B6634074B6DEA51B63A358B58
+1F7096676997D5B9DC7F1C68008B0BBBE13D2FE4CF2BEC425CFC8230D895E97A
+C2C664A99AAAF37B627B33A57B4131959FF07E80E7D35DC9F6C0C216781F0F63
+AD3396D9D197EB54E70288A6EB1C63DC0CB185F08C1262EE0E63ECE4DDE17EFF
+4C074B28BE3419A6A6FB04E0ADE4E61F54FDDD69AC02DE30B9B419975870BA13
+0ADF9F2658D799E9DA2E4AE93C75E0EEDBAC66D77F14097370BD22D009BCF6D0
+838A4434CE9E65A045538BE825C804732D0C98615B724F8B1B6F052AA52851CF
+7ABC84AD999A9EA32304582C04B91B501B9B3CD2A685B9361F21BB52AFBE0496
+2C9DD63C1664BF0693DFDFC3724DEAF49F6B9025672BFC12BA194CC5DF0EF962
+18AC0130436D9D27F66B1089C0B59264FD1A388B545A469D57D20BC3864534AD
+73C748659935976CB0BA8AF81A159B4BF95EDA9C8130984631F1F4912412F02F
+BABFE838EE13FE744CED03E6914BF43FA6DFF3F9314F42BEE02C6663037A3DDC
+6BBE88130E6525D2191EEB828FF6D7208FFECB77554DC41596FC1EE24FAA32A6
+01D701BBC23147AC135A7AF22F8E82C5FFC20478C097EF9DAD8D0465D271DE62
+012B1026F6970C05071ACC483D1B8A0E759152D94E9470EC560315AAD8666A16
+7E422D75CA857276B0679AEC89E78EB6E5603B2C6588A27EC513F6BD48F839C1
+3BD38C5B094110AE4DBFBE728CA8DD44249512B9AC86254D618F9CEBA7C6C544
+967DA6AA44DC0654E581B4CB0F8F739AF8EF2A92B2A359FA4B3A0EA3FF4A8736
+853D6CDA7034C13AD2DB0ED59AA9E6515227ED65E82B0A149F68AE248FE21B0D
+50CADB74A015BA18F6C1E534A626C4F50A379E53B18CB8BEC38298B6FCD95A69
+601D2508FE90F45AF92D2AEFABBB0D0AE51BCBE5AAA96393328FEC03597B4415
+941F0F2DAC79DAB1BBD04F1B9B8CA189F72D15D29C3F7C491FFBE9C991CAFB48
+55E2F73EFB9C3CCFB791863AEC846799202754ABF7E01158F6DB791B8338264F
+0853D06D1230D8B025DAA6095C9DFFF2E08829C7BCA90F6D986ECFDDF424F532
+29033647C954BA1F9C77E9955905867B31E45751F240261A3DF10F3F175DE485
+D08E903475856918194BD011FA5BCAB3C9923CC8D8F78B688E7892107A3A27AF
+BDE5CBFDBB4E29B28208F66AB1456452EA0E36F75D6938312C7D160957E3D555
+E2DEC5B209D8FF62449CBF1DD1B5D7A799167AEE4DECD8E4FF761766AA094FB3
+7FB7E86CFD76979667AE69886C797BFBC2E5AB647EFDE080AAB5B1AF6A20C0A9
+BD705D2B6AE86218C50829CA99D4EB234CBB0476F32A186B45EE45D41785AB77
+434538B55F485CA58FFC35EF51C7C830EAC2EC176F816A2B3F271FCB610BBB24
+76C36D8EA7D5F12845DCC200227D86A640CC0D70F59791F6408702AC7D1DF14B
+F4CAAAB32F181BAC49255BB853F6B082EBFD1CA577F6B6253616DF067F003C65
+88AF610C5F58E8D91660F51E586229ED325C5AE4C82E3187B70E0E59AD7B20E7
+375327EACC433FE34B699AFC471832AECBF19488FE673BAFF48409D24B4AB58B
+1C8E8A561E3C8B28A078FC161655D90609B014012CFAB0F5EB875E9A83D2B88A
+87E11FB574749EC6763D722D8CBEB5F98143DF01AC4FAA1A3B70844E24C92A82
+C864731DDBB846D8BF01C0805A24EA471C6E18C34C756C0EAE281A9F00AC4948
+3D2CC2F22C0637FC8DA5F4A9BBE085757EFB9CBD9E54F895D433E69E579D8ED5
+D8BA8C864142129E0AD170A7D4544ABD8A802191EAF6CF6F5E285404B7D19B38
+093B52AB8112001A8546DE62C64F2605011DF6E02C967E02E340F1E9383043F5
+4EF3E7E6DBAEE40AD431464011B25C8078DE28346216FFD394087F322007F911
+1EE21C688102610F6394E3BEB9BDDBF8A36A1273D6316A53B9EBFA037D6AC637
+BA0B36AAD961061CBD3C31463380D6D13003C5FA5F68F276468AF2CED48A6CB9
+387AE5741C7C79252928D88B51A853B00BE8C029E8B8C58F8C92ED4C74CC8943
+B4D89282E7160D532F9F22007312EA18C33A848E4248204F776F00D46D483259
+CA0104174D2F5DCDB64CCBFF60977D35A6CFC2CB3441EF966D15C7AA462B1737
+0079B920361AE754EFF71DBEC68B21A885AB9A61C653841B9A9DAED199F33089
+C560C28FA29073899466B9BA55EA63439B4D675811D5CED006FB6FEA2674CBB8
+ED75493173B82B70ACA4C66AF3BABDEB0B43F1E43583D64EEB11CC16B1F481A5
+68B11795DDB67CB33A03025AC2B215D5379835A32CE1D4E327EDE5B53FA360C0
+399A30E2DE611B64862138476D68C9CCF899FD89B5EB8E155733364FCF981F0A
+4E14E79325210F6C3B9C594C1B8DD2725DD694F7AA30A48735D69434C650AA7F
+563DAB6D793E70767DDF0EB615F44E56002946E3506686BB09A365C31A2C38C1
+E95E601A0987902A54BB1743D9EC5A5C496FBC987D796B9C75DAF3513D0C2685
+F315A7E3C61D75C661CD4A5B49297B16C1FB62104F0AB175DA178EAF5B63C026
+E99E23AEFDC25D1C93BFB7C9182B58D4A599B484616286CFC0C93425DE11417F
+7F7BC7B05E6F8B2E3E37383BE6DEC107EB08971A6ACCC66AE172EFC6F529DCB2
+4D478FA20742410A8804624DB03A90C6BDE00B38F92100E065BBB2755618A570
+BC84C28EB5DFEC2A4BA7EF6F4A6B6DBE18069229D912A310DF592878ADE6D3B8
+4684C42D5DB517E86265F689D54E870E0EF9D64EEDD723BB9F99B820EC790FEA
+7BFD5EAA848D6EE17519EC82A9070B500BB5DB318509F72B316ACF162A1FAF75
+E5C7AD5A8F7A2CA610C1A78DAC995C378C38D73CADB167EFD61F1410BC166FAB
+BFBF9C311FBA0040D77848DCB1B093D7AFA67C9CC400B1CC2790682D6077A400
+091915F6F609C581705F095BA8CD132E31341168597CBFB9CEB29287176EB484
+689573754C275F67B2802E9614B665C945B8A18B7E3355A922BB45011DA7251B
+90812D8C817AB81D65E3D69B00F9236D5CF95CEB734ABF83478BFEEDDA250CE5
+859AFE01BD9375719F1DE48B9700AF63892C3D5CC9ACB84F07D77B68025D44EC
+F6E08A113DFE85D935832BFF21A193F96A57594B79A69C3278794F3B96943F07
+9A6C629AC9BD16924E2C18268F6482A73AA98B0FF28E9B8E1E2932683C155B14
+491257A7FB094FEDD7501AB7C24CD11F3B45593702E4D462BB73AAC8C6D85A17
+94AC384C6B1AED89EA4DA938A789C3E19C19447DB3219EDA58ECDC1602A8CD86
+7416B777C32251EBC0B1135AF96111918ABDCDECADD7BA4FCFC07EBEC5F29863
+458D30E5707343040174C85044FDE203878346FB14007EBFA2D7548E7ED1790F
+E5CAB33BE24FEA0DC7B8091FA1DD58B303A449015E089FD7D0C3A102114FA2BB
+72213BA3EF3D1981F4DFCF0B7C3EAAB740AB77FC4401899DB5CF7D4AB0D50B3E
+D1D050B48D4DD999594B576A72C6FADBBE7B08AEE834858101054CF8EF86ABA2
+F82F97CD18CA9E5D5BDD5C9FE6079531EA709F6E12E8633C8335E1A68C1E639A
+7D8F2916118506FB51D79B02614CFBA56C44F6CE83FDCE29A606FAB6E06D4AF3
+D9819629213892707B1B48CC0FBE495FE8AEE915CD7E4F3E107D8427C710E6EB
+5FD126FA9ED1C43F6EBEB2771D9179CFDAF9532176AD8BF820351A6B614D2B9B
+DC0391C729A2F535326FFBBD9C5859B3D29F494FCE6D6C49E9D1AA97FAA8FC4A
+618E25F00BCBC742F3C9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMTT9
+%!PS-AdobeFont-1.1: CMTT9 1.0
+%%CreationDate: 1991 Aug 20 16:46:24
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTT9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMTT9 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 33 /exclam put
+dup 35 /numbersign put
+dup 36 /dollar put
+dup 38 /ampersand put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 42 /asterisk put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 58 /colon put
+dup 59 /semicolon put
+dup 60 /less put
+dup 62 /greater put
+dup 63 /question put
+dup 64 /at put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /bracketleft put
+dup 93 /bracketright put
+dup 94 /asciicircum put
+dup 95 /underscore put
+dup 96 /quoteleft put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /braceleft put
+dup 125 /braceright put
+dup 126 /asciitilde put
+readonly def
+/FontBBox{-6 -233 542 698}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E
+2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279
+650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35
+F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A
+D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E
+F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1
+4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A
+438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD
+BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B
+A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641
+AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74
+D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB
+CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A
+082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980
+9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0
+4BA1EBFAFDBEC531EA1210365091671CE3C86A6D4BC591C37DCC02570042575A
+9D24252D6E01A8603753934D7EA5CAC1BE4E5AD2BA047DE8F3983B23A8A1511F
+B08D373B69E5076CE4300137B8805EBCC0AAB89BBB312A77835795E3C069322D
+42C893A30AD739E2BDD299679B158F7493764F2321E3965141B5ED1C6F4765ED
+F46D391A646B30C90002B1C461AEE79E5F094CACCA656CEA3DB921CC5205F328
+A2C69F817061D6C60B121EEE844CA5008F23DF072D4D1C9EE000CBF2FC3FF4E2
+119740FB306D340D92D733000471A990E5227B06C53B3DA72141948D2FC17A77
+0AD21196F678B0A93DC026C410A781255D359F043B777B70E1331E88E68032E1
+AFD0CB35E99550E1C0FD2852A7D190E079C1B8EA1F8B005D66F8406E14DCCD92
+9B1F39E6A9CF2E33CBEEEAA09AE1930C846ACADD3B0F0F102B43AE6EEB3D9A24
+50C521F1B4D0541CF7B325D14EF0575ED2A7A659C828570DE5A4A773DC6493AC
+C95FDEE00FC1E9E332B536AE670CB145808E654923F757EDA89FF2BCA9E89FF1
+6D0D03C51443C52FD718CAE35DCE7CB7BC738614074131479E3B05F534F67874
+E2118A332C880EA45B91253E8101C38FDF36BC7766CB320D14F34722E2F40F8E
+A469DE22A904697BF8487AF1F26166730DEF2B9502847EA432FD862BA777B6E0
+C62A9622491A23CEF57E9713CD3D61A36E00C865E445BACF3536E9E33DF6DA81
+995CDC130C5AF0CDB265692F769BC0200B42BC73A117C0617C412ACA508F970C
+B20652DC14D4031E531BF59295938866FD3EC6F19B4DDA468C69B78E117DA535
+438B129CE6DEC5FC2EA667058B36799189DD9CCFC0D60F96A055280C298663DF
+B58FDA736DC747662D83914A9845669E87F78AD78F2E93466B14DE865CDABA3C
+444C8C17CF2C964CB42EEF8D7D72AA73B6E5A7DC48FDC0849A92A97253B05C76
+5E4D2A947538E7DD046A0107C5B473C460F9C0367646875035C53D4435A5DF36
+0D4C415B18D38411CCD3E29F3D63A14C9DE5B44CFA9DB7E3EDE6B5D881903618
+CFA9FC3BACEFE774B0052896286D9C8A5F302F1BAD47BC71064039020B164409
+7261EBC080F141CAD093315E0687776D604C8D74C77CCCAD5FA2A808BF9ED3FF
+FAADF730A8113AC0EEA8ECC761060D6A6D35DB4F902B6F63350EB5A819092DFD
+06559E737140E60F72543E3151039715DDE716517DA0A15BA43A7C0825997371
+B9B6CF9E3D3ACD82B053682EFA03ACC9055BB1C644F1BFEB1A543768237ADFF4
+91123E508671FAAE22B1118471A081520C6E138CCC5543F163BB6D28D09F6371
+78737184F1D3692BE655E3EEA04BB9B159B07EB70D22B4F27D218E8535282047
+8AED37D8470659F013D648B1FD43CAA99437827E88BEFD7B7B51D38B68FD18E5
+60B7C3BB9A1981D3CD0208FB94D29DC1BFD86AF42099D5AD7F0C49B05CB27291
+7DC54D7CB4465E78864D78236419EDD8C52CC26D7041C16EBD06FA6F6FCE91E7
+A86B11C0D436E13958C81814F59007DD17FC68AC26029BCB74C4C01B7BEF049A
+81F2D35F0AD2313B95A09A65D8A915185EC6BB038F15B29ECD29E6110DD53E0C
+B09883576A64A272D02A84AF63800E505D8B6B95CAC9E510EAED3888E193CD5E
+2348079F78FA6AEF1DB0A8A020A89315F26A4D3923DE9A6B6349AD75F1E08250
+95996A8C71DC6901E90845D6ED174CCE6A2F2D7E1864469CA04567BB3A0B749D
+D09F26846E95CD9B707331381AA1962CBE6092808DE03FD97022732E229F6107
+6933E9BF8F63A0C0F73AA73EE8F64BD049F12FEF37957FFCF9EE4DCD373E6991
+BAF5FE4415CB2784AE7EEA194BCA730D552E6B23DCAD2ACE75C9239EFDEDD3A1
+1A7E33C5D64F9664D26ED72EE280BB33C4DD08B76F787B2A8F5E484B6679B4C9
+70A123B9DCAC536130E9095BA6688551392AFEADC8169F67ECF580B9A0F10BD7
+4760E803C4B4624EF892A07F4A879436493D782F2BF34A0B560EEB21880246E9
+4C2126D731636A317090E91CC4CA05D99E18764DCE7B1ED9A78ADC5C3F51EBC0
+887F0E6409424D067AD199F238C059D05BEFA084ABD4A2CA7F5C16DBE97AE843
+B51BCB3B5CF71C9168040203083A3EE50E4D492BC21B7CA1648FB31645C74F32
+801B3743CE95D230920B59DCE8D587EC6917D31CE10D60AB047040A4194E3DC5
+347105F38770D26B9CFC472B3B88459DA521985B1F6005980A4D7C6A3B90901C
+0B79D23FD1BA58F75E0F9AAE0389FCA0D10C061A4469B4EF66523A2DA39B617D
+8E21BC50F7DE585F9DA3AF48A5E88237544D230562BC6E7B6B26CE43176EA3F9
+A8F1F13971F7C65C4C8FB391CFBE58CA3BAD327DAB59E6496869715FF5E8872A
+68409C73D11951511F5A8826BB47C051762D2E9E8495AFE328CCF14B4192724F
+4697500FA7007C9F662CCEE6EF492EC198515B9901E12D27991A029141D1826B
+D722D41DC8FC2F7E197DE911445AF33E4F58E7E1A2067AAF19B5D46173039D43
+4AAC3991E07AE3262F2AA3195F6F3B022FB40436111CC7BA6ECA51BE2C3867DE
+20D8AF638B6136320F9F214BE615954F01AE717CBBA102DC69B961ADCF6085D1
+EB59F2228F373E184EA3808359E2979DAD578C643F496645D97F41F46357FFC0
+1219A3CE14E1BAB3D0CA3F79BC299CC0A810B44872C3BD0D12D06BA4945A9E71
+E792DCE14E8DF47DDB17D01DDFDF110D7F4D928E187E25DABC3F34F5428147B9
+0F2F756B07763AD25685F99CAEAB3138A0809B272154A17EFE2E371CD9FBAA79
+B34F34A8466CA9B637C5FDE77A65A67FA68E4F1B6D1A2286A2F6F024A8ACD7A5
+9F187818C7666E5BFAEACAF13B6489C88731287D58EB413006653574126EAF5F
+6E78B13514FE40761B70ECE6B6C1D2422F9FA86AC4DD12A807445A750E6774CA
+90DA9FC8211134451FFCC547ABCFAA8F63E934DFEC3B4443ACF203EBBFD7AB93
+3EE98240E47B12A7423C2622E4D0DD6F5DF97421C29A644F2F37221C3F311FE1
+418FFF1B36F1057CE5EFCB2801777DB7E746EB933D892FB57E94E8A0C617A6BE
+1711CAF45373D573A7D6018673AD72BBC10A418C756E7FC82F9A2824F3B080AA
+175631DFFD9D2C78A92FCCCE9E864173F774BE42D6A0B4F95DFC23E9FF4FB0DA
+4E69424B496A08308BDD03BA40E1E29004033959ECC88898D0057AA9E62974CA
+4BE6651B893AEEC10F325264D0C14A8142C30A58B87583A5A5938E43A4E39B60
+C47A1A227144050933BBA8095CFB4FF475EE9BD0FF44CE610E1E50390F641D2E
+1B0DD50C2BD7033C286A666C4B07CF27789D68F987AEBA241EF087D9215F89D6
+0A89D4049EEACFF77A183ACFD83B60A492A0E847741E036353D0DEF1DBB01BC1
+3354F15232992FC283EC2D95E93A8537AA790F21F23F9DE5C168C90933C6F9A6
+3A4B773C1C1860A1E3B0C466B709D27C68FAB1B3617A73DF9E018C2E4B595330
+8A0E8D1BDA0967B1DC3A5DA5B96627CA556E23BA89C12A512026CF6D43702E67
+2EBA6786ABFEF3F10E204B9B5B72C738268BAB512ED9B8E1A5DBF95CB75738BE
+ABDE1AD1208DD41BA7B9F7081B01AA22CA257C602E0CB9769973B4FB46C1A4D0
+5EC5B567A9EC991DF2D7EFF791AB4A051220C2E3CB17D3A6FE6CE802A3BBE6E1
+656BA3F612E6479BA94CE2020C55345ACCAA514A55C72C940419CBF128643946
+E0721F8945CFA9A7664D3E274AC498ACEDF9C8A9D09E931533CBFB712057B3AC
+44CA4BC95BB96F9B3FD438AF46D0FD5CB66EF308278ADEB0FE31CEB9E93E2373
+0306CF0EDFAE6C73EFEB1540E342C89FC626966B7D01C2734795D3402A6BE710
+660B2822088D5A9879DE4C6A74CB5719F766866D797FB846F4AE181ECE9E447A
+6FDC5365A937F5D5CDEE1F961210917191CCE511F442B34E2399C42C5CFC8F5A
+7B9EB407F508B1B998B295E39C04DDED5571492932537FF6AF76526E739C99E9
+9B702414478863057F264B11BB195433D247AB684722B9EA66B02EE1BDC57422
+6498382B2AA196C1EE9E8ACEBD946E16E415B148F3BEDB889B95645499E61EC5
+DFC8169ABC03A1AE3E51E85028338FD7FD471CED1708BBE55577560EEF0B4263
+17C87251F434C0C40FDBA5E12F3720459421557A280233DCE87805BED9184318
+9C4A55B99560459F0932A5656389255C259ABC6F115B900B8D6A82853FBCD7AE
+01BDE047AD558106FB9A5310C42E9CF17A1DA691234BF71E47EEAB720FF71B67
+9723E6514600ED5733EC66969B367BD930D98B01F2DDB5B9A5C162EF2ED10E00
+9A58B69492A07ACA258EA7E7BC0E6AA07C4389BF545F3C54FE5AACAAAC1F90A0
+F165EE30AB18495387C1CA716EBCCD08325EB578BC59C991EE784DE7040624A1
+48183FC209D720FFF4CE907A4AE4D5057640F777A34B16B9E3096A83BB50D1F3
+953E82F3F1A4828BC561DE99582E0AA54B2A963BE17EC5023FEEEA505DF9DF15
+BB5C2D3F4B75625C3FF06C0D843C3947D8EA58AB2A6267BE6E2506E0D58A2DD8
+E05B61C4D2F4231A3D4032175BA3C536A0A50DF906B2FA23A8F54848E81A9FF3
+25354A7D5B17E9BC9CC2765865CE9F8BFF07BA9AD27E4ACB531D20A6EFF49B1A
+D479A82CE51E83AC378677E19CB593735EC2E7BB14540B5E120DBCFC4CCD6319
+16E6987A488031144E36DED23AB83ADE5DAD374A35620CE27AD89E54C176C0E5
+B0EE1A88D96A072A8950F425430624CDDB8ABD6F45D79004A72CAD5AA17F0714
+A3238C3E42814D7719A11017A656678DC89CD48D5B92FBDEC2A3506458B5050C
+87CD8B9CD0E7FC0CA26B822265E14E2B4812FF00C96FC342C4CE55B25E628CDE
+49099B12513DC1484CAE9462F09A946301E9597E11CDF3A31AC2420E4DFA47D4
+259AF53C3AF330DFE4734B72684E50BD5895A8F64FC814B561342CFEE20A56A9
+CD60C3E9FD187D6033B322075E715BD230C4DB95EE677EC9147C78DF1BD284D8
+8FF42450CDA9C4C556065898A93F2777B52203E2128713C1669484C10952C0A0
+C2306E036045E6370655A8D323BBFF8A6F2BE1F9B8446CB5955C9F3F1EF9F13F
+CE8903EE90D0F7A2BDA34B279C4BB3D8BEE6A8C256DCA01D7149308A33926437
+85E22529ECD1CC157AD27393B461A9F4685D0EEC63AC9EABA6309C0A36CE3198
+2B6FDFDB499E29B46C692609400C55E13C491CEDD0BA275D2D876E06E4B9D255
+5DBA5322454C6AF0602E0B01547145C502B0DFB31EFCD86743BDF087790B31A1
+25F14F796BCB613625E1D915E6CB8598F17B463209CD72B4558D398B6D5A8BCA
+9FE5BE145AAD891E064E1E6E96D32B248E30C550A7EE4E533531007C29D83E23
+CB6075CDA42913296BE65F9CD48A7384CF56B86913D4BC5B11054431C32CB43E
+757B7D1A23100CADF5391C44CC9A614B180657C956BD408F7C7F81D31FB8EA8C
+8D038351A8F6CC8C8E25671AC4B77CB608B3882B2EA0A9B081C9B2F81EFC6DA5
+CC858FAEED1AE829E6488337429FCC62C2BA5C355154E05B9A3BD5944511CE0E
+8BF787EEFB3F136FCABE6CBA3C609C248AD6640530EEC6AD8247E77A6AC12E80
+C82732137D8CF638CD0EC7D4CDE42F80C8C7149244D6FBF1701E1E3C5666D02C
+2F68126B54B2333661C32F70051FBB82C750FD1C60FD9F667DFCF8657154F409
+7E99629D2B7B926E8A1077CF78CA89AC5EDDBA3E04FB0A565AE2DF997E05AA09
+73A00018671B2AB71652FF9A059F1C361659523606B78E9B4B10F6D72847FA39
+953ECB88070296C1B09FE8D92A50EA8E98FD6FBACFD178EF5B2BF23150749F27
+2CA4491C4C6AF4D6237EE0E912773A04CA55814FD6EFA493D01D1D911A29BFDD
+D53F39E8CD7B7F964AA091DDE7CE9CD3EB8757DE545D074EAA584B8E24676364
+F666FE6F9B9EB570D154E7E2C05A8DB5A40AD741F0585641F4F32CA05A7F3016
+E116A22E4F85AD5E123F07FE0FE3AB55A7ECB31503202AEE7D66BB8E89421F08
+1ED8C1734A93FF047AE8D0F87F83474EEC20D55E9763A4CACEF15F12AE7E3A20
+667DC66A042FB67F3A140D1042E8175E47FD6140C05D89925DDF10BEA57A71CD
+C778A57564AA74D7AF7B2074A4580331240782D35E80B528B8950FBCB1A8E593
+F96EFFE0F1DD23F6377363D661E1C4F98104C31D7C0E7F9C6F219AD81617A512
+69B5322506690A672CB9E2877309F6DE2EAD18A4DC9102A1955E94E3081AB800
+9202CFE99B057B1F41EEB87543BFBF5EE1FF1C93DADD0ACE6A7C7E779E011A6F
+39C0CA50F406A7F107418B4ACA6A69E0CB46C43676B0843463D5C53AB375B595
+62E9F1FD5DF4E2D5BF34B7D111C8AD6CF2BFF59655C20D40B50EC525386887E1
+B6B11D62A02B7F81F65AB65472EDDB9A196D41D98FD5B1BC6D339964346CC55D
+A55B98C5FB4A4BA1ACF255B2380447DE3732AB82E3BD0433D642ADB7D67C2217
+884A6C99345D4638646CEF366A85F92860A0716F3DDE3E73CA907D4BE597AD07
+053CD914362D5C6AFFAC009D29B7D288499522B923394AC2F02191EC869C5A6B
+1CBE5EB7B47A790040D3270E5AD0396C05FCF895E2E0AAC4A94C2EEF4B7C19D0
+F799E1507C81E2129F4E287B7318E62ED92300F121F282AB65872102B94314A8
+1108E733828CF33ED983C7F72E3AB8CE5F6B61232965AD4D5259AFEA3FA8CC5C
+AE4E0D1BB9F3180312DAE392E28B22EECFAD24965EF9756A29858A9901018FC6
+ED605A1F43886FE9E5307CA56DABBC9D42B0A606307E81705565D9CB81814DC5
+78E5BB93DE5BEF316304E8D33D3AD847332A706853FADCDA40B7F04E11340EBD
+BBAE024BBCA535597FF8D3215869F2CD3AA0A2BEC830F379FD005D12AF2CD298
+53906D4DF912C3FF79C0A04020BDD46020CA80748920845D7C9AD60BFF780A45
+99114B8E401BD5F3CC489432880EC68186FC7661F93F636A0CA790FBDBDEE105
+BC0C11C03C246365BD4090923BBDECF9F7501A65E9D6EF06B752B0B6C92B0469
+C1DF26D6384103B405D948CF0C4310CE34B0CCC47C98A38E7A237BB737C7B6E6
+2298F143A5BB9769A5D7E4330F1C64C9EDA7EA34F85F31B19BD546516B3C97CE
+5B7906B0FA5D39FEA3C84C48C331A549DAD1A114A43AE7EE8ABFDE8FBC767F71
+E86450864BB71B9D11D9614EAFD6547E509081CC17C6261D3B81511EE43C33B2
+F63601B3519AB2F58A8A03A304DE0586517E0D9CD27E756AF6EC6FCEBD897FFC
+89CD5D760EEF2DC6C185126A7B85C0043B785A90901137FE197A57E9CC1116FB
+604E291B7846ACEB236E1C3BE9029B7B07D21900D8A2D6F19FDDC2EEAB076854
+6443D8C28B4BC46D7CDE0D841E7B0C43F86A30DA56F6BE0F6023E2AA8064EA2E
+DDC9D42906137635BC7D21312C23C19593756F4A344C72E7505C41A401B91887
+9512A20F1E1F5A1E065FC6DDDA3412C255C89B9A77CF05A0FEB510146A0EED02
+13633DE45D4626307B03A012A1C44AA0BC4039744D2EF60AA999C0D6F0C2A5EC
+065D730A2F43DA9396A58F41F57787BFE8FA71CCF395B9B68C221FA789279CCD
+EF29B6635F6028A95C124C6A3025F2B16550E9206CC3245FBCA796E91098F4B5
+C61BBD21365F39045FB67086B11C32515AD245CD0F50687387DE65DB08CF6D4C
+9899DF674E334FC25A3B16FD97B19228951D43EA09EF4D0FBAE1D7589B312AE7
+FEC3EA4A20C9D63B7D9DC1A1C35EF58808A988C20ECCD08A407E8F1028B204B4
+267453C5CDD206E47119ACAB15B690EF50B59224D863EE703C76F271E89A4827
+14E154FD7DDA5BAFCD97DC9FECC47F0F136243DC58963D492C3CA6C91E54577D
+669228FA800E18F6F60F47675814A7BD746A79AA1F727539F1A7039B65049D41
+2648B977A75178D2EA2806CCB41046C10BC62E2AF9F61A1EEBB7D762FC3F10C7
+30457B1AA72511F10AA111D6DC77EB18F93A6DDFE8B98625FF037B088556DBB1
+86FD399255368EA7161AD6E779502EEDA86F0D1EA4873C01E8A7BF9CE7CD3AB5
+50DD7234BEAB66700D8F028B2468C367841DD2BF035A151FB15EE213C0A5943C
+A0A5FD68B90C976EF9A008960CC12257203E95BBF7C82EFC853D41C9F983A6DF
+ED243C9C67CA1889719EBE9D5F684210FABC485C3CA8675F2AAE6360312C191A
+8B1A0F18AA901257157CD7840324B2B0D78B1D50EDF9B3A812A9321F3091D203
+2E113E616F09DFBC0FFCB15C54F8ABCADCED58DD3BB2526A81119F2B4FF93910
+26A70BC4AB00D54047D1E997C375BA799635AE4AE0E7DF9A4FF97EAA560C269F
+4380E3252E6ADEECBA2BAFC7AE56729474E05DEC8A40ED3E0518732FCD253CEB
+71F1A8B18EA41AF08D54880924F5B02D7B181BC76B29A4DF769EC1723DDE2519
+6B2170C3C5D4E70C50A21283ABEFE0064996392DFE93EEDBC854BDE2D4EA81BF
+AD04AAC565C48737838933C5257D3AC9BE85E4C22AC3AB4FCF28B7580079D8E9
+0F56C6ACABAB0D38C60FE08F5CEB05BA4DAD9B09B0F9E57C4AA524300E6B8AEF
+1250C6432E54D007AEA9B36E43890355C788E233454A7D59120E3277DA3EDB55
+6BD9EE10B356C16E67F93F9891EDCD06B16279125C22F2B0EF90315F574BD651
+B46AD78D7723FA0CA2B0A0AE9C102C4CDA3155E33CCCBE026C5E8B603A3210E1
+FE538DD514A4D1FF897BE4655B5D8D752439F135E6EA7869F315F3E9699B7B77
+810A6989623051130F6E4E1471656F6CCB10A13034FF085403221017732F2390
+259FE3B29F6331804C300132B9586D3C6B08318A71AC700FAA6E83CB3A86B1FD
+61C6DC7BAFABD3B49F8DA9E3A98BC94926E07DE98945A45061CD0FD002B90CF2
+B8D294606DA133D4CB0874FA3ECD4843828F6F384A595EC123817EEB3BC6140E
+6419208362639835765C432D7BE88C8BB85DB91051F2BB3C247E729F25EE441E
+BD3D4A44D90E9948BAD1D5C168D7FD14694599566116387F622B53F0E4096071
+0DD97D7A6E64F3A2B11BFD075C6F7DD953F57C1B1C3FC952200E8142AC1D561D
+963C5F5C67A05D8E6872B97C6C54AFB455DAC53C80660E6E4CC554E3B5F5C268
+E0E027D321DA10B59BDAECB378E304D11A1CCF3D72A029FC4BBC2CAC76D1D5F2
+84DF09B99A2249E6F1A0ABF58707BCC2C460DB4D4D9250B0FE4283BDE6CA55AE
+BCB1C85A373E382ADDB1AA92B2FAA83858FC6444942CB783D5B639D69344B8BB
+4A8C7DCBBA3FDCD2B455ED377C3022E2BA3D7D717468B42B731CBBE3FA439E97
+EADECB5AD8DC8ABEF73F510FC6039D001EE8DE53E239594E64428F2A460FC809
+3BB40C9C6A8358C7122B45483FAF3471F164D8BA84D4A844E09188B4C34FABEA
+79BEF8F884756AC909B70460BC22C6874F966699DFD1F3C54FA1D2AA72264E93
+75596BA06673B01D2A763CE177E248960BA0F7E3BADD59265C8876EFDC6FCFD1
+81469DBC59AFE8CD07EA8FC0BA3FEFE43DD7D527D84F685FD985B3A89BB5ACC1
+31BEBCE59665D9CCA179B774390A1CA5573A2AFC8BDD6D6901FEBC9CAEBCC5AD
+9CF26EF10987154F9CA620F426E3EDE082A2551C5E949984C30CCD98E2B1D0FC
+3CCAF3EEADF436ED12108134359B711772E6D3C921B02677BB15EE87DFA5A2FF
+A3F253528D2D0828BE0778AA599900DAF72AB2C17D1513BE9630761128C366EF
+B3330BCBC83A5F745D0F163CFA100DD8177309A5ECAA912C8FE8546140587FC7
+50B14AE5B8DAE05BD2399CD44B888A894F79550DAA5DBC84AAB94E62F0441A6D
+3E7D008F10EE46C58F1A92994269B52DA17A8266BEA8EB4BD99FD39D5361C028
+81FBD28300E40BE415F7306C8D6D94713869722A6A179F5FA66A332CE60A0C39
+97AAF72BED0B337795CEC21379D67FDF7D5011BFCC60CD433EDE8A3768455F68
+62A9CBCC695F9F8B4A265026B1678DCD7ABD8FD566792218BFD7FE5A61FED3DA
+9307CF0FA486FB636D09E95D640A95483A929639D14141679BCE01337A309ABE
+6CC846D012CAE3E838FCC4FCE3372D020343A155EE284BD858C33A245EFE1B79
+A9FBEFFFA2B402ED5E17A9CBCB2AB9B2B131CCA1484291ADBEAC711503405F17
+66570740C63CCA6E7AD5871AAB381ED4968806A911D6B6A2EF18CA9C6A4A800F
+95DB24AD68BDA434CA725D17F0AB0E99E339967FD4F0455D7301ADA41ACA31A9
+6A03698C9A012E022234DC03E2F3276D2DA1FB03955C191D2E8B4DDDD668CF04
+23F806E181DFB4CAC3E4B3C66E79AE87749C4083E84848BE641133EA61D06708
+B3F84508985C54352247D3B42857C49382FDC78F5F0D6101908673D90F4ED17E
+040F0B0F6EF8C1AE38B5BA866A45EB0DD3B3C9BB3F342B7F504A37605609E111
+1CFDDFC92101E71E3F6DCA38F0A833D0CDC52CF1A03EC5F49506618277D382EA
+94DAC5B910F48275CCFC2AA7181DE0675079286DD6A06FC691989197A40305BD
+246A28B5F578E458B39EACEB1361AA5DA481563592DB0C9F03DFBF4D6D84D72D
+C6FEBBB5DD1825735C97C51941B9CF05DB32D1C9A33A0676AF6A652077DA1FBC
+6E51CD90D46B767C729D54499D392EB6202DC498B57A50ED44FABCB78E8F7B23
+5337EB2DF8395002AC4E2AC04974C9AC46E01BB7DA9C55074EA3BE0FE9F6846F
+9C573876BDD9A1086838430B9E5C42246117D7F5B2A8EE45DD30A6DA2504E2A3
+2CAE453E9747615D9F0A0BA9F06B0026DF21FDEB50A4FFE7952FABFD6D17F098
+79237B36805490D764D1843DF4A0190F094778D114489F6D2B5FE89B614BC0F6
+23F5A366B2AC497155D729530FF1BF982C82D24204826C6AEDCB4F3B4AB88CE3
+FD55E650E8E67214253D189D67AC4CCD9090E0482CA19977166DE08230D434C6
+41405B7E4AE2D63BF49E78819CB661237A9E27B2C2091E6EBAC4AAB0C5021B26
+1D38AC2EE717F583B31AD83326080FE441FD2AF2637178F7C4EFDBED63A32C33
+19C315F16BF7D12E78C11D9D769C7B52A453016538A2F72F4FCAB0DEFC246AF4
+FB40A1B5D3520839FAEB7B5E9BBCE4F0EA3874C2426085620B7E62C4FBB47CA0
+7C32065EEE2B8A824999496999F06A6E34FF667808965E11605A19B744CB775D
+D0598DFCCD73A530DF88D72D2D467D9631A8D7E665EAED42B3F74586795F7B43
+51FBFA148672EEAA600B76FA43B0D14AFA5BC1BC57A8C13445FF035D5A754687
+986A1774822DD5CA273D64E2D2CC94AC913859D435DE7C8DE64C5F2150BB395F
+E55C60C898DA92625462846464F073F2699642F4D3CF0F849A7D9A2B2FDC80C1
+D26C06208191D63E97A2AAA73EC4B96373F23D4FC1FB91B93899E2A6DE369D90
+830C451C3462DA0137C812BF06E8D219B90DC6A551FEBB2A52565030772C8657
+DDDC5D3ED99982F6A3F9FA842C550FE8A5A7A2BA36862EF2C3A413EF94F437CC
+E3D51F5196918E4D9F1AF0CA1110AC00F963EE17AB1A2F1B7D6242C29D98747C
+E91E8A6F924E89B4C6794677EF604FA3235E8F44578A5A87CE1114631260751A
+909C7274E941FA9596669D9FF82C29EC8280B1B326EDBC8812D2EE2DF812C02D
+AAFFCEF6165985DDBA1D9537AA0948A4A797F01B316FFF6EEDBE874BD467A239
+E89435CB0AAD16CB06D3401F42EF7677C2D8EC60A395F716687958E5F9B6B887
+5F9C29BB8320634C9892C9E72369A9CC1447B51489743E755363E4624CB88265
+4315F7C6C62EFE3916F7580B3E226FE6C8B3429AF51F93DED861D22EFDB49B3C
+6C5FCB5893774E880566DBD66A408495FF65F8BB99D04E33F8830726B20C872C
+8F4A8537542E1956C1125311CBC0A014F0E8E90124AE145D2D8FB12D113D79B6
+6D5828941563B1C3F2EC506BD4807A969279AEE347AA6B552E328C9D11AE52C7
+61DAED073036C79B9DA40BACB90855AA3CA93020E2B553BD377C3504D7BE25CD
+5A43DD1C53FC73E3C2E1690FD80B93C4C6AA5C76324F32400C019D6360B2BCD0
+F33E15562763487060CD620C5F48C40000671A83C22E4F7E3F5F37C9F70BDD83
+07085085B3F881555E1B8D0C45F13C95916907CC0A8E85EB1BE75A3382D16224
+041858FB54EB7F0B8719AD892B123A2EA81EECF9CA572AF8509B94FF7DCD544A
+4CF9A7235FE70F97B9D817EB60E8A809BEB69DC4FFDA1653F588896C4C3E2378
+D1FE3F902ED27E3AD5BEEA4A54A88EFD453B380B06F222C088C5CA5536E1EC70
+3CBB82839056CDCA0E770634B7E8320D856487E9C4B02CAA605B5510D563C3DE
+A0709BEB02EDBB59432B65F5D27E38F5F91290B1C871E9FF9901BA8A3F938659
+C5A5D28E001A3F8DDEF24DFE7211081ED9749FF5A753F6FC8F3064ADA79EA8B5
+201161CCC9385FBEF61739C6F103EF29135978DC77B9C374695CE7209F3C2B64
+36CC939E58840C9FCF40888EA836B6EDD24B38A678EC8B988865D41E1389A32F
+4B6319BF59D48FF6349C98E611CFE1E7EB55EC557444F22EBF414E8EBE976472
+B2F7580731D42BEB735396F8F144587665BA950F43802B7FD8C4BBAA4D25345B
+736C90FE9838EFA1BB52B1973ED01D4DE7E7E1DBE08162C352B06918CF62523F
+A135923EC6D932F5DB3469AC188E1409A83839C3F5B9A4967B1E77889C2DD5CA
+98D3038CACE8D9623BE6425378CF5262961462D7FF5F2761C1BBEF2A032FA6B2
+7D67129F35D5FB609E5E60398CAEAD4079A9FB008F8EB9FFB26C04914ABAE0BD
+AB4875F982AA68C8DEA77CF1F0F7BC8236DFBAC37302BB695E7102373A9DDF67
+2163973FFD610BBB8E0D6E4DCBE688D092E6583EEC11CF6F42245871A3F86AA4
+4D59A9BB6D53E586A4D187930AEAADFA4A072CFD97E3973475A8DDAFD6639535
+44A41BBB8F81ADDBCE14CCBC9DB20268AFDD05E2B85779B0E0CC49E200CFCDE7
+B6B2B98034BB562A43B080360966D51E1DA0EEBA8803A9526F86A59B50861C2B
+CE3D72A03EEDABD9ED8935A1C8BAD1D924EE7A118225A576830D30FFA3B2AF1A
+8D6B4AB990D3DA5428F6CAD5788553BCC2448DA0896C6A481FB803E28D7D335B
+2D569A4D801D66F27175EA483381F5B6ABE1DFA739AEB016C4B95CF230146B59
+440F72EAF259ED4AA1798345DCC04786B8BDE68BE9D85F8AB4FCEF54D8E72DFF
+7D0BBBF7D4A79E71CE98EC0F130A2414B4F958DCF7E138C8A15984693FE1A092
+5204582EC8F65BC1E4AA0654D4392B78C29649431886B236C95C11A3ACE49002
+5D83E07965B396FDD136B49B203FC9E48A8BEA97CB77C6EE0F6A5AAFE249AB4A
+3194A802121CE314FB773F02A5A1D28C040CEDC32A1EE958018B48AB84E563B6
+DAE93C28036FACAFD6EC351D7960047B9AE8DE4845536EC7C02C4AADB202FAB8
+E32C9FB7056D17A5CF6817679E30A2E58BF2531F8F1521F5EB3F58EBE1EAD4C8
+1BF11243FEA3332BFC647ADC8B7929A78D105423C6E34E5194BD8C18BE0512AF
+5A989420376FCB97176DF17EC9922C42E00D1987680C7CD96C3C81BA0C490A4F
+A54F11154F3F105D05B465F6711DECDC06391325F04875805F0BE3294B4B412F
+425998A37BAB0DAFEBB09F5BB79C344E31FF93A81784CC3B334ADF4E515045A7
+22B5F88737620B4098A7B38842A888AE61DF3E1A5A40E41315886A24C71E744D
+05FDE20901F03C5D5747789A686303DAC5690FDCFC5E09F3A031121509455FA7
+8FE6B5C878495F39C40E6241E3A5AC629A1872E2332BEA5C0831D1106CA169A5
+3F596660252B63AED600B8388E89202F81241BF0AD676D1632DDF73C379E05C4
+315839EA8196F9FA4065294AA1770F75F6793D29E585737657A8FB0E3946A6D2
+304F2241C79CDDCACA3162B28EE02C9BA50E511DB84463EB2EEA28CF96D3BDDF
+486E44FB8C4EAF0A6C44B459DBDF135863FB8B31958D49BD0C097A4D15C76D00
+EE844D99EF977BC0E89287B0C2C67C06D2256E846F85DBBF41A7059B2BC15D9C
+66D5D7693642901D17FA0C68FE80F3D3F7234B6E8D7067658E23FD09CFDEBAD8
+6B35ED0A1EA4A69FD7E8E7EC16394C1E3CAAA9EFFAF95EF6C13230DEFF0302AA
+448B60136747CB51427943E0DB1C1DD087AD6B284DE4E354070CCABE9E1D5EEC
+B6975793FB09A9655D36BE2D4A3026DC4689294DAF0D7B6320C34B5AC6C32FEA
+7E0675B45D3967D1B476FEB52744FFAB4BB49970F13642C89FFF63FED0D6B350
+2B5C2972C747FA0B43C834363D848F99AF84FF0FE8A786D26C4D3167CC08CC67
+ED566087EDA4550120253ED1F19F1A4161E705A3D8DE6DF75C330D571FF2AB5F
+E022B58D2EA582091CA3282EED6F075FB96000B36EFA323EC9B893A2CEC57865
+09EEA572BB127A4DB00331BD574C258CBCABB02EC1E088F076EEE22362E93F49
+7B4E08CB19E55431C59CBE634FD12B28D56320FA1A753B528FAD98DE5513CE90
+CC1B0D722A4437FA1508F6FAB9BB8F3BF38F7EDEB6947D2C46580A7602FA90AB
+0062ECD827C062737A163E1797576D1C83A31E0F4F892F7D7F83F1F4563EDFB3
+219A03CF16638E6D5E7E961EF4341AB0D7AE9D80B38A0FA8AD4B7D24E4071F04
+8A2B4FEC937C73FDC45CD570DA8C96D56FC104E39EDBB672478D9C34171D93A1
+3A995D5F9306E3B39B35D04D76CAFCBFA1398465FCC9B544B2FCF97424120227
+A97CF3B254084F65516DF48F799D6D4F0E830314E1E7FDF23847B7B22CBB4739
+708B3C0FB3043096AAFD133A43930819F5D16C57BC9A5913B8A552A9CDF5BE41
+4B29F40F181A1089EAB1E1D4298EA03D94BB9D1365BCD0613CD5247A623E0603
+23ED64BDCE80A76F28AD9DBD65495C2E32F8BEB374F2BAC04DEA83299A9FDD4D
+5D13287A44190D8CBC8F275AA695D58E7DD99A958FB645929E1134B5A796AF5D
+B4DBF734E15633F17FBCEB18A41805E56D3B33C18E0D3DB638B5716FC11609BF
+42F01966B3D9E2D05DFC7E61326FF476C5973A6863E0318A95B0DA88F668A6CC
+6C657707388B0ECDAC67288015611D0AE7958F52D7F7C380FFD27AC1D3B83934
+C3F22276DC03EEB1DD096D86A24119D3FF9194ADF3FDBB09C42FFFA860550CFE
+290553C71DE6CFC37B9A11C22F859D956BC38CF9A4FCEF72B459F44ED1B31C66
+79D80C7C88A7DD4833EE90FC64B7D8CDA2D0C98235665F71B07A3570189C6C88
+FC4AD8D1B0EE5A3BC948004F39963DAC6EBA7240DD832D60472C4F088274CCD7
+A97A05F6AB7BEB8292E20DE373513632C9AF5B1449D1D03BC4EBFE36DC25F58B
+75C2461DFB41E1AE20901F01A15362434460A638D80E2F569DD4948C1674B8AE
+C5B1C3322B9DAD25A9A99D84932B2CEF8E074F2C031D9BE0CACD94CAC6ED149C
+86E787ACBD3CDDCB45057D149A2A155274C6FC165797F5A0973FE29FC9D3914D
+1F44B6CF95F23BB378C06447810BD91402DF356E30FB965A69676DD932659481
+A66CA8B8015B4112CC1EE2D90FF1BDDEDD4F80A232351389CABDD596766F19DE
+4D93DEF877106A54B0FECB005F41C9468CCF2C84DDB15732B015B2CD1A4155CE
+52D8AF86FBC1D97D8249A84C8CF54C271A206CBB0291C9A83F9D3F80A9A94052
+D090CDE951BCE2CC812F66A47202F44AC93FA73A7987D3286FE133103B364E5B
+04F3BF4907EFD49128AE6C07DDDA38A257ABD45F13872E0D70A19B82AEF69344
+01F869C42AFE47B8CB550B6EF46B853952EDC511A909B4C8904B4BD121249977
+5785489C28A02A3052D5A122132ED896BF20A5DD0ECFC08C933235FFABF515A5
+C7280AF5CFC4C13B6F153AA92EE18301448E410B882FC827343444B8AA88E281
+73C15C38EFAFA3E640DB986A69B0D2D882DD31B2BAFCF09F8AE98F86761557E7
+BD3ADDBF480C7571770CB086139CB970FBBB4578923726F492DF82FDE83E4F94
+171BFFB8B11C6B195CF22684A8D5F0D63C57E654F196DEFB51A5DC591FDBEB4E
+28310F8317514EB7770041BA2B6172B96E691D4F9F289B2E785058F99C288EA6
+9FAC0E3D8D71EC5F16F1FC1F48962488CDE53B1BA5E57FAF21610326F3CEF7A4
+24B314C4A55AD1C644604EA428830304AA36451AC1FD41F007E0AE84C4DF757A
+B85F4F91BC123DD926A47161FF996C1EC4A722B912188E626AD7D928526BD12E
+ED244BE4CFBBB20676C3BECDE1B734085F00B72C32267DCF002B47E6112BE3DB
+9A72953B4B34F98B4FC3E80ADD37A8E2D408007745F51F4BDDDA57038755F031
+D2B09BE5249A9A2C9BFF225C5C7AE43D97B761501B610891725CE320BF9C7C85
+93C9E9AC2BA6947535BC406ECD989D01728EA41D963A8753DA2A0C9B4D9238EF
+826DA874319F994FDE1859E4CC3B17601D1495D1B3500AE1B861C55901D9610A
+25078C498AFC38B6C64118EE9837E5C61E03B2E7CDEBFD8B37646D649B1A8E21
+B6BA6A8552FFA55102A7F6BF6F8C0A15C66548AB867957728C673DF3221EDE4B
+022428A6E829E6CABC7CCA6C1A60700FE68D11C122930FF0D75DF89D89252CCA
+692CC02DC52F158E3874A9D030C8EF5B0DCB633B2025C203AE79636E1B2497C1
+51208C4DDAF096885EEC50CDCA1133179227427AB85AF800122A7B7A506BACF1
+6AD4B3954794B5D37F42AD94A93B90846C55E12B8943172C8C4715685D0EB537
+75430F0A6EF94CCE0B6B9D71EA42571E9E26DA0840B0624E1F97FA1548F45FCB
+FAA189A40844D88D87AE8EA4DE29CD9E7DF322016AAB4A472DA4DE10956E3DBD
+5B8E20B8AE941CD8541419FC0E90813FEC3DF42FE4F8A7C67C661F1AC766A278
+EABCCEE8F45150E4EF2D6F967E98CC3E1578FC5235C9111AE4ABB028A4E8E683
+E39056B5F1CB6E8F5EEBF12BB7DABBA1626D691C4AF07767537462AB6472B6CB
+A9F4CC1DC29ABC46FBF92908E1C09D21DF40BA8E0D9376449FC64B1F91B13F10
+9A1A484C7361EDC66F7603CB5C00D988E3A34057E2AB21071AA4554D1234D6B3
+BF04C440FEE0ECDC5378E34ECFE504D9B917543DEE8D86A1A1AAE111F7870C4E
+D81D0B277CA333690FB282
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR8
+%!PS-AdobeFont-1.1: CMR8 1.0
+%%CreationDate: 1991 Aug 20 16:39:40
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR8 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 39 /quoteright put
+dup 45 /hyphen put
+dup 49 /one put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 76 /L put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 91 /bracketleft put
+dup 97 /a put
+dup 99 /c put
+dup 101 /e put
+dup 106 /j put
+dup 107 /k put
+dup 110 /n put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-36 -250 1070 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65
+48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3
+9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB
+0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB
+8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F
+EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466
+FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3
+9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62
+D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8
+9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5
+ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6
+10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582
+83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493
+2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA912A2BCC6CA6105B29
+044005DDBEAF88E0F05541BBD233977A447B469F013D8535A9D7023CC0FB7B49
+A95CD2B6F18935C37F49E9A73E97A8602C5C26EE13D7A04A188336FCAB4CDEE0
+23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413
+19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42
+1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39
+8BF6B05F0B97F8FDED86BDA32D9EE6204BEE321529D58F28F7A9B3D04A4469E2
+775A8B43DF5350CA25E95F1794CEA94B99AA02F3498C608E6277595DFEC6CC7C
+965B69856CB2AFCAA52F66F5A019C999A1C79906EADED8AB0A185F84F5FC544F
+B289E583A8AB4726F9538F4DDEA903CC1E623DC5EC25CD02353A4C9A63CCB7B3
+483A481AD7220714EED8EA179FD74724C7D1F7032527E25A43FB59367B10F3F9
+4BC23E2AD9F5744EB954C8A0086C0ED51450A8EE7DCA2BC27081C4F49FEFCFC0
+DE75DFA3E620747E85ED0F66EC590FE6CE40D08497B52B89FDD0EF6B1D4C0A8E
+FB12E7A909CA56C9A44DAE837CFB4515412DA996C9E3A430D48B20671F04448C
+51A14CB5E9B2565D33A0C0992D9456F3272776BAB972E4AD37CD9538F78BE951
+9A5898C0E3F68EBE589967254EC4E10B6010E386ECF44C742D37C64502DCB250
+E9CCD2AF341A18836489360B950DAB980CB0621155E647B6DE953A6DB1AF51B1
+31375114FB8E6AC909DF17A7362DA2ADAB0DF9ABF040426957B6264BA0DF2B48
+1AEAD8B9068A3E5A4D85166392CD12ED01738931E5683E83EE999C08C54AD19D
+FAE794A00EDFFB4F430DFF757CC2163DE77D79C3F0ECDF5D42A1B079729E276B
+DC2691D6B29EB3C37824D4A5C7A452C10C98E38FBD2437BB29CB8964ECB475F1
+3DF9D1EC2F4723CFC914DF067470AB81C22F69FF0A615F693C0BF7084FF67DE4
+741E765B47E222EFEF6DDCBCC5BB5EA3FE507959AA9CA4FF0CEB615938095738
+AE8107FB11FD1C35A85721CAF2FF491E90F4F15B4A8F8CBD72EAC28909FBD231
+B0A45D94469D2C03CC351E5C4127CD2334F94A1EE91FAF19DFAD50D49DDCA165
+1CC936EAC431720FEEEC3184C1578EC4E9C6084EF6C6A30A327A455DE14E72F2
+0ADF4A1DC4232577BA25B75DAFA460FC1E018DF361AA3A8874EB6B445F973459
+83E3C1D441BCF8A100C22DD2B94DF2E3EB57C2C792A2C789137911DC67926D62
+2848C29EC41A771243F46D48FC17133E004F9DA9202364E74773A22999E03437
+1D34277B9724E78020DFE394298E990132C6647546B2F95CC2B336C40A335EAE
+85E5CE36670AA9E28C37E43AE4D5CDBE11352105A1A23B2B781A88EAE094B83F
+D9FA26C3F500B5BA7E08758777F11A110679044B09CE57B64D1EA9BD4BCB4E71
+E15E27D15A83FC12ACE44971B199C9ECF06F20DBF062B6654DC6E15DAAED262B
+D645A7B0B9F6A4159201A1650DDD4F74EC78F5EC876A1F58F351BD3AAD7C46B9
+076F73EC8972CE1DA144C78E629FA13B34AF57913B2101A4A236DDF2FCFF1834
+1C24D8360B9D8A24CE3AD889967CDE59D26511EE57B2C06F05AA04788E1231E2
+854E0A2EE1A5CC34B44547D9EBF87FBC6D1B9E0E5C0323D1BC82EE7358F247FF
+6EC3C4F7817F405F91B5AA3FAD663BA2F7E28FC7B50427449B942D0A3820D2C1
+A10EBEBAB909EC5072E37106156859B98B0EAFAEFB8E13A4EB6A1E004B525C69
+DDE72B04661C425A7E03FE440008695D45934CB6192B6A30A5CA8A3FC61D1EA1
+CC2E1F17EA42F6A562E063C2E66B90189D123E6570A485D5019BEABD9C39F639
+6601DA48143C88488B0484E823A382172B3133384336F5369928B5161B7AE927
+710CB575FD233FC0908DC203D3B9A8ADAA0F454054BD29B037F3FBE0AB0F5A50
+A3B80660E06E62CB7306FE8612909E8DF7A1CB7B39B77524CC7472B3964C7C21
+7F59E69BEB0EFB64AD1F79C38D246CB63F61BB31DAA2BCCEAFBC1F418F2B6DF0
+292B5F8A4763BD8BBAD841D0A08D3145064510D427C5978470067ED239D81F6B
+0A10477AC233C934CEA58FA051E7F1D915CCA135A0658BA7736574DEE0887216
+CA99343D134715DBD2A5C46B3BD995A4B106DFE5A24347DFE38A14CBBAE8DBF4
+F8B7F782BA8FC181C3F8FB1DEC2C706D7DCCCD97EE254FAE1A9FC6B2466C04AF
+626E2A59C8B4E96FFF0DDA9872209084296276E54C5E8BB93E043BD9C9A36AED
+2C3E82BCBECEEB0C2DE7356F71235D9CF94EFDD4098B0DA80ADEC47ADA99A946
+B79DCE7274C6DC92757550B7FBF608886D3196206A3ACAAC643395C000541E5D
+19C9EBC62BE7AF3F3F81BBCB0476BE81B2083E8802DF643E0E4A8C873D17BDA3
+76141A6F8C990869A3DCD7AB7F46C701DC92ABDF4AD9F38F01D2005415C1BADA
+9832C0888E5926C5344B85F4830C17FC928A585CC745DC25A7CEF3B4D41C6680
+219EAF65CADA5524F5FB1F09343CC28AED8FB7A164C25F9CC5E8FC6180D08D88
+509A93BF0AC28ABF2B9C27D5707C4F0188E843E3E8DC73A58D74B4D88525F699
+5B98C71A6982D6DBB65B105B2D6E65E8171D915D8A1BBD89BB160C96F478D61C
+EC0FBEEB9AF29705CCD13061097953825DA7354112DD72F1AAF30EBF508A5A02
+6C7680AC7583974BF6A82F4AB9F35260EACEC1C9036C12C88B28B3C2467E4FDD
+A22FF5FE59355DD4BFD849B5AC6C9F52DC51A3B8A4CD1AA7491E785B0DF81C1E
+33B610B2F1B3595C0D82B86789D548A92C20F5177B17C35A961F858D7DF0CE07
+CF9A957E2FE826F2C6ACE69A2082EEFD86D932C9C3574160AF7784CFA05C1EB1
+A881D7AFEB71668F1DEDA3F8055640E7CB2E7DD23139FDD37373FC6DFEA85C22
+B59330D72D6331B8A1D28A9B3D2172A177AE5CF0D22D28A1911F9F3FA700D355
+F84230610E2B79A735889C5CC591347AC17F9E65C03C0A1CDA2CEF75CF01D6C7
+C6D5F727258F499B09B0A042A97F7ACDDD7B188A5B917E3D7E7A411A0AC84F59
+B96A7DC581B81019168C31F7E5F6EB8211F1F44B785391D41E89565385D15D9F
+66FB6986A66B2460B4C8229E244A322ED81FEBCA8E2827E4A5E54236E33A788D
+0A06625F92AA6347A73A477A6A37292BDBF2DF42D5FDB1027DCBC8E481147AB3
+7779E5EF008A67808490E7904DFC740E38BC185CF0C8F0C9002606D31764AE5D
+FC5F6E9C330D43ECA95380B988084074E8C268FDFA357F7045B7603DFFC5B0BD
+01B257B0A754A14A565FA0D8C89CF7C4C9FB69445ACF7ABEDBEEC24C87E89889
+61DAF3144291D4A8E7ABB3CA95F9E89AE84649419A20ACFE872E8BF81C523626
+6CC14EDFE5565FA25E65290EC272E2DCE660A916D60C07C4C9CFBF539C7B5497
+C55F8FA22CC53374F6E07374A73B0F6F68FC0376703B6E73B319312448DD1CB1
+962E16A84A3873A322E7B3C737B42E18D53B02BE9EDB07D21663D0ED6443538A
+276EC167D6DE7B94625C6254FB5555DA81B5D6CC92191D15C002F813A73E19A4
+A7C63106EB5C5EA7BD9E1FF3D4C3BFB6265C48AB48CC4A3FBA55B0D2D8795D55
+484F3E387BB56602B8C2EC4D04A8E123AD02422D1FA04809A7F2884957E9DAD7
+EDE67F91D63FD0D73D89D9BB9126B5DF3C1C09CFC81A7C60CF6463ABA6197D2E
+CC1E8339E2F5A26569838E66E7024DE8BF50BFFA3F1E6A923D363DAFE4751B48
+D5ED2CD68C5C8F248CA0C0A9B9CE506BE17B4044FE73003395274498928E081C
+450385B2F2D9FBF91871109F137E52CCA8035C9B30D3419901F342AAB26F874E
+449F214DD406C210DCC35EA89E6A0397E5AB4725586EA12B8C10F41D292F9140
+115A57DFF19496AD04C0D9A640F7AA25E9E22A05B23C7A6FBCC115E3DAC7A34E
+BCE9EC19AE54BCA3A7FEA7AA0C23B24870FBCD9BB15AB17F7002CC33ECD6F0EC
+4D43607C98126E7FF7A59EA187F3DEF3B6B1A174926B2D0CED8159B3741C0F67
+A16AACD009847CAFAD44B338D2A4F3148D6CA437A8F7709AB4D29EFC4A37C256
+5A3A52282ED1B5114C14045D2A3806C8A7DB6854EF7E158DB4CD6C4F84A46047
+098F6158763C0049A17CFADB12AA198B74E7AB62805556BD9DB8424A1037136B
+5AE30853446E67EE01770DC8153A906FC71DE0D8C85B86DDD62E6951B77E1709
+900338A3CB40515E0636185392979B2BE52FEAC763930A99019C675FBFB94041
+DC09D119540CE689EF7C3ABA5D62573F6E4559B44F3F8AE1C3D04540525A10F6
+501588CF0897D767C84E00896EE7CEF9FE832E772AFEAC08B1700F8F54056E19
+F05D44DA94063E497FA35C720A6EEBB2156BC1D91E68101C366AA5BC68CDC2BF
+90CB15EB12AE0F234B370EFC0B4A23C4E503EAF5529A032838C87F51FA806214
+41BF8EDBF22C89F8905D4C8F7260B2269180C6E3127ED31ABD878D74EA7BDE87
+F597D440AE923A58AB02D27E349CA7CC043B946D89D81C8AE4264863989AB2AE
+5061880897F46E6CF9519548AC8A01431C746C482F4B4C6166788D372CE9C997
+E233DF9597857AF04E493EAFCE780FD229D04F4FA02CE51ACF4BD4CE1917F19D
+12C4B25B1A3575F0B41317EEA24DE1BEFDB1BC3AFD5F61E512238726E8E3A31A
+8B2F3BE79948C8B1B6CA815AEFE34B90DB93B7282C775D1FE88632A41B4FCBD2
+A05A9A04968293E79A8FE18892B806179790119BA3FE378B2AC882295A25C7FB
+59C0F458CB0FA4B103153A2AA534C24ED96976843EA8B30E30E6DB279426C24F
+DB7D8ADC3FAEDDE6F204824C5ED8A31E10FA0B8DAD46E1BDC4E80436148D1134
+09D08C56667DE58A1E78DA8103A4E9D6ED7DEACF7561BF0C85039468226296AC
+861156CB0F0FF2FEC76D2A32E7E49C48F06A95D61A2FE40F135634BCB99FE538
+1F8492A5CEAC9CD4AC76533C237259E077AF4F1F26B3D1B0EC473CD56D3BAA8B
+CDDAE26E7CEFBED818C1DD83AB0142EBB928E6FBC0697FD81B7A73B5CA05A16F
+11EC2428A8A77674D63707F0C91D78EC64F8D5F648199904AFCB27DFB49FC8B4
+CBFC4869BC0A2FCFC7AB259DDF59A941CF4A1D4AD4F451CD7FBDB168FF72038B
+F1578D89C8F938FF72D408753AD113114460BEB902B7A0EC4F37A6FE3117E4CB
+625A664D7FC480E986681C7E3055036ADB8546EAC44B5F12CB4001039A9DE56F
+A61D523DE1B0F83609E46E38CFE4146049420154A9C7C75622032404970B674D
+4F79BC99A5F3F720A45709338E8C6A529257281CC880C8C77CDD0F7E6B495D67
+AB139E3DA9CCC3C99306C3CE9B0E53D77B1A009A261B8A22B789BB67934EE7F3
+A1CA8C2170082F18903F335085FE5219EB3CD0ED4DC01C9A45426C26046219F5
+3CA60CADB58F6ADE1FEAB848184067C6ABFC365553E20960EDF70DC319FF9574
+654155F8AEFD9864A839EF5E0327291C8784AA2DADD37665FD8A2D70066411CA
+C88205E79FF0E2C2FEED0661FFD3736A81A26AEF35599A7463B9F036D6B22AF5
+A6B0C9254F72BECE010800BB32100A745954D96F9A273D5BAC6658B5433BAA80
+22B18397514F4C3DA8D0AFE9ECF437788CF11071BEDBFA9D5FCE42FB0896FFC9
+629971DF9C78E9C40B065C909971202797E90387D12835DF3D305370094E9B37
+4D294623FD09CFDEE5CA6F75827A69303D30026AB518BE812F021C7B25AAFE70
+6485201252BE6AD4F19F33A18844904890003E57A763FCA21B0744BDEE1473E0
+CDD16D4A0A20DDC9B9CCD3E7146C95696FBAD1D1426C6EFF8733219106B56B58
+42DFF423398F878930F85DA3245F6E248E98674144209F1DEFC9BB3D80F4425E
+F6CF06E89522871DAC2865
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSY9
+%!PS-AdobeFont-1.1: CMSY9 1.0
+%%CreationDate: 1991 Aug 15 07:22:27
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY9 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 104 /angbracketleft put
+dup 105 /angbracketright put
+readonly def
+/FontBBox{-30 -958 1146 777}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
+27D1663E0B62F461F6E40A5D6676D0037D33F24E2FAC2B0009AD3C8350CDF8CC
+65BCA87979C36D14CB552E9A985E48BE4E88ECA16DF418749AF04FDD2B0E1380
+D281BB2476BB45FF30946B247DFD7F57305FA87E50CA338121C71CDFDF927A9C
+77FF14CB4A1D6D80356FB1171ED38C37702350497B44E42CE31DB2F493807DAA
+15B887C671199A54C4C1294BC520F5538C15556BC43C9F62342B121C6DCD6C5F
+491DA47FF360201EE21C08A781ED0589A6DF91B99FE118B9B29E4F068672E52F
+1A06C514D91C4C937D4E642503392B1CD1BF5AF0BCA28EBD840AD76CC39AD7AA
+CF2C05711374F7849708E1106F88737C9AA60612D384CA8C173FF1031EBF6EA4
+176136DE1B9F29E40E82680A2CFFDC24DA05853307F1D1F6537D061EBCBCC5AE
+E6316380ECD8E63ACBEA9FD1FC28949366850AAABCBC9552CAB2CA3BB934C8A2
+14C9DFADE24D9214858B1D42B2171DB18A475AF78868C2549F19555AAB07F586
+58B28541C74E14F28B68DA42A9D46C031CBD74FC09BFEAA3AC1DDC68B7B71B81
+6003C9C6AC8EDDDC046D247A2B8AFA63A3B1BA1F12AE0B4DD07327F0138BF470
+4630E4B5DA55C194F454EE2E872E0ABE6B879DF2E87CF81F75D79F458F7D3F81
+FDB76C15EEC4125D18685E1D8591C54C0B0D069E2ED73434617B9D30E64457E6
+1542E4630E848948FF2747D5C31B9C314AE108931003DB9F76644DB43D245499
+2D28E8452E50B1945E13A5DE2A8B93523D3671D1C7ED07EAB6FFB559E5A1F828
+B22D2FAF349B40C3B31FE806595F67C5E75260514F456FA0013668D948619514
+0EFFC35C1AA131AF8578A254AE62CA75A6631489C78CCE633A3B302BFACB
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMCSC10
+%!PS-AdobeFont-1.1: CMCSC10 1.0
+%%CreationDate: 1991 Aug 18 17:46:49
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMCSC10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMCSC10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 45 /hyphen put
+dup 47 /slash put
+dup 50 /two put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 120 /x put
+readonly def
+/FontBBox{14 -250 1077 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337
+900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA
+87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98
+076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518
+9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A
+FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD
+B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9
+CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30
+40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D
+C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B
+7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5
+FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC
+81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D
+5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90
+CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6AD4B2482A
+0E7D070D7497892E9E942DF58E88CAF0C8221BF36BF7C435BF2C683A4A2EF4CB
+E85820A8AD3486155A40143011BA9D76297F46DEF69ECA4596D6E4CAABF84091
+22A96A4BC78A8DD072FEB759A68A44BE1164638B6D952147EE3C628F9A022060
+1D1941E73310943FA782532ABB1116532AD67AEFE0758C051241E301C7E13A98
+6447EB0180BF6799814BEA4DC0F727D0A40B7BC3B1269CDE174453D6A3C4479C
+146001CF717DE25AC1BE5AEA5F2F1C17719251C429D3AED19EFB5F708A36D89A
+354AAEB20A954E4FB9682D9D227FAEFB5CD1388867E0860EBB0E279ACE74934E
+3D12254656E004266D501B9DE05E7FAB380E4B69467E641D0857F13BABA4A940
+02BD22D63B9600A7FC571C1A3AFF39B9DF9F0DD9F396497CFDD52BFACB8CCDF9
+FF9277FBE2D32303E4B3CAD99F79A7F45618B900CFD718F9AC9FCC77058D9486
+97FC192847B08CAC407B89801CE23E7D54AF9DCCD0320CB64BA0B3E41079316F
+19B5A779D0BEC5FD5763BEF31035BD24BCCC838444B60BB1EFC43921BDC2DFDF
+C3CECA21CC24C1C7C3CF17D2565DA4EBC9EE79001A286A1D0E0E8F48E4FA44DE
+5DAEC3E84B688D4235E35D78264A9CC83AED6DDD0E4591102EDCE85F2FBB474D
+CB049179585556D6948D6F720F88853586A768547C085FD2DAFA1B4C986CB4C3
+A92B580C149EE31212E1A0EC36D1830FDDE4F19FB39C2F64586C292AF3BFBED3
+6E3E8DD85124644B874A723D6E9544A3E56BACE9D8A0CDE0CFB0C334258D6A71
+F3A580D03195D0B2B72D92B4EFAB8F8151564C2E86CDDEA43546DCCF1DE7EDC6
+FD8123D17D3DC8A7805395A556CDB49FEFE2136DB8C62B163C37FF258FF675D6
+2D9C7841F7F1FF81389F85DF6382DE676B524F3956216CFECC417767DA7F55E2
+8470E949ADB93BE1E12B281532463BB4CE03C47EECE8D6C4AA13BFCD1C7313F7
+B626AB03395711F8EE5880A5C452E6A0DC1F25285E9C41044CE657AA0BFF7240
+BD162FBC9523073CAAA4790293305910CB07AC00893F35FDC0F0536C84A8D184
+E85542A95786168E1477DFF426E56E03028F3209A56995A842118ED577AA7A2C
+735B6808DFEECF65D37E6B7998909F23A9B39E575963B07CF93D47FFFDA47EB6
+8F8EA091835E8293F2DE1C42668A16608AF3F3B2C53222A727A68327ABDC1270
+E98ABEAFC84434D8265697A16A55A735F77EEBF682F1C4A5DE01E042187E3845
+987EB0027B14F7C0EF6C9C5A346ECD3417E381F3FF97AD21907D0DC835E6D976
+990047FA51AD8DAEE9A86381D60B8A60244604701A782FA90D24C34502636353
+2A2C507E189F1D1ED2B4E2EAA426A236C200208B43C765F680AA8F31CFC57992
+4BA5003418EF6A81B2770DEC775C05F1CD948A39C3F5FA49D710151DA9AC22FE
+2E68640D5A47F5B4416F0F52279D1B87C563C95639B4AA9AD4D403FB48632824
+4AFCAF43318E8E61D68B67F207DFB322ADBF72C805F09ED0505212F64A6185EF
+625F9BBA2126013E181577EB5B4C5A395B98871DAB1164572FDA647DB840ECBB
+B119758B52CD0151D12D12EBB5E3AABD05AAA33CFB30BB47F7C4DA5963CE2718
+4EF6272DC76784551C91B62BA293AD0FF335CB2BB8577A957CAFE7E3A91EEAD6
+E3EDD75B5A2BF62FA89A87814F1025344029BB7EF08D1227A6139EFFC9DFB5A9
+F17EB228E3A0CEB99FF9DFEDABEFE69BBEAF6C796F976595FCDA62CB0DF03A1D
+2F7D4A307DD6834159ED84EF35D9C2B8DB908469E146640B7499B7B17E3209DF
+BFD574F6537287CAAF629AA021A784ECF4751940D231A6832C520318266248BA
+0D2EEBCA5CCC8AC81707E6F35424FF58D5B4828B71D5A59480A2502CD71D5620
+05BBE8D046E1E00F6E726CDC38E0788584646D710EA033E917CC3686DD133B07
+4FB8A343C20F11FBD21A93A3DB65383872BEAC848834D03F0217183DF50E3916
+AB7B68238C23848CFC7D345FC4C70AC15CCC3433592AE028C8424E539826AC0A
+83E3AA79AE231B447D6DCE32B074B5611EADE8C152F93B571154DB9213E6F6B6
+EAE38C9B2971C8313D15C953CBB7A37F5BA658306AACC6FD3AE4A3D0B1110507
+0854DBB4FAD36BDEDF0ADA15108D9B6F7F61A10A9AD25E87F84A04989551B306
+8C393AAE446F7CB06CB19B9D805DE0C52C70869CAB832F04F3E92E094031E553
+5B8679720C774280F66B56DD63D9EE47371EA55817C4F66BA651C473C27A5F2E
+1675547F0B8861A42CD2ADBB8BC778156B5E139A611CE0A17140B72FFB99EF64
+D805E4C477C0EB42A59331D1E7020FCBEFB1B8753CC8DB27509E886EEBBB99C0
+937E7CC06C3F42613612CF874263BE46DA67355ED0ACAC9A1DB02C5934562EEF
+D6B30388D057D4488C4B77B3E04140C48966DCDD773BA08661710D19813A7887
+6735A595B2D10D4CA14A807120A43B09DC8855B0EC0749F3532002801F45BE01
+3ACA592F545511E6A889833BCB595D94CCC0905C4E298BF2D1BA59B1CF7BBCC9
+832827A0FA9505B6D468F73DBFC63CF5188A5E2C1291C7666BF88A82FFF54275
+BA9AC8F7A3EE9469FB4D5271750D4AF3FC0BFF55A5F8DD60AD8745822B98495C
+2843A39D4FFF1760C2C7F066A760B2D44EA0D36BFC8171EB791126BC3E3575F1
+7194B6A35677519DBEE369390AAFDBCF8C867BFEDE73AD82F90D2F641A9A4016
+C24294F7302D00AF096FD25D8ED6D779D3A1D65F7BA72D9F88BCAC873AA8F3C6
+BB9F693671D2C1E75F57C379604972E32DEE03D3709F7B1E2A71775EB003C9B8
+7DD49825CC31AA66E5573863B2975826C19B8A6BF57B8D2E47F33FAC2E3C23E1
+22946FC2FECF4B38E11F79B9C82EF395BE97E699470836C5FA2F4953C6BE47FD
+E8062B48E429629C765EFCEE6CB7DD1D6F58D37E57A8FC521CABE705C7CA7417
+41D0224C9C3D4210101B65ECF0EB4795B03C2ABC4504C09E9ECF74114B39D1BC
+8E83B1D818A5A89886071A14D57DAAEDD70540952F0C649452A42F6626C0C1DA
+165CE8233F8D318BE73E0F5E1CDBCD62C4BBFAF01A152372BBDF03D4F5950969
+BAE25148A8EF0BA62C20D9500F98697B6D3474B5E5F82AB1C260D52F78CBE06E
+D487AC6E916929C5D35BFF07447608DF3C31296551245DE0A3F539C0BEBF5EFF
+3686859A904A688FCEE6E2770DB0209B52BC1260B4B0953665572E53FBA56545
+263D697F6D0EE366972A66D481FDE9B5B760A749D9CEE1477A263BDE7163F785
+12E5E52AEAAFB6A05AA3A9412E623AFF76DA062BC8768DCD745FD0B4BC618104
+C4FD4CE144C19D032CED19B8F0A0DA3CC45B2315EA918AC2580BFD08269F1A49
+12DD707B3EBAC19D2593C43CBA8937708BE239D569415E55F885384032B30D95
+1294463865AC6E40EF853BACA42E65F2E8718FC747FFE9633F614B9CE0A47CB7
+8F22A5EC845BFBC50F822319D4CD604CC4A74A2649B2B3B67CB5D79F93C9DFBF
+457049066E8A4F3A7DC08593FA16FAF7AB4D8DEE6DAA41DE801BDE5A295CDBCE
+177EA270FC3C77914CD71BC4C508943B00CF8CCE983809DF50BECD29382C1BB4
+CAD8D737A88F25C0B9BACD9403A5699166DE2DF733BCA2B7A5C6220466B2649D
+46F72A5B9220DE95F19ADD3A5B4588AB50FD5BB335F89FFF1738C8A4E8592E9D
+5BD54974C2F5F5449C2100FC239466021C5AD8ACF6F07C9C6B01060CEC83FBE5
+091CCD6B39BEB888015A349245FDE839454038D30A8F800588535A2FCEF762F1
+F90AB562F287030CD4B5D946AA3E78EBA4C852D5AE9205E67401B012F257A72C
+2296AB4606F43EF8B1ACB295BFC33F3ADEA31DDD57D6B4A0C133F0F200DEA2D3
+E4126CB9104194E6617A15E1796A14598F3A71EEFFF09EE3DE6EE31FCCAC8C73
+5EE4782DA3CEDCC41EB50C9E12269BE8CD955C55261931E63F3E5B521EE9F6DB
+83B0F15E7DB784734E76B21424497B72646245B705BCE06988FD09A65FC7A09A
+27DDB98733BF0D7C56331EE45E9507923BC85F4B72053C2548604ADD163E28BD
+00EFB6D761342A3BE08CAFEF79F21E5E2949AB810133A394609923C920D44E10
+F605E5D90BF5183CB14536FEAFF86475E0605AC83CA928201ED1E5D8C5AF6AE8
+C7C3FC31C213633EFFFC133CBD012B6DC15A49D6D9FC0456BEB04FD8BB2CC10F
+29A93B34FEDAAF618DB52B2993E7EA0897B4A8E5729D0906FEA1F244100E53AC
+70EAFF565BA48199A29705D8D41DF7F1A7382D11616ECE63B1F1343209404B00
+6705E0ACA23888F0E5A183AD39F812CA47B7C6EA888B302764D7817260744D5A
+CBD64E7741D914DBCB538200B8F2DB8332C1CECC251C4A5A3F64D30569000DFE
+A5870E1697576F04F2C887B3E406A99E525D50FA1EF50048FA427B62953ED05D
+DF8CD3817D3DDA730622EB3E00A098B84F1E09734ED33DB4E2D0E1692DB61A2D
+3FAD2FDC0ADA0251D32517E08F0E74FBAAF407A35DB779995C8B5552696065AA
+E4A0789023826E290408D0B871309C665C6CD1645E4039F7F63D1FE9FA5740B8
+D590F177E0381832A300C22CCD9E91E7A93F40B0F5953E40F0CF021FCD5DA3F1
+444B6E8D2E0EC54C49E083806CD5743ED134E97F525BB9F77942688A7820FCC9
+335AAD4E6C71F201B5CF7E1D7C8156F2D2C26D51675C7A164F8C5F8BC0BAD163
+3009C8647860B4F760396872D61C8ACB542AD323EB06546B781D9D6681D0AB8F
+9D340526B5062A4CD4FC09425D4338DADF27DD627D25E300ED19D37B14BF4413
+63E6E6F6DC32C593EA549B7A8877312E4498D93F13F1280071546DAA3264589F
+A724E78CB69BC18A4C95D987E5264847D55F4BC4EA50220D73C1799D849FC874
+FBCA9C2FE0E4AC60AD37B569FFA06A12D4ABFAD51FC492E1353150BDA27BC49C
+791492C6D340C9BB73FCDC6A30655474D22E25845143E8DE4327765874FA7BBD
+7E09AC46D9EF1FCAEAB13FEC348EB2819DE9F7395B5B98EC1EE1EE1E14E0E28F
+9FB50D0908738B115941BF6A1550D64D7E88390C1E184089638BF40053685A1A
+19B7F1AE7AC99C4D58119B957F3E465674A5654AFA70EEBAB7B0B2D6D7DBD979
+6EE804BC93B9465D453E97617A4166B14831FB9249395A9C1496D51E086B2943
+E32CF0283A4E99D0D2907545D17E7F023EC829527F389374FA1A28E068B4014D
+D0353CC5EBA3603B41993B3ABF2A9EDA80E30CEB08EF43DB69B70D80E9175F1D
+FA17A21172CA272B7E2FA169530C6F6D9E4B7DC99B0D60686C9905B627531100
+B2D49835AC49F002A9E481B62ABE97A4D9487A7F4DF4DC87FFED30809A855486
+89E50FDD6D9AF814F74B5A2FA2940DBFE394C573B5150CC5B2BF3FBC787C7217
+00C26BC6F88B5B4B2EC52BF5A6F3E24003A3A59B901FEBAB824BE07F958AB71C
+E61D639EAB084E31FF721B4E17DEEB0E8A0E14E13ACA8BEFE2
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 11 /ff put
+dup 12 /fi put
+dup 33 /exclam put
+dup 35 /numbersign put
+dup 36 /dollar put
+dup 39 /quoteright put
+dup 42 /asterisk put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 58 /colon put
+dup 63 /question put
+dup 64 /at put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 91 /bracketleft put
+dup 93 /bracketright put
+dup 96 /quoteleft put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D
+E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23
+337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598
+0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6
+472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E
+A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26
+31B84248049A4C7D49ACFC81E3E4FEF5F69FA691073C34351C95E8BACB6C51F1
+F0A239823BF97F518E4B04A7F85F0AC7C6BE40E6FBCA328F96D0F9D9AC3C2A53
+F5781366C50469C5386935E833FC248D8260AD6F72D2F2D3688E9A94F87E5F62
+5DD3358365F85FBE367FA2769C7EAD5EC9BEF5292B14ADDC9683E8CFD76FDECB
+CB72CC020BF223B29FF3A9538B04C9B9403B01CE4DE99EF7B0CCDDCDAA7AC5AA
+8D7BFA69A836CFE988DDEF001303F7D58DD7E193171F7E9A23ADCB244AEDA2F9
+642CBF8FDD62F6E91B80825292EDDDCD7496624B6C1D381A61E8C1AA0A00DC0F
+2280242088F24D4129B4CF1320A2989A08765AC390CA76720FA030743CAD6846
+F6E8789A5E3E96940C65CF0C9677DA1EA3162B71E99B770228070BB9A660909C
+47F380B10F7DD5AB2BC23044B4175164A88BA16451EF494E5A1902F43E9FAFFC
+3A60286E5561E16780F2115B85685E797E63731011E10EE1D64C148F65873F06
+5DB9C32ADFCA9342F4A18E85BB905DD4AC45AA56B38EAFE3F1C9D17D689D8B0E
+C6E91A7D42EE6BF82651E7BDB46BD65BFA57BE8E0A797E97BC1DECF2EA2DDAC3
+CA6164F5AE380D6B2A23B5DE1B97C91D29E535A2274BBFCACFC10C12E554D0C4
+EB97C43A3C752B5393154E9865685D33439FDDDC258860296047026EBF689762
+A1067296C711A03086D178FEC65A2FB0BE917ACA96321BBBFA8458EFA0E14A4C
+85AEB8EF6597D75D5BCCD1B0935DC1AFFB755BE6106162EFB60676735BE64564
+B5DDDAA7C26ECE1690A043F2754103FA3F81E29DA762BFB50D4A3F3C8BB419FF
+E9317E01EF54AF28B4F875896C7B8196A95707DC79F1C3538D4F162260AFCD90
+61A3967C99F6F780646B5B2A97DD6649CACB141F76E10EFD1A7A9DE0D76705A5
+AB7155D73ADEE46D19B6A7CFC58F614678D999A23C31E1C86CDBF7017DB90531
+C14ACA1F11A9FEDD6C0AE413C7DD478AD99E7CEFF7785DD631552FACE5B0B428
+5781E221364CCDEAA1AB3486990515939A9EDB065282DA4C5A837C81CDE67A52
+97FA3936E332AD57319A0DCF95DD083934855AB5CC535EA4E9D9DAE662F7BB0A
+6D45FBE3072DB42C1D27BC8DB5257FEB94D5CC9E7B944C1AE3F4B7322182690C
+9541CA08810032516B71FA614EC6823210DF837B551624862C9D4A1A863500A2
+A913E18C4298DB9EA02BDC2BACA79F0B57897AF2E486CDBEBE200FA42B0C2213
+E577843CC8090A89B416F8D09827C62EA1756C82BCFDB38A7888DD1866DF0EB8
+E45701027A28440A6DBADD0D1158BFB645F23DCF66205A14175E31281B1E5CE6
+7BDAD0C786B0782E76044594F693B3546D0D807168833ACAFD06DC4B8CB05496
+D8041FD42795FE58DC25E5C14E78FFFEDE3B48BA53C008C1FC1723551B65BAC9
+155B82AA53A9475D2B62954504DFEDB3DB0A8912313978CDAA587619F64BB9BE
+C99872DA229A8D5A282A92148A68DBEA0DA4B2F0A08D2A00F6BC04F793968D0B
+7CB56E8AD3ABB9AB57A514A170F16EDA92F8176DE7CB42C4F23E504DFCAD2B20
+2ED5863AAF337A28DAF9FFDAF578C029EE69B0A030CD6134DAEC4C0E71BB0851
+E7753AE655AEA168919C087038417510DAF6C48C31886A2674E2487C2E226B99
+585FB5225A704EAF95B54E688080E863FB94407DDBBDF259620A9BD9073640C5
+ADBF23A33F705B852365912A262A40CB57FF109A87AF25466AE93C957DA63E5E
+6DC474A4DAABBD9337A852206C50B645D28AC81A9F1848425DFCF6A10702F23A
+1CDA1F43EFF11578D55C1380AA9DE2B0CB7BDCE13C78966FC614FBA1BF4F64F5
+4B38ABC7919DA46D084DE5A435F006F127F3D1B232089ADA7B1705E03D727BA0
+0F8BCB53E985AEF73B9D68B3DE0B1CD36E566072AF21BDE7D991E090D02E3239
+E1E389F9F799BD17C453F0885D74FB9CA04E6DB6BE1EC840F8C1E7C117199177
+A8BD4361E733E53210D3FD7B71825563EDA0D99153F1A81174D5850704559972
+60D67F2A11FF9403C64D9F58F30C2A0E89C96281F8395E26B12C6EA61FEBFE63
+737F0A33D7E37E3DCD245043BA1522729C6DBD5D78B2C8C58FA5BA77BFABCAE1
+AAE7C36E70FFA3E83A906E8E63CF6F331499964299443B9C5F0EFB91DC4E675C
+5784DBA5413F3DE861903D970018AC64CCB010133F2EFA4821ACD4474715F057
+6FA8565AAD50B9F19F8DBB6E3AC72E1906423AB35A93D56E34CFD5F3B5863571
+F654EA6D67B299A48185EE5DA4F873932B39C23F57764ED19EBBA923A51A2C6C
+5CD7A59477341ABB5B5F21115D1774500B930AD6CD07638047F45A2AD8FFBA36
+05C5CB6B7B97F88404462CC50EC5A75676E8F91E7D42C4DB59AA74E24848DFFE
+B556A249D8E3D23137B60D9E8FE2A9641AF959A216C57A825B811C6E7522C443
+69B8FA6395F7F3C628A3CA99FC5D8689C95E35EDD6B271F3FEED9D184F0B3AFA
+8A7B6100E336589BDD6FBD03B782E36D809A64E9A94F5E9B3C9E7822D24D46D8
+515CBAFB830CE3F1923F6156E29AD479301470DB9A9180FA7381C4A09E9D1ADB
+51DA817559A37DE2615DF1AA2DD6B8C4BB1C9B27723DDE22C116B4E43ACE5463
+71C4B79C1729EBF6F1ACABB12A3F596817827589E67879ED40DF7DDD403D45AA
+021B11B11859CD7ED42A6C6F15021E04508C2CBF94CDA637A75ACB47D3A249B3
+31DC550B331B22CE2191850799B2E0AF443ABB788CC6297929AF3D3BC9405C8F
+2433C4BF18C250C2C15C442C10C119F543C101F60FEF1EE0F9558A8E2F6035B0
+C5789E9248D846D2ECD3EC4E790A79D2817F5E612833FCDC360C6902F176E130
+E70FC6E15E07ABF4FD6BE5F3EE3BD4A48DD38256706C25BF0E6D9A7C51DC80BA
+72BC5F5243C1B49E3D75455BEA13195C093C47AAC6ED3EABFFA674F9E66207EB
+98571BAA8C06389AD5402730DA846CDD6040CA84E0F27A65D1194D916A835275
+4E99D6F6084F8EB0E34940F47C4D8700E1B46AAD46EE464D4E10C4E1259D2208
+70D0EB1661EE28B7FBA067BAF8067480793B37D4C881678B2612531E87BC7243
+0AC0B8A4B816F1670443C0A3E4FD631EB8B48DF3D4A03D9690408986E98F227E
+05253E9BCCB8C61AA0B4E352B6B76FD9D785AC8823A4FBCEBD4574182D86382F
+6CF90EE394506B1043FC4137E9FBE5D471F605E34B59AB3822ACF3B71730A79D
+802486209B66D4AF6BCB7821CE4BBC447F66B35ED8BC949A935C335B9F61646B
+AED373E141AEFCC868D068C2D133AC284885829718513ED5328EDF5230C38399
+F97CE6F55004A89D21937914FC9CDEABC3837A63B658C1F96E1F6474420916CB
+3197C6F107159EC20D34E13A8698BB04E9E8BBB59993776DA701148447D07F19
+2E8FFF1160E89A82D07D58C7DFC3B71EEBF7A9E958572BAAC093568F5BA7C0BD
+B118994D1A3A9F60CC96A1A996D369E7FC684244C07C3461C932ABF4C266B7A3
+239D80C79F603449A0145D88AB24A4DD8B2D82F315AF8F05904EF22F09331D9E
+D6340306D266B4283E919117D283918BF0B4D944BD0B7990DEA8859A690F011C
+7C6843BFEFC9329CAE786F102EF0CF8A2D70050B264BF0D824E1647191D1AC13
+C23E7F53BA73E1B3636C50BC33E2F8D0631C3A76789304A52DC48AB4BD9D6C9C
+51D64DCF77AD95EFA09415A64B346B32D4189A9922B9514A26AD918667CE94DB
+A631AAA4EABD64C71E9E954A40A16A66CC50F444350FBB77C1BF49868E2DF59F
+5EEBB30170DD95B0D8D7530E3B613B70337239A47C582AB7E3E0EA6C6C908B16
+5E89F0969A57D2AB5429DE5CABF2158AD4DDEBA86000C37DA9D859BA60A6A4B0
+EC7C29E0B6E01D174EC741BD5989B5BE020C843A86ADCD2D6BA02CB524140D80
+97FFC7AA43CD5ED3B6A4E7D4D90F3244A71598955428E310D2263394B807FF04
+E102DD0203FC79B002D2458B4E29AEEB42CB757197316ECA9A21D5E8D0F1CA74
+1B52DFB5FDC9EE0764E5A2F2CA7307050D13DFAA548514374CE8BFFFE8109F57
+638DD8BFCA8F51079D9ED3621A6AE9CAF4BC163F79E283BC7D52E215E73B896E
+7A208969AE5E6D2660B73891FE0C38D3F65A65117EFEA6C9008F006811ECABB3
+ACED727AB8D25D9D6F7B12A630090675131BD7657017E0D1BEBA6C721D97E496
+3113B14D6D8C6ECCE0C82CD092480BE17F5031FE21FA67AEBAFE90E2DE02F273
+8B82E66CA84CE6210D492175BD6A0EB412240AA3799637142CB8F8E07033FC81
+CAC9CC379FE10A0E444A373605647996A2AFF259B0A2332DC2C4C6AB519A102B
+5A0EF3331915EF092F5ACF3CAB65F21DBD04986BE3DF862411E7EDFF32867B63
+9891E06A0BDCDABCD7EFB0F8080CA30C79FEA9ED999B9B2D94CB3CD3ABC6C94B
+1460CDB5C58247EE64C7B0A3896E86DFF036B3BACB489FCDE3C6B4926F7D6EF7
+0166D4B404F3EEC540EB39B801F22B57F59F7E987F76E6BC8A61DC216557FF8F
+98901298DD5571653CC29C5B7F2DA9FBB4D93B62CE43C06AEC1B942BA6A3E86D
+7C1F83AC372F681EFCC95CC23149881FD1BF6951C669977722357026C481BD85
+C8B79C02D35D6EDF2DA523EF97B32CA023C21B7C0E746DC61A4E062AFA6033E2
+D1221BBB36256B230363B9B4E40E34272AB93C63D962D5BCFF652259E9EED617
+38DB29D6521453834C876865FBA9AED8D6F740EFD3A0AC9DDDF999DEBFCE49B0
+848E6B535C89DC288C1BC750B9FD923A74853E2EC884AF81499539BA9DA06041
+89BFC782FB656E28F911EFFC5CD1AB78AD270D02AB7D129F1512EDAFF40E1895
+4B9B7FD4D3F0669B1692B22690B08623D21318669D032E899617279149C08A48
+E71DB761E6E25DAFA8B51755120DAB6C7D9AA16EE353A5A619EB659C974FC026
+9558753A717D6F3928835038F32C0FDD63D4664BC97FFC8FD5378CDDC66A3CFA
+093EE8063A0B09B9DF05F7564D65940FE9E6F1E9461355ACCA406A4B6E16FBCB
+5A2C9BA2EF4FFE362FA6CA020F5DB489755D27557242393E50377C6945B64996
+868A29A500C5D5772BDBED54B25DCD6C229F6D43290FDD5D410576511D907D3A
+5BAFC90F329A4C861883FE8185ED5ABA95A7DF29623704DD4EF379ECDE1CEC4F
+AC06577755135A1B5427D5DAD85485AF0741FF7F16884AD6509854D7944CC513
+6EF45A4A3E3F1F4C2DC86682B7A62811F784C3B7A735BE518196E8E2CAD81E6B
+2B8734FF26C91E988AA5B9E1E7FB42DE6B82FF6479AFBB7368A4260F67BDAB69
+3E689082825E4FE7469CBA1B9B7177119C0825B100BE8E6F1A910DE8F92CB3A6
+661B19BE5EC3B6DF6B04781432F40EDB678878FA51FB4F3DDE2076921CF3EEB8
+AB9885EDE74E091F0A6C1583515C7C46828AB1487B18B84F8B85A439A6C8EE1E
+3822776A0A1E25216B7BA38AE77EBC4FB706257290FCBDECBDC13BEB402F2C25
+610AF618A12E7D229F6A83B8CA7D8A117E1EBAFE6C044F13D583223F4DC56E79
+4C297063953E49AEC2428F1E96B1EAFAE79099FCA69EAC63E970F10512AE8B91
+5BD5E11C20C0D65F637642E85058D8B2ECB4A5E6C6EBF6C7DEA6EADA0F978CB5
+EDFE9D9A7E608088F791EC9A12612DD9C997C71BD0465B2D06AEF2DA48BD4C2C
+ABA638772D5E614C726AC75F61823707B4F72F2D42146089FEFC3998D9C15521
+27863929D103F46673B563712BF63819930CD03242F480A026F77B3FB17C8819
+4F9FC69F0EE56E975EF3C545AB514B0E6DCB8E575388E0961CCE8D200F445B2A
+4EC2A853EE7B2192526999A1C0AAE2A90A58DB58EC82A10661DC30134286FFEE
+3EA512A024143D07A6C671AFEC84858B4828B2B772AAE09E9CA9F7882A4220C8
+D618C9C5892FA5A36059B978EF8B26D6839EA8D9C679452810CC9E132C8E0274
+117339DCEED2A92632DA2BA784AB19E90A938C9ABCEAE9296E0935F5F6309B16
+1EC413004EC7E3CD2CEB4452AA657183E4733200C62A02914ECAC30FE556AF4A
+1AF2B26101CFDA61F122B1F4353F9551E38FEA412DE7D0A8445B9D039A417861
+5C373641A4B6532370C2E8C5257583484A065421EDB4E50EE8AEEDE46F557A6C
+6CD994D162A969698AE100116344007A7B7F747391DA9796409D301E59C94148
+F285929AF6B8C6A31D65594F63BFA0D352BCEC60D50E9232C8F28E73B2DDE881
+DBC5F5DD8E88E8EF97828453D5095311B92409C532A1A549EFE3CAC1F3D91E5D
+2EEC82CA6129FE9DB8CC6FBD6F4BC204CA9454C475BD8877597D75ECBCEACC97
+9DC698CC7A064227CBA45EAD0AD850C45D059E2A4ABB0C830EBF95E61F8AC3B3
+8A9389EE9E05EA091E64DB71863480D9E4312772FD9B4D6757556CC7C43FB03E
+04EEA1C9A048ECEC4B7C465CDFCEAB707F67FFDC903F784CDB60CCA60CB3DA37
+09CDEC7264AE28487F0042ED019070BA501C22685AD2EA7BB03EFD5D8728F672
+E8FAEC9A5885461CE9F2FE3BEB7F64DDBDE5B0F2A6CF1FF0CB2BA0DFA2CBFA20
+C539DBA84F0DDFD3E62AFA11CADD416CA921C2965093177B34DAC627D18442AD
+3167DFA2688C2364C0AB3F2DC94D0867CCF22998ECFC568EC07F28161F401789
+4F3A13987DCA67E0012D41C712F4515135DAB1405B77BC1C2C3B7CFB52BDE5B1
+7E2EFF5C3F19195B778B0016ADF3FF0B11DBF0D674A412AA946167CE88D6B10C
+3D77EC4BAE76A665329C977409D2AA8A8CB07325501FCCA2A295F83C21AD5582
+09406FD233B02E25A465739986A6962ACC3FECCEA316A8C747B6CBA3B1C4C7F8
+5A01B5BB008651EDAFC2A0AAB839EBDD14025BC19B9233D54CB5D400345106AB
+E2D1617BC855A3AA6E2B60C50AFBC7FEA9DBA3D30EF2905D96A5F928011CAE86
+B1C6FB92AC8BA20D7B15B40113BDCFD9A05B0F9293477C4695E6FF84AA54E779
+AF7E19AFE02FE9A3DE310E6CDD4A2C612C227FBEA17CC5014AD9853A74BB6D05
+5A64F1C4366DD4D807809FD02B29B8E455293104ED7187A3D4943C2643ADE321
+3299D423DA71D017DEF79F33E499D5DEDC97120E91D0408ABA55CD77190E0964
+F7B7FCD76DC3213CC9D6F5EF9A7456A181433712F1ED8FCC46BA54793C33F10B
+F8BF3C7E8B59C058AA0A9C18CFCF23CCE06D71A146A34B5362CA8EE5DBA42690
+1EE541CD07C043C565F803F5EB1E459807DE1380398989EE397D73EA7D142AED
+B255F05A5BBFF1F73C05FFDD277EF060CA9E3C7318A58AC3BA0A335442BAB763
+E725EDFAB0C984B14893F0050D0773F5037D763074D3CD9EDCFC92F17C3FB699
+F7AF92090BAB4B356C4837B9ECB1D71BCC98ACE7F88448A2E2FFE1B96767F9C9
+45FE6C13E93E0638B370D660FE15D1AD1B6BEEC26C04EC188641560733EB5C39
+D19FE0D6CCADA8D7004F8132E7F535BCEC3C5D45321E59EEAB9576F7B4B39ADE
+59A85AA8EA28B2C737F4368720E2AF82A7BC1B364FCB39588256017A745059BD
+7C31D183495F63A7B4A76BC50C4A00EB2FE4EE0C512C3BD2573D2E6E415CC58D
+E2933DB1BB194B005651138415593EB9EB4B9BD91D37A0CD576B218B6827EFC4
+1D3F1D036C6DA66217EF92B6F349B918AA5E20B9D4BB950823BF7EB9FC07F78C
+8574224AA93ED2064D7A00C98C41F732215ECC9DE1017CFA379A5B8569C3A496
+C0CD61A6201D53177F2736DDF182379C671B38B16AF092D63450CA96C8E8084F
+2DB8C8EBA732B5A84F540CC34A4AD3E9908B3DD149A10767999850D353EB7149
+E2BD0102585AE07505B83FAE856F467310372205F79199BAE473893B723F7E21
+88EE6659BE3088859D2FCEC1604FD568DDA45559DDF64EB10FDB19FE8C9D7C59
+F0E7B781DB5FD80A3C7A73420D470F1256D683F92EE6A7A9DD241B66CE4FC35E
+C6D69D2B66834D848437D45374829F5F1624722806B9E126B43A51B4FB9C27E9
+D5EC07C90DFB7CDA30B53C0DDA3D1F93B7EE82DB6EBC14466F0FCA5149F13B4A
+BD949717FB44FF8BFAFDAA7914240E43B0253E4F8ED5C481376C3B609A191670
+1F2BDA2F6F6A466FD42FE9BE9EF7C3A5B20DCB2A7C18DACD0A75038DC30E3FD3
+64F8389204FEEC67029A64FCC3E5FCF97AF24D98A455997D5667270A95BE2D13
+ED87F410B35B52A2D3D89BF180B3EF83CF39B634A0C1CAFB62D76F373D675E86
+856E7D0ECFD67A5C48A7FF4653B7A607622DBDE7CB434E145F9A4B0501456B86
+3E99DF2570B034243861E4BB80E0F9CE2649329960A792F30913C967F9538E76
+75B1591E075C10BB59139E2D1933F6BED658D704F623F8507B0E2A03C582B75D
+657B577A72585B6926D51882ABE25C752824092C6A1F5A006512FFAB96700DCA
+E2AD0C7D7A3AFFC4F823A02FAB788C32ABDFCDD56DDE65FBA63BF95E890573CB
+EA28F7BB049BD3133DE22E8F4F05AD04133FE48785524A14041C73EAD6F60D7A
+2CF1F8F3C7258172EAC2A9820F4C04DC34DECF2912182EDC86D7412A25A6FB25
+F46341AC7889B645C36A85C8F10D22E41D4143D10EDFF014C00A7B1E4EFAAD1A
+7E42EBC657CBA442E9B2DA0BF049E86D680C5E1C4B2588E99F24844E8EA639D3
+A4CED6A0A7BE055856FD998BECB9DAADEFACA913A60AE501FDB6F035A2D300FB
+FF13B510595A64A900DA5496B7CF1085676680008CE70D114082EBDB5B384058
+06A99A26CBB247CFE8EDB6EA428D261602319D5EF03C9B6BB657E6D8A7632970
+491BA80744BB5DF021382808F3F99ACDC4EBF26887523FA5EA81321D6EF2AA9A
+55939200A4D011602FFF717AD90EB5E47807CB58370C40461591217C2A714DCD
+2BE918A0177D068A21B5927C254643AE0B36EA772A3D2EFC25083B8291BF311D
+74B95C21696904773C60760CBEE6F94638855697A1948221438456099589576A
+AE5438C70C082D177905FB82FFDBD4BD94ECAC1B6FAF0D4D7578A1B6576B4F13
+E3A6F814B4AB580ED09C916E20820DF0626FC1D9A925E8BB6A368E630AC6EBEB
+933991990F4E49075B318B62CA8296CA43B77FBB16578839419929DC8A2AD819
+F3C404FBAC9CE3CAE8AA904E39924C4B704272257DD3D0C8421A90D426376F9E
+E2A4B6C868BA2884D7BAF0BADA6299E307ACA1A74B1D73D73F0150A6C560E65E
+6C0D247AD55969C1FC5DD81C764338799892D391A254B3613F89D1A348A9BDAF
+CCA171CC6E51DEF7A91C7929D6FA2BBC243DA7B1BEF9652F1D8FBCEB2D367187
+9FD4B2C681820B2189A213866CE3456E2007FB3DFE2E362149177CD104444D0B
+C026EAD4390AF141B33868DC5A49E0E1108DF1A6DBC81E2015969F66773BFF69
+707FCD43DD72B483EA751FB1C840C917EAAE7447AEC688EB9922FAAACE7BC094
+F617EFFA3199DD06552C72E53E67B0053A3BE5C5750EA0581B1A7692AEF0921A
+859C7F04DB8AAB312D2480ABE8AAFF257469A555B5F983D277ECE041588E8F94
+07ACAC0E3DDFF44817A21B86939E7787FA7772113699B0A4D9E5462D3E59CEFC
+2798A0D70911F57BB068F9D11393D3F2A4161C26DC2F3C92A7D1F5FC32C6295D
+9C6DFD5E9561DD4443F5CB7A356A9BDCBB61706ACF0C51670668C67DC0FFF754
+286CF2BEF36A02F637DA2DAB10F4897FAB65E78A408C405B52C4F88C4F70CE20
+9A27803EAE707C5E9BBEAEF09A2ACEE9986A64BC671BA9D638375ADEC6E83038
+303B41BD653612FBE967C4B5A121032C73C085A237A561B860660D52FC408F3F
+CCC694CED076A3F42CA1CA6C12A222BEF6850199F45E2354CC7E308D277CE2FF
+F85076C0FF875911B86306112881047E688C5EA9CB6497EF84A659A54ACE4AE9
+774EB2A9ECD4ABA95831E2B6DCF60E8CCD197670E2CA7B79FBBF3C9D9990E737
+D8372E43DB9D4A1B488C630E86BB9B9E91012DAD1D7FD603D2DBBC732690B2A0
+8295EB964EDC0197D6CE17CC3C71559962405AA1E21BB1A8C17EA1DB8911C970
+4EFC85F0DB429C54FC4BDAE64F5BF4B5DD90236269894A180920BF30FED59182
+6781F1602EFE3DFB2467EAB8B00CB5FC30B9669AADD4DAB5795E69F4B8703815
+95F15C33DDF808D242BC2169FF88EB6D74E9E10B638658330EBC284C89442949
+8F4658A6B3B0E70D1431E969676900E56D0773D36A7CD91CBA93C35EE3E07BB8
+2124EA7CDAFD27C4EAB0C53754CD38D4A08C362E0479422E9042C8586BE74C21
+FE71358084B5395DED53C62FEE8ED78460D8A9E8C39E49355E9F712142D3CC38
+A62E9B7BA97061D2C70579E40A54C0962BFD0C5DC6B3338FE09770DE0910F9FC
+4B35C0A307412BF77CB83E62BE74B4EDD3A6BBF2E2294477209F823F57B87452
+778759BA065047FA61F3CF1853F60BF4600245237CAA359DBD88619EE2E948A7
+FD380EE535751CEC58BEA1C0E48E098CAA97C0AB72A2BAD0B538D8D48A44CAC1
+AEA3848BE1B68AA401F37A1E2C4361FE68EF65617237AEC00A37FDA5E826ABD3
+291EEA47E3D9800F98665C75184247D4CEE91401411E53B8B48FD8CFA7147E05
+3603F82AA77C3FB65E787AF953D88B897ABF206480083C171AD32AF26F927E7F
+58F29406D9A4C64522378E3009AB2DDFA65F62ACBB25888F7244002324FCDD2C
+D01D4E83F7D222DED9242922F1187FCFEDD0DC300E05C4508256AF9D8DF2141A
+84265C77AE2034B7848A2078933229C180BB2176481EA46056610BC76B21B33E
+B5792BB9A3C4AFDA74A7316CFDBC0F9C63625CAC268AD7A3B82A9E693F4A2CC1
+6CD9E3499B943C6B6522F4DFF471B012E8BBC82E941CB87F1672669A7297DA94
+1D05CBE1D1BA7E3749E59275B55C1893F0EACF28EA06567D4702EFA6328B4E06
+A179896B168BEA4B248FF64884DA6B42EC4E49116F1BD06104C77E80DEE2B5B3
+96476851455CBC7BA1F8D37E927F2B8AA5F6860070940F182B1643929C4A02C8
+0D0CF40CBD295C8B5965CAF002D464D032209B83A69CDAC059D2C949A1CA48DC
+93C3F287AB2FAAA8010D2B982AD7663E331752B23C82FC07E7F3EB7D72FCE84F
+02EF6982C96FA3FCFCEA45BC433C3A1EAF91DA6BB03B8E6C22EB79958025C3D9
+6BF93DD6421909607AC24B682E90C3E6F1559C58ADFC90350EB44CC159A69475
+BD46BB4123F4AA935D836E5BE5AD399F13D35136933D47F980D19CCA98DC441A
+351E2843395245E1A3412ABEAADCC1D314E61FD3F7C227804175717E50D4A553
+F329D7D5B1D3ECA7C063471ECB6F72B2FCF5B31C18FCB1C92B013C502C36E795
+4BEBEA3247CCA9989B9AFB2E0144C8FDB21E6611242D26DDEF38024E971E3BB8
+2ED74172E32515C57A002275759AE8C59CC17AA0EB4A849BB434F1CFE128CF02
+E5EF9D2A02279E03CFACBE546FEA176A9864EA3E2748CE7D6480C7BB1E8A469D
+85DF3BBB2D98337E82B68BE7A8C2DFE8D6D86FF6BD205D332030679599B70AFD
+8A002326707FB485B995826FC0D2F8C3588D1201446162A1F8FC7E75F9208B05
+EFF017F40F429CBF0CDE769D14016514543752438D907B32F0C40398C0E0B246
+B06E5C2740E7E5A6AF3182E0E0860A0B5158241D79F7F5FF174764D8351A89FD
+0A7D99E40F317AEFAE208F3C463DB86593B91892F11C9BFDCC8D741ACA2A0BEE
+B2C1A836EC39A8894B9097B194F980E7501608B1403CAC065E92B41AE18664ED
+8D9A889C1653217FFDF6006CDAF20073DB4300CFA63025D381E4AE4FE969FBF4
+1C66D6FBAA6C0BA67B91CE299044261708D93B15F30F685589FEF331733633D7
+F90D071B2CAF4106C22DC5C7361AE88FC817DB8BF37FCF2E409D882F1FEAEF11
+41DC3702D9B44DAD630071210E34D2E644101C7CB2AAF0892C497BB391146614
+50AD23021FE8FDFF23A505B207A89803DADB5E0E16886FC382809EB0854346C3
+5D4D7084F688EBC02DF2673AFF763801F90DBCF5B43FB0E8D57B3079A2C6B07A
+69A462168B9FC750AD55E11A10724943B61F425344C8FAA924C87F31E07C3467
+1002FDC8CCF3153405FD66EF0EB2FA0FF5E5E0A35FCF5052133B5550152BD88C
+2700F1A7D05EAF25B6857615918BA5654925448B950BEFB9EA36073AA00E7B40
+0D7E839AC159B8856EDC45FEE444945EA9C4DE984C68C9C1EE918A8CD45BEB50
+58C8DA3508F5353B1EB83FD38BAB985608E08A0412A5C83C2CBFE295057EC58C
+1C6B537EC6CBE44342700E114DF42ADD55E2FE7FDD9056908AF166ADDDDD93F7
+DD5865C03E8FAAADEA4173E3213392D37A545B409211E2D30F2118B5183DBEBD
+E7CAB3C1E3C17CDDC47BA80B2EEC36E47E9CF81A30780B0B50B231A7A4C5E3D8
+4151DE0CF686095E2706850C90761CCF524D1B61B3E76F6E8611F0E4D993D87C
+8A08A4809656DC07FDDFFCD8F5E60782F3160171BB025A6B736D4F4093BBB062
+B2F3704B7A438495FD39CE9270411A5111B499A5B97AE75D94A56EBCBD013406
+BD215B1A3526C8ECD4C745FA6384931D197EDF17C37BA19DCC3B0E0FB79C1946
+53145487B08EF827AB1E4AE0BD7A0106CC4C1A61F2529CFEA254FA028D0D3DF8
+48D762C42E711FDB0EDCC0D3D1DD6B4ABF4650856B8F275DF1C8179A8B4D3A28
+94EC6376424A8F2462A99D1989AAAB1163A67D05D4EF46D07EADBF747BD56E9A
+DC48E7E1B40A2FBDAF5D8CE2EB3AC9CDE96A6044160DA3D5B96B52ED82EE892D
+CF600C28E53B9AAE89AA2FFD100EC94BEAE73FCFAB2F4FBC2CE26570C17AFC32
+5B343E71769C190E8BB3CC4FAA48991930F7A5995F998D382A90C2A0C98AD6B1
+57782EB0D16F191AAA1F04D2BAF1DB754D8543FBCD2B5D3E76591E5E6F1A2F80
+6705E607D921873420D7A347215D7A522BAD6CAA9A2285D0353820C27D0834C2
+B3BF27AA4704E1E8ADF303E3855D4447BA084098B6E37F578DE9D6C739D44353
+10957E129D642D099B137C406524161A5CBF6619FAB7BDB4A1FEB5F69EC2D8C0
+803685291E483C2A9DDB83D8F7D751AE6C69DB8297702D20BDD7E293F7DACFA7
+E56F7B77F915221981C363DC170F6E04267CE593751908CAB3D95018E8CA038C
+8BA4EA16A91A227F04552857B947B693B0DAA420C7D99B5BFD058677FEB15E61
+EF1888A69C9E33CFB2E0010E1BA49CA8198242B9E025B988A9E6AB0A7D434C80
+50CD2307B194DFB07FC8A827BF6239B3226935A32CCD429348E1789C8B3DFAF3
+03B59B0905DF2EBE6C807F52A4811D10B8B10E967FED1853A6D4DB02A46DA4D5
+05150D24118FFB7445C8CA17168BD332F32A78DD5211A37FCE92F8BC2142BAE5
+FED439839A5F7D1FA4364A2F5F8B1BB4F4BFD27F0078EF167F247DDE2210128F
+B927D08CB682DE3C8F954E064349C585376E84DD8D0A15FACFFBC5F54CDB2EA7
+34728FE9B4A4D2B07FBF7C6598EE6A5CE1CBB7C0A176D890AD82F3E2F19D686D
+75A6B5816D89FAEA212AA077AFEB0055AC44B4E9E639B7D7C8A2FD4C476F4A61
+AFE52462E4B8352D98B3412DD494642AD5BF0D59050DE29A72F90838941C4BB7
+8A826E48A9AA4AFFC93DBB77A7C8BF4787C47E54F24BD702A3459CD060E70429
+5EE5A72C97BCC54F001241C7E0B1D5E0DF76DA82FBDDD294ED30876554BE1E88
+DFAAD6D8DA75ECEC61588EDCB48E39A654CC3A8C5641A385B3E0590DE54E9EE2
+65A85A1DAC0AAE90E1B131E7064006D5933D96A18235EA1CDE5662B14C393359
+6F7995B833A671DC33B8ECCBEAE657004483AEDCB128D2D89DBBE7D87F56FBA8
+091300D55B04A20C4ECED98B229A61D4A0ADFA6E7CB8EF07D92F69BA316F6690
+02BAC63DF03E07BF5DDDF5C26EF67375032DD9E1CD0A4F9DEAE0AEB79D3BC2B2
+A084661D6DA1DBF6B5AB2047BDF4C1A52856524E17ABE66E38A37711FFE2C3AB
+0FAE88F096CECB55695970A1EB99491DADB601E0872543310D4335E11FC92DA0
+EC1E364D1A81CB3CDCDA4ACD219104C828108D8F75EA0990D6F39F879A58A757
+56709186B52D8BDD9205E22DCE70F81FF0DB0F73D7BF22906A9DC9A95AF8452B
+40F60A11EDB522C9C8B1473C1B7409E95C520E660EF08F99BA405F44CBEF56B4
+388ED1E816AAD6C5DFBA690C207D08DAE204826183FE0C18261EB2E51B594561
+D88BCFB02E70054F35E0DE0F31B15191867079301EAA85D5FE398D83F08F9FF9
+054E00968650A1546AAF86268CD31B5769B6CAB63D5539D67B426847A822468E
+472A5BCFEA9DC15DDD0ECCBEFF03BEB6FA5ACBABEE7CF2A4CB7D85388BD84649
+4ABAE15C9B52FED3B8C9AAAB550719309764625EBBD5434F4049309FCAF7571B
+377C4DFD355A890803929CBC4596FCDC5875E36668E891E1FFD980B8FA734931
+632D59F23D6A80FFDAB866B595A86E6EF798FBDF73C1B0F7073F1C671D641F55
+9757E3459CEFF505F1F35CA640B572F985717C6E5CA9E6C006DD797B3F47E0E4
+03AA2294E550C63651FA76B2C32ADBB897A3F6099D211A31081AC349B67C89FA
+9D2BCDAE1BA92DF9F7B8AA9035783EAFA722A038AA94EBE8453B4A7C1C875090
+3D13D7D2843E9E92FD2D55C5A31D7A0FB86A63E6F39D8A2E285AA7767EEBF42A
+ADA62726BE511F7283FB148079086AE4A4148CD3B0BA71D2366D02DCEBC34EBB
+278D4869B09CC8E191C28D212615125A7BF3C7ABD0ED0173EB04751EB4AEC783
+3E781DE01956244B1502D5CCB14EC3C1558F44BD8A7B4C5235EE01EB9787E3F4
+7633CF9ACF9D1B95CCD78FCBE8B015FADFF6961D960DFF37AC63E5FCB3BDB0FA
+455935C1DD9D3D0D6B998E83E562A0CCECED8BCADB546D4298854C3E760A34E6
+63AB4419351F5567DFA518340EA5E8DFF2C63E8A8862B992C3BF020A514EBA10
+718183819DA30F6DCF7C47D94845835495E3B69FEF796728DDFE4C9E2E32D163
+E02393F60133F2316BB88A3FDF7BCE977CD1F23B4735DA3DC10631D5716CDD84
+A9E67B3A60493AB9589026321993D57CAA1E68A8E15BF7CAA67AC1C33A5458B5
+4D6FDD851667B28F5E50EDFF7051F2A934BE94F86D5088412F5720D25A480D21
+CBD723974537BD0D8EC45B84FE50B15548CC910BD0E91BEEAA1966F3CD79EB7F
+5111A9E7597217524A812DD4C2FF71CD57EC7E368A13B56EF52BDE19E34561E6
+58AC76FC258B6CAC1AB4A5564F90761D0A9EF18FFB33D27AFAA073B3228C22C9
+E2D0106451552CDB212B28F3597D8B652F03B94DF3A980C6888D69BD8597C73C
+5F9C6FD102453E2DE1DA43F0531BCD09873867BCCB7D2A78E8205BDDDF4F1602
+6A9B9C370F9EB49AB46C6686BB5B74A65F0F7BC4A6028BCD93CA252785E8E27E
+F0ED475B95D2819629AF5C08BCE99EE7F5AD89152FA4B6C5A06A15FF077911D0
+F3D99CCAB72B83A877508AD5AA2D8551623E22B1CB39753D61099184D035B063
+69B7D8FDD9AF3515AB4EB6D423E302EE2D0D6E402632D9FD28BDC27B40157940
+809A7F580610903D5BB8D3AA9B2D7F7B6512C106267D41B3644A21F2D8770E4E
+4A69BAC7DF73C94BDDCA5A54810FD0F4CB27E4583D1AF77A631DBD0F260296F4
+E61B4CBD7641D80CB0FCBBCBB03229D6386111E927B91B128E601ADF44B8F481
+99E9941A3E9E5C4E791D822C4DA3B6DDF7D8E01FF3F4264C61E8A779BEC51DA8
+FAF47F90BFEF18B8A02E27C4F98A2413C659002232AD2FF6F556F90B634A4F3A
+220E89D77C19E9D9AADABF338EDB3C0A0FBF2995C8BD1FF35826988935FEA5EC
+C36D3994011F3FDC88581F9431335719FBEA6CA09E232F3D3723937C4EF79E04
+C1026CF28D01A630044065B894C833F83254155E92B0B2EA97F1F262FAF419F6
+7C665F1675CBE362A3848613677132FD9F8674B23937243BDA27D8C17521FE63
+7950087A0D9E678AF1814B234127353D9C9BBDC7A156F8A67B45B3D7708B9AFD
+4647790FF9E9AC3CD84D67CE96E98FE1FC45526F0B1CED5A8E6E1117342DE6B5
+966B2B006F3475210B2293769BD5119042D8D610BF2A98A8A749F99F54537A76
+BAE6FF65A536DF5C93F04CBBFE4736375CF9FE05CD4444D0DC75D5A19351AF7B
+E3708E72FDB3246E2ED29E8E2D1DE84A547C72450185FA82E066369D37467725
+6ECA1771A162DBE738F68EBE829C6F4297DCA6AC1C58072015551631C88DBFDF
+1887D5CE0726800230AE561F8B37880C536F39C70FE9A3FECDAFC92DBF5726EC
+8B4D486AFED75AB1FBE9468E449CAA33D450D68936A5DC20F9E179438318F5A8
+CE9D51AFB937162E7DDD1AA3292C17BA791657A7EE7DC44E80D363B0A0A26E03
+F6DD84E89D28D7C1C3ED347AF7FD4816B66FBF56A4A551776FD3DBBBAFBFAAA5
+A99CBA77634AC5FBA9A02B8289E14FD064591A9C1DAFBBA02F44125B931ACC5F
+B94304B22DF6D09845415B0FBAD0F206E809EB721B7D57B4538A364EC470CFBC
+3D9D30311A4C98976498DE7B6FAF7EA6385B2F6BC3F913517083EA1A03BF3A37
+28B17D9D90DDEEFFB6FED93911508F48424A2C7EF96FF5F7C2BE572C6BECEDAE
+9895E3364C10ECF70C24CF1F16C4265E4AE26E8118AD1CA54D17E0E5E1DC3E54
+25A65F2180CADDBD660CC16034A000CB321E3F55C07039A5DAE31B9AFFB2A33F
+E85C43EBFF2216229FAFF16DA8B2E91272C20A3D44BD9D1613347B80FC96D23A
+E84FB08E2C4AF42E48C6DBE656C1593E1DEC2E3C5C5719AE12B5507840D27383
+5D8B266561EEEC730072BB24DC7E734DDF6B8E725E9205AD2DA26A517478AA2A
+531AD334BC428F48586FC2DAEA9D262B673F5F3FCC1EE33C0FCA58955E739C58
+75306B3CE28A091645670B38846F56D438561B84D7DDD7FCD31A7023916E0079
+FF95D359F472198BAE4628F8097C984B094C5601B8BF3AE95BD8F7ABE1BAA6A6
+A4E073756A2140A266B01B1D31253FA57BE714282F88960BAF37AA5DFE4FBBAE
+9DC32332D7C578C5
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 12 /fi put
+dup 46 /period put
+dup 97 /a put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 103 /g put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 118 /v put
+dup 120 /x put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
+C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
+EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
+998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
+B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
+CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
+C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
+6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
+8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
+6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
+E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F6BCC38A
+2A052EC4018AE3189DC1963BA39ACDED8F0C60C83F8873FBBF0302010956C520
+A7F3F8ECD0F177EDF5F4D5522C5984A3678FF32EEEB570B69C142AB89467641F
+917155D646DAF3352E27BF2AA0746E062E48532256AF364EFC0F0AAE3766F68E
+89DF9AEAE43DE6B2E2EBCB666FB344286445FFA4714A341419C7FE51D43CF1B8
+01FC0B0071F73EA4FEB08FEAB64FC98F56EDA5E27B7A71F1F8E350BD94C093D5
+9A86175C46B78C65BD85BA347656778AEEBC81467970F644D32D6F2BF2A3F14A
+6B05DAE8858A02D212177F15DABAFB2961F2746D4C3176FDDB5AB9821C57C417
+0C8E0DC8B069090D8C95DCC3340643C68E5CFA60C3F41326579B869EA5D832D9
+85119A957DE314546187E8C4AD9841F42DCAE231C5FDDB483481FF29FDE695C8
+45FEC01A911F1390E3E3B80D59A30805601366FC0535E62E0CD9EAEBDE4DDEE0
+260B40C3F20D80944ADEBD496A4C82985FA55362CEF5AA91377F3E5E2C3300AA
+C24A28B5DE446EA56CE7173EA3A3983F8A39C1C04DC1117A9AD9EE90A6B0A6B8
+340651456ECDE5360D8CFC8D88EF157B44EA6BD3CEEF3BB89425A716D03A671F
+E2DAC845699F8213DF6BF7EAA0CCE93CFD7557629AFEF755FD9506F006789AD9
+100BAEE1F8DAFB9C55DCD2CF75ABA02841B88EACAEBFBB6A3AE4F145204944B1
+1B7EA32D8730B3E29C5D0CD64AFD23656C6E462ECB6CDF4757F8EFC0CB2DDA8A
+91B79D3F44A59B587DA59DDDFB2BE6AC75606C0A1F15CDCD27C6AD77C38CA62B
+692230D98A504D41F645E9379A8A8B3F95F33E4CC3605A9B44422EAFA939C4E0
+19EB1E3A67FAC6E7E905F92B1E7F35F150F75364B22B71B8DAFA0E995CF30D8D
+119A9EEC79606E9B038E4B4D449653B0537907789B54D8E949BF20BC6AAD3C0E
+53075AFD1F67865A1D42AB0945534D9C59AA91C7C87275E2B3024CECBAE47E64
+9E6190D0E790CE26F88CE6C0F7258FFDEC557C88F5560A756705B2D8B0B2F1FE
+279CF534C2604BB283024ECFB6AA6D1496021FCAEC3390B01DC093F7D04C9D67
+E2D77BB40E9035A1C41632037B5DB63C6302D464ABC9FEE829B742105984C3D3
+3AA836FF446D394DDC7882C3A9FF355340EAA8461CB4AA082F03E11B6034DA2F
+37FB132E23E182E74333E46ADC2CA82A58AC483FBCA5FA6A0B7CC69FE75339E9
+58350D7C0B336626ECF2BC024FB5712BA5B3F7936995FD937A4B1EA5FC4A6BFD
+050B25C5DDD3B64207A90097897FAC7F0D5F8C51ED0CD8F74D9C3C6006118B69
+0A3C80BF08509EC03A7712076C9B789B9AFCBE0848FC16DFE18C9043D2C62CEE
+21422D965A6A398D7E3880C18461D16B0805FB95F5A7429D35F707C9543AF4C3
+6568A1CD13E4D551C4D391390A9FD45D993B0A27A327B9E3E6511B3EF6C14BAA
+F972D98A7596CD6A145603D942F59FD2081EEC6978C7AD5AA04683291CE5CF85
+1CAD87DAAE0FFF00D14AFFEF3472F8413558DCE88E196647ABE2198E401ABE29
+875BBF2E2AE0AFB0C9A262F60DD9CB19F43BD16CD90B199359A01490ACA053B3
+77A76B7FB98A3E096A4C376A9DF69C8B91F76ADC634B4AFB58ED00C9655A0E7E
+A0C55508304363A82C81254D827FA1911C16D49670A63E4402BD78A1F7F4C616
+4910967EF94276B30AFDEB5724EA1F087D572BE403B0CFD786D5397453B44DA4
+A3F91FDF0789626FF3D8178331683B1CD16EBF7F97742AA3A966B8BC92E87D5B
+B529CA5522D31A6EC30BBB4C80023BA8887D87DBB8FBEE8524409A554F5282A7
+F2D389139DBE74563663CE5C839DB39F9390CCFF9AA3AAF8C713A5F60D2FEA06
+E069A8AF06B118EE22926B6AA67AC8D9E8F7B8C95C6884A2816BB1BFA71D86A1
+303B0448D870CB6D41006A017B26617782496EE396E68F8501F6B0ABC13EBB88
+C1AD1BD3C33DF6B013B8CD034F268645A2215713874D66C21EB75E65A2A88AAB
+6E83D74DD9D509F2B0D4355D528F9AD6A7EBF6ADFAF76A9220573F3E6219BD96
+640F535F5F0B154FF77B5D6097C6D13F739E9AEBE8B2E745224EF1AE4570A437
+0086BB3069D29059EEDD760AFF1D448F69669BDD37ED7FD90D5B18B055A9A1DD
+D1237817EEFEB2C4DE9F27BDAEBDC0970587C9AFBCEF71F45CD7E6199EFDCBC0
+0C7FBC2BC922289493C40FA7C624A1AEB18133FC0B5292EA905823937E82A2C2
+00081E0DB58E59DE2D0962765CB54FCF8F9FAE24ED3FC649B1B4C2B1B7A85425
+B637B0431AA42CD8012D6FB016B984DAB93E0794C35EAD838B750DB8D3D5CA79
+E89C09DFFD4FF26D29BE719A1792A868DB70004051C3F801DF00CF356A5F2083
+CEA418DDD9C73F3DE15D1E0B1FB2D3A17CF92321E155AE4940DB50DCB15A333C
+622AB7D7A004348BADDD7ABF5B941463BEF9FBB812186CF17856FE4474DF7C4B
+6261E8D0FC262334A4605F4E6AFFD23F0B91A54C83638FC7A909694A3EFF251D
+16DD6B72F4E90C159EF9E0F2084795E93D4C38606AC68D72E28C5D9AF4FBCEA6
+329E7617D13F8F81B0F91541A53B502EFE17D2776D7286BCA63A6AE78EADE167
+32F3F3929D941516A9AAF2D3D26AA900491CE534BA3FFB14D60FDC6F51D36FD5
+20D2B2C17A8751F02E90BF48B080DAC2BC7601604D97BDC0441D08D31E8DA70A
+528239646607E9AD6708A8E401229DB8DEB508BFE65582CF91506F3F627B24D3
+4D7A8BF6C5CAE1A0BDE435ECC247551935EAB94BBA6BBA5BF1DFA673F4B5060A
+0AA6018F6D67B86E5437D3AF6E9A3A68AD7BF229919881FB6FC3B48FDFA51B1E
+9AABDBC1F9E8D97ED2B1FE2D465F6D7CE514FEF2B62276AA872546A0E27903E2
+F1D0460EE43C3806EBD9EA14C41088AB8AE0DAE60E5CE0FB63A226B232F78A7B
+B6C96617C75BE615A510248A4FF3F09F7AD0EB0B104BB0EE5316496390A0DF28
+BED8A07237800A2FF3D37E3880D3602459C7BD5A92F393595D4FABE161052D34
+EEDF37EA8885564680BEBF27DD504EBDB28413CD242E181C07F2038EEA55D346
+B4431A12F580300AA1D2E12C9CEE10602D63852A26964E5523B1040A86A1B33D
+FE271D325052B0A79F2A736DA669EC660AA60C844F2A08913E04CC92800A9358
+5C0F1A4164140397FBF75672C7366128A2A3DE696901EA882DCA6EDC457D6145
+FC84214EAB132905FC7529E63022CD7E08D828E47B5C7D0BBCD171F0C0788A2D
+BE4FE10CBF36FB8DFCEB0702365B4A58F8DA9F8C24061970B47C39E0153DC714
+9EE93688EB1BB49F171364F1BCFD69B0B38BEEC512841B7B59F48E2BDF0C8232
+3CBEE59A81530987299A450478201B8FB8E98B0F6369F5FE50106C3A0AF03D98
+49B780C7FD6BFCB03677033FA56127E28871494281C0ADB19DB2D777D299FE76
+C262C2E999F56E64284C4533AF281C1936EA6174AC011C38680D10829226B268
+AFF13938517274BD415ABE48CF8928DAD48C10852C257858F2BC616499086BE6
+9D3F0A2F6FEC61CA36A7271549AD623B6AC984DDB50A603D5682718730E7D200
+CBF0518D89F46E91B8580D8E9902018EBC8B1FD4D1A8648EE790A5067A2B2F0F
+AD3A4AD02F0CFA43E612C2AE8E758AA1D80989FCD00E41487E3D2A563B2369F0
+E4DFF0582EAD6552253FDE8FCF3E1DDBA63185E512F41193533E21BC5EAEBD92
+A48DF5F64384719683608F1DE5767882784CC7B5E15B2E296B5303BBBED04074
+9CECCFD4ADF441ABE8F689B4843E9A23D6F49F93A28E8AB4B16ECA7D3FE5F5D0
+2D615E219C92538BFA1B4A69379A138E54E640119E9DB26441D797A337494517
+EFF7DF0429A7F508F8DBE974FCFBC97D9D1380BD012B2C20DC36D2337F259AAE
+691A0705BDB9394DC90A1DF5C180C033A0D139C1B12E62061E05F9A2551B7F9B
+A7A90850ECB9878A9DD62FE08100A77CF9BC4BE11231F190B741741686F48FF5
+A19AE1DBB06323E9A1BB20D1F4EC8A845FD8C702C4E9090BAEAD6CA0E188F1E2
+D26280B587334AA83E36BBF96AC652AB10FDE648B364235582169B5CD5F6E65C
+91D1224171D25026FE6C030C29FEBCC84AC1D4FDB1E027952F00658B3EEDF9C0
+E498969539211F54CEF79EA07E8BE789CB88A7D0DC064C6B138B0A08E78FA517
+A466F534A15C839B94D7643CFB51C8B0D83522479542F044B14A751D5EE125EF
+08539F8A1FE1C0F083747BAB9CEEB7940BE0DED33165DB549D8E91EFD50CB8FE
+C48BF3901D4515FFE1F82CF7155F7A441C00D380EDB2AC81A23114BF7E2CAB46
+2517D67692C1FEBC62EEBA954BCF7407E096D839C9998AAF740B2F6503B4B40E
+A85255E6AAC61D6E83E25D205DD4784EB270CA150F639078DA1AC9B2D2338488
+C0DA863DD9FED4A30C6803CB601883E95C1209D1E3572EDAFAFEB2D5B8F025F6
+84765B31CAD2D66C3AFE6417E2156B039893183C7AC26EBEF0001CECCEFCE180
+511CB2691E429155ACB128EA2E33E38434467F89F9A61CD996921C8B378B72C9
+EE97FF7AA8D2CD8797037892209C10F5947350E7DDC33DC6A01D23374CB1EAAD
+537DEBF3B575143F6BDEF20DE12B2DAC6B522F7048E23F9B22B2EC042DBCB851
+5B392DCE99C783C870EEF9586D731732AF882401E812C2A553D6DBA2D78C324C
+A653B748A155C1AAE475B5B7D416E8E4463AF3CA87146BADBA7DB13412C94949
+317812DD7BD9F9945DCBEFFD7C05BA588714371AFCD0147B0F7A5DC66E0F0F7F
+4B597E49716029FFFAE90EF4A6D633407CD450BB2B831AC6289F449724DCF278
+AEFFDDB0D12BA46B7D39F11888A50BEDAEAC715E4B880E9FC41C635463BD99E1
+4C401E5965405ECCE3AC654A2AFC59E95ED0416C797E5F145724DCD5A293A717
+9A977A438CD5EDB02D1208F8A3CDF4E00E6D6A188DCFEC2CD5BF86CBF61D7C67
+A1A0A7946A35D7E7AC06F71DE671E33EC9A9ECA21E966AB453DEBF483D36F688
+9D03C08AC0B39B8FA47C704E1B7522ACCA02C9DD0A21D47C0A4E007C9C2A6F61
+C0BD63CAAB8FB38E4D9775B42C49C33FC4A10AC96F71D2282E1A5C3CA63AC981
+3F84C84EB68C4225FC169E8BC6F0CFDD7CBD8EB98A49C1F60705E8F3686EED4A
+CF7E7FBB6630537CACB9C8A7F75DAA999BD91F88AA09F399AD41C19ABC746E83
+93CEC3820496D0C0B4EB224AE6286A637DA5DE
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMBXTI10
+%!PS-AdobeFont-1.1: CMBXTI10 1.0
+%%CreationDate: 1991 Aug 18 17:46:30
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMBXTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBXTI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 46 /period put
+readonly def
+/FontBBox{-29 -250 1274 754}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
+E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
+BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
+3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
+F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
+C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
+BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
+2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
+879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
+141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
+63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
+4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
+FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
+395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
+82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
+763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
+165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
+57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
+E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
+178DAA7C97C35EAFA47778CE03E863303582D8A9900EF4F8DA879DED54BACD7A
+4A50C18AA2ED906FC4DC073B1E6CA1E3855AD5B7698EF4A96B77DBE19A12382A
+CFA8717DE230CB6182F2250885B8E90AC42A66484A7B527061B223A6D1CC72D4
+890359E7E04690BFFA99FAB5CC9999F0873A9DBE49E33F79E483FAD72313DF9A
+7B7D926461988C23CCE9F71AB7BB63BDB2B10B3F78176380AFFC154825C9BDCE
+82303FBFC3B59E070438984C28D12E8655BBBF049125BF56DD2B0DE8C0450E55
+82832DA59EBEB001AAD86F2317460DD7ED264611B9043614221ECF
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSY10
+%!PS-AdobeFont-1.1: CMSY10 1.0
+%%CreationDate: 1991 Aug 15 07:20:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /minus put
+dup 13 /circlecopyrt put
+dup 15 /bullet put
+dup 33 /arrowright put
+dup 55 /mapsto put
+readonly def
+/FontBBox{-29 -960 1116 775}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
+27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
+5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
+0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
+DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
+71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
+4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
+515DB70A8D4F6146FE068DC1E5DE8BC57033D79919697C81395D5B94C3AAAB11
+52D73937B8F82D3E2E764DA1B3BE273CBB84E4B1919CC1D5586C21F6FC23BF1D
+82DE5A8DFA3E8F5C25622AAB9F7A588532D13C663079C8FB84DA6BD4D2DEDB2F
+84CE30D0F188EEA26BAA650B1AA18C7D241CC179AE82933C45A82BD57808E2D8
+032E1ABA37E4FD8E27AF35326011B8BD7FCA4EA71B5FDB60F7D63D0874B77656
+F289B324BE95E33A9B732669966C96E64C4840A8EDE39410E6F6F0F027063530
+B760AECC1594FED97FDAF84016D6D7CD8358E062040143593FD734B7EBEF810C
+6B1B941E0676910D0A04466C27EB62523967DA65748264D137D8ED841E3D36A8
+06761884C9AC0DE7C88FBA06B933E311EC28B17428C69C796E3F14C6E7CF97E7
+9FF2559E5D1F9EA00554A5995096075ED8901E2F45E76B2C5566E947E41294B5
+9BC17D2F1AB2C577F2710540F7235BB4569D2FEE06C8E45C8A1C0BDCA78A43D5
+7A687297D36E269B9EC59754EDB5DE481018BA228AEC200DD877D3E5DA7159C6
+50F4D7348BA64508F84DAF7FCF01B8C5ABFBE5861D4B32F9E32C7C4B2B6EA064
+F179E8F62E3A59DC65FB475A3DB61C36E43AB3EEF286A50FD5F57277747CB7B7
+78284143B3F0196437A1DEC9E61454F80C6720D8008EB945799236677E7FA331
+E091CD5D924C48EF02DEB2B54D8EE02897C481C815C24F15A7548E2ED908E3DE
+3763983CE2ED0A86B6BB97B4626F1AAFFAFF27CEF18947AF2EB40D7124A122C7
+6A6ED9E0528A29F7A238DB73B95869018D40674CEDB9A993B6C117FADE48A8C5
+C6ADAE4960C0D56F3E30ACB38CA8AA8443166BCFF6A5FC2177C6836859CDE55B
+E0F1E80605C8670AC34DC8E8586ACA6E1CECE99C53A42C5730
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSL10
+%!PS-AdobeFont-1.1: CMSL10 1.0
+%%CreationDate: 1991 Aug 20 16:40:20
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSL10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -9.46 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSL10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 11 /ff put
+dup 12 /fi put
+dup 14 /ffi put
+dup 42 /asterisk put
+dup 45 /hyphen put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 87 /W put
+dup 88 /X put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+readonly def
+/FontBBox{-62 -250 1123 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142
+08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C
+30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF
+C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A
+BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78
+5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D
+43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1
+374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23
+DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4
+B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83
+63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B
+89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A
+5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2
+C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5
+7A5FD1B49560969BF5C44F3749370663A04776F749DDD7B50674D93254426C4B
+EFE264BEE7810EC93784B7C01A7F29EFD92547E13A2C7851A2E709FBD5B87850
+4A44F08F56A542DBE072D2FBC58D9E6468E1AB858DC35240E30D31C7AC13D6C5
+7D2BB634BEE96FA0E10F842B11A789F72A333DD6DDCB1BC23227EBC406E50B40
+30AF0C48E6359AB0C46898CDAF1118E46BFF8B00F54EACBC2AC262AB898C42B9
+2E080C10DE923C195ED0A46BD535972F0A59D3977A0C4E4C413050044C486CCE
+9413D853E3FDF83C84B0A7E5FC5AA859BD382DC2D94780F2B9FACCDD437183AF
+E656EDA4147CB501BC39013529A953D6D78F640BD51EE6D1526D1D27F2538715
+2BFA7F33FC8CE7A1B811D7E4251EE8C0640097D655F9EBB15102F85DAFFAB797
+0E07D701E1BA93C6196EDE47DCF0491F102A3ADD983898E72900D1398033A2C1
+CB464B9EE9A47E7DE97F7D4ED4E99530C9A770F43EA6FFCBA27C41B4668C6047
+FD5DCECE8899E1603D3DEB282DFBEB30C8040E7EAAB83B8E78B2F7F61B7E8A77
+4C544F5ED83E5056EED08C1A29221D05A4949A0AD635D9C930F7FE8601D74FA5
+33B2F4FD4C29FAE4346FE914B123BA9CF5BA732FC430A128EDE270E3C60BD7AF
+CF54674799A0DC1C214E10BA5511B29813AF2E3768AE494D240EC647D9851CB2
+EC38976C6D8763F8C413B8CBFCF8EDD0FAE02F72C6366F5CEC2715BB7C90440F
+2D7BB30CD1F107CB2340075D2A0D9D4114D644A09003403685A7D466CF47362A
+B3187106FB1E2B32D7FE26F9231BE1AA87C8556A5421528BF5FC0478AC567DDF
+EC95E6151FB92C7986631F641E23CA968DBDDC42A5880B89CCC00F09B82ABF41
+F72B2F9F28806308176EA7081DAC3DE89BC389FBC54E60D2C6B666F18562BA0E
+32B5906EF1C2B6A31FE0946E648C73142ADB3136E7D2BE4BCC42E08DE3A5F02C
+4B8575B1A296F04735C0F30C32D3DB7423FBFE682109815234C88BE292C8F313
+F667207D842DE2052A8D3701AE71C44F6C4788AA08A967D66270C5EA7DDB61C7
+56D7BCBD106F1CF4EA7BC3A532CE23E29368899E7DE2175C4EB20802FAD3E840
+FD7B7B9956777195B646FCA2E5F4ABA05940E269858FDF5CBD236269C9FB0621
+C8224C63BC120EC8B8ECB643468C468CECAD06EA59C1CC6131F8091ECDD0D23A
+419DA3F684B229B64CADEF0AD3314C91186EC445B596FD398F41880FECC56453
+6459474EAD902F020B750E99DE425498DB3ABFCEF48305FF9B0C412ACE5363C2
+75EEA02FC8395179DF95E2A257E273F07CB0B899EC5E5AC093C9EEC345F6FA2E
+AF7A6FF8AC2786F25DFA834FDF023B1DA2C4301D807999010C5EFF3DEE1EEBD9
+F4D888F285847810A3DA48BE7B63D23D432231E1C3FD7D7F249A68DB43C0B439
+6EB0ACCE9083508830ED8BA1D9DC575938B07F07D9DAABA164281A09C7D00FDC
+78DB17CF89185DFF736892A6741CAF6B3864E92E7DE32A677E64B10C9765F925
+CFF01D76799957C8E2A4789CF754E9352C4957520A1D5303E4DFC850A5918A9D
+B90735BED913175122AAA4426917ABE09DC19218EABDE6FEF861669F60819DBF
+6A76690FE9C9CD86851FE1D1AAD0219178779037A3C0C66589ACDDB712CD236F
+DDC950DC13E099B747F7892B0B2DAB00161BA35240DD4CAE298B0EEAE5A4A2E5
+4DB38F070F3985205B2391FEDC8AF24256323A68AF8FD7A62BBA1A2F702F5402
+4EDC17889993E0D56817E6D2AE1469180286651F6C6643770D0251C8626A2A6E
+2CC25B87A3A520335B2AB1544807683BD52C3B8C3DAE7AD46077BC08E91D0701
+387312C9481A4CE788A11DF9E94A5700EA62581EC3BC2D0DDC709ADF5ED14CD2
+6B23D4480BFFD15828AA39A5E6A9BD9ED07C03F3B9528FEC1328AC1B35B5A1EA
+C0BBAB5E5ACEDE99FF0099625897168374623C391A76441CCB7ADA5B458D0EFA
+B829328D3A34C297BC605B3979C7110C90FA41295C25F84616A8F79A31B4E6D5
+B6F443022FB9F3AE6A0C23DC97F1811F50E38C254126EC2B9DD3992A6F61DED7
+02C3535B414C33DA24D5F172A6B34AA29336AB5AD10EDE4DBCDF08574BAFCAB2
+25D741156747BA56BF1069EDF0EF8AEF00C0B98860E8928DD5FA7600B2068188
+CF933C1C23DE74BDA86B3680D1E81401FE2FFF2905DDB015ED31F68F57BFF691
+DBBD798632E85A68477BAA42755C34A14D063059F88F411A0FDF0DFADFDC2F7F
+B77353A472CFF8B6C420C535288CB18B0B0CEE480DAB9A767F2F6C7C427310A9
+BB1FCBC48C194E91855E54CA50C1EEF64B1BE0F7C8CEE9E1EB620902FA40DE3E
+96F962F6E38B2C64BB774F45BA51986434C8E25716EC38E320D0914F68645DCF
+67454133BBFDD4AFFF0A8ADB82E9730F94B17964A5E8A4FC1D630D4C7A9CE970
+82C0B79D4E4B98CB3E173175CF1DDBD28A47FB67BAE582F9D072C1EA0B5A2B42
+988B173EFC21F67BE388BD8C9D1D83D4752DD5A6CC8DA57A86BEC2FE2B1E269C
+DBEAED127C4526C27FD349564F988DAF675C80E491162FDD7BCEBD7F3B13153C
+2AFD7F9D5CE941C6FCB0E585FF99D5706B3B90E630CF4985BD5CAE567CE919EB
+2DF4C66A7F366F68009E80373C0A9C386C1D30CE77A112C2BC3C59A2EBE50225
+75B58ADCB776094FCCA56C3892D8FE0911361D3FB581A7F2B2DFCA79042BE3A5
+80AFA160903B86CD46C65BC4BD9487928B06F6E387E8069AFFE9B2F784C0F722
+53E3FAE45E96D993999645621D2633035DF829279F51E25161A7A48317C904EF
+264642205EF3D61840425EDDF9B5B80D5F66D642F7C393CACEBC8DF6838E074F
+FB1FEDE41F42726CFBCC96B5BEF17EC26B27EF29087A163F40E3A1A777D4352E
+7E4E389F0685FDF4A6ACB6C88D997250104A35E879A0C0203BFC3BA7AE49AFCB
+3E8DFE3ACCC3F4A7364514AC94346332EFF06D7199CC29F017D9A21AB8731ECD
+1E01E0CC9B503C58A7093B2FE69282AAAF604849D7B916B477673CEB81C37AD7
+65B3CE3EA27E158868CF723F803409E48EE3B5B68D5116ED1276C95FA12C46F1
+EF8633329220C07A6C5830EF35E5F510F50A762EC69C0C4464175A7F8556860A
+1D8C0CA834721A33CAF6CDAFD6658B8E0FFE72369B355AD2A854D6DF4D5E2922
+EDB5DDB055ED9E349AA71B211A6C07ABD6A9184CAD668AE16F0DE68D7ABDAC6E
+1AD0A61EE9864500045F0F033303BBA2879BE36D4A52AEAF51CC1377A85D326D
+424E03664C527F74CD4466987C232AAA468048E5B517B79E4276EFE4B9B881AC
+E9BEC15016A207F3B270507EA8477A8F97E8E8B108733B4DC48505F14E93B75D
+1AEB210FA5E55F8C6EA04AA441A385E336B9FCB337C53261659A7AE9F69489B0
+E4B38ADE248B90043A6EB0DFA3795DD111931CE6462CACAD0B69B185E627B156
+960F46F9031790770D6A8BD3FC3F535CE85FDA7E27629AA14B3D97DE676EB440
+DE7ABD25EE41CC51BEC18F707D35DAD24662EA4EEAC59FA0A8F8AE09CED2653B
+013226BFFB578ABD5E2341759B229CA9D1882465784D5BCD351E3884620D0A9F
+075F1EA689A99C7F24878E8F79ED2AE6A8536F9D1BA1C07A2DC05807C438CA44
+F3E9708C877AB2BDD3F6467C39419606083598F1BD22DEDE6CDECEA07A838249
+1D289F98A1108574C5F13B25E2545B7146CD9AF5D11BA3DB3140EFCC7365C143
+DE5C87525122EC71BD00E3ABF2939DA6BCE4EE64C4B56271B393F3CB00413620
+B4AB8AA010B38FF264E76A5E74F1EBAD812BF9E7E0188F3308D85434360F124F
+8E9B24133BB853F4E64D973254E304BE6EAD60E2343DD994E61C26C496B4517E
+69F577D13817EB375933FD3FA53C9A1BF02A89CDFC00296E2A2D2689CC850088
+73E181933D90A88078AB76EF5C50598AFC12CEEF15A2BFE3C87B773B7FF1B8DC
+3F9A8D68908615F621BB695C57215308F69C069C24433349DFF17E8CA7273691
+845DE5B2B736CECA05A5BA8B3B61C04305C5CFB5E089FD4A8B9E6BAE31C4C5FF
+A84FBCB040C72A8D453BE0B263B223A8A9D1B74AA175F9AE02F2F4C34BA87263
+830A03CF5D34E060ED148221E3C617D1D4C70003EA05623C4C1F2082DC633E79
+A1E9D57A4AC834BFED02856B32DC13A39F39139D59F9637B8470C944D03A8D97
+DF61859A53954B7DED4738BFB91165EC60A44BB69D607AC6B70F592224121960
+E56BE9A190DFEC3F07EE60AC62AB28678F8DCB6A77CCF44B153789AFDB28CBBE
+BB99798FA478CEBF9C1BEDE10DCC704FC3FA0280EEABB6E909056242B7A2E193
+DCE348EC8587CF15D40C219251DAEA07854234A9EC835190EFD1CC69B3C7EC82
+AE57FEE324AA2F1A45EA3BDE5F60E1A232270C2105D57D3845A48837DFD389E1
+02293DC23B6E76AD95282017E91E7042D9734D82D46E3DBEE0CC790F4052E008
+B3792AD9822B94CC445AA1C9185466DD7D28A0F7D6A33D727A485F24E709DB18
+86AA1A798CC7758BE528C4300BA560FB89AD49AD57961E96799A1B31DEA2C715
+4E804BE9396A1AE54C7549E73B2ED2F548B042D8DED2B7C7BAA049C7D120149A
+A90B7D458D15B8DA6F533CCDF7E82D64A7E0CDEDC2D281D6B7E470D93849CF17
+2A579C3403F6FD16EF49C6F136449EED08BAFC1E0D03CBA37B4765BCA1F26699
+17E542001E2614D83877E37EBAD25029B97B94AC1586BC42A0A0C49066708051
+0DBD7B46D45A02E2FDD9F2FEFC8B1217811A3BE709F392AAA03D2F7EAEC828C3
+3C5EE95A5E273702A176ABB4B2C4BA48EE7F16348F650D426BC71C3EB740323A
+A8BEF22F6EBAADB73AD4C9883557AB33451A89DFBE25CA6C184A3C37F058C3A5
+4C6EFDA4E2B0354845CC6A38293891891FEF286712171E56FBD8B7A9EBFFF47E
+FBD889E1EA7D08F7A06BAF9CD988773FCD4DAE43FC6A9F80F1D6A56E550CF799
+3BBAEE0303933E02D1427A5842C9272D3D0A0ED94ECEAA9B82E81EDC54560F8F
+2A4C0D28B3264EA640491E24D3F7165A17725C28A6F153C742D01C7E95C79C1E
+8229B8183B8C10F00DF68899914534C58E2DFBF7087D7B6A3A4BF875F5A754C3
+B4B8713DC4EB1682B84151887B8461EE05A0C9FFD6F619B83444BA9ECE1D0C7B
+D17E96315220F7C341194994375CEA1AC7C061D9E7700B6B30B5F15A6A2A61E4
+25E6C3D0B1E13BCBE7FB89C24327AF46AC62B2EE332348B55D9E6D599D9FBD79
+E64E8BA6C960A598600EAEB080E08A0D9AF13FBC60218A9FB400D5CF3507DD38
+FE41BFBB0594F43F10EAE9CF159097226DE7706F34871A76661B6CB9EC1127DC
+09651E98E34D3ECA5BA7D695B27645AC8C16364CA380D45524D700A460051B62
+A69ED221BDA45051C1723796A305A3A7C85A62F5DFF7F7ED690DEE4C0BE2571A
+155ADB8BF7DD4E6B31AAD3D884337C1A2F99FAA44BFDA357966C77C35A435411
+2AF36766DC0BBEF0B50B742A9C9E8541C58AD964B26C47BED17B5BDD9C5520F5
+947E4B8017AFFF9FDD3BF15B2DDA6CD750E09222A3DF1D9ECE2AA6E22CC5FCD4
+C6746E58BD628558A7157B72F6370507AB0596FD4F4821A800A358BE7B62C7FD
+92131D308957E99FE4408ECDC0F48F5C747680992721F9D96B41B956C14F8E13
+FB260376C508F88D30355C94D0208D419F81019EE01A114E20EC2438C3894C79
+62096B4A5F6288116308FB98EB0DDADDB259205A11C56C6AC6C5E1C8FF45A25A
+F16596B76397BF54C3DBD0ACA1599AC886415E46EF99FD15C9218125CF0426CC
+B6B5BC60C0A14CFD116DCDCC3CE7DA6962B972AE23BCBDC5F283A807A63C1C8C
+9EDC5D95CBED7A9E1D63876A55C7A8878DBE0C66FAF5E7A680416840156FC63D
+FD8FD7FD12F32245B3084FC3532F3883DEEEFD52325439EDADE56EC1B4845CCB
+282FA0EDBC405ED2FC3B01FC93D1ABF06B64B2EF4D6FE40B6BC91D7540BDC5EB
+F3681BA084FE84FA153E8E11442A7840C6F7FEF98E346601A67885B3B0AE2EF2
+E3703ED14AB786488C48CD937E9DE8B666CD25DFC9AA9351338605D653BA6EC8
+16A18D7181B2DB084BB1D3E75C84D8CD3533EB35F150F006C6047BFCABDE14EA
+32FE9A0C1BACCBBAB3F6595E1D11D279A34CE66D0BDC09764436A23BAFC467E7
+A986D6947DE65B77BC8480B94E6F66F8B4D93FDB517FE1A6C2AE5FF3BDA37919
+6F34C72EDBD09CDA95D751CB5ADD93B422E98560EA03AFE810E1435490C19405
+C534026D001C4E2A86EFA7F342E3967059BE771E728361AA77E8C2F497442E24
+AB938CBA02C5FD0561A601BBA8AE96E8232212DB222C202C1AB4B4EDB4494CA2
+77221C9EE7810640B730DD31FFF60F2A05DB7FB80577A48513BB9A76B262EC6B
+751157FA65B47B7CE97D61DC0161877F89210EF3C9A8CEC5DBC5EDA5B9A8770D
+7643300C9C3A5D00F0FA18BCBED0295833612A57246D8184975ADF14D84C32F4
+BBF15E6BEBDA45A2E8BBA461D53C090C25BF7FD351CBF69CC904EEEF8D7802D5
+D14A4EBE6804075D2F742384749150174603F14519BAC00B220E83F7309D15BF
+12A0DC08230DBE23EF40048A77ED17D9F931C817F780C67E59ECFEA62FD4D8E9
+DEB4D1A8D28643C4E476AFB2F86FE8E5C353F08B9D0F0C10035B1737A7D51F4A
+6141D0000F04113A7FD710DFEAA16CED294E5AFC3856BB243E2A676794DE99EF
+660C4B522E5A4EDAD43C3A0A359B4B34AA9A59A6E2D4E5217553B790ADF45A9A
+7636529EF840879F18A34C3C2D5207B4D14C59E264A6415F142A7C0294597D64
+D02A28F126E774A31604FCC671E1BC0FF681082B2818792A60DAE56FFEDEE3B7
+6EA7A834D088E6D10B1673F3250D229F1BF59CE4D0AE3376E6FD99D883B2ED03
+71B72A3F679A5DBD76BD2FF6C04435D14364C4A61AFBC0D5B31E48BC631C0545
+DD3C1C0FBF3123EC3944C404D37398D05BE3756848E59FA54EE7C34D0D5382D8
+74DB6A6E70C7A5AAEC7B941B4F5D800B226D8976473FDABB34FDBFF2C6016FBC
+5E34BAA392A29B7CA9F667D609EA7A391C6067566631FA910BF17DDC0CE56F37
+A2E6A22228A4A0AE138924F09275921C8DA60D818AAB8C2B06108DCB9A85D6B9
+DF6BF40ED6E86DEC75A2DB917E605C1735D5896F29D762C77AC212994AA2F9D3
+96857C5A2F3E86FBE7E34F34D8E0CAB1024AAF59699844CECB49D7A429F4BD02
+5567416D4D0152C3D0B6B77D7104B20EE19EDB264DF437E51F4BD92D21873FBF
+3D35B2EFCDC5F146491099BCBD3B381AEE555FC25A7B0713FFB082389975552A
+825B8762D630B204B99D97E0F0062B358E1E443D65CD8DF3CF8284CF38066DEF
+3F130A06CCEA592955EA05F416E0F67AEEB690D626728426BA54BC4C4083CBD0
+F3F9A0E7EBF3B1489C019F7A29FA78F77D8A96251B66D73C7C858E2B7AA768C0
+31CCD34792D6D093643502BCB4453C3D5DEA5B577EF92D3EDAA22E90827F3573
+A811FF5C5F6697AB88C42291498BC348F4102BFBE007D68092C0057DD8576A9B
+5BD032CF7196103028156CDFEA122F9A7101F0DFB1C73D3B5605A73C1B335EC8
+7DA6B4CD39E976F7DB91CDA187B1CB4E4338F7C72873F24D5C02934BDFDA019A
+69FAD10C96BD82D12D07A2EF76D86C3082E1D68B0A4462D0635A8F15245EBDA4
+4EDBC69D510B12637F02ACEB3A1DF278C4055B98D77ECFF82BDDBEF4C5AFE2B0
+B88A9EB5333AE842093A80E2064BD36D5D81AAB9D80CAA04B55943FF5A1DDE94
+CF3CA32648BDCFAAC88E72CD3ACE65C880FD8BB75B11A8A6ED351524E1DA35F3
+13466B349A3E4CEEF0C1160B1F95643B500A171B33ADE7D55F4EEE1934952333
+2CBD044D07A12985D93FE51C93EC8F629DC423458C1B631A7364E17B07E89C40
+256DEF8A88897ACA388014A2C6969ACB9B3AE6925B4B4543BC924061EDCF86E7
+F51F447A7FB62E03A05EA6FA2DA1CD76615680FE009621148647C7C74E4BC6E0
+B34B356A3CB8947E0F775AE6079FC4594F39A4B8218E5D27DDA4583D9D5BAF07
+009CA08E3E08E407D0AA9EE80E3B0B049F37DC38FE8F7FD055CE316D72A6993D
+60CAAB09DB8A899E5EBD8AF11BBB8B2EA8E644D2B6CB4D9EED9266EDDC3A7ECC
+FBEBADD9506987DE2945A65D027DE828D5A12FB0D6AEF5D6A2035421DB46313A
+9CB95EEABB6F5A87013C3F3130DB32B3D955D22C9F3095A19715D341FD118259
+C661FC30E9D781B32396A8A2EA06122045D98EC5FCC6CFE11AF9B2A2FBBC99CE
+45925EDE91D6A964B68EE20032B96A71B48DACDBFC145B6F6DEA7F011DD7B246
+D9DBC3CC6B1EB35F471FFC463E8444F1E1CE43D3D41A113D9601C12FDD755E34
+86B8202134691C4DA22717CD3F9F958CC6E7BE20CFAE9F10EB67C0BB58E40F17
+5E3A142AE71E3619B1B61F706F611496EF29DC07111BEAFCF4D2979D39660C0D
+05A8A2BA5D2E0BBE2F522B6BA0A39B27AFB2FD2DD4666A0F895F49F7833C2661
+88D28BFD7522A9CE8EA109E1B8273A1295F4982907109518E82A156A9C4D7F27
+9B7EA2CAD89D22A3D56637D5427AEDEDA98A6D9257B419D761C8AC925B61C93D
+5E4C47DA6EFCC66A6A4D3B7FC1DF27C6F5C7919E34E9E7CA982C0D40C5D53F0D
+0A09C57FF29657A7FA230102C9487A8D68F93F278BFF94E6CFE8E5E3BA38A082
+744F9D018A6D7452D2BF0D06BB61D72F7767A4E9936DDB660C8CA18468262471
+3C81A68BCC375326C935B90D02F80B704F479DD7F030B089685F091B3144E794
+11D284BF2B8502964E4F6C7B79FC2C37197D52166E377D66AD0E7D0325909D46
+E0F8A35807DFB8C8208BA672EC21188149F3155027F16A23AAEFDD2F3AD642F9
+310D631E07655AB6885C6C3882CCC8690D05D96779CC83A117D946E2F9F6521F
+B8F4458B8E01FC30CF59ACDB52DAEAD21F7B7F490D74898F2570C6FA5B4DB522
+C077FF694CBEF398F0207C708D7C3E4F8EF42FAB91ADB4CEACB592E56035DA1D
+E8C44FE37116712D588C873D8C2C51B960E97D07651D611AB133D950258F0A2A
+D8C4557DE5EC6D98E1298B71FF08B5F59C6619AEA88CEA839A16B9C810438B78
+060594A85095D525246CA31DB045C2BEEBC0B1F8262C59F9A687951AD2A1A5E1
+3049E4BC2CF76E90956DC45670A6A7A6A4A07983758BA4887552CB30DDCFDB02
+090E12B56D356EBA8E7AEED14E4EA4C36A528A7F5105A545BD9EA5BDFD1F04E6
+C65428A54A41C5977142EBEB7F49D65F1FAB9FBBC2C283EC7AAB8562047E013D
+369A009127BAE150E7822A278BB3638BDEDE5A1985DD3081F08EDE5E0EC8C4EE
+56AAA592D3EB3BAA1CFFCE3AC23854790D0B648E83E2FE3C2CF7A14ED0601761
+E5A377DD4CFAAAA59D375499CF40DFC355D344AE50DFC65E4E5AEDC0ABB48A2D
+12DCA4C33F9671CBE7CBFF6D302805F433F581B4A6B1E4537EFE9C11F8C808F1
+F9C56321C402BA29DA2BDA3D2468CF3A26276929980D53E3BED09C5D9C2FAED6
+DBF053142E82A04F618CED7F51D09C28A1885DA028F275B85D3BF5DB6D20FCAC
+6202ED88D2DFC36D642FCB236F51B4016D7380CB85FC2306D986345F8A127EB8
+E32C7118C0F77B1B668D54FC2E8A4C70A681535A5117DB2E3D9ECD1B59A476CC
+8BE712591E1135B8E05652849F3A0737EDAA98E160D39A1C83AB9E586DE2524F
+C22C5BAB3075D6198C15F9E6EC9C066B085B532B8B1ACD16EDBA42DDA0C6E2C7
+DA50A742E55A1C4B86332FC7406BEE517373BD0E5A252763DF5886F433E60A64
+7BC6B0E70FB998C448F7C2D431249B581BF20680572405853CFB5CCAA1DE68B9
+D6AB0E0FE7E0C4D9DF2444267C6428C6D5CFAE69D651651FBF84C606282B4F95
+0C81904C77350ECA5B82128A4BD281C9889912ECB461D651652986EFA8B701F1
+4B721AFE6AD536CB1968FE14D0BADCBBDF798D11F4DC6A3EF533B3BB8A236595
+B70C4A03E6E33A6D44F93FB54A63063328305D2193E012D24E4D31E62CAE4DE2
+87D59D842475522204CEBB88D08AB0DD5DF57B6F165C693DD0AD34B87F89AAA4
+9F7B7A880BC3A5DBDFD9FD9C3D3B9DA30B132CA968A216BB52434FD3FE77BA51
+A70210B1ACFD28B81BDB75F97712DF6F7297F34A59A393006A881E2B3CCC3F7B
+B39C8D6E99AAAC39B071B7F383F9E8EC407118C5DC17BEB0D737059ED7DCE758
+83EE43E0514015D490C2271FA5463B93EAEF9B3BD3C88CD74A19D9DC95660C96
+0A38B26D3B023FFDD27FF6E9D98ADDADB54825D2B555206F0E7C889DB55347DA
+9A4C9519C0C8A8D3ACDC06AB3069268BA83984376BFED1CFE3B1417845911CAC
+5428A0800146CF549EE78C263F36DDD8A04A75BFBA4534A78412B7C2B6EC47DC
+49223DB72FCDC5E88839709D704C196133A3032149AD0AE29950C8D6509F877E
+04B849B5AC09421BB33B658D30CE6E04DA1A35862043BDEAB7BC684E1A6DE8E5
+CAF33EFC866D6D075C269693690750D526B801DBAF5099A04BD3E911135B118D
+EF01207599588E25EDE475FA428E67AD93FFF63682A9B1F9ED495C7AD50EB96E
+836A965C2B27CAC71CE79170C4F56E0497F0F6CA9041E92E1D01078FC922DDD7
+3F79147EA667173AB4E64AB4E3664054547AFC2E2E1382FE059C37B352120D69
+6A15BBA8670CAE7E310B03C2A4B12FB33617C17CB9D992AFE2DB2A1BC1DA806B
+1B82DACB2C1157A8D3F5D86353C12F474078418FAE22EB4213FBDFED904F0156
+C17A9C5205DE359694C899E992E40C2B54A565F4777C0147E864F25FD4C487ED
+6CB1C1BDD93702AEBC7278FD7E62A79A28F7E3A16E763F154471E001D21D4FE3
+2FD8ACBBCF301995528042E861A9830ACACB99669EABA851FF2A8609D30B9775
+A048BEA2E1B538D9865A8A646E907407EEBFAB32F76BDF132E905764EAF10891
+907EC36BDB2D8F89CDCF5365D2FDEF131B23A8308E05A696E5FF6EC44066FA26
+9348C4249B64F87D71C552F9CEE2AD126AB9A9B6FBFCC58438C6248A7C0962C5
+6D7622CF440288F906566E4947699270D4E5BB1E9D80E10C17A7147852495892
+707F47DD09B09802B37B1D40F848BB9C732941996EBF595184E4F484BE6561EE
+9BA94C00F1AA76BCBF817C814CDD4ED94F025A31765A118C75E6F3B2C6C2767A
+090D5389DCCB5A0ACCC67CB1B1DA2EB5B4B3EEAF5A4D7F390BC83A0C1B2B0910
+C180698E9E7F9D288C3BDEBD37D74CB5710AAACD2FAA4686A9A750064F6B306B
+F86C9F4BB77ED693419232AF4C1D897A6A5B737B41647A7E37350BC7853FBA31
+C5CA92ED67367D9858919229645A81EC6E30BE97FFF25AE6FE8CB16709D4550C
+DD5B4098ADD0D4D60ECE796384C007203A2B00595CB4608AB8C265C4E67FEAAD
+7B5AEDADDE94CCB6FFC545A9E3C47B8B911110EDCAF2160135492B722879C62A
+6A8FBB02BE4AC067194682264771595601859CDF549C3BD7A3DBF7F681D01F2A
+1FF5329CE52A00E9FB7F76E7F50A2B37AD1DF467A7B63EE8555FCFEC2A8C42CF
+C2297EF18EE8D49B0FAE5FE08857F0E0424FFCC5804D3063715F039C7F87396D
+579C57944840382C2A9524DDA1BB3C87866EF386581F2B1ABC18BD49490EC9DE
+5D184B752A976528892A0401AB4F165BEDA7597236C6A5433D7B8486FB007DF5
+A0A8503322639EA7916CE8D727284E90CD3F657E07C10370B3D8708B26AB933E
+DAF9BC060C2DE8345802CB0A3FF962FCA229295E15A02FB35D15476EFD85EB05
+AB102C504AC86BDFC3613EC7E947D5411CBE0A66AFC012115334ECA15BB0A353
+EAD3C33090046DD5FE981BE10A7EE6FEB747178AB6357EE22F6BE81D0FD617D7
+ABBA0F7ED0CB5E14F213A96854FE0FB0FAD0C3469A9590BCF9E7076BDC8BDF20
+933DE9DD6E99EA0C7DF1D28114B7EAD10367BD28A82314829E4FAB344F3A8882
+080BD2A920FBBD2227D2DA1FD6AF21E538DC10E50648535187EFAE304D0F72E5
+0746BE1853D59A1FC89BC3847BB8A0EB5A1BFD83B6E465D79012A80E27AE7BDA
+590BCDFDAA602DDD8D596F3B57490A564120EAEBCDCE0EA0000C572266CAA363
+536E654DEB595B137CB03701ABF08EC994B2D48622DCF99E137BB27DF2FC85B3
+FFFB9D781ED87B39054756B9B9AE7A13978E8EABD8F30804031CF77E698F8852
+F26626A3D817D3A3234475A80C1768CABAE431CC6E552596818F9B47161B8C67
+CFB0618039025E0B76E95B770BD302F3EE622C5E0898B34027932498345DF0D8
+32C65257F9DB75D158EF0081911CFBFD8E73BCC7F254C17C0B72AB39CE7EEDC8
+8ADD52AEB813C016D982BA5F10268E28466947C765F65C80E2595B2F732D4E68
+D69A757D8230F6ADEB79D31EEAEE284EBEE7E40A99C422050B338A07564BF7CB
+EBDB383FB6E5F632A972450E4F88241F4C7CA492A860822054E41BEEB3A59E7B
+6D6E769894FD8FE20B47D25F43809077696F516DE603D4EF1D683FC9895B9C4F
+00D38E738BC1899C9403F9BD7D861B0FB18AE11BBAF4438303AF6D1942A41DA0
+29FB10183B46BAC9AB9E858D95CD54DE11D3167B94F0642E89BB08082A3E589B
+33797A5B481669A45C76463B69BB4EF884CE76812BA488BD8A32DEE0AD6E9762
+10DE07FF0216F6B88AECD07E5A1DFE60801607FDC4F03D9A5B074E59A2EB23B8
+D85503FA1D12A6717FDC69220E31B04911E249446AF19FF550B09DBE833AE75D
+6BE48EB06866CDFB7999E9FCD923E5CAC8286D638C643AC161A80B1FF87A44AB
+6181929F69A6795591D319879BE5999F200F0556650475472F9863BE3525F6B3
+9DE2D2CD94229A257602F4956A0018A4211324E3ECEABE650EEA36D34A77E5D3
+DCA8AC728A71377A9E7A9B12E58492196C852303B9DD4EAE6983066C6ABD4D9C
+7787C837EFAA2F9D3FDE032665323585D4450A9D3E8C7E8FB2FBC87234CAF228
+B5C1654EB2B36AA06224C22A33C7E0300ABA12825C47D2F20BD71C03D546E4FB
+2FDD37D7069C6A8EE431A45D810E52CF05A478945988DF389AC0DC8C807CD51F
+EB049AC262A09D5355907421A5D3A5903A67C79F2F82BC62EAA06EFF45872229
+1E9AE5A761FBE2BAE8276314A1ABB109FCD681A0E339182720A41099D77C47EE
+7B6586829BC6728C44BA90D2A259130B78EA3648EAADF62B501D8482D7A0955C
+C7972E5C22435AE131CC837EA6481371E79535B455861023D881FFE838FEAAEB
+CA47DDB85DAF8FEBE91A5897CBCFC4E2E49213855ABFE6FBB558A9E27AA46244
+49FD8FABD897417E0008B57675283EFA92780046E5A1D41B3FFB3399518EB86F
+4D110EAA5C0AF45563103B89A9388929E719EF8FE2794B8BD18388DD66F2EF1E
+8C4206510EB7BE863F23D255C45B40CCCFCA951EF67582C00AFFF61C2199B046
+5D7C463F3AD70446A29F899E95EB6898721C737850E4350FD3660BE1FF7B317F
+E2F170120F972AE9923F79D453B5E51845E6264A41E1CD7545C35BC1AAAAA545
+BDF3D419D9D2E6B1F8DC295004689506BDBF6BF47BAC17CFEBB565C41700E784
+70BA1163B66A4FA197EF0D2868B1FC46E0E8695F8C92BBECE917C792442AE284
+A2F859DE93424F51D52D5D1C00DEF99BD1F1160EC2F94F84C3BB59C1EE56CA69
+A6616AD396B9469FBECB6B4986EAF6E439441CCDED87607BDDA10757BD4B439D
+28ABDB82D4CC8D4095831509F1087252BBB1DF0557B2F6275F7CC610E8742C01
+ACD9F985641A3C16A8BE1B172BFDFD36115855AC40A04C6C26060D6D95A10707
+B1F56D0DEDA7A48E25D9281790D3A2FFDDD479F24A3A0E68FD097448CF500597
+B662EF8DD419AE338D4C81859547CB86FABDD162907034D2ED814895115E76F5
+B8BA5DF352CBC93260002C3D72015180067F1A74ACB5A6BC48225E116395EA43
+65C12774423923E4859AF3374456F204E0FDC9460E8EE2E87098B9E7A3977992
+F106D0A8C542DED8B2E4C67527810CD19E03275998684483F33E9A6242ED0330
+EC553A673B1B34C89057D5972BE82AED5E88B5619C748DEBF6EE02489C51D3C5
+6DA3478C65521B8FFCADFA3E569963649019CF46AEA9357B5EDBA74A43A4A199
+A132885B74D5879BD2DDD2E444187737BE8CDEC939500F1CFF538BC8373266F9
+2E91BFCEDF58A2CC1F197EA1A941E85E021AAD4F94AB54986AA42E138BF54E26
+78BC33104EDD4E86565FF8456CD151FA2ECCEFC15943B7F0F23C359608D48D79
+B1BDE2A0308CD359089009E0B39CBC21FA4B337E7F502595D6B22CB92C096709
+EEB2B4D1D8F697EDA69C13EABAC0FAC550C5A15D1018B6DD4D740EDB2F9C700E
+9383D7307D0F6CB98006B0453EEFF884949DE1CDB38A681B412E2A98312C3A8E
+FCDB7080BBCAD61746027D3261389CCC55A6159B18B3B29B36C5071846117431
+C67079CDF2E5DC78EE02F82716E31D6B63AE901E7BFA1EE86F3858FBA107B735
+D42155673489A7714B683D2BC5D630D492F1537823001E70EF18242F06F52F38
+80901A5EF067BE5F2473DBE171E8D85A89796C98074424D384F01DE987F5544F
+118527F4C19427E8338B8CC7050DC48AC4BDB23C160EC2918EDD2AFD17B4DB92
+7B9736676D6AC40AF23A6541AA47141C047D0BFECF7DE8BC917FD34A13F2EB7A
+28A0EA62137A8A1CE7BC5F1439242084A4DF8DFEEF495D308830F04DD7D2286A
+499E3802995BEE8D3236511C1C2F6B5CF4668857386AA2AA42872E5769B49F66
+61F058103691825DCDEF5AA4554F4DA460FACBF69DD8956FE3F1766A72143EEB
+80D4F8D3A109C2277C620322B6B33C62382F4AC88E8A49451914A5FDC69E33FF
+3C65D1FF4A193AEDCA633FC5BAE6D10D63A98E0A2596B6E65456327E59EFBD37
+B5C45EDC86A4BBD9072061856C4FA228250640406F9976645171978F6DFF12B2
+C7946FF5FB10F4532F4A780BA48F5B203B223AF1043646A484CF7B4DB3628B9C
+B06DC7D8847A42F21328BC90A7BD8131B330D9EA2F513C564EB8B4B0EB3E404C
+13069D6ED4599EE4DCCD36A4178007D1AE551FC0863FBDE1CD639F05484598BD
+33325BBE61C5B10EF6A89886D854D6AD643005210262770A6F4D92E7328BB00C
+9E2D4DF7F41D941952F9A08D318EC90A5A6E0EA95DA7F21BBE72DBEA4BBD0002
+C7677F14F2DEFA91794674B4C06696C5D11C1350CFBD4F56FEDB1EFBAF120B6D
+D6CEF9ED27A6BDB215C4D25A0973CDFFDDEE574D4BEFA05AD9EF3BC70129B888
+84B6160AA09A3C2DDF44283511B376658B9985732F27A8B60CB60B87D8BE7383
+6A2EE83043FB5390E0CE89D7CE02E9C0B90183E959CB233AF3754C137962563D
+253B70B07A45DE56E476437DE41DBF7D178A902E899021E822C511CCD4EAA212
+4687E475F6817C093719800AC5E9B6F6F80C7A275DED35E7E8F35D365C070654
+DC5ABEC55536DC085808CE8B657711B9CE5F2347A5F99808EDFC577E587A6878
+DEC190AFFBB5E443EF719E72A8B5541EEE670E90B36042712FBB0AEED585B70F
+4260EC637590AECC2407A7DAB5D789AACC819C3460881FCBD0BDE3DA20E5A62B
+3B021CAC46DC9557559B483AB41ABD4B0EA498F483730454826891EB93523F32
+C07794BE2DEC3A86F0ADE128E9FAAE879A961B04C12F1F0E65CB869DF7C6A79F
+C7CE635163CBE878B3E8723706AB83A9334F4C67F72D28BD1D02F9600BEED3D0
+B4DBC423710CDE7FFD92C96E5B80D79E2142EBF216F4F10A857A744DC7BCFD44
+CA57CC9ACC7726B1A8F09039F77F0B1CD29FD64DFCD6A179961CA869E3AF0A63
+C1D1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMTT10
+%!PS-AdobeFont-1.1: CMTT10 1.00B
+%%CreationDate: 1992 Apr 26 10:42:42
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTT10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMTT10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 33 /exclam put
+dup 34 /quotedbl put
+dup 35 /numbersign put
+dup 36 /dollar put
+dup 37 /percent put
+dup 38 /ampersand put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 42 /asterisk put
+dup 43 /plus put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 58 /colon put
+dup 59 /semicolon put
+dup 60 /less put
+dup 61 /equal put
+dup 62 /greater put
+dup 63 /question put
+dup 64 /at put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /bracketleft put
+dup 92 /backslash put
+dup 93 /bracketright put
+dup 94 /asciicircum put
+dup 95 /underscore put
+dup 96 /quoteleft put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /braceleft put
+dup 124 /bar put
+dup 125 /braceright put
+dup 126 /asciitilde put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
+38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
+D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
+EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
+A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
+F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
+4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
+6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
+A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
+E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
+1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
+452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
+8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
+5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
+DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
+BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
+741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
+E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
+E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
+D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
+C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA
+726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227
+CEBEF0C9440DC034DAD9C19FB27DB399BDAEE22053591D6538587C768C1B7B0B
+7D1E222D2D8AF3A6473CC4C0D6C3E0DB49068CEB8C9BD1C5CD486A50DAA10BC7
+7D6286142355E3F21DD254E27C00C442728A0BAEC9D3F17AE9CE320D365152E9
+EB0D5E3874F2BCEDA98521D23FCFC30B4B69DAD2ADBE80E5964ED0ABEF6C73B6
+DAD30E2C5061E3747FE536E1A5D190D028F2130AF608F5DDF9DDDF1E77DC8437
+ECB3EC93B33505DF47884DDBD1DC6BBE4098DF04A29AF6FA3AE344600D0AAB53
+B3820DD7ECB600A3B8001C51AF2CA7A39AE1485A087FD1752DF68F55B52B4DA7
+48030F2AA7E570B3D56C4EAD367B9B73FBC0A7356253233006178B9A6BC19081
+B815B5988AE76FE6FAFD7AC239072B1106A3F509381AAEE79B2F2154CAC4727B
+D199CDC8B4D05DF4BA006982512ABD7539E28D937B0F87FF79A3F84C29ECF943
+A8DCB8BDF8EA9E7A0E7CD60BC2308C96B3E889C797D0FF28FF4847016B3DA141
+E76FC6BE78A6EE9CE07E651FF86E720A1A1F075972D36E5C55162E3FE26BCE3A
+814BFEB12D4C5FD24340CFFED499C7CA183E57EC4F12CFFBE3291D43F7270575
+C6C3306F832EF182ADD0AA14C4D8669A17C09F632406AFA195F90C4DDC39779E
+EC0A77E590211592D6EE19563963225C06C2F13265EBB5A6CFB7C17D9E77650D
+11958305727AF662AE73AD0E3ED5F7E7086C5A0C3548A8129575980B06C715AF
+DD55C8DF869BED0A7883491030B1A7E82C5EB04E5A7D952E716DD8F2EF6275EE
+087614CFAB55FCE2BBECD7E8D9C90FD8359E929D5E0A416A23BD58158318B4FF
+87B095EB63F7F052B3A77F136FD66EB2C52BD46CD7DB3091A4B78A607112B12C
+4D171B2A00B78B0E1C44B0D90C20D9244281F5123DC1F6063F91E9E3E48DE78B
+C862D848BAD073A4FCB5EEC9FF54B5AB8E234CCC3C7439C62ABC4A13EF1B8897
+ABBF21F900C564C9A305FC36FC7224932F766E6E72C2EBB55953DFE2AFC2E3FD
+33A0C6F0FDFF086E9FD796E7242596AE85B877223532667625E371D2156E4C04
+0D7FFCD3337B93DF066CB6FE1E13960719EB7CB409EE805C08ACD2C06303ED9C
+E34C898787A43C1B428B896551C6FEB50A831C6F8CE2073EFC662EC286CB7555
+A3B42E58772E82FEE206948B8C439FEC5E4ECB9E11DC3A4CBC7611E30890E408
+637A01A2118441B4F9467A98BB2A1B03BB2F5D8E3DB7D1D15C188D9E856088EC
+B762F07B1C06024F7EF53A2FBD60C0A1F4C0275D07164545250ECEEF8CB15B04
+A2D8AC44DDE818C4E3CBD2A5FA0FE49750886CD7CFAAF8B780255F89DF7F4F5C
+BB594FE7C1597DA71813C2952AD3E811524459EB71D29696B450C924B6A5C843
+8F36A0F1D7DFE796FB9564333666D74AE614D0D698FAFF20F83C86524C894BB0
+272221C060544F3B653CB0E4E4F82B20D7530B3806E6A5830852C58070177815
+E287C847F19F64E854F1463C23DDD80093D6FEB8BAA22C5F05C21F99FBA7193A
+EB7CD49CFDF4308C6C68CC955A45FCFB54FCADA9A3BFBDE086B057DE88BE335D
+280F5338D7E66AD39FD08F9B55884F1F377FB6869FBABE3EAA4B7ACCD85BE672
+724B4B8F236B0889B6E7049CBA558A89F17863E82DF145DB8C7ED1F36332DE23
+3C0053B74E850FA14F9EC9EFC23AF18E153CC96FB0FFD910347370E57F0D81E9
+4A83E2D189EE5635E85A2BEAB5B1CB974546BFB2FC2ABA1E15DC0EC1BB3AF1DB
+B2F93538B92F504CBD7AAFE36F5F3AD45EB16378F169B17869FE81464CB826CB
+400D2F5441A496B6C60A4F15FD20ECCAC1F8F91015E7E1C1A10B7992A1554E52
+9FBEE905A3005336E49CB04BA7223F1674C0BBDFA06ACA34F7BFDA56906E04A7
+4DD79EC7E79B021A5008F3B1E04712D689366F520B0FA66A558F957011992728
+561BF4B75C2BE07C4024C172085E51CCC5CFA439F570297154CDDBB3AA25CD6A
+3004B936488851BA1E814260C06CD5479DCAB1A6AE21A5F4563024F973D738B4
+0DDB6C6DD2E3AC21B4F6D95CF9AACA782919F5D3E613D61F3224A982AF485C8D
+EA0037410EB70AB7D3EC174C6D5DE5C9C5A1220EF7C2B74499ADCEEFF077D1D3
+50C1124535F88C3C3F66477E42F1932665AD323E06B398D2805B9CEA632F5B1E
+50FA587B102A35E2F15EC22DD66E4DF06A3F4BB717A3ED7FBBE2458EB4D896DD
+AF00D1BC71FE1CCA27890ECBF9F0AF01D3E65CAA29427FAF06B3BE1E640522E0
+73B213D04491B93DB29113EF72211E31F4C5A7FD58451946CFC15FD805112FE2
+547D1131A46710DFB75659A33695FFAF3CDD40AE5260AD6766DA81DAB0A6E96B
+E89D57AAEF32B5EDBBE9F7CC033BB2595CA3FEDA2ABAC8E5395EBC35BC112FE9
+67EAF1F123228538091483050847F8FB5194203609502D3A09CDE811EADC18B9
+F039593782C27EFA7697182D6367E88E326AD5622C5A457FE2644FEADA88615D
+9DE3E483BFD9329667953CDB86F9D2F0D4F02DAB8A98FDEB1D17CAAED9B6E2E6
+0C55C1FEE25AB98FF59FC235876029CE03E4A713B75B3163BE3B2DC0D4472DBC
+473E10400C0F57E627AE97FD0C1CB0F78FD8E2FA831A3D2B1C2BB3F2D4E812A4
+194C8732B0C525361DC8480CB27C30CD4DCFF01318D2EB4F5234B4A42EA8C23E
+7B3EECA41B8E4F54D5458B37EF0FB2F49EB19F4EA8AD2B53820FA36E93DD309E
+48847F5C01B1118ECE7D0186E6B8953344EB775D655AAAD7BCDA642EA2E39A15
+855C027CBC0E3FA752900EEB464E2D39404D1B85072B40834748C6F9C74C5B6C
+3CEDE988343FD984CFE4B856A481E60E2E65D3BB41BAF2FA80AC0BFE381071C4
+573C6ED65C524FF777F34D82E9661E4A75E3878CC77BC59218244612219C5A92
+E95B90EC2C38614665550026F1730D11162F19D841681C04C401E102C047541B
+97B9264D86F47E25A347696AE5EF0FF3ECD9BA32C92901DEDD816F7D73ED1216
+0A98771892472CD625A8F7F19DEFCF5CA2AE57F8AD3898F2C1005B187DEC6F2A
+A31C32720EBC934178E0E9979013B3C9AEDA4051DF63D8C903A399DC88F83DCB
+A73F1B2083819D1BBEA5235F8FE1D098F32A2BA6274424A99A4975FE4BFD59AD
+79B40A8003CC0AA728EA79D6BDCBBD73DF45B7918BC099C5BE4A068BF64A30B1
+C39442CED98AAE1BD495F6CA32D564A72E3BF753B49E4178927E4BBC0F06048F
+96DE7C30AF580B0BFFDB330B3B87D7F6532A24F403680BD9F15E758CDF04EB94
+E83C7E644FDE5BEE7CE73EFAC75669E41BDFB20A5B8ADE1137378DD8102A0DBE
+19499A623770417CBF5211395A6BA9F4490F4707A46F1F9B3FBE642DEA0CA053
+9ABC307B1E71DC2B069DDDBB4EAE378BCC75AD61DA900AF8BA6DF0E27A8D2258
+DC80205305AB6ABFE3726703E60869BFAFF1874F3C0E05FAD9C05D7D89ECECA9
+DD2AF5F777D7514208697E712B52448B364D3ECEFD8127043DDC9D0757B7CC37
+5CDE8001D007A6E961EA24D7FFC92410F3B13A32946F12A50DFFA256249BC8D7
+C1842FB84AD51B41008EC4604F6B70990510EE13E6DA34F864A572D99A13FFC7
+3609EF2BB1FCDEDF37A6018248C545E086EAD1BA1143E74AC60B684E755E59E7
+36557B915F92EF78FC177621D49F777A2AF39F3C2AA6EC74750AAAE08BCC21CA
+A71CCDC91DD45E6050D83ABA49ECE425B55EEE137C55619037F1C30530BD0A6E
+CD2004B6A040405064D7E87C55536680364E09248BFAA3FDF95CDA0708E55F4C
+F7D0A92A93DEE0C7B69638F171B28B7F854CCC6EBC6AEE14864BF5144EA36D46
+A9C297225AB0325E28EF6BD06D7E40E3A724EA1E50C4C6163B195CFFD5DD291D
+D7BBE9AF4324A69394117EFD62F08D6BA6A8F0AC3E2353492999AF28FBA758C3
+A50B6840CC72054355E6CBDBD86F683537A4115049BC1616BA35C2B0B6F5CC32
+3F6831DE4E6029310738DE23D36D2C6E82F04EB675FB89789F74AFE3B8854250
+51812FBEFBCF162947554324FADAB765C74B6DA89F60A734076D44BBE45263B1
+3FEFEEA90EC7948F23F34D4049087AF6563692417DDBCDD5A9552A373C2528F8
+0318D3C0669279F292127CBA40B0ABE08A1476BC9EBFA8BD5D622BC5CE7DBA20
+C689BDAF50D5B1EAA89E296787CC53845DB2BA54FDE363DCC98A7BA256663869
+E9E02E09077884DF1A2A41AA698B7EDE8DAFA621B552DDA91AD1E671D636FB36
+91C62B4D2D4112F2C169E0023EB7521F570CECC54ECA5EBA462049AABBE2ADEF
+E3234BFD71B26DFDD9D34DFA69E5E80FD90406E6505A6798F030A4B5172A7BC2
+C9B765A86ED55C0590E0432719BCD7BDE7CCC7F6B33BD467063D886276C8879D
+E04897A4623111C14A1EDBBF69E2FEDDFEAEB2A785C6D2F0711DF4B93AAA291E
+7F4E0CF9CC3FF0D31953C594DAD014097DA02CBD5AE8828C7E7B5BDA09188B05
+0D7263F164E1E78CC430ACAD1E8FA71001E9BCEFAE47C79846916A5F819CA366
+5734089BCDD458CA1A9E8E17BFF357A91F9A7A8A6E1DEFB121353AA80F1906A5
+AF7CD2E59EE6776FC0DA6574DA0DE522918CAC4E566F13FB9B64EFE79F3A3BC0
+689E3B0676741C90FF3BF85C7A0FA9716F4ED0E329512B66BFB8AEB56C3DD6B2
+24F8D6E23751A8485F7EB46719E9D22618FEE86D5E01ECCF4C6E74368A8E9B49
+245D80E7484DFBC916FB2447852B36EF3F99A82B6C106F786707D7689DCD7AEC
+A0C51AC1A3F67034C16B74994403FAE7743BF02149BEBEF554814BEF31B79184
+3FAB4D2C887E1BEE81B465D12DCDDAD03DE5ABE9E763C440B2CFD42FD16D96EB
+C21FE788C8C2688F79F148AA7090BE64B0EA710D376222FD1590301BA9A2E715
+D33B8C1D95F2589AB0EE476F7046537E27DBBCDADEA1E7357C9D7FA92C2F93A6
+7BDDF58A44966590821023380C97CDE37EF6D449E35EF32BCA6E69DC8458511E
+8DC8AB63171A6018AC9A334829E5978484C4C6E917A5F1C254E6669F4037C691
+36980250A80673E0F18C9E0FBA1E5CCA3BE30B8E7B7188062B25F8E1E16528A2
+F217C18D6A1955482E5463FBF097ABAF7314E449C6FEE56E2695407A8AA9648C
+61AC2BF3B2D9CB6317A9B16CE931D318C8BC9676CD908505568C197D90C2BB46
+06431C999EB68C8216409E4CABACB2BB34A05B697B9DD1E91471A404B4969519
+E25209EF4EDD420944BED17B18DB3566FCB8059699FE416789191EC2B35086AA
+2E10C139E3C9FA0A535DEE9255A867A26656213E85851DE5F51F9780D3A6E572
+F1F5CE64DA176CA810799DC1C60A8FD2A5ED42E613021A19928EC4572059B2C1
+EE441E79CDF7DD4AF7B6E3D3230419ACAED329388044B107DCB4DE91B71EB838
+904B1F969738BBDA064FFE75C6623639BE9924602DDF0C166B433B9D54ACDA5E
+018680477FB8F10621FF32319E58DB672D744959A33E7314A1B3CDE0C038F7D6
+0C8A195AF191E36B0325334A711CD8E25D9C1D257E46A734779E486567481108
+E0281DE96907D460546578DE83A0A01A9ABF64402B48DEF739F4308E14145753
+719CEF720FE5CF8DAD7845E74D502B69DC18D172C3A27411259B8042F3FF82C3
+B157BE242C351830255CF0EDA96577375A70657BD9A2E9FFC54AF0AE563D73F2
+E510279FEF48D79F5F7745DBB492F1D74DA738E6A4FE4364799B5BEC93B4CAF6
+B06B9B8C8D164F8FA1FBBA693204064F2C1806C39910910E02ECA8D092558CB8
+33338B359D56483B7B99A1D8137204EC1AE70ED3D75881FC3B00BB9349AD934C
+81A9F285312FDDC77FA923B18B1873D288C2AAF2E6D0AF90BF25A982B843789D
+5662D6A2DD58E065026885601ABED4B09CAAA3116DEE6B430B15BE0A121FC1BB
+FDEA5A501F0798CFFFFEAB5101E707F1A00C8E014A3561FD39972EA9AB108EBB
+960AEA7FF60C301AD6CBFCAA7D35CBF6F8462A4D76C4FBA6F3DF6BB762DF7900
+9F69529AB4EAF96C2866444B257160E8822533A7A1240C83EC18C364F577407B
+4CB314678D2511735308A1660AD94B8B818CEA4A3DC00C5A1C978F8BB4E0491C
+49328F6CDF95BF620AE53056364423841D84418B23C2A447B0CCF8D8633FE2E8
+4A4AC1C6C74627EECDC994059F1BAE9E6B10FA80D767B3FE97BFFAD413DCB0A8
+495039744B48266278194D60422D6E7C74D0DB45ACF217797D0C0678EEB60759
+6231438CFEFB346553A7A447B50807EBB6E885B5A49CA9A350EC4A8C76EDFBB3
+A4DA1C9E3EFA193CDF08553302998F20055C84420A4C5252F764CC4B7A4BEF6A
+A09170EC417B296DD9E2301CD8EABE4A087E648E0525A9FFAF26374C47FDC123
+82F18C9884843864F418ACB08041E7896FDD395225532460A8194A8DB4DBD824
+1C68C6665F85059E365EC0972EC6465E2D8867449907DA6692A021F026F437BD
+D02654BC11381BB6557663E0B0B8C4F2FF69E4776F4EABA69311BC1AF8155F7D
+6D3A418BDC912CC7CF1A4BBC8A1376D8B4DEEB6585416959BCA4AA08D4520C33
+EB054DE53140992D0707210593BE62B3659E3E493C4562C2E99CECA143791DAC
+679896BCDA0699E405957E17DDBD243E65CDD7C9C8629F29A2078658746A7779
+0F75BE24E2DDBB672B95F26366BAF036B3C23BE4132D7362E76D4183A469E0F7
+29174711ECAF4FD9A923E72FE58DF2854C5537E3626317D471D1E8A922C9BBA4
+CE9163A4086AC4A231C2BF35FBC39A5BBCFE41843CAC7D81A054509D31572BE1
+596E0B0B563DF2BF0E57DB4943DAEE35CA26C8433FEE4FC61145C77F65DADE75
+62DA18DFABC7F4194906F53884E62E77D8AB3E099776AB93B2B4D0C98FA44C71
+597202A2643942795EE8CE098FE26F1AF8134F1E75FAE18D563B1FF43A511C9E
+EAFB9EFCF61490A1A4FD2CF354927B72C5EDD5D62B2F3F5006D6130562A13BCB
+1B988A994A8D68B051A5A821CCD5D0F8D9D49FE7CD04EECCFD7A554CCDFFD77E
+27AC4AB5BF9FE40F90EBD066C483796CE1A364E95C5E0CF2154834760522F128
+B2DBD1F4F73347D42635B2875A23597C35A0823CC6F71E49598125411BC9B2C2
+72470D36DD967C947AFB031BFCF770FE50551A134DF8C5D1AB1F09819569A57E
+E23D4E87C0B52CD02B0A2E3FAA7D27A94359E82AF047756BB769BC5950A75207
+78ABD49D174F2F69810AFFA9336A52D6B93B004DCA5CDE58475C0210E0BA1D20
+FD4FFD6838EC56A0922472D4C4EE0CC481574BC30618179E733EA40A48847E14
+A75BE7717CC5DDCB5B0718074EAB6FF07CFFE794D335B3A13EB968EA8FC5B08A
+13B38AD1C2C964E4B07E90B9732C458216B028E07DD593A5B767A2B415EFE7DA
+951FC07800F11C7E2EF9BDD152BC6815B7F32117F49FE08BD79BEB949003512A
+327F3F8FAE1767E7842348BA4373649F1A21DB2C56C081BCF9FA4EA86C8DFF00
+FF45C4F1386CF8C2C4120F3F6019CEBB639F2D272D08C1763A470D4BF6330DC8
+43C069A6333113C3A0C93471486EFE9BFC02B760C7CBB2E9156087D09EE8A178
+5EF50B34994094C3F0015EA2ADB6C920F4302FDEF128711994875551C4E883E2
+DDEFFAAE11F2234AFDD96400BB69C1B4E6EFD75734C586A10A54A98E7D790F28
+DEF7C7DF61FB23BF91AA700AE585EBDE74E215DA49F4ED466F46129022722086
+8884D8E026F35C4BEE7E866DF8E0846D5EC3534069B713FAB02D4B4EE3B44E1B
+656F30D629D40AA1337786C1FDA08EA1217AFA4A6E2498B334DAB5461A70DFBB
+5AA5686C89FFA4EE82D81CE2B28334DC5C032487CCE998616F48150BA1281911
+076E626E5BFCC56A0A4CDC559F878F14C2BD7A5148C1D8CC303FF9EC473354D2
+D4FB0F0F2AD0CF182A28074ED6552E179222570DE0E0D44E8FF4DB36C3AD6487
+C4BA53C8548714A69FCF8E3E5202F09469D7447C6519AE902C1D611A720BAFB5
+59E27A6DBA73624F44B4ABE0988BA3450F82E03521CCE8EDE8BE7EE1223B575A
+DF9A52650E85545525E6F121FF2D1531F156EA9D5594239AEA2CD09EE28ACB15
+A445E11FD1C031188DB61881F474D49425C084489A88A47D681EA68E7FC4B1F9
+DBB552063A02A0EB51125E9B2CC646B940D46FF457415F9565892DEAC030F08B
+E4C10DC38D825C7597394C844CB863CE6C843F67F2E1C42C4EF86AC7FB727BF0
+224B5E91BAD99CC6638AB2C64469A81D8B1789981872ED037B3A34BDF3130137
+80FE80FDA65EFBC11A08B98A1AE595F980B577E22D3CB7FED1D4016F5290ADF5
+47D7D9BAFE39F294582F2C084003E9C83FDB9EBC87C8B477CB8BB359EDD9BBC9
+9368D6605E1468A20909831BF602EFCEC0D5EBA99A2223E5A269275C8B221B3A
+F9226654185929F794E1979ED18B4CD36152F973433AC67BE24B9D953254FBBD
+B644CDF3BF0E29A2C72113DC486E46DED2CE8F8DFA8B0F8478D1F18C9AA8E054
+A31C3DBE84ECEDD85DF6AF9467AC2990ECAA3384FBCA1BBE598AA0D6813C859E
+1520B88BF30ADA910A6AC3068A5B8CFD76B7F0F6F4AF4C32450D628B5320C384
+F23A2B5E8756895584155226A30F8B0437E028978491DCD00E79C0ED58DF261E
+79B9DA17E57AEE03EE92102EAB2D63E69A88EE0B1E2087ED0C0CF6475EBDC3BE
+0324D1FC8F7B90D8D807533E5436F2C2583B9629EC390403437FDAC908557894
+03054A6DD6A3586043A9C8BFD0C7EDE1229DBB9F69F7A5D20F55664D061F6517
+0051C6B3CD7338241FB403F2AF77DAB1A8EBE1650156D40863EC1957372BFDEA
+BA8D0BB1193CC5BEB5A68C8274802E14FFA3ADCEBE19070325B1BDB960CF2988
+C0F5A9BFD843C515ADEC8B8AB02B2891EDD7502D9F28F4E58D8F67D1ACAFD0C3
+3531E0C7D1554344CCF90AC8696E83A3F968252981CAC09653956F4343B99D3D
+4F17CB8BBE4506B354439B70F2024871D16668F9DECD8EDB872BE5E6ACC406F1
+1DF4E3ADF60EFED57D1C426292970199BB663405236C6A907B6891C6190E87F2
+78D9142220FF295C7BF44AF61470798FB8CFBEE6973C69DA1CC24ECB058AA753
+DDBFD92FBB15560EA19D5D92F0005B74F06F0EA5901D231996E0866389DCA433
+E62BE48479687084C1D67BC592E592939F806FA8BF5F0D3F644B1FA6F056DE0D
+51D3F212C6818CB6166317058C2A0C07AE2E324CD90D4EC83CF4819B10CC348C
+6DBABA024A5FCDAE6E288F82DA060BCD16437F07DCA43BF1E5A1B402F16C78FC
+075BEE900B4021A1019C4A5ADC33230047FF11FDE8FB775DDA267040A22B4E5D
+6012F7E72B8BC8DD3A81369A08FB81C6C4873C2147D03D4181D6D8032DD2B610
+9C44CAB50C5BD8F489EBF01C72D4198B66EEA4E976462F8874143640B82AE57C
+A51EDEDE75A9A55D31587C14F8DEFFE69F75EA7B95BF725CE9991FB2F07AF568
+5AFEB39447B728B99BE0502BF28DE1D92B15926BE4E3DA2E7BB44A24836A97C6
+EE3A2080E01DC6514180DAF9C055F4C94929D34F193920020505E62804461630
+9F42C652F9D5681C91BE23DCB0C634247E739135F925EF3D5424767D5F5C5879
+C46F2E3395E2B49D282622FA4C18475FC52BA7AC4DB7C1AAD65352E66DB9D962
+AB975C01CC6490490F35CB358D77DF26703B356F5C5D80E25091CDE93B39BC22
+AC7F7CC6FBCBD39C39F7F8B41B3286CD39D6DE2E6B2A9AC1D2EE8AD1FF53AA85
+C34B2BB3A2E385B980FB5F35A1BECB5596FC2FB2209828F3C54D01B3D867B391
+033A752F4AA80C91775F9CB9BE939C850B2B322FA948907302D670F2302DAE93
+B5F8D2B835DDE001ECEA3B67BD3D620BC6D1E325C4B355985A129CBD6AFFD2D3
+5147E4CEC0209A8DF23ED77AE818B88A3696257268536CEF2DA90202ADF21C34
+07A0383E17206532F5F71061E625F3199D72E461D04F4AF18AD91B8A09E37E5A
+46D2E5D3634C508197C6CBD81F3E2BB8C759E331AD1CD54FCA815B92207579D5
+B248F2A1BD2B725117C76FE754F5D3CAA9F642D29AFE61DD78ACEB9F1DD67764
+0AE3E795C8016E150C92CC4D2EA682D6808DCCB4F24724541F856C29B3ED24D6
+64F1BFA439DD155E53F06FEBD8DD73C7C2D933CF70D9001707870C2D06EAB2F1
+649B32FFF09C7A1FA4C2E7EC2B3CEAEF12515CD401C582A315906EAE1A0D51B8
+1BF625E07761AC2BF59A28B7840E8833410C7A3CCFA16E32A0E90E0FDFDC46B6
+7E073A5957E59E58B33CDC146394FB7C860EF5CB1CC9871D3783D189B1A5EDB4
+1BD462A5AF1CE8BA67D096CCBA709C49A6EA7C1233C125155D8FC7E9482C8EED
+E15A207196E74C9D2C19CA96CB1B4852C3DB5ACFE88246F0325169DCCC88F4B8
+8BC213413EC95D2E3F39329B2165A0D1E3B4643C8AC58C126AD9E71B02B8A04E
+D5ED3F93B60A7D1D142A4CAEFDE0FD1C0778B3F9E2CEB4E0058D714FED13EFC0
+F4BC2FA09A125652BD936BDFB3B9C83C182DF3C329E060E983D054410928E4E2
+DA66453101A4D23BB5FDF7D67051BC92152A687620C9B653CBE6160929FBC393
+BCDD07F0010CB35BD030CB5E13A4AFEB7DC0DD5D89F9A638509AA2A4DCB83CF5
+DFC0873FCAA432F351D88B35DBC6129A44A35CB2CE4308979F474921590FE9B5
+45A4F50C799BFB555A1674D1E49CD81DD2EFF2A409626569C64B9C80B5341EAE
+50A011D7BC615F2BD6270981E2D66BEBB017EA4B5E9DC2EF8A7D059C94CDD2D1
+2C2C80FE9E086DFF9682C1BBD31EFC52E60625FD854280CB6717225D2FF35582
+CC3B9924635593248420EE48AC47332745597A5E542C2C375E947BB80F463C8D
+54FADB19A7B5993F39D9E07875785DF6342617F718A660F6A27C9642717CEC01
+D9DECD957E3C8CE1C0CFA3F2F02796EDC1CBE35E7F12C3CAF968D8EFB5F09588
+4277CDD2FB8DB2CF43C82980C9CD75599416218D7F88077B6B7CB579B7331D1E
+2ADCFF01EBB0A43FF5C78B5F4CE0F183FA66DD45BD9E950738FC3E78AB286B70
+FC45C628DD2DD70F8C33E99AD2F3A82389FAE546138FD8609EE51BF337C50EDF
+A4666AE87E764F38A99EA91F0CE63D72CBCB7B8EDDFB72AB57270F33599BE69B
+8C7A9F15B6704240A719A1B2B8E662B5F479ED331FDCD7EA86179971E0F193DA
+27DB7DDD61EEB68D5F5ADDF0827E7A961D0F35D943C89E46909EC09B3D02FA88
+10E8D8B85474248CBEE142D33C5CC24CA4923CDED8A4A5028D585392DD1BC8AD
+61CCE83D7D2371A5AA76F87642C10253D00EF336FF8C5B14BCBEA473577333D5
+5A858CCDC4D51A715859FE3DC0B79BEDD3187ED7C579615394354C46AB860C4E
+13D26ADD1D09B3B86FDDEF1D5232B618B6A8636BDBE04E7187F4CC624CF2BC9E
+38D39A393A0A6E42654329BB2F5735AEA951A1642CF093B06BB7656A23B9A9C5
+487947A4419B1AC4EDD7FDAF7FD0DB8FBA10E65AAFCECEEDA53D3CA4C5F381CF
+8A15DE4D52EA901171C5AC8D8D402F6EC75E898E0756BAD7F206311E74101055
+730DA667F74E9AD40BBDA833EA7439EC939381EFE8DE64917CBFC4E4C0A96A2A
+069053049D14A8CA33ACC6900C37CE589DEEC5CDCBC4153C0DEDE51266091DE5
+E417ACF812AC380EFB7523EAECEDC133D2368C3916A92B85EAAE86CE9CE912AC
+94749AF7E040CDFFA2EA2B78875EC3BF0E72C228B2C68ABA783E9EA17663CD76
+70CAD683E416E6863D21FC2A42F1BD447CAA62A66CAB6DE56B193B3D83FB521A
+82A7C3F08190BC10217F7EAB6876354320F1A63885479B1EC91750A247CB51B9
+1D22EF0D19D48C9893E0716A64ABF1A54700DD9BF0BB498EC874B2266B6E86C3
+2D273A2969F184B9023E83CB245FF9F484C9C37E70BFF61AD20EDB3C2DCCBD3C
+38716C5AEA8465E87C3E9F4B9884AC9E213817E102B30691D25D808388A3C4DC
+8894BA463F8E0F5E3406BAEA54BECA95E934C8E019AB014B13A618D68A89CBC8
+3F76AD4C46060C0FF3D0BEE87082294BCEC05BED477BF02BD9F8D62ACF3AB816
+30A0846A3FDCD885E4F310D56C332CED12A279154275A682438ADA6970E18CFF
+F66012252726FC421A3D772DDF7867ACA38E70DDC25255283E72918772DED8AB
+AB05ACA6477F6FB6D2C2A4C35D7CB877C2F07B6A3E113468B53356947B0EC500
+FF3ABA15ADC0466BB9333C6A1E73EBDDE53986FFC8F44ED9A1136BF27A599F28
+414C8A71B2893F248284DD7E0D887A1102357CD8EC4E034C7736469DAD3BBBF3
+45F0231D7C29DC8D0A62CF4ABA718BBD7D985513986B93B599C912408BBB2BA7
+DB96EEAFE84D1C6AD71FC59216FCE27E179BE74FD7007FBAB1AE2A9ECD11F1FF
+4396A13B7EE4FE5727E2142AEEE4E39941F02E54BA6730086B9FCFA6A6D00B7D
+BC6AA1432E129289B05C34A0B68494019D387AC6161B6585B2266DCF37DC63AE
+1CAFE2F3EC9E584981468CB2B1FF77C7FAF3342B72E260E15B558974BCCA35E1
+4D9040394866724F140857AAAB68BB9EE785787A857D17CBDB0F4CB00844FFB4
+2244AAD459ECCA522F5C590976EDDA6900919CDA0FE66DC39DBCF1434FD7EFF9
+194BEDAB53F7580D169909C31D6FD38EB7A79DD4426186235098A9F574E08DF1
+A03F709A1FA398A545331FF9454622B4CF225E95753037BF7620FAB86E06A1CB
+0B5FD5C82C3C2A9E2BDD2AEE6F3547033D5512045506D6DC0946AF56E87DD984
+2BC92D8C6F1494E6A19CEC6E3CC20CC46465AA61DF9A9CB7D9B4ED157E3DC4BF
+FF6B752AFD16943A4CA7B6954AD3C8E115055F0FCCED4A7A9AC3DF6888724A0C
+1AC640EF479E7D502B2F030F2B43D51996429B40841CA139E8EAA87B6AE277AE
+F8A4C55D4555BDBEE4232DFD1A468548DD2BE1193B3E0C7DE64A944973BA61A7
+4EB28DB3AA37C5FA901A9E7DB175DAED17DB95E22EFAC77CF7D4B0885824825C
+9B6C7B83BD0ECEB934797B49BC0F530F7E114C2B46D63DD7C56B89FE4A67EB3B
+6730F3281453F8B12A13967F1FC1428ED836B7B74C88C893407F13CD9FEB37A2
+E63D62D24F0097F41F756E706C376E1F85EA99FD6FA72611A9A92D3E49711516
+42FCDD0AB37B61DC086B7CE1D4FC559E2436D1334B3FC6A45F2FBFAEA7274455
+AC6715983EF884243D21C1FB3B433634A1B100DE7EFEDC96A2375C370F5F6AF7
+88FF97C7F49A8716AC5BE715578FA60394A5AA3ABD91750D3D92EB2C20697852
+A7701DE59D37A8FBE71FB85C8BB31BE3FB05443E7ACBED3CEB33379E088BA46C
+9F00659840057537B0CBBB92106343FE7B22E1EBDF988D2EDDE8454DE5042227
+B71CD978B414CEFD6CD9C3F17F11D325DFB90DACC1EA8D539B258B36A67AC1F4
+A3151BF7CC34F987932C469ADDE1FF880C6AA1638D11D339181C3AB485D9531C
+ECB30F18504BCBD1432123AAF1A20B45DD783C4BDE3D9222B7090F20D3DD0CC4
+46EDBECB37892190C4E3099B2A5599C2969A2772D7BCEAEF5E68C7BF2FA00DE2
+B955FB052E6C030D9077456494ED80A3E06937E0C47B28B92E3EE4E4D287C687
+E65221A1F3D8D61780C7A9199B373087770136C43A8B2A15A288CC4E89B3D298
+6F368BCC97D573BC587A0638FBD3618AB7AE3385BB12277EF891C06F6F618BC1
+5376A53CDDAC8067BE854DE1C5E554DAD1D067B6236E24C71E05DD580AF904BA
+B6085CC5FD0EF91C7A9D99E765C1A0C042508EE88E882121735E5A8FD6AB154F
+9993E0FB801632B535E6855A2E957D1DC342AECCF2E3BB566CD687271DC01C73
+C04F207F8C6294E0EC5C4644C8FC359A7DE5656D49965F7A4AF7D4AAB46BDE80
+7AAE6A0B0A1F737E075FD15984BDE06E06670A676EDDB0FD7BEFACBDD16EFB6D
+78AC731178AF94A77470EFD8F327A15F1A03300CFC19C9A9C90EF1388E9FF702
+5526B6990D2F8AA2DB72A1B19043045121F02D0212F3E892D1B13601E8324493
+BC4FB860EABE27DB73E5828FDE47C2D83E5505DB2C8491612605DC988F84574A
+5152E8F40CF20B26BE241B1036C9BF67942A8664398F43C4A5F1ADE0EB752D34
+1201D0DEC34EA95609A2DD65A7F761A0BE2FAB352F7AB8BFA31D559D39BC356B
+E796188AC31E0C512B37AA9637604C6656B10F0BF5C8F083496E3FBA6F449420
+C05C5371B16BA0B047F450104834C2FF96ED9E66F146D19E807B4C1C78746CF2
+C918DEBFA52C49A4645CCB2F3C5FF2E4588DDD1CC6832A7991CBCF3D3387992E
+4DBE05C65455EFC9D3F88248B27C5B83DBCFB13E72B24B9A13DF66E68CBACA95
+BEC7C0A6E2CBEE404259455688DA4F512A2AEACA619C2CB1FF20546200F164C9
+DAAD09F2CAAD9A9B05FD59790FB8B892B9A72B3A04F9443EB216E762AD9C0695
+B966BC2510652F31A1DD10AECE493329982E3583A7C106E8E4EDF7186574ADC4
+CF2227B520ED9DCEA96D8FDBA7E227219DC13DEEEF8958EA602FCB52DEF6F9A1
+589C659AAA7A4CA5D78176CD27F7328BB71FADE61224866B756C78329BB6557A
+3B003E15B66A6C307023282FFC3EA63467683B1428DCE51B2D5BA418661A4DA4
+BE4E35945C93F22D9B4467B2A20D1B282724A02D9032F48F2829868163989995
+1B866536E43B6AFD8090ECD4AE576A28CE2DC7BAF04111701A71EF4C3B8E8BA8
+8AFF6E096BCFEF20DF3BF29ABFDC2507896D53E3AA48DDCC77BB58D85A3515FF
+BA5BBB0A44D4FE8580838AB91BA337CE461B537EFCB0D4BD968D0CA8F4B808FC
+3ACB08AF1C580C634AE27123E50E7E42A8C861667238A52856A66E9BBBECB160
+DBDB1DD426A2F76CB8C7890320F7DF50C9FE89ED1405A59721D11FDF2FA2B048
+83B77C164248F7BF436E2007AC9BB4F27BD8FF62C4ED9D377F2044D2F5F63420
+1D9935BEC227187942805B7A66342044F54692D71C820729691709CFE6720A1C
+6DCE3E05095351635827C6C03B1E67C9CE546E5D464B6E2F608CFBDF7EBD0280
+04D2C1DD0AB53E75E0C4D2864D793E617477F3A308E95D68E717790B3BA4B4B6
+9CDC5B978CCA0A52FBF14D7FDB5AAEA8AF591CCEF944D9757163370A95394324
+8AE2885C1F9FDC8D5365811D20355BAFCCDA0722057A229D9609D5DBCAB0C3B7
+354B8A0432FF196F4B5DE84BF7B7C799C5772D9B1FE97ABBA646916F7081B98C
+5EE2019F992CD1611956B9C500F89DD6610224371833D0B85319EA50CA5B6797
+DFF2EAAD1A190F32CCC801C06D40DB4978646590FF40A943C419BEF1C1E7C642
+1CC1F33899247BF8B830FE58A2F0B93E5F011BF23A54782CA0EA09A0BDCC10DF
+7B688287D2D0DA736A9194F070DDA4D39248DEC41CB441A4225602C87AC3F7CC
+780120F4F92E65ADD62FEBA9F5D8AD1029AFC86EB4D8AB729B17E1AB21E5A07A
+DA4AF13BB3C02B9CDD7C063741D0E79310D48D7A435D8904F87BAD143BE8E521
+A51D6E7F3D348A3512C2D315BDF1A68D87FE3DE03F5D95E440B691AEE8C7DED7
+92189FC58C20E36FD72932BF07A921DFCB5C444F180D78F7CC5B83848DE155A2
+F3E47F45F576CF59C5D46ADD277B0DE74778F11F999F3C2B6436CDA253033328
+65D0BDBE877B644A4A6685C239921821357CFD228E9BE92C21B3428D693F48EC
+058CD8C02C5EEBE3957A671555703F01E430A5CDAFA3A95155E6750A4CE39D1E
+A89F19195788625B26FE693F312CBA53F08DE5E3A2A8C29FD7312A92DBF79C73
+0BC7A31C9D1945CF8578672F586493132463032964C629E0CCE49647DB95EF33
+CB434C8816E0E3427A0114F795F8A0C51CB2AEAEAA62C98CED7B87024BC16B30
+40D997940650EAE72BE6323F1697205F608091BE8AF08A9C91089C120420B3A6
+68FD09615D986FFD06EEDD39BBAC9C4C166FCB9E3657D88FADEFB2EAD4941591
+4420282BE836A4CCB74476114E2979CA9CDA9845668DC89B04BA0AD91CA46BF5
+F91F8E677815B3D2CACA13A3C7E62BA3FF44B35E957A0BE4A1EDB4DE5EC2B42B
+CC427D4E8B8907C7F0E3B82E960663456C1AEC4C2B275A1EAE6126BB5A802238
+1830D00CCF43963C8CA537D24D7B8A8A767E978DA955613A819AE1F5A0D12BFD
+378B8118EA7ED73D6914DA71C0FD41620151A7CAE1AA36625E98A25F72D0CEAD
+F48F4A822862095EEFA5FEA97A7A72047985E455F326F94F65F9B8ECAC0B2A42
+58396F7F3C4211EE320CBBE9280B08ED54171E44D8973256A286AF41730A9A7E
+A88FC1F92509135434BABCA88CEAAA2ED499E2F3C316529DEE9D024FC1F92FFA
+69D8BF95AE1A5ABAD706442CCA15D352D10A03384B06DB6C31AAE831013B32F7
+53C0D21ECB615D0F08BE01C0E7FB1F23715A10CE32F1E33CB40292CEDF59A4A3
+4BF715EDABE23B4D1FCFF71C40550249A03235D307F948D462944BF685530035
+1269AA516F99D95618B24B07A8D2E56F1DE82C5A2336263C46F329A5AFF5AB23
+FED8E1B05B07935581816B5A3F3412C403DCD207A1F332C79F17B711442DF1CD
+7A54B90653F78C0180FAF33C82BF371D56CCB71CC73B9EB2BB10E3617FB7E0D8
+C8AD510865216E44B6D2D3B2A02178A42766BBE1F738402C6DCE694307C8EA63
+25CCB6D7298A2200C63CEE67739D14270D1898C495361504B38A15F81057B129
+89835CA35A523E2B848DE47F50EEE2062050522B8C6E4EE0C3CDF8EA7E878C1C
+387B5BA7EAED5E890CA1508413CEAE9370286690BDE5A96E89E916A8A81A90CF
+223797B54F0C408044F035D1BCADFE1850DA6EEC5D61211A543741C36CA5A14B
+D5402FE65382DF64CE4072E5A532F009D156287866C0035953B5AC4CBFD33EB6
+AC1123A0D0B8AED978F2D9B7EA1923C104237A97AEE2263163727E98D22CC5FF
+BDC0352C9BC16ADFD1D4DC968882D53DCC5E7ADA2CA2FD67DA972CFF17735833
+D4E0DF395B0F5F8038E4B70D6CBB8DA85AAC12D8C9B63EDA42066977FAA79121
+43AE6F4692A9F7F88DC200D049FBAF35D776BDBB0B89811F2FADB8224690902B
+2A6E146A133A517CA12386AC920A4543A0F6CF05A9071074CD157C133EA7A7BC
+4E6A2874A6699DD65DC25C5859580308316E743B8938ED9DFAEA61E1F836D2D5
+F13DF35A82339269D80A1041651CB4A28B4608D0E2C326F01B698816DD20541A
+5D01822C865109022872230FC18DA7A7B3BD858712AF458F4D17F3286303F837
+954F784FF3CAC74E28C5C633A4581AB32C11B9974BDC0FC47F546A9F81FDC281
+6495A1229CA0B91B63E491842BCBFF262DE9556EFCBAE22881466AA874904438
+A57EE59D023A2D3C6EF7D5478323812CD8719A14AC99D480ACFD5CC9DC5C13B4
+28E43CC9784386169BA06D306E25C8D1BB6C0C325885423DAE98B7B74F477768
+6AC27A297360C8530142BC1E7DEFA726C2A6B191442BD7CA8936EF73087D8ADF
+6C9A1557BCA49C69E33081FD3F4766092F00DB3C7DC71CC151DEF1EBA8D9001C
+4F11AB87091DB2646CCF6D480B6E71E7106581A0509FA55E8326A428F3A2865C
+94B3A88660C35B24559ACC697DE7DB5729F33D1E72719D38CA6BBE24D3E6A0CC
+D291719268709C7AA1B4F00D42A973164E573827773F5D476D5FC2C915937065
+66C6F51D1E9293BE96E0E16AF71E5A26A64FB07D29D5548FEE89DC3A6CB98388
+5505C882BBFE323D4E7483BB1F5F75D9332C8FA1C75628FACC6F6C9CA2065DA3
+A69E213ECFE3B1EC646DAF1422AA8E8734B028314EC6318ADB331E25223E4C1A
+1312A03BC70E0A390F9F07A15E46AF1F39F561BF65790669866A9444D72C4D57
+181AD91B1350573D35122EDC10EF57CB6505EE89148D8750704A036F9B80078A
+D6DE659C19193236E531DEF598D972D826379B9C675A8CF10B3977E7088C717D
+A211BFCADDE1B91C9F79B3DB488C5EEF262F0524E6F82BE7E5D94B58953E72C9
+63F6778919F1F2126404A2E1EF9397773BB32C0C4EAA1B8E02BBE3E9FC75546A
+072611BF1D5DA8360AE0E2B199288F690859D9BA2720878301E6A358D26F04F0
+D93B36441077B89CD9ECC805B87BDD1FF13E6E4426C1CCA3E9F4141B4D268A07
+02ED31E3EE96C6E62DA983E9DDC28796995F452F5F1B9635DF1914140006FA69
+AE2D0C04D504E4B735B8BF7A5CA4ED496D56EF87389EDCD78B6870951F963F17
+A4A9E2378830CFD1B0AFAC64C93203C083D580D0DC575A69E5F2A318C35C4052
+FFFC7F4EC5DD7556DF2CE165A362FD3BD3BEB568C247569F18FD85B5CEBAB263
+9B7F1E9B5886F07E9E3BF192E462659944241030D9375DCC40E1D744CCCD18CB
+5A6595A1976E3767C0F1829F76F220A335A5EC49A6E099F7288FB1A415DE05CE
+F41FE8AF2DB82BE6B53EC82A0AB3FF14ADD98F5AFD9B68B76F5199BABA5436DC
+921C36A6AC8B245BE2702A7C036216C82E81A775D1AD068FF106789CED865D64
+A4FAA7861BF49C52065A1C9E52AFE9A0CC9BBC8863B902FA5DC046A645C3D72E
+E28FA624B18103C9782123D6AEB075E22B0707348C15159D1A3002B2822F3269
+129457B3FBDE1DD4E148B77D75A50A0A063D541DC4D00E1500E5A19BEF09BFCD
+C36D7E0B60BC2A745B50BD7B650536C563AC305C0AB63389BA4E9AB11A171D6E
+36EBB5CCA1A06960173A865B7BE57336C18BA87710092A12C88A4BB739A070B1
+92D1D52A22EA87E84B9D70A0C8764F48076F7C381E2FEA4DD8F9A86FAB2FF56A
+9FCE5A47BCFEBB78F4248513E9F117A50DF41F14379F9D61EE774F109162B87E
+A3F45F36EEAFFBC1EB63D796FE6D4FAF2D16B3807E4BE4E54F9779FA01EB853C
+B6DDCD9773EEDAD35F4795D90D17BE66400B31A2E4C3ECA5B5282E22CD2846AD
+C1D46908A493998F17D13A2416D4671F956398EBFD075FFC676F4BA9B8CD5BCE
+391B45AD842C43F98FF8FA42F6ADAF4C429DAF025AA7383F4CB0195CC514E804
+C47FC3217159F58E174481B4037112F219F4E7CD8816DD332F2596109AC3E46D
+C38E214ACBA5A55ABF5177D53782E2CE38763618ACA0E461B0B735AB5A9DC1AB
+B92F8588E3362F24202F163DB7CBB3D24A06620F0D75F621869A97DFB8678ABC
+EB57767E94672F51154F22FFF68EDC69279603BF5499F58B3BCF5ED32848F42A
+78A029DD1F5950DA3C6C4E7CB911C69A88075E14970EF23ACAB307D52A627EC4
+4359B28C00D05ADB4EB726FC31B0335E7C2942A851870D3520C5C96A4F1F834D
+584D92A454BAE25D79F2984A708C864B853B24A303F4EB132BD9DEAB438BCA65
+78864ECC83C746D63B7CF7B5CF1B9734E102007F9A0954EFB8550C43A9410168
+2D21E28DE211D231EE4A165EE129F47D07186048A152496E4FC9CE844FE45903
+076F6D4FEF780A52BCC56D8435A3949DB75C12F1F62CDFDC521CBCEC2554C460
+F700716A202A10153C800797C00F0162A14B8CB0E9B355938039773407738B57
+6380CAEAC0AA2AD724739796A9485D12ECCC0F3546F46D6040372B6E811212D0
+88758DF06DE11650C52F3C178CBE912B749351F065468DFFDCA9A01E14348D98
+EBBB9A7A168D1C4EEF97AA0C20FE37C3B3CE1CFD53AB00F5C7FA394F2123CFEB
+7A1DC68E7BA6467B2578EA2B00847F6BE6E11F77AD6EDAB10AF837551B81D429
+AB185372A6E567B73C56378A023AC24D83BDEC508CEA954A2609F0BF06389A22
+8F8D4ED71E2C0B202B68C0597DCB2421AA163E77CEEEA6908CD7F08B5DBFDD28
+DA55017714ABD1C98B5D5C8E01EAC1FFB4D4D00D7879B6EA44DFCF7C73EB1AD7
+0F8ACCC9A404496F769F5DC79FA1C28FB86F3C863D3B5961406B630D87270C63
+84FB51C5A8060B7E59211E3953A3FA571008D3677E8CED908A8BA2C7A0FBE6FF
+ADAC7053ECF03073C33A681065B5013F1F39E4D63CB657FC9DF6763440272B45
+0E908CBA727375DCE5D479B7604510D081F452E30AEE9335635BAC3FC4B4516F
+714A5D709BDB673A0E4C4A7CF7833F8011B1632F03B3C5815E4C2BC44502ECFE
+5791A5A92A8EA997530DB13A5BB2C9B8DC2E60D18FF029A88F63103AB54E9B52
+D08F82AFA775AEA9E0354C77F3442019698A08D366E88435A5FE1C388CCBDE65
+94A41A384AA4B4E47CA54D2F37B8B80FC3485EA95B33DF87A4A5CF313325C08A
+76C669C86AE536AE345D7E5A3052BAA92DBB827FB877A1EE8AB6914F672C37A2
+9469AFD84800A913AB4A1F681E7DF81E93B9C34076B32D03BDD8FFB2036A6035
+86E4CBDC20263AC0A990AFAC2EBD451CAB04EB66542AE984D0E610CA79FC3268
+CABBD8F91E8DB1AD7E81C13B5E9C682C679D48E9DC94DEDDC52A68F76DB57242
+1628F8941AF3B433B8A780C209DFA18AF329E93769DDDAABB87EB1FF71CF2401
+F3162EAB20883AE2423E84E05BD0A4D3A4BD1A3627FEBACF14E1245ABC8B378F
+406C6FD1C60F2B02B72DB5449582C0348B4DB66CD1B1800A27FC41DCC0F1B9C4
+E6ED1E83A78C452A4B55AA0A93EBEA6CC4618FEEA937695E6513B7875E4EFCDC
+643A87DE5F11B40ADA5D5A3D0F4245D5F8C8CB8D6E22
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 11 /ff put
+dup 12 /fi put
+dup 13 /fl put
+dup 14 /ffi put
+dup 33 /exclam put
+dup 34 /quotedblright put
+dup 36 /dollar put
+dup 37 /percent put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 58 /colon put
+dup 59 /semicolon put
+dup 61 /equal put
+dup 63 /question put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /bracketleft put
+dup 92 /quotedblleft put
+dup 93 /bracketright put
+dup 96 /quoteleft put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /endash put
+dup 124 /emdash put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
+295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
+409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
+4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
+2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
+0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
+B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
+24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
+43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
+D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
+5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
+96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
+0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
+B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
+AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
+97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
+FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
+20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
+0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD
+F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20
+3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122
+A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379
+5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA77428025D4059BA
+2988AC2E3D7246BAAAFB89745F0E38580546045527C8779A254DB08DCC6FB9B9
+0E172209FBE3857AF495A7F2B34BC895A39A30F903DC6E3202D29AC110D868F4
+7184CB78407B8B9D42F6375F67FD4B828592E4A977B9E71854D143CD1A9EDCD1
+767CC2929E071FBA4C3D17500E28A23F697B5D5CC68D5F56EAD14BD504E07182
+3FDC12F5404E74EC1C02AF00C1A6A17F958770ED4A024F5B3644DEFB61F2578E
+56013D0B4E7CA3AD255E23DD63369A921D427EEE0E098E8148B16E8A5613A8F8
+A5F1099E15AD16EC554B644DF306F0CF3571055A81F1B464529DB49E919F88E7
+581066BEC4765E31BBE28C245BBF0B74610DBA30C63A71A4F3B60593A6B41C6C
+636C980828CFE9A3362FBC02F1967F0F770A4790F90DEF9D56E0A76B0703FC58
+2841E6E8D984FB476D4FEB960FFB6B386EC6CBB9EB83704B0AF63F38C77090A8
+DAA165E6C6BC86601B14F8E9F504A9D578AF05128D8C1BCEA9D21057958D5DCF
+63459352EAD6B4A2A666CC5D85855641CB31507F9E30405977B74356FE985A6D
+541884CB65A4F5A8D4C82CB9D82846CC510CBD243E98A0011AD37A81047021DF
+46F69D7C3DFAF2F10F1F0CCEFBE12EB70420BE90C450975434E223C67D24226E
+8B62BCA6BF93B0B1373AF55E4ADD92775B2DF199B6599CB02DB64B2D6160BEBE
+449C057B5B2D226E0F5D7CFB5C9A4A7184FB29A595E91252AE787861A6331FC2
+6605C995D55120121CB463473A7CBD22F270D56CA8E0DA99832A468D399CB9F5
+A1CBCF0031D99F3C4F4B78A0944BED5A7B1AE23E3A66EED453917F9296077306
+06CFA772BE60854A30885DC5FB8417E0D3F7AB45ABFE186D877A377F5D17DD35
+0FAB81745294E35A5DCAB20321C6ECAE276B63BB17366867F346CAD53E06AD96
+091CAC75465BCDDFDE9C4364B2A8EF496C4CDF76B058E4BC1F616F6CF62FB60A
+64F81BABA7A729B8CF679CEE01B1C985558E8D1493C03B834F3696E5511A1917
+2AE7E16AA8FC516CD2CEDE020BC5777598165B6EF2310F4DBD54FE14071101EB
+47F4B2B59778B1EA7DE13ADF46393E07DBE2082C2487944A71CEDD4ED7D3D877
+749D2500636C3996A34EE0CBA770F6B6A655DCB9840AA8236EF3F6182E1C8997
+395077D9DB15B9D0A2DF9A3F6042C94E6E492C965E4E8542AC4AF5B21906B6E8
+4AE2B01C0810E38BFAE99DD83EBFF8E145D09F763B6B134A25A1CC067C6DC1D0
+7286045CE90BA968598D83E5602ED96C72A424848E211C028CB344D95DA04ADE
+4C5DADCE9009A72B6EC01E7B5CF8C52BDFD2B416F5E1833F514659D94BB2F452
+EC4F2E65CE71AAF79106A0468D76D283ADD44D7DB5760AA429D61C1DC2E912C7
+9446C19557A1D12E7116B765BE522EA166E8F0B604807215323DC5C2DB1F2E05
+246873CE189E03FA291A961E4AD90563A8F7B0E08A67DE4CB3607C6ECA114DD0
+DCE97976E208615F3CA13FC44041360086A4A173D5441D9C33A38013099F73E9
+0FBC96808F7442FD4D56DF7C4F2D4C9B2301F7CE626B4C6C1617B8F1584DF195
+F92FC6385070EB02BF2541307E4EA34C131815FB9028C118F4B792C5E81D87D9
+39E842ED5DFBBC9A98C5488037F0BECD5F109FFF47225F6DF1D19FDE8CA9CA1D
+C92848624AD79ECF4B2CA10EB20FF975B53C530E2F18B36CCB3EFB7D2F4ECD2A
+5B9E0B06BC681C6C47DA9305769E3FA19B7DAB49DD5AFDBB99F6E8167FD22ADD
+D72AEC3FE48B61A79344903A56D3AB0859EAAAA2C57CBC7FD3E3C764B09FF3A1
+B7B343B90FE87FB519F0B73B1F875C7BBE1A79A2D252ADD544588D87519D231B
+0EFD8F40679FC4FEB38F6FE44A465BCD131B3DFFE441BAE1FD4DE8F6E2348367
+35B34E1C7AC6CB1C074FB9C553F6B0315E7BE56858C58B4478376F8F8701D1E6
+7824F4403E97D6B0F31951BC3870BC51B6541B8CC858E33C2936B5F8D9F1830F
+079493441FD87755609ABE661AD5458F1D2603709B2B301621365604037B9E65
+BC593479F0C10F290F9338FB78C702BBC548DED7A114C906181920E441C5357E
+20215DC55A95077F95BAA4C110315E35CE4651FE41C227BB00BD9D65F0E219C2
+149D7A974B09A4E09D777C4FE67E0D1D2185F754892C4272619AE7B6E0F02BB1
+29E861C2D698844C43D6AC0A9DFD9815E78CC56DA2555A10E828EFD206E4AB25
+C197098AE1452D6B8C47242C04D2BF0437BE5E67CC54FDD5CB6608BFFB5AB410
+105C578884CC694E0C3D7C55007E3C8192B3980F2924BB4357420673364D5B00
+01DAD2BA5663C1344227C0468B6342A352002CEA59B84F1100A725F2405DF490
+899A6C89E04D9F8F441610A8339BDCB4CEA373FB9DEFC80404ACBA788004DE4B
+1651F5F6EDBD8A80F35F7557EF8753DD07F1E6717E585863373012F3BB30AB9C
+81F557AB952A89F3A40C1E127CE6D92A42BDAFFBF6E563A8103F498F9E023DD3
+57753FA6204A6D4E75DF1D2E12B90825EE4B8A25BAADE05909A3DC123AD5D758
+DFECF546C6FB6ABC379EEC8456EDD1929DC0A2E54C2832367685102A1B551D56
+2597BEDB41DC6ED60EF1037AD230BA8DAC47D00C8028E05671E606DB31400C70
+F904AE27AD72C25667D356EF230C3EBFB7A7FB054B85E7E03EE79B634E99B64B
+D150A5A70550B951B0C017BBAC86875A95F81533C480864873DDE91D749A9711
+5706C4B772D183C3AB1365BE2CB6FE7076F8D5CD0947E29E753BF8A5B7E1056F
+A3BD8445DC8F6794279D4A2CBCC17C880BD6037EF42FF33145D3430A8BF59AB2
+C274DB67C99E300BF9307470D1985351B9458198CD6D26D73DAA4AC79F493BFD
+04DFA3B693184EB767B4A387825BD140C9F25E71A2DB694AFF848C8896670EE7
+2C2072BB9B6F67DA8011C1C19695BF08CAC4E53A9E91795A8BFEDF8E2AAB1F2B
+8B0D5D49FB2B451A1CAE0CE5CC553B7D57DB61545E33ECA3919FEF2F6E56F809
+60A643392A38FFC1434C86C2E42477AE0434FFD40A08279A292C6AE79C41E972
+6AD3F2DD0CB187CAD26150ECF73E062F08741E52E202F8377C04845345DE86B3
+51C89220827DE253E71BE4A414B2350948A222BCAA37F881ACFB9DB4E33D5332
+D963375F5C182B624F2A7CDADE56ECCF8308203997AE4275F7AFF69F5768CF3F
+E6E96EC1F9073B91A0CC6F3FB34E3CAF07A082E63E3D52175D1CC9301DE10DF8
+5886B5AE99859120122B81078F45016AD121EA32A6C269592514248D5C1B1BCF
+D00F8F7FA0E65CC1C381D125BD71F45517CD0F2954AD07163B338B8E3223AD61
+D7FB848B0BE3908E8A3A091E9DC8AB756B4DB9AAA2B9080B9EB3484ACA51CE90
+760DDA3976DE784E5A818F6D253CD618938BEB3EFEF692EFDDBC67DBBDD10CAD
+E5844DC3A93241B0915A1CD159B89C688539F73CEFB8B78A42965F6A97113ABA
+6AEEC6C40A22C696ACD950B366EF9CC6F8CC1139401FA7807CCF03BD0F26AECB
+D17D4565FF7FC7D9C54C52C8CC93400AECC75B9D6C79CD8DD2F85FF06D0F8EDD
+857B0122963E348D8AA00E62564E3EF1AA181E46C9FB78C75DE79076F824B770
+FBE6C219DD052BF444557F8DB9BB857AB012404C94464314D1EE9BD7DEBB1A20
+34A09453E728B61B568D2B0BFC1618023C7AB01397BEF08F98AB11F9BF7F7E83
+9232547A51A89F5D9F99DA2F3EDE816ACA350FCC739B951D53FB2015D69525AD
+811BABE6134F016EAD9032106B1EDC3F071836D7AEDADF127DC3E93DD7499F8A
+2C188EE1B4DAE7BEF5FF76C34DFED2497306E9568F22D3226D5F43E9EE2FB1FF
+C1507FC85F46B4488063EA6AFDFB1B665238F9DD585C1834570304A202B3642E
+3F446AB17D5B0AB9E72AEBFDC5C24BE5D8256378BEE6801B4E499BFDA01718A8
+3211A2FF431FB61886D0BA683EDE528D43C02301B8BD6CC88565BFC2E7822232
+97260C07B7F9C3FB6F612944C6C904CCB3066EE7319C77EE2075FE360647B808
+F7769BCC25A66F16F2E6B304175A5ED31E307ED75AC63B19BAB7F16292D4DC79
+D9F2650BC99415C3576F446E649B32AB5D34475393D59A4EE020BDA982C8E97B
+8ACD4C947AEF3D6059C7A2E0201C1544ED144676E1A61025236360E147D246F0
+5BEF0C386AB72C98BE6C131B6983282334A5307C34A30E755B0C1205C279CCE2
+CF007E0FF9290FAD9E2B8794A09FD1A915DC48CDB4DF940C9482E51C65AC6E8E
+2B0A86A2DE91E0AA3E1A4B52DDAA231DC9B8AFEE466EA97EE2C4528F07416D3F
+E32794F6688FC9147DF36A3E31C749B46665E334AACAD4B06AFAFB6A648C0497
+9BC64C85E2A46D2DDD04928BB6F06A3E7D36EB6724E5CDEC59C25A3F0D3AA0A4
+955525F02D8DC9AB61A63B07C4324788ED6527E42420FBD41A016BE1F4B8C1BF
+4181FA4B896B7E9DF2E723A35C7C709CB97C83988D0BC9F3FA153CC165EF7D87
+8DAA9335D9646B65AA78EBF8D7DBDCA81659D41DEA8A64DB880435622528C74B
+FB60A7ABD521E2B43E63792304BE70A52E72A06F23F4A1CC6034B33128E12952
+FBC1BD7741632BB354DD3AFFA3115BE4F2C37D6C18E074B6CCB3AE77FD0163FE
+383154C14646C2EA8C0F341E8865AB3E8DA44DA947D267F978912D87F8EB2EAB
+D9D9EC2FB624C73EF0B954F5A64B6DF48A8BE53D441AF8F90B6F1D0C2B0EEF1C
+2E7789FBD48A2DFAE0FF490E3B97F1673B96082F44D23569628B0ED086CC4E3C
+4E975A0230CEEE9F7C157F7960D74CD082C9B51FFC10AC9BEE4A7FF286631DEF
+B3C1FA6CA426906277676E81CBFAD4146DF186F42DB0736E9A145107FA1D99A1
+C744D16D31507C59607395B8C6814F1181F75122BB14031C690FCFA42EC96625
+6834576440BAAF9C545DF0AF2FE7A6885733279ABF1E4AF8FC770E72AB8D31CC
+01E338F202631597B7B10721BF07AAE87E15ADBC6114175D74FF1690AFC0895E
+34F9F41FDA6E8CF1C4AE566864103DD05E7C3A259DAD0DCD5DB5CE42F1FAE46B
+D0AD22F61B614FCFE7B7D3BFB1FBEE2192CDE426D8DD00B717125858E9E3AEF0
+3938483E09E3C52B9A2644FD9EC9B958E55AFE9E80CB16A0E2EC5212DA0E2688
+618C2AC16C07204FE17E769413658DB8DCC6A30EE41C2760BB4ACDFCC8F6EC74
+A159A8D12698CF4E584C7DFB8DED5E8335B57BEA2863CC16CB41DDF3E7C14DA8
+ED96E67B36FE099F2A5A03BB3FE2EDDE5FD35B5A3AF0D38FDB717223EB173936
+BA93570378A445663C0321F7D7A364D1D7A4425CB7A440AC7E393F20F24F955F
+2D2508AE7FC814CEF69ECB4A10C9CC75A33A9DBB0F1560F9205C385271188C8F
+88E006A378C8C5A3893F13CFA9D1983649691E79BE3C9DE927C1D75B65984930
+360BC3A409F05C570D7F5C6D286474DCDE71CB54452AD5ED88DBE99313972E83
+3B07A63DFA335215BF05110FDB22E4A30898E460DAD779E2179D956CE67CD203
+767DFBD873030279F8AFF1038924286000882B3D6561611511B45BF0BE8D44AC
+EFA6546D7E03D0A3A8EA6C7738C5626363CADEB76DF443FA0A22BB071EB2A3B8
+AC9E711083D2069DB81D3E9B48D38F4240A315801DE86938FB7CE118A98891BC
+DE1189516246649771CF1EC7092E9BECDDD470870F686D0E2B94EF7C6DBE515B
+08796F044E9850EAEA5CBBB74DA4F65C1B71F4A28E8560287E0020E45D35FF0B
+CD03B41BDFDDE66009C42B92573D99A9D6388BA5BF3C1BE9358CBB3FF12C0560
+47856725CFFBAF426FF7946BC0269A26CE765B51822EFA55FB9EFBABA5009AE7
+A7D8B6AC8B3B5CDE8A77736BD56DCB1DDC56BDD310BBF1E3B5F011C52773B9B0
+2CCE81FA331E7CCD3B32537AEFFBCE8CE6661F47816E2DE080D02A433908E4A1
+593637AC4BC55ABE6AE3137214F017BA34B0E9A0372F3A757474F5A4EBBF6DD4
+7B697C418423258D7964BF7C73544F0A1FCFB00AD5209CB4A74B139777ECCFF3
+8B8F88F2EA3EF58B02FCD2352FE7DF7A07CD5C7527E786945C54E74F22CB406D
+BFC1E81557EC68F3F90C8D659636F19B50417AF09E31A0444F9903F1937C08CE
+53F8C437778B2D2A9DAE9BEFAAEE650D4631FA93CF90E4C7463EDE6429DBFC98
+128EBC51AE5E15E24F5F5C1EFF658BF48D9B563CB5021903BD30E6AC48B406DA
+49CAF07D734862D79EB760C89707B0EB590DAF9DC168DC858D7D9F1341CC54C6
+57FA2E962A7D7E3BDFA52A7C704421A15E8A241ACDBC926EE4EDC928C8FC64EF
+BBE40A6C632A87AC4F222465D9033BAB39DE7EA3DA62EFBBE69E6C9ABC6A76AB
+9F48AB41CA976AB98D24D68050BB0D940BBF71030D16CAD3B72D680E83104A2F
+D223DC5E892357F7B061D46AF3CA3A7DCBA293A90CC944C1D04E7F59C399EDE0
+8D5DCDD1C9F0627A90BD84420336308EB8FB3AFBC436988EEA496A3DD16A9796
+4D884A95889EC70957FBF271293C6E930FBB138307D0A44627F15E61B1802B53
+BA5C3565B120C5E85696AF565B4A37129CD03965E65CF4919488DF467923F28D
+3D78CD43B52317B05267AEEA30D67415FFD6C410E45C1719BB18798159449B61
+2BCC2D1D96D5BA1654F9E2A01370382D89E69A5867CDD197E93FF3C3C53E616E
+1E468D285F33DB55E8EA96B7F4FD6FB9F4DBFAC80BA2D928C34978192E0BF3D9
+C204F90291A869A63D00993F00DB5AFF0A0B66E7E3520E8C25ADD0C316D99EC9
+3B9C8CFB1FB1138EF8ED87CE9E3E0A2B7A95D2B8AAB5C64A94F447CC53C5C0DB
+F6BC9C2F41A52F32FE10247E45E3083A899A89E41FE25CE013F7E3012A8311F1
+E92192697C1D187572AB6E83D060B66BFC823258E7535ED5B481562605D2A272
+5D5F77F24B7E62E085B33EA1BA61DC7B06176248EE719D0B71447238CAA84339
+3F112F6AC99E93C6923356633A5FA6B3FE2C4ABF77652345E3585F8B50843F40
+FE7FBBDD919022B384B7F8426074D45F09976962B14D152F6A39ACE1A5790F18
+CD3209FDC1AE36578895FEEB036C7E4FBD148766F73A330AED55C83025ADDC01
+74B139ED6FF9929939EED736C053E37146DED46D9531C502A250C2259A7B31BE
+6C65D5F41C89CB5F1EA7E83CB3AC45E5D63FE71E0C94152E74CCBD954EE51EB1
+8BA9CC4EF80F75FA153C33585D34E0159EBAAC68D1B4929D7DB8B3F32ED0D98D
+739089C9567D66F5B1ECFEEA96425FFD66E70C27F838E3FDEDD0C7BC2B55DC9A
+1772D5D6406C8A7B0F833C47B85A9C4D015A3C77E58B5564679BF0A318AE3A4D
+4C531A1D4799318357F6C645537E083528D994679796C870959A17D509C54FF0
+0B543E3A682DC3527C588C5111CD073D82470F5A6B34EFB35BC64D8F179220B8
+93B9912FE6CBFDF37B5332A6DA64AE63583DF9C33B05953130F30591BFAE2346
+677FB81E405A78C8596177AE4D34D3D5BF50448545F9AD243C59A25708C3E9C8
+729AE758846A9CBE673E1D100294739FD3E39069DBB55D2926F733997FEF54C7
+DE70FB76E9BDB6122A2FE4E6A4D2048E134372C29761DF2F4BE07E1FE74A29E0
+05C3C55AA1F57474257691F49CC2F5C6913541BF2385E627B156A16B241542DC
+04917B6880605C1BDB04A67247C7ABA5E4BCF517AAC406CA2ADD25A45CEDDB59
+AEC46D3AAA6248D1E7CF712EA43087149E3BA6DEEF7E65F11DAFC2BB2487B4EC
+D2E28974537C601456DD2F8F07D9F7D6E0E9D58D8EEAA1F55EFA919813C90F4C
+354FB972518732FDFF0843365450BCE633CA433AFD356092C3CEBE76EC592389
+36CA73BB3758DA97EB205E020B079E6CA53CACD69133ED876D9F79CFB8BADFA2
+296AAD4D8884D1CF88C9069E550A07E7BAB1A897B09B62664112A8BF5D15B5BA
+D7B70CAE815A38D20C584CF39D6B7A4F8C545ABD6E2E5A7770F3B129834DAE61
+CC4B72FEB802B869AF5CAAEE1143D351F44F42568232CEFD0215A3913A08093F
+215673A0640925283D9EF4A0C247A1B5733EA65AE42C34D15A037B59F785EBF3
+9A9F1518C95ECBB3EEB3FBB9D95EC1C92CFE12903E3EB0DFA2A686E453D15C5C
+D8D2E14E3CCDB006226B55C316F8A71BA71C33EA80C336123D330638327EEADC
+E0EDF1B5BFE215784CB2E24147C956CDFC1A8E19F04CBF3F3DE21160938854D6
+65D54E269E8DD5AB182E53EF4E901E3D18EA0A759D2953F4D749D84B1345AC6E
+7609D075B700E16E6DC5ADBAE448B3638B470FBB994A918AA7A2F893852BF7C6
+A2045D6C6152A0CA26CAAEFBC2ABF520BA8F5F8E02B02F31C8CE48C5AC58997B
+9993A4DB61DBF348F390C3431DE057CF78AD293A889D34E3898A2164B024700B
+2D363DBC75298A9132C4A7D1EAEED0B8D8CC39486215E37B0C0B2C449CA966C0
+7A1576A9B6E6500DC6FC19AA18D190C1238E8E1426A9D53319FE9DA6EAC47963
+EB29BDF6221F93CD59F4531434ECB3F3A308131BC3CE132384779A0DF4169B29
+F6D2137D4592E1BAE07EAE366222F9FF9D211BA9578BBDBEBF0B3A7C66081661
+9A7838AFC1F02E3741BD1EB11857A3B22C8A1C75E09B465E83265C76FEC52D9B
+068522D0430B331A2DB7BD17C5842E8FC59AF72B5D76519918BF4103F010AF89
+481B04229CA964AA4CD0EA1F4CA43E7FDEF816E9007FE8569170849EB20E00BC
+ABA510AFC2EB129B8FC8392B6CDBDEF5ABEFDF008C4D2D1DCEE00F08DB217819
+3931A142ABFB8B45849F46F36D23DC20DD91A26C3572278E2F3D6A855D9FEED0
+A003706C47279D54A0D5954138A6728CDD0F5EBD0B91A7A68F77D7CD569F71D5
+30B97D8B539710D2F8808E19A2EB4DE33A9D93246B4DEBBE1E214CD7CA20D50D
+A606422E11263A9F8E48BFEFB41E3FBDC046B0DCCD7E09A0D819B51AC93C20D5
+8648078EB45B7D048CE2129939F914440883EDB9040E7C09F7B8226BB2331359
+2B939F4A25279E475C1AB8882C79BCD257B739CD8D67886134737F436B7843FA
+3C810FC94E7FFBEC6516CD38CA5030C5D7918B46C8CC7142E6ED67B90E636F98
+790DBB9831A5AA5CB236C7C676F978B8955444FAEBB40F7B5037AA8B5022A362
+687B60BAE867CD376E314BBF92D3D179F5E586E61CFECEED0D282985ABA8349B
+1730C8ABA94E968ADB27C810FD6AA0AD6D21715B99E3489D19123E4C7AE1FFA0
+B603EAD675D994928475B386B36A95B803C92D640844CED78BF2820474302B3E
+270B024C1177DC6348F6EE8AB15E3A31F704A12D522EE52584A9FC83333D28E0
+E0EFB793CE3A2AB9B3E47390041CBBCAE80126CC979738F86AB71CC326621D46
+955F30C2C8CA525ADD3EFE6F08CD7C5ED92998E632E1BB735C281DD9804C9284
+297091B3F03CB65427EE59D8396DBFF74D5F336980728C4BD47AD7654D6A4170
+719D7B1BECBF07A8C121A76B048212C53D717F6B53C351C747ABA94121277498
+60B5F2325C8713D711DADE62E78B9F609DBE324DEA85C0E0AA4D64DEED24CDD6
+36CC8D07C25B26DB301D77F42FEDE64606289406851B01066BCBAE9E28DCA25C
+1B47E0BF99B7C37F6596697F5914DD1C348583C34D0A5F466BC878E799A1959F
+DCE22CCF7714F62BDBD9D5B89C146623B72E2954BA834BB8806F2BB5D8B497B0
+3E44CCE42C9650D9D7E8DFA51E226152B49C9078E56399DE9794AE2487A59C05
+4B07A98DF5A070783EC944427691B9569C74960F361412B2ACC6993D23D46EE7
+E5D329816C48AC4F171C077A56798E784E7AE3F5D4D81511B9D4BB12718E85B5
+D4785828049C5B302167FAC29C122A42FFA992325B2C98E0C1D3659C586709E6
+F1239FA7EE27701DA10D641C6BA4FFC41C7DE6F7793CCFA21B43ACF3CD22C8EE
+49E8C3D0768FC44A0EF0A42F0036A43723C9AC9790BB0C43B5D709E456046535
+953FC9ED60E171811A8F463541EE0923E3A983C0A5829D76520EE74B4B263919
+35AC18D065B205178259B31F7B1FBFA0B89E5CF3B667131673C2C4F9899AF5E3
+0E0082DB1200E2D362CE2997FAA8BD268AC400F06ED52A103965F7DA16A56AF7
+F6038AD9048E9862C923536313D18049B820E3E6458995D4E4E89DF07C44B601
+9F2AF1056240D9CDBF902BAC35979E898E1ABEC6117DBD7971033FB25C0C0BA0
+0D91412EC5FDBE3FA15626D1EC48351AFB407D2ABB421C6463204C9EEE32D484
+A5A8D4F784CFC8BA2EA6C78C562EF0B37003DC2DC23F0227D9B7A21F374F70F0
+1DC35DC48E2D4607DC13BBE956F2F9944F37CCD34A0381E8EE992EEE87A36F05
+F0B16D265EF73EFE1AF99C3C505EB7ABF83E36197C467B32FE791AD8F66F96FD
+5BFE4B0613A2850A55FE9CA88320539C5C31C7DE8CACFBBFB93B06E79909B600
+5BD835028D6AA5D57382910AEBD08C929910F0FDA337D64C9AFE6738A34DB777
+AA99A88A16F676C2EE5EB95D3444A86CC06279623D7516EF9C21E2280AF797E8
+B0C0E71C6DE3B21FA8AE3F4BC29A80FA53F1751862F1432EBE8A1B60FEF61E16
+827B2AE734C4C2483786E44478F0623FC20222FC04D57AC3735FCAF448CE56B3
+5468205A1EF35929340AC330FB861A793C12385322F7604586C6F6FAB32767DE
+EC475AFCBE5D579C9C5B15D29732DEAE9C29A85B0CF306DFADDD8A17A8A20D41
+1C58521DBBFA795E1CF501F5950B850A8A794AA166F12968BE1F10A5671D30D9
+9964A02C55C0EAF96343DE356AF06C54F029F7FC03EF6A7E76A9DB5684ED0315
+B51B3FDB6C40C512BFFCDB50100222E7E4D78B831AFD79CF46674A45C530A41F
+106FF90A59D4F8BF0C620114AC3D5A0FA34E36B55D7D82EE7BD79498C721C7CA
+2C1B79F7266C6F040F3E1DEC13373DB338EC02EDFA2E14D4BD3DBFDF94641756
+44357AAADE9616236BE9CE1B799AB3057E564447CE28038CFAC0EDDC5F1D20E6
+996C3BACB92044DD3332DB7893FB8A22691A7F71A8E10A9046B7E2801B1A0CD1
+C3BDFA06840677BAAC1A98CBA28A57176E8639F20F0BA93420DBDE97F1AC2A78
+CCCEC3D400923F4FDC970AD501E435C9BD246C6396AB8D37EB4A59F24DDD2A91
+4F2071458F9CC55FE63D7A16822ED199FA50DF3C653841537B9CA060D06374B9
+E53B56EAAE5377EAF9ED4751E0D2783E80CF206681E33EA9FF5D8F938FF42C17
+0F5359BB48D40DB82C952A3D850441543CF581CD291D784B9E3876BCFDA51E8A
+7CE65E700DD5B6B2A5519E0484003BAA8F1F21950D6030447F12D26D6D0DF5B6
+C1B0D403CD4155C2C8D5D214D86D72B5B78B3B3ED2062A480EAC959C0F7D9F58
+B5EA0F4DD9599C83F1537AFC6B4EE2F5A92EE88C4B708BF9400CE3AA3FF14C20
+4850ECD07AB485F00C1FE75ED659448E252F7773E36B6B59ECD9AC6FAEF06122
+25D3DBFB44F70FA158E4D988B31C88A3D54FC01DB249F949AE1E06FD5FBE4970
+ADCB92CFEFADC41791A17B7DA3C785124CCE543BB24D3540B9F9A76439C49240
+6278B1F414E13B63249B3CC2216A1C5F9E8390865AF3514879F88429ED73725C
+6ED2A8F1E22326D33D372A3E4C9523873CD3323DDFA9502F06B495F3FAF5C60D
+784C5AD72F6F84F5396F9E3B167CD84C330CD2B777C16903516665EBE04B7AFE
+F13B3CC49DDE9734710E221245B1B0242DC3DEA68C2C96E0F51E40212B264648
+562F3A7A2B12E54DFD9C3E4B0B593F8DE6D38BD6A516DB966483FAE1BB9D9858
+A66863EB013BD05588FEA4596962A88F5D7D27D7C0A11DD2626B32DCF117FA5C
+5680E532C95A57F074378635A4D4136E73043734E411E47306928A2BC27960A1
+2739FF7C2F9B73F463AFBD28452C5FFC70D0268B91016F2EFA5932FBCE86B5AF
+DC6368B80F11DE7715DAB114F28491D6F8B31B6C6C4DD126F812D93C515D34BE
+516EC1BD3940F375AB4C1615EDA54F7586DD4EF0A04798A6855F98A302EAA67B
+9816DAE0A37230DD5C2CD5E5612F05533565D9802584C92CE40E4F5B1F589AFF
+276793334C091D79D77C148AF4FB69715FBE46399E3C6114282C2F61B2D596F6
+A159CC88BBCB01CDA19304D5B99927AC44A867D79F9FE058488B0D0CCE96BEF8
+DE97A68A493150E4B398BABCC2CD541F4D60D586234413D6484B6216518377B4
+899982E1FC8F041A7DB85E53970A7A73A28AB98D0ADBD53980AB0FE0E4777389
+6582B0B8FA0AF694CEB70F098400ED36C91860F70626813BB2D78162FB24C6E6
+75A956BCDE5716C135E4F06E2AF5FBC236A715A5E495BC577FC5787628C5E536
+46EAD10E8488D38655F899DDBB905DA9F93569EC9F8E705A336272F067B8D31F
+EC2007F68ACC8E063773F3CB0B4671E89E5D6AA6A41E6B2E9723CADD17394C0B
+C22DFFB74D0DA404EEE86F3928793EBBDC6E59FE4F9BB10248FFCF4F5E8960A5
+BF458817ED22FFEADAA6291B50E76659CC7C0C4F87A2841788A9F71289BA7450
+B70E6369E766F1AADF807CDDDF2E0DB49280B252120A7B56F2111A6F2E835CE6
+3EC2AE54D820BAEB19E47DC45F75712B2ADF84AC11DA640BB1B645A7859A68A4
+AA9375942FF5FFCCC6D3484D742E09550A8D3D2E3F451EA4712F1A2754C745DD
+EBD5FC7A22A74BC1D550F0BE5C5132A23DC05D7714D9ACFF7141D6ADF958B9B6
+D0265BBF8A6EE985813F543BC897588F119A61A933713AEBE144DA7E0374DA24
+85232F206A8DBE5E5FBBADBD08A328B9912F2106D3E5F37407AB0B1B7E3706DF
+C869B47CA793F3EACB0F3867F2BFC4A572BC263A661526F415289E6FE6A98CA1
+365F38A715D82EC626C34DC041E9F3371E6EF1A5A13A598D12E33088AD2D055C
+24996E174C9C115094028A082566A9457C4D2A99E035BCD07159585689381D5C
+53AC9E8319698424018ECB25690EFD36393D2FDF6F989C1CAFC5D40192147ED6
+FE84C93A1B5BB92E71A59537536857A0361ECC8DC57D07EC027AC1B1ED166B15
+0C1F45555560FD3E2CFF7A19B090456E57D3656E45DD8CE6E81EC3F8C03829A7
+1846E8296DAAC9B4774AFC8E2C5AA2AD2D5D83F28C242D47AB652FFFAA9D7403
+2A04AF87D477D80D7F52DB590A333A990C83B263FE27A7633BE1A9B49A7A9214
+3AF37383EDBDDACE9472829F23F3D6D18588C9072E050FA2B5ABCB7779CC1C49
+30478BD91773BEC9B1222FE293077844BEDACF2519F02E7D8E0E6264EEEEC523
+2A8FB7054E4EF01BF5C1770ABC1E75824EF28907AAF2D79B1CDD31CB29B4B7B5
+1FAB24FF24FB947EAAB5228030C21AF42B16064E533117A7F101019CC85C4873
+3821907608D71609639CDD3D435FF30C82C3954C8B2EC22C95C26B0C15CA0CDE
+9AC3B015C9FB5F03370101719851FB22773CDC0008F636E53964C1429461470B
+D398251346BCE391000D8C69CD86366FFC84DBC645084191FB35B142A1741AFA
+F6E9D1355CAA69F4FBE160B88D8187609D9F426C0C4D7C440D0571FAF0FF988D
+8CDE5F66D47B40349463F1DF1E67AD514B88233B6D8A5AA8F94D2E70B4A215B6
+0442C8906A768E87D30F8173292556E278C0E27694547D31A77EB8D0C7098F6C
+40573F6F9ACBF67362868B94EBC2F7DC0CB9F66F1EFD4D56E6FAD086F8E10E69
+4CE496936420560DB4493D9E66BB505790D021DAAE167F4F93C0C78F22A0C787
+1C126761C204E5ABE81845A10FD73D0A37CE5C09444D137365E55E08FB7A4D2F
+CEE7D970175F44B750887ED52D07EB09AFF64D6FBC8E0220D358181E72DB6EB3
+0A794BE0EA91B9C549FF45815A23ED65E27646A7F5186334CCFD180E4304FDA2
+63530FD22F62A234EFDC7D4A7D691BC1639BD9E28D0A1DC0D7CD975CFCB219BA
+311F934F175F5DDBA3027C664A6A0B43137661BE848A6CCF2FAE338584BB16BD
+D12846E5A31B5987643D6FD36D88A4580EFC7C2E187258F076CF408377E5D9F6
+E4D72535751317240FACB2C0B316E380C3FBE4A34D4B735B2A0E07F0AFA6BCD4
+5A3696C9C0BA1D44EE8C81C651A2D103063F95F433839EA50F617BE476C98832
+C96D8E130B8666ADBB59DCC94104D777E7AD89C69AF35C768BABB664B9B3F761
+37E581AB3D09415B0A5A04A840F8E9B77E332C595F1C9C68D6E1050379BB9CBF
+85B08954F025F0EC42DC8DCA66F35151685766925A661BE20602C716F29771DF
+B97AE157947DB24EBFBDDFC162B9D763774D958AC244EB0ED10B67486F924F92
+092ECBDBCCAE2E187FC1C10B272E9DC5049DCB146E72B1C8CEEE027BF4393B37
+9A2D56F971AE8C5AFBC1D155B2FB3A485DC60058F50E41C11FFA783421F009BB
+0A56C4B7D38CA448C34F301DF1B21FA8E2B0985F053010A39C359276400581BA
+359942B434000B01BD856B78DD2292B95D4A1E8EE01CF515E1F2D74CE2878B9E
+83D44C1A3257782D76C283EFF5CA6390BBDFFE3C5E5D62C96B9FC4B3D3F21D50
+4C7F6C1D30AEECDDE1D9A5E9C6E170636026AC2F8C036FE704814547914D115A
+ED4EB7E90568279DE9F9EA886D84DD37811116BF085887582037BD2554E6725C
+D361D3F2A755E5FCDB0069FA63F08AFEED9A69E6C39DCE99BE85D73FEC078AEC
+A498AF621BA68E8A0F6A8EA08E5837F2DAF737AD7AB35D66B8488E9A7A96E5EE
+3A8E354FCA750C1727F326BF15D29E488D0755D96252550F78130562884C12CE
+EDB3656D1A71FB61A1AEA86ECDDF9C22B3B755E99D651E47FBDFEBBACFA023EB
+FE245A88B8B84E55172332FBAD5267354C033DCEAD6B6E9A756A25B5C90A6D54
+CB5406FC7DF8A2116FC73C66EB1296C8BD62C481FC2556A9847F403B219FD110
+8E9F62CD3326C153603B9405986914A33D3998CE44A75622C5F60E94429C6B2E
+5FC9D143012E2036FD5D85F6B94BCDAF2A3E04581AAAA03B26A5F502D7064995
+24143B568DC72D8652080D57A374305800A69A57157F4456276EA0278573CDFD
+03DF212A15CCBF2BEA4A2484B444E56477AC4D3E098E04FA91AD2F8B3955BA23
+CF267E3822EF6DB589125BA0571F01AE172CB7B3981CA5069DE807C1F4E81546
+C4E225221588D70714CB92404D5614751805CC4482977CD37394EE9D87302781
+BFEF351085C77D55EBCD63968D74F98E2900019A9DED8492022DF9285B4BB82B
+411500E9ADB89EFC013BAEF1A50F93F33A88697FD01E0E274A18345B511D325A
+BF9F31B5B2D40C6F0F24DEF390DC240D447E2DD478B117308B1B4AAAFE68987A
+95B9778FC8ADDAD6C9659B4E227509E2D96C8F9613D1B9756FCAFE634B8F8338
+122AC433D3BB361B8C92370C3D29FBEAD42D1DB08BEE961BEEA935170F6CE431
+DB51DD0E3495DBADA3283753163ED2F33FCEC11DC47E9DD9A9AFA0C8535E39EB
+1197F01A6E8E1B659AFD036F05B62E789EF74AE5C75E49EB4E4959AD9ACCA133
+D6F3C4DD031CF7C0906F4C25D561100C9DCDFB3FE775F32411518E933CB23885
+1FBF2A7D90963FBC1E5428DFCD47F1C40E03E73BC5F319FD85D6499C220C3975
+8E2E45F501F38001E8739CA6AF6DBDEA31830F44E0A58435524055DCEFEB13D4
+7C0821962995506A4D91767EC8E848BCAA045F4E17F49C3BCE53634B76DC9631
+38C7644E4A178F68FADF357371EA05B2107CD38FBB65885DF3A1B9A2D789F1D3
+CC448BF8A824DD198EB25ABA590695EBF737E579317EE43BDB461E68CD94F9A6
+EE70ED0223183CC7FE942FC95A909AD18B332933D99868976ED7A4BAB80A0F73
+5D2DF126958885409EE7DA9171DEB5C1DD45EA8C5605B09D5D7030784E809EEF
+23671F7E446759C3A7805E4610EF2809B942188C9843C457BABED6E86E596B45
+ECB617325C1AD8DFCF4BC5918C588F17C232F7D6A68A0C34B619DC7B2C312AA6
+C28C5B668F3E5F5AD6E0E703C067CB4A9EAF9C332E8ABD6CCC5C9A9A9170E513
+B30356843C3179918AB79BD8DFD5D1C5EE4BFB490F2A2D5578ABF904DA06797A
+18BA6B29B40167A15F30BEFEDE3B883BA2E3F7456B79829EA6401A1D4B24D246
+2F30494780181F6D14E98254B408B9A5F19359AEFE16C0ECAC266457198288FD
+9896565A0FA172EC4A1C00E0246590608CF4A0EDCBE3C379DAFD947CC822D857
+002538210C115755346538F9D1513AF7F2F1A8030331D8BDEC178B4D0EB36C1F
+6F4D0FB8C372759B5C4AE183BAB4C8CA99BD066C7592A4D29DE2125F8AB91522
+55A4C9A6185433933E53D9CFB6C0F9A084FFCAD64C6A93B03F68A33D0F7E53E3
+04694D65EEE330CF14D8A29950C6C15B3AF83A3C7E2EBAB95B34EF658A98A203
+B5B1AC2E6243FECA9270A9C758B30905F02A687C0B7F9A3735C27852BBE116B2
+88E54702854EAEF3E3660B5F23A7F1259C882EAAE8348F9E75B9BB05CE4FBD39
+A2D151AA4879FB77DF3B8323AA075A42D13361DAE648FDFC4ABBDCC7D959EA55
+48F3E55975DF3B9A80CDCB9346B21D61E3F2903E4BB9D22E9B633544BFCBFAF8
+D5F87DAFECEEE13D8775EB47EB44D7A19A88B80428A036890EDFC600042BC8FE
+77EB131364D1BBF8AFB417ACB7C553B73774E3C236EDEF4BFF06A50CC08108C8
+7F93F127B101F476A60B3322A0FE523B03A926F43ADB5900EBC129266054F71B
+A894F48EE8BB0E44DF612C92784A49503F529E282D75D260176059615C0D91D0
+392654CB3CB9009F606F3C0D54B7892EF75CBE163CA8B9F6B60E472456F4FEBE
+3B3FB3535F173461EDB704CF7DDC9E11D11A45273DB61AFEBD3B1F51CA18FC2C
+547699AAAB9F72A89E359C00E71A45CE5B3950331D6E61290BE0F4E3227C8807
+7FD95D8F16ED419EEA012B9FDE77865AF6AB873899C28A55B17AD0B4E525C736
+F1A543174F4592D26E2F4FF193E133390C69775C16DA080EE99949C17224DAE9
+76D150B46EBB6B89A2611CF17BEEF95E26295A3730FB9674ABF84FDBDCC4C82A
+86510B30C3EC9565B667822C2BAEA34244103D388BF1FEA474031527C85B7F20
+D7F35DB51D0388BCE4F5B7BCCE5BC825337599425B3B03C9B9927769F9F78FAD
+48A5C1C811D68FCB696A558182AC8BED38EB4049CDF644CB285EE86E4DA468D7
+68309CDEFB98DAD41CA0E1E54B48ED6ED1010D1305F94190F7E240937CB71E07
+E20B12CFAB644F4AD60961D12B0B0B3FF8BB24C951FAF5938D05B3D23431DE44
+4D323074DE804F11BA8B647CAD1A9239D4AA19654B7D398E65CA7209B66B51A4
+D29BCF59F6B9A2A7A8599B3BD55A227848CEEA57FA1480D86FBE093B70852A76
+07CCC9C1091F2E271351ED33642F46C9C9C7823B1BF97F82B6A24875E77B9B89
+D2A5D8EBBB583508508B30B43296002D1CFA28962E535C272992B76E0890F12E
+73B03B78574FF185DC13B1523C7264638C95902C0FAC2D099629A2B6C47866E1
+C351E6F8E7F92EDBA9AAF8E7CC8248E555137D22FDA47100EFF2760EB03F52D4
+D77F574551E0C12DC99FE8C73809143DAC2EF085B5C4B1F9DD3792A70D634BCF
+3CBFB43650FA4E32F88BFDA71FBEBBCE2890E0C3883FD33BC745B517E4B64DF5
+D86FB991298CF808C6769A803A5538C1E666BA226967933B025878D1CCB8F4A0
+AF0957FD2BA6E56439195CCA8E252B10C0AF848DC2E4F70B15C33C9EA7C99303
+D58661AE49F17F056CF8BDA8D690156E5A3F6FE21BE40AAE2C820F142C22ACE5
+ED070363D3FA1004DA3959A6304E5F572F0142BF397DC61E6349DC3E98491493
+D1D2B70C5BDCA541AF6105CB609E7884258806E5891BDBD7613076A8B8E42BCA
+E6B84FAC6DD3FD824680F5BA77B1910DFF6B954A8DAE3F6B3D9780A55D7A67F7
+843C14EBA078C1912AEB85CDAF69BB2385C7ADE1F90F01E47989043BE89B5041
+B6B024E26962BF694172E6116EBA7312CD6268B7920FED3ADE0E3E227D7A83F8
+8278620B2D157151AA95BC6D4CA943EA6BC73FBA1ED2D84CE5EBFADD41D99B9C
+9A80300D83A88672CFCF7B3F3F0B6EE62F28A8330C95A1D8646225D5C6B1B9B3
+84431BEC2507094BCE297FC0411D4BB4B6181B6A05C8F2C2A24D12E50A178784
+E57937467F1843338A34B52D23BCF961F9863D89A440EB7F05266CA3EBE5A68B
+61F2904FA54DDFE56F2D502797E0AF36273DE22C03C3AAD424567FD23CFA632E
+BD0F0409B3B52C6093336007E9A7F8EE660CD790CFFB05E36BD1AF81C82778B4
+0465BA6A9D4AB37BB128BE326ECEBDA72A3E25CEBEC61024D4D9F5A24F43C2D2
+9AF358500EDAF56CB0D66CEC0B0123DEC9B8C05F10278E8EC00C8BB7D13316CF
+0BE24A5DBB0B31F5FA4DA8AE1DAECADD078A4300BB7DDF6BCF8DB490110F94F0
+869DE91639AAACF9D9CB2CB491B6D39270416AD441DFE95DFDB8CBE0221D236F
+2DC9A6A25E7A9735317BA259695EBA983FB2AF9D119A193BC6E02128AFB31A0E
+255E04ED690221C0CC651C1AA9C904578B4EB970409FBE0E99917ABB34C0939A
+EAE4B0CE6EE177E9EDA5BD3601F45800E74E615DDE96D3ADA9F279E5972E5240
+020BC2ED41EC8924C413051A2AAE855BC63899175917CC8721C1F08EFC33E428
+8FECFFEAC1BAFC8ECA17056DA5CE6180485687DB086CB14C5A349D0EAC073BE2
+305C0F7FEA8A642495E0ED4F46B0640475C5D75935430EE0A01CFF8CB138379E
+FA46E77966D46B8DFFC61D80FF9FED124B505386FD1BAFC58E53B29FD438D6CE
+23625AD8CBABBAD9A857BC85DBC6051CF69F624979C658A3792F1CD12D22F117
+59ACE97B90B45043C4577747E9ACBA0A2D6097650B7EA939FF865009DC33993E
+B35C62C341F0791D8F129791D0D8FE20553DB7F30FED403F364DDC40211047F1
+E3D2519BEBAC8F8330435B60B38C0049DE44DF7ABA93229AFECCBD4C3CDD9B48
+8861EE1D31DA56E240CA5540B367C8065053FAD0E29105BB6C6D485BE059C6AD
+9986BB21961824A6152EB3758D8D50B73E783C9E4671392A713B41ED3C4F3713
+7E4C3EA0C1C55DBD7ECB96E3645BB2EFEE56522C5A79B12F672376C801E3BA24
+160DD230F9A0B4DF94A5AD361BFD9A1B83233A0402E93EF14E4B13E7B13F2C2C
+46656A2C359D5020C928C5F232AFB484C67C607F4B818DEBA385B1B508AE9078
+E3A15FDB784B24391116483ADD33339845FA6D12F742DF2A2DF85853026DDCCE
+F7126C4EBD7F8FF55BF4A37D5032795C76CB3D79EE4BD55B06B9C51F3E8F24A5
+A9DF3636127D413C87C4931F5FD1783F381BE866DE87BFC738BD1B1DAD380EFE
+1FBF60C8C7D13352E34B55665095409F9D19ACE1F365BD24F8A7A5DD82D6D41F
+3B1CE83C28F95F2B41E54834089C63582C9BFEB052BEE8F82D3DFA7DD9F19DAF
+1131F7C9850B29941E672EE78B6A4057D3326B230592394FDD3E19B93B450DB6
+CED6713F8D5BC0267A33329BC29E246074DC152090199FC2DC2F132A0C989CCF
+9460630EED38B0BD398607CB8EC039CD4BDEA661F8F50198F4116C40F82F209B
+0B5E71659F203864A60920B83097E0F02ED6CFF75BD53659D34F42318707029E
+186816165393FDEB184194A329C25877D1C9C383C99BA7E54778703215CDB884
+46AAA8F1B548D15ED0452526D015B4194C95ABA65609DCB9EA418F8361BD9330
+BB4F7AD0B50505E0AEAFBA39017E2C31649CD6E0DB2A2AC5D85D27CD5C4C6837
+A37A75BA69DD080979E3A4428E157722AB00EC9EC0EC2760F7637E7EE226661E
+84E8F77EBA9B837CCD22D4286A6CF695F8CA22D157C7C623BBDD074A6162EC85
+8B0EE8BD06EB146AB5204D9084D0842367A38730112CE27D791E781AB81FB69F
+EFA5C20D70F0A1B10A1EEAD6B460F3C76CDCFE0D92D45F472600A00C8782232E
+0F6858B5B92B4486211FC32C812CB429F54A3787B9B51E16D52B55EC79157905
+643DF8A892FE7AF73E1D51D57ED3899060801E32B53F93FD91686E7F857AAAA8
+55DE0750B64F8C319DC27CA19A7D38E9045A6DF2B444472A790338738D63B6EA
+C0786F1926A8194A4F6680A454DA83DE8158C68F596DB8791727813FB96A7E40
+B7EC5F671E5867AA4A189629F8B9E8BA7A607741D41223B6E09484DE58719022
+24F225EDC4C3CD0F18B968E6A743C8E3B8206DED5F00F5E93B2A3FC315A486FA
+C57EEDF67C5DA9BD101D98E6F729068B2D3A27A95A1F8C0EA92E5824574C4E1C
+3A4FD1688C0AB93BCC4E8315EA4B10F9BC75C490B18C5010F30A393DA18D2041
+E95C675B35C74EC532F2C0EA8E48907A0DBE20CBC3C52BC3D18FA15444AF9F5B
+ECDC5C3473ACC1C1605B15A7ED2BFBA556EFD85A2A9E4CC80AB1414316AC9B90
+DD10C24B1085B050DF5FD2F28E1A0694524F2CEF7C5152B76AEA117E51E225C1
+1EC484D1D441D99ED10FFD31715E6F10475AD4647A9A46EF22962D6997F27ACE
+10F583F5A02448312DE0F2B32CD484681B70807F43BE286C6B196A06806D0B22
+A3E58C0AB56BB717BC0A8510B5E49211A69EF1E6DA0BA4A41A6B76E7A881EFDA
+31CD1F081FD48F7938044B4AC86BADBA466071EF588D8C45D539F74FB0B0E1C3
+79AD2DC87C0F2C3FC264823E22E19C4E3E8078CEA42E071A5E6D5381BCF18829
+EF2893EA32B4108A2F52D7CFEC54A7265A0F4752EBA32BFC821F9A4A020AC999
+BA39EE3139091E66829D26DC1A24A767B0456FE50E3EC915F4E7D53B48D0F54B
+919EF87C10D3CF27FAFC925DD511C57B811AB2C40DCB4873A2FC903A954CF044
+1E4D6EB8E89BF9219CC31EF005F963E7D4D33C0434C1E76A83A6511FBFEE37E0
+533353F555E6303791EB82C52117BA073C9BB48B9062A556DF64CEB85EE0DA79
+32F94DF379D63C5E1316E6ACE816F26E207FA06C491AB34C3AD43E758D234827
+5A8509A6452E36DC81A7BA870D3AEBAD3BA821AEBA9B8FDAB7D33F0E4470F891
+58490414EBAC971E215E1A3BD789C1D7774F184CC5320FBF9382FA3291C1E823
+641AFAFE393A04B603EB6EF4C8E11746223A929E18AF414A75AB1A840F52B268
+AF74B03390A16431719523125C0D750984B771E8CA1E3FFBBACEDDE42A875A72
+116CE3F9D605FA6489646ED1D6D98E093C829FAFAB2D21377ABDA3F3642BE95D
+DFEAEBE6BA1F65E1DC4AA7B84FF25213D963E4F417024E6D436E1D3F551B3CCA
+71F37632B7B10CD4B9D437D6CD22620F003827787EEF30CD18D2320138ECE5A8
+B83C7C9A31391D2321683DD1A4A2969442E1D375138A12B63219AF769DDE5FDC
+C5AFFCE6CEA25BBDA9DB06F9655019B4ADE0D8C72C213CEB7CFA448F9E4B0026
+E8A531AA99026848E32BEB52E1815D04C711B3AE4CE048ED2B95A8E8E5AF394A
+C0059D62AB26C4F13EB8BE84232329B606F8738697ED0761E12D74731D4B66AA
+14C337680BC5F746E17CF94E5759815F5EE644774BC783B1C0069803CA6B859C
+FBECB5605CA1C721B604BF48A7A2AD7149333EA8EDA9A9CBF1A1DDD368510AD0
+9D7444BCAE2E5D8A11F5F08BE716A32E389C6DAE4EA62A3511562D70F8F79946
+A4AD033778741EEF0A55CEA96ABD06FAC4A1F2E973E8969566231CD704AD7632
+591B2CDD3FA6FC413AD1C5A5684182BC95A757C44F8FE6D0263188AF5E6A87D7
+92740B707FF88179CBF34065832869F094FF12DEB66BE0D01AB466E236CE
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+TeXDict begin 40258431 52099146 1000 600 600 (bashref.dvi)
+@start /Fa 130[62 1[62 123[{}2 119.552 /CMTT12 rf /Fb
+133[34 41 41 55 41 43 30 30 30 41 43 38 43 64 21 41 23
+21 43 38 23 34 43 34 43 38 8[58 4[43 57 1[52 60 58 70
+3[28 58 3[59 1[54 58 7[38 38 38 38 38 38 38 38 38 38
+3[21 31[43 12[{}50 74.7198 /CMR9 rf /Fc 209[24 46[{}1
+74.7198 /CMTI9 rf /Fd 134[39 39 2[39 39 39 39 2[39 39
+39 39 2[39 39 2[39 3[39 19[39 27[39 39 2[39 45[{}18 74.7198
+/CMSLTT10 rf /Fe 129[39 39 1[39 39 39 39 39 39 39 39
+39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39
+39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 1[39 39
+39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 39 39 1[39
+39 39 5[39 39 39 39 39 39 39 39 39 1[39 39 39 39 39 1[39
+39 1[39 33[{}81 74.7198 /CMTT9 rf /Ff 138[39 27 28 28
+1[39 1[39 2[37 22 4[31 1[31 1[35 5[20 6[51 39 52 1[48
+3[44 5[46 48 54 51 50 53 15[35 3[24 5[20 39[{}26 66.4176
+/CMR8 rf /Fg 150[30 30 104[{}2 74.7198 /CMSY9 rf /Fh
+135[61 2[61 1[46 2[56 63 5[30 1[64 2[62 52[55 47[{}9
+99.6264 /CMCSC10 rf /Fi 140[56 3[56 56 1[56 2[56 56 56
+57[56 45[{}8 109.091 /CMTT12 rf /Fj 134[48 48 48 48 48
+48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
+48 48 1[48 2[48 3[48 3[48 1[48 1[48 1[48 48 48 1[48 48
+48 1[48 48 48 48 1[48 6[48 6[48 48 48 48 2[48 2[48 2[48
+39[{}50 90.9091 /CMSLTT10 rf /Fk 134[65 65 89 65 68 48
+48 50 65 68 61 68 102 34 65 1[34 68 61 37 56 68 55 68
+60 34 6[93 1[127 2[85 68 92 92 84 92 96 116 74 96 1[46
+96 96 77 81 94 89 87 93 1[58 5[61 61 61 61 61 61 61 61
+61 61 1[34 41 34 4[34 26[68 72 11[{}63 109.091 /CMBX12
+rf /Fl 135[56 2[56 54 42 55 1[51 58 56 68 47 1[39 27
+56 58 49 51 57 54 53 56 46[50 2[50 1[34 45[{}23 90.9091
+/CMCSC10 rf /Fm 135[42 1[42 1[30 37 38 1[46 46 51 74
+23 2[28 1[42 1[42 46 42 1[46 50[28 33[51 12[{}18 90.9091
+/CMTI10 rf /Fn 209[43 46[{}1 119.552 /CMBXTI10 rf /Fo
+134[85 85 1[85 90 63 64 66 1[90 81 90 134 45 1[49 45
+90 81 49 74 90 72 90 78 10[122 124 112 90 120 3[126 153
+97 1[83 60 126 127 101 106 124 117 115 122 7[81 81 81
+81 81 81 81 81 81 81 35[90 94 11[{}52 143.462 /CMBX12
+rf /Fp 200[0 21[91 17[45 1[91 12[71{}5 90.9091 /CMSY10
+rf /Fq 134[48 48 66 48 51 35 36 36 48 51 45 51 76 25
+48 28 25 51 45 28 40 51 40 51 45 8[68 93 1[68 66 51 67
+1[62 71 68 83 57 71 1[33 68 71 59 62 69 66 64 68 13[45
+45 45 3[30 2[45 27[76 1[51 53 11[{}54 90.9091 /CMSL10
+rf /Fr 134[71 71 97 71 75 52 53 55 1[75 67 75 112 37
+71 41 37 75 67 41 61 75 60 75 65 3[37 1[37 1[102 102
+139 102 103 94 75 100 101 92 101 105 128 81 105 69 50
+105 106 85 88 103 97 96 102 105 64 4[37 67 67 67 67 67
+67 67 67 67 67 1[37 45 37 1[67 5[67 112 1[41 20[75 78
+11[{}73 119.552 /CMBX12 rf /Fs 129[48 48 48 48 48 48
+48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
+48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
+48 48 48 48 48 48 48 48 48 48 1[48 48 48 48 48 48 48
+48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
+48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 33[{}93
+90.9091 /CMTT10 rf /Ft 131[91 45 40 48 48 66 48 51 35
+36 36 48 51 45 51 76 25 48 28 25 51 45 28 40 51 40 51
+45 25 2[25 45 25 56 68 68 93 68 68 66 51 67 71 62 71
+68 83 57 71 47 33 68 71 59 62 69 66 64 68 1[43 1[71 1[25
+25 45 45 45 45 45 45 45 45 45 45 45 25 30 25 2[35 35
+25 1[76 45 1[45 25 18[76 51 51 53 11[{}87 90.9091 /CMR10
+rf /Fu 138[108 1[76 79 3[108 1[54 3[108 1[59 88 1[86
+1[94 14[144 4[184 10[138 66[{}13 172.154 /CMBX12 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 150 1318 a Fu(Bash)64 b(Reference)j(Man)-5
+b(ual)p 150 1385 3600 34 v 2361 1481 a Ft(Reference)31
+b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(4.0,)g(for)f
+Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.0.)3145 1697 y(Decem)m(b)s(er)g(2008)
+150 4935 y Fr(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11
+b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068
+y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
+b(oundation)p 150 5141 3600 17 v eop end
+%%Page: 2 2
+TeXDict begin 2 1 bop 150 2889 a Ft(This)35 b(text)h(is)g(a)g(brief)f
+(description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(4.0,)c(29)f(Decem)m(b)s
+(er)g(2008\).)150 3133 y(This)f(is)g(Edition)h(4.0,)h(last)g(up)s
+(dated)d(29)i(Decem)m(b)s(er)h(2008,)h(of)d Fq(The)g(GNU)i(Bash)e
+(Reference)i(Man)m(ual)p Ft(,)150 3243 y(for)e Fs(Bash)p
+Ft(,)g(V)-8 b(ersion)31 b(4.0.)150 3377 y(Cop)m(yrigh)m(t)602
+3374 y(c)577 3377 y Fp(\015)f Ft(1988{2009)35 b(F)-8
+b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)150
+3512 y(P)m(ermission)h(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d
+(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m
+(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s
+(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g(copies.)390
+3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
+b(,)38 b(distribute)d(and/or)g(mo)s(dify)f(this)h(do)s(cumen)m(t)g
+(under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
+b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8 b(ersion)39
+b(1.2)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
+b(published)d(b)m(y)j(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8
+b(oundation;)30 b(with)d(no)g(In)m(v)-5 b(arian)m(t)28
+b(Sections,)390 4085 y(with)i(the)h(F)-8 b(ron)m(t-Co)m(v)m(er)33
+b(texts)e(b)s(eing)g(\\A)g(GNU)g(Man)m(ual",)h(and)e(with)g(the)h(Bac)m
+(k-Co)m(v)m(er)390 4194 y(T)-8 b(exts)33 b(as)g(in)f(\(a\))h(b)s(elo)m
+(w.)47 b(A)33 b(cop)m(y)g(of)f(the)h(license)g(is)g(included)e(in)h
+(the)h(section)g(en)m(titled)390 4304 y(\\GNU)e(F)-8
+b(ree)32 b(Do)s(cumen)m(tation)g(License".)390 4438 y(\(a\))f(The)f
+(FSF's)g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)31 b(is:)41
+b(Y)-8 b(ou)31 b(are)f(free)h(to)f(cop)m(y)h(and)f(mo)s(dify)f(this)h
+(GNU)390 4548 y(man)m(ual.)41 b(Buying)30 b(copies)h(from)e(GNU)i
+(Press)f(supp)s(orts)e(the)i(FSF)g(in)g(dev)m(eloping)h(GNU)390
+4658 y(and)f(promoting)g(soft)m(w)m(are)i(freedom.")150
+4902 y(Published)d(b)m(y)h(the)h(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation)150 5011 y(59)31 b(T)-8 b(emple)31 b(Place,)h(Suite)e(330,)
+150 5121 y(Boston,)i(MA)e(02111-1307)150 5230 y(USA)p
+eop end
+%%Page: -1 3
+TeXDict begin -1 2 bop 3725 -116 a Ft(i)150 299 y Fo(T)-13
+b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fr(1)135 b(In)l(tro)t
+(duction)15 b Fn(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
+60 b Fr(1)449 778 y Ft(1.1)92 b(What)31 b(is)f(Bash?)21
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 b Ft(1)449 888 y(1.2)92
+b(What)31 b(is)f(a)h(shell?)14 b Fm(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44
+b Ft(1)150 1130 y Fr(2)135 b(De\014nitions)37 b Fn(.)19
+b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
+(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)81
+b Fr(3)150 1400 y(3)135 b(Basic)45 b(Shell)g(F)-11 b(eatures)12
+b Fn(.)20 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
+(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)57 b Fr(5)449 1537 y Ft(3.1)92
+b(Shell)30 b(Syn)m(tax)22 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52
+b Ft(5)748 1646 y(3.1.1)93 b(Shell)30 b(Op)s(eration)10
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40
+b Ft(5)748 1756 y(3.1.2)93 b(Quoting)10 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40
+b Ft(5)1047 1866 y(3.1.2.1)93 b(Escap)s(e)30 b(Character)24
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(6)1047 1975 y(3.1.2.2)93
+b(Single)31 b(Quotes)15 b Fm(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45
+b Ft(6)1047 2085 y(3.1.2.3)93 b(Double)31 b(Quotes)15
+b Fm(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)44 b Ft(6)1047 2194 y(3.1.2.4)93
+b(ANSI-C)30 b(Quoting)18 b Fm(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48
+b Ft(6)1047 2304 y(3.1.2.5)93 b(Lo)s(cale-Sp)s(eci\014c)32
+b(T)-8 b(ranslation)11 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)41 b Ft(7)748 2413 y(3.1.3)93 b(Commen)m(ts)25
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)55 b Ft(7)449 2523 y(3.2)92 b(Shell)30 b(Commands)23
+b Fm(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(7)748 2633 y(3.2.1)93
+b(Simple)30 b(Commands)15 b Fm(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)45 b Ft(8)748 2742 y(3.2.2)93 b(Pip)s(elines)14
+b Fm(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)44 b Ft(8)748 2852 y(3.2.3)93 b(Lists)30
+b(of)h(Commands)23 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+54 b Ft(9)748 2961 y(3.2.4)93 b(Comp)s(ound)28 b(Commands)17
+b Fm(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 b Ft(9)1047 3071
+y(3.2.4.1)93 b(Lo)s(oping)30 b(Constructs)c Fm(.)15 b(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56
+b Ft(9)1047 3181 y(3.2.4.2)93 b(Conditional)31 b(Constructs)18
+b Fm(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47
+b Ft(10)1047 3290 y(3.2.4.3)93 b(Grouping)30 b(Commands)13
+b Fm(.)h(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)42 b Ft(13)748 3400 y(3.2.5)93 b(Copro)s(cesses)20
+b Fm(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)49 b Ft(14)449 3509 y(3.3)92 b(Shell)30 b(F)-8 b(unctions)8
+b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)38 b Ft(14)449 3619 y(3.4)92
+b(Shell)30 b(P)m(arameters)20 b Fm(.)c(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b
+Ft(16)748 3729 y(3.4.1)93 b(P)m(ositional)32 b(P)m(arameters)14
+b Fm(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43 b Ft(16)748 3838
+y(3.4.2)93 b(Sp)s(ecial)30 b(P)m(arameters)f Fm(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Ft(16)449
+3948 y(3.5)92 b(Shell)30 b(Expansions)20 b Fm(.)14 b(.)h(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49
+b Ft(17)748 4057 y(3.5.1)93 b(Brace)31 b(Expansion)e
+Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)58
+b Ft(18)748 4167 y(3.5.2)93 b(Tilde)30 b(Expansion)17
+b Fm(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47
+b Ft(19)748 4276 y(3.5.3)93 b(Shell)30 b(P)m(arameter)h(Expansion)18
+b Fm(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)47 b Ft(20)748 4386 y(3.5.4)93 b(Command)29
+b(Substitution)f Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Ft(22)748
+4496 y(3.5.5)93 b(Arithmetic)31 b(Expansion)12 b Fm(.)j(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)42 b Ft(23)748 4605 y(3.5.6)93 b(Pro)s(cess)30
+b(Substitution)19 b Fm(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49
+b Ft(23)748 4715 y(3.5.7)93 b(W)-8 b(ord)30 b(Splitting)c
+Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55
+b Ft(24)748 4824 y(3.5.8)93 b(Filename)31 b(Expansion)25
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(24)1047
+4934 y(3.5.8.1)93 b(P)m(attern)31 b(Matc)m(hing)20 b
+Fm(.)d(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)49 b Ft(25)748 5044 y(3.5.9)93 b(Quote)30
+b(Remo)m(v)-5 b(al)15 b Fm(.)i(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)44 b Ft(26)449 5153 y(3.6)92 b(Redirections)24
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(26)748 5263
+y(3.6.1)93 b(Redirecting)31 b(Input)11 b Fm(.)j(.)h(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)40 b Ft(27)p eop end
+%%Page: -2 4
+TeXDict begin -2 3 bop 150 -116 a Ft(ii)2612 b(Bash)31
+b(Reference)g(Man)m(ual)748 83 y(3.6.2)93 b(Redirecting)31
+b(Output)18 b Fm(.)13 b(.)i(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47
+b Ft(27)748 193 y(3.6.3)93 b(App)s(ending)28 b(Redirected)j(Output)16
+b Fm(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)45 b Ft(27)748 302 y(3.6.4)93 b(Redirecting)31 b(Standard)e(Output)
+g(and)h(Standard)f(Error)954 412 y Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)54 b Ft(28)748 521 y(3.6.5)93 b(App)s(ending)28
+b(Standard)h(Output)h(and)f(Standard)h(Error)954 631
+y Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54
+b Ft(28)748 741 y(3.6.6)93 b(Here)30 b(Do)s(cumen)m(ts)13
+b Fm(.)k(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43
+b Ft(28)748 850 y(3.6.7)93 b(Here)30 b(Strings)10 b Fm(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39
+b Ft(29)748 960 y(3.6.8)93 b(Duplicating)31 b(File)h(Descriptors)17
+b Fm(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)47 b Ft(29)748 1069 y(3.6.9)93 b(Mo)m(ving)31
+b(File)h(Descriptors)15 b Fm(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)44
+b Ft(29)748 1179 y(3.6.10)93 b(Op)s(ening)29 b(File)j(Descriptors)f
+(for)f(Reading)h(and)e(W)-8 b(riting)954 1289 y Fm(.)16
+b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b
+Ft(29)449 1398 y(3.7)92 b(Executing)31 b(Commands)25
+b Fm(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+56 b Ft(30)748 1508 y(3.7.1)93 b(Simple)30 b(Command)f(Expansion)c
+Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)55 b Ft(30)748 1617 y(3.7.2)93 b(Command)29
+b(Searc)m(h)i(and)e(Execution)13 b Fm(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)42 b Ft(30)748 1727 y(3.7.3)93
+b(Command)29 b(Execution)i(En)m(vironmen)m(t)18 b Fm(.)d(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 b Ft(31)748 1836
+y(3.7.4)93 b(En)m(vironmen)m(t)21 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b Ft(32)748 1946
+y(3.7.5)93 b(Exit)30 b(Status)8 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)37 b Ft(32)748
+2056 y(3.7.6)93 b(Signals)10 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39
+b Ft(33)449 2165 y(3.8)92 b(Shell)30 b(Scripts)21 b Fm(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 b Ft(34)150 2408 y Fr(4)135
+b(Shell)45 b(Builtin)g(Commands)38 b Fn(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)82 b Fr(35)449
+2545 y Ft(4.1)92 b(Bourne)30 b(Shell)g(Builtins)16 b
+Fm(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+45 b Ft(35)449 2654 y(4.2)92 b(Bash)30 b(Builtin)h(Commands)17
+b Fm(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46
+b Ft(41)449 2764 y(4.3)92 b(Mo)s(difying)30 b(Shell)h(Beha)m(vior)23
+b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52
+b Ft(50)748 2873 y(4.3.1)93 b(The)29 b(Set)i(Builtin)11
+b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)40
+b Ft(50)748 2983 y(4.3.2)93 b(The)29 b(Shopt)h(Builtin)23
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52
+b Ft(54)449 3093 y(4.4)92 b(Sp)s(ecial)31 b(Builtins)22
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)52 b Ft(58)150 3335 y Fr(5)135
+b(Shell)45 b(V)-11 b(ariables)10 b Fn(.)21 b(.)e(.)h(.)f(.)g(.)h(.)f(.)
+h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)55 b Fr(61)449 3472 y Ft(5.1)92 b(Bourne)30
+b(Shell)g(V)-8 b(ariables)11 b Fm(.)17 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Ft(61)449 3582 y(5.2)92
+b(Bash)30 b(V)-8 b(ariables)17 b Fm(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46
+b Ft(61)150 3824 y Fr(6)135 b(Bash)44 b(F)-11 b(eatures)31
+b Fn(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
+(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)75 b Fr(71)449
+3961 y Ft(6.1)92 b(In)m(v)m(oking)31 b(Bash)e Fm(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)58 b Ft(71)449 4071 y(6.2)92 b(Bash)30
+b(Startup)g(Files)c Fm(.)15 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(73)449 4180 y(6.3)92
+b(In)m(teractiv)m(e)33 b(Shells)14 b Fm(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)43
+b Ft(75)748 4290 y(6.3.1)93 b(What)31 b(is)f(an)g(In)m(teractiv)m(e)j
+(Shell?)20 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)49 b Ft(75)748 4399 y(6.3.2)93
+b(Is)30 b(this)g(Shell)g(In)m(teractiv)m(e?)10 b Fm(.)18
+b(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)40 b Ft(75)748 4509 y(6.3.3)93
+b(In)m(teractiv)m(e)32 b(Shell)f(Beha)m(vior)22 b Fm(.)16
+b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)51 b Ft(75)449 4619 y(6.4)92 b(Bash)30
+b(Conditional)h(Expressions)20 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)49 b Ft(76)449 4728 y(6.5)92 b(Shell)30 b(Arithmetic)f
+Fm(.)15 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)57 b Ft(78)449 4838 y(6.6)92 b(Aliases)25
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53
+b Ft(79)449 4947 y(6.7)92 b(Arra)m(ys)29 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Ft(80)449 5057 y(6.8)92
+b(The)30 b(Directory)i(Stac)m(k)15 b Fm(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b Ft(81)748
+5166 y(6.8.1)93 b(Directory)31 b(Stac)m(k)h(Builtins)10
+b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Ft(82)449 5276 y(6.9)92
+b(Con)m(trolling)31 b(the)g(Prompt)15 b Fm(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)44 b Ft(83)p eop end
+%%Page: -3 5
+TeXDict begin -3 4 bop 3674 -116 a Ft(iii)449 83 y(6.10)92
+b(The)30 b(Restricted)i(Shell)11 b Fm(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)40 b Ft(84)449 193
+y(6.11)92 b(Bash)31 b(POSIX)e(Mo)s(de)16 b Fm(.)f(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b
+Ft(85)150 435 y Fr(7)135 b(Job)45 b(Con)l(trol)32 b Fn(.)20
+b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
+(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)76 b Fr(89)449
+572 y Ft(7.1)92 b(Job)30 b(Con)m(trol)h(Basics)23 b Fm(.)16
+b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)52 b Ft(89)449 682 y(7.2)92 b(Job)30 b(Con)m(trol)h(Builtins)12
+b Fm(.)j(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)41 b Ft(90)449 791 y(7.3)92 b(Job)30 b(Con)m(trol)h(V)-8
+b(ariables)30 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)58 b Ft(92)150 1034 y Fr(8)135 b(Command)45
+b(Line)g(Editing)38 b Fn(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)81 b Fr(93)449 1171 y
+Ft(8.1)92 b(In)m(tro)s(duction)30 b(to)h(Line)f(Editing)24
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(93)449
+1280 y(8.2)92 b(Readline)31 b(In)m(teraction)15 b Fm(.)i(.)e(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
+b Ft(93)748 1390 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)25
+b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Ft(93)748 1499 y(8.2.2)93
+b(Readline)31 b(Mo)m(v)m(emen)m(t)h(Commands)13 b Fm(.)h(.)h(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b
+Ft(94)748 1609 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)20
+b Fm(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)50 b Ft(94)748 1719 y(8.2.4)93 b(Readline)31
+b(Argumen)m(ts)23 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53
+b Ft(95)748 1828 y(8.2.5)93 b(Searc)m(hing)30 b(for)h(Commands)e(in)h
+(the)g(History)c Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54
+b Ft(95)449 1938 y(8.3)92 b(Readline)31 b(Init)f(File)f
+Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)56 b Ft(96)748 2047 y(8.3.1)93 b(Readline)31
+b(Init)f(File)h(Syn)m(tax)12 b Fm(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41
+b Ft(96)748 2157 y(8.3.2)93 b(Conditional)30 b(Init)h(Constructs)d
+Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)58 b Ft(102)748 2266 y(8.3.3)93 b(Sample)30
+b(Init)g(File)20 b Fm(.)c(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+50 b Ft(103)449 2376 y(8.4)92 b(Bindable)31 b(Readline)g(Commands)11
+b Fm(.)j(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(106)748 2486
+y(8.4.1)93 b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)c
+Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(106)748 2595 y(8.4.2)93
+b(Commands)29 b(F)-8 b(or)31 b(Manipulating)g(The)f(History)17
+b Fm(.)e(.)g(.)g(.)h(.)f(.)46 b Ft(107)748 2705 y(8.4.3)93
+b(Commands)29 b(F)-8 b(or)31 b(Changing)f(T)-8 b(ext)29
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+58 b Ft(108)748 2814 y(8.4.4)93 b(Killing)31 b(And)e(Y)-8
+b(anking)16 b Fm(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b
+Ft(109)748 2924 y(8.4.5)93 b(Sp)s(ecifying)29 b(Numeric)i(Argumen)m(ts)
+23 b Fm(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)53 b Ft(110)748 3034 y(8.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s
+(e)f(F)-8 b(or)31 b(Y)-8 b(ou)18 b Fm(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b Ft(110)748 3143 y(8.4.7)93
+b(Keyb)s(oard)29 b(Macros)10 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)40 b Ft(112)748 3253 y(8.4.8)93 b(Some)30
+b(Miscellaneous)i(Commands)12 b Fm(.)i(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b Ft(112)449 3362 y(8.5)92
+b(Readline)31 b(vi)f(Mo)s(de)c Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(114)449
+3472 y(8.6)92 b(Programmable)31 b(Completion)12 b Fm(.)j(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(115)449 3582 y(8.7)92
+b(Programmable)31 b(Completion)g(Builtins)12 b Fm(.)j(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42
+b Ft(116)150 3824 y Fr(9)135 b(Using)45 b(History)h(In)l(teractiv)l
+(ely)14 b Fn(.)22 b(.)d(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
+(.)58 b Fr(121)449 3961 y Ft(9.1)92 b(Bash)30 b(History)h(F)-8
+b(acilities)11 b Fm(.)19 b(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)41 b Ft(121)449 4071 y(9.2)92 b(Bash)30 b(History)h
+(Builtins)9 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)38 b Ft(121)449 4180 y(9.3)92 b(History)31
+b(Expansion)d Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)58 b Ft(123)748 4290 y(9.3.1)93 b(Ev)m(en)m(t)31
+b(Designators)21 b Fm(.)c(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51
+b Ft(123)748 4399 y(9.3.2)93 b(W)-8 b(ord)30 b(Designators)g
+Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Ft(124)748
+4509 y(9.3.3)93 b(Mo)s(di\014ers)27 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)57 b Ft(125)p
+eop end
+%%Page: -4 6
+TeXDict begin -4 5 bop 150 -116 a Ft(iv)2589 b(Bash)31
+b(Reference)g(Man)m(ual)150 83 y Fr(10)135 b(Installing)46
+b(Bash)30 b Fn(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
+(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)74 b Fr(127)449
+220 y Ft(10.1)92 b(Basic)32 b(Installation)d Fm(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+57 b Ft(127)449 330 y(10.2)92 b(Compilers)30 b(and)g(Options)22
+b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)51
+b Ft(127)449 439 y(10.3)92 b(Compiling)31 b(F)-8 b(or)31
+b(Multiple)g(Arc)m(hitectures)12 b Fm(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41 b Ft(128)449
+549 y(10.4)92 b(Installation)32 b(Names)22 b Fm(.)16
+b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)51
+b Ft(128)449 658 y(10.5)92 b(Sp)s(ecifying)30 b(the)h(System)f(T)m(yp)s
+(e)11 b Fm(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(128)449
+768 y(10.6)92 b(Sharing)30 b(Defaults)21 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51
+b Ft(129)449 878 y(10.7)92 b(Op)s(eration)30 b(Con)m(trols)12
+b Fm(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)41 b Ft(129)449 987 y(10.8)92 b(Optional)31 b(F)-8
+b(eatures)17 b Fm(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)47 b Ft(129)150 1230 y Fr(App)t(endix)d(A)99
+b(Rep)t(orting)46 b(Bugs)12 b Fn(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)g(.)h(.)f(.)h(.)56 b Fr(135)150 1499 y(App)t(endix)44
+b(B)105 b(Ma)7 b(jor)46 b(Di\013erences)g(F)-11 b(rom)45
+b(The)f(Bourne)419 1632 y(Shell)17 b Fn(.)j(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)61 b Fr(137)449 1769
+y Ft(B.1)92 b(Implemen)m(tation)31 b(Di\013erences)h(F)-8
+b(rom)31 b(The)f(SVR4.2)h(Shell)21 b Fm(.)15 b(.)g(.)g(.)g(.)50
+b Ft(141)150 2012 y Fr(App)t(endix)44 b(C)104 b(GNU)46
+b(F)-11 b(ree)44 b(Do)t(cumen)l(tation)j(License)454
+2144 y Fn(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
+f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
+(.)f(.)g(.)h(.)f(.)h(.)f(.)79 b Fr(143)150 2414 y(App)t(endix)44
+b(D)98 b(Indexes)36 b Fn(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)79 b Fr(151)449
+2551 y Ft(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h(Commands)21
+b Fm(.)14 b(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)51 b Ft(151)449 2661 y(D.2)92
+b(Index)29 b(of)i(Shell)f(Reserv)m(ed)h(W)-8 b(ords)13
+b Fm(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43 b Ft(152)449 2770
+y(D.3)92 b(P)m(arameter)32 b(and)d(V)-8 b(ariable)32
+b(Index)21 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 b Ft(152)449
+2880 y(D.4)92 b(F)-8 b(unction)31 b(Index)19 b Fm(.)c(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49
+b Ft(154)449 2990 y(D.5)92 b(Concept)31 b(Index)9 b Fm(.)k(.)j(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)38 b Ft(156)p eop end
+%%Page: 1 7
+TeXDict begin 1 6 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(In)m(tro)s(duction)2592 b(1)150 299 y Fo(1)80 b(In)l(tro)t(duction)
+150 675 y Fr(1.1)68 b(What)45 b(is)g(Bash?)275 923 y
+Ft(Bash)29 b(is)h(the)f(shell,)i(or)e(command)g(language)i(in)m
+(terpreter,)g(for)e(the)h Fl(gnu)f Ft(op)s(erating)h(system.)40
+b(The)150 1033 y(name)33 b(is)g(an)g(acron)m(ym)g(for)g(the)g(`)p
+Fs(Bourne-Again)27 b(SHell)p Ft(',)32 b(a)i(pun)d(on)i(Stephen)f
+(Bourne,)h(the)g(author)150 1142 y(of)f(the)f(direct)h(ancestor)h(of)e
+(the)h(curren)m(t)f(Unix)g(shell)h Fs(sh)p Ft(,)f(whic)m(h)g(app)s
+(eared)g(in)g(the)h(Sev)m(en)m(th)g(Edition)150 1252
+y(Bell)g(Labs)e(Researc)m(h)h(v)m(ersion)g(of)f(Unix.)275
+1391 y(Bash)f(is)g(largely)i(compatible)f(with)f Fs(sh)g
+Ft(and)g(incorp)s(orates)g(useful)g(features)g(from)g(the)g(Korn)g
+(shell)150 1500 y Fs(ksh)37 b Ft(and)h(the)g(C)g(shell)g
+Fs(csh)p Ft(.)64 b(It)38 b(is)g(in)m(tended)g(to)h(b)s(e)f(a)g
+(conforman)m(t)h(implemen)m(tation)h(of)e(the)g Fl(ieee)150
+1610 y(posix)c Ft(Shell)g(and)g(T)-8 b(o)s(ols)35 b(p)s(ortion)f(of)g
+(the)h Fl(ieee)f(posix)f Ft(sp)s(eci\014cation)j(\()p
+Fl(ieee)e Ft(Standard)f(1003.1\).)56 b(It)150 1719 y(o\013ers)31
+b(functional)f(impro)m(v)m(emen)m(ts)i(o)m(v)m(er)g Fs(sh)d
+Ft(for)i(b)s(oth)e(in)m(teractiv)m(e)k(and)d(programming)g(use.)275
+1858 y(While)h(the)g Fl(gnu)f Ft(op)s(erating)h(system)g(pro)m(vides)f
+(other)h(shells,)g(including)f(a)h(v)m(ersion)g(of)g
+Fs(csh)p Ft(,)f(Bash)150 1968 y(is)j(the)h(default)f(shell.)49
+b(Lik)m(e)34 b(other)g Fl(gnu)f Ft(soft)m(w)m(are,)i(Bash)f(is)f(quite)
+h(p)s(ortable.)49 b(It)33 b(curren)m(tly)g(runs)f(on)150
+2077 y(nearly)c(ev)m(ery)g(v)m(ersion)g(of)f(Unix)h(and)e(a)i(few)f
+(other)h(op)s(erating)g(systems)f Fp(\000)g Ft(indep)s(enden)m
+(tly-supp)s(orted)150 2187 y(p)s(orts)j(exist)h(for)f
+Fl(ms-dos)p Ft(,)f Fl(os/2)p Ft(,)i(and)f(Windo)m(ws)g(platforms.)150
+2455 y Fr(1.2)68 b(What)45 b(is)g(a)h(shell?)275 2703
+y Ft(A)m(t)41 b(its)f(base,)j(a)e(shell)f(is)g(simply)g(a)h(macro)f
+(pro)s(cessor)g(that)h(executes)g(commands.)70 b(The)40
+b(term)150 2813 y(macro)29 b(pro)s(cessor)f(means)g(functionalit)m(y)i
+(where)e(text)i(and)e(sym)m(b)s(ols)g(are)g(expanded)g(to)h(create)h
+(larger)150 2922 y(expressions.)275 3061 y(A)k(Unix)h(shell)g(is)f(b)s
+(oth)g(a)h(command)g(in)m(terpreter)g(and)f(a)h(programming)f
+(language.)55 b(As)35 b(a)g(com-)150 3170 y(mand)30 b(in)m(terpreter,)i
+(the)g(shell)f(pro)m(vides)g(the)h(user)e(in)m(terface)j(to)f(the)f
+(ric)m(h)h(set)g(of)f Fl(gnu)g Ft(utilities.)44 b(The)150
+3280 y(programming)30 b(language)h(features)f(allo)m(w)h(these)g
+(utilities)g(to)g(b)s(e)e(com)m(bined.)41 b(Files)31
+b(con)m(taining)g(com-)150 3390 y(mands)e(can)i(b)s(e)e(created,)j(and)
+d(b)s(ecome)i(commands)f(themselv)m(es.)42 b(These)30
+b(new)f(commands)h(ha)m(v)m(e)i(the)150 3499 y(same)f(status)h(as)f
+(system)g(commands)g(in)g(directories)h(suc)m(h)f(as)g(`)p
+Fs(/bin)p Ft(',)g(allo)m(wing)i(users)d(or)h(groups)f(to)150
+3609 y(establish)h(custom)f(en)m(vironmen)m(ts)h(to)g(automate)h(their)
+f(common)f(tasks.)275 3748 y(Shells)j(ma)m(y)h(b)s(e)f(used)g(in)m
+(teractiv)m(ely)k(or)d(non-in)m(teractiv)m(ely)-8 b(.)54
+b(In)33 b(in)m(teractiv)m(e)j(mo)s(de,)f(they)e(accept)150
+3857 y(input)21 b(t)m(yp)s(ed)h(from)g(the)h(k)m(eyb)s(oard.)37
+b(When)22 b(executing)i(non-in)m(teractiv)m(ely)-8 b(,)27
+b(shells)c(execute)g(commands)150 3967 y(read)30 b(from)g(a)h(\014le.)
+275 4105 y(A)41 b(shell)g(allo)m(ws)h(execution)h(of)e
+Fl(gnu)g Ft(commands,)i(b)s(oth)e(sync)m(hronously)f(and)h(async)m
+(hronously)-8 b(.)150 4215 y(The)29 b(shell)g(w)m(aits)i(for)e(sync)m
+(hronous)f(commands)h(to)h(complete)h(b)s(efore)e(accepting)i(more)e
+(input;)g(asyn-)150 4325 y(c)m(hronous)22 b(commands)h(con)m(tin)m(ue)h
+(to)f(execute)h(in)e(parallel)i(with)f(the)f(shell)h(while)g(it)g
+(reads)g(and)f(executes)150 4434 y(additional)35 b(commands.)50
+b(The)33 b Fq(redirection)h Ft(constructs)g(p)s(ermit)f(\014ne-grained)
+g(con)m(trol)i(of)f(the)g(input)150 4544 y(and)40 b(output)f(of)i
+(those)f(commands.)70 b(Moreo)m(v)m(er,)45 b(the)c(shell)f(allo)m(ws)h
+(con)m(trol)h(o)m(v)m(er)g(the)e(con)m(ten)m(ts)i(of)150
+4653 y(commands')30 b(en)m(vironmen)m(ts.)275 4792 y(Shells)k(also)i
+(pro)m(vide)g(a)f(small)h(set)f(of)g(built-in)g(commands)g(\()p
+Fq(builtins)t Ft(\))g(implemen)m(ting)h(function-)150
+4902 y(alit)m(y)i(imp)s(ossible)e(or)g(incon)m(v)m(enien)m(t)j(to)e
+(obtain)g(via)g(separate)g(utilities.)61 b(F)-8 b(or)37
+b(example,)i Fs(cd)p Ft(,)e Fs(break)p Ft(,)150 5011
+y Fs(continue)p Ft(,)43 b(and)f Fs(exec)p Ft(\))g(cannot)h(b)s(e)e
+(implemen)m(ted)i(outside)g(of)f(the)h(shell)f(b)s(ecause)h(they)f
+(directly)150 5121 y(manipulate)37 b(the)g(shell)f(itself.)61
+b(The)36 b Fs(history)p Ft(,)g Fs(getopts)p Ft(,)g Fs(kill)p
+Ft(,)h(or)g Fs(pwd)f Ft(builtins,)h(among)h(others,)150
+5230 y(could)33 b(b)s(e)f(implemen)m(ted)h(in)g(separate)g(utilities,)i
+(but)d(they)h(are)h(more)f(con)m(v)m(enien)m(t)h(to)g(use)e(as)h
+(builtin)150 5340 y(commands.)40 b(All)31 b(of)g(the)f(shell)h
+(builtins)f(are)h(describ)s(ed)e(in)h(subsequen)m(t)g(sections.)p
+eop end
+%%Page: 2 8
+TeXDict begin 2 7 bop 150 -116 a Ft(2)2617 b(Bash)31
+b(Reference)g(Man)m(ual)275 299 y(While)39 b(executing)h(commands)e(is)
+g(essen)m(tial,)43 b(most)c(of)g(the)g(p)s(o)m(w)m(er)f(\(and)g
+(complexit)m(y\))j(of)e(shells)150 408 y(is)34 b(due)f(to)i(their)f(em)
+m(b)s(edded)f(programming)h(languages.)52 b(Lik)m(e)35
+b(an)m(y)f(high-lev)m(el)i(language,)h(the)d(shell)150
+518 y(pro)m(vides)c(v)-5 b(ariables,)32 b(\015o)m(w)e(con)m(trol)i
+(constructs,)f(quoting,)g(and)f(functions.)275 653 y(Shells)21
+b(o\013er)i(features)f(geared)h(sp)s(eci\014cally)g(for)f(in)m
+(teractiv)m(e)j(use)d(rather)g(than)g(to)h(augmen)m(t)g(the)f(pro-)150
+762 y(gramming)32 b(language.)48 b(These)32 b(in)m(teractiv)m(e)j
+(features)d(include)g(job)g(con)m(trol,)j(command)c(line)i(editing,)150
+872 y(command)d(history)g(and)g(aliases.)42 b(Eac)m(h)31
+b(of)g(these)g(features)f(is)h(describ)s(ed)e(in)h(this)g(man)m(ual.)p
+eop end
+%%Page: 3 9
+TeXDict begin 3 8 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(De\014nitions)2662 b(3)150 299 y Fo(2)80 b(De\014nitions)275
+552 y Ft(These)30 b(de\014nitions)g(are)g(used)g(throughout)g(the)g
+(remainder)g(of)h(this)f(man)m(ual.)150 720 y Fs(POSIX)240
+b Ft(A)27 b(family)g(of)g(op)s(en)f(system)g(standards)g(based)g(on)h
+(Unix.)39 b(Bash)27 b(is)g(primarily)f(concerned)630
+830 y(with)k(the)h(Shell)f(and)g(Utilities)i(p)s(ortion)e(of)h(the)f
+Fl(posix)g Ft(1003.1)j(standard.)150 995 y Fs(blank)240
+b Ft(A)30 b(space)h(or)g(tab)f(c)m(haracter.)150 1161
+y Fs(builtin)144 b Ft(A)35 b(command)g(that)g(is)g(implemen)m(ted)g(in)
+m(ternally)h(b)m(y)f(the)g(shell)g(itself,)i(rather)d(than)h(b)m(y)630
+1271 y(an)30 b(executable)i(program)e(somewhere)h(in)f(the)g(\014le)h
+(system.)150 1436 y Fs(control)d(operator)630 1546 y
+Ft(A)20 b Fs(token)f Ft(that)i(p)s(erforms)e(a)i(con)m(trol)g
+(function.)37 b(It)21 b(is)f(a)h Fs(newline)d Ft(or)j(one)f(of)h(the)f
+(follo)m(wing:)630 1655 y(`)p Fs(||)p Ft(',)31 b(`)p
+Fs(&&)p Ft(',)f(`)p Fs(&)p Ft(',)h(`)p Fs(;)p Ft(',)g(`)p
+Fs(;;)p Ft(',)f(`)p Fs(|)p Ft(',)h(`)p Fs(|&)p Ft(',)f(`)p
+Fs(\()p Ft(',)h(or)g(`)p Fs(\))p Ft('.)150 1821 y Fs(exit)e(status)630
+1931 y Ft(The)f(v)-5 b(alue)29 b(returned)e(b)m(y)h(a)h(command)f(to)h
+(its)g(caller.)41 b(The)28 b(v)-5 b(alue)29 b(is)f(restricted)h(to)h
+(eigh)m(t)630 2040 y(bits,)h(so)f(the)h(maxim)m(um)f(v)-5
+b(alue)31 b(is)f(255.)150 2206 y Fs(field)240 b Ft(A)27
+b(unit)g(of)g(text)h(that)g(is)f(the)g(result)g(of)g(one)h(of)f(the)g
+(shell)g(expansions.)40 b(After)27 b(expansion,)630 2315
+y(when)e(executing)h(a)g(command,)h(the)f(resulting)f(\014elds)g(are)h
+(used)f(as)h(the)g(command)f(name)630 2425 y(and)30 b(argumen)m(ts.)150
+2591 y Fs(filename)96 b Ft(A)30 b(string)h(of)f(c)m(haracters)i(used)e
+(to)h(iden)m(tify)g(a)f(\014le.)150 2756 y Fs(job)336
+b Ft(A)31 b(set)h(of)f(pro)s(cesses)g(comprising)g(a)g(pip)s(eline,)g
+(and)g(an)m(y)g(pro)s(cesses)g(descended)g(from)f(it,)630
+2866 y(that)h(are)g(all)g(in)f(the)h(same)f(pro)s(cess)g(group.)150
+3031 y Fs(job)f(control)630 3141 y Ft(A)22 b(mec)m(hanism)g(b)m(y)f
+(whic)m(h)h(users)f(can)h(selectiv)m(ely)i(stop)e(\(susp)s(end\))e(and)
+h(restart)i(\(resume\))630 3251 y(execution)32 b(of)e(pro)s(cesses.)150
+3416 y Fs(metacharacter)630 3526 y Ft(A)25 b(c)m(haracter)i(that,)g
+(when)d(unquoted,)i(separates)g(w)m(ords.)38 b(A)26 b(metac)m(haracter)
+i(is)d(a)g Fs(blank)630 3635 y Ft(or)30 b(one)h(of)g(the)f(follo)m
+(wing)i(c)m(haracters:)42 b(`)p Fs(|)p Ft(',)31 b(`)p
+Fs(&)p Ft(',)g(`)p Fs(;)p Ft(',)g(`)p Fs(\()p Ft(',)f(`)p
+Fs(\))p Ft(',)h(`)p Fs(<)p Ft(',)g(or)f(`)p Fs(>)p Ft('.)150
+3801 y Fs(name)288 b Ft(A)37 b Fs(word)f Ft(consisting)i(solely)h(of)e
+(letters,)j(n)m(um)m(b)s(ers,)e(and)f(underscores,)h(and)f(b)s
+(eginning)630 3910 y(with)23 b(a)g(letter)h(or)f(underscore.)38
+b Fs(Name)p Ft(s)22 b(are)h(used)f(as)i(shell)f(v)-5
+b(ariable)24 b(and)e(function)h(names.)630 4020 y(Also)31
+b(referred)f(to)h(as)f(an)h Fs(identifier)p Ft(.)150
+4186 y Fs(operator)96 b Ft(A)38 b Fs(control)28 b(operator)36
+b Ft(or)h(a)i Fs(redirection)27 b(operator)p Ft(.)61
+b(See)38 b(Section)g(3.6)h([Redirec-)630 4295 y(tions],)f(page)f(26,)i
+(for)d(a)g(list)h(of)f(redirection)h(op)s(erators.)58
+b(Op)s(erators)35 b(con)m(tain)j(at)f(least)630 4405
+y(one)31 b(unquoted)e Fs(metacharacter)p Ft(.)150 4570
+y Fs(process)f(group)630 4680 y Ft(A)i(collection)k(of)c(related)h(pro)
+s(cesses)g(eac)m(h)g(ha)m(ving)g(the)g(same)f(pro)s(cess)g(group)g
+Fl(id)p Ft(.)150 4846 y Fs(process)e(group)h(ID)630 4955
+y Ft(A)h(unique)g(iden)m(ti\014er)h(that)f(represen)m(ts)h(a)g
+Fs(process)d(group)h Ft(during)g(its)i(lifetime.)150
+5121 y Fs(reserved)d(word)630 5230 y Ft(A)h Fs(word)e
+Ft(that)i(has)f(a)h(sp)s(ecial)g(meaning)f(to)h(the)g(shell.)40
+b(Most)30 b(reserv)m(ed)e(w)m(ords)g(in)m(tro)s(duce)630
+5340 y(shell)j(\015o)m(w)f(con)m(trol)i(constructs,)f(suc)m(h)f(as)g
+Fs(for)g Ft(and)g Fs(while)p Ft(.)p eop end
+%%Page: 4 10
+TeXDict begin 4 9 bop 150 -116 a Ft(4)2617 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(return)e(status)630
+408 y Ft(A)h(synon)m(ym)g(for)g Fs(exit)g(status)p Ft(.)150
+568 y Fs(signal)192 b Ft(A)40 b(mec)m(hanism)h(b)m(y)e(whic)m(h)h(a)h
+(pro)s(cess)e(ma)m(y)i(b)s(e)e(noti\014ed)h(b)m(y)g(the)h(k)m(ernel)f
+(of)g(an)g(ev)m(en)m(t)630 677 y(o)s(ccurring)30 b(in)g(the)h(system.)
+150 837 y Fs(special)d(builtin)630 946 y Ft(A)j(shell)f(builtin)g
+(command)h(that)g(has)f(b)s(een)g(classi\014ed)h(as)g(sp)s(ecial)g(b)m
+(y)f(the)h Fl(posix)f Ft(stan-)630 1056 y(dard.)150 1215
+y Fs(token)240 b Ft(A)38 b(sequence)h(of)f(c)m(haracters)h(considered)f
+(a)h(single)g(unit)e(b)m(y)h(the)h(shell.)64 b(It)38
+b(is)g(either)h(a)630 1325 y Fs(word)29 b Ft(or)i(an)f
+Fs(operator)p Ft(.)150 1484 y Fs(word)288 b Ft(A)28 b(sequence)g(of)g
+(c)m(haracters)h(treated)g(as)f(a)g(unit)f(b)m(y)h(the)g(shell.)40
+b(W)-8 b(ords)28 b(ma)m(y)g(not)g(include)630 1594 y(unquoted)i
+Fs(metacharacters)p Ft(.)p eop end
+%%Page: 5 11
+TeXDict begin 5 10 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(5)150 299
+y Fo(3)80 b(Basic)54 b(Shell)e(F)-13 b(eatures)275 544
+y Ft(Bash)27 b(is)g(an)g(acron)m(ym)h(for)f(`)p Fs(Bourne-Again)g
+(SHell)p Ft('.)39 b(The)26 b(Bourne)h(shell)h(is)f(the)g(traditional)i
+(Unix)150 653 y(shell)34 b(originally)h(written)e(b)m(y)g(Stephen)g
+(Bourne.)50 b(All)34 b(of)g(the)f(Bourne)h(shell)f(builtin)g(commands)h
+(are)150 763 y(a)m(v)-5 b(ailable)32 b(in)c(Bash,)i(The)f(rules)g(for)g
+(ev)-5 b(aluation)31 b(and)d(quoting)i(are)f(tak)m(en)i(from)d(the)i
+Fl(posix)e Ft(sp)s(eci\014ca-)150 872 y(tion)j(for)f(the)h(`standard')f
+(Unix)g(shell.)275 1010 y(This)h(c)m(hapter)i(brie\015y)e(summarizes)h
+(the)h(shell's)f(`building)g(blo)s(c)m(ks':)45 b(commands,)32
+b(con)m(trol)i(struc-)150 1120 y(tures,)k(shell)e(functions,)h(shell)g
+Fm(p)-5 b(ar)g(ameters)p Ft(,)41 b(shell)36 b(expansions,)i
+Fm(r)-5 b(e)g(dir)g(e)g(ctions)p Ft(,)40 b(whic)m(h)c(are)h(a)f(w)m(a)m
+(y)h(to)150 1230 y(direct)31 b(input)e(and)h(output)g(from)g(and)g(to)h
+(named)f(\014les,)g(and)g(ho)m(w)g(the)h(shell)g(executes)g(commands.)
+150 1496 y Fr(3.1)68 b(Shell)45 b(Syn)l(tax)275 1744
+y Ft(When)32 b(the)h(shell)g(reads)g(input,)g(it)g(pro)s(ceeds)f
+(through)h(a)g(sequence)g(of)g(op)s(erations.)48 b(If)33
+b(the)g(input)150 1853 y(indicates)e(the)f(b)s(eginning)f(of)h(a)g
+(commen)m(t,)h(the)f(shell)g(ignores)g(the)g(commen)m(t)h(sym)m(b)s(ol)
+f(\(`)p Fs(#)p Ft('\),)h(and)e(the)150 1963 y(rest)i(of)f(that)h(line.)
+275 2101 y(Otherwise,)h(roughly)f(sp)s(eaking,)i(the)f(shell)g(reads)g
+(its)g(input)f(and)h(divides)f(the)i(input)e(in)m(to)h(w)m(ords)150
+2210 y(and)23 b(op)s(erators,)j(emplo)m(ying)e(the)g(quoting)h(rules)e
+(to)h(select)i(whic)m(h)d(meanings)h(to)h(assign)f(v)-5
+b(arious)23 b(w)m(ords)150 2320 y(and)30 b(c)m(haracters.)275
+2458 y(The)38 b(shell)h(then)f(parses)g(these)h(tok)m(ens)h(in)m(to)f
+(commands)g(and)f(other)h(constructs,)i(remo)m(v)m(es)f(the)150
+2568 y(sp)s(ecial)31 b(meaning)f(of)g(certain)h(w)m(ords)f(or)g(c)m
+(haracters,)i(expands)d(others,)h(redirects)h(input)e(and)g(output)150
+2677 y(as)d(needed,)g(executes)g(the)g(sp)s(eci\014ed)e(command,)j(w)m
+(aits)f(for)f(the)g(command's)g(exit)i(status,)f(and)f(mak)m(es)150
+2787 y(that)31 b(exit)g(status)g(a)m(v)-5 b(ailable)33
+b(for)d(further)f(insp)s(ection)h(or)h(pro)s(cessing.)150
+3018 y Fk(3.1.1)63 b(Shell)41 b(Op)s(eration)275 3266
+y Ft(The)28 b(follo)m(wing)i(is)f(a)g(brief)f(description)h(of)g(the)g
+(shell's)g(op)s(eration)h(when)d(it)j(reads)e(and)g(executes)j(a)150
+3375 y(command.)40 b(Basically)-8 b(,)34 b(the)c(shell)h(do)s(es)f(the)
+h(follo)m(wing:)199 3513 y(1.)61 b(Reads)42 b(its)h(input)e(from)h(a)g
+(\014le)h(\(see)g(Section)g(3.8)g([Shell)f(Scripts],)j(page)e(34\),)k
+(from)41 b(a)i(string)330 3623 y(supplied)26 b(as)i(an)f(argumen)m(t)g
+(to)h(the)g(`)p Fs(-c)p Ft(')f(in)m(v)m(o)s(cation)i(option)f(\(see)g
+(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)330 3732 y(page)j(71\),)h(or)
+e(from)g(the)h(user's)f(terminal.)199 3869 y(2.)61 b(Breaks)43
+b(the)g(input)f(in)m(to)h(w)m(ords)f(and)g(op)s(erators,)k(ob)s(eying)d
+(the)g(quoting)g(rules)f(describ)s(ed)f(in)330 3978 y(Section)27
+b(3.1.2)i([Quoting],)f(page)f(6.)40 b(These)26 b(tok)m(ens)i(are)f
+(separated)g(b)m(y)f Fs(metacharacters)p Ft(.)36 b(Alias)330
+4088 y(expansion)30 b(is)h(p)s(erformed)d(b)m(y)j(this)f(step)g(\(see)i
+(Section)f(6.6)g([Aliases],)i(page)e(79\).)199 4224 y(3.)61
+b(P)m(arses)35 b(the)g(tok)m(ens)g(in)m(to)h(simple)e(and)g(comp)s
+(ound)f(commands)h(\(see)h(Section)h(3.2)f([Shell)g(Com-)330
+4334 y(mands],)30 b(page)h(8\).)199 4470 y(4.)61 b(P)m(erforms)40
+b(the)h(v)-5 b(arious)40 b(shell)h(expansions)f(\(see)h(Section)g(3.5)g
+([Shell)g(Expansions],)h(page)f(17\),)330 4580 y(breaking)35
+b(the)g(expanded)g(tok)m(ens)h(in)m(to)g(lists)f(of)g(\014lenames)h
+(\(see)g(Section)f(3.5.8)i([Filename)g(Ex-)330 4689 y(pansion],)30
+b(page)h(24\))h(and)e(commands)g(and)g(argumen)m(ts.)199
+4826 y(5.)61 b(P)m(erforms)36 b(an)m(y)i(necessary)f(redirections)g
+(\(see)h(Section)f(3.6)h([Redirections],)i(page)e(26\))g(and)e(re-)330
+4935 y(mo)m(v)m(es)c(the)e(redirection)h(op)s(erators)g(and)f(their)g
+(op)s(erands)f(from)h(the)h(argumen)m(t)f(list.)199 5071
+y(6.)61 b(Executes)31 b(the)g(command)f(\(see)h(Section)g(3.7)h
+([Executing)f(Commands],)f(page)h(30\).)199 5208 y(7.)61
+b(Optionally)40 b(w)m(aits)g(for)f(the)g(command)g(to)h(complete)g(and)
+f(collects)i(its)f(exit)g(status)f(\(see)h(Sec-)330 5317
+y(tion)31 b(3.7.5)h([Exit)f(Status],)g(page)g(33\).)p
+eop end
+%%Page: 6 12
+TeXDict begin 6 11 bop 150 -116 a Ft(6)2617 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fk(3.1.2)63 b(Quoting)275
+537 y Ft(Quoting)24 b(is)g(used)f(to)h(remo)m(v)m(e)i(the)e(sp)s(ecial)
+g(meaning)g(of)g(certain)h(c)m(haracters)h(or)d(w)m(ords)h(to)g(the)g
+(shell.)150 647 y(Quoting)k(can)f(b)s(e)g(used)f(to)j(disable)e(sp)s
+(ecial)h(treatmen)m(t)h(for)e(sp)s(ecial)h(c)m(haracters,)i(to)e(prev)m
+(en)m(t)g(reserv)m(ed)150 757 y(w)m(ords)i(from)g(b)s(eing)g
+(recognized)h(as)g(suc)m(h,)f(and)g(to)h(prev)m(en)m(t)g(parameter)g
+(expansion.)275 886 y(Eac)m(h)22 b(of)g(the)g(shell)g(metac)m
+(haracters)i(\(see)f(Chapter)e(2)i([De\014nitions],)h(page)f(3\))g(has)
+e(sp)s(ecial)i(meaning)150 995 y(to)40 b(the)g(shell)f(and)g(m)m(ust)g
+(b)s(e)g(quoted)g(if)h(it)g(is)f(to)h(represen)m(t)g(itself.)68
+b(When)39 b(the)h(command)f(history)150 1105 y(expansion)i(facilities)j
+(are)e(b)s(eing)f(used)g(\(see)h(Section)h(9.3)f([History)h(In)m
+(teraction],)j(page)c(123\),)47 b(the)150 1214 y Fq(history)30
+b(expansion)h Ft(c)m(haracter,)h(usually)f(`)p Fs(!)p
+Ft(',)g(m)m(ust)f(b)s(e)g(quoted)h(to)g(prev)m(en)m(t)g(history)g
+(expansion.)41 b(See)150 1324 y(Section)22 b(9.1)g([Bash)f(History)h(F)
+-8 b(acilities],)26 b(page)c(121,)j(for)20 b(more)h(details)h
+(concerning)g(history)f(expansion.)275 1453 y(There)37
+b(are)h(three)f(quoting)h(mec)m(hanisms:)56 b(the)38
+b Fq(escap)s(e)g(c)m(haracter)p Ft(,)j(single)d(quotes,)i(and)d(double)
+150 1563 y(quotes.)150 1770 y Fk(3.1.2.1)63 b(Escap)s(e)41
+b(Character)275 2009 y Ft(A)27 b(non-quoted)g(bac)m(kslash)h(`)p
+Fs(\\)p Ft(')f(is)g(the)h(Bash)f(escap)s(e)g(c)m(haracter.)42
+b(It)27 b(preserv)m(es)g(the)g(literal)i(v)-5 b(alue)28
+b(of)150 2119 y(the)f(next)g(c)m(haracter)h(that)f(follo)m(ws,)i(with)d
+(the)h(exception)g(of)g Fs(newline)p Ft(.)38 b(If)26
+b(a)h Fs(\\newline)d Ft(pair)i(app)s(ears,)150 2228 y(and)k(the)h(bac)m
+(kslash)g(itself)g(is)g(not)g(quoted,)g(the)f Fs(\\newline)f
+Ft(is)h(treated)i(as)f(a)g(line)g(con)m(tin)m(uation)h(\(that)150
+2338 y(is,)f(it)g(is)f(remo)m(v)m(ed)h(from)f(the)h(input)e(stream)i
+(and)f(e\013ectiv)m(ely)j(ignored\).)150 2545 y Fk(3.1.2.2)63
+b(Single)42 b(Quotes)275 2784 y Ft(Enclosing)36 b(c)m(haracters)i(in)d
+(single)i(quotes)g(\(`)p Fs(')p Ft('\))f(preserv)m(es)h(the)f(literal)h
+(v)-5 b(alue)37 b(of)f(eac)m(h)h(c)m(haracter)150 2894
+y(within)24 b(the)h(quotes.)39 b(A)25 b(single)h(quote)f(ma)m(y)g(not)g
+(o)s(ccur)g(b)s(et)m(w)m(een)g(single)h(quotes,)g(ev)m(en)g(when)d
+(preceded)150 3003 y(b)m(y)30 b(a)h(bac)m(kslash.)150
+3211 y Fk(3.1.2.3)63 b(Double)42 b(Quotes)275 3450 y
+Ft(Enclosing)36 b(c)m(haracters)i(in)e(double)g(quotes)h(\(`)p
+Fs(")p Ft('\))g(preserv)m(es)f(the)g(literal)i(v)-5 b(alue)37
+b(of)f(all)h(c)m(haracters)150 3559 y(within)25 b(the)g(quotes,)i(with)
+e(the)g(exception)h(of)g(`)p Fs($)p Ft(',)g(`)p Fs(`)p
+Ft(',)h(`)p Fs(\\)p Ft(',)f(and,)g(when)e(history)i(expansion)f(is)g
+(enabled,)150 3669 y(`)p Fs(!)p Ft('.)48 b(The)32 b(c)m(haracters)i(`)p
+Fs($)p Ft(')f(and)f(`)p Fs(`)p Ft(')h(retain)g(their)g(sp)s(ecial)g
+(meaning)g(within)f(double)h(quotes)g(\(see)g(Sec-)150
+3778 y(tion)e(3.5)h([Shell)e(Expansions],)g(page)i(17\).)42
+b(The)30 b(bac)m(kslash)h(retains)g(its)g(sp)s(ecial)g(meaning)f(only)h
+(when)150 3888 y(follo)m(w)m(ed)40 b(b)m(y)e(one)h(of)g(the)f(follo)m
+(wing)i(c)m(haracters:)58 b(`)p Fs($)p Ft(',)41 b(`)p
+Fs(`)p Ft(',)g(`)p Fs(")p Ft(',)g(`)p Fs(\\)p Ft(',)g(or)d
+Fs(newline)p Ft(.)63 b(Within)38 b(double)150 3998 y(quotes,)c(bac)m
+(kslashes)g(that)f(are)g(follo)m(w)m(ed)h(b)m(y)f(one)g(of)f(these)h(c)
+m(haracters)i(are)e(remo)m(v)m(ed.)48 b(Bac)m(kslashes)150
+4107 y(preceding)25 b(c)m(haracters)h(without)f(a)h(sp)s(ecial)f
+(meaning)h(are)f(left)h(unmo)s(di\014ed.)37 b(A)25 b(double)f(quote)i
+(ma)m(y)g(b)s(e)150 4217 y(quoted)g(within)f(double)g(quotes)g(b)m(y)h
+(preceding)f(it)h(with)f(a)h(bac)m(kslash.)40 b(If)25
+b(enabled,)i(history)e(expansion)150 4326 y(will)38 b(b)s(e)e(p)s
+(erformed)g(unless)h(an)g(`)p Fs(!)p Ft(')h(app)s(earing)f(in)g(double)
+g(quotes)h(is)f(escap)s(ed)g(using)g(a)h(bac)m(kslash.)150
+4436 y(The)30 b(bac)m(kslash)h(preceding)f(the)h(`)p
+Fs(!)p Ft(')f(is)h(not)f(remo)m(v)m(ed.)275 4565 y(The)41
+b(sp)s(ecial)h(parameters)f(`)p Fs(*)p Ft(')h(and)f(`)p
+Fs(@)p Ft(')h(ha)m(v)m(e)g(sp)s(ecial)g(meaning)g(when)f(in)g(double)g
+(quotes)h(\(see)150 4674 y(Section)31 b(3.5.3)h([Shell)f(P)m(arameter)h
+(Expansion],)e(page)h(20\).)150 4882 y Fk(3.1.2.4)63
+b(ANSI-C)40 b(Quoting)275 5121 y Ft(W)-8 b(ords)33 b(of)h(the)g(form)f
+Fs($')p Fj(string)11 b Fs(')31 b Ft(are)j(treated)g(sp)s(ecially)-8
+b(.)52 b(The)33 b(w)m(ord)g(expands)g(to)i Fq(string)p
+Ft(,)f(with)150 5230 y(bac)m(kslash-escap)s(ed)44 b(c)m(haracters)h
+(replaced)f(as)g(sp)s(eci\014ed)f(b)m(y)g(the)g(ANSI)g(C)g(standard.)79
+b(Bac)m(kslash)150 5340 y(escap)s(e)31 b(sequences,)g(if)f(presen)m(t,)
+h(are)g(deco)s(ded)f(as)g(follo)m(ws:)p eop end
+%%Page: 7 13
+TeXDict begin 7 12 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(7)150 299
+y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))150 481 y Fs(\\b)384
+b Ft(bac)m(kspace)150 664 y Fs(\\e)g Ft(an)30 b(escap)s(e)h(c)m
+(haracter)h(\(not)f(ANSI)f(C\))150 846 y Fs(\\f)384 b
+Ft(form)30 b(feed)150 1029 y Fs(\\n)384 b Ft(newline)150
+1211 y Fs(\\r)g Ft(carriage)32 b(return)150 1394 y Fs(\\t)384
+b Ft(horizon)m(tal)32 b(tab)150 1576 y Fs(\\v)384 b Ft(v)m(ertical)32
+b(tab)150 1759 y Fs(\\\\)384 b Ft(bac)m(kslash)150 1941
+y Fs(\\')g Ft(single)31 b(quote)150 2124 y Fs(\\)p Fj(nnn)288
+b Ft(the)31 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
+b(alue)31 b(is)f(the)h(o)s(ctal)g(v)-5 b(alue)31 b Fq(nnn)e
+Ft(\(one)i(to)g(three)g(digits\))150 2306 y Fs(\\x)p
+Fj(HH)288 b Ft(the)36 b(eigh)m(t-bit)i(c)m(haracter)f(whose)f(v)-5
+b(alue)36 b(is)g(the)g(hexadecimal)h(v)-5 b(alue)36 b
+Fq(HH)46 b Ft(\(one)37 b(or)f(t)m(w)m(o)630 2416 y(hex)30
+b(digits\))150 2598 y Fs(\\c)p Fj(x)336 b Ft(a)31 b(con)m(trol-)p
+Fq(x)38 b Ft(c)m(haracter)150 2792 y(The)30 b(expanded)f(result)i(is)f
+(single-quoted,)i(as)f(if)f(the)g(dollar)h(sign)g(had)e(not)i(b)s(een)f
+(presen)m(t.)150 3063 y Fk(3.1.2.5)63 b(Lo)s(cale-Sp)s(eci\014c)41
+b(T)-10 b(ranslation)275 3330 y Ft(A)30 b(double-quoted)h(string)f
+(preceded)g(b)m(y)h(a)g(dollar)g(sign)f(\(`)p Fs($)p
+Ft('\))i(will)e(cause)i(the)e(string)h(to)g(b)s(e)f(trans-)150
+3439 y(lated)j(according)g(to)g(the)f(curren)m(t)g(lo)s(cale.)47
+b(If)32 b(the)g(curren)m(t)g(lo)s(cale)i(is)e Fs(C)g
+Ft(or)g Fs(POSIX)p Ft(,)f(the)h(dollar)h(sign)f(is)150
+3549 y(ignored.)41 b(If)30 b(the)g(string)h(is)f(translated)h(and)f
+(replaced,)h(the)g(replacemen)m(t)g(is)g(double-quoted.)275
+3707 y(Some)20 b(systems)h(use)f(the)h(message)h(catalog)h(selected)f
+(b)m(y)f(the)g Fs(LC_MESSAGES)c Ft(shell)k(v)-5 b(ariable.)39
+b(Others)150 3816 y(create)g(the)e(name)g(of)g(the)g(message)h(catalog)
+i(from)d(the)g(v)-5 b(alue)37 b(of)g(the)h Fs(TEXTDOMAIN)c
+Ft(shell)j(v)-5 b(ariable,)150 3926 y(p)s(ossibly)31
+b(adding)g(a)g(su\016x)g(of)h(`)p Fs(.mo)p Ft('.)43 b(If)31
+b(y)m(ou)h(use)f(the)h Fs(TEXTDOMAIN)c Ft(v)-5 b(ariable,)33
+b(y)m(ou)f(ma)m(y)g(need)f(to)h(set)150 4035 y(the)22
+b Fs(TEXTDOMAINDIR)d Ft(v)-5 b(ariable)23 b(to)g(the)f(lo)s(cation)i
+(of)e(the)h(message)g(catalog)i(\014les.)38 b(Still)23
+b(others)f(use)g(b)s(oth)150 4145 y(v)-5 b(ariables)31
+b(in)f(this)g(fashion:)41 b Fs(TEXTDOMAINDIR)p Ft(/)p
+Fs(LC_MESSAGES)p Ft(/LC)p 2528 4145 28 4 v 34 w(MESSA)m(GES/)p
+Fs(TEXTDOMAIN)p Ft(.mo.)150 4415 y Fk(3.1.3)63 b(Commen)m(ts)275
+4682 y Ft(In)34 b(a)j(non-in)m(teractiv)m(e)h(shell,)f(or)f(an)f(in)m
+(teractiv)m(e)k(shell)d(in)f(whic)m(h)h(the)f Fs(interactive_comments)
+150 4792 y Ft(option)41 b(to)h(the)f Fs(shopt)e Ft(builtin)i(is)g
+(enabled)g(\(see)g(Section)h(4.3.2)h([The)d(Shopt)g(Builtin],)45
+b(page)c(54\),)150 4902 y(a)d(w)m(ord)f(b)s(eginning)g(with)h(`)p
+Fs(#)p Ft(')g(causes)g(that)g(w)m(ord)g(and)f(all)h(remaining)g(c)m
+(haracters)h(on)f(that)g(line)g(to)150 5011 y(b)s(e)33
+b(ignored.)52 b(An)33 b(in)m(teractiv)m(e)k(shell)d(without)g(the)h
+Fs(interactive_comments)28 b Ft(option)34 b(enabled)g(do)s(es)150
+5121 y(not)39 b(allo)m(w)i(commen)m(ts.)68 b(The)39 b
+Fs(interactive_comments)33 b Ft(option)40 b(is)f(on)g(b)m(y)g(default)g
+(in)g(in)m(teractiv)m(e)150 5230 y(shells.)k(See)31 b(Section)h(6.3)g
+([In)m(teractiv)m(e)h(Shells],)f(page)f(75,)h(for)f(a)h(description)f
+(of)g(what)g(mak)m(es)g(a)h(shell)150 5340 y(in)m(teractiv)m(e.)p
+eop end
+%%Page: 8 14
+TeXDict begin 8 13 bop 150 -116 a Ft(8)2617 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fr(3.2)68 b(Shell)45
+b(Commands)275 544 y Ft(A)32 b(simple)g(shell)g(command)g(suc)m(h)g(as)
+h Fs(echo)c(a)h(b)g(c)i Ft(consists)g(of)h(the)f(command)g(itself)h
+(follo)m(w)m(ed)h(b)m(y)150 654 y(argumen)m(ts,)d(separated)g(b)m(y)f
+(spaces.)275 790 y(More)h(complex)h(shell)f(commands)g(are)g(comp)s
+(osed)g(of)g(simple)g(commands)g(arranged)g(together)h(in)150
+899 y(a)f(v)-5 b(ariet)m(y)32 b(of)f(w)m(a)m(ys:)41 b(in)31
+b(a)g(pip)s(eline)f(in)g(whic)m(h)g(the)h(output)f(of)h(one)f(command)h
+(b)s(ecomes)f(the)h(input)f(of)150 1009 y(a)h(second,)f(in)h(a)f(lo)s
+(op)h(or)f(conditional)i(construct,)f(or)f(in)g(some)h(other)g
+(grouping.)150 1235 y Fk(3.2.1)63 b(Simple)41 b(Commands)275
+1481 y Ft(A)26 b(simple)h(command)g(is)f(the)h(kind)f(of)h(command)g
+(encoun)m(tered)g(most)g(often.)40 b(It's)27 b(just)f(a)i(sequence)150
+1590 y(of)f(w)m(ords)f(separated)h(b)m(y)g Fs(blank)p
+Ft(s,)f(terminated)h(b)m(y)g(one)g(of)g(the)g(shell's)g(con)m(trol)h
+(op)s(erators)f(\(see)h(Chap-)150 1700 y(ter)34 b(2)g([De\014nitions],)
+i(page)f(3\).)51 b(The)34 b(\014rst)f(w)m(ord)g(generally)i(sp)s
+(eci\014es)e(a)i(command)e(to)i(b)s(e)e(executed,)150
+1809 y(with)d(the)h(rest)f(of)h(the)f(w)m(ords)g(b)s(eing)g(that)h
+(command's)f(argumen)m(ts.)275 1945 y(The)h(return)h(status)g(\(see)i
+(Section)f(3.7.5)h([Exit)f(Status],)h(page)f(33\))g(of)g(a)g(simple)f
+(command)g(is)h(its)150 2055 y(exit)38 b(status)f(as)g(pro)m(vided)f(b)
+m(y)h(the)g Fl(posix)f Ft(1003.1)j Fs(waitpid)c Ft(function,)j(or)f
+(128)p Fs(+)p Fq(n)g Ft(if)g(the)g(command)150 2164 y(w)m(as)31
+b(terminated)g(b)m(y)f(signal)h Fq(n)p Ft(.)150 2391
+y Fk(3.2.2)63 b(Pip)s(elines)275 2636 y Ft(A)26 b Fs(pipeline)e
+Ft(is)i(a)h(sequence)g(of)f(simple)h(commands)e(separated)i(b)m(y)f
+(one)h(of)g(the)f(con)m(trol)i(op)s(erators)150 2746
+y(`)p Fs(|)p Ft(')j(or)f(`)p Fs(|&)p Ft('.)275 2882 y(The)f(format)i
+(for)f(a)h(pip)s(eline)f(is)390 3017 y Fs([time)46 b([-p]])h([!])g
+Fj(command1)56 b Fs([)47 b([|)g(or)h(|&])e Fj(command2)56
+b Fs(...])150 3153 y Ft(The)25 b(output)f(of)i(eac)m(h)g(command)f(in)f
+(the)i(pip)s(eline)e(is)i(connected)g(via)f(a)h(pip)s(e)e(to)i(the)f
+(input)f(of)h(the)h(next)150 3263 y(command.)40 b(That)29
+b(is,)h(eac)m(h)h(command)e(reads)g(the)h(previous)f(command's)g
+(output.)40 b(This)29 b(connection)150 3372 y(is)h(p)s(erformed)f(b)s
+(efore)h(an)m(y)h(redirections)g(sp)s(eci\014ed)f(b)m(y)g(the)g
+(command.)275 3508 y(If)j(`)p Fs(|&)p Ft(')h(is)h(used,)f(the)h
+(standard)e(error)h(of)g Fq(command1)42 b Ft(is)34 b(connected)h(to)g
+Fq(command2)7 b Ft('s)35 b(standard)150 3618 y(input)25
+b(through)g(the)h(pip)s(e;)h(it)f(is)g(shorthand)f(for)g
+Fs(2>&1)k(|)p Ft(.)39 b(This)25 b(implicit)i(redirection)g(of)f(the)g
+(standard)150 3727 y(error)k(is)g(p)s(erformed)f(after)i(an)m(y)g
+(redirections)g(sp)s(eci\014ed)e(b)m(y)i(the)f(command.)275
+3863 y(The)36 b(reserv)m(ed)g(w)m(ord)g Fs(time)g Ft(causes)h(timing)g
+(statistics)h(to)f(b)s(e)f(prin)m(ted)g(for)g(the)h(pip)s(eline)f(once)
+h(it)150 3973 y(\014nishes.)51 b(The)34 b(statistics)i(curren)m(tly)e
+(consist)h(of)f(elapsed)h(\(w)m(all-clo)s(c)m(k\))i(time)e(and)f(user)f
+(and)h(system)150 4082 y(time)i(consumed)f(b)m(y)g(the)h(command's)f
+(execution.)57 b(The)35 b(`)p Fs(-p)p Ft(')h(option)f(c)m(hanges)i(the)
+f(output)f(format)150 4192 y(to)i(that)f(sp)s(eci\014ed)f(b)m(y)h
+Fl(posix)p Ft(.)57 b(The)35 b Fs(TIMEFORMAT)e Ft(v)-5
+b(ariable)37 b(ma)m(y)g(b)s(e)e(set)h(to)h(a)f(format)g(string)g(that)
+150 4301 y(sp)s(eci\014es)29 b(ho)m(w)g(the)g(timing)g(information)h
+(should)d(b)s(e)i(displa)m(y)m(ed.)41 b(See)29 b(Section)h(5.2)g([Bash)
+f(V)-8 b(ariables],)150 4411 y(page)29 b(61,)h(for)e(a)g(description)h
+(of)f(the)g(a)m(v)-5 b(ailable)31 b(formats.)40 b(The)28
+b(use)g(of)g Fs(time)f Ft(as)i(a)f(reserv)m(ed)h(w)m(ord)f(p)s(er-)150
+4521 y(mits)g(the)g(timing)g(of)g(shell)g(builtins,)g(shell)g
+(functions,)g(and)f(pip)s(elines.)40 b(An)27 b(external)i
+Fs(time)d Ft(command)150 4630 y(cannot)31 b(time)g(these)g(easily)-8
+b(.)275 4766 y(If)24 b(the)h(pip)s(eline)g(is)g(not)g(executed)h(async)
+m(hronously)f(\(see)h(Section)g(3.2.3)h([Lists],)g(page)e(9\),)i(the)f
+(shell)150 4875 y(w)m(aits)31 b(for)f(all)i(commands)e(in)g(the)g(pip)s
+(eline)g(to)h(complete.)275 5011 y(Eac)m(h)25 b(command)g(in)g(a)g(pip)
+s(eline)g(is)g(executed)h(in)f(its)g(o)m(wn)h(subshell)e(\(see)i
+(Section)g(3.7.3)h([Command)150 5121 y(Execution)36 b(En)m(vironmen)m
+(t],)i(page)e(31\).)58 b(The)36 b(exit)g(status)g(of)g(a)g(pip)s(eline)
+g(is)f(the)h(exit)h(status)f(of)g(the)150 5230 y(last)27
+b(command)f(in)f(the)i(pip)s(eline,)f(unless)g(the)g
+Fs(pipefail)e Ft(option)i(is)g(enabled)g(\(see)h(Section)g(4.3.1)h
+([The)150 5340 y(Set)34 b(Builtin],)j(page)e(51\).)53
+b(If)34 b Fs(pipefail)e Ft(is)i(enabled,)h(the)g(pip)s(eline's)f
+(return)f(status)h(is)h(the)f(v)-5 b(alue)35 b(of)p eop
+end
+%%Page: 9 15
+TeXDict begin 9 14 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(9)150 299
+y(the)32 b(last)h(\(righ)m(tmost\))h(command)e(to)h(exit)g(with)e(a)i
+(non-zero)f(status,)h(or)f(zero)h(if)f(all)h(commands)f(exit)150
+408 y(successfully)-8 b(.)67 b(If)38 b(the)h(reserv)m(ed)g(w)m(ord)g(`)
+p Fs(!)p Ft(')g(precedes)g(the)g(pip)s(eline,)h(the)g(exit)f(status)g
+(is)g(the)g(logical)150 518 y(negation)h(of)f(the)f(exit)i(status)f(as)
+f(describ)s(ed)g(ab)s(o)m(v)m(e.)66 b(The)38 b(shell)h(w)m(aits)h(for)e
+(all)h(commands)g(in)f(the)150 628 y(pip)s(eline)30 b(to)h(terminate)g
+(b)s(efore)f(returning)g(a)h(v)-5 b(alue.)150 881 y Fk(3.2.3)63
+b(Lists)41 b(of)h(Commands)275 1139 y Ft(A)29 b Fs(list)f
+Ft(is)i(a)f(sequence)h(of)g(one)f(or)h(more)f(pip)s(elines)g(separated)
+h(b)m(y)f(one)h(of)f(the)h(op)s(erators)g(`)p Fs(;)p
+Ft(',)g(`)p Fs(&)p Ft(',)150 1249 y(`)p Fs(&&)p Ft(',)h(or)f(`)p
+Fs(||)p Ft(',)g(and)g(optionally)i(terminated)f(b)m(y)f(one)h(of)f(`)p
+Fs(;)p Ft(',)h(`)p Fs(&)p Ft(',)g(or)f(a)h Fs(newline)p
+Ft(.)275 1398 y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p
+Fs(&&)p Ft(')d(and)g(`)p Fs(||)p Ft(')h(ha)m(v)m(e)h(equal)f
+(precedence,)i(follo)m(w)m(ed)f(b)m(y)f(`)p Fs(;)p Ft(')g(and)f(`)p
+Fs(&)p Ft(',)i(whic)m(h)150 1507 y(ha)m(v)m(e)32 b(equal)e(precedence.)
+275 1656 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h
+(app)s(ear)f(in)h(a)g Fs(list)e Ft(to)j(delimit)f(commands,)g(equiv-)
+150 1766 y(alen)m(t)i(to)f(a)g(semicolon.)275 1915 y(If)c(a)h(command)f
+(is)h(terminated)g(b)m(y)g(the)g(con)m(trol)h(op)s(erator)f(`)p
+Fs(&)p Ft(',)h(the)e(shell)h(executes)h(the)f(command)150
+2024 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28
+b(is)h(kno)m(wn)f(as)h(executing)h(the)f(command)g(in)f(the)h
+Fq(bac)m(kground)p Ft(.)150 2134 y(The)f(shell)h(do)s(es)f(not)h(w)m
+(ait)g(for)f(the)h(command)f(to)i(\014nish,)d(and)h(the)h(return)e
+(status)i(is)g(0)g(\(true\).)40 b(When)150 2243 y(job)g(con)m(trol)h
+(is)g(not)f(activ)m(e)i(\(see)f(Chapter)f(7)h([Job)f(Con)m(trol],)j
+(page)e(89\),)j(the)d(standard)e(input)g(for)150 2353
+y(async)m(hronous)k(commands,)k(in)d(the)f(absence)i(of)f(an)m(y)g
+(explicit)h(redirections,)j(is)43 b(redirected)h(from)150
+2463 y Fs(/dev/null)p Ft(.)275 2612 y(Commands)19 b(separated)j(b)m(y)f
+(a)g(`)p Fs(;)p Ft(')g(are)h(executed)g(sequen)m(tially;)k(the)21
+b(shell)g(w)m(aits)h(for)f(eac)m(h)h(command)150 2721
+y(to)31 b(terminate)h(in)e(turn.)39 b(The)30 b(return)f(status)i(is)f
+(the)h(exit)g(status)g(of)g(the)f(last)h(command)f(executed.)275
+2870 y Fl(and)g Ft(and)h Fl(or)g Ft(lists)h(are)g(sequences)f(of)h(one)
+g(or)f(more)h(pip)s(elines)e(separated)i(b)m(y)g(the)f(con)m(trol)i(op)
+s(er-)150 2980 y(ators)e(`)p Fs(&&)p Ft(')f(and)g(`)p
+Fs(||)p Ft(',)h(resp)s(ectiv)m(ely)-8 b(.)42 b Fl(and)30
+b Ft(and)f Fl(or)h Ft(lists)h(are)g(executed)g(with)f(left)h(asso)s
+(ciativit)m(y)-8 b(.)275 3129 y(An)30 b Fl(and)f Ft(list)i(has)f(the)h
+(form)390 3277 y Fj(command1)56 b Fs(&&)47 b Fj(command2)150
+3426 y Fq(command2)38 b Ft(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
+Fq(command1)38 b Ft(returns)29 b(an)h(exit)h(status)g(of)g(zero.)275
+3575 y(An)f Fl(or)f Ft(list)i(has)f(the)h(form)390 3724
+y Fj(command1)56 b Fs(||)47 b Fj(command2)150 3873 y
+Fq(command2)38 b Ft(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
+Fq(command1)38 b Ft(returns)29 b(a)i(non-zero)g(exit)g(status.)275
+4022 y(The)h(return)g(status)i(of)f Fl(and)f Ft(and)h
+Fl(or)f Ft(lists)i(is)f(the)g(exit)h(status)g(of)f(the)g(last)h
+(command)f(executed)150 4132 y(in)d(the)h(list.)150 4385
+y Fk(3.2.4)63 b(Comp)s(ound)42 b(Commands)275 4643 y
+Ft(Comp)s(ound)e(commands)i(are)h(the)g(shell)g(programming)f
+(constructs.)77 b(Eac)m(h)44 b(construct)e(b)s(egins)150
+4753 y(with)d(a)g(reserv)m(ed)g(w)m(ord)f(or)h(con)m(trol)h(op)s
+(erator)f(and)g(is)g(terminated)g(b)m(y)g(a)g(corresp)s(onding)f
+(reserv)m(ed)150 4862 y(w)m(ord)k(or)h(op)s(erator.)77
+b(An)m(y)42 b(redirections)h(\(see)h(Section)f(3.6)h([Redirections],)j
+(page)c(26\))g(asso)s(ciated)150 4972 y(with)26 b(a)g(comp)s(ound)f
+(command)h(apply)g(to)h(all)g(commands)f(within)f(that)i(comp)s(ound)e
+(command)h(unless)150 5081 y(explicitly)32 b(o)m(v)m(erridden.)275
+5230 y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e
+(commands,)j(and)44 b(mec)m(hanisms)i(to)g(group)150
+5340 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)p
+eop end
+%%Page: 10 16
+TeXDict begin 10 15 bop 150 -116 a Ft(10)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fk(3.2.4.1)63 b(Lo)s(oping)43
+b(Constructs)275 544 y Ft(Bash)30 b(supp)s(orts)f(the)h(follo)m(wing)i
+(lo)s(oping)f(constructs.)275 680 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
+Fs(;)p Ft(')g(app)s(ears)f(in)h(the)g(description)g(of)g(a)g(command's)
+g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 790 y(replaced)c(with)f(one)h
+(or)f(more)g(newlines.)150 951 y Fs(until)240 b Ft(The)30
+b(syn)m(tax)h(of)f(the)h Fs(until)e Ft(command)h(is:)870
+1086 y Fs(until)46 b Fj(test-commands)11 b Fs(;)44 b(do)j
+Fj(consequent-commands)11 b Fs(;)42 b(done)630 1222 y
+Ft(Execute)g Fq(consequen)m(t-commands)k Ft(as)41 b(long)h(as)f
+Fq(test-commands)46 b Ft(has)41 b(an)g(exit)h(status)630
+1331 y(whic)m(h)c(is)h(not)g(zero.)67 b(The)38 b(return)g(status)h(is)f
+(the)h(exit)h(status)f(of)g(the)g(last)g(command)630
+1441 y(executed)31 b(in)f Fq(consequen)m(t-commands)p
+Ft(,)i(or)e(zero)h(if)g(none)f(w)m(as)h(executed.)150
+1602 y Fs(while)240 b Ft(The)30 b(syn)m(tax)h(of)f(the)h
+Fs(while)e Ft(command)h(is:)870 1737 y Fs(while)46 b
+Fj(test-commands)11 b Fs(;)44 b(do)j Fj(consequent-commands)11
+b Fs(;)42 b(done)630 1872 y Ft(Execute)g Fq(consequen)m(t-commands)k
+Ft(as)41 b(long)h(as)f Fq(test-commands)46 b Ft(has)41
+b(an)g(exit)h(status)630 1982 y(of)34 b(zero.)53 b(The)34
+b(return)f(status)h(is)h(the)f(exit)h(status)g(of)f(the)g(last)h
+(command)f(executed)h(in)630 2091 y Fq(consequen)m(t-commands)p
+Ft(,)c(or)g(zero)g(if)f(none)g(w)m(as)h(executed.)150
+2252 y Fs(for)336 b Ft(The)30 b(syn)m(tax)h(of)f(the)h
+Fs(for)e Ft(command)i(is:)870 2387 y Fs(for)47 b Fj(name)57
+b Fs([in)47 b Fj(words)57 b Fs(...)o(];)47 b(do)g Fj(commands)11
+b Fs(;)45 b(done)630 2522 y Ft(Expand)31 b Fq(w)m(ords)p
+Ft(,)j(and)e(execute)i Fq(commands)i Ft(once)d(for)g(eac)m(h)h(mem)m(b)
+s(er)e(in)g(the)h(resultan)m(t)630 2632 y(list,)c(with)f
+Fq(name)33 b Ft(b)s(ound)26 b(to)j(the)f(curren)m(t)g(mem)m(b)s(er.)40
+b(If)27 b(`)p Fs(in)j Fj(words)11 b Ft(')27 b(is)h(not)g(presen)m(t,)h
+(the)630 2741 y Fs(for)g Ft(command)g(executes)i(the)e
+Fq(commands)k Ft(once)d(for)f(eac)m(h)i(p)s(ositional)f(parameter)g
+(that)630 2851 y(is)d(set,)h(as)f(if)g(`)p Fs(in)j("$@")p
+Ft(')c(had)g(b)s(een)g(sp)s(eci\014ed)g(\(see)i(Section)f(3.4.2)i([Sp)s
+(ecial)e(P)m(arameters],)630 2961 y(page)c(17\).)39 b(The)21
+b(return)g(status)h(is)g(the)g(exit)h(status)f(of)g(the)g(last)g
+(command)g(that)g(executes.)630 3070 y(If)i(there)h(are)h(no)e(items)i
+(in)e(the)h(expansion)g(of)g Fq(w)m(ords)p Ft(,)h(no)f(commands)f(are)h
+(executed,)j(and)630 3180 y(the)j(return)e(status)i(is)f(zero.)630
+3315 y(An)g(alternate)i(form)e(of)h(the)f Fs(for)g Ft(command)g(is)g
+(also)h(supp)s(orted:)870 3450 y Fs(for)47 b(\(\()g Fj(expr1)57
+b Fs(;)47 b Fj(expr2)57 b Fs(;)48 b Fj(expr3)57 b Fs(\)\))47
+b(;)g(do)g Fj(commands)57 b Fs(;)47 b(done)630 3585 y
+Ft(First,)38 b(the)f(arithmetic)h(expression)e Fq(expr1)43
+b Ft(is)36 b(ev)-5 b(aluated)38 b(according)f(to)g(the)g(rules)f(de-)
+630 3695 y(scrib)s(ed)41 b(b)s(elo)m(w)h(\(see)h(Section)g(6.5)g
+([Shell)g(Arithmetic],)j(page)d(78\).)77 b(The)42 b(arithmetic)630
+3805 y(expression)33 b Fq(expr2)41 b Ft(is)34 b(then)f(ev)-5
+b(aluated)35 b(rep)s(eatedly)f(un)m(til)g(it)g(ev)-5
+b(aluates)35 b(to)g(zero.)51 b(Eac)m(h)630 3914 y(time)23
+b Fq(expr2)30 b Ft(ev)-5 b(aluates)25 b(to)e(a)g(non-zero)h(v)-5
+b(alue,)25 b Fq(commands)h Ft(are)d(executed)g(and)g(the)g(arith-)630
+4024 y(metic)29 b(expression)f Fq(expr3)36 b Ft(is)28
+b(ev)-5 b(aluated.)41 b(If)28 b(an)m(y)h(expression)f(is)g(omitted,)i
+(it)f(b)s(eha)m(v)m(es)g(as)630 4133 y(if)i(it)h(ev)-5
+b(aluates)32 b(to)g(1.)44 b(The)30 b(return)g(v)-5 b(alue)32
+b(is)f(the)g(exit)h(status)g(of)f(the)g(last)h(command)f(in)630
+4243 y Fq(list)i Ft(that)e(is)f(executed,)i(or)e(false)h(if)g(an)m(y)f
+(of)h(the)f(expressions)g(is)h(in)m(v)-5 b(alid.)275
+4404 y(The)26 b Fs(break)g Ft(and)h Fs(continue)e Ft(builtins)i(\(see)h
+(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i(page)f(35\))g(ma)m(y)
+150 4514 y(b)s(e)i(used)f(to)i(con)m(trol)h(lo)s(op)f(execution.)150
+4741 y Fk(3.2.4.2)63 b(Conditional)42 b(Constructs)150
+4986 y Fs(if)384 b Ft(The)30 b(syn)m(tax)h(of)f(the)h
+Fs(if)f Ft(command)g(is:)870 5121 y Fs(if)47 b Fj(test-commands)11
+b Fs(;)44 b(then)965 5230 y Fj(consequent-commands)11
+b Fs(;)870 5340 y([elif)46 b Fj(more-test-commands)11
+b Fs(;)42 b(then)p eop end
+%%Page: 11 17
+TeXDict begin 11 16 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(11)965 299
+y Fj(more-consequents)11 b Fs(;])870 408 y([else)46 b
+Fj(alternate-consequents)11 b Fs(;])870 518 y(fi)630
+646 y Ft(The)53 b Fq(test-commands)58 b Ft(list)c(is)g(executed,)60
+b(and)53 b(if)g(its)h(return)e(status)i(is)f(zero,)61
+b(the)630 756 y Fq(consequen)m(t-commands)44 b Ft(list)d(is)f
+(executed.)70 b(If)40 b Fq(test-commands)k Ft(returns)39
+b(a)h(non-zero)630 865 y(status,)45 b(eac)m(h)e Fs(elif)d
+Ft(list)i(is)g(executed)h(in)e(turn,)j(and)d(if)g(its)h(exit)h(status)f
+(is)f(zero,)46 b(the)630 975 y(corresp)s(onding)37 b
+Fq(more-consequen)m(ts)42 b Ft(is)c(executed)g(and)f(the)h(command)g
+(completes.)63 b(If)630 1084 y(`)p Fs(else)29 b Fj
+(alternate-consequents)11 b Ft(')23 b(is)30 b(presen)m(t,)f(and)g(the)g
+(\014nal)g(command)f(in)h(the)g(\014nal)630 1194 y Fs(if)44
+b Ft(or)g Fs(elif)f Ft(clause)i(has)f(a)h(non-zero)g(exit)g(status,)j
+(then)c Fq(alternate-consequen)m(ts)51 b Ft(is)630 1303
+y(executed.)k(The)34 b(return)g(status)h(is)f(the)h(exit)h(status)f(of)
+g(the)g(last)g(command)g(executed,)630 1413 y(or)30 b(zero)i(if)e(no)g
+(condition)h(tested)g(true.)150 1559 y Fs(case)288 b
+Ft(The)30 b(syn)m(tax)h(of)f(the)h Fs(case)e Ft(command)h(is:)870
+1687 y Fs(case)47 b Fj(word)57 b Fs(in)47 b([)g([\(])g
+Fj(pattern)57 b Fs([|)47 b Fj(pattern)11 b Fs(]...)l(\))48
+b Fj(command-list)55 b Fs(;;]...)46 b(esac)630 1815 y(case)20
+b Ft(will)i(selectiv)m(ely)j(execute)e(the)e Fq(command-list)k
+Ft(corresp)s(onding)20 b(to)i(the)g(\014rst)f Fq(pattern)630
+1924 y Ft(that)42 b(matc)m(hes)g Fq(w)m(ord)p Ft(.)73
+b(If)41 b(the)g(shell)g(option)h Fs(nocasematch)c Ft(\(see)k(the)g
+(description)f(of)630 2034 y Fs(shopt)34 b Ft(in)h(Section)h(4.3.2)h
+([The)e(Shopt)f(Builtin],)k(page)e(54\))g(is)g(enabled,)g(the)g(matc)m
+(h)g(is)630 2144 y(p)s(erformed)29 b(without)i(regard)g(to)g(the)g
+(case)h(of)f(alphab)s(etic)g(c)m(haracters.)44 b(The)30
+b(`)p Fs(|)p Ft(')h(is)g(used)630 2253 y(to)e(separate)g(m)m(ultiple)g
+(patterns,)g(and)e(the)i(`)p Fs(\))p Ft(')f(op)s(erator)g(terminates)h
+(a)g(pattern)f(list.)41 b(A)630 2363 y(list)31 b(of)g(patterns)f(and)g
+(an)g(asso)s(ciated)i(command-list)f(is)f(kno)m(wn)g(as)h(a)g
+Fq(clause)p Ft(.)630 2491 y(Eac)m(h)42 b(clause)g(m)m(ust)f(b)s(e)g
+(terminated)h(with)e(`)p Fs(;;)p Ft(',)45 b(`)p Fs(,&)p
+Ft(',)f(or)d(`)p Fs(;;&)p Ft('.)73 b(The)41 b Fq(w)m(ord)j
+Ft(under-)630 2600 y(go)s(es)35 b(tilde)f(expansion,)h(parameter)g
+(expansion,)g(command)f(substitution,)h(arithmetic)630
+2710 y(expansion,)47 b(and)d(quote)g(remo)m(v)-5 b(al)45
+b(b)s(efore)f(matc)m(hing)h(is)f(attempted.)82 b(Eac)m(h)45
+b Fq(pattern)630 2819 y Ft(undergo)s(es)38 b(tilde)h(expansion,)i
+(parameter)e(expansion,)i(command)d(substitution,)j(and)630
+2929 y(arithmetic)32 b(expansion.)630 3057 y(There)e(ma)m(y)g(b)s(e)f
+(an)h(arbitrary)g(n)m(um)m(b)s(er)f(of)h Fs(case)f Ft(clauses,)i(eac)m
+(h)g(terminated)g(b)m(y)e(a)i(`)p Fs(;;)p Ft(',)630 3166
+y(`)p Fs(;&)p Ft(',)c(or)e(`)p Fs(;;&)p Ft('.)39 b(The)25
+b(\014rst)g(pattern)h(that)g(matc)m(hes)h(determines)e(the)h
+(command-list)g(that)630 3276 y(is)k(executed.)630 3404
+y(Here)35 b(is)g(an)g(example)h(using)e Fs(case)g Ft(in)g(a)h(script)g
+(that)h(could)f(b)s(e)f(used)g(to)h(describ)s(e)g(one)630
+3513 y(in)m(teresting)d(feature)f(of)f(an)g(animal:)870
+3641 y Fs(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f(animal:)f(")
+870 3751 y(read)h(ANIMAL)870 3861 y(echo)g(-n)g("The)f($ANIMAL)g(has)h
+(")870 3970 y(case)g($ANIMAL)e(in)965 4080 y(horse)i(|)g(dog)g(|)h
+(cat\))e(echo)h(-n)g("four";;)965 4189 y(man)g(|)h(kangaroo)d(\))j
+(echo)e(-n)i("two";;)965 4299 y(*\))g(echo)e(-n)h("an)g(unknown)f
+(number)g(of";;)870 4408 y(esac)870 4518 y(echo)h(")g(legs.")630
+4664 y Ft(If)25 b(the)h(`)p Fs(;;)p Ft(')g(op)s(erator)g(is)g(used,)g
+(no)g(subsequen)m(t)f(matc)m(hes)i(are)f(attempted)h(after)g(the)f
+(\014rst)630 4774 y(pattern)g(matc)m(h.)40 b(Using)26
+b(`)p Fs(;&)p Ft(')f(in)h(place)g(of)g(`)p Fs(;;)p Ft(')g(causes)g
+(execution)h(to)f(con)m(tin)m(ue)h(with)f(the)630 4883
+y Fq(command-list)39 b Ft(asso)s(ciated)f(with)e(the)g(next)g(clause,)j
+(if)d(an)m(y)-8 b(.)59 b(Using)37 b(`)p Fs(;;&)p Ft(')f(in)g(place)h
+(of)630 4993 y(`)p Fs(;;)p Ft(')30 b(causes)g(the)g(shell)g(to)g(test)h
+(the)f(patterns)g(in)f(the)h(next)g(clause,)h(if)e(an)m(y)-8
+b(,)31 b(and)f(execute)630 5103 y(an)m(y)h(asso)s(ciated)h
+Fq(command-list)h Ft(on)d(a)h(successful)f(matc)m(h.)630
+5230 y(The)c(return)f(status)h(is)g(zero)h(if)f(no)g
+Fq(pattern)g Ft(is)g(matc)m(hed.)40 b(Otherwise,)27 b(the)g(return)e
+(status)630 5340 y(is)30 b(the)h(exit)g(status)g(of)f(the)h
+Fq(command-list)i Ft(executed.)p eop end
+%%Page: 12 18
+TeXDict begin 12 17 bop 150 -116 a Ft(12)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(select)630 434 y
+Ft(The)i Fs(select)f Ft(construct)i(allo)m(ws)h(the)f(easy)g
+(generation)h(of)e(men)m(us.)50 b(It)34 b(has)f(almost)i(the)630
+544 y(same)c(syn)m(tax)g(as)f(the)h Fs(for)e Ft(command:)870
+679 y Fs(select)46 b Fj(name)57 b Fs([in)47 b Fj(words)57
+b Fs(...)o(];)47 b(do)h Fj(commands)11 b Fs(;)44 b(done)630
+815 y Ft(The)d(list)i(of)e(w)m(ords)h(follo)m(wing)h
+Fs(in)e Ft(is)h(expanded,)i(generating)f(a)f(list)g(of)g(items.)75
+b(The)630 924 y(set)41 b(of)f(expanded)f(w)m(ords)g(is)i(prin)m(ted)e
+(on)h(the)g(standard)f(error)h(output)g(stream,)j(eac)m(h)630
+1034 y(preceded)30 b(b)m(y)g(a)h(n)m(um)m(b)s(er.)40
+b(If)29 b(the)i(`)p Fs(in)f Fj(words)11 b Ft(')29 b(is)h(omitted,)i
+(the)e(p)s(ositional)i(parameters)630 1143 y(are)22 b(prin)m(ted,)h(as)
+f(if)f(`)p Fs(in)30 b("$@")p Ft(')21 b(had)g(b)s(een)f(sp)s(eci\014ed.)
+37 b(The)21 b Fs(PS3)g Ft(prompt)g(is)g(then)g(displa)m(y)m(ed)630
+1253 y(and)38 b(a)h(line)g(is)f(read)h(from)f(the)h(standard)e(input.)
+65 b(If)38 b(the)h(line)g(consists)g(of)f(a)h(n)m(um)m(b)s(er)630
+1363 y(corresp)s(onding)33 b(to)i(one)f(of)g(the)g(displa)m(y)m(ed)h(w)
+m(ords,)f(then)g(the)g(v)-5 b(alue)34 b(of)h Fq(name)k
+Ft(is)34 b(set)g(to)630 1472 y(that)g(w)m(ord.)49 b(If)32
+b(the)i(line)f(is)h(empt)m(y)-8 b(,)35 b(the)e(w)m(ords)g(and)f(prompt)
+h(are)g(displa)m(y)m(ed)h(again.)50 b(If)630 1582 y Fs(EOF)23
+b Ft(is)g(read,)j(the)d Fs(select)f Ft(command)i(completes.)40
+b(An)m(y)23 b(other)h(v)-5 b(alue)24 b(read)g(causes)g
+Fq(name)630 1691 y Ft(to)31 b(b)s(e)f(set)h(to)g(n)m(ull.)41
+b(The)29 b(line)i(read)f(is)h(sa)m(v)m(ed)g(in)f(the)h(v)-5
+b(ariable)31 b Fs(REPLY)p Ft(.)630 1827 y(The)42 b Fq(commands)j
+Ft(are)d(executed)h(after)g(eac)m(h)g(selection)h(un)m(til)e(a)h
+Fs(break)d Ft(command)i(is)630 1936 y(executed,)32 b(at)f(whic)m(h)f(p)
+s(oin)m(t)g(the)h Fs(select)d Ft(command)i(completes.)630
+2072 y(Here)39 b(is)g(an)g(example)h(that)f(allo)m(ws)i(the)e(user)f
+(to)i(pic)m(k)f(a)g(\014lename)h(from)e(the)h(curren)m(t)630
+2181 y(directory)-8 b(,)32 b(and)d(displa)m(ys)i(the)f(name)h(and)f
+(index)f(of)i(the)g(\014le)f(selected.)870 2317 y Fs(select)46
+b(fname)g(in)i(*;)870 2426 y(do)870 2536 y(echo)f(you)g(picked)f
+($fname)g(\\\($REPLY\\\))870 2645 y(break;)870 2755 y(done)150
+2916 y(\(\(...)o(\)\))870 3051 y(\(\()h Fj(expression)56
+b Fs(\)\))630 3187 y Ft(The)33 b(arithmetic)i Fq(expression)f
+Ft(is)f(ev)-5 b(aluated)35 b(according)g(to)f(the)g(rules)f(describ)s
+(ed)g(b)s(elo)m(w)630 3296 y(\(see)j(Section)f(6.5)h([Shell)f
+(Arithmetic],)i(page)f(78\).)55 b(If)34 b(the)h(v)-5
+b(alue)35 b(of)g(the)g(expression)g(is)630 3406 y(non-zero,)27
+b(the)f(return)e(status)i(is)g(0;)h(otherwise)f(the)g(return)e(status)i
+(is)g(1.)39 b(This)25 b(is)g(exactly)630 3516 y(equiv)-5
+b(alen)m(t)32 b(to)870 3651 y Fs(let)47 b(")p Fj(expression)11
+b Fs(")630 3786 y Ft(See)25 b(Section)h(4.2)h([Bash)e(Builtins],)i
+(page)f(41,)i(for)c(a)i(full)f(description)g(of)g(the)h
+Fs(let)e Ft(builtin.)150 3948 y Fs([[...)o(]])870 4083
+y([[)47 b Fj(expression)56 b Fs(]])630 4218 y Ft(Return)25
+b(a)h(status)f(of)h(0)g(or)g(1)g(dep)s(ending)e(on)h(the)h(ev)-5
+b(aluation)27 b(of)e(the)h(conditional)h(expres-)630
+4328 y(sion)j Fq(expression)p Ft(.)41 b(Expressions)29
+b(are)i(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s(elo)m
+(w)h(in)630 4437 y(Section)36 b(6.4)h([Bash)f(Conditional)g
+(Expressions],)h(page)f(77.)57 b(W)-8 b(ord)36 b(splitting)h(and)e
+(\014le-)630 4547 y(name)24 b(expansion)h(are)g(not)f(p)s(erformed)f
+(on)h(the)h(w)m(ords)f(b)s(et)m(w)m(een)h(the)g(`)p Fs([[)p
+Ft(')f(and)g(`)p Fs(]])p Ft(';)i(tilde)630 4657 y(expansion,)31
+b(parameter)g(and)f(v)-5 b(ariable)31 b(expansion,)g(arithmetic)g
+(expansion,)g(command)630 4766 y(substitution,)40 b(pro)s(cess)f
+(substitution,)h(and)e(quote)h(remo)m(v)-5 b(al)40 b(are)f(p)s
+(erformed.)63 b(Condi-)630 4876 y(tional)32 b(op)s(erators)e(suc)m(h)g
+(as)h(`)p Fs(-f)p Ft(')f(m)m(ust)g(b)s(e)g(unquoted)g(to)h(b)s(e)e
+(recognized)j(as)f(primaries.)630 5011 y(When)22 b(the)h(`)p
+Fs(==)p Ft(')f(and)g(`)p Fs(!=)p Ft(')g(op)s(erators)h(are)g(used,)g
+(the)g(string)f(to)i(the)e(righ)m(t)h(of)g(the)g(op)s(erator)630
+5121 y(is)31 b(considered)g(a)h(pattern)f(and)g(matc)m(hed)h(according)
+g(to)g(the)g(rules)f(describ)s(ed)f(b)s(elo)m(w)h(in)630
+5230 y(Section)37 b(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)j(page)c(25.)
+59 b(If)36 b(the)g(shell)g(option)h Fs(nocasematch)630
+5340 y Ft(\(see)42 b(the)f(description)g(of)h Fs(shopt)d
+Ft(in)i(Section)h(4.3.2)h([The)e(Shopt)f(Builtin],)45
+b(page)d(54\))p eop end
+%%Page: 13 19
+TeXDict begin 13 18 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)630 299
+y(is)40 b(enabled,)i(the)e(matc)m(h)h(is)e(p)s(erformed)g(without)g
+(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630 408
+y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28 b(is)g(0)g(if)g
+(the)g(string)g(matc)m(hes)h(\(`)p Fs(==)p Ft('\))f(or)g(do)s(es)f(not)
+h(matc)m(h)630 518 y(\(`)p Fs(!=)p Ft('\)the)33 b(pattern,)g(and)f(1)g
+(otherwise.)47 b(An)m(y)32 b(part)g(of)h(the)f(pattern)g(ma)m(y)h(b)s
+(e)f(quoted)g(to)630 628 y(force)f(it)g(to)g(b)s(e)f(matc)m(hed)h(as)f
+(a)h(string.)630 757 y(An)i(additional)i(binary)e(op)s(erator,)i(`)p
+Fs(=~)p Ft(',)g(is)f(a)m(v)-5 b(ailable,)37 b(with)c(the)h(same)g
+(precedence)h(as)630 867 y(`)p Fs(==)p Ft(')29 b(and)f(`)p
+Fs(!=)p Ft('.)40 b(When)29 b(it)g(is)g(used,)f(the)h(string)g(to)h(the)
+e(righ)m(t)i(of)f(the)g(op)s(erator)g(is)g(consid-)630
+976 y(ered)34 b(an)g(extended)g(regular)g(expression)g(and)f(matc)m
+(hed)i(accordingly)g(\(as)f(in)g Fm(r)-5 b(e)g(gex)11
+b Ft(3\)\).)630 1086 y(The)29 b(return)f(v)-5 b(alue)30
+b(is)g(0)g(if)f(the)h(string)g(matc)m(hes)g(the)g(pattern,)g(and)f(1)h
+(otherwise.)41 b(If)29 b(the)630 1196 y(regular)e(expression)g(is)h
+(syn)m(tactically)i(incorrect,)f(the)e(conditional)i(expression's)e
+(return)630 1305 y(v)-5 b(alue)40 b(is)g(2.)68 b(If)39
+b(the)h(shell)f(option)h Fs(nocasematch)d Ft(\(see)j(the)g(description)
+g(of)f Fs(shopt)f Ft(in)630 1415 y(Section)32 b(4.3.2)g([The)f(Shopt)f
+(Builtin],)i(page)g(54\))g(is)f(enabled,)g(the)g(matc)m(h)h(is)e(p)s
+(erformed)630 1524 y(without)36 b(regard)g(to)h(the)f(case)h(of)f
+(alphab)s(etic)h(c)m(haracters.)59 b(An)m(y)36 b(part)g(of)h(the)f
+(pattern)630 1634 y(ma)m(y)g(b)s(e)g(quoted)g(to)g(force)g(it)h(to)f(b)
+s(e)f(matc)m(hed)i(as)f(a)g(string.)57 b(Substrings)34
+b(matc)m(hed)j(b)m(y)630 1743 y(paren)m(thesized)44 b(sub)s
+(expressions)e(within)i(the)g(regular)g(expression)g(are)g(sa)m(v)m(ed)
+h(in)f(the)630 1853 y(arra)m(y)38 b(v)-5 b(ariable)38
+b Fs(BASH_REMATCH)p Ft(.)59 b(The)36 b(elemen)m(t)j(of)f
+Fs(BASH_REMATCH)c Ft(with)j(index)g(0)h(is)630 1963 y(the)c(p)s(ortion)
+f(of)h(the)f(string)h(matc)m(hing)g(the)g(en)m(tire)h(regular)e
+(expression.)50 b(The)33 b(elemen)m(t)630 2072 y(of)39
+b Fs(BASH_REMATCH)c Ft(with)j(index)g Fq(n)f Ft(is)i(the)f(p)s(ortion)g
+(of)h(the)f(string)h(matc)m(hing)g(the)g Fq(n)p Ft(th)630
+2182 y(paren)m(thesized)31 b(sub)s(expression.)630 2311
+y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h(follo)m
+(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
+2421 y(order)30 b(of)g(precedence:)630 2570 y Fs(\()g
+Fj(expression)38 b Fs(\))1110 2680 y Ft(Returns)30 b(the)h(v)-5
+b(alue)31 b(of)g Fq(expression)p Ft(.)42 b(This)30 b(ma)m(y)i(b)s(e)e
+(used)g(to)i(o)m(v)m(erride)g(the)1110 2790 y(normal)e(precedence)h(of)
+g(op)s(erators.)630 2939 y Fs(!)f Fj(expression)1110
+3049 y Ft(T)-8 b(rue)30 b(if)g Fq(expression)g Ft(is)h(false.)630
+3198 y Fj(expression1)38 b Fs(&&)30 b Fj(expression2)1110
+3308 y Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g Fq(expression1)38
+b Ft(and)29 b Fq(expression2)38 b Ft(are)31 b(true.)630
+3457 y Fj(expression1)38 b Fs(||)30 b Fj(expression2)1110
+3567 y Ft(T)-8 b(rue)30 b(if)g(either)h Fq(expression1)38
+b Ft(or)30 b Fq(expression2)38 b Ft(is)30 b(true.)630
+3716 y(The)25 b Fs(&&)g Ft(and)g Fs(||)f Ft(op)s(erators)i(do)f(not)h
+(ev)-5 b(aluate)27 b Fq(expression2)33 b Ft(if)26 b(the)f(v)-5
+b(alue)26 b(of)g Fq(expression1)630 3826 y Ft(is)k(su\016cien)m(t)h(to)
+g(determine)g(the)f(return)g(v)-5 b(alue)31 b(of)f(the)h(en)m(tire)g
+(conditional)h(expression.)150 4035 y Fk(3.2.4.3)63 b(Grouping)43
+b(Commands)275 4274 y Ft(Bash)22 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m
+(ys)g(to)g(group)f(a)g(list)h(of)f(commands)g(to)g(b)s(e)g(executed)h
+(as)f(a)h(unit.)37 b(When)22 b(com-)150 4384 y(mands)30
+b(are)i(group)s(ed,)f(redirections)h(ma)m(y)g(b)s(e)e(applied)i(to)g
+(the)f(en)m(tire)h(command)g(list.)44 b(F)-8 b(or)32
+b(example,)150 4493 y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g
+(the)h(list)g(ma)m(y)g(b)s(e)e(redirected)i(to)g(a)g(single)g(stream.)
+150 4643 y Fs(\(\))870 4772 y(\()47 b Fj(list)58 b Fs(\))630
+4902 y Ft(Placing)30 b(a)f(list)g(of)g(commands)f(b)s(et)m(w)m(een)i
+(paren)m(theses)e(causes)i(a)f(subshell)e(en)m(vironmen)m(t)630
+5011 y(to)k(b)s(e)e(created)j(\(see)f(Section)g(3.7.3)h([Command)d
+(Execution)i(En)m(vironmen)m(t],)g(page)f(31\),)630 5121
+y(and)d(eac)m(h)i(of)e(the)h(commands)f(in)g Fq(list)j
+Ft(to)f(b)s(e)e(executed)h(in)f(that)h(subshell.)39 b(Since)28
+b(the)f Fq(list)630 5230 y Ft(is)i(executed)g(in)f(a)h(subshell,)g(v)-5
+b(ariable)29 b(assignmen)m(ts)g(do)g(not)g(remain)f(in)g(e\013ect)j
+(after)e(the)630 5340 y(subshell)g(completes.)p eop end
+%%Page: 14 20
+TeXDict begin 14 19 bop 150 -116 a Ft(14)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs({})870 431 y({)47
+b Fj(list)11 b Fs(;)46 b(})630 564 y Ft(Placing)30 b(a)g(list)g(of)g
+(commands)f(b)s(et)m(w)m(een)h(curly)f(braces)g(causes)h(the)f(list)h
+(to)g(b)s(e)f(executed)630 673 y(in)d(the)h(curren)m(t)g(shell)f(con)m
+(text.)42 b(No)27 b(subshell)f(is)g(created.)41 b(The)26
+b(semicolon)i(\(or)f(newline\))630 783 y(follo)m(wing)32
+b Fq(list)h Ft(is)d(required.)275 938 y(In)44 b(addition)h(to)h(the)f
+(creation)i(of)e(a)g(subshell,)j(there)e(is)f(a)g(subtle)g
+(di\013erence)h(b)s(et)m(w)m(een)f(these)150 1048 y(t)m(w)m(o)c
+(constructs)e(due)g(to)g(historical)i(reasons.)67 b(The)39
+b(braces)g(are)h Fs(reserved)28 b(words)p Ft(,)40 b(so)g(they)f(m)m
+(ust)150 1158 y(b)s(e)d(separated)h(from)f(the)g Fq(list)j
+Ft(b)m(y)e Fs(blank)p Ft(s)e(or)h(other)h(shell)f(metac)m(haracters.)62
+b(The)36 b(paren)m(theses)h(are)150 1267 y Fs(operators)p
+Ft(,)23 b(and)h(are)g(recognized)i(as)e(separate)i(tok)m(ens)f(b)m(y)f
+(the)g(shell)h(ev)m(en)g(if)f(they)g(are)h(not)f(separated)150
+1377 y(from)30 b(the)g Fq(list)j Ft(b)m(y)e(whitespace.)275
+1509 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h(constructs)g
+(is)f(the)h(exit)g(status)f(of)h Fq(list)p Ft(.)150 1727
+y Fk(3.2.5)63 b(Copro)s(cesses)275 1969 y Ft(A)34 b Fs(coprocess)e
+Ft(is)j(a)g(shell)g(command)f(preceded)h(b)m(y)f(the)h
+Fs(coproc)e Ft(reserv)m(ed)i(w)m(ord.)53 b(A)35 b(copro)s(cess)150
+2079 y(is)30 b(executed)g(async)m(hronously)g(in)f(a)h(subshell,)f(as)h
+(if)g(the)g(command)f(had)g(b)s(een)g(terminated)h(with)g(the)150
+2189 y(`)p Fs(&)p Ft(')k(con)m(trol)h(op)s(erator,)g(with)f(a)g(t)m(w)m
+(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s(et)m(w)m(een)h(the)f
+(executing)h(shell)f(and)f(the)150 2298 y(copro)s(cess.)275
+2431 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390
+2563 y Fs(coproc)46 b([)p Fj(NAME)11 b Fs(])46 b Fj(command)56
+b Fs([)p Fj(redirections)11 b Fs(])150 2696 y Ft(This)41
+b(creates)j(a)f(copro)s(cess)f(named)g Fq(NAME)p Ft(.)h(If)f
+Fq(NAME)48 b Ft(is)42 b(not)h(supplied,)h(the)e(default)h(name)f(is)150
+2805 y Fq(COPR)m(OC)p Ft(.)23 b Fq(NAME)29 b Ft(m)m(ust)24
+b(not)g(b)s(e)f(supplied)f(if)i Fq(command)i Ft(is)e(a)g(simple)g
+(command)f(\(see)i(Section)f(3.2.1)150 2915 y([Simple)39
+b(Commands],)h(page)g(8\);)k(otherwise,)e(it)d(is)g(in)m(terpreted)h
+(as)f(the)g(\014rst)f(w)m(ord)h(of)g(the)g(simple)150
+3024 y(command.)275 3157 y(When)23 b(the)h(copro)s(c)g(is)g(executed,)i
+(the)e(shell)g(creates)h(an)e(arra)m(y)i(v)-5 b(ariable)24
+b(\(see)h(Section)f(6.7)h([Arra)m(ys],)150 3267 y(page)43
+b(80\))g(named)f Fq(NAME)48 b Ft(in)42 b(the)g(con)m(text)i(of)e(the)h
+(executing)g(shell.)76 b(The)42 b(standard)f(output)h(of)150
+3376 y Fq(command)d Ft(is)d(connected)h(via)g(a)f(pip)s(e)g(to)g(a)h
+(\014le)f(descriptor)g(in)f(the)i(executing)g(shell,)h(and)d(that)i
+(\014le)150 3486 y(descriptor)25 b(is)f(assigned)h(to)h
+Fq(NAME)5 b Ft([0].)40 b(The)25 b(standard)e(input)h(of)h
+Fq(command)j Ft(is)d(connected)g(via)h(a)f(pip)s(e)150
+3595 y(to)33 b(a)f(\014le)g(descriptor)g(in)f(the)i(executing)g(shell,)
+f(and)g(that)g(\014le)g(descriptor)g(is)g(assigned)g(to)h
+Fq(NAME)5 b Ft([1].)150 3705 y(This)31 b(pip)s(e)g(is)h(established)g
+(b)s(efore)g(an)m(y)g(redirections)g(sp)s(eci\014ed)g(b)m(y)f(the)i
+(command)e(\(see)i(Section)g(3.6)150 3814 y([Redirections],)25
+b(page)e(26\).)39 b(The)21 b(\014le)h(descriptors)g(can)g(b)s(e)f
+(utilized)i(as)f(argumen)m(ts)h(to)f(shell)g(commands)150
+3924 y(and)30 b(redirections)h(using)f(standard)f(w)m(ord)h
+(expansions.)275 4057 y(The)f(pro)s(cess)h(id)f(of)h(the)g(shell)h(spa)
+m(wned)e(to)i(execute)g(the)f(copro)s(cess)h(is)f(a)m(v)-5
+b(ailable)32 b(as)e(the)g(v)-5 b(alue)31 b(of)150 4166
+y(the)26 b(v)-5 b(ariable)26 b Fq(NAME)p 931 4166 28
+4 v 46 w Ft(PID.)g(The)f Fs(wait)g Ft(builtin)g(command)g(ma)m(y)h(b)s
+(e)f(used)g(to)i(w)m(ait)f(for)g(the)g(copro)s(cess)150
+4276 y(to)31 b(terminate.)275 4408 y(The)e(return)h(status)g(of)h(a)g
+(copro)s(cess)f(is)h(the)f(exit)i(status)e(of)h Fq(command)p
+Ft(.)150 4660 y Fr(3.3)68 b(Shell)45 b(F)-11 b(unctions)275
+4902 y Ft(Shell)27 b(functions)g(are)g(a)h(w)m(a)m(y)g(to)g(group)f
+(commands)g(for)g(later)i(execution)f(using)f(a)h(single)g(name)f(for)
+150 5011 y(the)35 b(group.)55 b(They)35 b(are)g(executed)h(just)f(lik)m
+(e)h(a)g Fs(")p Ft(regular)p Fs(")f Ft(command.)54 b(When)35
+b(the)h(name)f(of)g(a)h(shell)150 5121 y(function)j(is)g(used)f(as)h(a)
+h(simple)f(command)g(name,)i(the)e(list)h(of)f(commands)g(asso)s
+(ciated)i(with)d(that)150 5230 y(function)25 b(name)h(is)g(executed.)40
+b(Shell)25 b(functions)g(are)i(executed)f(in)f(the)h(curren)m(t)g
+(shell)g(con)m(text;)j(no)c(new)150 5340 y(pro)s(cess)30
+b(is)g(created)i(to)f(in)m(terpret)g(them.)p eop end
+%%Page: 15 21
+TeXDict begin 15 20 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)275 299
+y(F)-8 b(unctions)30 b(are)h(declared)g(using)f(this)g(syn)m(tax:)390
+433 y Fs([)47 b(function)f(])h Fj(name)58 b Fs(\(\))47
+b Fj(compound-command)54 b Fs([)47 b Fj(redirections)55
+b Fs(])275 567 y Ft(This)31 b(de\014nes)h(a)h(shell)g(function)g(named)
+f Fq(name)p Ft(.)48 b(The)32 b(reserv)m(ed)h(w)m(ord)f
+Fs(function)f Ft(is)h(optional.)49 b(If)150 676 y(the)39
+b Fs(function)f Ft(reserv)m(ed)h(w)m(ord)g(is)g(supplied,)i(the)e
+(paren)m(theses)h(are)f(optional.)69 b(The)39 b Fq(b)s(o)s(dy)45
+b Ft(of)40 b(the)150 786 y(function)h(is)h(the)g(comp)s(ound)e(command)
+h Fq(comp)s(ound-command)j Ft(\(see)e(Section)h(3.2.4)g([Comp)s(ound)
+150 896 y(Commands],)33 b(page)g(9\).)48 b(That)33 b(command)g(is)f
+(usually)h(a)g Fq(list)i Ft(enclosed)e(b)s(et)m(w)m(een)h
+Fs({)e Ft(and)g Fs(})p Ft(,)h(but)f(ma)m(y)150 1005 y(b)s(e)27
+b(an)m(y)h(comp)s(ound)e(command)h(listed)h(ab)s(o)m(v)m(e.)41
+b Fq(comp)s(ound-command)30 b Ft(is)e(executed)g(whenev)m(er)g
+Fq(name)150 1115 y Ft(is)37 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)g
+(a)h(command.)61 b(An)m(y)37 b(redirections)h(\(see)g(Section)g(3.6)g
+([Redirections],)150 1224 y(page)31 b(26\))h(asso)s(ciated)g(with)e
+(the)g(shell)h(function)f(are)h(p)s(erformed)d(when)i(the)g(function)g
+(is)h(executed.)275 1358 y(A)41 b(function)f(de\014nition)h(ma)m(y)g(b)
+s(e)g(deleted)g(using)g(the)g(`)p Fs(-f)p Ft(')g(option)g(to)h(the)f
+Fs(unset)e Ft(builtin)i(\(see)150 1468 y(Section)31 b(4.1)h([Bourne)e
+(Shell)g(Builtins],)h(page)h(35\).)275 1602 y(The)26
+b(exit)i(status)g(of)f(a)h(function)f(de\014nition)g(is)g(zero)h
+(unless)f(a)g(syn)m(tax)h(error)f(o)s(ccurs)g(or)g(a)h(readonly)150
+1711 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46
+b(When)32 b(executed,)h(the)f(exit)h(status)g(of)f(a)g(function)150
+1821 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g(command)f(executed)
+i(in)e(the)g(b)s(o)s(dy)-8 b(.)275 1955 y(Note)22 b(that)f(for)f
+(historical)i(reasons,)h(in)e(the)g(most)g(common)g(usage)g(the)g
+(curly)f(braces)h(that)g(surround)150 2064 y(the)38 b(b)s(o)s(dy)d(of)j
+(the)f(function)g(m)m(ust)g(b)s(e)g(separated)h(from)f(the)g(b)s(o)s
+(dy)f(b)m(y)h Fs(blank)p Ft(s)f(or)h(newlines.)62 b(This)150
+2174 y(is)38 b(b)s(ecause)g(the)h(braces)f(are)h(reserv)m(ed)f(w)m
+(ords)g(and)f(are)i(only)f(recognized)i(as)e(suc)m(h)g(when)f(they)i
+(are)150 2284 y(separated)26 b(from)f(the)h(command)f(list)i(b)m(y)e
+(whitespace)h(or)g(another)g(shell)g(metac)m(haracter.)41
+b(Also,)28 b(when)150 2393 y(using)i(the)g(braces,)h(the)g
+Fq(list)i Ft(m)m(ust)d(b)s(e)g(terminated)h(b)m(y)f(a)h(semicolon,)h(a)
+e(`)p Fs(&)p Ft(',)h(or)g(a)f(newline.)275 2527 y(When)i(a)i(function)f
+(is)g(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)
+g(the)h(p)s(ositional)g(pa-)150 2637 y(rameters)42 b(during)e(its)i
+(execution)h(\(see)f(Section)g(3.4.1)h([P)m(ositional)h(P)m
+(arameters],)i(page)c(16\).)75 b(The)150 2746 y(sp)s(ecial)37
+b(parameter)f(`)p Fs(#)p Ft(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b)
+s(er)f(of)h(p)s(ositional)h(parameters)f(is)g(up)s(dated)f(to)150
+2856 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35
+b(parameter)h Fs(0)f Ft(is)g(unc)m(hanged.)54 b(The)35
+b(\014rst)f(elemen)m(t)j(of)e(the)g Fs(FUNCNAME)150 2966
+y Ft(v)-5 b(ariable)27 b(is)g(set)g(to)h(the)f(name)f(of)h(the)g
+(function)f(while)h(the)g(function)f(is)h(executing.)40
+b(All)28 b(other)f(asp)s(ects)150 3075 y(of)32 b(the)g(shell)g
+(execution)i(en)m(vironmen)m(t)e(are)h(iden)m(tical)g(b)s(et)m(w)m(een)
+g(a)f(function)g(and)f(its)i(caller)g(with)f(the)150
+3185 y(exception)h(that)f(the)g Fs(DEBUG)f Ft(and)g Fs(RETURN)f
+Ft(traps)h(are)h(not)g(inherited)g(unless)f(the)h(function)f(has)h(b)s
+(een)150 3294 y(giv)m(en)h(the)f Fs(trace)e Ft(attribute)j(using)e(the)
+h Fs(declare)e Ft(builtin)h(or)h(the)g Fs(-o)e(functrace)f
+Ft(option)j(has)g(b)s(een)150 3404 y(enabled)39 b(with)f(the)h
+Fs(set)e Ft(builtin,)k(\(in)e(whic)m(h)f(case)i(all)f(functions)f
+(inherit)h(the)f Fs(DEBUG)g Ft(and)g Fs(RETURN)150 3513
+y Ft(traps\).)66 b(See)40 b(Section)f(4.1)h([Bourne)f(Shell)g
+(Builtins],)j(page)e(35,)i(for)d(the)g(description)g(of)g(the)g
+Fs(trap)150 3623 y Ft(builtin.)275 3757 y(If)e(the)g(builtin)g(command)
+h Fs(return)d Ft(is)j(executed)g(in)g(a)g(function,)h(the)e(function)h
+(completes)h(and)150 3867 y(execution)25 b(resumes)e(with)h(the)g(next)
+g(command)f(after)i(the)f(function)f(call.)40 b(An)m(y)24
+b(command)f(asso)s(ciated)150 3976 y(with)36 b(the)h
+Fs(RETURN)d Ft(trap)i(is)h(executed)g(b)s(efore)f(execution)i(resumes.)
+57 b(When)37 b(a)f(function)g(completes,)150 4086 y(the)h(v)-5
+b(alues)38 b(of)f(the)g(p)s(ositional)h(parameters)f(and)g(the)g(sp)s
+(ecial)h(parameter)f(`)p Fs(#)p Ft(')g(are)h(restored)f(to)h(the)150
+4195 y(v)-5 b(alues)26 b(they)f(had)g(prior)f(to)i(the)g(function's)f
+(execution.)40 b(If)25 b(a)h(n)m(umeric)f(argumen)m(t)h(is)f(giv)m(en)h
+(to)g Fs(return)p Ft(,)150 4305 y(that)j(is)g(the)f(function's)h
+(return)e(status;)j(otherwise)f(the)f(function's)h(return)e(status)i
+(is)f(the)h(exit)h(status)150 4415 y(of)h(the)f(last)h(command)f
+(executed)i(b)s(efore)e(the)g Fs(return)p Ft(.)275 4548
+y(V)-8 b(ariables)31 b(lo)s(cal)g(to)f(the)g(function)f(ma)m(y)i(b)s(e)
+e(declared)h(with)f(the)h Fs(local)f Ft(builtin.)40 b(These)29
+b(v)-5 b(ariables)150 4658 y(are)31 b(visible)g(only)f(to)h(the)g
+(function)f(and)g(the)g(commands)g(it)h(in)m(v)m(ok)m(es.)275
+4792 y(F)-8 b(unction)38 b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s
+(e)e(listed)h(with)f(the)h(`)p Fs(-f)p Ft(')f(option)h(to)h(the)e
+Fs(declare)f Ft(or)150 4902 y Fs(typeset)d Ft(builtin)h(commands)h
+(\(see)h(Section)g(4.2)g([Bash)f(Builtins],)i(page)f(41\).)55
+b(The)35 b(`)p Fs(-F)p Ft(')g(option)g(to)150 5011 y
+Fs(declare)f Ft(or)i Fs(typeset)e Ft(will)i(list)h(the)f(function)g
+(names)g(only)g(\(and)g(optionally)h(the)f(source)g(\014le)h(and)150
+5121 y(line)c(n)m(um)m(b)s(er,)g(if)f(the)h Fs(extdebug)e
+Ft(shell)i(option)g(is)g(enabled\).)49 b(F)-8 b(unctions)33
+b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150 5230 y(subshells)f
+(automatically)37 b(ha)m(v)m(e)d(them)g(de\014ned)e(with)h(the)g(`)p
+Fs(-f)p Ft(')h(option)g(to)g(the)f Fs(export)f Ft(builtin)h(\(see)150
+5340 y(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(35\).)47
+b(Note)33 b(that)g(shell)f(functions)g(and)f(v)-5 b(ariables)33
+b(with)p eop end
+%%Page: 16 22
+TeXDict begin 16 21 bop 150 -116 a Ft(16)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y(the)f(same)g(name)g(ma)m(y)g(result)g
+(in)g(m)m(ultiple)g(iden)m(tically-named)i(en)m(tries)f(in)e(the)h(en)m
+(vironmen)m(t)g(passed)150 408 y(to)h(the)g(shell's)f(c)m(hildren.)41
+b(Care)30 b(should)g(b)s(e)f(tak)m(en)j(in)e(cases)h(where)f(this)g(ma)
+m(y)h(cause)g(a)g(problem.)275 540 y(F)-8 b(unctions)30
+b(ma)m(y)h(b)s(e)f(recursiv)m(e.)41 b(No)31 b(limit)g(is)g(placed)g(on)
+f(the)g(n)m(um)m(b)s(er)g(of)g(recursiv)m(e)h(calls.)150
+787 y Fr(3.4)68 b(Shell)45 b(P)l(arameters)275 1028 y
+Ft(A)32 b Fq(parameter)40 b Ft(is)32 b(an)h(en)m(tit)m(y)h(that)f
+(stores)g(v)-5 b(alues.)48 b(It)33 b(can)g(b)s(e)e(a)i
+Fs(name)p Ft(,)g(a)g(n)m(um)m(b)s(er,)f(or)g(one)h(of)g(the)150
+1138 y(sp)s(ecial)i(c)m(haracters)h(listed)g(b)s(elo)m(w.)53
+b(A)35 b Fq(v)-5 b(ariable)41 b Ft(is)34 b(a)h(parameter)h(denoted)e(b)
+m(y)h(a)g Fs(name)p Ft(.)52 b(A)35 b(v)-5 b(ariable)150
+1248 y(has)29 b(a)h Fq(v)-5 b(alue)35 b Ft(and)28 b(zero)j(or)e(more)g
+Fq(attributes)p Ft(.)41 b(A)m(ttributes)30 b(are)g(assigned)g(using)f
+(the)g Fs(declare)e Ft(builtin)150 1357 y(command)22
+b(\(see)h(the)f(description)g(of)g(the)g Fs(declare)f
+Ft(builtin)g(in)h(Section)h(4.2)g([Bash)f(Builtins],)j(page)d(41\).)275
+1488 y(A)28 b(parameter)h(is)g(set)g(if)f(it)h(has)f(b)s(een)g
+(assigned)h(a)g(v)-5 b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)h(a)g
+(v)-5 b(alid)28 b(v)-5 b(alue.)41 b(Once)150 1598 y(a)31
+b(v)-5 b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h(b)s(e)f(unset)g(only)h
+(b)m(y)f(using)g(the)g Fs(unset)f Ft(builtin)h(command.)275
+1729 y(A)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e
+(a)h(statemen)m(t)h(of)e(the)h(form)390 1861 y Fj(name)11
+b Fs(=[)p Fj(value)g Fs(])150 1992 y Ft(If)34 b Fq(v)-5
+b(alue)40 b Ft(is)35 b(not)g(giv)m(en,)h(the)f(v)-5 b(ariable)35
+b(is)g(assigned)g(the)f(n)m(ull)h(string.)53 b(All)35
+b Fq(v)-5 b(alue)5 b Ft(s)35 b(undergo)f(tilde)h(ex-)150
+2101 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36
+b(expansion,)f(command)g(substitution,)h(arithmetic)g(expansion,)150
+2211 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).)
+72 b(If)40 b(the)h(v)-5 b(ariable)41 b(has)g(its)g Fs(integer)e
+Ft(attribute)i(set,)j(then)150 2321 y Fq(v)-5 b(alue)38
+b Ft(is)33 b(ev)-5 b(aluated)34 b(as)f(an)g(arithmetic)h(expression)f
+(ev)m(en)h(if)e(the)h Fs($\(\(...)o(\)\))f Ft(expansion)h(is)g(not)g
+(used)150 2430 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f
+(page)h(23\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s
+(erformed,)f(with)150 2540 y(the)35 b(exception)h(of)f
+Fs("$@")f Ft(as)h(explained)g(b)s(elo)m(w.)54 b(Filename)36
+b(expansion)f(is)g(not)g(p)s(erformed.)53 b(Assign-)150
+2649 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g
+(argumen)m(ts)h(to)g(the)g Fs(alias)p Ft(,)e Fs(declare)p
+Ft(,)g Fs(typeset)p Ft(,)g Fs(export)p Ft(,)150 2759
+y Fs(readonly)p Ft(,)d(and)i Fs(local)f Ft(builtin)h(commands.)275
+2890 y(In)f(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m
+(t)h(is)e(assigning)g(a)h(v)-5 b(alue)30 b(to)h(a)f(shell)g(v)-5
+b(ariable)31 b(or)150 3000 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g
+([Arra)m(ys],)g(page)g(80\),)g(the)f(`)p Fs(+=)p Ft(')g(op)s(erator)g
+(can)h(b)s(e)e(used)g(to)i(app)s(end)d(to)150 3109 y(or)36
+b(add)g(to)h(the)f(v)-5 b(ariable's)37 b(previous)f(v)-5
+b(alue.)59 b(When)36 b(`)p Fs(+=)p Ft(')g(is)g(applied)g(to)h(a)g(v)-5
+b(ariable)37 b(for)f(whic)m(h)g(the)150 3219 y(in)m(teger)k(attribute)e
+(has)g(b)s(een)g(set,)j Fq(v)-5 b(alue)44 b Ft(is)38
+b(ev)-5 b(aluated)39 b(as)g(an)f(arithmetic)h(expression)f(and)g(added)
+150 3329 y(to)e(the)f(v)-5 b(ariable's)36 b(curren)m(t)f(v)-5
+b(alue,)37 b(whic)m(h)e(is)g(also)h(ev)-5 b(aluated.)56
+b(When)35 b(`)p Fs(+=)p Ft(')g(is)h(applied)f(to)g(an)g(arra)m(y)150
+3438 y(v)-5 b(ariable)26 b(using)e(comp)s(ound)f(assignmen)m(t)j(\(see)
+f(Section)h(6.7)f([Arra)m(ys],)i(page)f(80\),)h(the)e(v)-5
+b(ariable's)25 b(v)-5 b(alue)150 3548 y(is)32 b(not)f(unset)h(\(as)g
+(it)g(is)f(when)g(using)g(`)p Fs(=)p Ft('\),)i(and)e(new)g(v)-5
+b(alues)32 b(are)g(app)s(ended)d(to)k(the)f(arra)m(y)g(b)s(eginning)150
+3657 y(at)27 b(one)f(greater)i(than)e(the)g(arra)m(y's)h(maxim)m(um)f
+(index)g(\(for)g(indexed)g(arra)m(ys\),)i(or)e(added)g(as)g(additional)
+150 3767 y(k)m(ey-v)-5 b(alue)35 b(pairs)e(in)g(an)g(asso)s(ciativ)m(e)
+j(arra)m(y)-8 b(.)51 b(When)33 b(applied)g(to)h(a)g(string-v)-5
+b(alued)34 b(v)-5 b(ariable,)35 b Fq(v)-5 b(alue)39 b
+Ft(is)150 3877 y(expanded)30 b(and)f(app)s(ended)g(to)i(the)g(v)-5
+b(ariable's)31 b(v)-5 b(alue.)150 4091 y Fk(3.4.1)63
+b(P)m(ositional)41 b(P)m(arameters)275 4332 y Ft(A)36
+b Fq(p)s(ositional)i(parameter)44 b Ft(is)37 b(a)g(parameter)g(denoted)
+g(b)m(y)g(one)g(or)g(more)g(digits,)i(other)e(than)g(the)150
+4442 y(single)k(digit)f Fs(0)p Ft(.)69 b(P)m(ositional)42
+b(parameters)f(are)f(assigned)g(from)g(the)g(shell's)g(argumen)m(ts)g
+(when)f(it)i(is)150 4551 y(in)m(v)m(ok)m(ed,)f(and)d(ma)m(y)g(b)s(e)g
+(reassigned)g(using)f(the)i Fs(set)e Ft(builtin)g(command.)61
+b(P)m(ositional)39 b(parameter)e Fs(N)150 4661 y Ft(ma)m(y)27
+b(b)s(e)g(referenced)f(as)h Fs(${N})p Ft(,)g(or)g(as)g
+Fs($N)f Ft(when)g Fs(N)g Ft(consists)i(of)f(a)g(single)g(digit.)41
+b(P)m(ositional)29 b(parameters)150 4770 y(ma)m(y)j(not)f(b)s(e)g
+(assigned)h(to)g(with)f(assignmen)m(t)h(statemen)m(ts.)45
+b(The)30 b Fs(set)h Ft(and)g Fs(shift)e Ft(builtins)i(are)h(used)150
+4880 y(to)h(set)f(and)f(unset)h(them)g(\(see)h(Chapter)e(4)h([Shell)g
+(Builtin)h(Commands],)e(page)i(35\).)47 b(The)31 b(p)s(ositional)150
+4990 y(parameters)24 b(are)g(temp)s(orarily)g(replaced)h(when)d(a)j
+(shell)f(function)f(is)h(executed)h(\(see)f(Section)h(3.3)g([Shell)150
+5099 y(F)-8 b(unctions],)31 b(page)h(14\).)275 5230 y(When)27
+b(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f(than)g(a)g
+(single)h(digit)g(is)f(expanded,)g(it)h(m)m(ust)150 5340
+y(b)s(e)h(enclosed)h(in)f(braces.)p eop end
+%%Page: 17 23
+TeXDict begin 17 22 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)150 299
+y Fk(3.4.2)63 b(Sp)s(ecial)41 b(P)m(arameters)275 539
+y Ft(The)27 b(shell)h(treats)h(sev)m(eral)g(parameters)g(sp)s(ecially)
+-8 b(.)41 b(These)28 b(parameters)g(ma)m(y)g(only)g(b)s(e)g
+(referenced;)150 648 y(assignmen)m(t)j(to)g(them)g(is)f(not)h(allo)m(w)
+m(ed.)150 799 y Fs(*)432 b Ft(Expands)29 b(to)h(the)h(p)s(ositional)f
+(parameters,)h(starting)g(from)e(one.)41 b(When)30 b(the)g(expansion)
+630 909 y(o)s(ccurs)e(within)f(double)h(quotes,)h(it)g(expands)e(to)i
+(a)f(single)h(w)m(ord)f(with)g(the)g(v)-5 b(alue)29 b(of)f(eac)m(h)630
+1018 y(parameter)i(separated)g(b)m(y)f(the)g(\014rst)g(c)m(haracter)i
+(of)e(the)h Fs(IFS)e Ft(sp)s(ecial)i(v)-5 b(ariable.)41
+b(That)30 b(is,)630 1128 y Fs("$*")h Ft(is)i(equiv)-5
+b(alen)m(t)33 b(to)h Fs("$1)p Fj(c)11 b Fs($2)p Fj(c)g
+Fs(...)l(")p Ft(,)33 b(where)f Fq(c)38 b Ft(is)32 b(the)h(\014rst)e(c)m
+(haracter)j(of)f(the)f(v)-5 b(alue)630 1238 y(of)30 b(the)g
+Fs(IFS)g Ft(v)-5 b(ariable.)41 b(If)30 b Fs(IFS)f Ft(is)h(unset,)g(the)
+g(parameters)g(are)h(separated)f(b)m(y)g(spaces.)41 b(If)630
+1347 y Fs(IFS)29 b Ft(is)i(n)m(ull,)f(the)h(parameters)g(are)f(joined)h
+(without)f(in)m(terv)m(ening)i(separators.)150 1498 y
+Fs(@)432 b Ft(Expands)29 b(to)h(the)h(p)s(ositional)f(parameters,)h
+(starting)g(from)e(one.)41 b(When)30 b(the)g(expansion)630
+1608 y(o)s(ccurs)c(within)g(double)f(quotes,)j(eac)m(h)f(parameter)g
+(expands)e(to)i(a)g(separate)g(w)m(ord.)39 b(That)630
+1717 y(is,)29 b Fs("$@")e Ft(is)i(equiv)-5 b(alen)m(t)30
+b(to)f Fs("$1")g("$2")h(...)o Ft(.)40 b(If)28 b(the)g(double-quoted)h
+(expansion)f(o)s(ccurs)630 1827 y(within)d(a)h(w)m(ord,)g(the)g
+(expansion)f(of)h(the)g(\014rst)f(parameter)h(is)f(joined)h(with)f(the)
+h(b)s(eginning)630 1936 y(part)f(of)g(the)g(original)g(w)m(ord,)h(and)e
+(the)h(expansion)g(of)g(the)g(last)h(parameter)f(is)g(joined)f(with)630
+2046 y(the)37 b(last)g(part)g(of)f(the)h(original)h(w)m(ord.)59
+b(When)36 b(there)h(are)g(no)f(p)s(ositional)h(parameters,)630
+2156 y Fs("$@")29 b Ft(and)h Fs($@)g Ft(expand)f(to)j(nothing)e
+(\(i.e.,)i(they)e(are)h(remo)m(v)m(ed\).)150 2306 y Fs(#)432
+b Ft(Expands)29 b(to)i(the)g(n)m(um)m(b)s(er)e(of)h(p)s(ositional)h
+(parameters)g(in)f(decimal.)150 2457 y Fs(?)432 b Ft(Expands)29
+b(to)i(the)g(exit)g(status)g(of)f(the)h(most)f(recen)m(tly)i(executed)f
+(foreground)f(pip)s(eline.)150 2608 y Fs(-)432 b Ft(\(A)31
+b(h)m(yphen.\))42 b(Expands)30 b(to)h(the)g(curren)m(t)g(option)h
+(\015ags)f(as)g(sp)s(eci\014ed)f(up)s(on)g(in)m(v)m(o)s(cation,)630
+2718 y(b)m(y)35 b(the)h Fs(set)e Ft(builtin)h(command,)h(or)g(those)g
+(set)f(b)m(y)h(the)f(shell)h(itself)g(\(suc)m(h)f(as)h(the)f(`)p
+Fs(-i)p Ft(')630 2827 y(option\).)150 2978 y Fs($)432
+b Ft(Expands)39 b(to)j(the)f(pro)s(cess)f Fl(id)h Ft(of)g(the)g(shell.)
+73 b(In)40 b(a)h Fs(\(\))f Ft(subshell,)j(it)e(expands)f(to)i(the)630
+3088 y(pro)s(cess)30 b Fl(id)g Ft(of)h(the)g(in)m(v)m(oking)g(shell,)g
+(not)g(the)f(subshell.)150 3239 y Fs(!)432 b Ft(Expands)39
+b(to)i(the)g(pro)s(cess)e Fl(id)i Ft(of)f(the)h(most)g(recen)m(tly)g
+(executed)g(bac)m(kground)g(\(asyn-)630 3348 y(c)m(hronous\))30
+b(command.)150 3499 y Fs(0)432 b Ft(Expands)20 b(to)j(the)f(name)g(of)g
+(the)g(shell)g(or)f(shell)h(script.)38 b(This)21 b(is)h(set)g(at)h
+(shell)f(initialization.)630 3609 y(If)44 b(Bash)g(is)g(in)m(v)m(ok)m
+(ed)i(with)e(a)g(\014le)g(of)h(commands)e(\(see)j(Section)f(3.8)g
+([Shell)f(Scripts],)630 3718 y(page)39 b(34\),)i Fs($0)d
+Ft(is)g(set)g(to)h(the)f(name)g(of)g(that)h(\014le.)64
+b(If)37 b(Bash)i(is)f(started)g(with)g(the)g(`)p Fs(-c)p
+Ft(')630 3828 y(option)i(\(see)g(Section)h(6.1)f([In)m(v)m(oking)h
+(Bash],)h(page)e(71\),)j(then)d Fs($0)e Ft(is)i(set)g(to)g(the)g
+(\014rst)630 3938 y(argumen)m(t)31 b(after)g(the)g(string)g(to)g(b)s(e)
+f(executed,)i(if)f(one)g(is)f(presen)m(t.)42 b(Otherwise,)31
+b(it)g(is)f(set)630 4047 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m
+(ok)m(e)h(Bash,)f(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150
+4198 y Fs(_)432 b Ft(\(An)27 b(underscore.\))39 b(A)m(t)29
+b(shell)e(startup,)h(set)f(to)h(the)g(absolute)g(pathname)f(used)f(to)i
+(in)m(v)m(ok)m(e)630 4308 y(the)22 b(shell)g(or)g(shell)g(script)f(b)s
+(eing)h(executed)h(as)f(passed)f(in)g(the)h(en)m(vironmen)m(t)h(or)e
+(argumen)m(t)630 4417 y(list.)72 b(Subsequen)m(tly)-8
+b(,)43 b(expands)c(to)j(the)e(last)i(argumen)m(t)f(to)g(the)g(previous)
+f(command,)630 4527 y(after)35 b(expansion.)54 b(Also)36
+b(set)f(to)h(the)f(full)f(pathname)h(used)f(to)h(in)m(v)m(ok)m(e)i(eac)
+m(h)f(command)630 4636 y(executed)42 b(and)e(placed)i(in)e(the)h(en)m
+(vironmen)m(t)h(exp)s(orted)f(to)g(that)h(command.)72
+b(When)630 4746 y(c)m(hec)m(king)32 b(mail,)f(this)g(parameter)g(holds)
+e(the)i(name)f(of)h(the)g(mail)g(\014le.)150 4991 y Fr(3.5)68
+b(Shell)45 b(Expansions)275 5230 y Ft(Expansion)29 b(is)h(p)s(erformed)
+e(on)i(the)g(command)g(line)g(after)h(it)f(has)g(b)s(een)f(split)h(in)m
+(to)h Fs(token)p Ft(s.)39 b(There)150 5340 y(are)31 b(sev)m(en)g(kinds)
+e(of)i(expansion)f(p)s(erformed:)p eop end
+%%Page: 18 24
+TeXDict begin 18 23 bop 150 -116 a Ft(18)2572 b(Bash)31
+b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(brace)31
+b(expansion)225 429 y Fp(\017)60 b Ft(tilde)31 b(expansion)225
+560 y Fp(\017)60 b Ft(parameter)31 b(and)f(v)-5 b(ariable)31
+b(expansion)225 691 y Fp(\017)60 b Ft(command)30 b(substitution)225
+821 y Fp(\017)60 b Ft(arithmetic)32 b(expansion)225 952
+y Fp(\017)60 b Ft(w)m(ord)30 b(splitting)225 1082 y Fp(\017)60
+b Ft(\014lename)31 b(expansion)275 1234 y(The)i(order)g(of)h
+(expansions)g(is:)47 b(brace)34 b(expansion,)h(tilde)g(expansion,)f
+(parameter,)i(v)-5 b(ariable,)36 b(and)150 1343 y(arithmetic)46
+b(expansion)f(and)g(command)f(substitution)h(\(done)g(in)g(a)g
+(left-to-righ)m(t)j(fashion\),)h(w)m(ord)150 1453 y(splitting,)31
+b(and)f(\014lename)h(expansion.)275 1584 y(On)42 b(systems)h(that)h
+(can)g(supp)s(ort)e(it,)47 b(there)d(is)f(an)h(additional)g(expansion)f
+(a)m(v)-5 b(ailable:)69 b Fq(pro)s(cess)150 1693 y(substitution)p
+Ft(.)61 b(This)36 b(is)h(p)s(erformed)f(at)i(the)f(same)h(time)f(as)h
+(parameter,)h(v)-5 b(ariable,)40 b(and)d(arithmetic)150
+1803 y(expansion)30 b(and)g(command)g(substitution.)275
+1933 y(Only)35 b(brace)i(expansion,)h(w)m(ord)e(splitting,)j(and)d
+(\014lename)g(expansion)g(can)h(c)m(hange)h(the)e(n)m(um)m(b)s(er)150
+2043 y(of)h(w)m(ords)f(of)g(the)h(expansion;)i(other)e(expansions)f
+(expand)g(a)h(single)g(w)m(ord)f(to)h(a)g(single)g(w)m(ord.)58
+b(The)150 2152 y(only)32 b(exceptions)i(to)f(this)f(are)h(the)f
+(expansions)g(of)h Fs("$@")e Ft(\(see)i(Section)g(3.4.2)h([Sp)s(ecial)f
+(P)m(arameters],)150 2262 y(page)e(17\))h(and)d Fs("${)p
+Fj(name)11 b Fs([@]}")27 b Ft(\(see)k(Section)h(6.7)f([Arra)m(ys],)g
+(page)g(80\).)275 2393 y(After)41 b(all)i(expansions,)h
+Fs(quote)29 b(removal)40 b Ft(\(see)i(Section)h(3.5.9)g([Quote)f(Remo)m
+(v)-5 b(al],)47 b(page)42 b(26\))h(is)150 2502 y(p)s(erformed.)150
+2715 y Fk(3.5.1)63 b(Brace)40 b(Expansion)275 2955 y
+Ft(Brace)21 b(expansion)g(is)g(a)g(mec)m(hanism)g(b)m(y)g(whic)m(h)f
+(arbitrary)h(strings)f(ma)m(y)i(b)s(e)e(generated.)38
+b(This)20 b(mec)m(h-)150 3064 y(anism)35 b(is)h(similar)f(to)h
+Fq(\014lename)g(expansion)f Ft(\(see)i(Section)f(3.5.8)h([Filename)g
+(Expansion],)f(page)g(24\),)150 3174 y(but)24 b(the)i(\014le)f(names)g
+(generated)h(need)f(not)g(exist.)40 b(P)m(atterns)26
+b(to)g(b)s(e)e(brace)i(expanded)e(tak)m(e)j(the)e(form)g(of)150
+3283 y(an)30 b(optional)h Fq(pream)m(ble)p Ft(,)g(follo)m(w)m(ed)g(b)m
+(y)f(either)g(a)h(series)f(of)g(comma-separated)i(strings)d(or)h(a)h
+(seqeunce)150 3393 y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i
+(braces,)g(follo)m(w)m(ed)h(b)m(y)e(an)g(optional)h Fq(p)s(ostscript)p
+Ft(.)57 b(The)36 b(pream)m(ble)g(is)150 3503 y(pre\014xed)28
+b(to)h(eac)m(h)h(string)f(con)m(tained)h(within)e(the)h(braces,)g(and)g
+(the)g(p)s(ostscript)f(is)h(then)f(app)s(ended)f(to)150
+3612 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ)
+m(t.)275 3743 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
+b(The)36 b(results)g(of)h(eac)m(h)g(expanded)f(string)g(are)h(not)g
+(sorted;)150 3852 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
+(ed.)41 b(F)-8 b(or)31 b(example,)390 3983 y Fs(bash$)46
+b(echo)h(a{d,c,b}e)390 4093 y(ade)g(ace)g(abe)275 4223
+y Ft(A)29 b(sequence)g(expression)g(tak)m(es)h(the)f(form)g
+Fs({)p Fj(x)p Fs(..)p Fj(y)11 b Fs([)p Fj(incr)g Fs(]})p
+Ft(,)25 b(where)k Fq(x)35 b Ft(and)28 b Fq(y)37 b Ft(are)29
+b(either)h(in)m(tegers)150 4333 y(or)42 b(single)h(c)m(haracters,)48
+b(and)41 b Fq(incr)p Ft(,)46 b(an)c(optional)i(incremen)m(t,)i(is)c(an)
+h(in)m(teger.)78 b(When)42 b(in)m(tegers)i(are)150 4442
+y(supplied,)f(the)f(expression)f(expands)f(to)i(eac)m(h)h(n)m(um)m(b)s
+(er)d(b)s(et)m(w)m(een)i Fq(x)47 b Ft(and)41 b Fq(y)p
+Ft(,)j(inclusiv)m(e.)75 b(Supplied)150 4552 y(in)m(tegers)33
+b(ma)m(y)e(b)s(e)g(pre\014xed)f(with)h(`)p Fs(0)p Ft(')h(to)g(force)g
+(eac)m(h)g(term)g(to)g(ha)m(v)m(e)g(the)g(same)g(width.)42
+b(When)31 b(either)150 4661 y Fq(x)43 b Ft(or)36 b Fq(y)44
+b Ft(b)s(egins)36 b(with)g(a)h(zero,)i(the)e(shell)g(attempts)g(to)g
+(force)g(all)h(generated)f(terms)g(to)g(con)m(tain)h(the)150
+4771 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h
+(necessary)-8 b(.)57 b(When)35 b(c)m(haracters)i(are)f(supplied,)g(the)
+150 4881 y(expression)h(expands)g(to)h(eac)m(h)h(c)m(haracter)g
+(lexicographically)i(b)s(et)m(w)m(een)d Fq(x)44 b Ft(and)37
+b Fq(y)p Ft(,)i(inclusiv)m(e.)64 b(Note)150 4990 y(that)30
+b(b)s(oth)e Fq(x)35 b Ft(and)28 b Fq(y)37 b Ft(m)m(ust)29
+b(b)s(e)f(of)h(the)g(same)g(t)m(yp)s(e.)41 b(When)28
+b(the)i(incremen)m(t)f(is)g(supplied,)f(it)i(is)f(used)f(as)150
+5100 y(the)j(di\013erence)f(b)s(et)m(w)m(een)h(eac)m(h)h(term.)41
+b(The)30 b(default)g(incremen)m(t)h(is)g(1)f(or)h(-1)g(as)f
+(appropriate.)275 5230 y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s
+(efore)h(an)m(y)h(other)g(expansions,)h(and)e(an)m(y)g(c)m(haracters)i
+(sp)s(ecial)150 5340 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)
+f(in)h(the)f(result.)45 b(It)32 b(is)g(strictly)g(textual.)46
+b(Bash)32 b(do)s(es)f(not)h(apply)p eop end
+%%Page: 19 25
+TeXDict begin 19 24 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)150 299
+y(an)m(y)27 b(syn)m(tactic)i(in)m(terpretation)g(to)f(the)f(con)m(text)
+i(of)e(the)g(expansion)g(or)g(the)h(text)g(b)s(et)m(w)m(een)f(the)h
+(braces.)150 408 y(T)-8 b(o)37 b(a)m(v)m(oid)g(con\015icts)g(with)f
+(parameter)h(expansion,)g(the)g(string)f(`)p Fs(${)p
+Ft(')g(is)g(not)g(considered)g(eligible)i(for)150 518
+y(brace)31 b(expansion.)275 658 y(A)e(correctly-formed)i(brace)f
+(expansion)f(m)m(ust)h(con)m(tain)h(unquoted)e(op)s(ening)g(and)g
+(closing)i(braces,)150 768 y(and)h(at)i(least)g(one)f(unquoted)g(comma)
+g(or)g(a)h(v)-5 b(alid)33 b(sequence)g(expression.)48
+b(An)m(y)33 b(incorrectly)h(formed)150 877 y(brace)d(expansion)f(is)g
+(left)h(unc)m(hanged.)275 1017 y(A)25 b Fs({)g Ft(or)g(`)p
+Fs(,)p Ft(')g(ma)m(y)h(b)s(e)f(quoted)g(with)g(a)h(bac)m(kslash)f(to)h
+(prev)m(en)m(t)g(its)g(b)s(eing)f(considered)g(part)g(of)g(a)h(brace)
+150 1127 y(expression.)51 b(T)-8 b(o)34 b(a)m(v)m(oid)i(con\015icts)e
+(with)g(parameter)g(expansion,)h(the)f(string)g(`)p Fs(${)p
+Ft(')g(is)g(not)g(considered)150 1236 y(eligible)e(for)e(brace)h
+(expansion.)275 1376 y(This)f(construct)h(is)g(t)m(ypically)i(used)d
+(as)h(shorthand)f(when)g(the)h(common)g(pre\014x)f(of)h(the)g(strings)g
+(to)150 1486 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s
+(o)m(v)m(e)i(example:)390 1626 y Fs(mkdir)46 b
+(/usr/local/src/bash/{old,n)o(ew,)o(dist)o(,bug)o(s})275
+1766 y Ft(or)390 1905 y Fs(chown)g(root)h(/usr/{ucb/{ex,edit},lib/)o
+({ex?)o(.?*,)o(how)o(_ex})o(})150 2140 y Fk(3.5.2)63
+b(Tilde)41 b(Expansion)275 2390 y Ft(If)i(a)i(w)m(ord)e(b)s(egins)h
+(with)f(an)h(unquoted)f(tilde)i(c)m(haracter)h(\(`)p
+Fs(~)p Ft('\),)i(all)d(of)g(the)f(c)m(haracters)h(up)e(to)150
+2499 y(the)35 b(\014rst)f(unquoted)f(slash)i(\(or)g(all)g(c)m
+(haracters,)i(if)e(there)g(is)f(no)h(unquoted)e(slash\))i(are)g
+(considered)g(a)150 2609 y Fq(tilde-pre\014x)p Ft(.)55
+b(If)35 b(none)g(of)g(the)g(c)m(haracters)i(in)d(the)i(tilde-pre\014x)f
+(are)g(quoted,)i(the)e(c)m(haracters)i(in)e(the)150 2719
+y(tilde-pre\014x)27 b(follo)m(wing)h(the)f(tilde)h(are)f(treated)h(as)f
+(a)g(p)s(ossible)f Fq(login)i(name)p Ft(.)39 b(If)27
+b(this)f(login)i(name)f(is)g(the)150 2828 y(n)m(ull)k(string,)h(the)f
+(tilde)h(is)g(replaced)g(with)f(the)g(v)-5 b(alue)32
+b(of)f(the)h Fs(HOME)e Ft(shell)h(v)-5 b(ariable.)45
+b(If)31 b Fs(HOME)f Ft(is)h(unset,)150 2938 y(the)37
+b(home)f(directory)h(of)g(the)f(user)g(executing)i(the)f(shell)f(is)h
+(substituted)f(instead.)59 b(Otherwise,)38 b(the)150
+3047 y(tilde-pre\014x)30 b(is)h(replaced)g(with)f(the)g(home)h
+(directory)g(asso)s(ciated)g(with)f(the)h(sp)s(eci\014ed)f(login)h
+(name.)275 3187 y(If)h(the)h(tilde-pre\014x)f(is)h(`)p
+Fs(~+)p Ft(',)g(the)g(v)-5 b(alue)33 b(of)g(the)g(shell)g(v)-5
+b(ariable)34 b Fs(PWD)d Ft(replaces)j(the)f(tilde-pre\014x.)47
+b(If)150 3297 y(the)31 b(tilde-pre\014x)f(is)g(`)p Fs(~-)p
+Ft(',)h(the)f(v)-5 b(alue)31 b(of)g(the)f(shell)h(v)-5
+b(ariable)31 b Fs(OLDPWD)p Ft(,)e(if)h(it)h(is)g(set,)g(is)f
+(substituted.)275 3437 y(If)f(the)h(c)m(haracters)h(follo)m(wing)h(the)
+e(tilde)g(in)g(the)g(tilde-pre\014x)g(consist)g(of)g(a)h(n)m(um)m(b)s
+(er)d Fq(N)p Ft(,)j(optionally)150 3546 y(pre\014xed)22
+b(b)m(y)h(a)h(`)p Fs(+)p Ft(')f(or)h(a)f(`)p Fs(-)p Ft(',)j(the)d
+(tilde-pre\014x)g(is)h(replaced)f(with)g(the)h(corresp)s(onding)e
+(elemen)m(t)j(from)e(the)150 3656 y(directory)36 b(stac)m(k,)i(as)e(it)
+g(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)g(the)f
+Fs(dirs)g Ft(builtin)g(in)m(v)m(ok)m(ed)i(with)e(the)g(c)m(haracters)
+150 3766 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
+(an)f(argumen)m(t)h(\(see)h(Section)f(6.8)h([The)e(Directory)i(Stac)m
+(k],)150 3875 y(page)c(81\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans)
+e(the)h(tilde,)h(consists)f(of)g(a)f(n)m(um)m(b)s(er)f(without)i(a)f
+(leading)h(`)p Fs(+)p Ft(')g(or)150 3985 y(`)p Fs(-)p
+Ft(',)31 b(`)p Fs(+)p Ft(')f(is)h(assumed.)275 4125 y(If)e(the)i(login)
+g(name)g(is)f(in)m(v)-5 b(alid,)31 b(or)g(the)f(tilde)h(expansion)f
+(fails,)i(the)e(w)m(ord)g(is)h(left)g(unc)m(hanged.)275
+4265 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m
+(k)m(ed)j(for)d(unquoted)g(tilde-pre\014xes)h(immediately)g(follo)m
+(wing)150 4374 y(a)d(`)p Fs(:)p Ft(')g(or)g(the)g(\014rst)f(`)p
+Fs(=)p Ft('.)54 b(In)34 b(these)h(cases,)i(tilde)e(expansion)g(is)g
+(also)h(p)s(erformed.)52 b(Consequen)m(tly)-8 b(,)37
+b(one)150 4484 y(ma)m(y)27 b(use)e(\014le)h(names)g(with)g(tildes)g(in)
+g(assignmen)m(ts)h(to)g Fs(PATH)p Ft(,)f Fs(MAILPATH)p
+Ft(,)e(and)i Fs(CDPATH)p Ft(,)f(and)h(the)g(shell)150
+4593 y(assigns)31 b(the)f(expanded)g(v)-5 b(alue.)275
+4733 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h
+(treats)g(unquoted)e(tilde-pre\014xes:)150 4901 y Fs(~)432
+b Ft(The)30 b(v)-5 b(alue)31 b(of)f Fs($HOME)150 5066
+y(~/foo)240 b Ft(`)p Fs($HOME/foo)p Ft(')150 5230 y Fs(~fred/foo)630
+5340 y Ft(The)30 b(sub)s(directory)f Fs(foo)h Ft(of)g(the)h(home)f
+(directory)h(of)g(the)f(user)g Fs(fred)p eop end
+%%Page: 20 26
+TeXDict begin 20 25 bop 150 -116 a Ft(20)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(~+/foo)192 b Ft(`)p
+Fs($PWD/foo)p Ft(')150 443 y Fs(~-/foo)g Ft(`)p Fs(${OLDPWD-'~-'}/foo)p
+Ft(')150 587 y Fs(~)p Fj(N)384 b Ft(The)30 b(string)g(that)h(w)m(ould)f
+(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p
+Fj(N)11 b Ft(')150 732 y Fs(~+)p Fj(N)336 b Ft(The)30
+b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p
+Fs(dirs)g(+)p Fj(N)11 b Ft(')150 876 y Fs(~-)p Fj(N)336
+b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m
+(y)f(`)p Fs(dirs)g(-)p Fj(N)11 b Ft(')150 1077 y Fk(3.5.3)63
+b(Shell)41 b(P)m(arameter)f(Expansion)275 1314 y Ft(The)26
+b(`)p Fs($)p Ft(')i(c)m(haracter)h(in)m(tro)s(duces)e(parameter)h
+(expansion,)g(command)f(substitution,)h(or)g(arithmetic)150
+1423 y(expansion.)38 b(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h
+(to)g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i
+(whic)m(h)150 1533 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)
+f(the)g(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)g(c)m
+(haracters)i(immediately)150 1643 y(follo)m(wing)g(it)f(whic)m(h)f
+(could)g(b)s(e)g(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275
+1769 y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f
+(brace)g(is)g(the)g(\014rst)g(`)p Fs(})p Ft(')g(not)g(escap)s(ed)h(b)m
+(y)f(a)150 1879 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)
+j(and)c(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)
+150 1989 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275
+2116 y(The)40 b(basic)h(form)g(of)g(parameter)h(expansion)e(is)h($)p
+Fs({)p Fq(parameter)7 b Fs(})p Ft(.)73 b(The)40 b(v)-5
+b(alue)42 b(of)f Fq(parameter)48 b Ft(is)150 2225 y(substituted.)43
+b(The)31 b(braces)g(are)h(required)e(when)h Fq(parameter)38
+b Ft(is)31 b(a)h(p)s(ositional)g(parameter)g(with)f(more)150
+2335 y(than)h(one)g(digit,)i(or)e(when)g Fq(parameter)39
+b Ft(is)32 b(follo)m(w)m(ed)i(b)m(y)e(a)h(c)m(haracter)h(that)e(is)h
+(not)f(to)h(b)s(e)f(in)m(terpreted)150 2444 y(as)f(part)f(of)g(its)h
+(name.)275 2571 y(If)26 b(the)i(\014rst)f(c)m(haracter)i(of)e
+Fq(parameter)35 b Ft(is)27 b(an)g(exclamation)j(p)s(oin)m(t,)e(a)g(lev)
+m(el)h(of)e(v)-5 b(ariable)29 b(indirection)150 2681
+y(is)38 b(in)m(tro)s(duced.)62 b(Bash)38 b(uses)f(the)h(v)-5
+b(alue)38 b(of)g(the)g(v)-5 b(ariable)39 b(formed)e(from)g(the)h(rest)g
+(of)g Fq(parameter)45 b Ft(as)150 2790 y(the)32 b(name)h(of)f(the)h(v)
+-5 b(ariable;)34 b(this)e(v)-5 b(ariable)33 b(is)g(then)f(expanded)f
+(and)h(that)h(v)-5 b(alue)32 b(is)h(used)e(in)h(the)h(rest)150
+2900 y(of)h(the)f(substitution,)i(rather)e(than)g(the)h(v)-5
+b(alue)34 b(of)g Fq(parameter)40 b Ft(itself.)51 b(This)33
+b(is)g(kno)m(wn)g(as)h Fs(indirect)150 3010 y(expansion)p
+Ft(.)81 b(The)44 b(exceptions)h(to)h(this)e(are)h(the)g(expansions)f
+(of)h($)p Fs({)p Ft(!)p Fq(pre\014x*)8 b Fs(})43 b Ft(and)h($)p
+Fs({)p Ft(!)p Fq(name)5 b Ft([)p Fs(@)p Ft(])p Fs(})150
+3119 y Ft(describ)s(ed)28 b(b)s(elo)m(w.)41 b(The)28
+b(exclamation)j(p)s(oin)m(t)f(m)m(ust)f(immediately)h(follo)m(w)g(the)g
+(left)f(brace)h(in)f(order)f(to)150 3229 y(in)m(tro)s(duce)i
+(indirection.)275 3356 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m
+(w,)i Fq(w)m(ord)h Ft(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j
+(parameter)e(expansion,)150 3465 y(command)30 b(substitution,)g(and)g
+(arithmetic)i(expansion.)275 3592 y(When)h(not)h(p)s(erforming)e
+(substring)h(expansion,)h(using)f(the)h(form)f(describ)s(ed)g(b)s(elo)m
+(w,)h(Bash)g(tests)150 3702 y(for)44 b(a)i(parameter)f(that)g(is)g
+(unset)f(or)h(n)m(ull.)84 b(Omitting)45 b(the)g(colon)h(results)e(in)g
+(a)i(test)f(only)g(for)g(a)150 3811 y(parameter)36 b(that)f(is)g
+(unset.)55 b(Put)34 b(another)i(w)m(a)m(y)-8 b(,)38 b(if)d(the)g(colon)
+h(is)f(included,)h(the)f(op)s(erator)g(tests)h(for)150
+3921 y(b)s(oth)22 b Fq(parameter)7 b Ft('s)22 b(existence)i(and)e(that)
+h(its)g(v)-5 b(alue)23 b(is)g(not)f(n)m(ull;)k(if)c(the)h(colon)g(is)g
+(omitted,)i(the)e(op)s(erator)150 4031 y(tests)31 b(only)g(for)f
+(existence.)150 4175 y Fs(${)p Fj(parameter)11 b Fs(:)p
+Fp(\000)p Fj(word)g Fs(})630 4284 y Ft(If)30 b Fq(parameter)37
+b Ft(is)30 b(unset)g(or)h(n)m(ull,)f(the)h(expansion)f(of)g
+Fq(w)m(ord)k Ft(is)c(substituted.)40 b(Otherwise,)630
+4394 y(the)31 b(v)-5 b(alue)30 b(of)h Fq(parameter)37
+b Ft(is)31 b(substituted.)150 4538 y Fs(${)p Fj(parameter)11
+b Fs(:=)p Fj(word)g Fs(})630 4648 y Ft(If)33 b Fq(parameter)40
+b Ft(is)33 b(unset)f(or)h(n)m(ull,)h(the)f(expansion)g(of)g
+Fq(w)m(ord)j Ft(is)d(assigned)g(to)h Fq(parameter)p Ft(.)630
+4757 y(The)c(v)-5 b(alue)32 b(of)f Fq(parameter)38 b
+Ft(is)31 b(then)g(substituted.)42 b(P)m(ositional)33
+b(parameters)e(and)f(sp)s(ecial)630 4867 y(parameters)h(ma)m(y)g(not)f
+(b)s(e)g(assigned)h(to)g(in)f(this)g(w)m(a)m(y)-8 b(.)150
+5011 y Fs(${)p Fj(parameter)11 b Fs(:?)p Fj(word)g Fs(})630
+5121 y Ft(If)26 b Fq(parameter)33 b Ft(is)26 b(n)m(ull)g(or)g(unset,)h
+(the)f(expansion)g(of)g Fq(w)m(ord)k Ft(\(or)c(a)h(message)g(to)g(that)
+f(e\013ect)630 5230 y(if)i Fq(w)m(ord)j Ft(is)d(not)g(presen)m(t\))h
+(is)f(written)g(to)h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f
+(it)h(is)f(not)630 5340 y(in)m(teractiv)m(e,)33 b(exits.)42
+b(Otherwise,)30 b(the)h(v)-5 b(alue)31 b(of)f Fq(parameter)38
+b Ft(is)30 b(substituted.)p eop end
+%%Page: 21 27
+TeXDict begin 21 26 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)150 299
+y Fs(${)p Fj(parameter)11 b Fs(:+)p Fj(word)g Fs(})630
+408 y Ft(If)35 b Fq(parameter)42 b Ft(is)36 b(n)m(ull)f(or)h(unset,)g
+(nothing)g(is)f(substituted,)i(otherwise)e(the)h(expansion)630
+518 y(of)31 b Fq(w)m(ord)i Ft(is)e(substituted.)150 664
+y Fs(${)p Fj(parameter)11 b Fs(:)p Fj(offset)g Fs(})150
+774 y(${)p Fj(parameter)g Fs(:)p Fj(offset)g Fs(:)p Fj(le)o(ngt)o(h)g
+Fs(})630 883 y Ft(Expands)44 b(to)i(up)e(to)i Fq(length)g
+Ft(c)m(haracters)h(of)e Fq(parameter)53 b Ft(starting)46
+b(at)g(the)f(c)m(haracter)630 993 y(sp)s(eci\014ed)30
+b(b)m(y)h Fq(o\013set)p Ft(.)42 b(If)31 b Fq(length)g
+Ft(is)g(omitted,)h(expands)e(to)h(the)g(substring)f(of)g
+Fq(parameter)630 1103 y Ft(starting)38 b(at)g(the)f(c)m(haracter)i(sp)s
+(eci\014ed)e(b)m(y)g Fq(o\013set)p Ft(.)62 b Fq(length)38
+b Ft(and)f Fq(o\013set)j Ft(are)e(arithmetic)630 1212
+y(expressions)30 b(\(see)i(Section)g(6.5)g([Shell)f(Arithmetic],)h
+(page)g(78\).)43 b(This)30 b(is)h(referred)f(to)i(as)630
+1322 y(Substring)d(Expansion.)630 1450 y Fq(length)j
+Ft(m)m(ust)f(ev)-5 b(aluate)33 b(to)f(a)g(n)m(um)m(b)s(er)e(greater)i
+(than)f(or)g(equal)h(to)g(zero.)45 b(If)30 b Fq(o\013set)35
+b Ft(ev)-5 b(al-)630 1559 y(uates)36 b(to)h(a)f(n)m(um)m(b)s(er)e(less)
+i(than)f(zero,)j(the)e(v)-5 b(alue)36 b(is)g(used)f(as)g(an)h(o\013set)
+h(from)e(the)h(end)630 1669 y(of)i(the)f(v)-5 b(alue)38
+b(of)g Fq(parameter)p Ft(.)62 b(If)37 b Fq(parameter)45
+b Ft(is)37 b(`)p Fs(@)p Ft(',)j(the)d(result)h(is)f Fq(length)h
+Ft(p)s(ositional)630 1778 y(parameters)h(b)s(eginning)g(at)g
+Fq(o\013set)p Ft(.)68 b(If)39 b Fq(parameter)46 b Ft(is)39
+b(an)g(indexed)f(arra)m(y)i(name)f(sub-)630 1888 y(scripted)34
+b(b)m(y)g(`)p Fs(@)p Ft(')g(or)g(`)p Fs(*)p Ft(',)h(the)f(result)g(is)g
+(the)g Fq(length)h Ft(mem)m(b)s(ers)e(of)h(the)g(arra)m(y)h(b)s
+(eginning)630 1998 y(with)25 b Fs(${)p Fj(parameter)11
+b Fs([)p Fj(offset)g Fs(]})p Ft(.)33 b(A)25 b(negativ)m(e)j
+Fq(o\013set)g Ft(is)e(tak)m(en)g(relativ)m(e)i(to)e(one)g(greater)630
+2107 y(than)g(the)h(maxim)m(um)f(index)g(of)g(the)h(sp)s(eci\014ed)f
+(arra)m(y)-8 b(.)40 b(Substring)25 b(expansion)h(applied)g(to)630
+2217 y(an)k(asso)s(ciativ)m(e)j(arra)m(y)e(pro)s(duces)e(unde\014ned)f
+(results.)630 2345 y(Note)37 b(that)f(a)g(negativ)m(e)i(o\013set)f(m)m
+(ust)f(b)s(e)f(separated)h(from)f(the)h(colon)h(b)m(y)e(at)i(least)g
+(one)630 2454 y(space)g(to)g(a)m(v)m(oid)g(b)s(eing)f(confused)f(with)h
+(the)h(`)p Fs(:-)p Ft(')f(expansion.)57 b(Substring)35
+b(indexing)h(is)630 2564 y(zero-based)24 b(unless)f(the)h(p)s
+(ositional)g(parameters)g(are)g(used,)g(in)g(whic)m(h)f(case)h(the)g
+(indexing)630 2673 y(starts)30 b(at)g(1)f(b)m(y)h(default.)40
+b(If)29 b Fq(o\013set)j Ft(is)e(0,)g(and)f(the)g(p)s(ositional)h
+(parameters)g(are)g(used,)f Fs($@)630 2783 y Ft(is)h(pre\014xed)g(to)h
+(the)f(list.)150 2929 y Fs(${!)p Fj(prefix)11 b Fs(*})150
+3039 y(${!)p Fj(prefix)g Fs(@})630 3148 y Ft(Expands)24
+b(to)h(the)g(names)g(of)g(v)-5 b(ariables)26 b(whose)f(names)f(b)s
+(egin)h(with)f Fq(pre\014x)p Ft(,)i(separated)f(b)m(y)630
+3258 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Fs(IFS)f
+Ft(sp)s(ecial)i(v)-5 b(ariable.)41 b(When)29 b(`)p Fs(@)p
+Ft(')g(is)g(used)f(and)h(the)g(expan-)630 3367 y(sion)35
+b(app)s(ears)g(within)f(double)h(quotes,)i(eac)m(h)f(v)-5
+b(ariable)36 b(name)f(expands)g(to)g(a)h(separate)630
+3477 y(w)m(ord.)150 3623 y Fs(${!)p Fj(name)11 b Fs([@]})150
+3733 y(${!)p Fj(name)g Fs([*]})630 3842 y Ft(If)26 b
+Fq(name)32 b Ft(is)27 b(an)f(arra)m(y)h(v)-5 b(ariable,)29
+b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)g(\(k)m(eys\))h
+(assigned)630 3952 y(in)c Fq(name)p Ft(.)39 b(If)24 b
+Fq(name)30 b Ft(is)24 b(not)h(an)f(arra)m(y)-8 b(,)27
+b(expands)c(to)j(0)f(if)f Fq(name)30 b Ft(is)24 b(set)h(and)f(n)m(ull)g
+(otherwise.)630 4061 y(When)39 b(`)p Fs(@)p Ft(')h(is)f(used)g(and)f
+(the)i(expansion)f(app)s(ears)g(within)f(double)h(quotes,)k(eac)m(h)d
+(k)m(ey)630 4171 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150
+4317 y Fs(${#)p Fj(parameter)11 b Fs(})630 4427 y Ft(The)40
+b(length)g(in)g(c)m(haracters)i(of)e(the)h(expanded)e(v)-5
+b(alue)41 b(of)f Fq(parameter)47 b Ft(is)40 b(substituted.)630
+4536 y(If)i Fq(parameter)50 b Ft(is)43 b(`)p Fs(*)p Ft(')g(or)g(`)p
+Fs(@)p Ft(',)k(the)c(v)-5 b(alue)43 b(substituted)f(is)h(the)g(n)m(um)m
+(b)s(er)f(of)h(p)s(ositional)630 4646 y(parameters.)i(If)32
+b Fq(parameter)38 b Ft(is)32 b(an)g(arra)m(y)g(name)g(subscripted)f(b)m
+(y)g(`)p Fs(*)p Ft(')h(or)g(`)p Fs(@)p Ft(',)g(the)g(v)-5
+b(alue)630 4755 y(substituted)30 b(is)g(the)h(n)m(um)m(b)s(er)e(of)h
+(elemen)m(ts)i(in)e(the)h(arra)m(y)-8 b(.)150 4902 y
+Fs(${)p Fj(parameter)11 b Fs(#)p Fj(word)g Fs(})150 5011
+y(${)p Fj(parameter)g Fs(##)p Fj(word)g Fs(})630 5121
+y Ft(The)31 b Fq(w)m(ord)k Ft(is)d(expanded)f(to)i(pro)s(duce)e(a)h
+(pattern)g(just)f(as)i(in)e(\014lename)h(expansion)g(\(see)630
+5230 y(Section)k(3.5.8)h([Filename)g(Expansion],)g(page)f(24\).)56
+b(If)35 b(the)h(pattern)f(matc)m(hes)i(the)e(b)s(e-)630
+5340 y(ginning)28 b(of)g(the)h(expanded)e(v)-5 b(alue)29
+b(of)f Fq(parameter)p Ft(,)h(then)f(the)g(result)g(of)h(the)f
+(expansion)g(is)p eop end
+%%Page: 22 28
+TeXDict begin 22 27 bop 150 -116 a Ft(22)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y(the)36 b(expanded)f(v)-5
+b(alue)36 b(of)g Fq(parameter)43 b Ft(with)35 b(the)h(shortest)g(matc)m
+(hing)h(pattern)f(\(the)g(`)p Fs(#)p Ft(')630 408 y(case\))26
+b(or)f(the)g(longest)g(matc)m(hing)h(pattern)f(\(the)g(`)p
+Fs(##)p Ft(')g(case\))h(deleted.)39 b(If)24 b Fq(parameter)32
+b Ft(is)25 b(`)p Fs(@)p Ft(')630 518 y(or)j(`)p Fs(*)p
+Ft(',)i(the)e(pattern)h(remo)m(v)-5 b(al)29 b(op)s(eration)g(is)f
+(applied)h(to)g(eac)m(h)g(p)s(ositional)g(parameter)g(in)630
+628 y(turn,)i(and)g(the)h(expansion)g(is)g(the)g(resultan)m(t)g(list.)
+45 b(If)32 b Fq(parameter)38 b Ft(is)32 b(an)g(arra)m(y)g(v)-5
+b(ariable)630 737 y(subscripted)39 b(with)g(`)p Fs(@)p
+Ft(')h(or)g(`)p Fs(*)p Ft(',)j(the)d(pattern)h(remo)m(v)-5
+b(al)41 b(op)s(eration)f(is)g(applied)g(to)h(eac)m(h)630
+847 y(mem)m(b)s(er)30 b(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)h
+(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 993
+y Fs(${)p Fj(parameter)11 b Fs(\045)p Fj(word)g Fs(})150
+1103 y(${)p Fj(parameter)g Fs(\045\045)p Fj(word)g Fs(})630
+1212 y Ft(The)35 b Fq(w)m(ord)k Ft(is)c(expanded)g(to)h(pro)s(duce)e(a)
+i(pattern)f(just)g(as)h(in)f(\014lename)h(expansion.)55
+b(If)630 1322 y(the)43 b(pattern)g(matc)m(hes)h(a)g(trailing)g(p)s
+(ortion)e(of)h(the)g(expanded)g(v)-5 b(alue)43 b(of)g
+Fq(parameter)p Ft(,)630 1431 y(then)c(the)g(result)g(of)h(the)f
+(expansion)g(is)h(the)f(v)-5 b(alue)40 b(of)f Fq(parameter)46
+b Ft(with)39 b(the)h(shortest)630 1541 y(matc)m(hing)31
+b(pattern)e(\(the)h(`)p Fs(\045)p Ft(')g(case\))h(or)e(the)h(longest)h
+(matc)m(hing)f(pattern)g(\(the)g(`)p Fs(\045\045)p Ft(')g(case\))630
+1650 y(deleted.)49 b(If)32 b Fq(parameter)40 b Ft(is)33
+b(`)p Fs(@)p Ft(')g(or)g(`)p Fs(*)p Ft(',)h(the)f(pattern)g(remo)m(v)-5
+b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 1760 y(eac)m(h)38
+b(p)s(ositional)g(parameter)g(in)f(turn,)h(and)e(the)h(expansion)g(is)h
+(the)f(resultan)m(t)h(list.)61 b(If)630 1870 y Fq(parameter)38
+b Ft(is)32 b(an)f(arra)m(y)h(v)-5 b(ariable)32 b(subscripted)e(with)h
+(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)g(the)f(pattern)h(remo)m(v)-5
+b(al)630 1979 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m
+(b)s(er)e(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g
+(is)630 2089 y(the)h(resultan)m(t)g(list.)150 2235 y
+Fs(${)p Fj(parameter)11 b Fs(/)p Fj(pattern)g Fs(/)p
+Fj(s)o(tri)o(ng)f Fs(})630 2345 y Ft(The)37 b Fq(pattern)g
+Ft(is)g(expanded)g(to)h(pro)s(duce)e(a)h(pattern)g(just)g(as)h(in)e
+(\014lename)i(expansion.)630 2454 y Fq(P)m(arameter)46
+b Ft(is)38 b(expanded)f(and)g(the)i(longest)g(matc)m(h)g(of)f
+Fq(pattern)g Ft(against)h(its)f(v)-5 b(alue)39 b(is)630
+2564 y(replaced)34 b(with)e Fq(string)p Ft(.)49 b(If)33
+b Fq(pattern)g Ft(b)s(egins)g(with)f(`)p Fs(/)p Ft(',)j(all)f(matc)m
+(hes)g(of)f Fq(pattern)g Ft(are)h(re-)630 2673 y(placed)28
+b(with)f Fq(string)p Ft(.)40 b(Normally)28 b(only)f(the)h(\014rst)e
+(matc)m(h)j(is)e(replaced.)40 b(If)27 b Fq(pattern)g
+Ft(b)s(egins)630 2783 y(with)34 b(`)p Fs(#)p Ft(',)h(it)g(m)m(ust)f
+(matc)m(h)h(at)f(the)h(b)s(eginning)e(of)h(the)g(expanded)f(v)-5
+b(alue)35 b(of)f Fq(parameter)p Ft(.)630 2892 y(If)g
+Fq(pattern)g Ft(b)s(egins)g(with)g(`)p Fs(\045)p Ft(',)h(it)g(m)m(ust)f
+(matc)m(h)h(at)g(the)f(end)g(of)g(the)h(expanded)e(v)-5
+b(alue)35 b(of)630 3002 y Fq(parameter)p Ft(.)41 b(If)29
+b Fq(string)37 b Ft(is)29 b(n)m(ull,)h(matc)m(hes)h(of)e
+Fq(pattern)h Ft(are)g(deleted)g(and)f(the)g Fs(/)g Ft(follo)m(wing)630
+3112 y Fq(pattern)34 b Ft(ma)m(y)g(b)s(e)f(omitted.)51
+b(If)33 b Fq(parameter)41 b Ft(is)33 b(`)p Fs(@)p Ft(')h(or)g(`)p
+Fs(*)p Ft(',)g(the)g(substitution)f(op)s(eration)630
+3221 y(is)38 b(applied)g(to)g(eac)m(h)h(p)s(ositional)g(parameter)f(in)
+g(turn,)h(and)e(the)h(expansion)g(is)g(the)g(re-)630
+3331 y(sultan)m(t)f(list.)59 b(If)36 b Fq(parameter)43
+b Ft(is)36 b(an)g(arra)m(y)h(v)-5 b(ariable)37 b(subscripted)e(with)h
+(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)h(the)630 3440
+y(substitution)30 b(op)s(eration)h(is)f(applied)g(to)h(eac)m(h)g(mem)m
+(b)s(er)f(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)630
+3550 y(expansion)g(is)h(the)f(resultan)m(t)h(list.)150
+3696 y Fs(${)p Fj(parameter)11 b Fs(^)p Fj(pattern)g
+Fs(})150 3806 y(${)p Fj(parameter)g Fs(^^)p Fj(pattern)g
+Fs(})150 3915 y(${)p Fj(parameter)p Fs(,)p Fj(pattern)g
+Fs(})150 4025 y(${)p Fj(parameter)p Fs(,,)p Fj(pattern)g
+Fs(})630 4134 y Ft(This)36 b(expansion)g(mo)s(di\014es)g(the)g(case)i
+(of)f(alphab)s(etic)g(c)m(haracters)h(in)e Fq(parameter)p
+Ft(.)59 b(The)630 4244 y Fq(pattern)31 b Ft(is)g(expanded)f(to)h(pro)s
+(duce)f(a)h(pattern)g(just)f(as)h(in)g(pathname)g(expansion.)41
+b(The)630 4354 y(`)p Fs(^)p Ft(')36 b(op)s(erator)g(con)m(v)m(erts)h
+(lo)m(w)m(ercase)h(letters)f(matc)m(hing)g Fq(pattern)f
+Ft(to)g(upp)s(ercase;)i(the)e(`)p Fs(,)p Ft(')630 4463
+y(op)s(erator)g(con)m(v)m(erts)i(matc)m(hing)f(upp)s(ercase)e(letters)i
+(to)g(lo)m(w)m(ercase.)59 b(The)36 b(`)p Fs(^^)p Ft(')g(and)f(`)p
+Fs(,,)p Ft(')630 4573 y(expansions)c(con)m(v)m(ert)i(eac)m(h)g(matc)m
+(hed)f(c)m(haracter)h(in)e(the)h(expanded)f(v)-5 b(alue;)32
+b(the)g(`)p Fs(^)p Ft(')g(and)630 4682 y(`)p Fs(,)p Ft(')24
+b(expansions)f(matc)m(h)i(and)e(con)m(v)m(ert)j(only)d(the)h(\014rst)f
+(c)m(haracter)j(in)d(the)h(expanded)f(v)-5 b(alue.)630
+4792 y(If)31 b Fq(pattern)g Ft(is)g(omitted,)i(it)f(is)f(treated)h(lik)
+m(e)h(a)e(`)p Fs(?)p Ft(',)h(whic)m(h)f(matc)m(hes)i(ev)m(ery)f(c)m
+(haracter.)44 b(If)630 4902 y Fq(parameter)37 b Ft(is)31
+b(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p Ft(',)f(the)h(case)g(mo)s
+(di\014cation)g(op)s(eration)g(is)f(applied)g(to)i(eac)m(h)f(p)s(osi-)
+630 5011 y(tional)26 b(parameter)e(in)h(turn,)f(and)g(the)h(expansion)f
+(is)g(the)h(resultan)m(t)g(list.)40 b(If)23 b Fq(parameter)32
+b Ft(is)630 5121 y(an)e(arra)m(y)g(v)-5 b(ariable)31
+b(subscripted)d(with)i(`)p Fs(@)p Ft(')g(or)f(`)p Fs(*)p
+Ft(',)i(the)f(case)g(mo)s(di\014cation)h(op)s(eration)f(is)630
+5230 y(applied)d(to)g(eac)m(h)h(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g
+(in)g(turn,)g(and)f(the)h(expansion)f(is)h(the)g(resultan)m(t)630
+5340 y(list.)p eop end
+%%Page: 23 29
+TeXDict begin 23 28 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)150 299
+y Fk(3.5.4)63 b(Command)41 b(Substitution)275 543 y Ft(Command)29
+b(substitution)i(allo)m(ws)h(the)f(output)g(of)g(a)g(command)g(to)g
+(replace)h(the)f(command)g(itself.)150 653 y(Command)e(substitution)h
+(o)s(ccurs)h(when)e(a)i(command)f(is)g(enclosed)h(as)g(follo)m(ws:)390
+788 y Fs($\()p Fj(command)11 b Fs(\))150 922 y Ft(or)390
+1057 y Fs(`)p Fj(command)g Fs(`)150 1192 y Ft(Bash)45
+b(p)s(erforms)f(the)h(expansion)f(b)m(y)h(executing)i
+Fq(command)h Ft(and)c(replacing)i(the)f(command)g(sub-)150
+1301 y(stitution)c(with)f(the)g(standard)g(output)g(of)g(the)g
+(command,)j(with)d(an)m(y)h(trailing)g(newlines)f(deleted.)150
+1411 y(Em)m(b)s(edded)30 b(newlines)h(are)h(not)f(deleted,)i(but)e
+(they)g(ma)m(y)h(b)s(e)f(remo)m(v)m(ed)i(during)d(w)m(ord)h(splitting.)
+44 b(The)150 1520 y(command)21 b(substitution)g Fs($\(cat)29
+b Fj(file)11 b Fs(\))20 b Ft(can)i(b)s(e)f(replaced)g(b)m(y)h(the)g
+(equiv)-5 b(alen)m(t)22 b(but)f(faster)h Fs($\(<)30 b
+Fj(file)11 b Fs(\))p Ft(.)275 1655 y(When)33 b(the)i(old-st)m(yle)h
+(bac)m(kquote)f(form)f(of)g(substitution)g(is)g(used,)h(bac)m(kslash)f
+(retains)h(its)f(literal)150 1765 y(meaning)k(except)h(when)e(follo)m
+(w)m(ed)j(b)m(y)e(`)p Fs($)p Ft(',)j(`)p Fs(`)p Ft(',)f(or)e(`)p
+Fs(\\)p Ft('.)64 b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g
+(b)m(y)g(a)150 1874 y(bac)m(kslash)j(terminates)g(the)f(command)g
+(substitution.)69 b(When)40 b(using)g(the)g Fs($\()p
+Fj(command)11 b Fs(\))37 b Ft(form,)42 b(all)150 1984
+y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)f(paren)m(theses)h(mak)m(e)
+g(up)f(the)g(command;)h(none)f(are)h(treated)g(sp)s(ecially)-8
+b(.)275 2119 y(Command)22 b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39
+b(T)-8 b(o)23 b(nest)g(when)f(using)h(the)g(bac)m(kquoted)h(form,)g
+(escap)s(e)150 2228 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m
+(kslashes.)275 2363 y(If)e(the)i(substitution)e(app)s(ears)h(within)g
+(double)f(quotes,)i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion)
+150 2473 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150
+2697 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)275 2942
+y Ft(Arithmetic)33 b(expansion)f(allo)m(ws)i(the)e(ev)-5
+b(aluation)34 b(of)f(an)f(arithmetic)i(expression)e(and)g(the)g
+(substi-)150 3051 y(tution)f(of)f(the)h(result.)40 b(The)30
+b(format)h(for)f(arithmetic)i(expansion)e(is:)390 3186
+y Fs($\(\()47 b Fj(expression)55 b Fs(\)\))275 3321 y
+Ft(The)33 b(expression)g(is)h(treated)g(as)g(if)g(it)g(w)m(ere)g
+(within)f(double)h(quotes,)h(but)e(a)h(double)f(quote)h(inside)150
+3430 y(the)27 b(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8
+b(.)41 b(All)27 b(tok)m(ens)h(in)e(the)h(expression)g(undergo)f
+(parameter)h(ex-)150 3540 y(pansion,)h(command)f(substitution,)h(and)f
+(quote)i(remo)m(v)-5 b(al.)41 b(Arithmetic)28 b(expansions)g(ma)m(y)g
+(b)s(e)f(nested.)275 3675 y(The)34 b(ev)-5 b(aluation)37
+b(is)f(p)s(erformed)e(according)i(to)g(the)g(rules)f(listed)h(b)s(elo)m
+(w)g(\(see)g(Section)g(6.5)h([Shell)150 3784 y(Arithmetic],)32
+b(page)f(78\).)42 b(If)30 b(the)h(expression)f(is)g(in)m(v)-5
+b(alid,)32 b(Bash)e(prin)m(ts)g(a)h(message)g(indicating)h(failure)150
+3894 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s
+(ccurs.)150 4118 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)275
+4363 y Ft(Pro)s(cess)33 b(substitution)h(is)g(supp)s(orted)e(on)h
+(systems)h(that)h(supp)s(ort)d(named)h(pip)s(es)g(\()p
+Fl(fif)n(o)p Ft(s\))h(or)g(the)150 4472 y(`)p Fs(/dev/fd)p
+Ft(')29 b(metho)s(d)h(of)g(naming)g(op)s(en)g(\014les.)41
+b(It)30 b(tak)m(es)i(the)f(form)f(of)390 4607 y Fs(<\()p
+Fj(list)11 b Fs(\))150 4742 y Ft(or)390 4876 y Fs(>\()p
+Fj(list)g Fs(\))150 5011 y Ft(The)23 b(pro)s(cess)g Fq(list)j
+Ft(is)d(run)f(with)h(its)h(input)f(or)g(output)g(connected)h(to)h(a)e
+Fl(fif)n(o)g Ft(or)h(some)g(\014le)f(in)g(`)p Fs(/dev/fd)p
+Ft('.)150 5121 y(The)28 b(name)h(of)g(this)f(\014le)h(is)g(passed)f(as)
+h(an)f(argumen)m(t)h(to)h(the)f(curren)m(t)f(command)h(as)f(the)h
+(result)g(of)g(the)150 5230 y(expansion.)40 b(If)28 b(the)h
+Fs(>\()p Fj(list)11 b Fs(\))26 b Ft(form)i(is)h(used,)f(writing)h(to)g
+(the)g(\014le)f(will)h(pro)m(vide)g(input)f(for)g Fq(list)p
+Ft(.)41 b(If)28 b(the)150 5340 y Fs(<\()p Fj(list)11
+b Fs(\))23 b Ft(form)h(is)i(used,)f(the)h(\014le)f(passed)g(as)g(an)g
+(argumen)m(t)h(should)e(b)s(e)h(read)g(to)h(obtain)g(the)f(output)g(of)
+p eop end
+%%Page: 24 30
+TeXDict begin 24 29 bop 150 -116 a Ft(24)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fq(list)p Ft(.)41 b(Note)31
+b(that)f(no)g(space)g(ma)m(y)g(app)s(ear)f(b)s(et)m(w)m(een)h(the)g
+Fs(<)f Ft(or)h Fs(>)f Ft(and)g(the)h(left)g(paren)m(thesis,)h
+(otherwise)150 408 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m
+(terpreted)h(as)f(a)h(redirection.)275 542 y(When)36
+b(a)m(v)-5 b(ailable,)40 b(pro)s(cess)c(substitution)h(is)f(p)s
+(erformed)f(sim)m(ultaneously)i(with)g(parameter)g(and)150
+652 y(v)-5 b(ariable)31 b(expansion,)g(command)f(substitution,)g(and)g
+(arithmetic)i(expansion.)150 873 y Fk(3.5.7)63 b(W)-10
+b(ord)41 b(Splitting)275 1116 y Ft(The)35 b(shell)i(scans)f(the)g
+(results)g(of)g(parameter)h(expansion,)h(command)d(substitution,)j(and)
+e(arith-)150 1225 y(metic)31 b(expansion)g(that)g(did)e(not)i(o)s(ccur)
+f(within)g(double)g(quotes)h(for)f(w)m(ord)g(splitting.)275
+1359 y(The)43 b(shell)h(treats)h(eac)m(h)h(c)m(haracter)f(of)g
+Fs($IFS)e Ft(as)h(a)g(delimiter,)49 b(and)43 b(splits)h(the)h(results)e
+(of)i(the)150 1468 y(other)40 b(expansions)f(in)m(to)i(w)m(ords)e(on)h
+(these)g(c)m(haracters.)70 b(If)39 b Fs(IFS)g Ft(is)h(unset,)i(or)d
+(its)h(v)-5 b(alue)40 b(is)g(exactly)150 1578 y Fs
+(<space><tab><newline>)p Ft(,)26 b(the)32 b(default,)g(then)f
+(sequences)h(of)62 b Fs(<space>)p Ft(,)30 b Fs(<tab>)p
+Ft(,)h(and)f Fs(<newline>)150 1688 y Ft(at)39 b(the)f(b)s(eginning)g
+(and)f(end)h(of)g(the)h(results)f(of)g(the)g(previous)g(expansions)g
+(are)g(ignored,)j(and)d(an)m(y)150 1797 y(sequence)31
+b(of)g Fs(IFS)f Ft(c)m(haracters)j(not)e(at)g(the)g(b)s(eginning)g(or)f
+(end)h(serv)m(es)g(to)h(delimit)f(w)m(ords.)42 b(If)30
+b Fs(IFS)g Ft(has)150 1907 y(a)g(v)-5 b(alue)30 b(other)g(than)g(the)g
+(default,)g(then)f(sequences)h(of)g(the)g(whitespace)g(c)m(haracters)h
+Fs(space)e Ft(and)g Fs(tab)150 2016 y Ft(are)36 b(ignored)g(at)g(the)g
+(b)s(eginning)f(and)g(end)g(of)h(the)g(w)m(ord,)h(as)f(long)g(as)g(the)
+g(whitespace)h(c)m(haracter)g(is)150 2126 y(in)f(the)g(v)-5
+b(alue)36 b(of)g Fs(IFS)f Ft(\(an)h Fs(IFS)f Ft(whitespace)h(c)m
+(haracter\).)60 b(An)m(y)35 b(c)m(haracter)j(in)d Fs(IFS)g
+Ft(that)i(is)f(not)g Fs(IFS)150 2236 y Ft(whitespace,)27
+b(along)f(with)f(an)m(y)g(adjacen)m(t)h Fs(IFS)e Ft(whitespace)i(c)m
+(haracters,)i(delimits)e(a)f(\014eld.)38 b(A)26 b(sequence)150
+2345 y(of)35 b Fs(IFS)f Ft(whitespace)h(c)m(haracters)i(is)d(also)i
+(treated)g(as)f(a)g(delimiter.)55 b(If)34 b(the)h(v)-5
+b(alue)35 b(of)g Fs(IFS)f Ft(is)h(n)m(ull,)h(no)150 2455
+y(w)m(ord)30 b(splitting)h(o)s(ccurs.)275 2588 y(Explicit)44
+b(n)m(ull)f(argumen)m(ts)g(\()p Fs("")g Ft(or)h Fs('')p
+Ft(\))f(are)g(retained.)80 b(Unquoted)43 b(implicit)h(n)m(ull)f
+(argumen)m(ts,)150 2698 y(resulting)24 b(from)f(the)g(expansion)g(of)h
+(parameters)g(that)g(ha)m(v)m(e)h(no)e(v)-5 b(alues,)25
+b(are)f(remo)m(v)m(ed.)40 b(If)23 b(a)g(parameter)150
+2807 y(with)30 b(no)g(v)-5 b(alue)31 b(is)g(expanded)e(within)h(double)
+g(quotes,)h(a)g(n)m(ull)f(argumen)m(t)h(results)f(and)g(is)g(retained.)
+275 2941 y(Note)h(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h
+(splitting)g(is)f(p)s(erformed.)150 3162 y Fk(3.5.8)63
+b(Filename)41 b(Expansion)275 3405 y Ft(After)h(w)m(ord)g(splitting,)k
+(unless)c(the)g(`)p Fs(-f)p Ft(')g(option)h(has)f(b)s(een)g(set)g
+(\(see)i(Section)f(4.3.1)h([The)e(Set)150 3515 y(Builtin],)48
+b(page)c(51\),)k(Bash)43 b(scans)h(eac)m(h)g(w)m(ord)f(for)g(the)h(c)m
+(haracters)h(`)p Fs(*)p Ft(',)i(`)p Fs(?)p Ft(',)g(and)42
+b(`)p Fs([)p Ft('.)80 b(If)43 b(one)h(of)150 3624 y(these)d(c)m
+(haracters)g(app)s(ears,)i(then)d(the)g(w)m(ord)g(is)g(regarded)g(as)h
+(a)g Fq(pattern)p Ft(,)i(and)c(replaced)i(with)f(an)150
+3734 y(alphab)s(etically)h(sorted)f(list)g(of)g(\014le)g(names)g(matc)m
+(hing)h(the)f(pattern.)68 b(If)40 b(no)f(matc)m(hing)i(\014le)f(names)
+150 3844 y(are)e(found,)g(and)f(the)h(shell)f(option)h
+Fs(nullglob)e Ft(is)h(disabled,)i(the)f(w)m(ord)f(is)h(left)g(unc)m
+(hanged.)62 b(If)37 b(the)150 3953 y Fs(nullglob)32 b
+Ft(option)i(is)g(set,)h(and)f(no)f(matc)m(hes)i(are)g(found,)e(the)h(w)
+m(ord)g(is)g(remo)m(v)m(ed.)52 b(If)33 b(the)h Fs(failglob)150
+4063 y Ft(shell)27 b(option)g(is)g(set,)h(and)e(no)g(matc)m(hes)i(are)f
+(found,)f(an)h(error)f(message)i(is)e(prin)m(ted)g(and)g(the)h(command)
+150 4172 y(is)h(not)h(executed.)41 b(If)28 b(the)g(shell)h(option)g
+Fs(nocaseglob)c Ft(is)k(enabled,)g(the)f(matc)m(h)i(is)e(p)s(erformed)f
+(without)150 4282 y(regard)j(to)h(the)g(case)g(of)g(alphab)s(etic)g(c)m
+(haracters.)275 4415 y(When)21 b(a)i(pattern)f(is)g(used)g(for)f
+(\014lename)i(generation,)i(the)d(c)m(haracter)i(`)p
+Fs(.)p Ft(')e(at)h(the)f(start)h(of)f(a)h(\014lename)150
+4525 y(or)g(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s(e)f
+(matc)m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g(shell)h(option)g
+Fs(dotglob)150 4635 y Ft(is)31 b(set.)45 b(When)31 b(matc)m(hing)h(a)g
+(\014le)f(name,)h(the)g(slash)f(c)m(haracter)i(m)m(ust)e(alw)m(a)m(ys)i
+(b)s(e)e(matc)m(hed)h(explicitly)-8 b(.)150 4744 y(In)30
+b(other)g(cases,)i(the)e(`)p Fs(.)p Ft(')h(c)m(haracter)h(is)e(not)h
+(treated)g(sp)s(ecially)-8 b(.)275 4878 y(See)28 b(the)g(description)g
+(of)g Fs(shopt)e Ft(in)i(Section)g(4.3.2)i([The)e(Shopt)f(Builtin],)i
+(page)g(54,)g(for)f(a)g(descrip-)150 4987 y(tion)j(of)f(the)h
+Fs(nocaseglob)p Ft(,)d Fs(nullglob)p Ft(,)g Fs(failglob)p
+Ft(,)h(and)g Fs(dotglob)g Ft(options.)275 5121 y(The)j
+Fs(GLOBIGNORE)f Ft(shell)i(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(used)f
+(to)i(restrict)g(the)g(set)f(of)h(\014lenames)f(matc)m(hing)i(a)150
+5230 y(pattern.)k(If)25 b Fs(GLOBIGNORE)e Ft(is)j(set,)h(eac)m(h)g
+(matc)m(hing)g(\014lename)f(that)g(also)h(matc)m(hes)f(one)g(of)g(the)g
+(patterns)150 5340 y(in)33 b Fs(GLOBIGNORE)d Ft(is)j(remo)m(v)m(ed)h
+(from)e(the)i(list)f(of)g(matc)m(hes.)50 b(The)33 b(\014lenames)g(`)p
+Fs(.)p Ft(')g(and)f(`)p Fs(..)p Ft(')h(are)g(alw)m(a)m(ys)p
+eop end
+%%Page: 25 31
+TeXDict begin 25 30 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)150 299
+y(ignored)33 b(when)e Fs(GLOBIGNORE)f Ft(is)j(set)g(and)f(not)h(n)m
+(ull.)48 b(Ho)m(w)m(ev)m(er,)35 b(setting)f Fs(GLOBIGNORE)c
+Ft(to)j(a)g(non-n)m(ull)150 408 y(v)-5 b(alue)34 b(has)f(the)h
+(e\013ect)h(of)f(enabling)g(the)g Fs(dotglob)e Ft(shell)h(option,)j(so)
+e(all)g(other)g(\014lenames)g(b)s(eginning)150 518 y(with)43
+b(a)h(`)p Fs(.)p Ft(')f(will)h(matc)m(h.)80 b(T)-8 b(o)44
+b(get)h(the)e(old)h(b)s(eha)m(vior)f(of)h(ignoring)f(\014lenames)h(b)s
+(eginning)f(with)g(a)150 628 y(`)p Fs(.)p Ft(',)c(mak)m(e)g(`)p
+Fs(.*)p Ft(')e(one)g(of)g(the)h(patterns)f(in)g Fs(GLOBIGNORE)p
+Ft(.)58 b(The)37 b Fs(dotglob)e Ft(option)j(is)f(disabled)g(when)150
+737 y Fs(GLOBIGNORE)28 b Ft(is)i(unset.)150 957 y Fk(3.5.8.1)63
+b(P)m(attern)40 b(Matc)m(hing)275 1200 y Ft(An)m(y)33
+b(c)m(haracter)i(that)f(app)s(ears)f(in)g(a)h(pattern,)g(other)g(than)f
+(the)g(sp)s(ecial)h(pattern)g(c)m(haracters)h(de-)150
+1309 y(scrib)s(ed)30 b(b)s(elo)m(w,)h(matc)m(hes)h(itself.)43
+b(The)31 b Fl(nul)f Ft(c)m(haracter)i(ma)m(y)f(not)h(o)s(ccur)e(in)h(a)
+g(pattern.)42 b(A)31 b(bac)m(kslash)150 1419 y(escap)s(es)36
+b(the)f(follo)m(wing)i(c)m(haracter;)j(the)c(escaping)g(bac)m(kslash)g
+(is)f(discarded)g(when)g(matc)m(hing.)56 b(The)150 1528
+y(sp)s(ecial)31 b(pattern)f(c)m(haracters)i(m)m(ust)f(b)s(e)e(quoted)i
+(if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i(literally)-8
+b(.)275 1661 y(The)29 b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m
+(e)f(the)g(follo)m(wing)h(meanings:)150 1818 y Fs(*)432
+b Ft(Matc)m(hes)31 b(an)m(y)e(string,)h(including)f(the)g(n)m(ull)g
+(string.)41 b(When)29 b(the)g Fs(globstar)e Ft(shell)i(option)630
+1927 y(is)37 b(enabled,)h(and)e(`)p Fs(*)p Ft(')h(is)g(used)f(in)g(a)h
+(\014lename)g(expansion)g(con)m(text,)j(t)m(w)m(o)e(adjacen)m(t)g(`)p
+Fs(*)p Ft('s)630 2037 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc)
+m(h)i(all)f(\014les)f(and)g(zero)h(or)g(more)f(directories)i(and)630
+2147 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p
+Fs(/)p Ft(',)h(t)m(w)m(o)g(adjacen)m(t)h(`)p Fs(*)p Ft('s)e(will)g
+(matc)m(h)h(only)f(directories)630 2256 y(and)k(sub)s(directories.)150
+2413 y Fs(?)432 b Ft(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)
+150 2569 y Fs([...)o(])241 b Ft(Matc)m(hes)27 b(an)m(y)e(one)g(of)g
+(the)g(enclosed)g(c)m(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters)
+i(separated)e(b)m(y)g(a)630 2679 y(h)m(yphen)i(denotes)h(a)g
+Fq(range)g(expression)p Ft(;)g(an)m(y)h(c)m(haracter)g(that)f(sorts)g
+(b)s(et)m(w)m(een)g(those)h(t)m(w)m(o)630 2788 y(c)m(haracters,)f
+(inclusiv)m(e,)f(using)d(the)h(curren)m(t)f(lo)s(cale's)j(collating)g
+(sequence)e(and)f(c)m(haracter)630 2898 y(set,)31 b(is)f(matc)m(hed.)42
+b(If)30 b(the)g(\014rst)g(c)m(haracter)i(follo)m(wing)g(the)e(`)p
+Fs([)p Ft(')h(is)f(a)h(`)p Fs(!)p Ft(')f(or)g(a)h(`)p
+Fs(^)p Ft(')g(then)f(an)m(y)630 3008 y(c)m(haracter)c(not)f(enclosed)g
+(is)g(matc)m(hed.)40 b(A)25 b(`)p Fp(\000)p Ft(')f(ma)m(y)i(b)s(e)e
+(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 3117
+y(\014rst)32 b(or)h(last)h(c)m(haracter)h(in)e(the)g(set.)50
+b(A)33 b(`)p Fs(])p Ft(')g(ma)m(y)h(b)s(e)e(matc)m(hed)i(b)m(y)f
+(including)g(it)g(as)h(the)630 3227 y(\014rst)25 b(c)m(haracter)i(in)e
+(the)h(set.)40 b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f
+(range)g(expressions)f(is)630 3336 y(determined)e(b)m(y)g(the)g(curren)
+m(t)f(lo)s(cale)j(and)e(the)g(v)-5 b(alue)23 b(of)g(the)h
+Fs(LC_COLLATE)c Ft(shell)j(v)-5 b(ariable,)630 3446 y(if)30
+b(set.)630 3579 y(F)-8 b(or)34 b(example,)g(in)f(the)g(default)g(C)f
+(lo)s(cale,)k(`)p Fs([a-dx-z])p Ft(')31 b(is)i(equiv)-5
+b(alen)m(t)34 b(to)g(`)p Fs([abcdxyz])p Ft('.)630 3689
+y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m(haracters)h(in)e(dictionary)i
+(order,)76 b(and)67 b(in)g(these)h(lo)s(cales)630 3798
+y(`)p Fs([a-dx-z])p Ft(')36 b(is)i(t)m(ypically)i(not)e(equiv)-5
+b(alen)m(t)39 b(to)g(`)p Fs([abcdxyz])p Ft(';)g(it)g(migh)m(t)f(b)s(e)f
+(equiv)-5 b(alen)m(t)630 3908 y(to)34 b(`)p Fs([aBbCcDdxXyYz])p
+Ft(',)c(for)j(example.)49 b(T)-8 b(o)33 b(obtain)h(the)f(traditional)h
+(in)m(terpretation)h(of)630 4017 y(ranges)e(in)f(brac)m(k)m(et)i
+(expressions,)g(y)m(ou)f(can)g(force)g(the)g(use)f(of)h(the)g(C)f(lo)s
+(cale)i(b)m(y)f(setting)630 4127 y(the)e Fs(LC_COLLATE)c
+Ft(or)k Fs(LC_ALL)d Ft(en)m(vironmen)m(t)j(v)-5 b(ariable)31
+b(to)g(the)g(v)-5 b(alue)31 b(`)p Fs(C)p Ft('.)630 4260
+y(Within)23 b(`)p Fs([)p Ft(')h(and)e(`)p Fs(])p Ft(',)j
+Fq(c)m(haracter)g(classes)j Ft(can)c(b)s(e)e(sp)s(eci\014ed)h(using)f
+(the)i(syn)m(tax)f Fs([:)p Fq(class)t Fs(:])p Ft(,)630
+4369 y(where)30 b Fq(class)35 b Ft(is)30 b(one)h(of)f(the)h(follo)m
+(wing)h(classes)f(de\014ned)e(in)h(the)h Fl(posix)f Ft(standard:)870
+4503 y Fs(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g
+(lower)870 4612 y(print)g(punct)g(space)f(upper)h(word)190
+b(xdigit)630 4745 y Ft(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m
+(y)f(c)m(haracter)h(b)s(elonging)f(to)g(that)g(class.)75
+b(The)41 b Fs(word)630 4855 y Ft(c)m(haracter)32 b(class)f(matc)m(hes)h
+(letters,)f(digits,)h(and)d(the)i(c)m(haracter)h(`)p
+Fs(_)p Ft('.)630 4988 y(Within)25 b(`)p Fs([)p Ft(')f(and)g(`)p
+Fs(])p Ft(',)i(an)e Fq(equiv)-5 b(alence)26 b(class)j
+Ft(can)24 b(b)s(e)g(sp)s(eci\014ed)g(using)g(the)g(syn)m(tax)h
+Fs([=)p Fq(c)6 b Fs(=])p Ft(,)630 5097 y(whic)m(h)29
+b(matc)m(hes)i(all)f(c)m(haracters)h(with)e(the)h(same)g(collation)h(w)
+m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 5207
+y(curren)m(t)g(lo)s(cale\))j(as)d(the)h(c)m(haracter)h
+Fq(c)p Ft(.)630 5340 y(Within)22 b(`)p Fs([)p Ft(')f(and)g(`)p
+Fs(])p Ft(',)j(the)d(syn)m(tax)h Fs([.)p Fq(sym)m(b)s(ol)t
+Fs(.])e Ft(matc)m(hes)i(the)g(collating)i(sym)m(b)s(ol)d
+Fq(sym)m(b)s(ol)p Ft(.)p eop end
+%%Page: 26 32
+TeXDict begin 26 31 bop 150 -116 a Ft(26)2572 b(Bash)31
+b(Reference)g(Man)m(ual)275 299 y(If)e(the)g Fs(extglob)f
+Ft(shell)h(option)h(is)g(enabled)f(using)g(the)h Fs(shopt)e
+Ft(builtin,)h(sev)m(eral)i(extended)f(pattern)150 408
+y(matc)m(hing)37 b(op)s(erators)e(are)h(recognized.)58
+b(In)35 b(the)g(follo)m(wing)i(description,)g(a)f Fq(pattern-list)j
+Ft(is)d(a)g(list)g(of)150 518 y(one)d(or)f(more)h(patterns)f(separated)
+h(b)m(y)f(a)h(`)p Fs(|)p Ft('.)47 b(Comp)s(osite)33 b(patterns)f(ma)m
+(y)i(b)s(e)d(formed)h(using)g(one)h(or)150 628 y(more)e(of)f(the)h
+(follo)m(wing)g(sub-patterns:)150 790 y Fs(?\()p Fj(pattern-list)11
+b Fs(\))630 899 y Ft(Matc)m(hes)32 b(zero)f(or)g(one)f(o)s(ccurrence)h
+(of)f(the)h(giv)m(en)g(patterns.)150 1060 y Fs(*\()p
+Fj(pattern-list)11 b Fs(\))630 1170 y Ft(Matc)m(hes)32
+b(zero)f(or)g(more)f(o)s(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)
+150 1331 y Fs(+\()p Fj(pattern-list)11 b Fs(\))630 1440
+y Ft(Matc)m(hes)32 b(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)
+m(en)i(patterns.)150 1601 y Fs(@\()p Fj(pattern-list)11
+b Fs(\))630 1711 y Ft(Matc)m(hes)32 b(one)f(of)f(the)h(giv)m(en)g
+(patterns.)150 1872 y Fs(!\()p Fj(pattern-list)11 b Fs(\))630
+1982 y Ft(Matc)m(hes)32 b(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m
+(en)g(patterns.)150 2209 y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7
+b(al)275 2455 y Ft(After)32 b(the)h(preceding)f(expansions,)h(all)g
+(unquoted)f(o)s(ccurrences)g(of)h(the)f(c)m(haracters)i(`)p
+Fs(\\)p Ft(',)f(`)p Fs(')p Ft(',)h(and)150 2565 y(`)p
+Fs(")p Ft(')d(that)g(did)e(not)i(result)f(from)g(one)h(of)f(the)h(ab)s
+(o)m(v)m(e)g(expansions)f(are)h(remo)m(v)m(ed.)150 2826
+y Fr(3.6)68 b(Redirections)275 3072 y Ft(Before)33 b(a)h(command)e(is)h
+(executed,)i(its)e(input)f(and)h(output)f(ma)m(y)i(b)s(e)e
+Fq(redirected)37 b Ft(using)32 b(a)h(sp)s(ecial)150 3181
+y(notation)g(in)m(terpreted)g(b)m(y)f(the)g(shell.)46
+b(Redirection)33 b(ma)m(y)g(also)g(b)s(e)f(used)f(to)i(op)s(en)e(and)h
+(close)h(\014les)f(for)150 3291 y(the)h(curren)m(t)g(shell)g(execution)
+h(en)m(vironmen)m(t.)49 b(The)33 b(follo)m(wing)h(redirection)g(op)s
+(erators)f(ma)m(y)h(precede)150 3401 y(or)29 b(app)s(ear)g(an)m(ywhere)
+g(within)g(a)h(simple)f(command)g(or)h(ma)m(y)g(follo)m(w)g(a)g
+(command.)40 b(Redirections)31 b(are)150 3510 y(pro)s(cessed)f(in)g
+(the)g(order)g(they)h(app)s(ear,)f(from)g(left)h(to)g(righ)m(t.)275
+3646 y(In)c(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g
+(descriptor)f(n)m(um)m(b)s(er)g(is)g(omitted,)i(and)f(the)f(\014rst)g
+(c)m(har-)150 3756 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g
+(is)g(`)p Fs(<)p Ft(',)i(the)e(redirection)g(refers)g(to)g(the)g
+(standard)f(input)f(\(\014le)150 3866 y(descriptor)33
+b(0\).)49 b(If)33 b(the)g(\014rst)f(c)m(haracter)i(of)g(the)f
+(redirection)g(op)s(erator)h(is)f(`)p Fs(>)p Ft(',)h(the)f(redirection)
+g(refers)150 3975 y(to)e(the)g(standard)e(output)h(\(\014le)h
+(descriptor)f(1\).)275 4111 y(The)h(w)m(ord)h(follo)m(wing)i(the)f
+(redirection)g(op)s(erator)f(in)g(the)h(follo)m(wing)h(descriptions,)f
+(unless)e(other-)150 4221 y(wise)21 b(noted,)i(is)e(sub)5
+b(jected)21 b(to)h(brace)f(expansion,)i(tilde)f(expansion,)h(parameter)
+e(expansion,)i(command)150 4330 y(substitution,)31 b(arithmetic)h
+(expansion,)f(quote)h(remo)m(v)-5 b(al,)33 b(\014lename)e(expansion,)g
+(and)f(w)m(ord)h(splitting.)150 4440 y(If)f(it)h(expands)e(to)i(more)g
+(than)f(one)h(w)m(ord,)f(Bash)h(rep)s(orts)e(an)h(error.)275
+4576 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g
+(signi\014can)m(t.)41 b(F)-8 b(or)31 b(example,)h(the)e(command)390
+4712 y Fs(ls)47 b(>)h Fj(dirlist)56 b Fs(2>&1)150 4848
+y Ft(directs)28 b(b)s(oth)f(standard)g(output)g(\(\014le)h(descriptor)f
+(1\))i(and)e(standard)f(error)i(\(\014le)g(descriptor)f(2\))h(to)h(the)
+150 4958 y(\014le)h Fq(dirlist)p Ft(,)h(while)f(the)h(command)390
+5094 y Fs(ls)47 b(2>&1)g(>)g Fj(dirlist)150 5230 y Ft(directs)34
+b(only)g(the)f(standard)g(output)g(to)h(\014le)g Fq(dirlist)p
+Ft(,)h(b)s(ecause)e(the)h(standard)f(error)g(w)m(as)h(duplicated)150
+5340 y(as)d(standard)e(output)h(b)s(efore)g(the)h(standard)e(output)h
+(w)m(as)h(redirected)g(to)g Fq(dirlist)p Ft(.)p eop end
+%%Page: 27 33
+TeXDict begin 27 32 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)275 299
+y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s(ecially)h(when)f
+(they)g(are)g(used)g(in)g(redirections,)i(as)e(describ)s(ed)150
+408 y(in)k(the)h(follo)m(wing)g(table:)150 559 y Fs(/dev/fd/)p
+Fj(fd)630 669 y Ft(If)f Fq(fd)j Ft(is)d(a)h(v)-5 b(alid)31
+b(in)m(teger,)h(\014le)e(descriptor)h Fq(fd)i Ft(is)d(duplicated.)150
+820 y Fs(/dev/stdin)630 929 y Ft(File)i(descriptor)e(0)h(is)f
+(duplicated.)150 1080 y Fs(/dev/stdout)630 1190 y Ft(File)i(descriptor)
+e(1)h(is)f(duplicated.)150 1341 y Fs(/dev/stderr)630
+1450 y Ft(File)i(descriptor)e(2)h(is)f(duplicated.)150
+1601 y Fs(/dev/tcp/)p Fj(host)11 b Fs(/)p Fj(port)630
+1711 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5 b(alid)41
+b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c Fq(p)s(ort)j
+Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 1820 y(n)m(um)m(b)s(er)h(or)h
+(service)h(name,)j(Bash)c(attempts)h(to)g(op)s(en)f(a)g(TCP)g
+(connection)h(to)g(the)630 1930 y(corresp)s(onding)29
+b(so)s(c)m(k)m(et.)150 2081 y Fs(/dev/udp/)p Fj(host)11
+b Fs(/)p Fj(port)630 2190 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5
+b(alid)41 b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c
+Fq(p)s(ort)j Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 2300
+y(n)m(um)m(b)s(er)g(or)i(service)g(name,)k(Bash)c(attempts)g(to)h(op)s
+(en)e(a)h(UDP)g(connection)g(to)h(the)630 2410 y(corresp)s(onding)29
+b(so)s(c)m(k)m(et.)275 2560 y(A)h(failure)h(to)g(op)s(en)e(or)i(create)
+h(a)e(\014le)h(causes)g(the)f(redirection)h(to)g(fail.)275
+2691 y(Redirections)f(using)e(\014le)i(descriptors)f(greater)h(than)f
+(9)h(should)e(b)s(e)h(used)f(with)h(care,)h(as)g(they)f(ma)m(y)150
+2800 y(con\015ict)i(with)f(\014le)h(descriptors)f(the)g(shell)h(uses)f
+(in)m(ternally)-8 b(.)150 3012 y Fk(3.6.1)63 b(Redirecting)40
+b(Input)275 3251 y Ft(Redirection)35 b(of)f(input)g(causes)g(the)h
+(\014le)f(whose)g(name)h(results)f(from)g(the)g(expansion)g(of)h
+Fq(w)m(ord)i Ft(to)150 3361 y(b)s(e)d(op)s(ened)g(for)g(reading)g(on)h
+(\014le)f(descriptor)h Fs(n)p Ft(,)g(or)g(the)f(standard)g(input)g
+(\(\014le)h(descriptor)f(0\))h(if)g Fs(n)f Ft(is)150
+3471 y(not)d(sp)s(eci\014ed.)275 3601 y(The)e(general)j(format)e(for)h
+(redirecting)g(input)e(is:)390 3731 y Fs([)p Fj(n)11
+b Fs(]<)p Fj(word)150 3942 y Fk(3.6.2)63 b(Redirecting)40
+b(Output)275 4182 y Ft(Redirection)31 b(of)f(output)g(causes)h(the)g
+(\014le)f(whose)g(name)h(results)f(from)f(the)i(expansion)f(of)h
+Fq(w)m(ord)i Ft(to)150 4292 y(b)s(e)e(op)s(ened)g(for)g(writing)h(on)f
+(\014le)h(descriptor)f Fq(n)p Ft(,)h(or)f(the)h(standard)f(output)g
+(\(\014le)h(descriptor)f(1\))h(if)g Fq(n)f Ft(is)150
+4401 y(not)j(sp)s(eci\014ed.)50 b(If)33 b(the)h(\014le)g(do)s(es)f(not)
+h(exist)g(it)g(is)g(created;)j(if)c(it)h(do)s(es)g(exist)g(it)g(is)g
+(truncated)g(to)g(zero)150 4511 y(size.)275 4641 y(The)29
+b(general)j(format)e(for)h(redirecting)g(output)f(is:)390
+4771 y Fs([)p Fj(n)11 b Fs(]>[|])p Fj(word)275 4902 y
+Ft(If)30 b(the)h(redirection)g(op)s(erator)g(is)g(`)p
+Fs(>)p Ft(',)g(and)f(the)h Fs(noclobber)d Ft(option)j(to)g(the)g
+Fs(set)f Ft(builtin)g(has)h(b)s(een)150 5011 y(enabled,)i(the)f
+(redirection)h(will)f(fail)h(if)f(the)g(\014le)g(whose)g(name)g
+(results)g(from)g(the)g(expansion)g(of)g Fq(w)m(ord)150
+5121 y Ft(exists)f(and)f(is)g(a)h(regular)g(\014le.)41
+b(If)30 b(the)h(redirection)g(op)s(erator)g(is)f(`)p
+Fs(>|)p Ft(',)h(or)f(the)h(redirection)g(op)s(erator)g(is)150
+5230 y(`)p Fs(>)p Ft(')36 b(and)f(the)g Fs(noclobber)e
+Ft(option)j(is)g(not)g(enabled,)h(the)e(redirection)h(is)g(attempted)g
+(ev)m(en)h(if)e(the)h(\014le)150 5340 y(named)30 b(b)m(y)g
+Fq(w)m(ord)k Ft(exists.)p eop end
+%%Page: 28 34
+TeXDict begin 28 33 bop 150 -116 a Ft(28)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fk(3.6.3)63 b(App)s(ending)42
+b(Redirected)e(Output)275 541 y Ft(Redirection)29 b(of)g(output)f(in)g
+(this)h(fashion)f(causes)h(the)g(\014le)g(whose)f(name)h(results)f
+(from)g(the)h(expan-)150 651 y(sion)34 b(of)f Fq(w)m(ord)k
+Ft(to)e(b)s(e)e(op)s(ened)g(for)g(app)s(ending)f(on)i(\014le)f
+(descriptor)h Fq(n)p Ft(,)g(or)g(the)f(standard)g(output)g(\(\014le)150
+760 y(descriptor)d(1\))h(if)g Fq(n)f Ft(is)g(not)h(sp)s(eci\014ed.)40
+b(If)29 b(the)i(\014le)f(do)s(es)h(not)f(exist)h(it)g(is)g(created.)275
+893 y(The)e(general)j(format)e(for)h(app)s(ending)e(output)h(is:)390
+1026 y Fs([)p Fj(n)11 b Fs(]>>)p Fj(word)150 1245 y Fk(3.6.4)63
+b(Redirecting)40 b(Standard)h(Output)g(and)g(Standard)g(Error)275
+1487 y Ft(This)23 b(construct)i(allo)m(ws)h(b)s(oth)e(the)h(standard)f
+(output)g(\(\014le)h(descriptor)f(1\))i(and)e(the)h(standard)e(error)
+150 1597 y(output)30 b(\(\014le)h(descriptor)f(2\))h(to)g(b)s(e)f
+(redirected)h(to)g(the)f(\014le)h(whose)f(name)h(is)f(the)g(expansion)h
+(of)f Fq(w)m(ord)p Ft(.)275 1729 y(There)f(are)i(t)m(w)m(o)h(formats)e
+(for)h(redirecting)g(standard)e(output)h(and)g(standard)f(error:)390
+1862 y Fs(&>)p Fj(word)150 1995 y Ft(and)390 2127 y Fs(>&)p
+Fj(word)150 2260 y Ft(Of)h(the)g(t)m(w)m(o)i(forms,)e(the)h(\014rst)e
+(is)i(preferred.)39 b(This)30 b(is)g(seman)m(tically)j(equiv)-5
+b(alen)m(t)32 b(to)390 2393 y Fs(>)p Fj(word)57 b Fs(2>&1)150
+2612 y Fk(3.6.5)63 b(App)s(ending)42 b(Standard)f(Output)g(and)g
+(Standard)g(Error)275 2854 y Ft(This)23 b(construct)i(allo)m(ws)h(b)s
+(oth)e(the)h(standard)f(output)g(\(\014le)h(descriptor)f(1\))i(and)e
+(the)h(standard)e(error)150 2964 y(output)30 b(\(\014le)h(descriptor)f
+(2\))h(to)g(b)s(e)f(app)s(ended)f(to)i(the)f(\014le)h(whose)f(name)g
+(is)h(the)f(expansion)h(of)f Fq(w)m(ord)p Ft(.)275 3096
+y(The)f(format)i(for)f(app)s(ending)f(standard)h(output)g(and)f
+(standard)h(error)g(is:)390 3229 y Fs(&>>)p Fj(word)150
+3362 y Ft(This)g(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32
+b(to)390 3494 y Fs(>>)p Fj(word)57 b Fs(2>&1)150 3713
+y Fk(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)275 3956 y
+Ft(This)28 b(t)m(yp)s(e)h(of)h(redirection)g(instructs)f(the)g(shell)h
+(to)g(read)f(input)f(from)h(the)g(curren)m(t)h(source)f(un)m(til)h(a)
+150 4065 y(line)h(con)m(taining)g(only)g Fq(w)m(ord)i
+Ft(\(with)d(no)h(trailing)g(blanks\))f(is)g(seen.)41
+b(All)31 b(of)f(the)h(lines)f(read)g(up)f(to)i(that)150
+4175 y(p)s(oin)m(t)f(are)h(then)f(used)g(as)g(the)h(standard)f(input)f
+(for)h(a)h(command.)275 4307 y(The)e(format)i(of)g(here-do)s(cumen)m
+(ts)f(is:)390 4440 y Fs(<<[)p Fp(\000)p Fs(])p Fj(word)772
+4550 y(here-document)390 4659 y(delimiter)275 4792 y
+Ft(No)j(parameter)h(expansion,)g(command)f(substitution,)h(arithmetic)h
+(expansion,)f(or)f(\014lename)g(ex-)150 4902 y(pansion)i(is)g(p)s
+(erformed)e(on)i Fq(w)m(ord)p Ft(.)55 b(If)34 b(an)m(y)i(c)m(haracters)
+g(in)f Fq(w)m(ord)j Ft(are)d(quoted,)i(the)e Fq(delimiter)43
+b Ft(is)35 b(the)150 5011 y(result)40 b(of)h(quote)g(remo)m(v)-5
+b(al)42 b(on)e Fq(w)m(ord)p Ft(,)j(and)d(the)g(lines)h(in)f(the)h
+(here-do)s(cumen)m(t)f(are)h(not)f(expanded.)150 5121
+y(If)32 b Fq(w)m(ord)k Ft(is)d(unquoted,)f(all)i(lines)f(of)f(the)h
+(here-do)s(cumen)m(t)g(are)g(sub)5 b(jected)32 b(to)i(parameter)f
+(expansion,)150 5230 y(command)25 b(substitution,)g(and)g(arithmetic)h
+(expansion.)39 b(In)24 b(the)h(latter)h(case,)h(the)e(c)m(haracter)i
+(sequence)150 5340 y Fs(\\newline)h Ft(is)j(ignored,)f(and)g(`)p
+Fs(\\)p Ft(')h(m)m(ust)f(b)s(e)g(used)f(to)i(quote)g(the)g(c)m
+(haracters)h(`)p Fs(\\)p Ft(',)e(`)p Fs($)p Ft(',)h(and)f(`)p
+Fs(`)p Ft('.)p eop end
+%%Page: 29 35
+TeXDict begin 29 34 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)275 299
+y(If)21 b(the)i(redirection)g(op)s(erator)g(is)f(`)p
+Fs(<<-)p Ft(',)i(then)e(all)h(leading)g(tab)g(c)m(haracters)h(are)e
+(stripp)s(ed)f(from)h(input)150 408 y(lines)33 b(and)f(the)h(line)h
+(con)m(taining)g Fq(delimiter)p Ft(.)49 b(This)32 b(allo)m(ws)i
+(here-do)s(cumen)m(ts)f(within)f(shell)i(scripts)e(to)150
+518 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f(fashion.)150
+762 y Fk(3.6.7)63 b(Here)41 b(Strings)275 1016 y Ft(A)30
+b(v)-5 b(arian)m(t)31 b(of)g(here)f(do)s(cumen)m(ts,)g(the)h(format)g
+(is:)390 1161 y Fs(<<<)47 b Fj(word)275 1305 y Ft(The)29
+b Fq(w)m(ord)34 b Ft(is)c(expanded)g(and)g(supplied)f(to)i(the)f
+(command)h(on)f(its)h(standard)e(input.)150 1549 y Fk(3.6.8)63
+b(Duplicating)41 b(File)g(Descriptors)275 1803 y Ft(The)29
+b(redirection)i(op)s(erator)390 1948 y Fs([)p Fj(n)11
+b Fs(]<&)p Fj(word)150 2092 y Ft(is)35 b(used)e(to)j(duplicate)f(input)
+f(\014le)g(descriptors.)53 b(If)34 b Fq(w)m(ord)k Ft(expands)c(to)h
+(one)g(or)g(more)g(digits,)h(the)f(\014le)150 2202 y(descriptor)e
+(denoted)h(b)m(y)g Fq(n)f Ft(is)g(made)h(to)g(b)s(e)f(a)h(cop)m(y)g(of)
+g(that)g(\014le)g(descriptor.)50 b(If)33 b(the)h(digits)g(in)f
+Fq(w)m(ord)150 2311 y Ft(do)c(not)h(sp)s(ecify)f(a)h(\014le)f
+(descriptor)g(op)s(en)g(for)g(input,)g(a)h(redirection)g(error)f(o)s
+(ccurs.)40 b(If)29 b Fq(w)m(ord)j Ft(ev)-5 b(aluates)150
+2421 y(to)31 b(`)p Fs(-)p Ft(',)g(\014le)g(descriptor)g
+Fq(n)f Ft(is)g(closed.)43 b(If)30 b Fq(n)g Ft(is)g(not)h(sp)s
+(eci\014ed,)f(the)h(standard)f(input)g(\(\014le)h(descriptor)f(0\))150
+2531 y(is)g(used.)275 2675 y(The)f(op)s(erator)390 2819
+y Fs([)p Fj(n)11 b Fs(]>&)p Fj(word)150 2964 y Ft(is)40
+b(used)g(similarly)h(to)g(duplicate)f(output)g(\014le)h(descriptors.)70
+b(If)40 b Fq(n)f Ft(is)i(not)f(sp)s(eci\014ed,)i(the)f(standard)150
+3073 y(output)30 b(\(\014le)g(descriptor)g(1\))h(is)f(used.)39
+b(If)30 b(the)g(digits)h(in)e Fq(w)m(ord)34 b Ft(do)29
+b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g(op)s(en)150
+3183 y(for)38 b(output,)i(a)e(redirection)h(error)f(o)s(ccurs.)63
+b(As)38 b(a)h(sp)s(ecial)f(case,)k(if)c Fq(n)f Ft(is)h(omitted,)k(and)
+37 b Fq(w)m(ord)k Ft(do)s(es)150 3293 y(not)28 b(expand)f(to)i(one)f
+(or)f(more)h(digits,)i(the)e(standard)e(output)i(and)f(standard)g
+(error)g(are)i(redirected)f(as)150 3402 y(describ)s(ed)h(previously)-8
+b(.)150 3646 y Fk(3.6.9)63 b(Mo)m(ving)41 b(File)h(Descriptors)275
+3900 y Ft(The)29 b(redirection)i(op)s(erator)390 4045
+y Fs([)p Fj(n)11 b Fs(]<&)p Fj(digit)p Fs(-)150 4189
+y Ft(mo)m(v)m(es)33 b(the)f(\014le)g(descriptor)f Fq(digit)k
+Ft(to)d(\014le)g(descriptor)g Fq(n)p Ft(,)f(or)h(the)g(standard)f
+(input)f(\(\014le)j(descriptor)e(0\))150 4299 y(if)f
+Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)40 b Fq(digit)33
+b Ft(is)e(closed)g(after)g(b)s(eing)f(duplicated)g(to)h
+Fq(n)p Ft(.)275 4443 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s
+(erator)390 4588 y Fs([)p Fj(n)11 b Fs(]>&)p Fj(digit)p
+Fs(-)150 4732 y Ft(mo)m(v)m(es)29 b(the)g(\014le)f(descriptor)f
+Fq(digit)k Ft(to)e(\014le)f(descriptor)g Fq(n)p Ft(,)g(or)g(the)g
+(standard)f(output)h(\(\014le)g(descriptor)g(1\))150
+4842 y(if)i Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)150
+5086 y Fk(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g
+(Reading)e(and)h(W)-10 b(riting)275 5340 y Ft(The)29
+b(redirection)i(op)s(erator)p eop end
+%%Page: 30 36
+TeXDict begin 30 35 bop 150 -116 a Ft(30)2572 b(Bash)31
+b(Reference)g(Man)m(ual)390 299 y Fs([)p Fj(n)11 b Fs(]<>)p
+Fj(word)150 431 y Ft(causes)39 b(the)g(\014le)g(whose)g(name)g(is)g
+(the)g(expansion)g(of)g Fq(w)m(ord)j Ft(to)d(b)s(e)g(op)s(ened)f(for)g
+(b)s(oth)h(reading)g(and)150 541 y(writing)33 b(on)f(\014le)h
+(descriptor)f Fq(n)p Ft(,)h(or)g(on)f(\014le)h(descriptor)g(0)g(if)f
+Fq(n)g Ft(is)h(not)g(sp)s(eci\014ed.)47 b(If)32 b(the)h(\014le)f(do)s
+(es)h(not)150 651 y(exist,)e(it)g(is)g(created.)150 902
+y Fr(3.7)68 b(Executing)46 b(Commands)150 1230 y Fk(3.7.1)63
+b(Simple)41 b(Command)h(Expansion)275 1472 y Ft(When)35
+b(a)h(simple)f(command)h(is)f(executed,)j(the)e(shell)g(p)s(erforms)e
+(the)i(follo)m(wing)h(expansions,)f(as-)150 1582 y(signmen)m(ts,)31
+b(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t.)199
+1714 y(1.)61 b(The)38 b(w)m(ords)f(that)i(the)g(parser)e(has)h(mark)m
+(ed)g(as)h(v)-5 b(ariable)39 b(assignmen)m(ts)g(\(those)g(preceding)f
+(the)330 1824 y(command)30 b(name\))h(and)f(redirections)h(are)f(sa)m
+(v)m(ed)i(for)e(later)h(pro)s(cessing.)199 1956 y(2.)61
+b(The)39 b(w)m(ords)g(that)i(are)f(not)g(v)-5 b(ariable)40
+b(assignmen)m(ts)h(or)e(redirections)i(are)f(expanded)f(\(see)h(Sec-)
+330 2066 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g(17\).)61
+b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h(the)e
+(\014rst)330 2175 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f(the)g
+(name)h(of)f(the)h(command)f(and)f(the)i(remaining)f(w)m(ords)g(are)g
+(the)h(argu-)330 2285 y(men)m(ts.)199 2418 y(3.)61 b(Redirections)25
+b(are)f(p)s(erformed)f(as)h(describ)s(ed)f(ab)s(o)m(v)m(e)i(\(see)g
+(Section)g(3.6)g([Redirections],)i(page)d(26\).)199 2550
+y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Fs(=)p Ft(')h(in)e(eac)m(h)
+j(v)-5 b(ariable)25 b(assignmen)m(t)h(undergo)s(es)e(tilde)i
+(expansion,)g(parameter)330 2660 y(expansion,)49 b(command)d
+(substitution,)j(arithmetic)d(expansion,)k(and)45 b(quote)h(remo)m(v)-5
+b(al)46 b(b)s(efore)330 2769 y(b)s(eing)30 b(assigned)h(to)g(the)f(v)-5
+b(ariable.)275 2925 y(If)32 b(no)i(command)f(name)g(results,)h(the)g(v)
+-5 b(ariable)34 b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)
+h(en)m(viron-)150 3034 y(men)m(t.)39 b(Otherwise,)27
+b(the)e(v)-5 b(ariables)26 b(are)g(added)f(to)h(the)f(en)m(vironmen)m
+(t)h(of)g(the)f(executed)h(command)g(and)150 3144 y(do)35
+b(not)f(a\013ect)j(the)d(curren)m(t)h(shell)g(en)m(vironmen)m(t.)54
+b(If)34 b(an)m(y)h(of)g(the)f(assignmen)m(ts)i(attempts)f(to)h(assign)
+150 3254 y(a)j(v)-5 b(alue)39 b(to)g(a)g(readonly)f(v)-5
+b(ariable,)42 b(an)c(error)g(o)s(ccurs,)j(and)c(the)i(command)f(exits)h
+(with)g(a)f(non-zero)150 3363 y(status.)275 3496 y(If)33
+b(no)g(command)g(name)h(results,)g(redirections)g(are)g(p)s(erformed,)f
+(but)g(do)h(not)f(a\013ect)i(the)f(curren)m(t)150 3605
+y(shell)d(en)m(vironmen)m(t.)41 b(A)30 b(redirection)h(error)f(causes)h
+(the)g(command)f(to)h(exit)g(with)f(a)h(non-zero)g(status.)275
+3738 y(If)26 b(there)i(is)f(a)h(command)f(name)h(left)g(after)g
+(expansion,)g(execution)h(pro)s(ceeds)e(as)g(describ)s(ed)f(b)s(elo)m
+(w.)150 3847 y(Otherwise,)39 b(the)e(command)g(exits.)62
+b(If)37 b(one)g(of)g(the)h(expansions)f(con)m(tained)h(a)g(command)f
+(substitu-)150 3957 y(tion,)i(the)d(exit)h(status)g(of)f(the)h(command)
+f(is)h(the)f(exit)h(status)g(of)f(the)h(last)g(command)f(substitution)
+150 4067 y(p)s(erformed.)55 b(If)35 b(there)g(w)m(ere)h(no)g(command)f
+(substitutions,)i(the)e(command)h(exits)g(with)f(a)h(status)g(of)150
+4176 y(zero.)150 4394 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h
+(Execution)275 4637 y Ft(After)35 b(a)h(command)f(has)h(b)s(een)e
+(split)i(in)m(to)g(w)m(ords,)h(if)e(it)h(results)g(in)f(a)h(simple)f
+(command)g(and)g(an)150 4746 y(optional)d(list)f(of)f(argumen)m(ts,)h
+(the)g(follo)m(wing)g(actions)h(are)f(tak)m(en.)199 4879
+y(1.)61 b(If)24 b(the)g(command)g(name)g(con)m(tains)i(no)e(slashes,)i
+(the)e(shell)h(attempts)g(to)g(lo)s(cate)h(it.)39 b(If)24
+b(there)g(exists)330 4988 y(a)h(shell)g(function)f(b)m(y)g(that)h
+(name,)h(that)f(function)f(is)h(in)m(v)m(ok)m(ed)h(as)e(describ)s(ed)g
+(in)g(Section)h(3.3)h([Shell)330 5098 y(F)-8 b(unctions],)31
+b(page)h(14.)199 5230 y(2.)61 b(If)41 b(the)g(name)h(do)s(es)f(not)g
+(matc)m(h)i(a)e(function,)j(the)e(shell)f(searc)m(hes)i(for)e(it)h(in)f
+(the)g(list)h(of)g(shell)330 5340 y(builtins.)e(If)30
+b(a)h(matc)m(h)g(is)f(found,)g(that)h(builtin)f(is)g(in)m(v)m(ok)m(ed.)
+p eop end
+%%Page: 31 37
+TeXDict begin 31 36 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)199 299
+y(3.)61 b(If)40 b(the)g(name)h(is)f(neither)h(a)f(shell)h(function)f
+(nor)g(a)g(builtin,)j(and)d(con)m(tains)h(no)g(slashes,)i(Bash)330
+408 y(searc)m(hes)c(eac)m(h)g(elemen)m(t)g(of)g Fs($PATH)d
+Ft(for)i(a)g(directory)h(con)m(taining)g(an)f(executable)h(\014le)f(b)m
+(y)g(that)330 518 y(name.)56 b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)f
+(remem)m(b)s(er)f(the)h(full)f(pathnames)g(of)h(executable)h(\014les)e
+(to)330 628 y(a)m(v)m(oid)e(m)m(ultiple)f Fs(PATH)f Ft(searc)m(hes)i
+(\(see)f(the)g(description)g(of)f Fs(hash)g Ft(in)g(Section)i(4.1)f
+([Bourne)g(Shell)330 737 y(Builtins],)37 b(page)f(35\).)55
+b(A)35 b(full)g(searc)m(h)g(of)g(the)g(directories)h(in)f
+Fs($PATH)e Ft(is)i(p)s(erformed)f(only)h(if)g(the)330
+847 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f(table.)39
+b(If)25 b(the)f(searc)m(h)i(is)e(unsuccessful,)h(the)g(shell)g(searc)m
+(hes)330 956 y(for)e(a)h(de\014ned)e(shell)h(function)h(named)e
+Fs(command_not_found_handle)p Ft(.)32 b(If)23 b(that)h(function)f
+(exists,)330 1066 y(it)32 b(is)f(in)m(v)m(ok)m(ed)i(with)e(the)h
+(original)g(command)f(and)g(the)h(original)g(command's)f(argumen)m(ts)h
+(as)g(its)330 1176 y(argumen)m(ts,)h(and)e(the)i(function's)e(exit)i
+(status)g(b)s(ecomes)f(the)g(exit)h(status)f(of)h(the)f(shell.)46
+b(If)31 b(that)330 1285 y(function)g(is)g(not)g(de\014ned,)f(the)i
+(shell)f(prin)m(ts)f(an)h(error)g(message)h(and)f(returns)e(an)i(exit)h
+(status)g(of)330 1395 y(127.)199 1531 y(4.)61 b(If)33
+b(the)g(searc)m(h)h(is)g(successful,)g(or)f(if)g(the)h(command)f(name)g
+(con)m(tains)i(one)f(or)f(more)g(slashes,)i(the)330 1640
+y(shell)g(executes)h(the)f(named)f(program)g(in)h(a)g(separate)h
+(execution)f(en)m(vironmen)m(t.)55 b(Argumen)m(t)35 b(0)330
+1750 y(is)30 b(set)h(to)h(the)e(name)h(giv)m(en,)g(and)f(the)h
+(remaining)f(argumen)m(ts)h(to)g(the)g(command)f(are)h(set)g(to)g(the)
+330 1860 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8
+b(.)199 1996 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g
+(the)f(\014le)h(is)g(not)g(in)f(executable)j(format,)f(and)e(the)h
+(\014le)g(is)g(not)330 2105 y(a)d(directory)-8 b(,)34
+b(it)f(is)g(assumed)e(to)j(b)s(e)d(a)i Fq(shell)g(script)h
+Ft(and)e(the)h(shell)f(executes)i(it)f(as)g(describ)s(ed)e(in)330
+2215 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(34.)199
+2351 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async)
+m(hronously)-8 b(,)42 b(the)c(shell)h(w)m(aits)h(for)e(the)h(command)f
+(to)330 2460 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150
+2691 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)275
+2938 y Ft(The)29 b(shell)i(has)f(an)g Fq(execution)i(en)m(vironmen)m(t)
+p Ft(,)f(whic)m(h)f(consists)h(of)g(the)f(follo)m(wing:)225
+3075 y Fp(\017)60 b Ft(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f
+(shell)h(at)g(in)m(v)m(o)s(cation,)j(as)c(mo)s(di\014ed)g(b)m(y)g
+(redirections)h(supplied)e(to)330 3185 y(the)g Fs(exec)e
+Ft(builtin)225 3321 y Fp(\017)60 b Ft(the)28 b(curren)m(t)g(w)m(orking)
+h(directory)g(as)f(set)h(b)m(y)f Fs(cd)p Ft(,)g Fs(pushd)p
+Ft(,)g(or)g Fs(popd)p Ft(,)g(or)g(inherited)g(b)m(y)g(the)h(shell)f(at)
+330 3430 y(in)m(v)m(o)s(cation)225 3566 y Fp(\017)60
+b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)g(as)h(set)g(b)m(y)f
+Fs(umask)f Ft(or)h(inherited)g(from)g(the)h(shell's)f(paren)m(t)225
+3702 y Fp(\017)60 b Ft(curren)m(t)30 b(traps)g(set)h(b)m(y)f
+Fs(trap)225 3838 y Fp(\017)60 b Ft(shell)30 b(parameters)f(that)h(are)g
+(set)g(b)m(y)g(v)-5 b(ariable)30 b(assignmen)m(t)g(or)g(with)f
+Fs(set)f Ft(or)i(inherited)f(from)g(the)330 3948 y(shell's)i(paren)m(t)
+f(in)g(the)h(en)m(vironmen)m(t)225 4084 y Fp(\017)60
+b Ft(shell)44 b(functions)f(de\014ned)f(during)h(execution)i(or)e
+(inherited)h(from)f(the)h(shell's)g(paren)m(t)f(in)h(the)330
+4194 y(en)m(vironmen)m(t)225 4330 y Fp(\017)60 b Ft(options)33
+b(enabled)g(at)h(in)m(v)m(o)s(cation)h(\(either)f(b)m(y)f(default)g(or)
+g(with)g(command-line)g(argumen)m(ts\))h(or)330 4439
+y(b)m(y)c Fs(set)225 4575 y Fp(\017)60 b Ft(options)31
+b(enabled)f(b)m(y)g Fs(shopt)f Ft(\(see)j(Section)f(4.3.2)h([The)e
+(Shopt)g(Builtin],)h(page)g(54\))225 4711 y Fp(\017)60
+b Ft(shell)31 b(aliases)g(de\014ned)f(with)g Fs(alias)f
+Ft(\(see)i(Section)g(6.6)h([Aliases],)g(page)f(79\))225
+4847 y Fp(\017)60 b Ft(v)-5 b(arious)50 b(pro)s(cess)f
+Fl(id)p Ft(s,)55 b(including)49 b(those)i(of)e(bac)m(kground)h(jobs)f
+(\(see)i(Section)g(3.2.3)g([Lists],)330 4957 y(page)31
+b(9\),)g(the)g(v)-5 b(alue)31 b(of)f Fs($$)p Ft(,)g(and)g(the)h(v)-5
+b(alue)31 b(of)f Fs($PPID)275 5121 y Ft(When)k(a)g(simple)h(command)f
+(other)g(than)g(a)h(builtin)f(or)g(shell)h(function)f(is)g(to)h(b)s(e)f
+(executed,)i(it)f(is)150 5230 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g
+(separate)h(execution)g(en)m(vironmen)m(t)g(that)f(consists)g(of)h(the)
+f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 5340 y(noted,)31
+b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g(the)g(shell.)p
+eop end
+%%Page: 32 38
+TeXDict begin 32 37 bop 150 -116 a Ft(32)2572 b(Bash)31
+b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(the)31
+b(shell's)h(op)s(en)e(\014les,)i(plus)e(an)m(y)h(mo)s(di\014cations)h
+(and)e(additions)h(sp)s(eci\014ed)g(b)m(y)g(redirections)g(to)330
+408 y(the)g(command)225 546 y Fp(\017)60 b Ft(the)31
+b(curren)m(t)f(w)m(orking)g(directory)225 684 y Fp(\017)60
+b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225
+821 y Fp(\017)60 b Ft(shell)32 b(v)-5 b(ariables)33 b(and)e(functions)h
+(mark)m(ed)g(for)g(exp)s(ort,)g(along)h(with)f(v)-5 b(ariables)32
+b(exp)s(orted)g(for)g(the)330 931 y(command,)e(passed)g(in)g(the)h(en)m
+(vironmen)m(t)g(\(see)g(Section)g(3.7.4)i([En)m(vironmen)m(t],)e(page)g
+(32\))225 1069 y Fp(\017)60 b Ft(traps)31 b(caugh)m(t)h(b)m(y)f(the)g
+(shell)h(are)f(reset)h(to)g(the)f(v)-5 b(alues)32 b(inherited)e(from)h
+(the)g(shell's)h(paren)m(t,)g(and)330 1178 y(traps)e(ignored)h(b)m(y)f
+(the)g(shell)h(are)g(ignored)275 1347 y(A)41 b(command)g(in)m(v)m(ok)m
+(ed)i(in)e(this)h(separate)g(en)m(vironmen)m(t)g(cannot)g(a\013ect)h
+(the)f(shell's)g(execution)150 1457 y(en)m(vironmen)m(t.)275
+1597 y(Command)35 b(substitution,)j(commands)e(group)s(ed)f(with)i
+(paren)m(theses,)h(and)e(async)m(hronous)g(com-)150 1707
+y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i(subshell)e(en)m(vironmen)m
+(t)h(that)h(is)f(a)g(duplicate)h(of)f(the)g(shell)g(en)m(vironmen)m(t,)
+150 1817 y(except)i(that)g(traps)f(caugh)m(t)h(b)m(y)f(the)h(shell)f
+(are)g(reset)h(to)g(the)f(v)-5 b(alues)35 b(that)g(the)f(shell)h
+(inherited)e(from)150 1926 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s
+(cation.)49 b(Builtin)32 b(commands)g(that)h(are)g(in)m(v)m(ok)m(ed)h
+(as)e(part)g(of)h(a)f(pip)s(eline)g(are)h(also)150 2036
+y(executed)41 b(in)f(a)h(subshell)e(en)m(vironmen)m(t.)72
+b(Changes)40 b(made)g(to)h(the)g(subshell)e(en)m(vironmen)m(t)i(cannot)
+150 2145 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m
+(t.)275 2286 y(Subshells)24 b(spa)m(wned)h(to)i(execute)g(command)f
+(substitutions)g(inherit)g(the)g(v)-5 b(alue)26 b(of)g(the)h(`)p
+Fs(-e)p Ft(')e(option)150 2396 y(from)20 b(the)h(paren)m(t)g(shell.)37
+b(When)21 b(not)f(in)h Fl(posix)f Ft(mo)s(de,)i(Bash)f(clears)g(the)g
+(`)p Fs(-e)p Ft(')f(option)h(in)g(suc)m(h)f(subshells.)275
+2536 y(If)38 b(a)h(command)f(is)g(follo)m(w)m(ed)j(b)m(y)d(a)h(`)p
+Fs(&)p Ft(')g(and)f(job)g(con)m(trol)i(is)e(not)h(activ)m(e,)k(the)c
+(default)g(standard)150 2646 y(input)e(for)g(the)h(command)f(is)h(the)g
+(empt)m(y)g(\014le)f(`)p Fs(/dev/null)p Ft('.)61 b(Otherwise,)39
+b(the)f(in)m(v)m(ok)m(ed)h(command)150 2756 y(inherits)30
+b(the)h(\014le)f(descriptors)g(of)h(the)f(calling)i(shell)f(as)f(mo)s
+(di\014ed)g(b)m(y)g(redirections.)150 2992 y Fk(3.7.4)63
+b(En)m(vironmen)m(t)275 3243 y Ft(When)31 b(a)g(program)h(is)f(in)m(v)m
+(ok)m(ed)i(it)f(is)f(giv)m(en)h(an)g(arra)m(y)g(of)f(strings)g(called)i
+(the)e Fq(en)m(vironmen)m(t)p Ft(.)45 b(This)150 3352
+y(is)30 b(a)h(list)g(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f
+(form)g Fs(name=value)p Ft(.)275 3493 y(Bash)39 b(pro)m(vides)g(sev)m
+(eral)i(w)m(a)m(ys)g(to)f(manipulate)f(the)h(en)m(vironmen)m(t.)69
+b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 3603
+y(scans)g(its)h(o)m(wn)f(en)m(vironmen)m(t)h(and)f(creates)i(a)f
+(parameter)f(for)g(eac)m(h)i(name)e(found,)i(automatically)150
+3712 y(marking)26 b(it)g(for)g Fq(exp)s(ort)h Ft(to)g(c)m(hild)f(pro)s
+(cesses.)39 b(Executed)26 b(commands)g(inherit)g(the)g(en)m(vironmen)m
+(t.)39 b(The)150 3822 y Fs(export)c Ft(and)i(`)p Fs(declare)29
+b(-x)p Ft(')36 b(commands)h(allo)m(w)i(parameters)e(and)g(functions)g
+(to)h(b)s(e)e(added)h(to)h(and)150 3931 y(deleted)21
+b(from)f(the)h(en)m(vironmen)m(t.)38 b(If)20 b(the)h(v)-5
+b(alue)21 b(of)g(a)g(parameter)g(in)f(the)g(en)m(vironmen)m(t)i(is)e
+(mo)s(di\014ed,)i(the)150 4041 y(new)31 b(v)-5 b(alue)32
+b(b)s(ecomes)f(part)h(of)f(the)h(en)m(vironmen)m(t,)g(replacing)h(the)e
+(old.)44 b(The)31 b(en)m(vironmen)m(t)h(inherited)150
+4151 y(b)m(y)f(an)m(y)g(executed)h(command)f(consists)g(of)g(the)g
+(shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f(v)-5
+b(alues)31 b(ma)m(y)h(b)s(e)150 4260 y(mo)s(di\014ed)26
+b(in)g(the)h(shell,)h(less)f(an)m(y)g(pairs)f(remo)m(v)m(ed)i(b)m(y)f
+(the)g Fs(unset)e Ft(and)h(`)p Fs(export)j(-n)p Ft(')e(commands,)g
+(plus)150 4370 y(an)m(y)k(additions)f(via)h(the)g Fs(export)d
+Ft(and)i(`)p Fs(declare)f(-x)p Ft(')h(commands.)275 4510
+y(The)j(en)m(vironmen)m(t)i(for)f(an)m(y)g(simple)h(command)f(or)g
+(function)g(ma)m(y)g(b)s(e)g(augmen)m(ted)h(temp)s(orarily)150
+4620 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h
+(as)e(describ)s(ed)g(in)g(Section)i(3.4)g([Shell)e(P)m(arameters],)150
+4730 y(page)g(16.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g
+(a\013ect)f(only)g(the)f(en)m(vironmen)m(t)h(seen)g(b)m(y)f(that)h
+(command.)275 4870 y(If)d(the)h(`)p Fs(-k)p Ft(')g(option)g(is)g(set)g
+(\(see)h(Section)f(4.3.1)i([The)e(Set)g(Builtin],)h(page)f(51\),)i
+(then)e(all)g(parameter)150 4980 y(assignmen)m(ts)i(are)g(placed)h(in)e
+(the)h(en)m(vironmen)m(t)g(for)g(a)g(command,)f(not)h(just)f(those)i
+(that)f(precede)g(the)150 5090 y(command)g(name.)275
+5230 y(When)f(Bash)h(in)m(v)m(ok)m(es)i(an)e(external)g(command,)g(the)
+g(v)-5 b(ariable)31 b(`)p Fs($_)p Ft(')f(is)g(set)g(to)h(the)f(full)f
+(path)h(name)150 5340 y(of)h(the)f(command)g(and)g(passed)g(to)h(that)g
+(command)f(in)g(its)h(en)m(vironmen)m(t.)p eop end
+%%Page: 33 39
+TeXDict begin 33 38 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)150 299
+y Fk(3.7.5)63 b(Exit)40 b(Status)275 539 y Ft(The)24
+b(exit)i(status)f(of)g(an)g(executed)h(command)e(is)h(the)h(v)-5
+b(alue)25 b(returned)f(b)m(y)h(the)g Fq(w)m(aitpid)k
+Ft(system)c(call)150 648 y(or)e(equiv)-5 b(alen)m(t)25
+b(function.)38 b(Exit)24 b(statuses)g(fall)f(b)s(et)m(w)m(een)h(0)g
+(and)f(255,)j(though,)f(as)e(explained)h(b)s(elo)m(w,)h(the)150
+758 y(shell)35 b(ma)m(y)g(use)f(v)-5 b(alues)35 b(ab)s(o)m(v)m(e)g(125)
+h(sp)s(ecially)-8 b(.)54 b(Exit)35 b(statuses)g(from)f(shell)h
+(builtins)f(and)f(comp)s(ound)150 867 y(commands)j(are)g(also)h
+(limited)g(to)g(this)f(range.)58 b(Under)36 b(certain)h(circumstances,)
+h(the)e(shell)h(will)f(use)150 977 y(sp)s(ecial)31 b(v)-5
+b(alues)31 b(to)g(indicate)g(sp)s(eci\014c)f(failure)h(mo)s(des.)275
+1107 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s(oses,)e(a)j(command)e
+(whic)m(h)h(exits)g(with)g(a)g(zero)g(exit)h(status)f(has)f(succeeded.)
+150 1217 y(A)e(non-zero)h(exit)g(status)g(indicates)g(failure.)40
+b(This)28 b(seemingly)i(coun)m(ter-in)m(tuitiv)m(e)i(sc)m(heme)e(is)f
+(used)g(so)150 1326 y(there)34 b(is)g(one)g(w)m(ell-de\014ned)g(w)m(a)m
+(y)g(to)h(indicate)g(success)f(and)f(a)h(v)-5 b(ariet)m(y)35
+b(of)f(w)m(a)m(ys)h(to)f(indicate)h(v)-5 b(arious)150
+1436 y(failure)38 b(mo)s(des.)62 b(When)38 b(a)g(command)f(terminates)i
+(on)e(a)i(fatal)g(signal)f(whose)g(n)m(um)m(b)s(er)e(is)i
+Fq(N)p Ft(,)g(Bash)150 1546 y(uses)30 b(the)g(v)-5 b(alue)31
+b(128)p Fs(+)p Fq(N)42 b Ft(as)30 b(the)h(exit)g(status.)275
+1676 y(If)k(a)h(command)g(is)g(not)g(found,)g(the)g(c)m(hild)h(pro)s
+(cess)e(created)i(to)g(execute)g(it)g(returns)d(a)j(status)f(of)150
+1785 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)f(but)h(is)g(not)h
+(executable,)h(the)f(return)e(status)i(is)f(126.)275
+1916 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f
+(during)g(expansion)h(or)g(redirection,)i(the)f(exit)g(status)150
+2025 y(is)c(greater)i(than)e(zero.)275 2155 y(The)38
+b(exit)h(status)g(is)g(used)f(b)m(y)g(the)h(Bash)g(conditional)h
+(commands)e(\(see)h(Section)h(3.2.4.2)h([Con-)150 2265
+y(ditional)i(Constructs],)h(page)f(10\))g(and)e(some)i(of)f(the)g(list)
+g(constructs)g(\(see)h(Section)f(3.2.3)i([Lists],)150
+2375 y(page)31 b(9\).)275 2505 y(All)40 b(of)g(the)h(Bash)f(builtins)f
+(return)g(an)h(exit)h(status)g(of)f(zero)h(if)f(they)g(succeed)g(and)g
+(a)g(non-zero)150 2614 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m
+(y)g(b)s(e)f(used)g(b)m(y)g(the)h(conditional)h(and)e(list)h
+(constructs.)50 b(All)35 b(builtins)150 2724 y(return)29
+b(an)i(exit)g(status)g(of)f(2)h(to)g(indicate)g(incorrect)h(usage.)150
+2935 y Fk(3.7.6)63 b(Signals)275 3175 y Ft(When)27 b(Bash)h(is)h(in)m
+(teractiv)m(e,)i(in)d(the)g(absence)h(of)f(an)m(y)g(traps,)h(it)f
+(ignores)h Fs(SIGTERM)d Ft(\(so)i(that)h(`)p Fs(kill)150
+3285 y(0)p Ft(')k(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j
+(shell\),)f(and)d Fs(SIGINT)f Ft(is)i(caugh)m(t)h(and)f(handled)f(\(so)
+h(that)h(the)f Fs(wait)150 3394 y Ft(builtin)24 b(is)h(in)m
+(terruptible\).)39 b(When)24 b(Bash)g(receiv)m(es)j(a)d
+Fs(SIGINT)p Ft(,)h(it)g(breaks)f(out)h(of)f(an)m(y)h(executing)h(lo)s
+(ops.)150 3504 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g
+Fs(SIGQUIT)p Ft(.)42 b(If)32 b(job)f(con)m(trol)i(is)e(in)h(e\013ect)h
+(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 3614 y(page)f(89\),)h
+(Bash)e(ignores)h Fs(SIGTTIN)p Ft(,)e Fs(SIGTTOU)p Ft(,)g(and)g
+Fs(SIGTSTP)p Ft(.)275 3744 y(Non-builtin)i(commands)g(started)g(b)m(y)g
+(Bash)h(ha)m(v)m(e)g(signal)g(handlers)e(set)i(to)g(the)g(v)-5
+b(alues)31 b(inherited)150 3853 y(b)m(y)37 b(the)h(shell)g(from)f(its)h
+(paren)m(t.)62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f
+(e\013ect,)k(async)m(hronous)c(commands)150 3963 y(ignore)f
+Fs(SIGINT)e Ft(and)h Fs(SIGQUIT)e Ft(in)j(addition)f(to)i(these)f
+(inherited)f(handlers.)55 b(Commands)35 b(run)f(as)i(a)150
+4073 y(result)27 b(of)h(command)f(substitution)h(ignore)g(the)g(k)m
+(eyb)s(oard-generated)g(job)g(con)m(trol)h(signals)f
+Fs(SIGTTIN)p Ft(,)150 4182 y Fs(SIGTTOU)p Ft(,)h(and)g
+Fs(SIGTSTP)p Ft(.)275 4312 y(The)h(shell)i(exits)g(b)m(y)f(default)g
+(up)s(on)f(receipt)i(of)f(a)h Fs(SIGHUP)p Ft(.)42 b(Before)32
+b(exiting,)h(an)e(in)m(teractiv)m(e)j(shell)150 4422
+y(resends)41 b(the)i Fs(SIGHUP)e Ft(to)i(all)g(jobs,)i(running)c(or)h
+(stopp)s(ed.)76 b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g
+Fs(SIGCONT)d Ft(to)150 4532 y(ensure)32 b(that)h(they)g(receiv)m(e)i
+(the)e Fs(SIGHUP)p Ft(.)47 b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell)
+g(from)g(sending)f(the)h Fs(SIGHUP)e Ft(signal)150 4641
+y(to)i(a)g(particular)g(job,)g(it)g(should)f(b)s(e)g(remo)m(v)m(ed)h
+(from)g(the)f(jobs)g(table)i(with)e(the)h Fs(disown)e
+Ft(builtin)h(\(see)150 4751 y(Section)f(7.2)g([Job)f(Con)m(trol)h
+(Builtins],)g(page)g(90\))h(or)e(mark)m(ed)g(to)h(not)f(receiv)m(e)i
+Fs(SIGHUP)d Ft(using)h Fs(disown)150 4860 y(-h)p Ft(.)275
+4991 y(If)38 b(the)h Fs(huponexit)e Ft(shell)i(option)g(has)g(b)s(een)f
+(set)i(with)f Fs(shopt)e Ft(\(see)j(Section)g(4.3.2)h([The)e(Shopt)150
+5100 y(Builtin],)31 b(page)g(54\),)h(Bash)f(sends)e(a)i
+Fs(SIGHUP)e Ft(to)i(all)g(jobs)f(when)f(an)i(in)m(teractiv)m(e)i(login)
+e(shell)g(exits.)275 5230 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g
+(command)f(to)i(complete)g(and)e(receiv)m(es)j(a)e(signal)h(for)e(whic)
+m(h)h(a)g(trap)150 5340 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g
+(not)g(b)s(e)f(executed)i(un)m(til)f(the)g(command)f(completes.)55
+b(When)35 b(Bash)g(is)p eop end
+%%Page: 34 40
+TeXDict begin 34 39 bop 150 -116 a Ft(34)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y(w)m(aiting)38 b(for)f(an)g(async)m
+(hronous)g(command)g(via)h(the)f Fs(wait)f Ft(builtin,)i(the)g
+(reception)g(of)f(a)g(signal)h(for)150 408 y(whic)m(h)d(a)g(trap)g(has)
+g(b)s(een)f(set)h(will)h(cause)f(the)g Fs(wait)f Ft(builtin)h(to)g
+(return)f(immediately)i(with)f(an)g(exit)150 518 y(status)c(greater)g
+(than)f(128,)i(immediately)g(after)f(whic)m(h)f(the)h(trap)f(is)g
+(executed.)150 775 y Fr(3.8)68 b(Shell)45 b(Scripts)275
+1020 y Ft(A)c(shell)h(script)g(is)g(a)g(text)h(\014le)f(con)m(taining)h
+(shell)f(commands.)75 b(When)41 b(suc)m(h)h(a)g(\014le)g(is)g(used)f
+(as)150 1129 y(the)33 b(\014rst)f(non-option)h(argumen)m(t)h(when)e(in)
+m(v)m(oking)i(Bash,)g(and)e(neither)h(the)g(`)p Fs(-c)p
+Ft(')g(nor)g(`)p Fs(-s)p Ft(')f(option)i(is)150 1239
+y(supplied)j(\(see)j(Section)g(6.1)f([In)m(v)m(oking)h(Bash],)h(page)f
+(71\),)i(Bash)d(reads)f(and)g(executes)i(commands)150
+1348 y(from)31 b(the)h(\014le,)h(then)e(exits.)46 b(This)31
+b(mo)s(de)g(of)h(op)s(eration)h(creates)g(a)f(non-in)m(teractiv)m(e)i
+(shell.)45 b(The)32 b(shell)150 1458 y(\014rst)26 b(searc)m(hes)h(for)f
+(the)g(\014le)h(in)f(the)g(curren)m(t)h(directory)-8
+b(,)28 b(and)e(lo)s(oks)g(in)h(the)f(directories)h(in)f
+Fs($PATH)f Ft(if)i(not)150 1567 y(found)i(there.)275
+1702 y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f
+(sp)s(ecial)i(parameter)f Fs(0)f Ft(to)h(the)g(name)g(of)g(the)g
+(\014le,)150 1812 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j
+(and)d(the)h(p)s(ositional)g(parameters)f(are)h(set)g(to)g(the)g
+(remain-)150 1921 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m
+(en.)67 b(If)39 b(no)g(additional)g(argumen)m(ts)h(are)f(supplied,)h
+(the)f(p)s(ositional)150 2031 y(parameters)31 b(are)f(unset.)275
+2165 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m
+(y)e(using)g(the)h Fs(chmod)e Ft(command)h(to)h(turn)e(on)i(the)150
+2275 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
+(\014le)f(while)g(searc)m(hing)h(the)f Fs($PATH)f Ft(for)h(a)h
+(command,)h(it)150 2384 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h
+(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 2519
+y Fs(filename)46 b Fj(arguments)150 2653 y Ft(is)30 b(equiv)-5
+b(alen)m(t)32 b(to)f(executing)390 2788 y Fs(bash)47
+b(filename)e Fj(arguments)150 2922 y Ft(if)30 b Fs(filename)d
+Ft(is)j(an)f(executable)j(shell)e(script.)40 b(This)29
+b(subshell)g(reinitializes)i(itself,)g(so)f(that)h(the)e(e\013ect)150
+3032 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok)
+m(ed)h(to)h(in)m(terpret)e(the)h(script,)h(with)e(the)h(exception)h
+(that)f(the)150 3142 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s
+(ered)h(b)m(y)g(the)g(paren)m(t)g(\(see)h(the)f(description)g(of)g
+Fs(hash)f Ft(in)h(Section)h(4.1)150 3251 y([Bourne)30
+b(Shell)h(Builtins],)g(page)g(35\))h(are)e(retained)h(b)m(y)f(the)h(c)m
+(hild.)275 3386 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g
+(a)g(part)f(of)h(the)g(op)s(erating)g(system's)f(command)h(execution)
+150 3495 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h
+(script)f(b)s(egins)g(with)g(the)g(t)m(w)m(o)i(c)m(haracters)g(`)p
+Fs(#!)p Ft(',)f(the)g(remainder)150 3605 y(of)d(the)g(line)h(sp)s
+(eci\014es)e(an)h(in)m(terpreter)g(for)g(the)g(program.)43
+b(Th)m(us,)30 b(y)m(ou)h(can)h(sp)s(ecify)e(Bash,)i Fs(awk)p
+Ft(,)e(P)m(erl,)150 3714 y(or)g(some)h(other)g(in)m(terpreter)g(and)e
+(write)i(the)f(rest)h(of)g(the)f(script)g(\014le)h(in)f(that)h
+(language.)275 3849 y(The)40 b(argumen)m(ts)h(to)g(the)g(in)m
+(terpreter)g(consist)g(of)g(a)g(single)h(optional)f(argumen)m(t)h
+(follo)m(wing)g(the)150 3958 y(in)m(terpreter)33 b(name)h(on)f(the)g
+(\014rst)f(line)i(of)f(the)g(script)g(\014le,)h(follo)m(w)m(ed)h(b)m(y)
+e(the)g(name)g(of)g(the)h(script)f(\014le,)150 4068 y(follo)m(w)m(ed)g
+(b)m(y)f(the)f(rest)h(of)g(the)f(argumen)m(ts.)45 b(Bash)31
+b(will)h(p)s(erform)e(this)i(action)h(on)e(op)s(erating)h(systems)150
+4178 y(that)24 b(do)g(not)f(handle)g(it)h(themselv)m(es.)40
+b(Note)25 b(that)f(some)g(older)g(v)m(ersions)f(of)h(Unix)f(limit)i
+(the)f(in)m(terpreter)150 4287 y(name)30 b(and)g(argumen)m(t)h(to)g(a)g
+(maxim)m(um)f(of)h(32)g(c)m(haracters.)275 4422 y(Bash)h(scripts)g
+(often)g(b)s(egin)g(with)g Fs(#!)e(/bin/bash)g Ft(\(assuming)i(that)h
+(Bash)f(has)g(b)s(een)f(installed)i(in)150 4531 y(`)p
+Fs(/bin)p Ft('\),)25 b(since)e(this)g(ensures)f(that)i(Bash)f(will)h(b)
+s(e)e(used)h(to)h(in)m(terpret)f(the)g(script,)i(ev)m(en)f(if)f(it)h
+(is)f(executed)150 4641 y(under)29 b(another)h(shell.)p
+eop end
+%%Page: 35 41
+TeXDict begin 35 40 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(35)150 299 y Fo(4)80
+b(Shell)53 b(Builtin)f(Commands)275 535 y Ft(Builtin)25
+b(commands)f(are)h(con)m(tained)h(within)e(the)h(shell)g(itself.)40
+b(When)24 b(the)h(name)g(of)g(a)g(builtin)f(com-)150
+645 y(mand)i(is)i(used)e(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)f
+(simple)h(command)f(\(see)h(Section)g(3.2.1)h([Simple)f(Commands],)150
+754 y(page)21 b(8\),)j(the)d(shell)g(executes)h(the)f(command)f
+(directly)-8 b(,)24 b(without)d(in)m(v)m(oking)h(another)f(program.)37
+b(Builtin)150 864 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g
+(functionalit)m(y)h(imp)s(ossible)e(or)h(incon)m(v)m(enien)m(t)h(to)f
+(obtain)150 974 y(with)30 b(separate)h(utilities.)275
+1109 y(This)c(section)j(brie\015y)e(describ)s(es)g(the)h(builtins)f
+(whic)m(h)g(Bash)h(inherits)f(from)g(the)h(Bourne)g(Shell,)g(as)150
+1218 y(w)m(ell)i(as)g(the)g(builtin)e(commands)h(whic)m(h)h(are)f
+(unique)g(to)h(or)f(ha)m(v)m(e)i(b)s(een)d(extended)i(in)f(Bash.)275
+1354 y(Sev)m(eral)45 b(builtin)e(commands)h(are)h(describ)s(ed)e(in)h
+(other)g(c)m(hapters:)69 b(builtin)43 b(commands)h(whic)m(h)150
+1463 y(pro)m(vide)23 b(the)h(Bash)f(in)m(terface)i(to)f(the)g(job)f
+(con)m(trol)i(facilities)g(\(see)f(Section)h(7.2)f([Job)f(Con)m(trol)h
+(Builtins],)150 1573 y(page)40 b(90\),)j(the)c(directory)h(stac)m(k)g
+(\(see)g(Section)g(6.8.1)h([Directory)g(Stac)m(k)f(Builtins],)i(page)e
+(82\),)j(the)150 1682 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
+([Bash)f(History)g(Builtins],)h(page)g(121\),)h(and)d(the)h
+(programmable)150 1792 y(completion)32 b(facilities)g(\(see)g(Section)f
+(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(116\).)275
+1927 y(Man)m(y)f(of)f(the)h(builtins)e(ha)m(v)m(e)j(b)s(een)e(extended)
+g(b)m(y)g Fl(posix)g Ft(or)g(Bash.)275 2062 y(Unless)20
+b(otherwise)h(noted,)h(eac)m(h)g(builtin)e(command)g(do)s(cumen)m(ted)g
+(as)h(accepting)h(options)e(preceded)150 2172 y(b)m(y)31
+b(`)p Fs(-)p Ft(')g(accepts)i(`)p Fs(--)p Ft(')e(to)h(signify)f(the)h
+(end)e(of)i(the)f(options.)44 b(F)-8 b(or)32 b(example,)g(the)f
+Fs(:)p Ft(,)h Fs(true)p Ft(,)e Fs(false)p Ft(,)h(and)150
+2282 y Fs(test)e Ft(builtins)h(do)g(not)h(accept)h(options.)150
+2541 y Fr(4.1)68 b(Bourne)45 b(Shell)g(Builtins)275 2786
+y Ft(The)31 b(follo)m(wing)i(shell)e(builtin)h(commands)f(are)h
+(inherited)f(from)g(the)h(Bourne)f(Shell.)45 b(These)31
+b(com-)150 2895 y(mands)e(are)i(implemen)m(ted)g(as)g(sp)s(eci\014ed)e
+(b)m(y)i(the)f Fl(posix)g Ft(standard.)150 3056 y Fs(:)g
+Ft(\(a)h(colon\))870 3165 y Fs(:)47 b([)p Fj(arguments)11
+b Fs(])630 3300 y Ft(Do)43 b(nothing)f(b)s(ey)m(ond)g(expanding)f
+Fq(argumen)m(ts)46 b Ft(and)c(p)s(erforming)f(redirections.)76
+b(The)630 3410 y(return)29 b(status)i(is)f(zero.)150
+3570 y Fs(.)g Ft(\(a)h(p)s(erio)s(d\))870 3679 y Fs(.)47
+b Fj(filename)57 b Fs([)p Fj(arguments)11 b Fs(])630
+3814 y Ft(Read)34 b(and)f(execute)i(commands)e(from)g(the)h
+Fq(\014lename)39 b Ft(argumen)m(t)34 b(in)f(the)h(curren)m(t)g(shell)
+630 3924 y(con)m(text.)45 b(If)31 b Fq(\014lename)37
+b Ft(do)s(es)31 b(not)g(con)m(tain)i(a)e(slash,)h(the)g
+Fs(PATH)e Ft(v)-5 b(ariable)32 b(is)f(used)f(to)i(\014nd)630
+4033 y Fq(\014lename)p Ft(.)52 b(When)34 b(Bash)g(is)h(not)f(in)g
+Fl(posix)f Ft(mo)s(de,)i(the)g(curren)m(t)f(directory)g(is)g(searc)m
+(hed)630 4143 y(if)d Fq(\014lename)36 b Ft(is)31 b(not)h(found)d(in)i
+Fs($PATH)p Ft(.)41 b(If)31 b(an)m(y)g Fq(argumen)m(ts)k
+Ft(are)c(supplied,)f(they)i(b)s(ecome)630 4253 y(the)e(p)s(ositional)h
+(parameters)g(when)e Fq(\014lename)35 b Ft(is)30 b(executed.)42
+b(Otherwise)30 b(the)g(p)s(ositional)630 4362 y(parameters)43
+b(are)h(unc)m(hanged.)79 b(The)42 b(return)g(status)i(is)f(the)g(exit)h
+(status)g(of)f(the)g(last)630 4472 y(command)37 b(executed,)k(or)c
+(zero)h(if)g(no)f(commands)g(are)h(executed.)63 b(If)36
+b Fq(\014lename)43 b Ft(is)38 b(not)630 4581 y(found,)22
+b(or)f(cannot)g(b)s(e)f(read,)j(the)e(return)f(status)h(is)g(non-zero.)
+38 b(This)20 b(builtin)h(is)f(equiv)-5 b(alen)m(t)630
+4691 y(to)31 b Fs(source)p Ft(.)150 4851 y Fs(break)870
+4986 y(break)46 b([)p Fj(n)11 b Fs(])630 5121 y Ft(Exit)45
+b(from)f(a)g Fs(for)p Ft(,)k Fs(while)p Ft(,)e Fs(until)p
+Ft(,)h(or)d Fs(select)f Ft(lo)s(op.)83 b(If)44 b Fq(n)g
+Ft(is)g(supplied,)j(the)e Fq(n)p Ft(th)630 5230 y(enclosing)c(lo)s(op)f
+(is)h(exited.)70 b Fq(n)40 b Ft(m)m(ust)g(b)s(e)f(greater)j(than)d(or)i
+(equal)f(to)h(1.)70 b(The)40 b(return)630 5340 y(status)31
+b(is)f(zero)h(unless)f Fq(n)g Ft(is)g(not)h(greater)g(than)g(or)f
+(equal)h(to)g(1.)p eop end
+%%Page: 36 42
+TeXDict begin 36 41 bop 150 -116 a Ft(36)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(cd)870 430 y(cd)47
+b([-L|-P])f([)p Fj(directory)11 b Fs(])630 562 y Ft(Change)37
+b(the)g(curren)m(t)f(w)m(orking)i(directory)f(to)h Fq(directory)p
+Ft(.)60 b(If)37 b Fq(directory)45 b Ft(is)37 b(not)g(giv)m(en,)630
+671 y(the)31 b(v)-5 b(alue)31 b(of)g(the)g Fs(HOME)e
+Ft(shell)i(v)-5 b(ariable)32 b(is)f(used.)40 b(If)31
+b(the)g(shell)g(v)-5 b(ariable)31 b Fs(CDPATH)e Ft(exists,)630
+781 y(it)f(is)f(used)f(as)h(a)h(searc)m(h)f(path.)40
+b(If)26 b Fq(directory)35 b Ft(b)s(egins)27 b(with)g(a)g(slash,)h
+Fs(CDPATH)d Ft(is)i(not)g(used.)630 913 y(The)h(`)p Fs(-P)p
+Ft(')h(option)g(means)f(to)h(not)g(follo)m(w)h(sym)m(b)s(olic)f(links;)
+g(sym)m(b)s(olic)g(links)f(are)h(follo)m(w)m(ed)630 1022
+y(b)m(y)23 b(default)h(or)g(with)f(the)h(`)p Fs(-L)p
+Ft(')f(option.)39 b(If)23 b Fq(directory)32 b Ft(is)23
+b(`)p Fs(-)p Ft(',)j(it)e(is)f(equiv)-5 b(alen)m(t)25
+b(to)g Fs($OLDPWD)p Ft(.)630 1154 y(If)33 b(a)h(non-empt)m(y)g
+(directory)g(name)f(from)g Fs(CDPATH)f Ft(is)h(used,)h(or)g(if)f(`)p
+Fs(-)p Ft(')h(is)f(the)h(\014rst)f(argu-)630 1263 y(men)m(t,)28
+b(and)e(the)h(directory)g(c)m(hange)h(is)f(successful,)h(the)f
+(absolute)g(pathname)g(of)f(the)h(new)630 1373 y(w)m(orking)k
+(directory)g(is)f(written)g(to)i(the)e(standard)g(output.)630
+1504 y(The)f(return)g(status)h(is)f(zero)i(if)e(the)h(directory)g(is)g
+(successfully)g(c)m(hanged,)g(non-zero)g(oth-)630 1614
+y(erwise.)150 1767 y Fs(continue)870 1899 y(continue)46
+b([)p Fj(n)11 b Fs(])630 2030 y Ft(Resume)32 b(the)g(next)g(iteration)i
+(of)e(an)g(enclosing)h Fs(for)p Ft(,)f Fs(while)p Ft(,)f
+Fs(until)p Ft(,)g(or)h Fs(select)f Ft(lo)s(op.)630 2140
+y(If)f Fq(n)h Ft(is)g(supplied,)e(the)j(execution)g(of)f(the)g
+Fq(n)p Ft(th)f(enclosing)i(lo)s(op)f(is)f(resumed.)42
+b Fq(n)30 b Ft(m)m(ust)h(b)s(e)630 2250 y(greater)39
+b(than)f(or)g(equal)g(to)h(1.)63 b(The)38 b(return)e(status)j(is)e
+(zero)i(unless)e Fq(n)h Ft(is)g(not)g(greater)630 2359
+y(than)30 b(or)g(equal)h(to)g(1.)150 2513 y Fs(eval)870
+2644 y(eval)47 b([)p Fj(arguments)11 b Fs(])630 2776
+y Ft(The)25 b(argumen)m(ts)h(are)g(concatenated)i(together)f(in)m(to)f
+(a)g(single)h(command,)f(whic)m(h)g(is)f(then)630 2885
+y(read)35 b(and)g(executed,)j(and)d(its)h(exit)g(status)g(returned)e
+(as)h(the)h(exit)g(status)g(of)g Fs(eval)p Ft(.)54 b(If)630
+2995 y(there)31 b(are)f(no)h(argumen)m(ts)f(or)h(only)f(empt)m(y)h
+(argumen)m(ts,)g(the)f(return)g(status)g(is)h(zero.)150
+3148 y Fs(exec)870 3280 y(exec)47 b([-cl])f([-a)h Fj(name)11
+b Fs(])46 b([)p Fj(command)56 b Fs([)p Fj(arguments)11
+b Fs(]])630 3411 y Ft(If)36 b Fq(command)k Ft(is)c(supplied,)h(it)g
+(replaces)h(the)e(shell)h(without)f(creating)i(a)f(new)f(pro)s(cess.)
+630 3521 y(If)h(the)g(`)p Fs(-l)p Ft(')g(option)h(is)f(supplied,)g(the)
+h(shell)f(places)h(a)g(dash)e(at)i(the)f(b)s(eginning)f(of)i(the)630
+3630 y(zeroth)e(argumen)m(t)h(passed)e(to)h Fq(command)p
+Ft(.)57 b(This)35 b(is)h(what)f(the)h Fs(login)e Ft(program)i(do)s(es.)
+630 3740 y(The)d(`)p Fs(-c)p Ft(')h(option)g(causes)g
+Fq(command)j Ft(to)e(b)s(e)e(executed)i(with)e(an)h(empt)m(y)g(en)m
+(vironmen)m(t.)630 3850 y(If)d(`)p Fs(-a)p Ft(')h(is)g(supplied,)f(the)
+h(shell)g(passes)f Fq(name)37 b Ft(as)32 b(the)g(zeroth)g(argumen)m(t)g
+(to)h Fq(command)p Ft(.)630 3959 y(If)45 b(no)g Fq(command)k
+Ft(is)c(sp)s(eci\014ed,)k(redirections)d(ma)m(y)g(b)s(e)f(used)f(to)j
+(a\013ect)g(the)e(curren)m(t)630 4069 y(shell)33 b(en)m(vironmen)m(t.)
+48 b(If)32 b(there)h(are)g(no)f(redirection)h(errors,)g(the)g(return)e
+(status)i(is)g(zero;)630 4178 y(otherwise)e(the)f(return)g(status)g(is)
+h(non-zero.)150 4332 y Fs(exit)870 4463 y(exit)47 b([)p
+Fj(n)11 b Fs(])630 4595 y Ft(Exit)30 b(the)g(shell,)h(returning)d(a)j
+(status)f(of)g Fq(n)f Ft(to)h(the)g(shell's)g(paren)m(t.)41
+b(If)30 b Fq(n)f Ft(is)h(omitted,)h(the)630 4704 y(exit)c(status)g(is)g
+(that)g(of)g(the)g(last)g(command)f(executed.)41 b(An)m(y)26
+b(trap)h(on)f Fs(EXIT)f Ft(is)i(executed)630 4814 y(b)s(efore)j(the)h
+(shell)f(terminates.)150 4967 y Fs(export)870 5099 y(export)46
+b([-fn])g([-p])h([)p Fj(name)11 b Fs([=)p Fj(value)g
+Fs(]])630 5230 y Ft(Mark)40 b(eac)m(h)h Fq(name)k Ft(to)40
+b(b)s(e)f(passed)g(to)i(c)m(hild)f(pro)s(cesses)f(in)g(the)h(en)m
+(vironmen)m(t.)70 b(If)39 b(the)630 5340 y(`)p Fs(-f)p
+Ft(')29 b(option)h(is)g(supplied,)f(the)g Fq(name)5 b
+Ft(s)30 b(refer)f(to)h(shell)g(functions;)f(otherwise)h(the)g(names)p
+eop end
+%%Page: 37 43
+TeXDict begin 37 42 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(37)630 299 y(refer)36
+b(to)i(shell)e(v)-5 b(ariables.)60 b(The)36 b(`)p Fs(-n)p
+Ft(')h(option)g(means)f(to)h(no)g(longer)g(mark)f(eac)m(h)i
+Fq(name)630 408 y Ft(for)h(exp)s(ort.)65 b(If)39 b(no)g
+Fq(names)j Ft(are)d(supplied,)h(or)f(if)g(the)g(`)p Fs(-p)p
+Ft(')g(option)g(is)g(giv)m(en,)j(a)d(list)h(of)630 518
+y(exp)s(orted)c(names)h(is)f(displa)m(y)m(ed.)60 b(The)37
+b(`)p Fs(-p)p Ft(')f(option)h(displa)m(ys)g(output)f(in)g(a)h(form)f
+(that)630 628 y(ma)m(y)c(b)s(e)e(reused)g(as)i(input.)42
+b(If)30 b(a)i(v)-5 b(ariable)31 b(name)h(is)f(follo)m(w)m(ed)h(b)m(y)f
+(=)p Fq(v)-5 b(alue)p Ft(,)32 b(the)f(v)-5 b(alue)32
+b(of)630 737 y(the)f(v)-5 b(ariable)31 b(is)f(set)h(to)g
+Fq(v)-5 b(alue)p Ft(.)630 870 y(The)29 b(return)e(status)j(is)f(zero)h
+(unless)e(an)h(in)m(v)-5 b(alid)29 b(option)h(is)f(supplied,)f(one)i
+(of)f(the)g(names)630 980 y(is)h(not)h(a)f(v)-5 b(alid)31
+b(shell)f(v)-5 b(ariable)31 b(name,)f(or)h(`)p Fs(-f)p
+Ft(')f(is)g(supplied)f(with)g(a)i(name)f(that)h(is)f(not)h(a)630
+1089 y(shell)g(function.)150 1246 y Fs(getopts)870 1379
+y(getopts)46 b Fj(optstring)56 b(name)h Fs([)p Fj(args)11
+b Fs(])630 1512 y(getopts)28 b Ft(is)i(used)g(b)m(y)g(shell)g(scripts)g
+(to)g(parse)g(p)s(ositional)h(parameters.)41 b Fq(optstring)d
+Ft(con-)630 1622 y(tains)k(the)g(option)f(c)m(haracters)i(to)g(b)s(e)d
+(recognized;)49 b(if)42 b(a)f(c)m(haracter)j(is)d(follo)m(w)m(ed)i(b)m
+(y)f(a)630 1731 y(colon,)33 b(the)f(option)g(is)g(exp)s(ected)g(to)h
+(ha)m(v)m(e)g(an)e(argumen)m(t,)i(whic)m(h)f(should)e(b)s(e)h
+(separated)630 1841 y(from)37 b(it)h(b)m(y)f(white)h(space.)63
+b(The)37 b(colon)h(\(`)p Fs(:)p Ft('\))h(and)d(question)i(mark)f(\(`)p
+Fs(?)p Ft('\))i(ma)m(y)f(not)g(b)s(e)630 1951 y(used)g(as)g(option)h(c)
+m(haracters.)67 b(Eac)m(h)39 b(time)g(it)g(is)f(in)m(v)m(ok)m(ed,)k
+Fs(getopts)37 b Ft(places)i(the)g(next)630 2060 y(option)29
+b(in)f(the)h(shell)g(v)-5 b(ariable)30 b Fq(name)p Ft(,)f(initializing)
+i Fq(name)j Ft(if)28 b(it)h(do)s(es)g(not)g(exist,)h(and)e(the)630
+2170 y(index)33 b(of)g(the)h(next)f(argumen)m(t)h(to)g(b)s(e)e(pro)s
+(cessed)h(in)m(to)h(the)g(v)-5 b(ariable)34 b Fs(OPTIND)p
+Ft(.)48 b Fs(OPTIND)630 2279 y Ft(is)41 b(initialized)i(to)f(1)f(eac)m
+(h)h(time)g(the)f(shell)g(or)g(a)g(shell)g(script)g(is)g(in)m(v)m(ok)m
+(ed.)74 b(When)41 b(an)630 2389 y(option)36 b(requires)e(an)h(argumen)m
+(t,)i Fs(getopts)c Ft(places)j(that)g(argumen)m(t)g(in)m(to)g(the)f(v)
+-5 b(ariable)630 2498 y Fs(OPTARG)p Ft(.)55 b(The)35
+b(shell)g(do)s(es)h(not)g(reset)g Fs(OPTIND)e Ft(automatically;)41
+b(it)36 b(m)m(ust)f(b)s(e)g(man)m(ually)630 2608 y(reset)i(b)s(et)m(w)m
+(een)g(m)m(ultiple)h(calls)f(to)g Fs(getopts)e Ft(within)h(the)h(same)g
+(shell)f(in)m(v)m(o)s(cation)j(if)e(a)630 2718 y(new)30
+b(set)h(of)f(parameters)h(is)f(to)i(b)s(e)d(used.)630
+2851 y(When)41 b(the)h(end)e(of)i(options)g(is)f(encoun)m(tered,)k
+Fs(getopts)39 b Ft(exits)j(with)f(a)h(return)e(v)-5 b(alue)630
+2960 y(greater)32 b(than)e(zero.)41 b Fs(OPTIND)29 b
+Ft(is)h(set)h(to)g(the)g(index)f(of)g(the)h(\014rst)f(non-option)g
+(argumen)m(t,)630 3070 y(and)g Fs(name)f Ft(is)h(set)h(to)g(`)p
+Fs(?)p Ft('.)630 3203 y Fs(getopts)c Ft(normally)j(parses)e(the)i(p)s
+(ositional)g(parameters,)g(but)e(if)i(more)f(argumen)m(ts)h(are)630
+3313 y(giv)m(en)h(in)f Fq(args)p Ft(,)h Fs(getopts)e
+Ft(parses)h(those)h(instead.)630 3446 y Fs(getopts)h
+Ft(can)h(rep)s(ort)g(errors)g(in)h(t)m(w)m(o)h(w)m(a)m(ys.)51
+b(If)33 b(the)h(\014rst)e(c)m(haracter)k(of)d Fq(optstring)42
+b Ft(is)34 b(a)630 3555 y(colon,)i Fq(silen)m(t)i Ft(error)33
+b(rep)s(orting)h(is)h(used.)51 b(In)33 b(normal)i(op)s(eration)f
+(diagnostic)i(messages)630 3665 y(are)30 b(prin)m(ted)e(when)g(in)m(v)
+-5 b(alid)30 b(options)g(or)f(missing)g(option)g(argumen)m(ts)h(are)f
+(encoun)m(tered.)630 3774 y(If)34 b(the)g(v)-5 b(ariable)35
+b Fs(OPTERR)d Ft(is)i(set)h(to)f(0,)i(no)e(error)g(messages)h(will)f(b)
+s(e)f(displa)m(y)m(ed,)j(ev)m(en)f(if)630 3884 y(the)c(\014rst)e(c)m
+(haracter)j(of)f Fs(optstring)d Ft(is)i(not)h(a)f(colon.)630
+4017 y(If)39 b(an)h(in)m(v)-5 b(alid)41 b(option)f(is)g(seen,)i
+Fs(getopts)c Ft(places)j(`)p Fs(?)p Ft(')f(in)m(to)h
+Fq(name)k Ft(and,)d(if)e(not)g(silen)m(t,)630 4127 y(prin)m(ts)f(an)h
+(error)f(message)h(and)f(unsets)g Fs(OPTARG)p Ft(.)67
+b(If)39 b Fs(getopts)f Ft(is)i(silen)m(t,)j(the)c(option)630
+4236 y(c)m(haracter)32 b(found)d(is)h(placed)h(in)f Fs(OPTARG)f
+Ft(and)h(no)g(diagnostic)i(message)f(is)g(prin)m(ted.)630
+4369 y(If)c(a)g(required)f(argumen)m(t)i(is)f(not)g(found,)g(and)f
+Fs(getopts)f Ft(is)i(not)h(silen)m(t,)h(a)e(question)g(mark)630
+4479 y(\(`)p Fs(?)p Ft('\))h(is)g(placed)g(in)f Fq(name)p
+Ft(,)h Fs(OPTARG)e Ft(is)h(unset,)h(and)f(a)g(diagnostic)i(message)g
+(is)e(prin)m(ted.)39 b(If)630 4589 y Fs(getopts)28 b
+Ft(is)h(silen)m(t,)i(then)e(a)h(colon)h(\(`)p Fs(:)p
+Ft('\))f(is)g(placed)g(in)f Fq(name)35 b Ft(and)29 b
+Fs(OPTARG)f Ft(is)h(set)h(to)h(the)630 4698 y(option)g(c)m(haracter)h
+(found.)150 4855 y Fs(hash)870 4988 y(hash)47 b([-r])f([-p)h
+Fj(filename)11 b Fs(])45 b([-dt])h([)p Fj(name)11 b Fs(])630
+5121 y Ft(Remem)m(b)s(er)36 b(the)g(full)g(pathnames)g(of)g(commands)g
+(sp)s(eci\014ed)g(as)g Fq(name)41 b Ft(argumen)m(ts,)e(so)630
+5230 y(they)34 b(need)h(not)f(b)s(e)g(searc)m(hed)h(for)f(on)g
+(subsequen)m(t)f(in)m(v)m(o)s(cations.)55 b(The)34 b(commands)g(are)630
+5340 y(found)39 b(b)m(y)i(searc)m(hing)g(through)f(the)h(directories)g
+(listed)g(in)f Fs($PATH)p Ft(.)70 b(The)40 b(`)p Fs(-p)p
+Ft(')g(option)p eop end
+%%Page: 38 44
+TeXDict begin 38 43 bop 150 -116 a Ft(38)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y(inhibits)38 b(the)h(path)g(searc)m
+(h,)j(and)c Fq(\014lename)44 b Ft(is)39 b(used)f(as)i(the)f(lo)s
+(cation)h(of)f Fq(name)p Ft(.)66 b(The)630 408 y(`)p
+Fs(-r)p Ft(')28 b(option)g(causes)g(the)g(shell)h(to)f(forget)h(all)g
+(remem)m(b)s(ered)e(lo)s(cations.)41 b(The)28 b(`)p Fs(-d)p
+Ft(')f(option)630 518 y(causes)38 b(the)g(shell)g(to)g(forget)g(the)g
+(remem)m(b)s(ered)f(lo)s(cation)i(of)f(eac)m(h)h Fq(name)p
+Ft(.)62 b(If)37 b(the)h(`)p Fs(-t)p Ft(')630 628 y(option)22
+b(is)g(supplied,)g(the)g(full)f(pathname)h(to)g(whic)m(h)g(eac)m(h)g
+Fq(name)27 b Ft(corresp)s(onds)20 b(is)i(prin)m(ted.)630
+737 y(If)33 b(m)m(ultiple)h Fq(name)k Ft(argumen)m(ts)c(are)f(supplied)
+f(with)h(`)p Fs(-t)p Ft(')g(the)h Fq(name)k Ft(is)c(prin)m(ted)e(b)s
+(efore)630 847 y(the)h(hashed)f(full)g(pathname.)48 b(The)32
+b(`)p Fs(-l)p Ft(')h(option)g(causes)g(output)f(to)i(b)s(e)e(displa)m
+(y)m(ed)h(in)g(a)630 956 y(format)f(that)g(ma)m(y)g(b)s(e)f(reused)g
+(as)g(input.)43 b(If)31 b(no)h(argumen)m(ts)g(are)f(giv)m(en,)j(or)d
+(if)g(only)h(`)p Fs(-l)p Ft(')630 1066 y(is)j(supplied,)f(information)h
+(ab)s(out)g(remem)m(b)s(ered)f(commands)g(is)h(prin)m(ted.)53
+b(The)34 b(return)630 1176 y(status)d(is)f(zero)h(unless)f(a)h
+Fq(name)k Ft(is)c(not)f(found)f(or)i(an)f(in)m(v)-5 b(alid)31
+b(option)g(is)f(supplied.)150 1340 y Fs(pwd)870 1477
+y(pwd)47 b([-LP])630 1614 y Ft(Prin)m(t)24 b(the)h(absolute)g(pathname)
+g(of)f(the)h(curren)m(t)f(w)m(orking)h(directory)-8 b(.)40
+b(If)23 b(the)i(`)p Fs(-P)p Ft(')f(option)630 1724 y(is)36
+b(supplied,)f(the)h(pathname)f(prin)m(ted)g(will)h(not)g(con)m(tain)h
+(sym)m(b)s(olic)f(links.)55 b(If)35 b(the)h(`)p Fs(-L)p
+Ft(')630 1833 y(option)44 b(is)g(supplied,)i(the)e(pathname)f(prin)m
+(ted)h(ma)m(y)g(con)m(tain)h(sym)m(b)s(olic)f(links.)80
+b(The)630 1943 y(return)26 b(status)h(is)h(zero)g(unless)e(an)h(error)g
+(is)g(encoun)m(tered)g(while)h(determining)f(the)g(name)630
+2052 y(of)k(the)f(curren)m(t)g(directory)h(or)f(an)h(in)m(v)-5
+b(alid)31 b(option)g(is)f(supplied.)150 2217 y Fs(readonly)870
+2354 y(readonly)46 b([-aApf])f([)p Fj(name)11 b Fs([=)p
+Fj(value)g Fs(]])43 b(...)630 2491 y Ft(Mark)24 b(eac)m(h)h
+Fq(name)k Ft(as)24 b(readonly)-8 b(.)39 b(The)24 b(v)-5
+b(alues)24 b(of)g(these)g(names)g(ma)m(y)g(not)g(b)s(e)g(c)m(hanged)g
+(b)m(y)630 2600 y(subsequen)m(t)e(assignmen)m(t.)39 b(If)22
+b(the)h(`)p Fs(-f)p Ft(')f(option)i(is)e(supplied,)h(eac)m(h)h
+Fq(name)k Ft(refers)22 b(to)i(a)f(shell)630 2710 y(function.)39
+b(The)26 b(`)p Fs(-a)p Ft(')h(option)g(means)g(eac)m(h)h
+Fq(name)k Ft(refers)26 b(to)i(an)e(indexed)h(arra)m(y)g(v)-5
+b(ariable;)630 2819 y(the)33 b(`)p Fs(-A)p Ft(')g(option)g(means)g(eac)
+m(h)h Fq(name)k Ft(refers)32 b(to)h(an)g(asso)s(ciativ)m(e)j(arra)m(y)d
+(v)-5 b(ariable.)49 b(If)32 b(no)630 2929 y Fq(name)f
+Ft(argumen)m(ts)26 b(are)g(giv)m(en,)i(or)d(if)h(the)g(`)p
+Fs(-p)p Ft(')f(option)h(is)g(supplied,)f(a)h(list)h(of)e(all)i
+(readonly)630 3039 y(names)37 b(is)g(prin)m(ted.)59 b(The)37
+b(`)p Fs(-p)p Ft(')f(option)i(causes)f(output)g(to)g(b)s(e)f(displa)m
+(y)m(ed)i(in)e(a)i(format)630 3148 y(that)25 b(ma)m(y)g(b)s(e)f(reused)
+g(as)h(input.)38 b(If)24 b(a)h(v)-5 b(ariable)25 b(name)g(is)g(follo)m
+(w)m(ed)h(b)m(y)e(=)p Fq(v)-5 b(alue)p Ft(,)27 b(the)d(v)-5
+b(alue)630 3258 y(of)27 b(the)g(v)-5 b(ariable)27 b(is)g(set)g(to)g
+Fq(v)-5 b(alue)p Ft(.)40 b(The)26 b(return)g(status)h(is)f(zero)i
+(unless)e(an)g(in)m(v)-5 b(alid)27 b(option)630 3367
+y(is)j(supplied,)f(one)h(of)g(the)g Fq(name)35 b Ft(argumen)m(ts)30
+b(is)g(not)g(a)g(v)-5 b(alid)31 b(shell)f(v)-5 b(ariable)30
+b(or)g(function)630 3477 y(name,)h(or)f(the)h(`)p Fs(-f)p
+Ft(')f(option)h(is)f(supplied)f(with)h(a)h(name)f(that)h(is)g(not)f(a)h
+(shell)g(function.)150 3641 y Fs(return)870 3778 y(return)46
+b([)p Fj(n)11 b Fs(])630 3915 y Ft(Cause)30 b(a)g(shell)g(function)g
+(to)h(exit)f(with)g(the)g(return)f(v)-5 b(alue)31 b Fq(n)p
+Ft(.)40 b(If)29 b Fq(n)h Ft(is)g(not)g(supplied,)f(the)630
+4025 y(return)35 b(v)-5 b(alue)37 b(is)f(the)g(exit)h(status)f(of)h
+(the)f(last)h(command)f(executed)h(in)f(the)g(function.)630
+4134 y(This)21 b(ma)m(y)i(also)g(b)s(e)e(used)g(to)i(terminate)g
+(execution)g(of)f(a)h(script)f(b)s(eing)f(executed)i(with)f(the)630
+4244 y Fs(.)27 b Ft(\(or)g Fs(source)p Ft(\))f(builtin,)i(returning)e
+(either)h Fq(n)g Ft(or)g(the)g(exit)h(status)g(of)f(the)g(last)h
+(command)630 4354 y(executed)46 b(within)f(the)g(script)g(as)h(the)f
+(exit)h(status)g(of)f(the)h(script.)85 b(An)m(y)45 b(command)630
+4463 y(asso)s(ciated)30 b(with)e(the)g Fs(RETURN)f Ft(trap)h(is)g
+(executed)h(b)s(efore)f(execution)h(resumes)f(after)h(the)630
+4573 y(function)38 b(or)f(script.)63 b(The)38 b(return)e(status)i(is)g
+(non-zero)h(if)e Fs(return)g Ft(is)g(used)g(outside)i(a)630
+4682 y(function)30 b(and)g(not)g(during)g(the)g(execution)i(of)e(a)h
+(script)f(b)m(y)h Fs(.)f Ft(or)g Fs(source)p Ft(.)150
+4847 y Fs(shift)870 4984 y(shift)46 b([)p Fj(n)11 b Fs(])630
+5121 y Ft(Shift)41 b(the)g(p)s(ositional)h(parameters)g(to)g(the)f
+(left)h(b)m(y)g Fq(n)p Ft(.)73 b(The)40 b(p)s(ositional)j(parameters)
+630 5230 y(from)34 b Fq(n)p Fs(+)p Ft(1)39 b(.)22 b(.)h(.)45
+b Fs($#)34 b Ft(are)g(renamed)g(to)h Fs($1)k Ft(.)22
+b(.)g(.)46 b Fs($#)p Ft(-)p Fq(n)p Ft(.)51 b(P)m(arameters)36
+b(represen)m(ted)e(b)m(y)g(the)630 5340 y(n)m(um)m(b)s(ers)25
+b Fs($#)i Ft(to)g Fs($#)p Ft(-)p Fq(n)p Fs(+)p Ft(1)g(are)g(unset.)39
+b Fq(n)26 b Ft(m)m(ust)h(b)s(e)f(a)i(non-negativ)m(e)h(n)m(um)m(b)s(er)
+c(less)i(than)g(or)p eop end
+%%Page: 39 45
+TeXDict begin 39 44 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(39)630 299 y(equal)33
+b(to)h Fs($#)p Ft(.)47 b(If)33 b Fq(n)f Ft(is)h(zero)g(or)g(greater)h
+(than)f Fs($#)p Ft(,)g(the)g(p)s(ositional)g(parameters)g(are)h(not)630
+408 y(c)m(hanged.)48 b(If)32 b Fq(n)g Ft(is)h(not)f(supplied,)h(it)g
+(is)f(assumed)g(to)h(b)s(e)f(1.)48 b(The)32 b(return)g(status)h(is)f
+(zero)630 518 y(unless)e Fq(n)f Ft(is)i(greater)g(than)g
+Fs($#)e Ft(or)i(less)f(than)h(zero,)g(non-zero)g(otherwise.)150
+677 y Fs(test)150 787 y([)432 b Ft(Ev)-5 b(aluate)32
+b(a)f(conditional)h(expression)e Fq(expr)p Ft(.)41 b(Eac)m(h)31
+b(op)s(erator)g(and)f(op)s(erand)g(m)m(ust)h(b)s(e)f(a)630
+897 y(separate)d(argumen)m(t.)40 b(Expressions)25 b(are)i(comp)s(osed)e
+(of)i(the)f(primaries)g(describ)s(ed)f(b)s(elo)m(w)630
+1006 y(in)34 b(Section)g(6.4)h([Bash)g(Conditional)f(Expressions],)h
+(page)g(77.)52 b Fs(test)33 b Ft(do)s(es)g(not)h(accept)630
+1116 y(an)m(y)27 b(options,)i(nor)d(do)s(es)h(it)g(accept)i(and)d
+(ignore)i(an)f(argumen)m(t)g(of)g(`)p Fs(--)p Ft(')g(as)h(signifying)f
+(the)630 1225 y(end)j(of)g(options.)630 1360 y(When)g(the)h
+Fs([)f Ft(form)g(is)g(used,)g(the)g(last)i(argumen)m(t)e(to)i(the)e
+(command)g(m)m(ust)h(b)s(e)e(a)i Fs(])p Ft(.)630 1494
+y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h(follo)m
+(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
+1604 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5
+b(aluation)33 b(dep)s(ends)28 b(on)j(the)g(n)m(um)m(b)s(er)f(of)h
+(argumen)m(ts;)g(see)630 1714 y(b)s(elo)m(w.)630 1873
+y Fs(!)f Fj(expr)210 b Ft(T)-8 b(rue)30 b(if)g Fq(expr)37
+b Ft(is)30 b(false.)630 2032 y Fs(\()g Fj(expr)40 b Fs(\))122
+b Ft(Returns)23 b(the)i(v)-5 b(alue)25 b(of)f Fq(expr)p
+Ft(.)38 b(This)24 b(ma)m(y)h(b)s(e)e(used)h(to)h(o)m(v)m(erride)g(the)g
+(normal)1110 2142 y(precedence)31 b(of)f(op)s(erators.)630
+2301 y Fj(expr1)39 b Fs(-a)30 b Fj(expr2)1110 2411 y
+Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g Fq(expr1)37 b Ft(and)30
+b Fq(expr2)38 b Ft(are)30 b(true.)630 2570 y Fj(expr1)39
+b Fs(-o)30 b Fj(expr2)1110 2680 y Ft(T)-8 b(rue)30 b(if)g(either)h
+Fq(expr1)38 b Ft(or)30 b Fq(expr2)37 b Ft(is)31 b(true.)630
+2839 y(The)37 b Fs(test)f Ft(and)g Fs([)h Ft(builtins)g(ev)-5
+b(aluate)39 b(conditional)f(expressions)f(using)g(a)g(set)h(of)f(rules)
+630 2949 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)
+630 3108 y(0)h(argumen)m(ts)1110 3218 y(The)f(expression)g(is)g(false.)
+630 3377 y(1)h(argumen)m(t)1110 3487 y(The)f(expression)g(is)g(true)h
+(if)f(and)g(only)g(if)h(the)f(argumen)m(t)h(is)f(not)h(n)m(ull.)630
+3646 y(2)g(argumen)m(ts)1110 3756 y(If)f(the)h(\014rst)f(argumen)m(t)h
+(is)g(`)p Fs(!)p Ft(',)g(the)g(expression)g(is)g(true)f(if)h(and)f
+(only)h(if)g(the)1110 3866 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50
+b(If)33 b(the)h(\014rst)e(argumen)m(t)i(is)g(one)g(of)f(the)h(unary)
+1110 3975 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f
+([Bash)g(Conditional)g(Expres-)1110 4085 y(sions],)34
+b(page)f(77\),)i(the)e(expression)f(is)h(true)g(if)g(the)g(unary)e
+(test)j(is)f(true.)47 b(If)1110 4194 y(the)33 b(\014rst)g(argumen)m(t)h
+(is)f(not)g(a)h(v)-5 b(alid)34 b(unary)e(op)s(erator,)i(the)g
+(expression)f(is)1110 4304 y(false.)630 4463 y(3)e(argumen)m(ts)1110
+4573 y(If)k(the)g(second)g(argumen)m(t)g(is)g(one)h(of)f(the)g(binary)f
+(conditional)j(op)s(erators)1110 4682 y(\(see)23 b(Section)g(6.4)f
+([Bash)h(Conditional)f(Expressions],)h(page)g(77\),)i(the)d(result)1110
+4792 y(of)44 b(the)h(expression)f(is)g(the)g(result)g(of)h(the)f
+(binary)g(test)h(using)e(the)i(\014rst)1110 4902 y(and)31
+b(third)g(argumen)m(ts)i(as)f(op)s(erands.)44 b(The)31
+b(`)p Fs(-a)p Ft(')h(and)g(`)p Fs(-o)p Ft(')f(op)s(erators)i(are)1110
+5011 y(considered)25 b(binary)g(op)s(erators)g(when)f(there)i(are)f
+(three)h(argumen)m(ts.)39 b(If)25 b(the)1110 5121 y(\014rst)j(argumen)m
+(t)h(is)g(`)p Fs(!)p Ft(',)h(the)f(v)-5 b(alue)29 b(is)g(the)g
+(negation)i(of)e(the)g(t)m(w)m(o-argumen)m(t)1110 5230
+y(test)38 b(using)f(the)g(second)g(and)g(third)f(argumen)m(ts.)61
+b(If)37 b(the)g(\014rst)f(argumen)m(t)1110 5340 y(is)j(exactly)i(`)p
+Fs(\()p Ft(')f(and)f(the)g(third)g(argumen)m(t)h(is)f(exactly)i(`)p
+Fs(\))p Ft(',)h(the)e(result)f(is)p eop end
+%%Page: 40 46
+TeXDict begin 40 45 bop 150 -116 a Ft(40)2572 b(Bash)31
+b(Reference)g(Man)m(ual)1110 299 y(the)46 b(one-argumen)m(t)g(test)h
+(of)f(the)f(second)h(argumen)m(t.)86 b(Otherwise,)50
+b(the)1110 408 y(expression)30 b(is)h(false.)630 569
+y(4)g(argumen)m(ts)1110 678 y(If)h(the)i(\014rst)e(argumen)m(t)h(is)g
+(`)p Fs(!)p Ft(',)h(the)f(result)g(is)g(the)g(negation)h(of)f(the)g
+(three-)1110 788 y(argumen)m(t)h(expression)f(comp)s(osed)h(of)f(the)h
+(remaining)g(argumen)m(ts.)50 b(Oth-)1110 897 y(erwise,)34
+b(the)f(expression)g(is)g(parsed)g(and)f(ev)-5 b(aluated)34
+b(according)h(to)e(prece-)1110 1007 y(dence)e(using)e(the)i(rules)f
+(listed)h(ab)s(o)m(v)m(e.)630 1167 y(5)g(or)f(more)h(argumen)m(ts)1110
+1277 y(The)43 b(expression)f(is)i(parsed)e(and)g(ev)-5
+b(aluated)45 b(according)f(to)f(precedence)1110 1386
+y(using)30 b(the)g(rules)g(listed)h(ab)s(o)m(v)m(e.)150
+1547 y Fs(times)870 1681 y(times)630 1816 y Ft(Prin)m(t)37
+b(out)h(the)g(user)e(and)h(system)g(times)h(used)f(b)m(y)g(the)h(shell)
+f(and)g(its)h(c)m(hildren.)61 b(The)630 1926 y(return)29
+b(status)i(is)f(zero.)150 2086 y Fs(trap)870 2221 y(trap)47
+b([-lp])f([)p Fj(arg)11 b Fs(])46 b([)p Fj(sigspec)56
+b Fs(...)o(])630 2356 y Ft(The)43 b(commands)f(in)h Fq(arg)51
+b Ft(are)44 b(to)g(b)s(e)e(read)h(and)g(executed)h(when)e(the)h(shell)g
+(receiv)m(es)630 2465 y(signal)36 b Fq(sigsp)s(ec)p Ft(.)57
+b(If)35 b Fq(arg)44 b Ft(is)36 b(absen)m(t)g(\(and)f(there)h(is)g(a)f
+(single)i Fq(sigsp)s(ec)6 b Ft(\))35 b(or)h(equal)g(to)h(`)p
+Fs(-)p Ft(',)630 2575 y(eac)m(h)28 b(sp)s(eci\014ed)e(signal's)h(disp)s
+(osition)f(is)h(reset)g(to)g(the)g(v)-5 b(alue)27 b(it)g(had)f(when)f
+(the)i(shell)g(w)m(as)630 2685 y(started.)63 b(If)37
+b Fq(arg)46 b Ft(is)37 b(the)h(n)m(ull)g(string,)h(then)e(the)h(signal)
+h(sp)s(eci\014ed)d(b)m(y)i(eac)m(h)h Fq(sigsp)s(ec)k
+Ft(is)630 2794 y(ignored)36 b(b)m(y)g(the)g(shell)g(and)g(commands)f
+(it)i(in)m(v)m(ok)m(es.)59 b(If)35 b Fq(arg)45 b Ft(is)36
+b(not)g(presen)m(t)g(and)f(`)p Fs(-p)p Ft(')630 2904
+y(has)e(b)s(een)g(supplied,)f(the)i(shell)f(displa)m(ys)h(the)f(trap)g
+(commands)g(asso)s(ciated)i(with)e(eac)m(h)630 3013 y
+Fq(sigsp)s(ec)p Ft(.)40 b(If)29 b(no)g(argumen)m(ts)g(are)g(supplied,)f
+(or)h(only)g(`)p Fs(-p)p Ft(')g(is)g(giv)m(en,)h Fs(trap)e
+Ft(prin)m(ts)g(the)h(list)630 3123 y(of)f(commands)f(asso)s(ciated)i
+(with)f(eac)m(h)h(signal)f(n)m(um)m(b)s(er)e(in)i(a)g(form)f(that)h(ma)
+m(y)h(b)s(e)e(reused)630 3232 y(as)c(shell)g(input.)37
+b(The)23 b(`)p Fs(-l)p Ft(')f(option)i(causes)f(the)g(shell)g(to)g
+(prin)m(t)g(a)g(list)g(of)g(signal)h(names)f(and)630
+3342 y(their)33 b(corresp)s(onding)f(n)m(um)m(b)s(ers.)47
+b(Eac)m(h)34 b Fq(sigsp)s(ec)39 b Ft(is)33 b(either)g(a)h(signal)g
+(name)f(or)g(a)g(signal)630 3452 y(n)m(um)m(b)s(er.)46
+b(Signal)33 b(names)g(are)g(case)h(insensitiv)m(e)f(and)g(the)f
+Fs(SIG)g Ft(pre\014x)g(is)h(optional.)48 b(If)33 b(a)630
+3561 y Fq(sigsp)s(ec)h Ft(is)28 b Fs(0)f Ft(or)h Fs(EXIT)p
+Ft(,)f Fq(arg)37 b Ft(is)27 b(executed)i(when)e(the)h(shell)g(exits.)41
+b(If)27 b(a)i Fq(sigsp)s(ec)k Ft(is)28 b Fs(DEBUG)p Ft(,)630
+3671 y(the)40 b(command)g Fq(arg)48 b Ft(is)40 b(executed)h(b)s(efore)f
+(ev)m(ery)g(simple)g(command,)j Fs(for)c Ft(command,)630
+3780 y Fs(case)28 b Ft(command,)i Fs(select)d Ft(command,)j(ev)m(ery)g
+(arithmetic)h Fs(for)d Ft(command,)i(and)e(b)s(efore)630
+3890 y(the)k(\014rst)e(command)h(executes)i(in)e(a)h(shell)f(function.)
+44 b(Refer)31 b(to)h(the)g(description)f(of)h(the)630
+4000 y Fs(extglob)40 b Ft(option)i(to)g(the)g Fs(shopt)e
+Ft(builtin)h(\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)630
+4109 y(page)g(54\))g(for)e(details)i(of)f(its)h(e\013ect)g(on)f(the)g
+Fs(DEBUG)f Ft(trap.)69 b(If)39 b(a)i Fq(sigsp)s(ec)k
+Ft(is)40 b Fs(ERR)p Ft(,)i(the)630 4219 y(command)h Fq(arg)52
+b Ft(is)44 b(executed)g(whenev)m(er)g(a)g(simple)f(command)h(has)f(a)h
+(non-zero)g(exit)630 4328 y(status,)30 b(sub)5 b(ject)30
+b(to)g(the)g(follo)m(wing)h(conditions.)41 b(The)30 b
+Fs(ERR)e Ft(trap)i(is)g(not)g(executed)g(if)g(the)630
+4438 y(failed)38 b(command)g(is)f(part)h(of)f(the)h(command)g(list)g
+(immediately)h(follo)m(wing)g(an)e Fs(until)630 4548
+y Ft(or)k Fs(while)f Ft(k)m(eyw)m(ord,)k(part)d(of)g(the)h(test)g(in)e
+(an)h Fs(if)g Ft(statemen)m(t,)46 b(part)40 b(of)i(a)f(command)630
+4657 y(executed)31 b(in)e(a)h Fs(&&)f Ft(or)h Fs(||)f
+Ft(list,)i(or)f(if)g(the)g(command's)f(return)g(status)h(is)g(b)s(eing)
+f(in)m(v)m(erted)630 4767 y(using)37 b Fs(!)p Ft(.)63
+b(These)38 b(are)g(the)g(same)g(conditions)h(ob)s(ey)m(ed)f(b)m(y)g
+(the)g Fs(errexit)d Ft(option.)64 b(If)38 b(a)630 4876
+y Fq(sigsp)s(ec)h Ft(is)33 b Fs(RETURN)p Ft(,)g(the)h(command)f
+Fq(arg)41 b Ft(is)34 b(executed)g(eac)m(h)h(time)f(a)f(shell)h
+(function)f(or)630 4986 y(a)e(script)f(executed)h(with)f(the)h
+Fs(.)f Ft(or)g Fs(source)f Ft(builtins)h(\014nishes)f(executing.)630
+5121 y(Signals)37 b(ignored)f(up)s(on)f(en)m(try)i(to)g(the)f(shell)h
+(cannot)g(b)s(e)f(trapp)s(ed)f(or)h(reset.)59 b(T)-8
+b(rapp)s(ed)630 5230 y(signals)37 b(that)f(are)h(not)f(b)s(eing)f
+(ignored)h(are)h(reset)f(to)h(their)f(original)h(v)-5
+b(alues)37 b(in)e(a)i(c)m(hild)630 5340 y(pro)s(cess)30
+b(when)f(it)i(is)g(created.)p eop end
+%%Page: 41 47
+TeXDict begin 41 46 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(41)630 299 y(The)30
+b(return)f(status)i(is)f(zero)h(unless)f(a)h Fq(sigsp)s(ec)36
+b Ft(do)s(es)30 b(not)h(sp)s(ecify)f(a)g(v)-5 b(alid)31
+b(signal.)150 454 y Fs(umask)870 586 y(umask)46 b([-p])h([-S])g([)p
+Fj(mode)11 b Fs(])630 718 y Ft(Set)30 b(the)f(shell)h(pro)s(cess's)f
+(\014le)h(creation)g(mask)g(to)g Fq(mo)s(de)p Ft(.)40
+b(If)29 b Fq(mo)s(de)34 b Ft(b)s(egins)29 b(with)g(a)h(digit,)630
+828 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s(er;)
+e(if)g(not,)h(it)g(is)f(in)m(terpreted)g(as)g(a)h(sym)m(b)s(olic)f(mo)s
+(de)630 937 y(mask)i(similar)g(to)g(that)h(accepted)g(b)m(y)f(the)g
+Fs(chmod)e Ft(command.)40 b(If)28 b Fq(mo)s(de)34 b Ft(is)28
+b(omitted,)j(the)630 1047 y(curren)m(t)36 b(v)-5 b(alue)36
+b(of)g(the)h(mask)f(is)g(prin)m(ted.)57 b(If)35 b(the)h(`)p
+Fs(-S)p Ft(')g(option)h(is)f(supplied)f(without)h(a)630
+1156 y Fq(mo)s(de)k Ft(argumen)m(t,)d(the)e(mask)g(is)g(prin)m(ted)g
+(in)g(a)h(sym)m(b)s(olic)f(format.)55 b(If)35 b(the)g(`)p
+Fs(-p)p Ft(')g(option)630 1266 y(is)f(supplied,)f(and)g
+Fq(mo)s(de)38 b Ft(is)33 b(omitted,)j(the)e(output)f(is)g(in)h(a)g
+(form)f(that)h(ma)m(y)g(b)s(e)f(reused)630 1376 y(as)e(input.)41
+b(The)31 b(return)f(status)h(is)g(zero)h(if)e(the)h(mo)s(de)g(is)g
+(successfully)g(c)m(hanged)g(or)g(if)g(no)630 1485 y
+Fq(mo)s(de)k Ft(argumen)m(t)c(is)f(supplied,)g(and)f(non-zero)i
+(otherwise.)630 1617 y(Note)38 b(that)e(when)g(the)g(mo)s(de)g(is)g(in)
+m(terpreted)h(as)f(an)g(o)s(ctal)i(n)m(um)m(b)s(er,)e(eac)m(h)i(n)m(um)
+m(b)s(er)d(of)630 1727 y(the)f(umask)g(is)h(subtracted)f(from)f
+Fs(7)p Ft(.)53 b(Th)m(us,)34 b(a)h(umask)e(of)i Fs(022)e
+Ft(results)h(in)g(p)s(ermissions)630 1837 y(of)d Fs(755)p
+Ft(.)150 1991 y Fs(unset)870 2124 y(unset)46 b([-fv])h([)p
+Fj(name)11 b Fs(])630 2256 y Ft(Eac)m(h)34 b(v)-5 b(ariable)33
+b(or)g(function)g Fq(name)38 b Ft(is)33 b(remo)m(v)m(ed.)50
+b(If)32 b(no)h(options)h(are)f(supplied,)g(or)g(the)630
+2365 y(`)p Fs(-v)p Ft(')h(option)h(is)g(giv)m(en,)h(eac)m(h)g
+Fq(name)k Ft(refers)34 b(to)h(a)g(shell)f(v)-5 b(ariable.)54
+b(If)34 b(the)h(`)p Fs(-f)p Ft(')f(option)h(is)630 2475
+y(giv)m(en,)27 b(the)d Fq(name)5 b Ft(s)25 b(refer)f(to)h(shell)g
+(functions,)g(and)f(the)g(function)g(de\014nition)g(is)h(remo)m(v)m
+(ed.)630 2585 y(Readonly)32 b(v)-5 b(ariables)33 b(and)f(functions)f
+(ma)m(y)i(not)f(b)s(e)g(unset.)45 b(The)32 b(return)f(status)h(is)g
+(zero)630 2694 y(unless)e(a)g Fq(name)36 b Ft(is)30 b(readonly)-8
+b(.)150 2945 y Fr(4.2)68 b(Bash)45 b(Builtin)g(Commands)275
+3186 y Ft(This)30 b(section)j(describ)s(es)e(builtin)h(commands)f(whic)
+m(h)g(are)i(unique)d(to)j(or)f(ha)m(v)m(e)h(b)s(een)e(extended)g(in)150
+3296 y(Bash.)41 b(Some)30 b(of)h(these)g(commands)f(are)g(sp)s
+(eci\014ed)g(in)g(the)h Fl(posix)e Ft(standard.)150 3451
+y Fs(alias)870 3583 y(alias)46 b([-p])h([)p Fj(name)11
+b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630 3715 y Ft(Without)h(argumen)
+m(ts)f(or)g(with)g(the)h(`)p Fs(-p)p Ft(')f(option,)k
+Fs(alias)41 b Ft(prin)m(ts)i(the)g(list)h(of)f(aliases)630
+3825 y(on)36 b(the)g(standard)f(output)h(in)f(a)i(form)e(that)i(allo)m
+(ws)g(them)f(to)g(b)s(e)g(reused)f(as)h(input.)56 b(If)630
+3934 y(argumen)m(ts)29 b(are)g(supplied,)f(an)h(alias)h(is)f(de\014ned)
+e(for)i(eac)m(h)h Fq(name)k Ft(whose)28 b Fq(v)-5 b(alue)35
+b Ft(is)29 b(giv)m(en.)630 4044 y(If)39 b(no)h Fq(v)-5
+b(alue)45 b Ft(is)40 b(giv)m(en,)j(the)d(name)f(and)g(v)-5
+b(alue)40 b(of)g(the)g(alias)h(is)f(prin)m(ted.)68 b(Aliases)41
+b(are)630 4154 y(describ)s(ed)29 b(in)h(Section)i(6.6)f([Aliases],)h
+(page)f(79.)150 4308 y Fs(bind)870 4441 y(bind)47 b([-m)g
+Fj(keymap)11 b Fs(])45 b([-lpsvPSV])870 4550 y(bind)i([-m)g
+Fj(keymap)11 b Fs(])45 b([-q)i Fj(function)11 b Fs(])45
+b([-u)h Fj(function)11 b Fs(])45 b([-r)i Fj(keyseq)11
+b Fs(])870 4660 y(bind)47 b([-m)g Fj(keymap)11 b Fs(])45
+b(-f)i Fj(filename)870 4769 y Fs(bind)g([-m)g Fj(keymap)11
+b Fs(])45 b(-x)i Fj(keyseq:shell-command)870 4879 y Fs(bind)g([-m)g
+Fj(keymap)11 b Fs(])45 b Fj(keyseq:function-name)870
+4989 y Fs(bind)i Fj(readline-command)630 5121 y Ft(Displa)m(y)26
+b(curren)m(t)f(Readline)h(\(see)g(Chapter)f(8)g([Command)g(Line)g
+(Editing],)i(page)f(93\))g(k)m(ey)630 5230 y(and)36 b(function)g
+(bindings,)i(bind)d(a)i(k)m(ey)g(sequence)g(to)h(a)f(Readline)g
+(function)f(or)h(macro,)630 5340 y(or)44 b(set)h(a)g(Readline)f(v)-5
+b(ariable.)83 b(Eac)m(h)45 b(non-option)g(argumen)m(t)f(is)g(a)h
+(command)f(as)g(it)p eop end
+%%Page: 42 48
+TeXDict begin 42 47 bop 150 -116 a Ft(42)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y(w)m(ould)42 b(app)s(ear)f(in)h(a)h
+(Readline)g(initialization)i(\014le)d(\(see)h(Section)g(8.3)g
+([Readline)g(Init)630 408 y(File],)g(page)c(96\),)k(but)38
+b(eac)m(h)i(binding)e(or)h(command)g(m)m(ust)g(b)s(e)f(passed)g(as)i(a)
+f(separate)630 518 y(argumen)m(t;)31 b(e.g.,)h(`)p Fs
+("\\C-x\\C-r":re-read-init-f)o(ile)p Ft('.)630 652 y(Options,)e(if)h
+(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630
+811 y Fs(-m)e Fj(keymap)1110 921 y Ft(Use)54 b Fq(k)m(eymap)j
+Ft(as)d(the)g(k)m(eymap)g(to)h(b)s(e)e(a\013ected)i(b)m(y)f(the)g
+(subsequen)m(t)1110 1031 y(bindings.)46 b(Acceptable)34
+b Fq(k)m(eymap)i Ft(names)c(are)h Fs(emacs)p Ft(,)f Fs(emacs-standard)p
+Ft(,)1110 1140 y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p
+Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p Ft(,)f Fs(vi-command)p
+Ft(,)f(and)1110 1250 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38
+b Ft(is)h(equiv)-5 b(alen)m(t)41 b(to)e Fs(vi-command)p
+Ft(;)i Fs(emacs)c Ft(is)i(equiv)-5 b(alen)m(t)1110 1359
+y(to)31 b Fs(emacs-standard)p Ft(.)630 1518 y Fs(-l)384
+b Ft(List)31 b(the)f(names)g(of)h(all)g(Readline)g(functions.)630
+1678 y Fs(-p)384 b Ft(Displa)m(y)34 b(Readline)f(function)g(names)g
+(and)f(bindings)f(in)i(suc)m(h)f(a)i(w)m(a)m(y)f(that)1110
+1787 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g(in)g(a)h(Readline)
+g(initialization)i(\014le.)630 1946 y Fs(-P)384 b Ft(List)31
+b(curren)m(t)f(Readline)h(function)f(names)g(and)g(bindings.)630
+2105 y Fs(-v)384 b Ft(Displa)m(y)25 b(Readline)f(v)-5
+b(ariable)25 b(names)f(and)f(v)-5 b(alues)24 b(in)g(suc)m(h)f(a)i(w)m
+(a)m(y)f(that)h(they)1110 2215 y(can)31 b(b)s(e)e(used)h(as)h(input)e
+(or)h(in)g(a)h(Readline)g(initialization)j(\014le.)630
+2374 y Fs(-V)384 b Ft(List)31 b(curren)m(t)f(Readline)h(v)-5
+b(ariable)31 b(names)f(and)g(v)-5 b(alues.)630 2533 y
+Fs(-s)384 b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g(sequences)f(b)s
+(ound)f(to)i(macros)g(and)f(the)g(strings)1110 2643 y(they)d(output)f
+(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g(can)g(b)s(e)f(used)g(as)h
+(input)e(or)i(in)g(a)1110 2752 y(Readline)d(initialization)i(\014le.)
+630 2911 y Fs(-S)384 b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g
+(sequences)f(b)s(ound)f(to)i(macros)g(and)f(the)g(strings)1110
+3021 y(they)31 b(output.)630 3180 y Fs(-f)f Fj(filename)1110
+3290 y Ft(Read)h(k)m(ey)g(bindings)e(from)h Fq(\014lename)p
+Ft(.)630 3449 y Fs(-q)g Fj(function)1110 3558 y Ft(Query)g(ab)s(out)g
+(whic)m(h)g(k)m(eys)h(in)m(v)m(ok)m(e)h(the)f(named)f
+Fq(function)p Ft(.)630 3717 y Fs(-u)g Fj(function)1110
+3827 y Ft(Un)m(bind)f(all)i(k)m(eys)g(b)s(ound)e(to)i(the)f(named)g
+Fq(function)p Ft(.)630 3986 y Fs(-r)g Fj(keyseq)1110
+4096 y Ft(Remo)m(v)m(e)i(an)m(y)f(curren)m(t)f(binding)f(for)h
+Fq(k)m(eyseq)p Ft(.)630 4255 y Fs(-x)g Fj(keyseq:shell-command)1110
+4364 y Ft(Cause)35 b Fq(shell-command)k Ft(to)d(b)s(e)f(executed)h
+(whenev)m(er)f Fq(k)m(eyseq)j Ft(is)d(en)m(tered.)1110
+4474 y(When)46 b Fq(shell-command)k Ft(is)c(executed,)51
+b(the)46 b(shell)g(sets)g(the)g Fs(READLINE_)1110 4583
+y(LINE)37 b Ft(v)-5 b(ariable)38 b(to)g(the)g(con)m(ten)m(ts)i(of)e
+(the)g(Readline)g(line)g(bu\013er)f(and)g(the)1110 4693
+y Fs(READLINE_POINT)e Ft(v)-5 b(ariable)39 b(to)h(the)e(curren)m(t)h
+(lo)s(cation)h(of)f(the)g(insertion)1110 4803 y(p)s(oin)m(t.)59
+b(If)37 b(the)f(executed)i(command)e(c)m(hanges)i(the)f(v)-5
+b(alue)37 b(of)f Fs(READLINE_)1110 4912 y(LINE)29 b Ft(or)h
+Fs(READLINE_POINT)p Ft(,)c(those)31 b(new)e(v)-5 b(alues)31
+b(will)f(b)s(e)f(re\015ected)i(in)f(the)1110 5022 y(editing)h(state.)
+630 5181 y(The)26 b(return)f(status)i(is)f(zero)i(unless)d(an)i(in)m(v)
+-5 b(alid)27 b(option)g(is)f(supplied)f(or)i(an)f(error)g(o)s(ccurs.)
+150 5340 y Fs(builtin)p eop end
+%%Page: 43 49
+TeXDict begin 43 48 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(43)870 299 y Fs(builtin)46
+b([)p Fj(shell-builtin)54 b Fs([)p Fj(args)11 b Fs(]])630
+439 y Ft(Run)35 b(a)i(shell)f(builtin,)i(passing)e(it)h
+Fq(args)p Ft(,)h(and)e(return)f(its)i(exit)g(status.)59
+b(This)35 b(is)i(useful)630 548 y(when)29 b(de\014ning)h(a)g(shell)h
+(function)f(with)g(the)g(same)h(name)f(as)h(a)g(shell)f(builtin,)g
+(retaining)630 658 y(the)k(functionalit)m(y)h(of)f(the)f(builtin)g
+(within)g(the)h(function.)50 b(The)33 b(return)g(status)h(is)f(non-)630
+768 y(zero)e(if)g Fq(shell-builtin)f Ft(is)g(not)h(a)g(shell)f(builtin)
+g(command.)150 938 y Fs(caller)870 1078 y(caller)46 b([)p
+Fj(expr)11 b Fs(])630 1218 y Ft(Returns)34 b(the)g(con)m(text)j(of)e
+(an)m(y)g(activ)m(e)i(subroutine)c(call)j(\(a)f(shell)g(function)f(or)h
+(a)g(script)630 1328 y(executed)c(with)f(the)h Fs(.)f
+Ft(or)g Fs(source)f Ft(builtins\).)630 1468 y(Without)45
+b Fq(expr)p Ft(,)j Fs(caller)43 b Ft(displa)m(ys)i(the)f(line)h(n)m(um)
+m(b)s(er)f(and)g(source)g(\014lename)h(of)g(the)630 1577
+y(curren)m(t)35 b(subroutine)g(call.)58 b(If)35 b(a)h(non-negativ)m(e)i
+(in)m(teger)f(is)f(supplied)e(as)i Fq(expr)p Ft(,)h Fs(caller)630
+1687 y Ft(displa)m(ys)k(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d
+(name,)44 b(and)c(source)g(\014le)h(corresp)s(onding)e(to)630
+1797 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g
+(stac)m(k.)54 b(This)34 b(extra)h(information)g(ma)m(y)630
+1906 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m
+(k)h(trace.)42 b(The)29 b(curren)m(t)i(frame)f(is)g(frame)h(0.)630
+2046 y(The)e(return)f(v)-5 b(alue)29 b(is)h(0)f(unless)g(the)g(shell)g
+(is)h(not)f(executing)h(a)g(subroutine)e(call)i(or)g
+Fq(expr)630 2156 y Ft(do)s(es)g(not)h(corresp)s(ond)e(to)i(a)g(v)-5
+b(alid)30 b(p)s(osition)h(in)f(the)g(call)i(stac)m(k.)150
+2326 y Fs(command)870 2466 y(command)46 b([-pVv])g Fj(command)56
+b Fs([)p Fj(arguments)g Fs(...)o(])630 2606 y Ft(Runs)32
+b Fq(command)k Ft(with)d Fq(argumen)m(ts)k Ft(ignoring)c(an)m(y)g
+(shell)h(function)e(named)h Fq(command)p Ft(.)630 2716
+y(Only)39 b(shell)i(builtin)e(commands)h(or)g(commands)f(found)g(b)m(y)
+h(searc)m(hing)h(the)f Fs(PATH)f Ft(are)630 2826 y(executed.)g(If)23
+b(there)h(is)f(a)h(shell)f(function)g(named)g Fs(ls)p
+Ft(,)i(running)c(`)p Fs(command)29 b(ls)p Ft(')23 b(within)g(the)630
+2935 y(function)33 b(will)g(execute)i(the)f(external)g(command)f
+Fs(ls)f Ft(instead)i(of)f(calling)i(the)e(function)630
+3045 y(recursiv)m(ely)-8 b(.)84 b(The)44 b(`)p Fs(-p)p
+Ft(')h(option)g(means)f(to)h(use)g(a)f(default)h(v)-5
+b(alue)45 b(for)f Fs(PATH)g Ft(that)h(is)630 3154 y(guaran)m(teed)35
+b(to)f(\014nd)e(all)j(of)f(the)g(standard)f(utilities.)52
+b(The)33 b(return)g(status)h(in)f(this)h(case)630 3264
+y(is)29 b(127)g(if)g Fq(command)j Ft(cannot)d(b)s(e)e(found)h(or)g(an)g
+(error)h(o)s(ccurred,)f(and)g(the)h(exit)g(status)g(of)630
+3373 y Fq(command)34 b Ft(otherwise.)630 3513 y(If)25
+b(either)g(the)h(`)p Fs(-V)p Ft(')f(or)g(`)p Fs(-v)p
+Ft(')g(option)g(is)g(supplied,)h(a)f(description)g(of)h
+Fq(command)i Ft(is)d(prin)m(ted.)630 3623 y(The)i(`)p
+Fs(-v)p Ft(')h(option)h(causes)f(a)h(single)f(w)m(ord)g(indicating)h
+(the)f(command)g(or)g(\014le)g(name)g(used)630 3733 y(to)36
+b(in)m(v)m(ok)m(e)g Fq(command)j Ft(to)c(b)s(e)g(displa)m(y)m(ed;)j
+(the)d(`)p Fs(-V)p Ft(')g(option)g(pro)s(duces)e(a)j(more)f(v)m(erb)s
+(ose)630 3842 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e
+(status)h(is)g(zero)h(if)f Fq(command)k Ft(is)c(found,)h(and)630
+3952 y(non-zero)31 b(if)f(not.)150 4122 y Fs(declare)870
+4262 y(declare)46 b([-aAfFilrtux])e([-p])j([)p Fj(name)11
+b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630 4402 y Ft(Declare)29
+b(v)-5 b(ariables)28 b(and)e(giv)m(e)j(them)e(attributes.)40
+b(If)27 b(no)g Fq(name)5 b Ft(s)27 b(are)h(giv)m(en,)h(then)e(displa)m
+(y)630 4512 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31
+b(instead.)630 4652 y(The)d(`)p Fs(-p)p Ft(')g(option)g(will)h(displa)m
+(y)f(the)h(attributes)f(and)g(v)-5 b(alues)28 b(of)h(eac)m(h)g
+Fq(name)p Ft(.)40 b(When)28 b(`)p Fs(-p)p Ft(')630 4762
+y(is)i(used)g(with)g Fq(name)36 b Ft(argumen)m(ts,)31
+b(additional)g(options)f(are)h(ignored.)630 4902 y(When)36
+b(`)p Fs(-p)p Ft(')f(is)h(supplied)f(without)h Fq(name)41
+b Ft(argumen)m(ts,)d Fs(declare)c Ft(will)i(displa)m(y)g(the)g(at-)630
+5011 y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5
+b(ariables)31 b(ha)m(ving)h(the)f(attributes)g(sp)s(eci\014ed)f(b)m(y)h
+(the)g(addi-)630 5121 y(tional)h(options.)41 b(If)30
+b(no)g(other)h(options)g(are)g(supplied)e(with)h(`)p
+Fs(-p)p Ft(',)g Fs(declare)f Ft(will)i(displa)m(y)630
+5230 y(the)f(attributes)g(and)e(v)-5 b(alues)30 b(of)g(all)g(shell)g(v)
+-5 b(ariables.)41 b(The)29 b(`)p Fs(-f)p Ft(')g(option)h(will)g
+(restrict)g(the)630 5340 y(displa)m(y)h(to)g(shell)f(functions.)p
+eop end
+%%Page: 44 50
+TeXDict begin 44 49 bop 150 -116 a Ft(44)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y(The)36 b(`)p Fs(-F)p
+Ft(')h(option)g(inhibits)f(the)h(displa)m(y)g(of)g(function)g
+(de\014nitions;)i(only)e(the)g(function)630 408 y(name)30
+b(and)f(attributes)i(are)f(prin)m(ted.)40 b(If)30 b(the)g
+Fs(extdebug)e Ft(shell)i(option)g(is)g(enabled)g(using)630
+518 y Fs(shopt)24 b Ft(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f
+(Builtin],)k(page)e(54\),)i(the)d(source)h(\014le)f(name)h(and)630
+628 y(line)38 b(n)m(um)m(b)s(er)e(where)i(the)g(function)f(is)h
+(de\014ned)e(are)i(displa)m(y)m(ed)h(as)e(w)m(ell.)64
+b(`)p Fs(-F)p Ft(')38 b(implies)630 737 y(`)p Fs(-f)p
+Ft('.)i(The)28 b(follo)m(wing)i(options)f(can)f(b)s(e)g(used)g(to)h
+(restrict)g(output)f(to)h(v)-5 b(ariables)30 b(with)e(the)630
+847 y(sp)s(eci\014ed)i(attributes)h(or)f(to)h(giv)m(e)h(v)-5
+b(ariables)31 b(attributes:)630 1000 y Fs(-a)384 b Ft(Eac)m(h)36
+b Fq(name)k Ft(is)34 b(an)h(indexed)g(arra)m(y)g(v)-5
+b(ariable)36 b(\(see)f(Section)h(6.7)g([Arra)m(ys],)1110
+1110 y(page)31 b(80\).)630 1263 y Fs(-A)384 b Ft(Eac)m(h)24
+b Fq(name)k Ft(is)23 b(an)g(asso)s(ciativ)m(e)j(arra)m(y)e(v)-5
+b(ariable)24 b(\(see)g(Section)g(6.7)g([Arra)m(ys],)1110
+1373 y(page)31 b(80\).)630 1526 y Fs(-f)384 b Ft(Use)31
+b(function)f(names)g(only)-8 b(.)630 1680 y Fs(-i)384
+b Ft(The)36 b(v)-5 b(ariable)37 b(is)f(to)h(b)s(e)f(treated)h(as)g(an)f
+(in)m(teger;)41 b(arithmetic)c(ev)-5 b(aluation)1110
+1789 y(\(see)29 b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(78\))h
+(is)f(p)s(erformed)e(when)h(the)1110 1899 y(v)-5 b(ariable)31
+b(is)g(assigned)f(a)h(v)-5 b(alue.)630 2052 y Fs(-l)384
+b Ft(When)26 b(the)g(v)-5 b(ariable)27 b(is)f(assigned)g(a)g(v)-5
+b(alue,)28 b(all)f(upp)s(er-case)e(c)m(haracters)j(are)1110
+2162 y(con)m(v)m(erted)k(to)f(lo)m(w)m(er-case.)43 b(The)30
+b(upp)s(er-case)g(attribute)h(is)g(disabled.)630 2315
+y Fs(-r)384 b Ft(Mak)m(e)25 b Fq(name)5 b Ft(s)23 b(readonly)-8
+b(.)39 b(These)24 b(names)f(cannot)h(then)f(b)s(e)g(assigned)h(v)-5
+b(alues)1110 2425 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h
+(statemen)m(ts)h(or)f(unset.)630 2578 y Fs(-t)384 b Ft(Giv)m(e)33
+b(eac)m(h)h Fq(name)j Ft(the)32 b Fs(trace)f Ft(attribute.)46
+b(T)-8 b(raced)32 b(functions)g(inherit)g(the)1110 2688
+y Fs(DEBUG)26 b Ft(and)h Fs(RETURN)f Ft(traps)h(from)g(the)h(calling)h
+(shell.)40 b(The)27 b(trace)i(attribute)1110 2798 y(has)h(no)g(sp)s
+(ecial)h(meaning)g(for)f(v)-5 b(ariables.)630 2951 y
+Fs(-u)384 b Ft(When)28 b(the)h(v)-5 b(ariable)29 b(is)f(assigned)h(a)f
+(v)-5 b(alue,)30 b(all)f(lo)m(w)m(er-case)i(c)m(haracters)f(are)1110
+3061 y(con)m(v)m(erted)i(to)f(upp)s(er-case.)40 b(The)30
+b(lo)m(w)m(er-case)j(attribute)e(is)g(disabled.)630 3214
+y Fs(-x)384 b Ft(Mark)30 b(eac)m(h)h Fq(name)k Ft(for)29
+b(exp)s(ort)h(to)g(subsequen)m(t)f(commands)h(via)g(the)g(en)m(vi-)1110
+3324 y(ronmen)m(t.)630 3477 y(Using)e(`)p Fs(+)p Ft(')h(instead)f(of)g
+(`)p Fs(-)p Ft(')g(turns)f(o\013)i(the)f(attribute)h(instead,)g(with)f
+(the)g(exceptions)h(that)630 3587 y(`)p Fs(+a)p Ft(')h(ma)m(y)h(not)f
+(b)s(e)f(used)g(to)i(destro)m(y)g(an)f(arra)m(y)g(v)-5
+b(ariable)31 b(and)f(`)p Fs(+r)p Ft(')g(will)g(not)g(remo)m(v)m(e)i
+(the)630 3696 y(readonly)e(attribute.)41 b(When)30 b(used)f(in)g(a)h
+(function,)g Fs(declare)e Ft(mak)m(es)j(eac)m(h)f Fq(name)35
+b Ft(lo)s(cal,)630 3806 y(as)24 b(with)g(the)g Fs(local)e
+Ft(command.)39 b(If)23 b(a)i(v)-5 b(ariable)24 b(name)g(is)g(follo)m(w)
+m(ed)i(b)m(y)e(=)p Fq(v)-5 b(alue)p Ft(,)25 b(the)f(v)-5
+b(alue)630 3915 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(set)g(to)g
+Fq(v)-5 b(alue)p Ft(.)630 4047 y(The)35 b(return)f(status)i(is)g(zero)g
+(unless)f(an)g(in)m(v)-5 b(alid)36 b(option)g(is)g(encoun)m(tered,)h
+(an)f(attempt)630 4156 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g
+(using)f(`)p Fs(-f)f(foo=bar)p Ft(',)h(an)h(attempt)g(is)g(made)g(to)h
+(assign)630 4266 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5
+b(ariable,)47 b(an)42 b(attempt)h(is)f(made)g(to)h(assign)f(a)h(v)-5
+b(alue)42 b(to)h(an)630 4376 y(arra)m(y)30 b(v)-5 b(ariable)30
+b(without)g(using)e(the)i(comp)s(ound)e(assignmen)m(t)i(syn)m(tax)g
+(\(see)h(Section)f(6.7)630 4485 y([Arra)m(ys],)47 b(page)c(80\),)48
+b(one)43 b(of)g(the)g Fq(names)k Ft(is)c(not)g(a)g(v)-5
+b(alid)43 b(shell)g(v)-5 b(ariable)44 b(name,)i(an)630
+4595 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g
+(for)g(a)h(readonly)f(v)-5 b(ariable,)29 b(an)e(attempt)630
+4704 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g
+(arra)m(y)h(v)-5 b(ariable,)30 b(or)e(an)g(attempt)i(is)e(made)g(to)630
+4814 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g(`)p
+Fs(-f)p Ft('.)150 4967 y Fs(echo)870 5099 y(echo)47 b([-neE])f([)p
+Fj(arg)57 b Fs(...)o(])630 5230 y Ft(Output)31 b(the)i
+Fq(arg)8 b Ft(s,)33 b(separated)g(b)m(y)g(spaces,)g(terminated)g(with)f
+(a)h(newline.)47 b(The)32 b(return)630 5340 y(status)40
+b(is)g(alw)m(a)m(ys)h(0.)69 b(If)39 b(`)p Fs(-n)p Ft(')h(is)f(sp)s
+(eci\014ed,)j(the)e(trailing)h(newline)e(is)h(suppressed.)66
+b(If)p eop end
+%%Page: 45 51
+TeXDict begin 45 50 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(45)630 299 y(the)29
+b(`)p Fs(-e)p Ft(')g(option)g(is)h(giv)m(en,)g(in)m(terpretation)g(of)g
+(the)f(follo)m(wing)h(bac)m(kslash-escap)s(ed)g(c)m(har-)630
+408 y(acters)38 b(is)f(enabled.)60 b(The)36 b(`)p Fs(-E)p
+Ft(')h(option)g(disables)g(the)g(in)m(terpretation)h(of)f(these)g
+(escap)s(e)630 518 y(c)m(haracters,)h(ev)m(en)d(on)g(systems)g(where)f
+(they)h(are)g(in)m(terpreted)h(b)m(y)e(default.)55 b(The)34
+b Fs(xpg_)630 628 y(echo)d Ft(shell)h(option)h(ma)m(y)g(b)s(e)e(used)h
+(to)h(dynamically)g(determine)f(whether)f(or)i(not)f
+Fs(echo)630 737 y Ft(expands)39 b(these)i(escap)s(e)g(c)m(haracters)g
+(b)m(y)g(default.)70 b Fs(echo)39 b Ft(do)s(es)h(not)g(in)m(terpret)h
+(`)p Fs(--)p Ft(')f(to)630 847 y(mean)30 b(the)h(end)f(of)g(options.)
+630 976 y Fs(echo)f Ft(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)f
+(sequences:)630 1126 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630
+1275 y Fs(\\b)384 b Ft(bac)m(kspace)630 1425 y Fs(\\c)g
+Ft(suppress)28 b(further)h(output)630 1574 y Fs(\\e)384
+b Ft(escap)s(e)630 1724 y Fs(\\f)g Ft(form)30 b(feed)630
+1873 y Fs(\\n)384 b Ft(new)30 b(line)630 2022 y Fs(\\r)384
+b Ft(carriage)32 b(return)630 2172 y Fs(\\t)384 b Ft(horizon)m(tal)32
+b(tab)630 2321 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630
+2471 y Fs(\\\\)384 b Ft(bac)m(kslash)630 2620 y Fs(\\0)p
+Fj(nnn)240 b Ft(the)32 b(eigh)m(t-bit)i(c)m(haracter)g(whose)e(v)-5
+b(alue)33 b(is)f(the)g(o)s(ctal)i(v)-5 b(alue)32 b Fq(nnn)f
+Ft(\(zero)i(to)1110 2730 y(three)e(o)s(ctal)g(digits\))630
+2879 y Fs(\\x)p Fj(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g
+(whose)e(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5
+b(alue)40 b Fq(HH)1110 2989 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))150 3138 y Fs(enable)870 3268 y(enable)46 b([-a])h([-dnps])f
+([-f)g Fj(filename)11 b Fs(])45 b([)p Fj(name)57 b Fs(...)o(])630
+3397 y Ft(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56
+b(Disabling)37 b(a)g(builtin)e(allo)m(ws)i(a)f(disk)630
+3507 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h
+(builtin)e(to)i(b)s(e)f(executed)h(without)630 3616 y(sp)s(ecifying)27
+b(a)g(full)g(pathname,)g(ev)m(en)h(though)f(the)g(shell)g(normally)g
+(searc)m(hes)h(for)f(builtins)630 3726 y(b)s(efore)32
+b(disk)f(commands.)46 b(If)31 b(`)p Fs(-n)p Ft(')h(is)g(used,)g(the)g
+Fq(name)5 b Ft(s)32 b(b)s(ecome)h(disabled.)45 b(Otherwise)630
+3836 y Fq(name)5 b Ft(s)44 b(are)h(enabled.)82 b(F)-8
+b(or)45 b(example,)k(to)c(use)f(the)g Fs(test)f Ft(binary)h(found)f
+(via)h Fs($PATH)630 3945 y Ft(instead)31 b(of)f(the)h(shell)f(builtin)g
+(v)m(ersion,)h(t)m(yp)s(e)g(`)p Fs(enable)e(-n)h(test)p
+Ft('.)630 4075 y(If)42 b(the)h(`)p Fs(-p)p Ft(')f(option)h(is)f
+(supplied,)j(or)d(no)h Fq(name)k Ft(argumen)m(ts)c(app)s(ear,)i(a)e
+(list)g(of)g(shell)630 4184 y(builtins)37 b(is)h(prin)m(ted.)63
+b(With)38 b(no)f(other)h(argumen)m(ts,)j(the)d(list)g(consists)g(of)g
+(all)h(enabled)630 4294 y(shell)33 b(builtins.)46 b(The)32
+b(`)p Fs(-a)p Ft(')h(option)g(means)f(to)i(list)f(eac)m(h)h(builtin)e
+(with)g(an)g(indication)i(of)630 4403 y(whether)c(or)g(not)h(it)g(is)f
+(enabled.)630 4533 y(The)40 b(`)p Fs(-f)p Ft(')g(option)g(means)g(to)h
+(load)g(the)f(new)f(builtin)h(command)g Fq(name)45 b
+Ft(from)40 b(shared)630 4643 y(ob)5 b(ject)27 b Fq(\014lename)p
+Ft(,)g(on)f(systems)g(that)h(supp)s(ort)d(dynamic)i(loading.)40
+b(The)26 b(`)p Fs(-d)p Ft(')g(option)h(will)630 4752
+y(delete)32 b(a)e(builtin)g(loaded)h(with)f(`)p Fs(-f)p
+Ft('.)630 4882 y(If)h(there)g(are)g(no)g(options,)h(a)f(list)h(of)f
+(the)g(shell)g(builtins)g(is)g(displa)m(y)m(ed.)43 b(The)31
+b(`)p Fs(-s)p Ft(')f(option)630 4991 y(restricts)f Fs(enable)e
+Ft(to)i(the)f Fl(posix)g Ft(sp)s(ecial)h(builtins.)40
+b(If)27 b(`)p Fs(-s)p Ft(')i(is)f(used)g(with)g(`)p Fs(-f)p
+Ft(',)h(the)f(new)630 5101 y(builtin)i(b)s(ecomes)h(a)f(sp)s(ecial)h
+(builtin)f(\(see)i(Section)f(4.4)g([Sp)s(ecial)g(Builtins],)g(page)g
+(59\).)630 5230 y(The)26 b(return)f(status)h(is)g(zero)h(unless)e(a)i
+Fq(name)k Ft(is)26 b(not)g(a)h(shell)f(builtin)g(or)g(there)g(is)g(an)g
+(error)630 5340 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g
+(ob)5 b(ject.)p eop end
+%%Page: 46 52
+TeXDict begin 46 51 bop 150 -116 a Ft(46)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(help)870 435 y(help)47
+b([-dms])f([)p Fj(pattern)11 b Fs(])630 571 y Ft(Displa)m(y)40
+b(helpful)e(information)h(ab)s(out)g(builtin)f(commands.)66
+b(If)38 b Fq(pattern)h Ft(is)g(sp)s(eci\014ed,)630 681
+y Fs(help)28 b Ft(giv)m(es)i(detailed)g(help)e(on)h(all)h(commands)e
+(matc)m(hing)i Fq(pattern)p Ft(,)g(otherwise)f(a)g(list)h(of)630
+791 y(the)h(builtins)e(is)i(prin)m(ted.)630 927 y(Options,)f(if)h
+(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630
+1090 y Fs(-d)384 b Ft(Displa)m(y)32 b(a)e(short)g(description)h(of)f
+(eac)m(h)i Fq(pattern)630 1253 y Fs(-m)384 b Ft(Displa)m(y)32
+b(the)e(description)g(of)h(eac)m(h)h Fq(pattern)e Ft(in)g(a)h
+(manpage-lik)m(e)h(format)630 1416 y Fs(-s)384 b Ft(Displa)m(y)32
+b(only)e(a)h(short)f(usage)h(synopsis)e(for)i(eac)m(h)g
+Fq(pattern)630 1578 y Ft(The)f(return)f(status)i(is)f(zero)h(unless)f
+(no)g(command)h(matc)m(hes)g Fq(pattern)p Ft(.)150 1741
+y Fs(let)870 1878 y(let)47 b Fj(expression)55 b Fs([)p
+Fj(expression)11 b Fs(])630 2014 y Ft(The)41 b Fs(let)g
+Ft(builtin)g(allo)m(ws)i(arithmetic)f(to)h(b)s(e)d(p)s(erformed)g(on)i
+(shell)g(v)-5 b(ariables.)74 b(Eac)m(h)630 2123 y Fq(expression)31
+b Ft(is)g(ev)-5 b(aluated)32 b(according)f(to)h(the)f(rules)g(giv)m(en)
+h(b)s(elo)m(w)f(in)f(Section)i(6.5)g([Shell)630 2233
+y(Arithmetic],)51 b(page)46 b(78.)87 b(If)45 b(the)g(last)h
+Fq(expression)g Ft(ev)-5 b(aluates)47 b(to)f(0,)k Fs(let)44
+b Ft(returns)g(1;)630 2343 y(otherwise)31 b(0)g(is)f(returned.)150
+2505 y Fs(local)870 2642 y(local)46 b([)p Fj(option)11
+b Fs(])45 b Fj(name)11 b Fs([=)p Fj(value)g Fs(])44 b(...)630
+2778 y Ft(F)-8 b(or)27 b(eac)m(h)g(argumen)m(t,)g(a)f(lo)s(cal)h(v)-5
+b(ariable)27 b(named)e Fq(name)31 b Ft(is)26 b(created,)i(and)d
+(assigned)h Fq(v)-5 b(alue)p Ft(.)630 2888 y(The)37 b
+Fq(option)h Ft(can)f(b)s(e)g(an)m(y)h(of)f(the)h(options)g(accepted)g
+(b)m(y)g Fs(declare)p Ft(.)59 b Fs(local)36 b Ft(can)i(only)630
+2997 y(b)s(e)j(used)h(within)f(a)i(function;)48 b(it)42
+b(mak)m(es)h(the)f(v)-5 b(ariable)43 b Fq(name)48 b Ft(ha)m(v)m(e)43
+b(a)f(visible)h(scop)s(e)630 3107 y(restricted)c(to)g(that)g(function)f
+(and)f(its)i(c)m(hildren.)64 b(The)38 b(return)f(status)h(is)h(zero)g
+(unless)630 3216 y Fs(local)g Ft(is)h(used)g(outside)g(a)h(function,)h
+(an)e(in)m(v)-5 b(alid)41 b Fq(name)46 b Ft(is)40 b(supplied,)i(or)e
+Fq(name)45 b Ft(is)c(a)630 3326 y(readonly)30 b(v)-5
+b(ariable.)150 3489 y Fs(logout)870 3625 y(logout)46
+b([)p Fj(n)11 b Fs(])630 3761 y Ft(Exit)31 b(a)g(login)g(shell,)g
+(returning)e(a)i(status)g(of)f Fq(n)g Ft(to)h(the)g(shell's)f(paren)m
+(t.)150 3924 y Fs(mapfile)870 4060 y(mapfile)46 b([-n)h
+Fj(count)11 b Fs(])45 b([-O)i Fj(origin)11 b Fs(])46
+b([-s)g Fj(count)11 b Fs(])46 b([-t])h([-u)g Fj(fd)11
+b Fs(])46 b([)870 4170 y(-C)h Fj(callback)11 b Fs(])45
+b([-c)i Fj(quantum)11 b Fs(])45 b([)p Fj(array)11 b Fs(])630
+4306 y Ft(Read)35 b(lines)h(from)f(the)g(standard)g(input)f(in)m(to)i
+(arra)m(y)g(v)-5 b(ariable)36 b Fq(arra)m(y)p Ft(,)h(or)f(from)e
+(\014le)i(de-)630 4416 y(scriptor)f Fq(fd)j Ft(if)d(the)h(`)p
+Fs(-u)p Ft(')f(option)h(is)f(supplied.)54 b(The)35 b(v)-5
+b(ariable)36 b Fs(MAPFILE)d Ft(is)i(the)h(default)630
+4525 y Fq(arra)m(y)p Ft(.)41 b(Options,)30 b(if)h(supplied,)e(ha)m(v)m
+(e)j(the)e(follo)m(wing)i(meanings:)630 4688 y Fs(-n)384
+b Ft(Cop)m(y)30 b(at)h(most)g Fq(coun)m(t)i Ft(lines.)41
+b(If)30 b Fq(coun)m(t)j Ft(is)d(0,)h(all)h(lines)e(are)h(copied.)630
+4851 y Fs(-O)384 b Ft(Begin)31 b(assigning)g(to)g Fq(arra)m(y)39
+b Ft(at)31 b(index)f Fq(origin)p Ft(.)41 b(The)30 b(default)h(index)f
+(is)g(0.)630 5014 y Fs(-s)384 b Ft(Discard)31 b(the)f(\014rst)g
+Fq(coun)m(t)j Ft(lines)e(read.)630 5177 y Fs(-t)384 b
+Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(line)g(from)f(eac)m(h)i(line)e
+(read.)630 5340 y Fs(-u)384 b Ft(Read)31 b(lines)f(from)g(\014le)h
+(descriptor)f Fq(fd)j Ft(instead)e(of)f(the)h(standard)e(input.)p
+eop end
+%%Page: 47 53
+TeXDict begin 47 52 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(47)630 299 y Fs(-C)384
+b Ft(Ev)-5 b(aluate)43 b Fq(callbac)m(k)49 b Ft(eac)m(h)42
+b(time)g Fq(quan)m(tum)p Ft(P)f(lines)h(are)f(read.)74
+b(The)41 b(`)p Fs(-c)p Ft(')1110 408 y(option)31 b(sp)s(eci\014es)f
+Fq(quan)m(tum)p Ft(.)630 573 y Fs(-c)384 b Ft(Sp)s(ecify)30
+b(the)g(n)m(um)m(b)s(er)f(of)i(lines)f(read)h(b)s(et)m(w)m(een)g(eac)m
+(h)g(call)h(to)f Fq(callbac)m(k)p Ft(.)630 737 y(If)e(`)p
+Fs(-C)p Ft(')g(is)h(sp)s(eci\014ed)f(without)g(`)p Fs(-c)p
+Ft(',)h(the)g(default)g(quan)m(tum)f(is)g(5000.)42 b(When)30
+b Fq(callbac)m(k)37 b Ft(is)630 847 y(ev)-5 b(aluated,)35
+b(it)e(is)f(supplied)g(the)g(index)g(of)h(the)g(next)g(arra)m(y)g
+(elemen)m(t)h(to)f(b)s(e)f(assigned)h(as)630 956 y(an)f(additional)h
+(argumen)m(t.)46 b Fq(callbac)m(k)40 b Ft(is)32 b(ev)-5
+b(aluated)33 b(after)g(the)f(line)h(is)f(read)g(but)f(b)s(efore)630
+1066 y(the)g(arra)m(y)f(elemen)m(t)i(is)f(assigned.)630
+1203 y(If)25 b(not)g(supplied)f(with)h(an)g(explicit)i(origin,)g
+Fs(mapfile)c Ft(will)j(clear)g Fq(arra)m(y)34 b Ft(b)s(efore)24
+b(assigning)630 1313 y(to)31 b(it.)630 1450 y Fs(mapfile)41
+b Ft(returns)g(successfully)i(unless)e(an)i(in)m(v)-5
+b(alid)43 b(option)g(or)g(option)g(argumen)m(t)g(is)630
+1559 y(supplied,)29 b(or)i Fq(arra)m(y)38 b Ft(is)31
+b(in)m(v)-5 b(alid)31 b(or)f(unassignable.)150 1724 y
+Fs(printf)870 1861 y(printf)46 b([-v)h Fj(var)11 b Fs(])46
+b Fj(format)57 b Fs([)p Fj(arguments)11 b Fs(])630 1998
+y Ft(W)-8 b(rite)27 b(the)g(formatted)f Fq(argumen)m(ts)k
+Ft(to)d(the)f(standard)f(output)h(under)e(the)i(con)m(trol)i(of)e(the)
+630 2107 y Fq(format)p Ft(.)41 b(The)28 b Fq(format)j
+Ft(is)e(a)g(c)m(haracter)i(string)d(whic)m(h)h(con)m(tains)h(three)f(t)
+m(yp)s(es)g(of)g(ob)5 b(jects:)630 2217 y(plain)28 b(c)m(haracters,)j
+(whic)m(h)d(are)h(simply)f(copied)h(to)h(standard)d(output,)i(c)m
+(haracter)h(escap)s(e)630 2326 y(sequences,)g(whic)m(h)f(are)g(con)m(v)
+m(erted)i(and)d(copied)i(to)f(the)h(standard)e(output,)h(and)g(format)
+630 2436 y(sp)s(eci\014cations,)39 b(eac)m(h)e(of)g(whic)m(h)f(causes)g
+(prin)m(ting)g(of)h(the)f(next)h(successiv)m(e)g Fq(argumen)m(t)p
+Ft(.)630 2545 y(In)31 b(addition)h(to)h(the)e(standard)g
+Fs(printf\(1\))f Ft(formats,)i(`)p Fs(\045b)p Ft(')g(causes)g
+Fs(printf)e Ft(to)j(expand)630 2655 y(bac)m(kslash)39
+b(escap)s(e)g(sequences)f(in)h(the)f(corresp)s(onding)f
+Fq(argumen)m(t)p Ft(,)k(\(except)f(that)f(`)p Fs(\\c)p
+Ft(')630 2765 y(terminates)44 b(output,)j(bac)m(kslashes)d(in)f(`)p
+Fs(\\')p Ft(',)k(`)p Fs(\\")p Ft(',)g(and)c(`)p Fs(\\?)p
+Ft(')g(are)h(not)g(remo)m(v)m(ed,)k(and)630 2874 y(o)s(ctal)25
+b(escap)s(es)f(b)s(eginning)f(with)g(`)p Fs(\\0)p Ft(')h(ma)m(y)g(con)m
+(tain)h(up)e(to)h(four)f(digits\),)j(and)d(`)p Fs(\045q)p
+Ft(')h(causes)630 2984 y Fs(printf)31 b Ft(to)i(output)f(the)h(corresp)
+s(onding)f Fq(argumen)m(t)j Ft(in)d(a)h(format)g(that)g(can)g(b)s(e)f
+(reused)630 3093 y(as)f(shell)f(input.)630 3230 y(The)24
+b(`)p Fs(-v)p Ft(')h(option)g(causes)g(the)g(output)g(to)g(b)s(e)f
+(assigned)h(to)h(the)f(v)-5 b(ariable)25 b Fq(v)-5 b(ar)32
+b Ft(rather)24 b(than)630 3340 y(b)s(eing)30 b(prin)m(ted)g(to)h(the)g
+(standard)e(output.)630 3477 y(The)i Fq(format)i Ft(is)f(reused)e(as)i
+(necessary)f(to)i(consume)e(all)h(of)f(the)h Fq(argumen)m(ts)p
+Ft(.)44 b(If)30 b(the)i Fq(for-)630 3587 y(mat)c Ft(requires)e(more)g
+Fq(argumen)m(ts)k Ft(than)25 b(are)i(supplied,)e(the)h(extra)h(format)f
+(sp)s(eci\014cations)630 3696 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g
+(v)-5 b(alue)29 b(or)g(n)m(ull)f(string,)h(as)g(appropriate,)g(had)f(b)
+s(een)g(supplied.)38 b(The)630 3806 y(return)29 b(v)-5
+b(alue)31 b(is)g(zero)g(on)f(success,)h(non-zero)g(on)f(failure.)150
+3970 y Fs(read)870 4107 y(read)47 b([-ers])f([-a)h Fj(aname)11
+b Fs(])45 b([-d)i Fj(delim)11 b Fs(])46 b([-i)h Fj(text)11
+b Fs(])46 b([-n)g Fj(nchars)11 b Fs(])46 b([-p)h Fj(prompt)11
+b Fs(])45 b([-t)i Fj(time-)870 4217 y(out)11 b Fs(])46
+b([-u)h Fj(fd)11 b Fs(])46 b([)p Fj(name)57 b Fs(...])630
+4354 y Ft(One)26 b(line)h(is)g(read)f(from)h(the)f(standard)g(input,)h
+(or)g(from)f(the)h(\014le)f(descriptor)h Fq(fd)i Ft(supplied)630
+4463 y(as)37 b(an)g(argumen)m(t)h(to)f(the)h(`)p Fs(-u)p
+Ft(')e(option,)k(and)c(the)i(\014rst)e(w)m(ord)g(is)h(assigned)h(to)f
+(the)h(\014rst)630 4573 y Fq(name)p Ft(,)29 b(the)f(second)h(w)m(ord)e
+(to)i(the)g(second)f Fq(name)p Ft(,)h(and)e(so)i(on,)g(with)f(lefto)m
+(v)m(er)i(w)m(ords)e(and)630 4682 y(their)g(in)m(terv)m(ening)h
+(separators)g(assigned)f(to)h(the)f(last)h Fq(name)p
+Ft(.)40 b(If)27 b(there)i(are)f(few)m(er)g(w)m(ords)630
+4792 y(read)44 b(from)f(the)g(input)g(stream)h(than)g(names,)j(the)c
+(remaining)h(names)g(are)g(assigned)630 4902 y(empt)m(y)31
+b(v)-5 b(alues.)41 b(The)30 b(c)m(haracters)i(in)e(the)h(v)-5
+b(alue)31 b(of)g(the)f Fs(IFS)g Ft(v)-5 b(ariable)31
+b(are)g(used)f(to)h(split)630 5011 y(the)37 b(line)h(in)m(to)g(w)m
+(ords.)61 b(The)36 b(bac)m(kslash)i(c)m(haracter)h(`)p
+Fs(\\)p Ft(')e(ma)m(y)h(b)s(e)f(used)f(to)i(remo)m(v)m(e)h(an)m(y)630
+5121 y(sp)s(ecial)h(meaning)g(for)f(the)g(next)h(c)m(haracter)h(read)e
+(and)g(for)g(line)h(con)m(tin)m(uation.)69 b(If)39 b(no)630
+5230 y(names)28 b(are)h(supplied,)f(the)g(line)h(read)g(is)f(assigned)h
+(to)g(the)f(v)-5 b(ariable)29 b Fs(REPLY)p Ft(.)39 b(The)28
+b(return)630 5340 y(co)s(de)e(is)g(zero,)h(unless)e(end-of-\014le)h(is)
+g(encoun)m(tered,)h Fs(read)e Ft(times)h(out)g(\(in)g(whic)m(h)f(case)i
+(the)p eop end
+%%Page: 48 54
+TeXDict begin 48 53 bop 150 -116 a Ft(48)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y(return)e(co)s(de)i(is)g(greater)g
+(than)g(128\),)h(or)f(an)f(in)m(v)-5 b(alid)31 b(\014le)g(descriptor)f
+(is)h(supplied)e(as)i(the)630 408 y(argumen)m(t)g(to)g(`)p
+Fs(-u)p Ft('.)630 544 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g
+(follo)m(wing)h(meanings:)630 707 y Fs(-a)e Fj(aname)114
+b Ft(The)34 b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices)
+e(of)g(the)g(arra)m(y)h(v)-5 b(ariable)1110 816 y Fq(aname)p
+Ft(,)29 b(starting)h(at)f(0.)40 b(All)29 b(elemen)m(ts)h(are)e(remo)m
+(v)m(ed)i(from)d Fq(aname)34 b Ft(b)s(efore)1110 926
+y(the)d(assignmen)m(t.)41 b(Other)30 b Fq(name)36 b Ft(argumen)m(ts)30
+b(are)h(ignored.)630 1088 y Fs(-d)f Fj(delim)114 b Ft(The)41
+b(\014rst)h(c)m(haracter)h(of)f Fq(delim)g Ft(is)g(used)g(to)g
+(terminate)h(the)f(input)f(line,)1110 1198 y(rather)30
+b(than)g(newline.)630 1360 y Fs(-e)384 b Ft(Readline)28
+b(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)i(page)f(93\))h(is)
+f(used)1110 1469 y(to)42 b(obtain)f(the)g(line.)73 b(Readline)41
+b(uses)g(the)g(curren)m(t)g(\(or)g(default,)j(if)d(line)1110
+1579 y(editing)31 b(w)m(as)g(not)f(previously)g(activ)m(e\))j(editing)f
+(settings.)630 1741 y Fs(-i)e Fj(text)162 b Ft(If)36
+b(Readline)i(is)f(b)s(eing)g(used)f(to)h(read)g(the)g(line,)j
+Fq(text)f Ft(is)e(placed)h(in)m(to)g(the)1110 1851 y(editing)31
+b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630 2013
+y Fs(-n)f Fj(nchars)1110 2122 y Fs(read)38 b Ft(returns)f(after)j
+(reading)f Fq(nc)m(hars)j Ft(c)m(haracters)e(rather)f(than)g(w)m
+(aiting)1110 2232 y(for)30 b(a)h(complete)h(line)e(of)h(input.)630
+2394 y Fs(-p)f Fj(prompt)1110 2504 y Ft(Displa)m(y)38
+b Fq(prompt)p Ft(,)g(without)e(a)h(trailing)h(newline,)h(b)s(efore)d
+(attempting)i(to)1110 2613 y(read)f(an)m(y)h(input.)60
+b(The)37 b(prompt)g(is)g(displa)m(y)m(ed)h(only)f(if)g(input)g(is)g
+(coming)1110 2723 y(from)30 b(a)h(terminal.)630 2885
+y Fs(-r)384 b Ft(If)21 b(this)h(option)g(is)f(giv)m(en,)k(bac)m(kslash)
+d(do)s(es)f(not)h(act)h(as)f(an)f(escap)s(e)h(c)m(haracter.)1110
+2995 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h
+(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 3104
+y(bac)m(kslash-newline)f(pair)f(ma)m(y)h(not)g(b)s(e)f(used)f(as)i(a)g
+(line)f(con)m(tin)m(uation.)630 3267 y Fs(-s)384 b Ft(Silen)m(t)28
+b(mo)s(de.)40 b(If)27 b(input)f(is)i(coming)g(from)f(a)h(terminal,)h(c)
+m(haracters)g(are)f(not)1110 3376 y(ec)m(ho)s(ed.)630
+3538 y Fs(-t)i Fj(timeout)1110 3648 y Ft(Cause)23 b Fs(read)f
+Ft(to)i(time)f(out)h(and)e(return)g(failure)h(if)g(a)h(complete)g(line)
+g(of)f(input)1110 3758 y(is)44 b(not)f(read)h(within)e
+Fq(timeout)47 b Ft(seconds.)80 b Fq(timeout)46 b Ft(ma)m(y)e(b)s(e)f(a)
+h(decimal)1110 3867 y(n)m(um)m(b)s(er)26 b(with)h(a)h(fractional)h(p)s
+(ortion)d(follo)m(wing)j(the)f(decimal)g(p)s(oin)m(t.)40
+b(This)1110 3977 y(option)g(is)g(only)g(e\013ectiv)m(e)j(if)c
+Fs(read)g Ft(is)h(reading)g(input)f(from)g(a)h(terminal,)1110
+4086 y(pip)s(e,)25 b(or)e(other)i(sp)s(ecial)f(\014le;)i(it)f(has)e(no)
+h(e\013ect)h(when)e(reading)h(from)g(regular)1110 4196
+y(\014les.)55 b(If)34 b Fq(timeout)k Ft(is)d(0,)i Fs(read)d
+Ft(returns)g(success)h(if)g(input)g(is)g(a)m(v)-5 b(ailable)37
+b(on)1110 4305 y(the)j(sp)s(eci\014ed)f(\014le)g(descriptor,)j(failure)
+e(otherwise.)69 b(The)39 b(exit)h(status)g(is)1110 4415
+y(greater)32 b(than)e(128)h(if)g(the)f(timeout)i(is)e(exceeded.)630
+4577 y Fs(-u)g Fj(fd)258 b Ft(Read)31 b(input)e(from)h(\014le)g
+(descriptor)h Fq(fd)p Ft(.)150 4739 y Fs(readarray)870
+4849 y(readarray)45 b([-n)i Fj(count)11 b Fs(])46 b([-O)h
+Fj(origin)11 b Fs(])45 b([-s)i Fj(count)11 b Fs(])46
+b([-t])g([-u)h Fj(fd)11 b Fs(])47 b([)870 4959 y(-C)g
+Fj(callback)11 b Fs(])45 b([-c)i Fj(quantum)11 b Fs(])45
+b([)p Fj(array)11 b Fs(])630 5094 y Ft(Read)35 b(lines)h(from)f(the)g
+(standard)g(input)f(in)m(to)i(arra)m(y)g(v)-5 b(ariable)36
+b Fq(arra)m(y)p Ft(,)h(or)f(from)e(\014le)i(de-)630 5204
+y(scriptor)30 b Fq(fd)k Ft(if)c(the)g(`)p Fs(-u)p Ft(')h(option)f(is)h
+(supplied.)630 5340 y(A)f(synon)m(ym)g(for)g Fs(mapfile)p
+Ft(.)p eop end
+%%Page: 49 55
+TeXDict begin 49 54 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(49)150 299 y Fs(source)870
+435 y(source)46 b Fj(filename)630 571 y Ft(A)30 b(synon)m(ym)g(for)g
+Fs(.)g Ft(\(see)i(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g
+(35\).)150 734 y Fs(type)870 870 y(type)47 b([-afptP])e([)p
+Fj(name)57 b Fs(...)o(])630 1006 y Ft(F)-8 b(or)42 b(eac)m(h)g
+Fq(name)p Ft(,)i(indicate)e(ho)m(w)g(it)f(w)m(ould)g(b)s(e)g(in)m
+(terpreted)g(if)g(used)f(as)i(a)f(command)630 1116 y(name.)630
+1252 y(If)d(the)g(`)p Fs(-t)p Ft(')g(option)g(is)g(used,)i
+Fs(type)d Ft(prin)m(ts)g(a)i(single)f(w)m(ord)g(whic)m(h)g(is)g(one)g
+(of)h(`)p Fs(alias)p Ft(',)630 1362 y(`)p Fs(function)p
+Ft(',)32 b(`)p Fs(builtin)p Ft(',)g(`)p Fs(file)p Ft(')g(or)h(`)p
+Fs(keyword)p Ft(',)f(if)h Fq(name)38 b Ft(is)33 b(an)f(alias,)j(shell)e
+(function,)630 1471 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h
+(reserv)m(ed)g(w)m(ord,)h(resp)s(ectiv)m(ely)-8 b(.)55
+b(If)34 b(the)h Fq(name)40 b Ft(is)35 b(not)630 1581
+y(found,)29 b(then)h(nothing)h(is)f(prin)m(ted,)g(and)g
+Fs(type)f Ft(returns)g(a)i(failure)g(status.)630 1717
+y(If)39 b(the)g(`)p Fs(-p)p Ft(')g(option)h(is)f(used,)i
+Fs(type)d Ft(either)h(returns)f(the)i(name)f(of)g(the)g(disk)g(\014le)g
+(that)630 1826 y(w)m(ould)30 b(b)s(e)g(executed,)h(or)g(nothing)f(if)g
+(`)p Fs(-t)p Ft(')h(w)m(ould)f(not)g(return)g(`)p Fs(file)p
+Ft('.)630 1963 y(The)23 b(`)p Fs(-P)p Ft(')h(option)g(forces)g(a)g
+(path)g(searc)m(h)g(for)g(eac)m(h)g Fq(name)p Ft(,)i(ev)m(en)e(if)g(`)p
+Fs(-t)p Ft(')g(w)m(ould)f(not)h(return)630 2072 y(`)p
+Fs(file)p Ft('.)630 2208 y(If)34 b(a)i(command)e(is)h(hashed,)g(`)p
+Fs(-p)p Ft(')g(and)f(`)p Fs(-P)p Ft(')h(prin)m(t)f(the)h(hashed)f(v)-5
+b(alue,)37 b(not)e(necessarily)630 2318 y(the)c(\014le)f(that)h(app)s
+(ears)f(\014rst)f(in)h Fs($PATH)p Ft(.)630 2454 y(If)36
+b(the)h(`)p Fs(-a)p Ft(')g(option)g(is)g(used,)g Fs(type)f
+Ft(returns)f(all)j(of)f(the)g(places)g(that)g(con)m(tain)h(an)f(exe-)
+630 2564 y(cutable)d(named)f Fq(\014le)p Ft(.)50 b(This)33
+b(includes)g(aliases)i(and)e(functions,)h(if)f(and)g(only)h(if)f(the)h
+(`)p Fs(-p)p Ft(')630 2673 y(option)d(is)f(not)h(also)g(used.)630
+2809 y(If)26 b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g(used,)g
+Fs(type)e Ft(do)s(es)i(not)g(attempt)g(to)h(\014nd)d(shell)i
+(functions,)g(as)g(with)630 2919 y(the)k Fs(command)d
+Ft(builtin.)630 3055 y(The)j(return)f(status)h(is)g(zero)h(if)f(all)h
+(of)f(the)h Fq(names)i Ft(are)e(found,)e(non-zero)i(if)f(an)m(y)g(are)h
+(not)630 3165 y(found.)150 3328 y Fs(typeset)870 3464
+y(typeset)46 b([-afFrxi])f([-p])i([)p Fj(name)11 b Fs([=)p
+Fj(value)g Fs(])43 b(...)o(])630 3600 y Ft(The)29 b Fs(typeset)f
+Ft(command)h(is)g(supplied)g(for)g(compatibilit)m(y)j(with)d(the)h
+(Korn)e(shell;)j(ho)m(w-)630 3709 y(ev)m(er,)g(it)g(has)f(b)s(een)g
+(deprecated)h(in)f(fa)m(v)m(or)i(of)e(the)h Fs(declare)d
+Ft(builtin)i(command.)150 3872 y Fs(ulimit)870 4008 y(ulimit)46
+b([-abcdefilmnpqrstuvxHST])41 b([)p Fj(limit)11 b Fs(])630
+4144 y(ulimit)25 b Ft(pro)m(vides)h(con)m(trol)i(o)m(v)m(er)g(the)f
+(resources)f(a)m(v)-5 b(ailable)29 b(to)e(pro)s(cesses)f(started)h(b)m
+(y)g(the)630 4254 y(shell,)i(on)f(systems)g(that)h(allo)m(w)h(suc)m(h)e
+(con)m(trol.)41 b(If)28 b(an)g(option)h(is)f(giv)m(en,)i(it)e(is)h(in)m
+(terpreted)630 4364 y(as)i(follo)m(ws:)630 4526 y Fs(-S)384
+b Ft(Change)30 b(and)g(rep)s(ort)g(the)g(soft)h(limit)g(asso)s(ciated)h
+(with)e(a)h(resource.)630 4689 y Fs(-H)384 b Ft(Change)30
+b(and)g(rep)s(ort)g(the)g(hard)g(limit)h(asso)s(ciated)h(with)e(a)h
+(resource.)630 4852 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h
+(are)g(rep)s(orted.)630 5015 y Fs(-b)384 b Ft(The)30
+b(maxim)m(um)g(so)s(c)m(k)m(et)i(bu\013er)e(size.)630
+5177 y Fs(-c)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(core)g(\014les)
+f(created.)630 5340 y Fs(-d)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g
+(a)g(pro)s(cess's)f(data)h(segmen)m(t.)p eop end
+%%Page: 50 56
+TeXDict begin 50 55 bop 150 -116 a Ft(50)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(-e)384 b Ft(The)30
+b(maxim)m(um)g(sc)m(heduling)h(priorit)m(y)f(\()p Fs(")p
+Ft(nice)p Fs(")p Ft(\).)630 483 y Fs(-f)384 b Ft(The)30
+b(maxim)m(um)g(size)h(of)g(\014les)f(written)h(b)m(y)f(the)g(shell)h
+(and)f(its)h(c)m(hildren.)630 667 y Fs(-i)384 b Ft(The)30
+b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s(ending)e(signals.)630
+851 y Fs(-l)384 b Ft(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s
+(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 b(.)630 1035
+y Fs(-m)384 b Ft(The)30 b(maxim)m(um)g(residen)m(t)h(set)g(size.)630
+1219 y Fs(-n)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(op)s
+(en)e(\014le)i(descriptors.)630 1403 y Fs(-p)384 b Ft(The)30
+b(pip)s(e)f(bu\013er)h(size.)630 1587 y Fs(-q)384 b Ft(The)30
+b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m(ytes)g(in)f(POSIX)f(message)j
+(queues.)630 1771 y Fs(-r)384 b Ft(The)30 b(maxim)m(um)g(real-time)i
+(sc)m(heduling)f(priorit)m(y)-8 b(.)630 1955 y Fs(-s)384
+b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)630 2139
+y Fs(-t)384 b Ft(The)30 b(maxim)m(um)g(amoun)m(t)h(of)f(cpu)g(time)h
+(in)f(seconds.)630 2323 y Fs(-u)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m
+(b)s(er)f(of)i(pro)s(cesses)f(a)m(v)-5 b(ailable)33 b(to)e(a)f(single)i
+(user.)630 2507 y Fs(-v)384 b Ft(The)29 b(maxim)m(um)h(amoun)m(t)g(of)g
+(virtual)g(memory)g(a)m(v)-5 b(ailable)32 b(to)e(the)g(pro)s(cess.)630
+2691 y Fs(-x)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
+(\014le)f(lo)s(c)m(ks.)630 2875 y Fs(-T)384 b Ft(The)30
+b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(threads.)630 3059
+y(If)i Fq(limit)j Ft(is)e(giv)m(en,)h(it)f(is)g(the)g(new)f(v)-5
+b(alue)34 b(of)f(the)h(sp)s(eci\014ed)f(resource;)i(the)f(sp)s(ecial)g
+Fq(limit)630 3168 y Ft(v)-5 b(alues)27 b Fs(hard)p Ft(,)g
+Fs(soft)p Ft(,)g(and)g Fs(unlimited)d Ft(stand)j(for)g(the)g(curren)m
+(t)g(hard)f(limit,)j(the)e(curren)m(t)630 3278 y(soft)38
+b(limit,)j(and)d(no)f(limit,)k(resp)s(ectiv)m(ely)-8
+b(.)66 b(A)38 b(hard)f(limit)h(cannot)h(b)s(e)e(increased)i(b)m(y)f(a)
+630 3387 y(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)k(a)c(soft)g
+(limit)h(ma)m(y)g(b)s(e)e(increased)h(up)f(to)i(the)f(v)-5
+b(alue)38 b(of)630 3497 y(the)c(hard)f(limit.)51 b(Otherwise,)35
+b(the)f(curren)m(t)f(v)-5 b(alue)35 b(of)f(the)f(soft)i(limit)f(for)g
+(the)g(sp)s(eci\014ed)630 3606 y(resource)27 b(is)h(prin)m(ted,)f
+(unless)g(the)g(`)p Fs(-H)p Ft(')g(option)h(is)f(supplied.)38
+b(When)27 b(setting)h(new)f(limits,)630 3716 y(if)40
+b(neither)f(`)p Fs(-H)p Ft(')h(nor)f(`)p Fs(-S)p Ft(')h(is)f(supplied,)
+i(b)s(oth)e(the)h(hard)f(and)g(soft)h(limits)g(are)g(set.)69
+b(If)630 3826 y(no)35 b(option)h(is)f(giv)m(en,)j(then)d(`)p
+Fs(-f)p Ft(')g(is)g(assumed.)55 b(V)-8 b(alues)36 b(are)f(in)g(1024-b)m
+(yte)j(incremen)m(ts,)630 3935 y(except)d(for)f(`)p Fs(-t)p
+Ft(',)g(whic)m(h)g(is)g(in)g(seconds,)h(`)p Fs(-p)p Ft(',)g(whic)m(h)e
+(is)h(in)g(units)f(of)h(512-b)m(yte)i(blo)s(c)m(ks,)630
+4045 y(and)30 b(`)p Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p
+Ft(',)g(whic)m(h)g(are)h(unscaled)f(v)-5 b(alues.)630
+4192 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an)g(in)m(v)-5
+b(alid)36 b(option)f(or)f(argumen)m(t)i(is)e(supplied,)h(or)630
+4301 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.)
+150 4485 y Fs(unalias)870 4632 y(unalias)46 b([-a])g([)p
+Fj(name)57 b Fs(...)47 b(])630 4779 y Ft(Remo)m(v)m(e)39
+b(eac)m(h)f Fq(name)k Ft(from)36 b(the)h(list)h(of)f(aliases.)61
+b(If)36 b(`)p Fs(-a)p Ft(')h(is)g(supplied,)h(all)f(aliases)i(are)630
+4888 y(remo)m(v)m(ed.)j(Aliases)31 b(are)g(describ)s(ed)e(in)h(Section)
+i(6.6)f([Aliases],)h(page)f(79.)150 5207 y Fr(4.3)68
+b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)p eop end
+%%Page: 51 57
+TeXDict begin 51 56 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(51)150 299 y Fk(4.3.1)63
+b(The)41 b(Set)g(Builtin)275 548 y Ft(This)27 b(builtin)h(is)h(so)f
+(complicated)i(that)f(it)g(deserv)m(es)g(its)g(o)m(wn)f(section.)42
+b Fs(set)27 b Ft(allo)m(ws)j(y)m(ou)f(to)g(c)m(hange)150
+657 y(the)k(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f
+(p)s(ositional)h(parameters,)h(or)e(to)h(displa)m(y)f(the)g(names)h
+(and)150 767 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150
+933 y Fs(set)870 1070 y(set)47 b([--abefhkmnptuvxBCEHPT])41
+b([-o)47 b Fj(option)11 b Fs(])46 b([)p Fj(argument)55
+b Fs(...])870 1179 y(set)47 b([+abefhkmnptuvxBCEHPT])42
+b([+o)47 b Fj(option)11 b Fs(])45 b([)p Fj(argument)56
+b Fs(...)o(])630 1316 y Ft(If)22 b(no)h(options)g(or)g(argumen)m(ts)g
+(are)g(supplied,)g Fs(set)f Ft(displa)m(ys)g(the)h(names)g(and)f(v)-5
+b(alues)23 b(of)g(all)630 1426 y(shell)j(v)-5 b(ariables)27
+b(and)e(functions,)h(sorted)g(according)h(to)g(the)f(curren)m(t)f(lo)s
+(cale,)k(in)c(a)i(format)630 1535 y(that)i(ma)m(y)h(b)s(e)e(reused)g
+(as)h(input)f(for)h(setting)h(or)e(resetting)i(the)f(curren)m(tly-set)h
+(v)-5 b(ariables.)630 1645 y(Read-only)37 b(v)-5 b(ariables)37
+b(cannot)h(b)s(e)e(reset.)59 b(In)36 b Fl(posix)g Ft(mo)s(de,)i(only)f
+(shell)f(v)-5 b(ariables)38 b(are)630 1755 y(listed.)630
+1891 y(When)29 b(options)g(are)g(supplied,)f(they)h(set)h(or)f(unset)f
+(shell)h(attributes.)41 b(Options,)29 b(if)g(sp)s(ec-)630
+2001 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
+2165 y Fs(-a)384 b Ft(Mark)32 b(v)-5 b(ariables)33 b(and)e(function)h
+(whic)m(h)g(are)g(mo)s(di\014ed)f(or)h(created)h(for)f(ex-)1110
+2275 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f
+(commands.)630 2439 y Fs(-b)384 b Ft(Cause)44 b(the)h(status)g(of)f
+(terminated)h(bac)m(kground)g(jobs)f(to)h(b)s(e)f(rep)s(orted)1110
+2548 y(immediately)-8 b(,)30 b(rather)d(than)f(b)s(efore)h(prin)m(ting)
+g(the)g(next)g(primary)g(prompt.)630 2712 y Fs(-e)384
+b Ft(Exit)37 b(immediately)h(if)e(a)h(simple)f(command)g(\(see)i
+(Section)f(3.2.1)h([Simple)1110 2822 y(Commands],)31
+b(page)i(8\))f(exits)g(with)g(a)g(non-zero)g(status,)g(unless)f(the)h
+(com-)1110 2931 y(mand)f(that)h(fails)h(is)f(part)f(of)h(the)g(command)
+g(list)g(immediately)h(follo)m(wing)1110 3041 y(a)41
+b Fs(while)d Ft(or)j Fs(until)e Ft(k)m(eyw)m(ord,)k(part)d(of)g(the)h
+(test)g(in)f(an)g Fs(if)g Ft(statemen)m(t,)1110 3150
+y(part)33 b(of)h(a)g(command)f(executed)i(in)e(a)h Fs(&&)f
+Ft(or)g Fs(||b)g Ft(list,)i(an)m(y)f(command)f(in)1110
+3260 y(a)g(pip)s(eline)e(but)h(the)g(last,)i(or)f(if)f(the)g(command's)
+g(return)f(status)i(is)f(b)s(eing)1110 3370 y(in)m(v)m(erted)38
+b(using)e Fs(!)p Ft(.)60 b(F)-8 b(ailing)39 b(simple)e(commands)f(that)
+i(are)f(part)g(of)g(shell)1110 3479 y(functions)e(or)g(command)g(lists)
+h(enclosed)g(in)f(braces)g(or)h(paren)m(theses)f(sat-)1110
+3589 y(isfying)d(the)f(ab)s(o)m(v)m(e)i(conditions)f(do)g(not)f(cause)h
+(the)g(shell)g(to)g(exit.)45 b(A)32 b(trap)1110 3698
+y(on)e Fs(ERR)p Ft(,)g(if)g(set,)i(is)e(executed)h(b)s(efore)f(the)h
+(shell)f(exits.)630 3862 y Fs(-f)384 b Ft(Disable)31
+b(\014le)g(name)f(generation)i(\(globbing\).)630 4026
+y Fs(-h)384 b Ft(Lo)s(cate)33 b(and)e(remem)m(b)s(er)h(\(hash\))g
+(commands)f(as)h(they)g(are)g(lo)s(ok)m(ed)h(up)e(for)1110
+4136 y(execution.)42 b(This)29 b(option)i(is)g(enabled)f(b)m(y)g
+(default.)630 4300 y Fs(-k)384 b Ft(All)34 b(argumen)m(ts)g(in)f(the)h
+(form)f(of)g(assignmen)m(t)h(statemen)m(ts)i(are)d(placed)h(in)1110
+4410 y(the)k(en)m(vironmen)m(t)g(for)g(a)g(command,)h(not)f(just)f
+(those)i(that)f(precede)g(the)1110 4519 y(command)30
+b(name.)630 4683 y Fs(-m)384 b Ft(Job)30 b(con)m(trol)i(is)e(enabled)h
+(\(see)g(Chapter)f(7)g([Job)h(Con)m(trol],)g(page)g(89\).)630
+4847 y Fs(-n)384 b Ft(Read)21 b(commands)f(but)g(do)h(not)g(execute)h
+(them;)i(this)d(ma)m(y)g(b)s(e)f(used)g(to)h(c)m(hec)m(k)1110
+4957 y(a)42 b(script)g(for)g(syn)m(tax)g(errors.)75 b(This)41
+b(option)h(is)g(ignored)g(b)m(y)g(in)m(teractiv)m(e)1110
+5066 y(shells.)630 5230 y Fs(-o)30 b Fj(option-name)1110
+5340 y Ft(Set)h(the)f(option)h(corresp)s(onding)e(to)i
+Fq(option-name)5 b Ft(:)p eop end
+%%Page: 52 58
+TeXDict begin 52 57 bop 150 -116 a Ft(52)2572 b(Bash)31
+b(Reference)g(Man)m(ual)1110 299 y Fs(allexport)1590
+408 y Ft(Same)f(as)h Fs(-a)p Ft(.)1110 560 y Fs(braceexpand)1590
+669 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 821 y Fs(emacs)240
+b Ft(Use)25 b(an)f Fs(emacs)p Ft(-st)m(yle)h(line)f(editing)h(in)m
+(terface)h(\(see)g(Chapter)e(8)1590 930 y([Command)38
+b(Line)g(Editing],)i(page)f(93\).)66 b(This)37 b(also)i(a\013ects)1590
+1040 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h
+Fs(read)f(-e)p Ft(.)1110 1191 y Fs(errexit)144 b Ft(Same)30
+b(as)h Fs(-e)p Ft(.)1110 1343 y Fs(errtrace)96 b Ft(Same)30
+b(as)h Fs(-E)p Ft(.)1110 1494 y Fs(functrace)1590 1604
+y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 1755 y Fs(hashall)144
+b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 1906 y Fs(histexpand)1590
+2016 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 2167 y Fs(history)144
+b Ft(Enable)39 b(command)g(history)-8 b(,)42 b(as)d(describ)s(ed)f(in)h
+(Section)h(9.1)1590 2277 y([Bash)d(History)g(F)-8 b(acilities],)41
+b(page)c(121.)60 b(This)36 b(option)h(is)f(on)1590 2386
+y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)1110
+2538 y Fs(ignoreeof)1590 2647 y Ft(An)d(in)m(teractiv)m(e)j(shell)e
+(will)g(not)f(exit)h(up)s(on)e(reading)i(EOF.)1110 2799
+y Fs(keyword)144 b Ft(Same)30 b(as)h Fs(-k)p Ft(.)1110
+2950 y Fs(monitor)144 b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110
+3101 y Fs(noclobber)1590 3211 y Ft(Same)f(as)h Fs(-C)p
+Ft(.)1110 3362 y Fs(noexec)192 b Ft(Same)30 b(as)h Fs(-n)p
+Ft(.)1110 3513 y Fs(noglob)192 b Ft(Same)30 b(as)h Fs(-f)p
+Ft(.)1110 3665 y Fs(nolog)240 b Ft(Curren)m(tly)30 b(ignored.)1110
+3816 y Fs(notify)192 b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110
+3968 y Fs(nounset)144 b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110
+4119 y Fs(onecmd)192 b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110
+4270 y Fs(physical)96 b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110
+4422 y Fs(pipefail)96 b Ft(If)44 b(set,)k(the)d(return)e(v)-5
+b(alue)45 b(of)f(a)h(pip)s(eline)e(is)i(the)f(v)-5 b(alue)45
+b(of)1590 4531 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h
+(exit)g(with)f(a)g(non-zero)1590 4641 y(status,)28 b(or)f(zero)g(if)f
+(all)i(commands)e(in)g(the)h(pip)s(eline)f(exit)i(suc-)1590
+4750 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h
+(default.)1110 4902 y Fs(posix)240 b Ft(Change)30 b(the)g(b)s(eha)m
+(vior)h(of)f(Bash)g(where)g(the)g(default)h(op)s(era-)1590
+5011 y(tion)25 b(di\013ers)f(from)g(the)h Fl(posix)f
+Ft(standard)f(to)i(matc)m(h)h(the)f(stan-)1590 5121 y(dard)32
+b(\(see)i(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s(de],)j(page)e(85\).)
+1590 5230 y(This)k(is)g(in)m(tended)g(to)h(mak)m(e)g(Bash)g(b)s(eha)m
+(v)m(e)g(as)g(a)f(strict)h(su-)1590 5340 y(p)s(erset)30
+b(of)h(that)f(standard.)p eop end
+%%Page: 53 59
+TeXDict begin 53 58 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(53)1110 299 y
+Fs(privileged)1590 408 y Ft(Same)30 b(as)h Fs(-p)p Ft(.)1110
+560 y Fs(verbose)144 b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110
+712 y Fs(vi)384 b Ft(Use)36 b(a)g Fs(vi)p Ft(-st)m(yle)g(line)g
+(editing)g(in)m(terface.)58 b(This)35 b(also)h(a\013ects)1590
+822 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h
+Fs(read)f(-e)p Ft(.)1110 973 y Fs(xtrace)192 b Ft(Same)30
+b(as)h Fs(-x)p Ft(.)630 1125 y Fs(-p)384 b Ft(T)-8 b(urn)33
+b(on)h(privileged)h(mo)s(de.)51 b(In)34 b(this)g(mo)s(de,)h(the)f
+Fs($BASH_ENV)e Ft(and)h Fs($ENV)1110 1235 y Ft(\014les)k(are)h(not)g
+(pro)s(cessed,)h(shell)f(functions)f(are)h(not)f(inherited)h(from)f
+(the)1110 1344 y(en)m(vironmen)m(t,)47 b(and)42 b(the)h
+Fs(SHELLOPTS)p Ft(,)g Fs(CDPATH)e Ft(and)i Fs(GLOBIGNORE)c
+Ft(v)-5 b(ari-)1110 1454 y(ables,)36 b(if)e(they)g(app)s(ear)g(in)g
+(the)g(en)m(vironmen)m(t,)i(are)f(ignored.)53 b(If)33
+b(the)i(shell)1110 1563 y(is)i(started)h(with)f(the)g(e\013ectiv)m(e)j
+(user)d(\(group\))g(id)g(not)g(equal)h(to)g(the)f(real)1110
+1673 y(user)h(\(group\))h(id,)i(and)d(the)h Fs(-p)f Ft(option)i(is)e
+(not)i(supplied,)f(these)h(actions)1110 1783 y(are)32
+b(tak)m(en)i(and)d(the)h(e\013ectiv)m(e)j(user)c(id)h(is)g(set)h(to)f
+(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110 1892 y
+Fs(-p)i Ft(option)h(is)g(supplied)f(at)h(startup,)h(the)f(e\013ectiv)m
+(e)i(user)d(id)g(is)h(not)g(reset.)1110 2002 y(T)-8 b(urning)35
+b(this)i(option)g(o\013)g(causes)g(the)g(e\013ectiv)m(e)i(user)d(and)g
+(group)g(ids)g(to)1110 2111 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f
+(and)g(group)g(ids.)630 2263 y Fs(-t)384 b Ft(Exit)31
+b(after)g(reading)f(and)g(executing)h(one)g(command.)630
+2415 y Fs(-u)384 b Ft(T)-8 b(reat)38 b(unset)e(v)-5 b(ariables)37
+b(as)h(an)e(error)h(when)e(p)s(erforming)h(parameter)h(ex-)1110
+2524 y(pansion.)58 b(An)36 b(error)f(message)j(will)e(b)s(e)g(written)g
+(to)h(the)g(standard)e(error,)1110 2634 y(and)30 b(a)h(non-in)m
+(teractiv)m(e)i(shell)d(will)h(exit.)630 2786 y Fs(-v)384
+b Ft(Prin)m(t)30 b(shell)h(input)e(lines)i(as)g(they)f(are)h(read.)630
+2937 y Fs(-x)384 b Ft(Prin)m(t)21 b(a)h(trace)h(of)f(simple)f
+(commands,)i Fs(for)e Ft(commands,)i Fs(case)d Ft(commands,)1110
+3047 y Fs(select)29 b Ft(commands,)j(and)e(arithmetic)j
+Fs(for)d Ft(commands)h(and)f(their)i(argu-)1110 3157
+y(men)m(ts)h(or)f(asso)s(ciated)i(w)m(ord)e(lists)h(after)g(they)f(are)
+h(expanded)f(and)f(b)s(efore)1110 3266 y(they)i(are)g(executed.)49
+b(The)32 b(v)-5 b(alue)33 b(of)g(the)g Fs(PS4)f Ft(v)-5
+b(ariable)34 b(is)f(expanded)f(and)1110 3376 y(the)24
+b(resultan)m(t)h(v)-5 b(alue)24 b(is)g(prin)m(ted)g(b)s(efore)f(the)h
+(command)g(and)f(its)i(expanded)1110 3485 y(argumen)m(ts.)630
+3637 y Fs(-B)384 b Ft(The)41 b(shell)g(will)g(p)s(erform)f(brace)h
+(expansion)g(\(see)h(Section)g(3.5.1)g([Brace)1110 3747
+y(Expansion],)30 b(page)h(18\).)42 b(This)30 b(option)h(is)f(on)g(b)m
+(y)h(default.)630 3898 y Fs(-C)384 b Ft(Prev)m(en)m(t)25
+b(output)e(redirection)h(using)f(`)p Fs(>)p Ft(',)i(`)p
+Fs(>&)p Ft(',)g(and)e(`)p Fs(<>)p Ft(')g(from)h(o)m(v)m(erwriting)1110
+4008 y(existing)31 b(\014les.)630 4160 y Fs(-E)384 b
+Ft(If)39 b(set,)j(an)m(y)e(trap)f(on)g Fs(ERR)g Ft(is)g(inherited)g(b)m
+(y)g(shell)h(functions,)h(command)1110 4269 y(substitutions,)35
+b(and)e(commands)g(executed)i(in)f(a)g(subshell)f(en)m(vironmen)m(t.)
+1110 4379 y(The)d Fs(ERR)f Ft(trap)i(is)f(normally)h(not)f(inherited)g
+(in)g(suc)m(h)g(cases.)630 4531 y Fs(-H)384 b Ft(Enable)38
+b(`)p Fs(!)p Ft(')h(st)m(yle)h(history)e(substitution)g(\(see)h
+(Section)h(9.3)f([History)g(In-)1110 4640 y(teraction],)g(page)d
+(123\).)57 b(This)34 b(option)i(is)f(on)g(b)m(y)h(default)f(for)g(in)m
+(teractiv)m(e)1110 4750 y(shells.)630 4902 y Fs(-P)384
+b Ft(If)43 b(set,)k(do)c(not)g(follo)m(w)h(sym)m(b)s(olic)g(links)e
+(when)g(p)s(erforming)g(commands)1110 5011 y(suc)m(h)29
+b(as)h Fs(cd)f Ft(whic)m(h)g(c)m(hange)h(the)g(curren)m(t)f(directory)
+-8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 5121 y(tory)j(is)g(used)
+f(instead.)52 b(By)34 b(default,)h(Bash)f(follo)m(ws)h(the)f(logical)i
+(c)m(hain)f(of)1110 5230 y(directories)j(when)d(p)s(erforming)h
+(commands)g(whic)m(h)g(c)m(hange)i(the)f(curren)m(t)1110
+5340 y(directory)-8 b(.)p eop end
+%%Page: 54 60
+TeXDict begin 54 59 bop 150 -116 a Ft(54)2572 b(Bash)31
+b(Reference)g(Man)m(ual)1110 299 y(F)-8 b(or)31 b(example,)g(if)f(`)p
+Fs(/usr/sys)p Ft(')e(is)i(a)g(sym)m(b)s(olic)h(link)f(to)g(`)p
+Fs(/usr/local/sys)p Ft(')1110 408 y(then:)1350 547 y
+Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 656 y(/usr/sys)1350
+766 y($)g(cd)h(..;)f(pwd)1350 875 y(/usr)1110 1014 y
+Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)1350 1152
+y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 1262 y(/usr/local/sys)
+1350 1371 y($)g(cd)h(..;)f(pwd)1350 1481 y(/usr/local)630
+1648 y(-T)384 b Ft(If)34 b(set,)j(an)m(y)e(trap)g(on)g
+Fs(DEBUG)e Ft(and)i Fs(RETURN)e Ft(are)i(inherited)g(b)m(y)f(shell)i
+(func-)1110 1757 y(tions,)k(command)d(substitutions,)h(and)f(commands)g
+(executed)h(in)f(a)h(sub-)1110 1867 y(shell)33 b(en)m(vironmen)m(t.)49
+b(The)32 b Fs(DEBUG)g Ft(and)g Fs(RETURN)f Ft(traps)h(are)i(normally)f
+(not)1110 1976 y(inherited)d(in)g(suc)m(h)g(cases.)630
+2143 y Fs(--)384 b Ft(If)31 b(no)h(argumen)m(ts)f(follo)m(w)i(this)f
+(option,)g(then)f(the)h(p)s(ositional)h(parameters)1110
+2253 y(are)h(unset.)49 b(Otherwise,)34 b(the)g(p)s(ositional)g
+(parameters)g(are)g(set)g(to)g(the)g Fq(ar-)1110 2362
+y(gumen)m(ts)p Ft(,)d(ev)m(en)g(if)f(some)h(of)g(them)f(b)s(egin)g
+(with)g(a)h(`)p Fs(-)p Ft('.)630 2529 y Fs(-)432 b Ft(Signal)45
+b(the)g(end)f(of)h(options,)k(cause)c(all)h(remaining)e
+Fq(argumen)m(ts)49 b Ft(to)d(b)s(e)1110 2639 y(assigned)38
+b(to)h(the)f(p)s(ositional)h(parameters.)65 b(The)37
+b(`)p Fs(-x)p Ft(')h(and)g(`)p Fs(-v)p Ft(')g(options)1110
+2748 y(are)25 b(turned)e(o\013.)40 b(If)24 b(there)h(are)g(no)f
+(argumen)m(ts,)i(the)f(p)s(ositional)h(parameters)1110
+2858 y(remain)k(unc)m(hanged.)630 3025 y(Using)d(`)p
+Fs(+)p Ft(')h(rather)f(than)g(`)p Fs(-)p Ft(')g(causes)h(these)f
+(options)h(to)g(b)s(e)e(turned)g(o\013.)40 b(The)27 b(options)h(can)630
+3134 y(also)36 b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e
+(the)g(shell.)56 b(The)34 b(curren)m(t)h(set)h(of)f(options)h(ma)m(y)g
+(b)s(e)630 3244 y(found)29 b(in)h Fs($-)p Ft(.)630 3382
+y(The)43 b(remaining)h(N)f Fq(argumen)m(ts)48 b Ft(are)c(p)s(ositional)
+g(parameters)g(and)f(are)h(assigned,)j(in)630 3492 y(order,)30
+b(to)h Fs($1)p Ft(,)f Fs($2)p Ft(,)36 b(.)22 b(.)g(.)42
+b Fs($N)p Ft(.)e(The)30 b(sp)s(ecial)h(parameter)g Fs(#)f
+Ft(is)g(set)h(to)g(N.)630 3630 y(The)f(return)f(status)i(is)f(alw)m(a)m
+(ys)i(zero)f(unless)f(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f
+(supplied.)150 3869 y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)275
+4121 y Ft(This)29 b(builtin)h(allo)m(ws)i(y)m(ou)e(to)i(c)m(hange)f
+(additional)g(shell)g(optional)g(b)s(eha)m(vior.)150
+4291 y Fs(shopt)870 4430 y(shopt)46 b([-pqsu])g([-o])h([)p
+Fj(optname)56 b Fs(...)o(])630 4568 y Ft(T)-8 b(oggle)47
+b(the)d(v)-5 b(alues)45 b(of)g(v)-5 b(ariables)45 b(con)m(trolling)i
+(optional)f(shell)e(b)s(eha)m(vior.)84 b(With)45 b(no)630
+4677 y(options,)32 b(or)f(with)g(the)g(`)p Fs(-p)p Ft(')g(option,)h(a)g
+(list)f(of)h(all)g(settable)g(options)g(is)f(displa)m(y)m(ed,)h(with)
+630 4787 y(an)i(indication)i(of)f(whether)f(or)g(not)h(eac)m(h)h(is)e
+(set.)54 b(The)34 b(`)p Fs(-p)p Ft(')h(option)g(causes)g(output)f(to)
+630 4897 y(b)s(e)i(displa)m(y)m(ed)h(in)e(a)i(form)f(that)h(ma)m(y)g(b)
+s(e)e(reused)h(as)g(input.)58 b(Other)36 b(options)g(ha)m(v)m(e)i(the)
+630 5006 y(follo)m(wing)32 b(meanings:)630 5173 y Fs(-s)384
+b Ft(Enable)30 b(\(set\))i(eac)m(h)f Fq(optname)p Ft(.)630
+5340 y Fs(-u)384 b Ft(Disable)31 b(\(unset\))g(eac)m(h)h
+Fq(optname)p Ft(.)p eop end
+%%Page: 55 61
+TeXDict begin 55 60 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(55)630 299 y Fs(-q)384
+b Ft(Suppresses)28 b(normal)h(output;)h(the)g(return)e(status)i
+(indicates)h(whether)e(the)1110 408 y Fq(optname)37 b
+Ft(is)31 b(set)h(or)f(unset.)43 b(If)31 b(m)m(ultiple)h
+Fq(optname)37 b Ft(argumen)m(ts)31 b(are)h(giv)m(en)1110
+518 y(with)43 b(`)p Fs(-q)p Ft(',)j(the)d(return)f(status)h(is)g(zero)h
+(if)f(all)g Fq(optnames)k Ft(are)d(enabled;)1110 628
+y(non-zero)31 b(otherwise.)630 775 y Fs(-o)384 b Ft(Restricts)28
+b(the)g(v)-5 b(alues)28 b(of)f Fq(optname)33 b Ft(to)c(b)s(e)d(those)i
+(de\014ned)f(for)g(the)g(`)p Fs(-o)p Ft(')h(op-)1110
+885 y(tion)23 b(to)h(the)f Fs(set)f Ft(builtin)h(\(see)g(Section)h
+(4.3.1)h([The)d(Set)i(Builtin],)h(page)e(51\).)630 1033
+y(If)29 b(either)i(`)p Fs(-s)p Ft(')f(or)g(`)p Fs(-u)p
+Ft(')f(is)h(used)g(with)f(no)h Fq(optname)35 b Ft(argumen)m(ts,)c(the)f
+(displa)m(y)g(is)g(limited)630 1142 y(to)h(those)g(options)g(whic)m(h)f
+(are)h(set)f(or)h(unset,)f(resp)s(ectiv)m(ely)-8 b(.)630
+1271 y(Unless)30 b(otherwise)h(noted,)g(the)g Fs(shopt)d
+Ft(options)j(are)g(disabled)f(\(o\013)7 b(\))32 b(b)m(y)e(default.)630
+1400 y(The)d(return)f(status)i(when)f(listing)h(options)g(is)f(zero)i
+(if)e(all)i Fq(optnames)i Ft(are)d(enabled,)g(non-)630
+1509 y(zero)40 b(otherwise.)66 b(When)39 b(setting)h(or)f(unsetting)g
+(options,)i(the)e(return)f(status)h(is)g(zero)630 1619
+y(unless)30 b(an)g Fq(optname)36 b Ft(is)30 b(not)h(a)g(v)-5
+b(alid)30 b(shell)h(option.)630 1747 y(The)f(list)h(of)f
+Fs(shopt)f Ft(options)i(is:)630 1895 y Fs(autocd)192
+b Ft(If)27 b(set,)h(a)g(command)f(name)g(that)h(is)f(the)g(name)g(of)h
+(a)f(directory)h(is)f(executed)1110 2005 y(as)j(if)f(it)h(w)m(ere)f
+(the)h(argumen)m(t)g(to)g(the)f Fs(cd)g Ft(command.)40
+b(This)29 b(option)g(is)h(only)1110 2114 y(used)g(b)m(y)g(in)m
+(teractiv)m(e)j(shells.)630 2262 y Fs(cdable_vars)1110
+2372 y Ft(If)h(this)h(is)g(set,)i(an)e(argumen)m(t)g(to)h(the)f
+Fs(cd)f Ft(builtin)h(command)f(that)i(is)f(not)1110 2481
+y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h(name)f(of)h(a)g(v)
+-5 b(ariable)31 b(whose)g(v)-5 b(alue)31 b(is)1110 2591
+y(the)g(directory)f(to)i(c)m(hange)f(to.)630 2738 y Fs(cdspell)144
+b Ft(If)27 b(set,)h(minor)f(errors)f(in)h(the)g(sp)s(elling)h(of)f(a)g
+(directory)h(comp)s(onen)m(t)f(in)g(a)h Fs(cd)1110 2848
+y Ft(command)i(will)h(b)s(e)f(corrected.)43 b(The)30
+b(errors)g(c)m(hec)m(k)m(ed)j(for)d(are)h(transp)s(osed)1110
+2958 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47
+b(and)40 b(a)i(c)m(haracter)h(to)s(o)g(man)m(y)-8 b(.)74
+b(If)42 b(a)1110 3067 y(correction)25 b(is)e(found,)g(the)h(corrected)g
+(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110 3177
+y(pro)s(ceeds.)40 b(This)30 b(option)h(is)f(only)h(used)e(b)m(y)h(in)m
+(teractiv)m(e)k(shells.)630 3324 y Fs(checkhash)1110
+3434 y Ft(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
+(command)f(found)g(in)g(the)h(hash)f(table)1110 3544
+y(exists)k(b)s(efore)f(trying)h(to)h(execute)g(it.)48
+b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 3653
+y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)630
+3801 y Fs(checkjobs)1110 3911 y Ft(If)d(set,)i(Bash)e(lists)h(the)g
+(status)g(of)f(an)m(y)h(stopp)s(ed)f(and)g(running)e(jobs)i(b)s(efore)
+1110 4020 y(exiting)42 b(an)f(in)m(teractiv)m(e)j(shell.)72
+b(If)41 b(an)m(y)g(jobs)f(are)i(running,)g(this)f(causes)1110
+4130 y(the)30 b(exit)g(to)g(b)s(e)f(deferred)g(un)m(til)h(a)f(second)h
+(exit)g(is)g(attempted)h(without)e(an)1110 4239 y(in)m(terv)m(ening)j
+(command)e(\(see)h(Chapter)f(7)h([Job)f(Con)m(trol],)i(page)f(89\).)42
+b(The)1110 4349 y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h
+(if)g(an)m(y)f(jobs)g(are)h(stopp)s(ed.)630 4497 y Fs(checkwinsize)1110
+4606 y Ft(If)41 b(set,)k(Bash)c(c)m(hec)m(ks)i(the)f(windo)m(w)e(size)j
+(after)f(eac)m(h)g(command)f(and,)j(if)1110 4716 y(necessary)-8
+b(,)31 b(up)s(dates)f(the)g(v)-5 b(alues)31 b(of)g Fs(LINES)e
+Ft(and)g Fs(COLUMNS)p Ft(.)630 4863 y Fs(cmdhist)144
+b Ft(If)33 b(set,)j(Bash)e(attempts)h(to)g(sa)m(v)m(e)g(all)g(lines)f
+(of)g(a)h(m)m(ultiple-line)g(command)1110 4973 y(in)c(the)g(same)g
+(history)g(en)m(try)-8 b(.)42 b(This)30 b(allo)m(ws)i(easy)g
+(re-editing)g(of)f(m)m(ulti-line)1110 5083 y(commands.)630
+5230 y Fs(compat31)96 b Ft(If)27 b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s
+(eha)m(vior)f(to)i(that)f(of)f(v)m(ersion)h(3.1)h(with)e(resp)s(ect)
+1110 5340 y(to)k(quoted)g(argumen)m(ts)f(to)h(the)g(conditional)h
+(command's)e(=)p Fs(~)g Ft(op)s(erator.)p eop end
+%%Page: 56 62
+TeXDict begin 56 61 bop 150 -116 a Ft(56)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(dirspell)96 b Ft(If)26
+b(set,)i(Bash)f(attempts)g(sp)s(elling)g(correction)g(on)g(directory)g
+(names)f(during)1110 408 y(w)m(ord)36 b(completion)h(if)f(the)g
+(directory)g(name)g(initially)h(supplied)e(do)s(es)h(not)1110
+518 y(exist.)630 677 y Fs(dotglob)144 b Ft(If)27 b(set,)i(Bash)f
+(includes)g(\014lenames)g(b)s(eginning)f(with)g(a)h(`.')41
+b(in)27 b(the)h(results)g(of)1110 787 y(\014lename)j(expansion.)630
+946 y Fs(execfail)96 b Ft(If)24 b(this)h(is)f(set,)j(a)e(non-in)m
+(teractiv)m(e)i(shell)e(will)f(not)h(exit)h(if)e(it)h(cannot)h(execute)
+1110 1056 y(the)i(\014le)g(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to)
+h(the)f Fs(exec)f Ft(builtin)h(command.)39 b(An)1110
+1166 y(in)m(teractiv)m(e)33 b(shell)e(do)s(es)f(not)g(exit)i(if)e
+Fs(exec)f Ft(fails.)630 1325 y Fs(expand_aliases)1110
+1435 y Ft(If)j(set,)h(aliases)g(are)g(expanded)e(as)h(describ)s(ed)f(b)
+s(elo)m(w)h(under)f(Aliases,)i(Sec-)1110 1544 y(tion)38
+b(6.6)h([Aliases],)j(page)d(79.)64 b(This)37 b(option)h(is)g(enabled)g
+(b)m(y)g(default)g(for)1110 1654 y(in)m(teractiv)m(e)33
+b(shells.)630 1813 y Fs(extdebug)96 b Ft(If)30 b(set,)h(b)s(eha)m(vior)
+g(in)m(tended)f(for)g(use)g(b)m(y)g(debuggers)g(is)h(enabled:)1159
+1948 y(1.)61 b(The)32 b(`)p Fs(-F)p Ft(')g(option)h(to)g(the)g
+Fs(declare)d Ft(builtin)i(\(see)i(Section)f(4.2)h([Bash)1290
+2057 y(Builtins],)29 b(page)g(41\))g(displa)m(ys)f(the)g(source)h
+(\014le)f(name)g(and)f(line)h(n)m(um-)1290 2167 y(b)s(er)h(corresp)s
+(onding)g(to)i(eac)m(h)g(function)f(name)g(supplied)f(as)i(an)f(argu-)
+1290 2276 y(men)m(t.)1159 2411 y(2.)61 b(If)20 b(the)h(command)g(run)e
+(b)m(y)i(the)f Fs(DEBUG)g Ft(trap)g(returns)g(a)h(non-zero)g(v)-5
+b(alue,)1290 2521 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
+(not)i(executed.)1159 2655 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m
+(y)i(the)f Fs(DEBUG)f Ft(trap)h(returns)f(a)i(v)-5 b(alue)38
+b(of)f(2,)1290 2765 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h
+(subroutine)e(\(a)i(shell)g(function)f(or)1290 2874 y(a)h(shell)h
+(script)f(executed)h(b)m(y)f(the)g Fs(.)g Ft(or)g Fs(source)e
+Ft(builtins\),)j(a)g(call)g(to)1290 2984 y Fs(return)29
+b Ft(is)h(sim)m(ulated.)1159 3118 y(4.)61 b Fs(BASH_ARGC)34
+b Ft(and)i Fs(BASH_ARGV)e Ft(are)j(up)s(dated)e(as)h(describ)s(ed)g(in)
+g(their)1290 3228 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g
+(V)-8 b(ariables],)32 b(page)f(61\).)1159 3362 y(5.)61
+b(F)-8 b(unction)57 b(tracing)g(is)g(enabled:)93 b(command)56
+b(substitution,)63 b(shell)1290 3472 y(functions,)30
+b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d Fs(\()h
+Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 3582
+y Fs(DEBUG)f Ft(and)h Fs(RETURN)e Ft(traps.)1159 3716
+y(6.)61 b(Error)74 b(tracing)i(is)f(enabled:)131 b(command)74
+b(substitution,)87 b(shell)1290 3826 y(functions,)30
+b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d Fs(\()h
+Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 3935
+y Fs(ERROR)f Ft(trap.)630 4095 y Fs(extglob)144 b Ft(If)26
+b(set,)i(the)f(extended)f(pattern)h(matc)m(hing)g(features)g(describ)s
+(ed)e(ab)s(o)m(v)m(e)j(\(see)1110 4204 y(Section)j(3.5.8.1)i([P)m
+(attern)f(Matc)m(hing],)g(page)f(25\))h(are)f(enabled.)630
+4364 y Fs(extquote)96 b Ft(If)49 b(set,)54 b Fs($')p
+Fj(string)11 b Fs(')46 b Ft(and)j Fs($")p Fj(string)11
+b Fs(")46 b Ft(quoting)k(is)f(p)s(erformed)e(within)1110
+4473 y Fs(${)p Fj(parameter)11 b Fs(})30 b Ft(expansions)j(enclosed)h
+(in)g(double)f(quotes.)51 b(This)32 b(option)1110 4583
+y(is)e(enabled)h(b)m(y)f(default.)630 4742 y Fs(failglob)96
+b Ft(If)30 b(set,)g(patterns)g(whic)m(h)g(fail)h(to)g(matc)m(h)g
+(\014lenames)f(during)e(pathname)i(ex-)1110 4852 y(pansion)g(result)g
+(in)g(an)g(expansion)h(error.)630 5011 y Fs(force_fignore)1110
+5121 y Ft(If)43 b(set,)k(the)d(su\016xes)f(sp)s(eci\014ed)f(b)m(y)i
+(the)f Fs(FIGNORE)f Ft(shell)h(v)-5 b(ariable)44 b(cause)1110
+5230 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h(when)f(p)s(erforming)f(w)m
+(ord)h(completion)i(ev)m(en)f(if)g(the)1110 5340 y(ignored)37
+b(w)m(ords)g(are)g(the)h(only)f(p)s(ossible)g(completions.)62
+b(See)37 b(Section)h(5.2)p eop end
+%%Page: 57 63
+TeXDict begin 57 62 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(57)1110 299 y([Bash)24
+b(V)-8 b(ariables],)27 b(page)e(61,)h(for)d(a)h(description)g(of)g
+Fs(FIGNORE)p Ft(.)37 b(This)22 b(option)1110 408 y(is)30
+b(enabled)h(b)m(y)f(default.)630 568 y Fs(globstar)96
+b Ft(If)38 b(set,)j(the)e(pattern)f(`)p Fs(**)p Ft(')h(used)e(in)i(a)f
+(\014lename)h(expansion)f(con)m(text)j(will)1110 677
+y(matc)m(h)f(a)g(\014les)f(and)f(zero)i(or)g(more)f(directories)h(and)f
+(sub)s(directories.)66 b(If)1110 787 y(the)30 b(pattern)g(is)g(follo)m
+(w)m(ed)i(b)m(y)d(a)i(`)p Fs(/)p Ft(',)f(only)g(directories)h(and)f
+(sub)s(directories)1110 897 y(matc)m(h.)630 1056 y Fs(gnu_errfmt)1110
+1166 y Ft(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)
+h(the)g(standard)f Fl(gnu)g Ft(error)1110 1275 y(message)c(format.)630
+1435 y Fs(histappend)1110 1544 y Ft(If)c(set,)j(the)e(history)g(list)g
+(is)g(app)s(ended)e(to)j(the)f(\014le)g(named)f(b)m(y)h(the)g(v)-5
+b(alue)29 b(of)1110 1654 y(the)d Fs(HISTFILE)d Ft(v)-5
+b(ariable)26 b(when)e(the)h(shell)h(exits,)h(rather)e(than)h(o)m(v)m
+(erwriting)1110 1763 y(the)31 b(\014le.)630 1923 y Fs(histreedit)1110
+2032 y Ft(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g
+(user)g(is)g(giv)m(en)h(the)g(opp)s(ortunit)m(y)1110
+2142 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630
+2301 y Fs(histverify)1110 2411 y Ft(If)35 b(set,)i(and)e(Readline)h(is)
+f(b)s(eing)g(used,)h(the)f(results)g(of)g(history)h(substitu-)1110
+2521 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
+(parser.)59 b(Instead,)38 b(the)1110 2630 y(resulting)i(line)f(is)h
+(loaded)g(in)m(to)g(the)g(Readline)g(editing)g(bu\013er,)h(allo)m(wing)
+1110 2740 y(further)29 b(mo)s(di\014cation.)630 2899
+y Fs(hostcomplete)1110 3009 y Ft(If)38 b(set,)j(and)c(Readline)i(is)f
+(b)s(eing)g(used,)h(Bash)g(will)f(attempt)h(to)g(p)s(erform)1110
+3118 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
+(`)p Fs(@)p Ft(')g(is)g(b)s(eing)f(com-)1110 3228 y(pleted)g(\(see)h
+(Section)f(8.4.6)i([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g
+(110\).)1110 3337 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
+630 3497 y Fs(huponexit)1110 3606 y Ft(If)i(set,)i(Bash)f(will)h(send)d
+Fs(SIGHUP)h Ft(to)h(all)h(jobs)e(when)g(an)g(in)m(teractiv)m(e)k(login)
+1110 3716 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
+(page)f(33\).)630 3875 y Fs(interactive_comments)1110
+3985 y Ft(Allo)m(w)c(a)g(w)m(ord)e(b)s(eginning)g(with)h(`)p
+Fs(#)p Ft(')g(to)h(cause)f(that)h(w)m(ord)f(and)f(all)i(remain-)1110
+4095 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g(to)g(b)s(e)f
+(ignored)g(in)g(an)g(in)m(teractiv)m(e)j(shell.)1110
+4204 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630
+4364 y Fs(lithist)144 b Ft(If)22 b(enabled,)i(and)d(the)h
+Fs(cmdhist)e Ft(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110
+4473 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
+(edded)g(newlines)h(rather)g(than)f(using)1110 4583 y(semicolon)32
+b(separators)f(where)e(p)s(ossible.)630 4742 y Fs(login_shell)1110
+4852 y Ft(The)35 b(shell)h(sets)g(this)f(option)h(if)g(it)g(is)f
+(started)h(as)g(a)g(login)g(shell)g(\(see)g(Sec-)1110
+4961 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(71\).)41
+b(The)28 b(v)-5 b(alue)29 b(ma)m(y)g(not)f(b)s(e)g(c)m(hanged.)630
+5121 y Fs(mailwarn)96 b Ft(If)34 b(set,)i(and)e(a)h(\014le)g(that)g
+(Bash)f(is)h(c)m(hec)m(king)h(for)f(mail)g(has)f(b)s(een)g(accessed)
+1110 5230 y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)f(c)m(hec)m(k)m
+(ed,)k(the)c(message)h Fs("The)k(mail)h(in)f Fj(mail-)1110
+5340 y(file)40 b Fs(has)29 b(been)g(read")g Ft(is)i(displa)m(y)m(ed.)p
+eop end
+%%Page: 58 64
+TeXDict begin 58 63 bop 150 -116 a Ft(58)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(no_empty_cmd_completion)1110
+408 y Ft(If)f(set,)g(and)g(Readline)g(is)h(b)s(eing)e(used,)h(Bash)g
+(will)g(not)g(attempt)i(to)e(searc)m(h)1110 518 y(the)25
+b Fs(PATH)f Ft(for)h(p)s(ossible)f(completions)j(when)d(completion)i
+(is)f(attempted)h(on)1110 628 y(an)k(empt)m(y)h(line.)630
+823 y Fs(nocaseglob)1110 933 y Ft(If)38 b(set,)k(Bash)d(matc)m(hes)g
+(\014lenames)g(in)f(a)h(case-insensitiv)m(e)j(fashion)c(when)1110
+1042 y(p)s(erforming)29 b(\014lename)i(expansion.)630
+1238 y Fs(nocasematch)1110 1347 y Ft(If)42 b(set,)k(Bash)d(matc)m(hes)g
+(patterns)g(in)f(a)h(case-insensitiv)m(e)i(fashion)d(when)1110
+1457 y(p)s(erforming)31 b(matc)m(hing)i(while)f(executing)i
+Fs(case)d Ft(or)h Fs([[)g Ft(conditional)h(com-)1110
+1567 y(mands.)630 1762 y Fs(nullglob)96 b Ft(If)23 b(set,)j(Bash)e
+(allo)m(ws)g(\014lename)g(patterns)g(whic)m(h)f(matc)m(h)h(no)g
+(\014les)f(to)i(expand)1110 1872 y(to)31 b(a)g(n)m(ull)f(string,)h
+(rather)f(than)g(themselv)m(es.)630 2067 y Fs(progcomp)96
+b Ft(If)25 b(set,)i(the)f(programmable)g(completion)g(facilities)i
+(\(see)f(Section)f(8.6)h([Pro-)1110 2177 y(grammable)45
+b(Completion],)k(page)c(115\))h(are)f(enabled.)82 b(This)44
+b(option)h(is)1110 2286 y(enabled)30 b(b)m(y)h(default.)630
+2482 y Fs(promptvars)1110 2591 y Ft(If)24 b(set,)i(prompt)d(strings)h
+(undergo)f(parameter)i(expansion,)g(command)f(sub-)1110
+2701 y(stitution,)34 b(arithmetic)f(expansion,)g(and)e(quote)i(remo)m
+(v)-5 b(al)33 b(after)g(b)s(eing)e(ex-)1110 2811 y(panded)39
+b(as)i(describ)s(ed)e(b)s(elo)m(w)i(\(see)g(Section)g(6.9)g([Prin)m
+(ting)g(a)g(Prompt],)1110 2920 y(page)31 b(83\).)42 b(This)30
+b(option)g(is)h(enabled)f(b)m(y)g(default.)630 3116 y
+Fs(restricted_shell)1110 3225 y Ft(The)40 b(shell)h(sets)g(this)g
+(option)g(if)g(it)h(is)e(started)i(in)e(restricted)i(mo)s(de)e(\(see)
+1110 3335 y(Section)c(6.10)g([The)f(Restricted)g(Shell],)i(page)e
+(84\).)56 b(The)34 b(v)-5 b(alue)35 b(ma)m(y)h(not)1110
+3444 y(b)s(e)c(c)m(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f
+(the)h(startup)g(\014les)f(are)i(executed,)1110 3554
+y(allo)m(wing)k(the)e(startup)f(\014les)h(to)g(disco)m(v)m(er)h
+(whether)f(or)f(not)i(a)f(shell)g(is)g(re-)1110 3664
+y(stricted.)630 3859 y Fs(shift_verbose)1110 3969 y Ft(If)g(this)g(is)g
+(set,)j(the)d Fs(shift)f Ft(builtin)h(prin)m(ts)f(an)h(error)g(message)
+i(when)d(the)1110 4078 y(shift)30 b(coun)m(t)h(exceeds)g(the)g(n)m(um)m
+(b)s(er)e(of)h(p)s(ositional)i(parameters.)630 4274 y
+Fs(sourcepath)1110 4383 y Ft(If)22 b(set,)j(the)e Fs(source)e
+Ft(builtin)h(uses)g(the)h(v)-5 b(alue)23 b(of)g Fs(PATH)e
+Ft(to)j(\014nd)d(the)h(directory)1110 4493 y(con)m(taining)29
+b(the)e(\014le)h(supplied)e(as)h(an)g(argumen)m(t.)40
+b(This)27 b(option)h(is)f(enabled)1110 4603 y(b)m(y)j(default.)630
+4798 y Fs(xpg_echo)96 b Ft(If)31 b(set,)h(the)g Fs(echo)e
+Ft(builtin)h(expands)f(bac)m(kslash-escap)s(e)j(sequences)f(b)m(y)f
+(de-)1110 4908 y(fault.)630 5103 y(The)c(return)f(status)i(when)f
+(listing)h(options)g(is)f(zero)i(if)e(all)i Fq(optnames)i
+Ft(are)d(enabled,)g(non-)630 5213 y(zero)40 b(otherwise.)66
+b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f
+(status)h(is)g(zero)630 5322 y(unless)30 b(an)g Fq(optname)36
+b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)p
+eop end
+%%Page: 59 65
+TeXDict begin 59 64 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(59)150 299 y Fr(4.4)68
+b(Sp)t(ecial)45 b(Builtins)275 543 y Ft(F)-8 b(or)40
+b(historical)i(reasons,)g(the)f Fl(posix)e Ft(standard)g(has)h
+(classi\014ed)g(sev)m(eral)i(builtin)d(commands)h(as)150
+653 y Fm(sp)-5 b(e)g(cial)p Ft(.)84 b(When)44 b(Bash)g(is)g(executing)i
+(in)d Fl(posix)h Ft(mo)s(de,)j(the)e(sp)s(ecial)f(builtins)g(di\013er)g
+(from)g(other)150 762 y(builtin)30 b(commands)g(in)g(three)h(resp)s
+(ects:)199 897 y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)e(b)s
+(efore)h(shell)h(functions)f(during)f(command)h(lo)s(okup.)199
+1031 y(2.)61 b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error)
+g(status,)h(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199
+1166 y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f
+(command)g(sta)m(y)i(in)e(e\013ect)i(in)e(the)h(shell)f(en)m(vironmen)m
+(t)330 1275 y(after)i(the)f(command)h(completes.)275
+1435 y(When)36 b(Bash)g(is)h(not)f(executing)i(in)e Fl(posix)f
+Ft(mo)s(de,)j(these)f(builtins)f(b)s(eha)m(v)m(e)h(no)f(di\013eren)m
+(tly)h(than)150 1544 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e
+(commands.)41 b(The)30 b(Bash)g Fl(posix)g Ft(mo)s(de)g(is)g(describ)s
+(ed)f(in)h(Section)h(6.11)150 1654 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g
+(85.)275 1788 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h
+(builtins:)390 1923 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h
+(exit)g(export)f(readonly)f(return)h(set)390 2032 y(shift)g(trap)h
+(unset)p eop end
+%%Page: 60 66
+TeXDict begin 60 65 bop 150 -116 a Ft(60)2572 b(Bash)31
+b(Reference)g(Man)m(ual)p eop end
+%%Page: 61 67
+TeXDict begin 61 66 bop 150 -116 a Ft(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(61)150 299 y Fo(5)80
+b(Shell)53 b(V)-13 b(ariables)275 525 y Ft(This)36 b(c)m(hapter)i
+(describ)s(es)e(the)h(shell)g(v)-5 b(ariables)38 b(that)g(Bash)f(uses.)
+61 b(Bash)37 b(automatically)j(assigns)150 635 y(default)31
+b(v)-5 b(alues)30 b(to)h(a)g(n)m(um)m(b)s(er)e(of)i(v)-5
+b(ariables.)150 887 y Fr(5.1)68 b(Bourne)45 b(Shell)g(V)-11
+b(ariables)275 1130 y Ft(Bash)36 b(uses)g(certain)h(shell)f(v)-5
+b(ariables)37 b(in)f(the)h(same)g(w)m(a)m(y)g(as)f(the)h(Bourne)f
+(shell.)59 b(In)35 b(some)i(cases,)150 1240 y(Bash)31
+b(assigns)f(a)h(default)f(v)-5 b(alue)31 b(to)g(the)g(v)-5
+b(ariable.)150 1396 y Fs(CDPATH)192 b Ft(A)39 b(colon-separated)i(list)
+e(of)g(directories)h(used)f(as)g(a)g(searc)m(h)h(path)e(for)h(the)g
+Fs(cd)f Ft(builtin)630 1505 y(command.)150 1662 y Fs(HOME)288
+b Ft(The)23 b(curren)m(t)h(user's)f(home)g(directory;)k(the)d(default)g
+(for)f(the)h Fs(cd)f Ft(builtin)g(command.)38 b(The)630
+1771 y(v)-5 b(alue)37 b(of)f(this)g(v)-5 b(ariable)37
+b(is)g(also)g(used)e(b)m(y)h(tilde)h(expansion)f(\(see)i(Section)f
+(3.5.2)h([Tilde)630 1881 y(Expansion],)30 b(page)h(19\).)150
+2037 y Fs(IFS)336 b Ft(A)25 b(list)i(of)e(c)m(haracters)i(that)f
+(separate)g(\014elds;)h(used)e(when)f(the)i(shell)f(splits)h(w)m(ords)e
+(as)i(part)630 2147 y(of)31 b(expansion.)150 2303 y Fs(MAIL)288
+b Ft(If)26 b(this)f(parameter)i(is)f(set)g(to)h(a)g(\014lename)f(and)f
+(the)h Fs(MAILPATH)e Ft(v)-5 b(ariable)27 b(is)f(not)g(set,)i(Bash)630
+2413 y(informs)i(the)g(user)g(of)g(the)h(arriv)-5 b(al)31
+b(of)f(mail)h(in)f(the)h(sp)s(eci\014ed)f(\014le.)150
+2569 y Fs(MAILPATH)96 b Ft(A)33 b(colon-separated)i(list)f(of)f
+(\014lenames)h(whic)m(h)f(the)g(shell)g(p)s(erio)s(dically)h(c)m(hec)m
+(ks)g(for)f(new)630 2678 y(mail.)60 b(Eac)m(h)37 b(list)g(en)m(try)g
+(can)g(sp)s(ecify)f(the)h(message)h(that)f(is)g(prin)m(ted)f(when)f
+(new)h(mail)630 2788 y(arriv)m(es)29 b(in)g(the)g(mail)g(\014le)g(b)m
+(y)g(separating)g(the)g(\014le)g(name)g(from)f(the)h(message)h(with)e
+(a)i(`)p Fs(?)p Ft('.)630 2898 y(When)i(used)f(in)h(the)g(text)i(of)e
+(the)g(message,)i Fs($_)e Ft(expands)f(to)i(the)f(name)g(of)h(the)f
+(curren)m(t)630 3007 y(mail)f(\014le.)150 3163 y Fs(OPTARG)192
+b Ft(The)30 b(v)-5 b(alue)31 b(of)f(the)h(last)g(option)g(argumen)m(t)g
+(pro)s(cessed)f(b)m(y)g(the)g Fs(getopts)f Ft(builtin.)150
+3320 y Fs(OPTIND)192 b Ft(The)30 b(index)g(of)g(the)h(last)g(option)g
+(argumen)m(t)g(pro)s(cessed)f(b)m(y)g(the)g Fs(getopts)f
+Ft(builtin.)150 3476 y Fs(PATH)288 b Ft(A)32 b(colon-separated)i(list)f
+(of)f(directories)h(in)e(whic)m(h)h(the)g(shell)g(lo)s(oks)h(for)f
+(commands.)45 b(A)630 3586 y(zero-length)e(\(n)m(ull\))g(directory)f
+(name)g(in)g(the)g(v)-5 b(alue)42 b(of)g Fs(PATH)f Ft(indicates)i(the)f
+(curren)m(t)630 3695 y(directory)-8 b(.)49 b(A)33 b(n)m(ull)f
+(directory)i(name)e(ma)m(y)i(app)s(ear)e(as)h(t)m(w)m(o)h(adjacen)m(t)g
+(colons,)g(or)f(as)g(an)630 3805 y(initial)f(or)e(trailing)h(colon.)150
+3961 y Fs(PS1)336 b Ft(The)35 b(primary)f(prompt)h(string.)55
+b(The)35 b(default)h(v)-5 b(alue)35 b(is)h(`)p Fs(\\s-\\v\\$)28
+b Ft('.)56 b(See)36 b(Section)g(6.9)630 4071 y([Prin)m(ting)28
+b(a)g(Prompt],)g(page)h(83,)g(for)e(the)h(complete)h(list)g(of)e(escap)
+s(e)h(sequences)g(that)h(are)630 4180 y(expanded)h(b)s(efore)g
+Fs(PS1)f Ft(is)h(displa)m(y)m(ed.)150 4336 y Fs(PS2)336
+b Ft(The)30 b(secondary)g(prompt)g(string.)41 b(The)29
+b(default)i(v)-5 b(alue)31 b(is)f(`)p Fs(>)g Ft('.)150
+4589 y Fr(5.2)68 b(Bash)45 b(V)-11 b(ariables)275 4832
+y Ft(These)36 b(v)-5 b(ariables)38 b(are)g(set)f(or)h(used)e(b)m(y)h
+(Bash,)i(but)d(other)i(shells)f(do)g(not)g(normally)h(treat)g(them)150
+4941 y(sp)s(ecially)-8 b(.)275 5074 y(A)24 b(few)g(v)-5
+b(ariables)24 b(used)g(b)m(y)f(Bash)i(are)f(describ)s(ed)f(in)h
+(di\013eren)m(t)g(c)m(hapters:)38 b(v)-5 b(ariables)25
+b(for)f(con)m(trolling)150 5184 y(the)31 b(job)f(con)m(trol)h
+(facilities)i(\(see)e(Section)g(7.3)h([Job)e(Con)m(trol)h(V)-8
+b(ariables],)32 b(page)g(92\).)150 5340 y Fs(BASH)288
+b Ft(The)30 b(full)g(pathname)g(used)g(to)h(execute)h(the)e(curren)m(t)
+g(instance)h(of)g(Bash.)p eop end
+%%Page: 62 68
+TeXDict begin 62 67 bop 150 -116 a Ft(62)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(BASHPID)144 b Ft(Expands)36
+b(to)j(the)f(pro)s(cess)g(id)f(of)h(the)g(curren)m(t)g(Bash)g(pro)s
+(cess.)63 b(This)37 b(di\013ers)g(from)h Fs($$)630 408
+y Ft(under)31 b(certain)j(circumstances,)h(suc)m(h)e(as)g(subshells)f
+(that)i(do)f(not)g(require)g(Bash)g(to)h(b)s(e)630 518
+y(re-initialized.)150 682 y Fs(BASH_ALIASES)630 792 y
+Ft(An)40 b(asso)s(ciativ)m(e)j(arra)m(y)d(v)-5 b(ariable)41
+b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m(ternal)h
+(list)630 902 y(of)g(aliases)h(as)f(main)m(tained)g(b)m(y)g(the)f
+Fs(alias)g Ft(builtin)g(\(see)h(Section)h(4.1)f([Bourne)g(Shell)630
+1011 y(Builtins],)36 b(page)e(35\).)53 b(Elemen)m(ts)35
+b(added)e(to)i(this)e(arra)m(y)i(app)s(ear)e(in)h(the)g(alias)h(list;)i
+(un-)630 1121 y(setting)31 b(arra)m(y)g(elemen)m(ts)h(cause)f(aliases)h
+(to)f(b)s(e)f(remo)m(v)m(ed)h(from)f(the)h(alias)g(list.)150
+1285 y Fs(BASH_ARGC)630 1395 y Ft(An)f(arra)m(y)h(v)-5
+b(ariable)31 b(whose)f(v)-5 b(alues)31 b(are)g(the)f(n)m(um)m(b)s(er)g
+(of)g(parameters)h(in)f(eac)m(h)h(frame)g(of)630 1504
+y(the)26 b(curren)m(t)f(bash)g(execution)i(call)g(stac)m(k.)41
+b(The)25 b(n)m(um)m(b)s(er)g(of)h(parameters)g(to)g(the)g(curren)m(t)
+630 1614 y(subroutine)i(\(shell)i(function)g(or)f(script)g(executed)i
+(with)e Fs(.)g Ft(or)h Fs(source)p Ft(\))e(is)h(at)h(the)g(top)g(of)630
+1724 y(the)37 b(stac)m(k.)63 b(When)37 b(a)h(subroutine)e(is)h
+(executed,)j(the)e(n)m(um)m(b)s(er)d(of)j(parameters)f(passed)630
+1833 y(is)g(pushed)f(on)m(to)i Fs(BASH_ARGC)p Ft(.)59
+b(The)37 b(shell)g(sets)h Fs(BASH_ARGC)c Ft(only)k(when)e(in)h
+(extended)630 1943 y(debugging)23 b(mo)s(de)f(\(see)h(Section)g(4.3.2)i
+([The)d(Shopt)g(Builtin],)j(page)e(54)h(for)e(a)h(description)630
+2052 y(of)31 b(the)f Fs(extdebug)e Ft(option)j(to)g(the)g
+Fs(shopt)e Ft(builtin\).)150 2217 y Fs(BASH_ARGV)630
+2326 y Ft(An)24 b(arra)m(y)g(v)-5 b(ariable)25 b(con)m(taining)h(all)f
+(of)f(the)h(parameters)f(in)g(the)g(curren)m(t)g(bash)g(execution)630
+2436 y(call)35 b(stac)m(k.)53 b(The)34 b(\014nal)g(parameter)g(of)g
+(the)g(last)h(subroutine)e(call)i(is)f(at)h(the)f(top)h(of)f(the)630
+2545 y(stac)m(k;)28 b(the)c(\014rst)f(parameter)i(of)f(the)g(initial)i
+(call)f(is)f(at)h(the)f(b)s(ottom.)39 b(When)24 b(a)g(subroutine)630
+2655 y(is)40 b(executed,)j(the)d(parameters)h(supplied)d(are)i(pushed)f
+(on)m(to)i Fs(BASH_ARGV)p Ft(.)66 b(The)40 b(shell)630
+2765 y(sets)28 b Fs(BASH_ARGV)e Ft(only)i(when)f(in)h(extended)g
+(debugging)g(mo)s(de)g(\(see)h(Section)f(4.3.2)i([The)630
+2874 y(Shopt)i(Builtin],)h(page)g(54)g(for)f(a)h(description)f(of)h
+(the)f Fs(extdebug)e Ft(option)j(to)g(the)f Fs(shopt)630
+2984 y Ft(builtin\).)150 3148 y Fs(BASH_CMDS)630 3258
+y Ft(An)i(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5 b(ariable)35
+b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m(ternal)h
+(hash)630 3367 y(table)c(of)g(commands)f(as)g(main)m(tained)h(b)m(y)g
+(the)f Fs(hash)f Ft(builtin)h(\(see)h(Section)g(4.1)h([Bourne)630
+3477 y(Shell)23 b(Builtins],)j(page)e(35\).)40 b(Elemen)m(ts)24
+b(added)e(to)j(this)e(arra)m(y)h(app)s(ear)e(in)i(the)f(hash)g(table;)
+630 3587 y(unsetting)30 b(arra)m(y)h(elemen)m(ts)h(cause)f(commands)f
+(to)h(b)s(e)f(remo)m(v)m(ed)h(from)f(the)h(hash)e(table.)150
+3751 y Fs(BASH_COMMAND)630 3861 y Ft(The)39 b(command)h(curren)m(tly)g
+(b)s(eing)f(executed)i(or)e(ab)s(out)h(to)g(b)s(e)f(executed,)44
+b(unless)39 b(the)630 3970 y(shell)g(is)g(executing)g(a)g(command)g(as)
+g(the)f(result)h(of)g(a)g(trap,)i(in)d(whic)m(h)g(case)i(it)f(is)g(the)
+630 4080 y(command)30 b(executing)i(at)f(the)f(time)h(of)g(the)g(trap.)
+150 4244 y Fs(BASH_ENV)96 b Ft(If)28 b(this)g(v)-5 b(ariable)30
+b(is)e(set)h(when)f(Bash)g(is)h(in)m(v)m(ok)m(ed)h(to)f(execute)h(a)e
+(shell)h(script,)g(its)g(v)-5 b(alue)29 b(is)630 4354
+y(expanded)k(and)h(used)g(as)g(the)h(name)f(of)g(a)h(startup)f(\014le)g
+(to)h(read)f(b)s(efore)g(executing)i(the)630 4463 y(script.)41
+b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)j(page)f(73.)150
+4628 y Fs(BASH_EXECUTION_STRING)630 4737 y Ft(The)f(command)g(argumen)m
+(t)h(to)g(the)g(`)p Fs(-c)p Ft(')f(in)m(v)m(o)s(cation)i(option.)150
+4902 y Fs(BASH_LINENO)630 5011 y Ft(An)38 b(arra)m(y)h(v)-5
+b(ariable)39 b(whose)g(mem)m(b)s(ers)e(are)i(the)g(line)g(n)m(um)m(b)s
+(ers)e(in)h(source)h(\014les)f(corre-)630 5121 y(sp)s(onding)h(to)i
+(eac)m(h)g(mem)m(b)s(er)e(of)i Fq(FUNCNAME)p Ft(.)g Fs
+(${BASH_LINENO[$i]})35 b Ft(is)40 b(the)h(line)630 5230
+y(n)m(um)m(b)s(er)47 b(in)h(the)g(source)h(\014le)f(where)g
+Fs(${FUNCNAME[$i]})c Ft(w)m(as)49 b(called)g(\(or)g Fs(${BASH_)630
+5340 y(LINENO[$i-1]})22 b Ft(if)j(referenced)g(within)f(another)i
+(shell)f(function\).)39 b(The)25 b(corresp)s(onding)p
+eop end
+%%Page: 63 69
+TeXDict begin 63 68 bop 150 -116 a Ft(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(63)630 299 y(source)24
+b(\014le)h(name)f(is)g Fs(${BASH_SOURCE[$i]})p Ft(.)34
+b(Use)25 b Fs(LINENO)d Ft(to)j(obtain)g(the)g(curren)m(t)f(line)630
+408 y(n)m(um)m(b)s(er.)150 581 y Fs(BASH_REMATCH)630
+691 y Ft(An)43 b(arra)m(y)i(v)-5 b(ariable)44 b(whose)g(mem)m(b)s(ers)f
+(are)h(assigned)g(b)m(y)f(the)h(`)p Fs(=~)p Ft(')g(binary)f(op)s
+(erator)630 800 y(to)37 b(the)f Fs([[)g Ft(conditional)i(command)e
+(\(see)h(Section)g(3.2.4.2)i([Conditional)e(Constructs],)630
+910 y(page)e(10\).)52 b(The)33 b(elemen)m(t)j(with)d(index)g(0)i(is)f
+(the)g(p)s(ortion)f(of)h(the)g(string)g(matc)m(hing)h(the)630
+1020 y(en)m(tire)29 b(regular)f(expression.)40 b(The)27
+b(elemen)m(t)j(with)d(index)h Fq(n)f Ft(is)h(the)g(p)s(ortion)g(of)g
+(the)g(string)630 1129 y(matc)m(hing)j(the)g Fq(n)p Ft(th)f(paren)m
+(thesized)h(sub)s(expression.)39 b(This)29 b(v)-5 b(ariable)31
+b(is)g(read-only)-8 b(.)150 1302 y Fs(BASH_SOURCE)630
+1412 y Ft(An)24 b(arra)m(y)h(v)-5 b(ariable)26 b(whose)e(mem)m(b)s(ers)
+g(are)h(the)g(source)f(\014lenames)h(corresp)s(onding)e(to)j(the)630
+1521 y(elemen)m(ts)32 b(in)e(the)g Fs(FUNCNAME)e Ft(arra)m(y)j(v)-5
+b(ariable.)150 1694 y Fs(BASH_SUBSHELL)630 1804 y Ft(Incremen)m(ted)34
+b(b)m(y)h(one)f(eac)m(h)i(time)f(a)f(subshell)g(or)g(subshell)f(en)m
+(vironmen)m(t)i(is)f(spa)m(wned.)630 1913 y(The)c(initial)h(v)-5
+b(alue)31 b(is)g(0.)150 2086 y Fs(BASH_VERSINFO)630 2196
+y Ft(A)36 b(readonly)g(arra)m(y)g(v)-5 b(ariable)37 b(\(see)f(Section)h
+(6.7)g([Arra)m(ys],)h(page)e(80\))h(whose)f(mem)m(b)s(ers)630
+2305 y(hold)c(v)m(ersion)h(information)f(for)g(this)g(instance)h(of)g
+(Bash.)46 b(The)32 b(v)-5 b(alues)32 b(assigned)h(to)g(the)630
+2415 y(arra)m(y)e(mem)m(b)s(ers)e(are)i(as)g(follo)m(ws:)630
+2588 y Fs(BASH_VERSINFO[0])1110 2697 y Ft(The)f(ma)5
+b(jor)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i Fq(release)5
+b Ft(\).)630 2870 y Fs(BASH_VERSINFO[1])1110 2980 y Ft(The)30
+b(minor)g(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i Fq(v)m(ersion)p
+Ft(\).)630 3153 y Fs(BASH_VERSINFO[2])1110 3262 y Ft(The)f(patc)m(h)h
+(lev)m(el.)630 3435 y Fs(BASH_VERSINFO[3])1110 3545 y
+Ft(The)f(build)f(v)m(ersion.)630 3718 y Fs(BASH_VERSINFO[4])1110
+3827 y Ft(The)h(release)i(status)e(\(e.g.,)j Fq(b)s(eta1)7
+b Ft(\).)630 4000 y Fs(BASH_VERSINFO[5])1110 4110 y Ft(The)30
+b(v)-5 b(alue)31 b(of)f Fs(MACHTYPE)p Ft(.)150 4282 y
+Fs(BASH_VERSION)630 4392 y Ft(The)g(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h
+(the)h(curren)m(t)f(instance)h(of)g(Bash.)150 4565 y
+Fs(COLUMNS)144 b Ft(Used)36 b(b)m(y)h(the)f Fs(select)f
+Ft(builtin)h(command)h(to)g(determine)f(the)h(terminal)g(width)f(when)
+630 4674 y(prin)m(ting)30 b(selection)i(lists.)42 b(Automatically)33
+b(set)e(up)s(on)d(receipt)k(of)e(a)h Fs(SIGWINCH)p Ft(.)150
+4847 y Fs(COMP_CWORD)630 4957 y Ft(An)38 b(index)g(in)m(to)h
+Fs(${COMP_WORDS})c Ft(of)k(the)g(w)m(ord)f(con)m(taining)i(the)e
+(curren)m(t)g(cursor)g(p)s(o-)630 5066 y(sition.)72 b(This)40
+b(v)-5 b(ariable)41 b(is)f(a)m(v)-5 b(ailable)43 b(only)e(in)f(shell)h
+(functions)f(in)m(v)m(ok)m(ed)i(b)m(y)e(the)h(pro-)630
+5176 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g
+([Programmable)g(Completion],)630 5286 y(page)31 b(115\).)p
+eop end
+%%Page: 64 70
+TeXDict begin 64 69 bop 150 -116 a Ft(64)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(COMP_LINE)630 408
+y Ft(The)38 b(curren)m(t)h(command)f(line.)66 b(This)37
+b(v)-5 b(ariable)40 b(is)f(a)m(v)-5 b(ailable)41 b(only)d(in)h(shell)f
+(functions)630 518 y(and)25 b(external)h(commands)f(in)m(v)m(ok)m(ed)h
+(b)m(y)f(the)h(programmable)f(completion)i(facilities)g(\(see)630
+628 y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(115\).)150
+778 y Fs(COMP_POINT)630 888 y Ft(The)25 b(index)g(of)h(the)g(curren)m
+(t)f(cursor)g(p)s(osition)h(relativ)m(e)i(to)e(the)g(b)s(eginning)f(of)
+g(the)h(curren)m(t)630 998 y(command.)40 b(If)27 b(the)h(curren)m(t)g
+(cursor)g(p)s(osition)g(is)g(at)g(the)g(end)g(of)g(the)g(curren)m(t)g
+(command,)630 1107 y(the)i(v)-5 b(alue)30 b(of)g(this)g(v)-5
+b(ariable)31 b(is)f(equal)g(to)h Fs(${#COMP_LINE})p Ft(.)37
+b(This)29 b(v)-5 b(ariable)31 b(is)f(a)m(v)-5 b(ailable)630
+1217 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g
+(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 1326
+y(completion)c(facilities)g(\(see)g(Section)f(8.6)g([Programmable)g
+(Completion],)h(page)f(115\).)150 1477 y Fs(COMP_TYPE)630
+1587 y Ft(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28
+b(corresp)s(onding)e(to)h(the)h(t)m(yp)s(e)f(of)g(completion)h
+(attempted)g(that)630 1696 y(caused)e(a)h(completion)h(function)e(to)h
+(b)s(e)f(called:)40 b Fq(T)-8 b(AB)p Ft(,)27 b(for)f(normal)h
+(completion,)i(`)p Fs(?)p Ft(',)e(for)630 1806 y(listing)35
+b(completions)h(after)f(successiv)m(e)g(tabs,)h(`)p Fs(!)p
+Ft(',)g(for)e(listing)h(alternativ)m(es)i(on)d(partial)630
+1915 y(w)m(ord)22 b(completion,)k(`)p Fs(@)p Ft(',)f(to)e(list)g
+(completions)h(if)f(the)g(w)m(ord)f(is)h(not)g(unmo)s(di\014ed,)f(or)h
+(`)p Fs(\045)p Ft(',)h(for)630 2025 y(men)m(u)i(completion.)41
+b(This)25 b(v)-5 b(ariable)27 b(is)g(a)m(v)-5 b(ailable)28
+b(only)f(in)f(shell)g(functions)g(and)g(external)630
+2134 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h
+(completion)g(facilities)i(\(see)e(Section)g(8.6)630
+2244 y([Programmable)e(Completion],)h(page)f(115\).)150
+2395 y Fs(COMP_KEY)96 b Ft(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i
+(of)f(a)g(k)m(ey)h(sequence\))g(used)e(to)i(in)m(v)m(ok)m(e)h(the)e
+(curren)m(t)g(completion)630 2504 y(function.)150 2655
+y Fs(COMP_WORDBREAKS)630 2765 y Ft(The)f(set)i(of)e(c)m(haracters)j
+(that)e(the)g(Readline)g(library)g(treats)g(as)g(w)m(ord)g(separators)g
+(when)630 2874 y(p)s(erforming)i(w)m(ord)h(completion.)51
+b(If)33 b Fs(COMP_WORDBREAKS)c Ft(is)34 b(unset,)g(it)f(loses)i(its)e
+(sp)s(ecial)630 2984 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g
+(subsequen)m(tly)f(reset.)150 3134 y Fs(COMP_WORDS)630
+3244 y Ft(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the)
+g(individual)f(w)m(ords)h(in)f(the)h(curren)m(t)g(command)630
+3354 y(line.)76 b(The)41 b(w)m(ords)h(are)g(split)h(on)e(shell)i(metac)
+m(haracters)h(as)e(the)h(shell)f(parser)f(w)m(ould)630
+3463 y(separate)31 b(them.)40 b(This)29 b(v)-5 b(ariable)30
+b(is)g(a)m(v)-5 b(ailable)32 b(only)d(in)g(shell)h(functions)f(in)m(v)m
+(ok)m(ed)i(b)m(y)f(the)630 3573 y(programmable)42 b(completion)h
+(facilities)h(\(see)e(Section)h(8.6)f([Programmable)h(Comple-)630
+3682 y(tion],)31 b(page)g(115\).)150 3833 y Fs(COMPREPLY)630
+3943 y Ft(An)37 b(arra)m(y)h(v)-5 b(ariable)38 b(from)f(whic)m(h)g
+(Bash)g(reads)g(the)h(p)s(ossible)e(completions)j(generated)630
+4052 y(b)m(y)33 b(a)g(shell)h(function)f(in)m(v)m(ok)m(ed)h(b)m(y)f
+(the)g(programmable)h(completion)g(facilit)m(y)h(\(see)f(Sec-)630
+4162 y(tion)d(8.6)g([Programmable)g(Completion],)h(page)f(115\).)150
+4313 y Fs(DIRSTACK)96 b Ft(An)26 b(arra)m(y)h(v)-5 b(ariable)28
+b(con)m(taining)g(the)f(curren)m(t)f(con)m(ten)m(ts)j(of)e(the)f
+(directory)i(stac)m(k.)41 b(Direc-)630 4422 y(tories)33
+b(app)s(ear)f(in)g(the)h(stac)m(k)h(in)e(the)h(order)f(they)h(are)g
+(displa)m(y)m(ed)g(b)m(y)f(the)h Fs(dirs)e Ft(builtin.)630
+4532 y(Assigning)f(to)h(mem)m(b)s(ers)f(of)g(this)g(arra)m(y)g(v)-5
+b(ariable)31 b(ma)m(y)g(b)s(e)e(used)h(to)h(mo)s(dify)e(directories)630
+4641 y(already)41 b(in)f(the)h(stac)m(k,)k(but)40 b(the)h
+Fs(pushd)e Ft(and)h Fs(popd)f Ft(builtins)h(m)m(ust)h(b)s(e)e(used)h
+(to)i(add)630 4751 y(and)37 b(remo)m(v)m(e)h(directories.)63
+b(Assignmen)m(t)37 b(to)h(this)f(v)-5 b(ariable)38 b(will)g(not)f(c)m
+(hange)i(the)e(cur-)630 4861 y(ren)m(t)c(directory)-8
+b(.)47 b(If)32 b Fs(DIRSTACK)e Ft(is)i(unset,)g(it)h(loses)g(its)g(sp)s
+(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)630
+4970 y(subsequen)m(tly)d(reset.)150 5121 y Fs(EMACS)240
+b Ft(If)31 b(Bash)h(\014nds)d(this)j(v)-5 b(ariable)32
+b(in)f(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)f(starts)h(with)f
+(v)-5 b(alue)630 5230 y(`)p Fs(t)p Ft(',)38 b(it)e(assumes)g(that)g
+(the)h(shell)f(is)g(running)e(in)i(an)g(emacs)g(shell)h(bu\013er)e(and)
+g(disables)630 5340 y(line)c(editing.)p eop end
+%%Page: 65 71
+TeXDict begin 65 70 bop 150 -116 a Ft(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(65)150 299 y Fs(EUID)288
+b Ft(The)30 b(n)m(umeric)g(e\013ectiv)m(e)j(user)d(id)g(of)g(the)h
+(curren)m(t)f(user.)40 b(This)30 b(v)-5 b(ariable)31
+b(is)f(readonly)-8 b(.)150 463 y Fs(FCEDIT)192 b Ft(The)30
+b(editor)h(used)e(as)i(a)g(default)f(b)m(y)h(the)f(`)p
+Fs(-e)p Ft(')g(option)h(to)g(the)g Fs(fc)f Ft(builtin)g(command.)150
+628 y Fs(FIGNORE)144 b Ft(A)35 b(colon-separated)i(list)f(of)g
+(su\016xes)e(to)i(ignore)g(when)e(p)s(erforming)g(\014lename)i(comple-)
+630 737 y(tion.)j(A)25 b(\014le)g(name)g(whose)f(su\016x)g(matc)m(hes)i
+(one)f(of)g(the)g(en)m(tries)g(in)g Fs(FIGNORE)d Ft(is)j(excluded)630
+847 y(from)30 b(the)g(list)h(of)g(matc)m(hed)g(\014le)g(names.)40
+b(A)31 b(sample)f(v)-5 b(alue)31 b(is)g(`)p Fs(.o:~)p
+Ft(')150 1011 y Fs(FUNCNAME)96 b Ft(An)35 b(arra)m(y)i(v)-5
+b(ariable)36 b(con)m(taining)h(the)f(names)g(of)g(all)g(shell)g
+(functions)g(curren)m(tly)f(in)h(the)630 1121 y(execution)g(call)h
+(stac)m(k.)57 b(The)34 b(elemen)m(t)j(with)e(index)g(0)h(is)f(the)g
+(name)h(of)f(an)m(y)h(curren)m(tly-)630 1230 y(executing)i(shell)f
+(function.)61 b(The)36 b(b)s(ottom-most)i(elemen)m(t)h(is)e
+Fs("main")p Ft(.)59 b(This)36 b(v)-5 b(ariable)630 1340
+y(exists)33 b(only)g(when)f(a)h(shell)g(function)f(is)h(executing.)49
+b(Assignmen)m(ts)33 b(to)g Fs(FUNCNAME)e Ft(ha)m(v)m(e)630
+1450 y(no)36 b(e\013ect)h(and)e(return)f(an)i(error)f(status.)57
+b(If)36 b Fs(FUNCNAME)d Ft(is)j(unset,)h(it)f(loses)g(its)g(sp)s(ecial)
+630 1559 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is)g(subsequen)m
+(tly)f(reset.)150 1724 y Fs(GLOBIGNORE)630 1833 y Ft(A)38
+b(colon-separated)i(list)f(of)f(patterns)g(de\014ning)f(the)h(set)g(of)
+h(\014lenames)f(to)g(b)s(e)g(ignored)630 1943 y(b)m(y)31
+b(\014lename)g(expansion.)43 b(If)31 b(a)h(\014lename)f(matc)m(hed)h(b)
+m(y)f(a)g(\014lename)h(expansion)f(pattern)630 2052 y(also)i(matc)m
+(hes)g(one)f(of)g(the)g(patterns)g(in)f Fs(GLOBIGNORE)p
+Ft(,)f(it)i(is)g(remo)m(v)m(ed)h(from)e(the)h(list)h(of)630
+2162 y(matc)m(hes.)150 2326 y Fs(GROUPS)192 b Ft(An)36
+b(arra)m(y)g(v)-5 b(ariable)37 b(con)m(taining)g(the)f(list)h(of)f
+(groups)g(of)g(whic)m(h)f(the)i(curren)m(t)e(user)h(is)g(a)630
+2436 y(mem)m(b)s(er.)47 b(Assignmen)m(ts)33 b(to)g Fs(GROUPS)e
+Ft(ha)m(v)m(e)j(no)f(e\013ect)h(and)e(return)g(an)g(error)g(status.)48
+b(If)630 2545 y Fs(GROUPS)29 b Ft(is)h(unset,)g(it)h(loses)g(its)g(sp)s
+(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f
+(reset.)150 2710 y Fs(histchars)630 2819 y Ft(Up)c(to)g(three)g(c)m
+(haracters)i(whic)m(h)d(con)m(trol)j(history)d(expansion,)i(quic)m(k)g
+(substitution,)g(and)630 2929 y(tok)m(enization)k(\(see)f(Section)f
+(9.3)h([History)f(In)m(teraction],)i(page)f(123\).)41
+b(The)29 b(\014rst)e(c)m(harac-)630 3039 y(ter)j(is)f(the)g
+Fq(history)g(expansion)g Ft(c)m(haracter,)j(that)e(is,)f(the)h(c)m
+(haracter)h(whic)m(h)d(signi\014es)i(the)630 3148 y(start)25
+b(of)f(a)h(history)f(expansion,)i(normally)e(`)p Fs(!)p
+Ft('.)39 b(The)24 b(second)g(c)m(haracter)i(is)e(the)g(c)m(haracter)630
+3258 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f
+(seen)h(as)g(the)g(\014rst)f(c)m(haracter)j(on)e(a)g(line,)630
+3367 y(normally)27 b(`)p Fs(^)p Ft('.)39 b(The)26 b(optional)i(third)d
+(c)m(haracter)j(is)e(the)h(c)m(haracter)h(whic)m(h)e(indicates)h(that)
+630 3477 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h
+(when)e(found)f(as)i(the)g(\014rst)f(c)m(haracter)i(of)f(a)630
+3587 y(w)m(ord,)i(usually)f(`)p Fs(#)p Ft('.)55 b(The)34
+b(history)h(commen)m(t)h(c)m(haracter)h(causes)e(history)g
+(substitution)630 3696 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f
+(remaining)h(w)m(ords)f(on)h(the)f(line.)40 b(It)27 b(do)s(es)f(not)h
+(necessarily)g(cause)630 3806 y(the)k(shell)f(parser)g(to)h(treat)g
+(the)g(rest)g(of)f(the)h(line)f(as)h(a)g(commen)m(t.)150
+3970 y Fs(HISTCMD)144 b Ft(The)35 b(history)h(n)m(um)m(b)s(er,)g(or)f
+(index)g(in)h(the)g(history)f(list,)j(of)e(the)g(curren)m(t)f(command.)
+56 b(If)630 4080 y Fs(HISTCMD)28 b Ft(is)h(unset,)h(it)g(loses)h(its)f
+(sp)s(ecial)g(prop)s(erties,)g(ev)m(en)g(if)g(it)g(is)g(subsequen)m
+(tly)f(reset.)150 4244 y Fs(HISTCONTROL)630 4354 y Ft(A)40
+b(colon-separated)i(list)f(of)f(v)-5 b(alues)40 b(con)m(trolling)i(ho)m
+(w)e(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)630 4463
+y(history)29 b(list.)41 b(If)28 b(the)h(list)h(of)f(v)-5
+b(alues)29 b(includes)f(`)p Fs(ignorespace)p Ft(',)f(lines)i(whic)m(h)g
+(b)s(egin)f(with)630 4573 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g
+(sa)m(v)m(ed)g(in)g(the)g(history)f(list.)66 b(A)39 b(v)-5
+b(alue)39 b(of)g(`)p Fs(ignoredups)p Ft(')630 4682 y(causes)34
+b(lines)h(whic)m(h)f(matc)m(h)h(the)f(previous)f(history)h(en)m(try)h
+(to)g(not)f(b)s(e)f(sa)m(v)m(ed.)53 b(A)34 b(v)-5 b(alue)630
+4792 y(of)32 b(`)p Fs(ignoreboth)p Ft(')d(is)j(shorthand)e(for)i(`)p
+Fs(ignorespace)p Ft(')d(and)i(`)p Fs(ignoredups)p Ft('.)42
+b(A)32 b(v)-5 b(alue)32 b(of)630 4902 y(`)p Fs(erasedups)p
+Ft(')f(causes)i(all)h(previous)f(lines)g(matc)m(hing)h(the)f(curren)m
+(t)g(line)g(to)h(b)s(e)e(remo)m(v)m(ed)630 5011 y(from)42
+b(the)h(history)f(list)i(b)s(efore)e(that)h(line)g(is)g(sa)m(v)m(ed.)78
+b(An)m(y)43 b(v)-5 b(alue)43 b(not)g(in)f(the)h(ab)s(o)m(v)m(e)630
+5121 y(list)35 b(is)g(ignored.)53 b(If)34 b Fs(HISTCONTROL)e
+Ft(is)i(unset,)i(or)e(do)s(es)h(not)g(include)f(a)h(v)-5
+b(alid)35 b(v)-5 b(alue,)36 b(all)630 5230 y(lines)30
+b(read)g(b)m(y)g(the)g(shell)g(parser)g(are)g(sa)m(v)m(ed)h(on)f(the)g
+(history)g(list,)h(sub)5 b(ject)30 b(to)g(the)g(v)-5
+b(alue)630 5340 y(of)42 b Fs(HISTIGNORE)p Ft(.)73 b(The)42
+b(second)g(and)g(subsequen)m(t)f(lines)h(of)h(a)f(m)m(ulti-line)h(comp)
+s(ound)p eop end
+%%Page: 66 72
+TeXDict begin 66 71 bop 150 -116 a Ft(66)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y(command)i(are)h(not)g(tested,)i(and)d
+(are)h(added)f(to)h(the)g(history)g(regardless)g(of)g(the)f(v)-5
+b(alue)630 408 y(of)31 b Fs(HISTCONTROL)p Ft(.)150 553
+y Fs(HISTFILE)96 b Ft(The)27 b(name)h(of)g(the)g(\014le)g(to)h(whic)m
+(h)f(the)g(command)f(history)h(is)g(sa)m(v)m(ed.)41 b(The)27
+b(default)h(v)-5 b(alue)630 662 y(is)30 b(`)p Fs(~/.bash_history)p
+Ft('.)150 806 y Fs(HISTFILESIZE)630 916 y Ft(The)c(maxim)m(um)f(n)m(um)
+m(b)s(er)g(of)h(lines)h(con)m(tained)g(in)f(the)g(history)g(\014le.)39
+b(When)26 b(this)g(v)-5 b(ariable)630 1026 y(is)33 b(assigned)h(a)g(v)
+-5 b(alue,)35 b(the)f(history)f(\014le)g(is)h(truncated,)g(if)g
+(necessary)-8 b(,)35 b(b)m(y)e(remo)m(ving)i(the)630
+1135 y(oldest)29 b(en)m(tries,)g(to)g(con)m(tain)g(no)f(more)g(than)f
+(that)i(n)m(um)m(b)s(er)e(of)h(lines.)40 b(The)27 b(history)h(\014le)g
+(is)630 1245 y(also)33 b(truncated)e(to)h(this)g(size)g(after)g
+(writing)g(it)g(when)f(an)g(in)m(teractiv)m(e)k(shell)c(exits.)45
+b(The)630 1354 y(default)31 b(v)-5 b(alue)30 b(is)h(500.)150
+1499 y Fs(HISTIGNORE)630 1608 y Ft(A)i(colon-separated)h(list)f(of)g
+(patterns)f(used)g(to)h(decide)g(whic)m(h)f(command)g(lines)h(should)
+630 1718 y(b)s(e)f(sa)m(v)m(ed)h(on)g(the)f(history)h(list.)47
+b(Eac)m(h)33 b(pattern)g(is)f(anc)m(hored)h(at)g(the)f(b)s(eginning)g
+(of)h(the)630 1827 y(line)43 b(and)e(m)m(ust)h(matc)m(h)h(the)g
+(complete)h(line)e(\(no)h(implicit)g(`)p Fs(*)p Ft(')f(is)g(app)s
+(ended\).)75 b(Eac)m(h)630 1937 y(pattern)42 b(is)g(tested)g(against)h
+(the)f(line)g(after)g(the)g(c)m(hec)m(ks)h(sp)s(eci\014ed)e(b)m(y)h
+Fs(HISTCONTROL)630 2047 y Ft(are)37 b(applied.)59 b(In)36
+b(addition)h(to)g(the)g(normal)g(shell)f(pattern)h(matc)m(hing)h(c)m
+(haracters,)i(`)p Fs(&)p Ft(')630 2156 y(matc)m(hes)d(the)f(previous)g
+(history)g(line.)57 b(`)p Fs(&)p Ft(')36 b(ma)m(y)h(b)s(e)e(escap)s(ed)
+h(using)g(a)g(bac)m(kslash;)k(the)630 2266 y(bac)m(kslash)34
+b(is)g(remo)m(v)m(ed)h(b)s(efore)e(attempting)i(a)g(matc)m(h.)51
+b(The)34 b(second)f(and)h(subsequen)m(t)630 2375 y(lines)e(of)h(a)g(m)m
+(ulti-line)g(comp)s(ound)e(command)h(are)h(not)f(tested,)i(and)e(are)g
+(added)g(to)h(the)630 2485 y(history)d(regardless)h(of)g(the)f(v)-5
+b(alue)31 b(of)g Fs(HISTIGNORE)p Ft(.)630 2612 y Fs(HISTIGNORE)20
+b Ft(subsumes)g(the)j(function)f(of)h Fs(HISTCONTROL)p
+Ft(.)35 b(A)23 b(pattern)f(of)h(`)p Fs(&)p Ft(')g(is)f(iden)m(tical)630
+2721 y(to)k Fs(ignoredups)p Ft(,)e(and)h(a)h(pattern)g(of)f(`)p
+Fs([)31 b(]*)p Ft(')25 b(is)h(iden)m(tical)h(to)f Fs(ignorespace)p
+Ft(.)36 b(Com)m(bining)630 2831 y(these)30 b(t)m(w)m(o)h(patterns,)f
+(separating)g(them)g(with)f(a)h(colon,)h(pro)m(vides)e(the)h
+(functionalit)m(y)h(of)630 2941 y Fs(ignoreboth)p Ft(.)150
+3085 y Fs(HISTSIZE)96 b Ft(The)42 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
+(commands)e(to)j(remem)m(b)s(er)d(on)h(the)h(history)f(list.)77
+b(The)630 3194 y(default)31 b(v)-5 b(alue)30 b(is)h(500.)150
+3339 y Fs(HISTTIMEFORMAT)630 3448 y Ft(If)44 b(this)g(v)-5
+b(ariable)45 b(is)f(set)g(and)g(not)g(n)m(ull,)k(its)d(v)-5
+b(alue)44 b(is)g(used)g(as)g(a)h(format)f(string)g(for)630
+3558 y Fq(strftime)c Ft(to)35 b(prin)m(t)f(the)h(time)g(stamp)f(asso)s
+(ciated)i(with)f(eac)m(h)g(history)g(en)m(try)f(displa)m(y)m(ed)630
+3667 y(b)m(y)g(the)f Fs(history)f Ft(builtin.)50 b(If)33
+b(this)h(v)-5 b(ariable)34 b(is)g(set,)h(time)f(stamps)g(are)g(written)
+f(to)i(the)630 3777 y(history)26 b(\014le)g(so)g(they)g(ma)m(y)h(b)s(e)
+e(preserv)m(ed)g(across)i(shell)f(sessions.)39 b(This)25
+b(uses)h(the)g(history)630 3886 y(commen)m(t)31 b(c)m(haracter)h(to)f
+(distinguish)f(timestamps)h(from)f(other)g(history)h(lines.)150
+4031 y Fs(HOSTFILE)96 b Ft(Con)m(tains)39 b(the)f(name)g(of)h(a)g
+(\014le)f(in)g(the)g(same)h(format)g(as)f(`)p Fs(/etc/hosts)p
+Ft(')e(that)j(should)630 4140 y(b)s(e)i(read)h(when)f(the)i(shell)f
+(needs)f(to)i(complete)h(a)e(hostname.)76 b(The)42 b(list)g(of)g(p)s
+(ossible)630 4250 y(hostname)26 b(completions)g(ma)m(y)h(b)s(e)d(c)m
+(hanged)j(while)e(the)h(shell)g(is)f(running;)h(the)g(next)f(time)630
+4359 y(hostname)37 b(completion)i(is)e(attempted)h(after)g(the)f(v)-5
+b(alue)37 b(is)h(c)m(hanged,)h(Bash)e(adds)g(the)630
+4469 y(con)m(ten)m(ts)27 b(of)f(the)g(new)f(\014le)h(to)h(the)f
+(existing)g(list.)40 b(If)25 b Fs(HOSTFILE)f Ft(is)i(set,)h(but)e(has)h
+(no)f(v)-5 b(alue,)630 4579 y(Bash)41 b(attempts)g(to)g(read)f(`)p
+Fs(/etc/hosts)p Ft(')f(to)i(obtain)g(the)f(list)h(of)g(p)s(ossible)f
+(hostname)630 4688 y(completions.)i(When)30 b Fs(HOSTFILE)e
+Ft(is)j(unset,)f(the)g(hostname)h(list)g(is)f(cleared.)150
+4832 y Fs(HOSTNAME)96 b Ft(The)30 b(name)g(of)h(the)f(curren)m(t)h
+(host.)150 4977 y Fs(HOSTTYPE)96 b Ft(A)30 b(string)h(describing)f(the)
+g(mac)m(hine)h(Bash)g(is)f(running)f(on.)150 5121 y Fs(IGNOREEOF)630
+5230 y Ft(Con)m(trols)e(the)h(action)g(of)f(the)g(shell)g(on)g(receipt)
+h(of)f(an)g Fs(EOF)f Ft(c)m(haracter)i(as)g(the)f(sole)h(input.)630
+5340 y(If)i(set,)i(the)f(v)-5 b(alue)32 b(denotes)f(the)g(n)m(um)m(b)s
+(er)f(of)h(consecutiv)m(e)i Fs(EOF)d Ft(c)m(haracters)i(that)f(can)h(b)
+s(e)p eop end
+%%Page: 67 73
+TeXDict begin 67 72 bop 150 -116 a Ft(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(67)630 299 y(read)40
+b(as)f(the)h(\014rst)f(c)m(haracter)i(on)f(an)f(input)g(line)h(b)s
+(efore)f(the)h(shell)g(will)g(exit.)70 b(If)39 b(the)630
+408 y(v)-5 b(ariable)38 b(exists)f(but)f(do)s(es)g(not)h(ha)m(v)m(e)h
+(a)g(n)m(umeric)e(v)-5 b(alue)37 b(\(or)h(has)e(no)h(v)-5
+b(alue\))37 b(then)g(the)630 518 y(default)31 b(is)g(10.)43
+b(If)30 b(the)h(v)-5 b(ariable)31 b(do)s(es)g(not)g(exist,)h(then)e
+Fs(EOF)g Ft(signi\014es)h(the)g(end)f(of)h(input)630
+628 y(to)g(the)g(shell.)41 b(This)29 b(is)i(only)f(in)g(e\013ect)i(for)
+e(in)m(teractiv)m(e)j(shells.)150 774 y Fs(INPUTRC)144
+b Ft(The)68 b(name)h(of)f(the)h(Readline)g(initialization)j(\014le,)78
+b(o)m(v)m(erriding)69 b(the)g(default)g(of)630 883 y(`)p
+Fs(~/.inputrc)p Ft('.)150 1029 y Fs(LANG)288 b Ft(Used)28
+b(to)h(determine)f(the)g(lo)s(cale)h(category)h(for)e(an)m(y)h
+(category)h(not)e(sp)s(eci\014cally)g(selected)630 1139
+y(with)i(a)h(v)-5 b(ariable)31 b(starting)g(with)f Fs(LC_)p
+Ft(.)150 1285 y Fs(LC_ALL)192 b Ft(This)28 b(v)-5 b(ariable)29
+b(o)m(v)m(errides)h(the)f(v)-5 b(alue)29 b(of)g Fs(LANG)f
+Ft(and)g(an)m(y)h(other)g Fs(LC_)f Ft(v)-5 b(ariable)29
+b(sp)s(ecifying)630 1395 y(a)i(lo)s(cale)h(category)-8
+b(.)150 1541 y Fs(LC_COLLATE)630 1650 y Ft(This)37 b(v)-5
+b(ariable)38 b(determines)g(the)g(collation)i(order)d(used)g(when)f
+(sorting)i(the)g(results)g(of)630 1760 y(\014lename)e(expansion,)i(and)
+e(determines)g(the)h(b)s(eha)m(vior)f(of)g(range)h(expressions,)h
+(equiv-)630 1870 y(alence)e(classes,)h(and)e(collating)i(sequences)e
+(within)f(\014lename)h(expansion)g(and)f(pattern)630
+1979 y(matc)m(hing)d(\(see)h(Section)f(3.5.8)h([Filename)g(Expansion],)
+e(page)h(24\).)150 2125 y Fs(LC_CTYPE)96 b Ft(This)36
+b(v)-5 b(ariable)37 b(determines)f(the)h(in)m(terpretation)h(of)f(c)m
+(haracters)h(and)e(the)g(b)s(eha)m(vior)h(of)630 2235
+y(c)m(haracter)46 b(classes)g(within)e(\014lename)h(expansion)g(and)f
+(pattern)h(matc)m(hing)h(\(see)f(Sec-)630 2345 y(tion)31
+b(3.5.8)h([Filename)g(Expansion],)e(page)h(24\).)150
+2491 y Fs(LC_MESSAGES)630 2600 y Ft(This)25 b(v)-5 b(ariable)27
+b(determines)f(the)g(lo)s(cale)i(used)d(to)i(translate)g(double-quoted)
+f(strings)g(pre-)630 2710 y(ceded)31 b(b)m(y)f(a)h(`)p
+Fs($)p Ft(')f(\(see)h(Section)h(3.1.2.5)g([Lo)s(cale)g(T)-8
+b(ranslation],)32 b(page)f(7\).)150 2856 y Fs(LC_NUMERIC)630
+2966 y Ft(This)f(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h
+(category)g(used)e(for)g(n)m(um)m(b)s(er)f(formatting.)150
+3112 y Fs(LINENO)192 b Ft(The)30 b(line)h(n)m(um)m(b)s(er)e(in)h(the)g
+(script)h(or)f(shell)g(function)h(curren)m(tly)f(executing.)150
+3258 y Fs(LINES)240 b Ft(Used)25 b(b)m(y)g(the)g Fs(select)e
+Ft(builtin)i(command)g(to)h(determine)f(the)g(column)g(length)g(for)g
+(prin)m(t-)630 3367 y(ing)31 b(selection)h(lists.)41
+b(Automatically)33 b(set)e(up)s(on)e(receipt)i(of)f(a)h
+Fs(SIGWINCH)p Ft(.)150 3513 y Fs(MACHTYPE)96 b Ft(A)26
+b(string)g(that)h(fully)f(describ)s(es)f(the)h(system)g(t)m(yp)s(e)h
+(on)f(whic)m(h)f(Bash)i(is)f(executing,)i(in)e(the)630
+3623 y(standard)k Fl(gnu)g Fq(cpu-compan)m(y-system)h
+Ft(format.)150 3769 y Fs(MAILCHECK)630 3879 y Ft(Ho)m(w)d(often)g(\(in)
+g(seconds\))g(that)g(the)f(shell)h(should)f(c)m(hec)m(k)i(for)e(mail)h
+(in)f(the)h(\014les)g(sp)s(eci\014ed)630 3988 y(in)i(the)h
+Fs(MAILPATH)e Ft(or)i Fs(MAIL)e Ft(v)-5 b(ariables.)43
+b(The)30 b(default)h(is)f(60)i(seconds.)42 b(When)30
+b(it)h(is)g(time)630 4098 y(to)37 b(c)m(hec)m(k)h(for)e(mail,)j(the)e
+(shell)f(do)s(es)g(so)h(b)s(efore)f(displa)m(ying)h(the)f(primary)g
+(prompt.)57 b(If)630 4208 y(this)37 b(v)-5 b(ariable)38
+b(is)f(unset,)h(or)f(set)h(to)g(a)f(v)-5 b(alue)38 b(that)f(is)g(not)h
+(a)f(n)m(um)m(b)s(er)f(greater)i(than)f(or)630 4317 y(equal)31
+b(to)g(zero,)g(the)g(shell)g(disables)f(mail)h(c)m(hec)m(king.)150
+4463 y Fs(OLDPWD)192 b Ft(The)30 b(previous)g(w)m(orking)g(directory)h
+(as)g(set)g(b)m(y)f(the)h Fs(cd)e Ft(builtin.)150 4609
+y Fs(OPTERR)192 b Ft(If)35 b(set)i(to)f(the)h(v)-5 b(alue)36
+b(1,)i(Bash)e(displa)m(ys)g(error)f(messages)i(generated)g(b)m(y)f(the)
+g Fs(getopts)630 4719 y Ft(builtin)30 b(command.)150
+4865 y Fs(OSTYPE)192 b Ft(A)30 b(string)h(describing)f(the)g(op)s
+(erating)h(system)g(Bash)f(is)h(running)d(on.)150 5011
+y Fs(PIPESTATUS)630 5121 y Ft(An)23 b(arra)m(y)h(v)-5
+b(ariable)24 b(\(see)h(Section)f(6.7)h([Arra)m(ys],)g(page)f(80\))h
+(con)m(taining)g(a)f(list)g(of)g(exit)g(sta-)630 5230
+y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g(in)f(the)h
+(most-recen)m(tly-executed)j(foreground)c(pip)s(eline)630
+5340 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h
+(command\).)p eop end
+%%Page: 68 74
+TeXDict begin 68 73 bop 150 -116 a Ft(68)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(POSIXLY_CORRECT)630
+408 y Ft(If)h(this)h(v)-5 b(ariable)34 b(is)f(in)f(the)h(en)m(vironmen)
+m(t)h(when)d Fs(bash)h Ft(starts,)i(the)f(shell)g(en)m(ters)h
+Fl(posix)630 518 y Ft(mo)s(de)22 b(\(see)h(Section)g(6.11)h([Bash)e
+(POSIX)f(Mo)s(de],)k(page)e(85\))g(b)s(efore)f(reading)g(the)g(startup)
+630 628 y(\014les,)32 b(as)f(if)h(the)f(`)p Fs(--posix)p
+Ft(')f(in)m(v)m(o)s(cation)j(option)f(had)f(b)s(een)g(supplied.)42
+b(If)31 b(it)h(is)f(set)h(while)630 737 y(the)f(shell)f(is)h(running,)d
+Fs(bash)i Ft(enables)g Fl(posix)g Ft(mo)s(de,)g(as)h(if)f(the)h
+(command)870 874 y Fs(set)47 b(-o)g(posix)630 1011 y
+Ft(had)30 b(b)s(een)f(executed.)150 1176 y Fs(PPID)288
+b Ft(The)30 b(pro)s(cess)g Fl(id)g Ft(of)h(the)f(shell's)h(paren)m(t)g
+(pro)s(cess.)40 b(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8
+b(.)150 1340 y Fs(PROMPT_COMMAND)630 1450 y Ft(If)32
+b(set,)h(the)f(v)-5 b(alue)33 b(is)f(in)m(terpreted)g(as)g(a)h(command)
+f(to)h(execute)g(b)s(efore)f(the)g(prin)m(ting)g(of)630
+1559 y(eac)m(h)g(primary)d(prompt)g(\()p Fs($PS1)p Ft(\).)150
+1724 y Fs(PROMPT_DIRTRIM)630 1833 y Ft(If)e(set)g(to)h(a)g(n)m(um)m(b)s
+(er)e(greater)i(than)f(zero,)i(the)e(v)-5 b(alue)28 b(is)f(used)g(as)g
+(the)h(n)m(um)m(b)s(er)e(of)h(trailing)630 1943 y(directory)35
+b(comp)s(onen)m(ts)g(to)h(retain)f(when)f(expanding)g(the)h
+Fs(\\w)f Ft(and)g Fs(\\W)g Ft(prompt)g(string)630 2052
+y(escap)s(es)27 b(\(see)g(Section)g(6.9)h([Prin)m(ting)f(a)g(Prompt],)g
+(page)g(83\).)40 b(Characters)27 b(remo)m(v)m(ed)h(are)630
+2162 y(replaced)j(with)f(an)g(ellipsis.)150 2326 y Fs(PS3)336
+b Ft(The)34 b(v)-5 b(alue)35 b(of)f(this)g(v)-5 b(ariable)35
+b(is)g(used)e(as)i(the)f(prompt)g(for)g(the)g Fs(select)f
+Ft(command.)52 b(If)630 2436 y(this)30 b(v)-5 b(ariable)31
+b(is)g(not)f(set,)i(the)e Fs(select)f Ft(command)h(prompts)f(with)h(`)p
+Fs(#?)g Ft(')150 2600 y Fs(PS4)336 b Ft(The)20 b(v)-5
+b(alue)22 b(is)e(the)h(prompt)f(prin)m(ted)h(b)s(efore)f(the)h(command)
+g(line)g(is)g(ec)m(ho)s(ed)g(when)f(the)h(`)p Fs(-x)p
+Ft(')630 2710 y(option)32 b(is)f(set)h(\(see)g(Section)h(4.3.1)g([The)e
+(Set)g(Builtin],)i(page)f(51\).)45 b(The)31 b(\014rst)f(c)m(haracter)
+630 2819 y(of)k Fs(PS4)g Ft(is)g(replicated)i(m)m(ultiple)f(times,)h
+(as)e(necessary)-8 b(,)37 b(to)e(indicate)g(m)m(ultiple)g(lev)m(els)h
+(of)630 2929 y(indirection.)41 b(The)30 b(default)h(is)f(`)p
+Fs(+)g Ft('.)150 3093 y Fs(PWD)336 b Ft(The)30 b(curren)m(t)g(w)m
+(orking)h(directory)g(as)f(set)h(b)m(y)f(the)h Fs(cd)f
+Ft(builtin.)150 3258 y Fs(RANDOM)192 b Ft(Eac)m(h)30
+b(time)g(this)f(parameter)g(is)g(referenced,)h(a)f(random)g(in)m(teger)
+h(b)s(et)m(w)m(een)g(0)f(and)g(32767)630 3367 y(is)i(generated.)43
+b(Assigning)31 b(a)g(v)-5 b(alue)31 b(to)g(this)g(v)-5
+b(ariable)31 b(seeds)g(the)g(random)f(n)m(um)m(b)s(er)f(gen-)630
+3477 y(erator.)150 3641 y Fs(REPLY)240 b Ft(The)30 b(default)g(v)-5
+b(ariable)32 b(for)e(the)g Fs(read)g Ft(builtin.)150
+3806 y Fs(SECONDS)144 b Ft(This)40 b(v)-5 b(ariable)41
+b(expands)f(to)h(the)g(n)m(um)m(b)s(er)e(of)i(seconds)g(since)g(the)f
+(shell)h(w)m(as)g(started.)630 3915 y(Assignmen)m(t)i(to)g(this)g(v)-5
+b(ariable)43 b(resets)g(the)g(coun)m(t)g(to)g(the)g(v)-5
+b(alue)43 b(assigned,)j(and)c(the)630 4025 y(expanded)35
+b(v)-5 b(alue)36 b(b)s(ecomes)h(the)f(v)-5 b(alue)36
+b(assigned)g(plus)f(the)h(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630
+4134 y(the)31 b(assignmen)m(t.)150 4299 y Fs(SHELL)240
+b Ft(The)29 b(full)h(pathname)g(to)h(the)f(shell)g(is)g(k)m(ept)g(in)g
+(this)g(en)m(vironmen)m(t)g(v)-5 b(ariable.)42 b(If)29
+b(it)i(is)f(not)630 4408 y(set)36 b(when)f(the)h(shell)g(starts,)i
+(Bash)e(assigns)h(to)f(it)h(the)f(full)f(pathname)h(of)g(the)g(curren)m
+(t)630 4518 y(user's)30 b(login)h(shell.)150 4682 y Fs(SHELLOPTS)630
+4792 y Ft(A)g(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)
+41 b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5
+b(alid)630 4902 y(argumen)m(t)24 b(for)f(the)h(`)p Fs(-o)p
+Ft(')f(option)h(to)g(the)g Fs(set)f Ft(builtin)g(command)g(\(see)i
+(Section)f(4.3.1)h([The)630 5011 y(Set)k(Builtin],)h(page)f(51\).)42
+b(The)28 b(options)h(app)s(earing)f(in)g Fs(SHELLOPTS)e
+Ft(are)j(those)h(rep)s(orted)630 5121 y(as)g(`)p Fs(on)p
+Ft(')f(b)m(y)h(`)p Fs(set)g(-o)p Ft('.)40 b(If)29 b(this)h(v)-5
+b(ariable)30 b(is)g(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)h
+(starts)g(up,)630 5230 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h(list)
+g(will)f(b)s(e)g(enabled)h(b)s(efore)f(reading)g(an)m(y)h(startup)f
+(\014les.)630 5340 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8
+b(.)p eop end
+%%Page: 69 75
+TeXDict begin 69 74 bop 150 -116 a Ft(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(69)150 299 y Fs(SHLVL)240
+b Ft(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)m(h)h(time)f(a)h(new)e
+(instance)h(of)g(Bash)g(is)g(started.)38 b(This)20 b(is)h(in)m(tended)
+630 408 y(to)31 b(b)s(e)f(a)h(coun)m(t)g(of)f(ho)m(w)h(deeply)f(y)m
+(our)g(Bash)h(shells)f(are)h(nested.)150 568 y Fs(TIMEFORMAT)630
+677 y Ft(The)f(v)-5 b(alue)32 b(of)f(this)g(parameter)g(is)g(used)f(as)
+h(a)g(format)h(string)f(sp)s(ecifying)f(ho)m(w)h(the)g(tim-)630
+787 y(ing)37 b(information)f(for)h(pip)s(elines)f(pre\014xed)f(with)h
+(the)h Fs(time)e Ft(reserv)m(ed)i(w)m(ord)f(should)g(b)s(e)630
+897 y(displa)m(y)m(ed.)k(The)27 b(`)p Fs(\045)p Ft(')h(c)m(haracter)h
+(in)m(tro)s(duces)e(an)h(escap)s(e)g(sequence)g(that)g(is)f(expanded)g
+(to)630 1006 y(a)37 b(time)g(v)-5 b(alue)36 b(or)h(other)f
+(information.)59 b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i
+(meanings)630 1116 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)
+h(optional)h(p)s(ortions.)630 1275 y Fs(\045\045)384
+b Ft(A)30 b(literal)i(`)p Fs(\045)p Ft('.)630 1435 y
+Fs(\045[)p Fj(p)11 b Fs(][l]R)85 b Ft(The)30 b(elapsed)h(time)g(in)f
+(seconds.)630 1594 y Fs(\045[)p Fj(p)11 b Fs(][l]U)85
+b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g
+(user)f(mo)s(de.)630 1753 y Fs(\045[)p Fj(p)11 b Fs(][l]S)85
+b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g
+(system)g(mo)s(de.)630 1913 y Fs(\045P)384 b Ft(The)30
+b(CPU)g(p)s(ercen)m(tage,)i(computed)e(as)h(\(\045U)f
+Fs(+)g Ft(\045S\))g(/)h(\045R.)630 2072 y(The)23 b(optional)j
+Fq(p)g Ft(is)e(a)g(digit)h(sp)s(ecifying)e(the)h(precision,)i(the)e(n)m
+(um)m(b)s(er)f(of)h(fractional)h(digits)630 2182 y(after)36
+b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35 b(v)-5 b(alue)36
+b(of)f(0)h(causes)g(no)f(decimal)h(p)s(oin)m(t)f(or)h(fraction)g(to)g
+(b)s(e)630 2291 y(output.)48 b(A)m(t)34 b(most)f(three)g(places)h
+(after)f(the)g(decimal)h(p)s(oin)m(t)f(ma)m(y)h(b)s(e)e(sp)s
+(eci\014ed;)i(v)-5 b(alues)630 2401 y(of)31 b Fq(p)h
+Ft(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42
+b(If)29 b Fq(p)k Ft(is)d(not)h(sp)s(eci\014ed,)f(the)h(v)-5
+b(alue)30 b(3)h(is)g(used.)630 2535 y(The)54 b(optional)h
+Fs(l)f Ft(sp)s(eci\014es)g(a)h(longer)f(format,)61 b(including)54
+b(min)m(utes,)61 b(of)54 b(the)g(form)630 2645 y Fq(MM)10
+b Ft(m)p Fq(SS)p Ft(.)p Fq(FF)d Ft(s.)103 b(The)50 b(v)-5
+b(alue)52 b(of)f Fq(p)j Ft(determines)d(whether)f(or)h(not)h(the)f
+(fraction)h(is)630 2755 y(included.)630 2889 y(If)30
+b(this)g(v)-5 b(ariable)31 b(is)g(not)f(set,)i(Bash)e(acts)h(as)g(if)f
+(it)h(had)f(the)h(v)-5 b(alue)870 3024 y Fs
+($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o(sys\\)o(t\0453)o(lS')630
+3158 y Ft(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f
+(information)h(is)f(displa)m(y)m(ed.)62 b(A)37 b(trailing)i(newline)e
+(is)630 3268 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m
+(y)m(ed.)150 3427 y Fs(TMOUT)240 b Ft(If)22 b(set)h(to)g(a)g(v)-5
+b(alue)23 b(greater)h(than)e(zero,)j Fs(TMOUT)d Ft(is)g(treated)i(as)e
+(the)h(default)g(timeout)g(for)g(the)630 3537 y Fs(read)31
+b Ft(builtin)h(\(see)h(Section)f(4.2)i([Bash)e(Builtins],)h(page)g
+(41\).)47 b(The)32 b Fs(select)e Ft(command)630 3646
+y(\(see)f(Section)h(3.2.4.2)g([Conditional)g(Constructs],)e(page)i
+(10\))f(terminates)g(if)g(input)e(do)s(es)630 3756 y(not)k(arriv)m(e)g
+(after)g Fs(TMOUT)e Ft(seconds)h(when)f(input)h(is)g(coming)h(from)f(a)
+h(terminal.)630 3890 y(In)25 b(an)h(in)m(teractiv)m(e)i(shell,)g(the)e
+(v)-5 b(alue)26 b(is)g(in)m(terpreted)g(as)g(the)g(n)m(um)m(b)s(er)f
+(of)h(seconds)f(to)i(w)m(ait)630 4000 y(for)32 b(input)f(after)i
+(issuing)f(the)g(primary)g(prompt)f(when)g(the)i(shell)f(is)h(in)m
+(teractiv)m(e.)49 b(Bash)630 4110 y(terminates)31 b(after)g(that)g(n)m
+(um)m(b)s(er)e(of)i(seconds)f(if)g(input)g(do)s(es)g(not)g(arriv)m(e.)
+150 4269 y Fs(TMPDIR)192 b Ft(If)39 b(set,)j(Bash)e(uses)f(its)h(v)-5
+b(alue)40 b(as)f(the)h(name)f(of)h(a)g(directory)g(in)f(whic)m(h)g
+(Bash)h(creates)630 4379 y(temp)s(orary)30 b(\014les)g(for)g(the)h
+(shell's)g(use.)150 4538 y Fs(UID)336 b Ft(The)30 b(n)m(umeric)g(real)h
+(user)f(id)g(of)g(the)h(curren)m(t)f(user.)40 b(This)30
+b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)p eop end
+%%Page: 70 76
+TeXDict begin 70 75 bop 150 -116 a Ft(70)2572 b(Bash)31
+b(Reference)g(Man)m(ual)p eop end
+%%Page: 71 77
+TeXDict begin 71 76 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(71)150 299 y Fo(6)80
+b(Bash)54 b(F)-13 b(eatures)275 537 y Ft(This)29 b(section)j(describ)s
+(es)d(features)i(unique)e(to)j(Bash.)150 798 y Fr(6.1)68
+b(In)l(v)l(oking)46 b(Bash)390 1017 y Fs(bash)h([long-opt])e([-ir])h
+([-abefhkmnptuvxdBCDHP])c([-o)47 b Fj(option)11 b Fs(])45
+b([-O)i Fj(shopt_option)11 b Fs(])44 b([)p Fj(ar-)390
+1127 y(gument)57 b Fs(...)o(])390 1236 y(bash)47 b([long-opt])e
+([-abefhkmnptuvxdBCDHP])c([-o)47 b Fj(option)11 b Fs(])46
+b([-O)g Fj(shopt_option)11 b Fs(])44 b(-c)j Fj(string)57
+b Fs([)p Fj(ar-)390 1346 y(gument)g Fs(...)o(])390 1455
+y(bash)47 b([long-opt])e(-s)i([-abefhkmnptuvxdBCDHP])42
+b([-o)k Fj(option)11 b Fs(])46 b([-O)h Fj(shopt_option)11
+b Fs(])43 b([)p Fj(ar-)390 1565 y(gument)57 b Fs(...)o(])275
+1701 y Ft(In)22 b(addition)i(to)g(the)g(single-c)m(haracter)i(shell)e
+(command-line)g(options)f(\(see)i(Section)f(4.3.1)i([The)d(Set)150
+1810 y(Builtin],)k(page)e(51\),)i(there)e(are)g(sev)m(eral)h(m)m
+(ulti-c)m(haracter)h(options)e(that)g(y)m(ou)g(can)g(use.)38
+b(These)25 b(options)150 1920 y(m)m(ust)30 b(app)s(ear)g(on)g(the)h
+(command)f(line)h(b)s(efore)f(the)g(single-c)m(haracter)j(options)e(to)
+g(b)s(e)f(recognized.)150 2081 y Fs(--debugger)630 2191
+y Ft(Arrange)j(for)g(the)g(debugger)g(pro\014le)g(to)h(b)s(e)e
+(executed)i(b)s(efore)f(the)g(shell)g(starts.)49 b(T)-8
+b(urns)630 2301 y(on)25 b(extended)g(debugging)g(mo)s(de)f(\(see)i
+(Section)g(4.3.2)h([The)d(Shopt)h(Builtin],)i(page)e(54)h(for)630
+2410 y(a)35 b(description)f(of)h(the)g Fs(extdebug)d
+Ft(option)j(to)g(the)f Fs(shopt)f Ft(builtin\))i(and)f(shell)g
+(function)630 2520 y(tracing)d(\(see)g(Section)h(4.3.1)g([The)e(Set)g
+(Builtin],)h(page)g(51)h(for)e(a)g(description)h(of)f(the)h
+Fs(-o)630 2629 y(functrace)d Ft(option\).)150 2790 y
+Fs(--dump-po-strings)630 2900 y Ft(A)37 b(list)g(of)f(all)i
+(double-quoted)e(strings)g(preceded)g(b)m(y)h(`)p Fs($)p
+Ft(')f(is)h(prin)m(ted)f(on)g(the)h(standard)630 3009
+y(output)24 b(in)h(the)g Fl(gnu)f Fs(gettext)f Ft(PO)i(\(p)s(ortable)g
+(ob)5 b(ject\))26 b(\014le)f(format.)39 b(Equiv)-5 b(alen)m(t)26
+b(to)f(`)p Fs(-D)p Ft(')630 3119 y(except)31 b(for)f(the)h(output)f
+(format.)150 3280 y Fs(--dump-strings)630 3389 y Ft(Equiv)-5
+b(alen)m(t)31 b(to)g(`)p Fs(-D)p Ft('.)150 3550 y Fs(--help)192
+b Ft(Displa)m(y)32 b(a)e(usage)h(message)h(on)e(standard)g(output)g
+(and)f(exit)j(successfully)-8 b(.)150 3711 y Fs(--init-file)27
+b Fj(filename)150 3820 y Fs(--rcfile)h Fj(filename)630
+3930 y Ft(Execute)42 b(commands)f(from)f Fq(\014lename)47
+b Ft(\(instead)42 b(of)f(`)p Fs(~/.bashrc)p Ft('\))e(in)i(an)g(in)m
+(teractiv)m(e)630 4039 y(shell.)150 4200 y Fs(--login)144
+b Ft(Equiv)-5 b(alen)m(t)31 b(to)g(`)p Fs(-l)p Ft('.)150
+4361 y Fs(--noediting)630 4471 y Ft(Do)h(not)e(use)h(the)g
+Fl(gnu)f Ft(Readline)i(library)e(\(see)h(Chapter)g(8)g([Command)f(Line)
+g(Editing],)630 4580 y(page)h(93\))h(to)f(read)f(command)g(lines)h
+(when)e(the)i(shell)f(is)h(in)m(teractiv)m(e.)150 4741
+y Fs(--noprofile)630 4850 y Ft(Don't)h(load)f(the)g(system-wide)g
+(startup)f(\014le)g(`)p Fs(/etc/profile)p Ft(')e(or)j(an)m(y)g(of)g
+(the)f(p)s(ersonal)630 4960 y(initialization)g(\014les)d(`)p
+Fs(~/.bash_profile)p Ft(',)e(`)p Fs(~/.bash_login)p Ft(',)g(or)i(`)p
+Fs(~/.profile)p Ft(')e(when)630 5070 y(Bash)31 b(is)f(in)m(v)m(ok)m(ed)
+i(as)e(a)h(login)g(shell.)150 5230 y Fs(--norc)192 b
+Ft(Don't)31 b(read)g(the)f(`)p Fs(~/.bashrc)p Ft(')f(initialization)k
+(\014le)d(in)g(an)h(in)m(teractiv)m(e)i(shell.)41 b(This)30
+b(is)g(on)630 5340 y(b)m(y)g(default)h(if)f(the)h(shell)f(is)h(in)m(v)m
+(ok)m(ed)h(as)e Fs(sh)p Ft(.)p eop end
+%%Page: 72 78
+TeXDict begin 72 77 bop 150 -116 a Ft(72)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(--posix)144 b Ft(Change)24
+b(the)h(b)s(eha)m(vior)f(of)g(Bash)h(where)e(the)i(default)f(op)s
+(eration)h(di\013ers)f(from)f(the)i Fl(posix)630 408
+y Ft(standard)35 b(to)h(matc)m(h)g(the)g(standard.)55
+b(This)35 b(is)h(in)m(tended)f(to)h(mak)m(e)h(Bash)f(b)s(eha)m(v)m(e)g
+(as)g(a)630 518 y(strict)26 b(sup)s(erset)e(of)h(that)g(standard.)38
+b(See)26 b(Section)f(6.11)i([Bash)e(POSIX)f(Mo)s(de],)j(page)f(85,)630
+628 y(for)k(a)h(description)f(of)h(the)f(Bash)h Fl(posix)f
+Ft(mo)s(de.)150 787 y Fs(--restricted)630 897 y Ft(Mak)m(e)54
+b(the)e(shell)g(a)h(restricted)g(shell)f(\(see)h(Section)g(6.10)h([The)
+d(Restricted)j(Shell],)630 1006 y(page)31 b(84\).)150
+1166 y Fs(--verbose)630 1275 y Ft(Equiv)-5 b(alen)m(t)31
+b(to)g(`)p Fs(-v)p Ft('.)41 b(Prin)m(t)30 b(shell)h(input)e(lines)i(as)
+g(they're)f(read.)150 1435 y Fs(--version)630 1544 y
+Ft(Sho)m(w)e(v)m(ersion)g(information)g(for)g(this)g(instance)h(of)f
+(Bash)g(on)g(the)g(standard)f(output)h(and)630 1654 y(exit)j
+(successfully)-8 b(.)275 1813 y(There)28 b(are)i(sev)m(eral)g(single-c)
+m(haracter)i(options)d(that)h(ma)m(y)g(b)s(e)e(supplied)g(at)i(in)m(v)m
+(o)s(cation)h(whic)m(h)e(are)150 1923 y(not)i(a)m(v)-5
+b(ailable)32 b(with)e(the)h Fs(set)e Ft(builtin.)150
+2082 y Fs(-c)h Fj(string)630 2192 y Ft(Read)23 b(and)f(execute)i
+(commands)f(from)f Fq(string)31 b Ft(after)23 b(pro)s(cessing)f(the)h
+(options,)i(then)e(exit.)630 2301 y(An)m(y)37 b(remaining)f(argumen)m
+(ts)h(are)g(assigned)g(to)g(the)g(p)s(ositional)g(parameters,)i
+(starting)630 2411 y(with)30 b Fs($0)p Ft(.)150 2570
+y Fs(-i)384 b Ft(F)-8 b(orce)22 b(the)g(shell)f(to)g(run)f(in)m
+(teractiv)m(ely)-8 b(.)41 b(In)m(teractiv)m(e)23 b(shells)e(are)h
+(describ)s(ed)d(in)i(Section)h(6.3)630 2680 y([In)m(teractiv)m(e)33
+b(Shells],)e(page)g(75.)150 2839 y Fs(-l)384 b Ft(Mak)m(e)33
+b(this)e(shell)h(act)g(as)g(if)f(it)h(had)f(b)s(een)f(directly)i(in)m
+(v)m(ok)m(ed)h(b)m(y)f(login.)44 b(When)31 b(the)h(shell)630
+2949 y(is)37 b(in)m(teractiv)m(e,)43 b(this)37 b(is)g(equiv)-5
+b(alen)m(t)39 b(to)f(starting)h(a)e(login)i(shell)e(with)g(`)p
+Fs(exec)30 b(-l)g(bash)p Ft('.)630 3059 y(When)h(the)g(shell)h(is)f
+(not)g(in)m(teractiv)m(e,)k(the)c(login)h(shell)g(startup)f(\014les)g
+(will)g(b)s(e)g(executed.)630 3168 y(`)p Fs(exec)e(bash)h(-l)p
+Ft(')43 b(or)h(`)p Fs(exec)29 b(bash)g(--login)p Ft(')42
+b(will)i(replace)h(the)f(curren)m(t)f(shell)h(with)g(a)630
+3278 y(Bash)26 b(login)g(shell.)39 b(See)26 b(Section)g(6.2)h([Bash)e
+(Startup)g(Files],)j(page)e(73,)i(for)d(a)h(description)630
+3387 y(of)31 b(the)f(sp)s(ecial)h(b)s(eha)m(vior)g(of)f(a)h(login)g
+(shell.)150 3547 y Fs(-r)384 b Ft(Mak)m(e)54 b(the)e(shell)g(a)h
+(restricted)g(shell)f(\(see)h(Section)g(6.10)h([The)d(Restricted)j
+(Shell],)630 3656 y(page)31 b(84\).)150 3816 y Fs(-s)384
+b Ft(If)24 b(this)h(option)h(is)f(presen)m(t,)h(or)f(if)g(no)f(argumen)
+m(ts)i(remain)e(after)i(option)f(pro)s(cessing,)h(then)630
+3925 y(commands)i(are)h(read)g(from)f(the)h(standard)f(input.)39
+b(This)28 b(option)h(allo)m(ws)h(the)f(p)s(ositional)630
+4035 y(parameters)i(to)g(b)s(e)f(set)g(when)g(in)m(v)m(oking)h(an)g(in)
+m(teractiv)m(e)i(shell.)150 4194 y Fs(-D)384 b Ft(A)37
+b(list)g(of)f(all)i(double-quoted)e(strings)g(preceded)g(b)m(y)h(`)p
+Fs($)p Ft(')f(is)h(prin)m(ted)f(on)g(the)h(standard)630
+4304 y(output.)63 b(These)38 b(are)g(the)g(strings)g(that)h(are)f(sub)5
+b(ject)38 b(to)h(language)g(translation)g(when)630 4413
+y(the)e(curren)m(t)g(lo)s(cale)h(is)f(not)g Fs(C)g Ft(or)f
+Fs(POSIX)g Ft(\(see)h(Section)h(3.1.2.5)h([Lo)s(cale)g(T)-8
+b(ranslation],)630 4523 y(page)31 b(7\).)42 b(This)29
+b(implies)i(the)f(`)p Fs(-n)p Ft(')h(option;)g(no)f(commands)g(will)h
+(b)s(e)e(executed.)150 4682 y Fs([-+]O)g([)p Fj(shopt_option)11
+b Fs(])630 4792 y Fq(shopt)p 854 4792 28 4 v 40 w(option)44
+b Ft(is)g(one)h(of)f(the)g(shell)h(options)f(accepted)h(b)m(y)f(the)h
+Fs(shopt)d Ft(builtin)i(\(see)630 4902 y(Section)28 b(4.3.2)g([The)f
+(Shopt)f(Builtin],)i(page)f(54\).)41 b(If)26 b Fq(shopt)p
+2690 4902 V 40 w(option)h Ft(is)g(presen)m(t,)h(`)p Fs(-O)p
+Ft(')f(sets)630 5011 y(the)40 b(v)-5 b(alue)40 b(of)f(that)h(option;)45
+b(`)p Fs(+O)p Ft(')40 b(unsets)e(it.)69 b(If)39 b Fq(shopt)p
+2631 5011 V 40 w(option)h Ft(is)f(not)h(supplied,)h(the)630
+5121 y(names)e(and)g(v)-5 b(alues)40 b(of)g(the)g(shell)f(options)h
+(accepted)h(b)m(y)e Fs(shopt)f Ft(are)i(prin)m(ted)f(on)h(the)630
+5230 y(standard)33 b(output.)50 b(If)33 b(the)h(in)m(v)m(o)s(cation)i
+(option)e(is)g(`)p Fs(+O)p Ft(',)g(the)g(output)f(is)h(displa)m(y)m(ed)
+g(in)g(a)630 5340 y(format)d(that)g(ma)m(y)g(b)s(e)e(reused)h(as)h
+(input.)p eop end
+%%Page: 73 79
+TeXDict begin 73 78 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(73)150 299 y Fs(--)384
+b Ft(A)38 b Fs(--)g Ft(signals)g(the)h(end)e(of)i(options)f(and)g
+(disables)g(further)f(option)h(pro)s(cessing.)64 b(An)m(y)630
+408 y(argumen)m(ts)31 b(after)g(the)f Fs(--)g Ft(are)h(treated)g(as)g
+(\014lenames)f(and)g(argumen)m(ts.)275 575 y(A)d Fm(lo)-5
+b(gin)35 b Ft(shell)27 b(is)g(one)h(whose)f(\014rst)f(c)m(haracter)j
+(of)e(argumen)m(t)h(zero)f(is)h(`)p Fs(-)p Ft(',)g(or)f(one)g(in)m(v)m
+(ok)m(ed)i(with)e(the)150 685 y(`)p Fs(--login)p Ft(')i(option.)275
+825 y(An)24 b Fm(inter)-5 b(active)33 b Ft(shell)25 b(is)g(one)g
+(started)g(without)g(non-option)h(argumen)m(ts,)g(unless)f(`)p
+Fs(-s)p Ft(')f(is)h(sp)s(eci\014ed,)150 934 y(without)43
+b(sp)s(ecifying)f(the)i(`)p Fs(-c)p Ft(')e(option,)47
+b(and)42 b(whose)h(input)f(and)g(output)g(are)h(b)s(oth)g(connected)g
+(to)150 1044 y(terminals)22 b(\(as)h(determined)f(b)m(y)g
+Fs(isatty\(3\))p Ft(\),)f(or)i(one)f(started)g(with)g(the)g(`)p
+Fs(-i)p Ft(')g(option.)39 b(See)22 b(Section)h(6.3)150
+1153 y([In)m(teractiv)m(e)33 b(Shells],)e(page)g(75,)g(for)f(more)h
+(information.)275 1293 y(If)38 b(argumen)m(ts)h(remain)g(after)g
+(option)h(pro)s(cessing,)h(and)d(neither)h(the)g(`)p
+Fs(-c)p Ft(')f(nor)h(the)g(`)p Fs(-s)p Ft(')f(option)150
+1403 y(has)33 b(b)s(een)g(supplied,)h(the)g(\014rst)e(argumen)m(t)j(is)
+e(assumed)g(to)h(b)s(e)f(the)h(name)g(of)g(a)g(\014le)g(con)m(taining)h
+(shell)150 1512 y(commands)30 b(\(see)g(Section)h(3.8)g([Shell)f
+(Scripts],)g(page)h(34\).)41 b(When)30 b(Bash)g(is)g(in)m(v)m(ok)m(ed)i
+(in)d(this)h(fashion,)150 1622 y Fs($0)37 b Ft(is)g(set)h(to)h(the)e
+(name)h(of)f(the)h(\014le,)i(and)c(the)i(p)s(ositional)g(parameters)g
+(are)g(set)g(to)g(the)g(remaining)150 1731 y(argumen)m(ts.)h(Bash)26
+b(reads)f(and)g(executes)h(commands)f(from)g(this)g(\014le,)i(then)e
+(exits.)40 b(Bash's)25 b(exit)i(status)150 1841 y(is)f(the)h(exit)h
+(status)e(of)h(the)g(last)g(command)f(executed)h(in)g(the)f(script.)40
+b(If)26 b(no)g(commands)g(are)h(executed,)150 1951 y(the)k(exit)g
+(status)g(is)f(0.)150 2221 y Fr(6.2)68 b(Bash)45 b(Startup)g(Files)275
+2470 y Ft(This)34 b(section)i(describ)s(es)e(ho)m(w)h(Bash)g(executes)i
+(its)e(startup)g(\014les.)54 b(If)35 b(an)m(y)g(of)h(the)f(\014les)g
+(exist)h(but)150 2579 y(cannot)26 b(b)s(e)e(read,)i(Bash)f(rep)s(orts)g
+(an)g(error.)38 b(Tildes)25 b(are)h(expanded)e(in)g(\014le)i(names)f
+(as)g(describ)s(ed)f(ab)s(o)m(v)m(e)150 2689 y(under)29
+b(Tilde)h(Expansion)g(\(see)h(Section)g(3.5.2)i([Tilde)d(Expansion],)g
+(page)i(19\).)275 2828 y(In)m(teractiv)m(e)g(shells)f(are)g(describ)s
+(ed)e(in)h(Section)h(6.3)h([In)m(teractiv)m(e)h(Shells],)d(page)h(75.)
+150 3063 y Fk(In)m(v)m(ok)m(ed)40 b(as)h(an)f(in)m(teractiv)m(e)f
+(login)j(shell,)g(or)g(with)e(`)p Fi(--login)p Fk(')275
+3312 y Ft(When)e(Bash)g(is)h(in)m(v)m(ok)m(ed)h(as)e(an)g(in)m
+(teractiv)m(e)k(login)d(shell,)i(or)d(as)h(a)g(non-in)m(teractiv)m(e)i
+(shell)d(with)150 3422 y(the)d(`)p Fs(--login)p Ft(')d(option,)37
+b(it)d(\014rst)g(reads)g(and)g(executes)i(commands)e(from)f(the)i
+(\014le)g(`)p Fs(/etc/profile)p Ft(',)150 3531 y(if)28
+b(that)h(\014le)f(exists.)41 b(After)28 b(reading)h(that)f(\014le,)h
+(it)g(lo)s(oks)g(for)f(`)p Fs(~/.bash_profile)p Ft(',)d(`)p
+Fs(~/.bash_login)p Ft(',)150 3641 y(and)j(`)p Fs(~/.profile)p
+Ft(',)f(in)i(that)g(order,)g(and)f(reads)g(and)h(executes)h(commands)e
+(from)g(the)h(\014rst)f(one)h(that)150 3750 y(exists)i(and)e(is)h
+(readable.)41 b(The)30 b(`)p Fs(--noprofile)p Ft(')d(option)k(ma)m(y)f
+(b)s(e)g(used)f(when)g(the)h(shell)h(is)f(started)g(to)150
+3860 y(inhibit)g(this)g(b)s(eha)m(vior.)275 3999 y(When)72
+b(a)i(login)g(shell)f(exits,)85 b(Bash)73 b(reads)g(and)g(executes)h
+(commands)f(from)g(the)g(\014le)150 4109 y(`)p Fs(~/.bash_logout)p
+Ft(',)27 b(if)k(it)f(exists.)150 4343 y Fk(In)m(v)m(ok)m(ed)40
+b(as)h(an)f(in)m(teractiv)m(e)f(non-login)k(shell)275
+4592 y Ft(When)35 b(an)g(in)m(teractiv)m(e)j(shell)e(that)f(is)h(not)f
+(a)h(login)g(shell)g(is)f(started,)i(Bash)f(reads)f(and)g(executes)150
+4702 y(commands)24 b(from)f(`)p Fs(~/.bashrc)p Ft(',)h(if)g(that)g
+(\014le)g(exists.)40 b(This)23 b(ma)m(y)i(b)s(e)e(inhibited)g(b)m(y)h
+(using)g(the)g(`)p Fs(--norc)p Ft(')150 4812 y(option.)52
+b(The)33 b(`)p Fs(--rcfile)28 b Fj(file)11 b Ft(')33
+b(option)h(will)g(force)h(Bash)f(to)h(read)e(and)h(execute)h(commands)e
+(from)150 4921 y Fq(\014le)j Ft(instead)30 b(of)h(`)p
+Fs(~/.bashrc)p Ft('.)275 5061 y(So,)f(t)m(ypically)-8
+b(,)33 b(y)m(our)d(`)p Fs(~/.bash_profile)p Ft(')d(con)m(tains)32
+b(the)e(line)390 5200 y Fs(if)47 b([)h(-f)f(~/.bashrc)e(];)i(then)g(.)g
+(~/.bashrc;)e(fi)150 5340 y Ft(after)31 b(\(or)g(b)s(efore\))f(an)m(y)h
+(login-sp)s(eci\014c)g(initializations.)p eop end
+%%Page: 74 80
+TeXDict begin 74 79 bop 150 -116 a Ft(74)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fk(In)m(v)m(ok)m(ed)40
+b(non-in)m(teractiv)m(ely)275 564 y Ft(When)24 b(Bash)h(is)g(started)g
+(non-in)m(teractiv)m(ely)-8 b(,)29 b(to)d(run)d(a)i(shell)g(script,)h
+(for)f(example,)i(it)e(lo)s(oks)g(for)g(the)150 673 y(v)-5
+b(ariable)35 b Fs(BASH_ENV)d Ft(in)i(the)h(en)m(vironmen)m(t,)h
+(expands)e(its)g(v)-5 b(alue)35 b(if)g(it)g(app)s(ears)e(there,)j(and)e
+(uses)g(the)150 783 y(expanded)c(v)-5 b(alue)30 b(as)h(the)g(name)f(of)
+h(a)f(\014le)h(to)g(read)f(and)g(execute.)42 b(Bash)31
+b(b)s(eha)m(v)m(es)g(as)g(if)f(the)g(follo)m(wing)150
+892 y(command)g(w)m(ere)h(executed:)390 1047 y Fs(if)47
+b([)h(-n)f("$BASH_ENV")e(];)i(then)f(.)i("$BASH_ENV";)c(fi)150
+1202 y Ft(but)30 b(the)g(v)-5 b(alue)31 b(of)g(the)f
+Fs(PATH)f Ft(v)-5 b(ariable)32 b(is)e(not)h(used)e(to)i(searc)m(h)g
+(for)f(the)h(\014le)f(name.)275 1358 y(As)38 b(noted)h(ab)s(o)m(v)m(e,)
+j(if)c(a)h(non-in)m(teractiv)m(e)i(shell)e(is)g(in)m(v)m(ok)m(ed)h
+(with)e(the)g(`)p Fs(--login)p Ft(')g(option,)j(Bash)150
+1467 y(attempts)31 b(to)g(read)g(and)e(execute)j(commands)e(from)g(the)
+h(login)g(shell)g(startup)e(\014les.)150 1733 y Fk(In)m(v)m(ok)m(ed)40
+b(with)g(name)h Fi(sh)275 1997 y Ft(If)29 b(Bash)g(is)h(in)m(v)m(ok)m
+(ed)h(with)e(the)h(name)f Fs(sh)p Ft(,)g(it)i(tries)e(to)i(mimic)f(the)
+f(startup)g(b)s(eha)m(vior)h(of)g(historical)150 2107
+y(v)m(ersions)h(of)f Fs(sh)g Ft(as)h(closely)h(as)e(p)s(ossible,)g
+(while)h(conforming)f(to)h(the)g Fl(posix)e Ft(standard)h(as)h(w)m
+(ell.)275 2262 y(When)50 b(in)m(v)m(ok)m(ed)j(as)f(an)f(in)m(teractiv)m
+(e)j(login)e(shell,)57 b(or)51 b(as)g(a)h(non-in)m(teractiv)m(e)h
+(shell)f(with)f(the)150 2371 y(`)p Fs(--login)p Ft(')39
+b(option,)k(it)e(\014rst)e(attempts)i(to)g(read)f(and)g(execute)h
+(commands)f(from)g(`)p Fs(/etc/profile)p Ft(')150 2481
+y(and)d(`)p Fs(~/.profile)p Ft(',)g(in)g(that)h(order.)62
+b(The)37 b(`)p Fs(--noprofile)p Ft(')e(option)j(ma)m(y)g(b)s(e)f(used)g
+(to)h(inhibit)f(this)150 2591 y(b)s(eha)m(vior.)82 b(When)44
+b(in)m(v)m(ok)m(ed)h(as)g(an)f(in)m(teractiv)m(e)j(shell)d(with)g(the)g
+(name)g Fs(sh)p Ft(,)j(Bash)d(lo)s(oks)h(for)f(the)150
+2700 y(v)-5 b(ariable)37 b Fs(ENV)p Ft(,)g(expands)e(its)i(v)-5
+b(alue)36 b(if)g(it)h(is)f(de\014ned,)h(and)e(uses)h(the)g(expanded)g
+(v)-5 b(alue)36 b(as)h(the)f(name)150 2810 y(of)i(a)h(\014le)g(to)g
+(read)f(and)g(execute.)66 b(Since)38 b(a)h(shell)f(in)m(v)m(ok)m(ed)i
+(as)f Fs(sh)e Ft(do)s(es)h(not)h(attempt)g(to)g(read)g(and)150
+2919 y(execute)i(commands)e(from)g(an)m(y)h(other)g(startup)f(\014les,)
+j(the)e(`)p Fs(--rcfile)p Ft(')d(option)j(has)g(no)f(e\013ect.)70
+b(A)150 3029 y(non-in)m(teractiv)m(e)32 b(shell)d(in)m(v)m(ok)m(ed)h
+(with)f(the)g(name)g Fs(sh)f Ft(do)s(es)g(not)i(attempt)g(to)f(read)g
+(an)m(y)g(other)g(startup)150 3139 y(\014les.)275 3294
+y(When)h(in)m(v)m(ok)m(ed)h(as)g Fs(sh)p Ft(,)f(Bash)h(en)m(ters)g
+Fl(posix)e Ft(mo)s(de)h(after)h(the)g(startup)f(\014les)g(are)h(read.)
+150 3559 y Fk(In)m(v)m(ok)m(ed)40 b(in)h Fh(posix)f Fk(mo)s(de)275
+3824 y Ft(When)d(Bash)g(is)g(started)h(in)f Fl(posix)f
+Ft(mo)s(de,)j(as)e(with)g(the)h(`)p Fs(--posix)p Ft(')d(command)i(line)
+h(option,)h(it)150 3933 y(follo)m(ws)28 b(the)g Fl(posix)e
+Ft(standard)h(for)g(startup)g(\014les.)39 b(In)27 b(this)g(mo)s(de,)g
+(in)m(teractiv)m(e)k(shells)c(expand)f(the)i Fs(ENV)150
+4043 y Ft(v)-5 b(ariable)36 b(and)f(commands)g(are)h(read)g(and)f
+(executed)h(from)f(the)h(\014le)g(whose)f(name)g(is)h(the)g(expanded)
+150 4152 y(v)-5 b(alue.)41 b(No)31 b(other)g(startup)f(\014les)g(are)h
+(read.)150 4418 y Fk(In)m(v)m(ok)m(ed)40 b(b)m(y)g(remote)h(shell)h
+(daemon)275 4682 y Ft(Bash)33 b(attempts)h(to)f(determine)g(when)f(it)i
+(is)f(b)s(eing)g(run)e(with)i(its)g(standard)f(input)g(connected)i(to)
+150 4792 y(a)c(a)h(net)m(w)m(ork)g(connection,)g(as)f(if)g(b)m(y)g(the)
+g(remote)h(shell)f(daemon,)h(usually)e Fs(rshd)p Ft(,)g(or)h(the)h
+(secure)f(shell)150 4902 y(daemon)41 b Fs(sshd)p Ft(.)70
+b(If)40 b(Bash)h(determines)f(it)h(is)g(b)s(eing)f(run)f(in)i(this)f
+(fashion,)j(it)e(reads)g(and)f(executes)150 5011 y(commands)26
+b(from)f(`)p Fs(~/.bashrc)p Ft(',)g(if)i(that)f(\014le)g(exists)h(and)f
+(is)g(readable.)40 b(It)26 b(will)g(not)g(do)g(this)g(if)g(in)m(v)m(ok)
+m(ed)150 5121 y(as)g Fs(sh)p Ft(.)39 b(The)25 b(`)p Fs(--norc)p
+Ft(')g(option)h(ma)m(y)g(b)s(e)f(used)g(to)i(inhibit)e(this)h(b)s(eha)m
+(vior,)h(and)e(the)h(`)p Fs(--rcfile)p Ft(')e(option)150
+5230 y(ma)m(y)33 b(b)s(e)g(used)f(to)h(force)h(another)f(\014le)g(to)g
+(b)s(e)g(read,)g(but)f Fs(rshd)g Ft(do)s(es)h(not)g(generally)h(in)m(v)
+m(ok)m(e)h(the)e(shell)150 5340 y(with)d(those)h(options)g(or)f(allo)m
+(w)i(them)e(to)h(b)s(e)f(sp)s(eci\014ed.)p eop end
+%%Page: 75 81
+TeXDict begin 75 80 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(75)150 299 y Fk(In)m(v)m(ok)m(ed)40
+b(with)g(unequal)h(e\013ectiv)m(e)e(and)i(real)g Fh(uid/gid)p
+Fk(s)275 538 y Ft(If)26 b(Bash)i(is)f(started)h(with)f(the)g
+(e\013ectiv)m(e)j(user)d(\(group\))g(id)g(not)h(equal)g(to)g(the)f
+(real)h(user)f(\(group\))g(id,)150 648 y(and)f(the)i
+Fs(-p)e Ft(option)h(is)g(not)h(supplied,)e(no)h(startup)g(\014les)g
+(are)g(read,)h(shell)f(functions)g(are)g(not)g(inherited)150
+757 y(from)g(the)h(en)m(vironmen)m(t,)h(the)f Fs(SHELLOPTS)d
+Ft(v)-5 b(ariable,)29 b(if)f(it)g(app)s(ears)f(in)g(the)h(en)m
+(vironmen)m(t,)h(is)f(ignored,)150 867 y(and)f(the)h(e\013ectiv)m(e)j
+(user)c(id)g(is)h(set)g(to)h(the)f(real)g(user)f(id.)40
+b(If)27 b(the)h Fs(-p)g Ft(option)g(is)g(supplied)e(at)j(in)m(v)m(o)s
+(cation,)150 977 y(the)i(startup)f(b)s(eha)m(vior)g(is)g(the)h(same,)g
+(but)f(the)g(e\013ectiv)m(e)j(user)d(id)g(is)g(not)h(reset.)150
+1220 y Fr(6.3)68 b(In)l(teractiv)l(e)47 b(Shells)150
+1540 y Fk(6.3.1)63 b(What)40 b(is)h(an)g(In)m(teractiv)m(e)e(Shell?)275
+1779 y Ft(An)25 b(in)m(teractiv)m(e)j(shell)d(is)h(one)f(started)h
+(without)g(non-option)f(argumen)m(ts,)i(unless)e(`)p
+Fs(-s)p Ft(')g(is)g(sp)s(eci\014ed,)150 1889 y(without)34
+b(sp)s(ecifying)h(the)f(`)p Fs(-c)p Ft(')g(option,)j(and)c(whose)h
+(input)g(and)g(error)g(output)g(are)g(b)s(oth)g(connected)150
+1998 y(to)d(terminals)g(\(as)g(determined)f(b)m(y)g Fs(isatty\(3\))p
+Ft(\),)f(or)h(one)h(started)f(with)g(the)h(`)p Fs(-i)p
+Ft(')f(option.)275 2128 y(An)g(in)m(teractiv)m(e)j(shell)d(generally)i
+(reads)e(from)g(and)g(writes)g(to)h(a)g(user's)f(terminal.)275
+2258 y(The)e(`)p Fs(-s)p Ft(')i(in)m(v)m(o)s(cation)h(option)f(ma)m(y)g
+(b)s(e)f(used)f(to)i(set)g(the)g(p)s(ositional)g(parameters)f(when)g
+(an)g(in)m(ter-)150 2367 y(activ)m(e)k(shell)d(is)h(started.)150
+2577 y Fk(6.3.2)63 b(Is)41 b(this)g(Shell)g(In)m(teractiv)m(e?)275
+2817 y Ft(T)-8 b(o)32 b(determine)g(within)g(a)g(startup)g(script)g
+(whether)g(or)g(not)g(Bash)g(is)g(running)f(in)m(teractiv)m(ely)-8
+b(,)36 b(test)150 2926 y(the)42 b(v)-5 b(alue)42 b(of)f(the)h(`)p
+Fs(-)p Ft(')g(sp)s(ecial)g(parameter.)75 b(It)41 b(con)m(tains)i
+Fs(i)e Ft(when)g(the)h(shell)f(is)h(in)m(teractiv)m(e.)77
+b(F)-8 b(or)150 3036 y(example:)390 3166 y Fs(case)47
+b("$-")f(in)390 3275 y(*i*\))h(echo)f(This)h(shell)f(is)h(interactive)e
+(;;)390 3385 y(*\))i(echo)g(This)f(shell)h(is)g(not)g(interactive)e(;;)
+390 3495 y(esac)275 3624 y Ft(Alternativ)m(ely)-8 b(,)28
+b(startup)23 b(scripts)h(ma)m(y)g(examine)g(the)g(v)-5
+b(ariable)25 b Fs(PS1)p Ft(;)g(it)g(is)e(unset)h(in)f(non-in)m
+(teractiv)m(e)150 3734 y(shells,)31 b(and)e(set)i(in)f(in)m(teractiv)m
+(e)k(shells.)40 b(Th)m(us:)390 3864 y Fs(if)47 b([)h(-z)f("$PS1")f(];)h
+(then)772 3973 y(echo)f(This)h(shell)f(is)i(not)f(interactive)390
+4083 y(else)772 4193 y(echo)f(This)h(shell)f(is)i(interactive)390
+4302 y(fi)150 4512 y Fk(6.3.3)63 b(In)m(teractiv)m(e)38
+b(Shell)k(Beha)m(vior)275 4752 y Ft(When)30 b(the)g(shell)h(is)f
+(running)f(in)m(teractiv)m(ely)-8 b(,)34 b(it)d(c)m(hanges)g(its)g(b)s
+(eha)m(vior)g(in)f(sev)m(eral)h(w)m(a)m(ys.)199 4881
+y(1.)61 b(Startup)37 b(\014les)g(are)h(read)f(and)g(executed)h(as)f
+(describ)s(ed)g(in)g(Section)h(6.2)g([Bash)g(Startup)e(Files],)330
+4991 y(page)31 b(73.)199 5121 y(2.)61 b(Job)35 b(Con)m(trol)g(\(see)h
+(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(89\))g(is)f(enabled)g(b)m
+(y)g(default.)55 b(When)34 b(job)330 5230 y(con)m(trol)h(is)f(in)f
+(e\013ect,)k(Bash)d(ignores)g(the)g(k)m(eyb)s(oard-generated)h(job)e
+(con)m(trol)i(signals)g Fs(SIGTTIN)p Ft(,)330 5340 y
+Fs(SIGTTOU)p Ft(,)29 b(and)g Fs(SIGTSTP)p Ft(.)p eop
+end
+%%Page: 76 82
+TeXDict begin 76 81 bop 150 -116 a Ft(76)2572 b(Bash)31
+b(Reference)g(Man)m(ual)199 299 y(3.)61 b(Bash)39 b(expands)f(and)g
+(displa)m(ys)h Fs(PS1)f Ft(b)s(efore)h(reading)g(the)g(\014rst)f(line)h
+(of)g(a)g(command,)i(and)d(ex-)330 408 y(pands)30 b(and)g(displa)m(ys)h
+Fs(PS2)e Ft(b)s(efore)i(reading)g(the)g(second)f(and)h(subsequen)m(t)f
+(lines)h(of)g(a)g(m)m(ulti-line)330 518 y(command.)199
+669 y(4.)61 b(Bash)26 b(executes)i(the)e(v)-5 b(alue)27
+b(of)f(the)h Fs(PROMPT_COMMAND)22 b Ft(v)-5 b(ariable)27
+b(as)g(a)f(command)g(b)s(efore)g(prin)m(ting)330 779
+y(the)31 b(primary)e(prompt,)h Fs($PS1)f Ft(\(see)i(Section)g(5.2)h
+([Bash)f(V)-8 b(ariables],)32 b(page)f(61\).)199 930
+y(5.)61 b(Readline)30 b(\(see)h(Chapter)e(8)h([Command)e(Line)i
+(Editing],)g(page)g(93\))h(is)f(used)f(to)h(read)f(commands)330
+1039 y(from)h(the)g(user's)g(terminal.)199 1190 y(6.)61
+b(Bash)36 b(insp)s(ects)g(the)h(v)-5 b(alue)37 b(of)f(the)g
+Fs(ignoreeof)e Ft(option)j(to)g Fs(set)29 b(-o)36 b Ft(instead)h(of)f
+(exiting)i(imme-)330 1300 y(diately)f(when)e(it)i(receiv)m(es)h(an)e
+Fs(EOF)f Ft(on)h(its)g(standard)f(input)g(when)h(reading)g(a)g(command)
+g(\(see)330 1409 y(Section)31 b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g
+(51\).)199 1560 y(7.)61 b(Command)43 b(history)h(\(see)h(Section)g(9.1)
+g([Bash)f(History)h(F)-8 b(acilities],)51 b(page)45 b(121\))h(and)d
+(history)330 1670 y(expansion)23 b(\(see)i(Section)f(9.3)h([History)f
+(In)m(teraction],)j(page)d(123\))h(are)f(enabled)g(b)m(y)f(default.)39
+b(Bash)330 1779 y(will)23 b(sa)m(v)m(e)i(the)e(command)f(history)h(to)h
+(the)f(\014le)g(named)f(b)m(y)h Fs($HISTFILE)d Ft(when)i(an)h(in)m
+(teractiv)m(e)j(shell)330 1889 y(exits.)199 2040 y(8.)61
+b(Alias)31 b(expansion)g(\(see)g(Section)g(6.6)g([Aliases],)i(page)e
+(79\))h(is)e(p)s(erformed)f(b)m(y)h(default.)199 2191
+y(9.)61 b(In)24 b(the)g(absence)h(of)f(an)m(y)h(traps,)g(Bash)g
+(ignores)f Fs(SIGTERM)f Ft(\(see)i(Section)g(3.7.6)h([Signals],)g(page)
+f(33\).)154 2342 y(10.)61 b(In)26 b(the)h(absence)h(of)f(an)m(y)g
+(traps,)g Fs(SIGINT)e Ft(is)i(caugh)m(t)h(and)f(handled)e(\(\(see)k
+(Section)e(3.7.6)i([Signals],)330 2451 y(page)i(33\).)42
+b Fs(SIGINT)29 b Ft(will)h(in)m(terrupt)g(some)h(shell)g(builtins.)154
+2602 y(11.)61 b(An)40 b(in)m(teractiv)m(e)j(login)e(shell)g(sends)e(a)i
+Fs(SIGHUP)d Ft(to)j(all)g(jobs)f(on)g(exit)h(if)g(the)f
+Fs(huponexit)e Ft(shell)330 2712 y(option)31 b(has)f(b)s(een)g(enabled)
+g(\(see)h(Section)g(3.7.6)i([Signals],)e(page)g(33\).)154
+2863 y(12.)61 b(The)26 b(`)p Fs(-n)p Ft(')f(in)m(v)m(o)s(cation)k
+(option)d(is)g(ignored,)h(and)f(`)p Fs(set)k(-n)p Ft(')25
+b(has)h(no)g(e\013ect)i(\(see)e(Section)h(4.3.1)h([The)330
+2972 y(Set)j(Builtin],)g(page)g(51\).)154 3123 y(13.)61
+b(Bash)32 b(will)g(c)m(hec)m(k)i(for)e(mail)g(p)s(erio)s(dically)-8
+b(,)34 b(dep)s(ending)c(on)i(the)g(v)-5 b(alues)32 b(of)g(the)h
+Fs(MAIL)p Ft(,)e Fs(MAILPATH)p Ft(,)330 3233 y(and)f
+Fs(MAILCHECK)e Ft(shell)i(v)-5 b(ariables)31 b(\(see)h(Section)f(5.2)g
+([Bash)g(V)-8 b(ariables],)32 b(page)f(61\).)154 3384
+y(14.)61 b(Expansion)32 b(errors)h(due)f(to)i(references)f(to)h(un)m(b)
+s(ound)c(shell)j(v)-5 b(ariables)34 b(after)g(`)p Fs(set)29
+b(-u)p Ft(')k(has)g(b)s(een)330 3494 y(enabled)d(will)h(not)g(cause)g
+(the)f(shell)h(to)g(exit)g(\(see)g(Section)h(4.3.1)g([The)e(Set)h
+(Builtin],)g(page)g(51\).)154 3644 y(15.)61 b(The)48
+b(shell)h(will)f(not)h(exit)g(on)g(expansion)f(errors)g(caused)g(b)m(y)
+h Fq(v)-5 b(ar)54 b Ft(b)s(eing)48 b(unset)g(or)h(n)m(ull)f(in)330
+3754 y Fs(${)p Fj(var)11 b Fs(:?)p Fj(word)g Fs(})26
+b Ft(expansions)k(\(see)h(Section)h(3.5.3)g([Shell)e(P)m(arameter)i
+(Expansion],)e(page)h(20\).)154 3905 y(16.)61 b(Redirection)31
+b(errors)f(encoun)m(tered)h(b)m(y)f(shell)h(builtins)f(will)g(not)h
+(cause)g(the)f(shell)h(to)g(exit.)154 4056 y(17.)61 b(When)26
+b(running)f(in)i Fl(posix)e Ft(mo)s(de,)j(a)f(sp)s(ecial)g(builtin)f
+(returning)g(an)g(error)h(status)g(will)g(not)f(cause)330
+4166 y(the)31 b(shell)f(to)h(exit)h(\(see)f(Section)g(6.11)h([Bash)f
+(POSIX)e(Mo)s(de],)i(page)g(85\).)154 4316 y(18.)61 b(A)34
+b(failed)g Fs(exec)f Ft(will)h(not)g(cause)g(the)g(shell)g(to)g(exit)h
+(\(see)f(Section)h(4.1)g([Bourne)f(Shell)f(Builtins],)330
+4426 y(page)e(35\).)154 4577 y(19.)61 b(P)m(arser)31
+b(syn)m(tax)f(errors)g(will)h(not)g(cause)g(the)f(shell)h(to)g(exit.)
+154 4728 y(20.)61 b(Simple)21 b(sp)s(elling)h(correction)g(for)g
+(directory)g(argumen)m(ts)f(to)i(the)e Fs(cd)g Ft(builtin)g(is)h
+(enabled)f(b)m(y)h(default)330 4838 y(\(see)35 b(the)g(description)f
+(of)h(the)f Fs(cdspell)f Ft(option)h(to)i(the)e Fs(shopt)f
+Ft(builtin)h(in)g(Section)h(4.3.2)h([The)330 4947 y(Shopt)30
+b(Builtin],)h(page)g(54\).)154 5098 y(21.)61 b(The)42
+b(shell)h(will)g(c)m(hec)m(k)h(the)f(v)-5 b(alue)43 b(of)f(the)h
+Fs(TMOUT)e Ft(v)-5 b(ariable)44 b(and)e(exit)h(if)g(a)g(command)f(is)h
+(not)330 5208 y(read)30 b(within)g(the)g(sp)s(eci\014ed)f(n)m(um)m(b)s
+(er)g(of)i(seconds)f(after)g(prin)m(ting)g Fs($PS1)f
+Ft(\(see)i(Section)g(5.2)h([Bash)330 5317 y(V)-8 b(ariables],)32
+b(page)f(61\).)p eop end
+%%Page: 77 83
+TeXDict begin 77 82 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(77)150 299 y Fr(6.4)68
+b(Bash)45 b(Conditional)h(Expressions)275 540 y Ft(Conditional)38
+b(expressions)g(are)h(used)f(b)m(y)g(the)g Fs([[)g Ft(comp)s(ound)f
+(command)h(and)g(the)g Fs(test)g Ft(and)f Fs([)150 650
+y Ft(builtin)30 b(commands.)275 782 y(Expressions)i(ma)m(y)h(b)s(e)g
+(unary)f(or)h(binary)-8 b(.)48 b(Unary)33 b(expressions)f(are)i(often)f
+(used)f(to)i(examine)g(the)150 892 y(status)26 b(of)g(a)h(\014le.)39
+b(There)26 b(are)g(string)g(op)s(erators)g(and)g(n)m(umeric)f
+(comparison)i(op)s(erators)f(as)g(w)m(ell.)40 b(If)26
+b(the)150 1001 y Fq(\014le)38 b Ft(argumen)m(t)c(to)f(one)h(of)f(the)g
+(primaries)g(is)g(of)g(the)g(form)g(`)p Fs(/dev/fd/)p
+Fj(N)11 b Ft(',)31 b(then)i(\014le)g(descriptor)g Fq(N)43
+b Ft(is)150 1111 y(c)m(hec)m(k)m(ed.)e(If)26 b(the)g
+Fq(\014le)31 b Ft(argumen)m(t)26 b(to)h(one)f(of)g(the)h(primaries)e
+(is)h(one)g(of)g(`)p Fs(/dev/stdin)p Ft(',)f(`)p Fs(/dev/stdout)p
+Ft(',)150 1220 y(or)30 b(`)p Fs(/dev/stderr)p Ft(',)e(\014le)j
+(descriptor)f(0,)h(1,)g(or)g(2,)g(resp)s(ectiv)m(ely)-8
+b(,)32 b(is)e(c)m(hec)m(k)m(ed.)275 1352 y(Unless)44
+b(otherwise)h(sp)s(eci\014ed,)j(primaries)c(that)h(op)s(erate)g(on)g
+(\014les)f(follo)m(w)i(sym)m(b)s(olic)f(links)g(and)150
+1462 y(op)s(erate)31 b(on)f(the)h(target)h(of)e(the)h(link,)f(rather)h
+(than)f(the)g(link)h(itself.)150 1616 y Fs(-a)f Fj(file)162
+b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists.)150
+1771 y Fs(-b)30 b Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g
+Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(blo)s(c)m(k)g(sp)s(ecial)g
+(\014le.)150 1925 y Fs(-c)f Fj(file)162 b Ft(T)-8 b(rue)30
+b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(c)m(haracter)h(sp)s
+(ecial)f(\014le.)150 2079 y Fs(-d)f Fj(file)162 b Ft(T)-8
+b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(directory)
+-8 b(.)150 2233 y Fs(-e)30 b Fj(file)162 b Ft(T)-8 b(rue)30
+b(if)g Fq(\014le)36 b Ft(exists.)150 2388 y Fs(-f)30
+b Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36
+b Ft(exists)31 b(and)f(is)g(a)h(regular)f(\014le.)150
+2542 y Fs(-g)g Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g
+Fq(\014le)36 b Ft(exists)31 b(and)f(its)g(set-group-id)h(bit)g(is)f
+(set.)150 2696 y Fs(-h)g Fj(file)162 b Ft(T)-8 b(rue)30
+b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(sym)m(b)s(olic)g
+(link.)150 2851 y Fs(-k)f Fj(file)162 b Ft(T)-8 b(rue)30
+b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(its)g Fs(")p
+Ft(stic)m(ky)p Fs(")h Ft(bit)g(is)f(set.)150 3005 y Fs(-p)g
+Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b
+Ft(exists)31 b(and)f(is)g(a)h(named)f(pip)s(e)f(\(FIF)m(O\).)150
+3159 y Fs(-r)h Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g
+Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(readable.)150
+3314 y Fs(-s)g Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g
+Fq(\014le)36 b Ft(exists)31 b(and)f(has)g(a)g(size)i(greater)f(than)f
+(zero.)150 3468 y Fs(-t)g Fj(fd)258 b Ft(T)-8 b(rue)30
+b(if)g(\014le)h(descriptor)f Fq(fd)j Ft(is)e(op)s(en)e(and)h(refers)g
+(to)h(a)g(terminal.)150 3622 y Fs(-u)f Fj(file)162 b
+Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(its)g
+(set-user-id)h(bit)f(is)h(set.)150 3777 y Fs(-w)f Fj(file)162
+b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31
+b(and)f(is)g(writable.)150 3931 y Fs(-x)g Fj(file)162
+b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31
+b(and)f(is)g(executable.)150 4085 y Fs(-O)g Fj(file)162
+b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31
+b(and)f(is)g(o)m(wned)g(b)m(y)h(the)f(e\013ectiv)m(e)j(user)d(id.)150
+4240 y Fs(-G)g Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g
+Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(o)m(wned)g(b)m(y)h(the)f
+(e\013ectiv)m(e)j(group)d(id.)150 4394 y Fs(-L)g Fj(file)162
+b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31
+b(and)f(is)g(a)h(sym)m(b)s(olic)g(link.)150 4548 y Fs(-S)f
+Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b
+Ft(exists)31 b(and)f(is)g(a)h(so)s(c)m(k)m(et.)150 4703
+y Fs(-N)f Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36
+b Ft(exists)31 b(and)f(has)g(b)s(een)f(mo)s(di\014ed)h(since)g(it)h(w)m
+(as)g(last)g(read.)150 4857 y Fj(file1)39 b Fs(-nt)30
+b Fj(file2)630 4966 y Ft(T)-8 b(rue)23 b(if)h Fq(\014le1)32
+b Ft(is)24 b(new)m(er)g(\(according)h(to)g(mo)s(di\014cation)f(date\))h
+(than)f Fq(\014le2)p Ft(,)i(or)e(if)g Fq(\014le1)31 b
+Ft(exists)630 5076 y(and)f Fq(\014le2)38 b Ft(do)s(es)30
+b(not.)150 5230 y Fj(file1)39 b Fs(-ot)30 b Fj(file2)630
+5340 y Ft(T)-8 b(rue)30 b(if)g Fq(\014le1)38 b Ft(is)31
+b(older)f(than)g Fq(\014le2)p Ft(,)i(or)e(if)g Fq(\014le2)38
+b Ft(exists)31 b(and)f Fq(\014le1)38 b Ft(do)s(es)30
+b(not.)p eop end
+%%Page: 78 84
+TeXDict begin 78 83 bop 150 -116 a Ft(78)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fj(file1)39 b Fs(-ef)30
+b Fj(file2)630 408 y Ft(T)-8 b(rue)30 b(if)g Fq(\014le1)38
+b Ft(and)30 b Fq(\014le2)38 b Ft(refer)30 b(to)i(the)e(same)h(device)g
+(and)f(ino)s(de)g(n)m(um)m(b)s(ers.)150 570 y Fs(-o)g
+Fj(optname)630 679 y Ft(T)-8 b(rue)41 b(if)g(shell)g(option)h
+Fq(optname)47 b Ft(is)41 b(enabled.)73 b(The)41 b(list)h(of)f(options)g
+(app)s(ears)g(in)g(the)630 789 y(description)h(of)f(the)h(`)p
+Fs(-o)p Ft(')f(option)h(to)h(the)e Fs(set)g Ft(builtin)g(\(see)i
+(Section)f(4.3.1)h([The)f(Set)630 898 y(Builtin],)31
+b(page)g(51\).)150 1060 y Fs(-z)f Fj(string)630 1169
+y Ft(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f Fq(string)38
+b Ft(is)31 b(zero.)150 1330 y Fs(-n)f Fj(string)150 1440
+y(string)192 b Ft(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f
+Fq(string)38 b Ft(is)31 b(non-zero.)150 1601 y Fj(string1)39
+b Fs(==)30 b Fj(string2)630 1711 y Ft(T)-8 b(rue)33 b(if)h(the)g
+(strings)f(are)h(equal.)51 b(`)p Fs(=)p Ft(')34 b(ma)m(y)g(b)s(e)f
+(used)g(in)g(place)i(of)e(`)p Fs(==)p Ft(')h(for)f(strict)i
+Fl(posix)630 1820 y Ft(compliance.)150 1981 y Fj(string1)k
+Fs(!=)30 b Fj(string2)630 2091 y Ft(T)-8 b(rue)30 b(if)g(the)h(strings)
+f(are)h(not)f(equal.)150 2252 y Fj(string1)39 b Fs(<)30
+b Fj(string2)630 2362 y Ft(T)-8 b(rue)30 b(if)g Fq(string1)38
+b Ft(sorts)31 b(b)s(efore)f Fq(string2)38 b Ft(lexicographically)33
+b(in)d(the)h(curren)m(t)f(lo)s(cale.)150 2523 y Fj(string1)39
+b Fs(>)30 b Fj(string2)630 2632 y Ft(T)-8 b(rue)30 b(if)g
+Fq(string1)38 b Ft(sorts)31 b(after)g Fq(string2)38 b
+Ft(lexicographically)33 b(in)d(the)g(curren)m(t)h(lo)s(cale.)150
+2794 y Fj(arg1)40 b Fs(OP)29 b Fj(arg2)630 2903 y Fs(OP)k
+Ft(is)h(one)g(of)h(`)p Fs(-eq)p Ft(',)f(`)p Fs(-ne)p
+Ft(',)h(`)p Fs(-lt)p Ft(',)g(`)p Fs(-le)p Ft(',)f(`)p
+Fs(-gt)p Ft(',)h(or)f(`)p Fs(-ge)p Ft('.)51 b(These)34
+b(arithmetic)h(binary)630 3013 y(op)s(erators)h(return)e(true)i(if)f
+Fq(arg1)44 b Ft(is)36 b(equal)g(to,)i(not)e(equal)g(to,)i(less)e(than,)
+h(less)f(than)f(or)630 3122 y(equal)29 b(to,)g(greater)h(than,)e(or)g
+(greater)i(than)d(or)i(equal)f(to)h Fq(arg2)p Ft(,)h(resp)s(ectiv)m
+(ely)-8 b(.)42 b Fq(Arg1)36 b Ft(and)630 3232 y Fq(arg2)j
+Ft(ma)m(y)30 b(b)s(e)g(p)s(ositiv)m(e)i(or)e(negativ)m(e)j(in)m
+(tegers.)150 3494 y Fr(6.5)68 b(Shell)45 b(Arithmetic)275
+3740 y Ft(The)34 b(shell)g(allo)m(ws)i(arithmetic)g(expressions)f(to)g
+(b)s(e)f(ev)-5 b(aluated,)37 b(as)e(one)g(of)g(the)f(shell)h
+(expansions)150 3849 y(or)30 b(b)m(y)h(the)f Fs(let)g
+Ft(and)f(the)i(`)p Fs(-i)p Ft(')f(option)h(to)g(the)g
+Fs(declare)d Ft(builtins.)275 3985 y(Ev)-5 b(aluation)27
+b(is)g(done)f(in)g(\014xed-width)g(in)m(tegers)i(with)e(no)h(c)m(hec)m
+(k)h(for)e(o)m(v)m(er\015o)m(w,)j(though)d(division)h(b)m(y)150
+4095 y(0)g(is)g(trapp)s(ed)f(and)h(\015agged)g(as)h(an)f(error.)39
+b(The)26 b(op)s(erators)h(and)g(their)g(precedence,)h(asso)s(ciativit)m
+(y)-8 b(,)32 b(and)150 4205 y(v)-5 b(alues)35 b(are)h(the)f(same)g(as)h
+(in)e(the)h(C)g(language.)56 b(The)35 b(follo)m(wing)h(list)g(of)f(op)s
+(erators)g(is)g(group)s(ed)f(in)m(to)150 4314 y(lev)m(els)27
+b(of)f(equal-precedence)i(op)s(erators.)39 b(The)25 b(lev)m(els)j(are)e
+(listed)h(in)e(order)h(of)g(decreasing)g(precedence.)150
+4476 y Fj(id)11 b Fs(++)29 b Fj(id)p Fs(--)630 4586 y
+Ft(v)-5 b(ariable)31 b(p)s(ost-incremen)m(t)g(and)f(p)s(ost-decremen)m
+(t)150 4747 y Fs(++)p Fj(id)40 b Fs(--)p Fj(id)630 4857
+y Ft(v)-5 b(ariable)31 b(pre-incremen)m(t)g(and)f(pre-decremen)m(t)150
+5018 y Fs(-)g(+)354 b Ft(unary)29 b(min)m(us)h(and)g(plus)150
+5179 y Fs(!)g(~)354 b Ft(logical)33 b(and)d(bit)m(wise)h(negation)150
+5340 y Fs(**)384 b Ft(exp)s(onen)m(tiation)p eop end
+%%Page: 79 85
+TeXDict begin 79 84 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(79)150 299 y Fs(*)30
+b(/)g(\045)276 b Ft(m)m(ultiplication,)33 b(division,)d(remainder)150
+464 y Fs(+)g(-)354 b Ft(addition,)31 b(subtraction)150
+630 y Fs(<<)f(>>)258 b Ft(left)31 b(and)f(righ)m(t)h(bit)m(wise)g
+(shifts)150 795 y Fs(<=)f(>=)g(<)g(>)102 b Ft(comparison)150
+961 y Fs(==)30 b(!=)258 b Ft(equalit)m(y)32 b(and)e(inequalit)m(y)150
+1126 y Fs(&)432 b Ft(bit)m(wise)31 b(AND)150 1292 y Fs(^)432
+b Ft(bit)m(wise)31 b(exclusiv)m(e)h(OR)150 1458 y Fs(|)432
+b Ft(bit)m(wise)31 b(OR)150 1623 y Fs(&&)384 b Ft(logical)33
+b(AND)150 1789 y Fs(||)384 b Ft(logical)33 b(OR)150 1954
+y Fs(expr)c(?)h(expr)f(:)h(expr)630 2064 y Ft(conditional)i(op)s
+(erator)150 2229 y Fs(=)e(*=)g(/=)g(\045=)f(+=)h(-=)g(<<=)f(>>=)h(&=)g
+(^=)f(|=)630 2339 y Ft(assignmen)m(t)150 2504 y Fs(expr1)g(,)h(expr2)
+630 2614 y Ft(comma)275 2782 y(Shell)38 b(v)-5 b(ariables)39
+b(are)g(allo)m(w)m(ed)i(as)e(op)s(erands;)i(parameter)e(expansion)g(is)
+f(p)s(erformed)g(b)s(efore)g(the)150 2892 y(expression)g(is)g(ev)-5
+b(aluated.)66 b(Within)38 b(an)h(expression,)h(shell)e(v)-5
+b(ariables)39 b(ma)m(y)g(also)g(b)s(e)f(referenced)g(b)m(y)150
+3002 y(name)31 b(without)f(using)g(the)h(parameter)g(expansion)f(syn)m
+(tax.)42 b(A)31 b(shell)f(v)-5 b(ariable)32 b(that)f(is)f(n)m(ull)h(or)
+f(unset)150 3111 y(ev)-5 b(aluates)41 b(to)f(0)g(when)e(referenced)h(b)
+m(y)g(name)h(without)f(using)g(the)g(parameter)h(expansion)f(syn)m
+(tax.)150 3221 y(The)c(v)-5 b(alue)37 b(of)f(a)h(v)-5
+b(ariable)36 b(is)g(ev)-5 b(aluated)38 b(as)e(an)g(arithmetic)h
+(expression)f(when)f(it)h(is)g(referenced,)i(or)150 3330
+y(when)31 b(a)i(v)-5 b(ariable)33 b(whic)m(h)f(has)g(b)s(een)f(giv)m
+(en)j(the)e Fq(in)m(teger)40 b Ft(attribute)33 b(using)f(`)p
+Fs(declare)d(-i)p Ft(')i(is)i(assigned)150 3440 y(a)k(v)-5
+b(alue.)58 b(A)36 b(n)m(ull)g(v)-5 b(alue)37 b(ev)-5
+b(aluates)38 b(to)f(0.)58 b(A)36 b(shell)h(v)-5 b(ariable)36
+b(need)g(not)h(ha)m(v)m(e)g(its)g(in)m(teger)g(attribute)150
+3550 y(turned)29 b(on)h(to)i(b)s(e)d(used)h(in)g(an)g(expression.)275
+3690 y(Constan)m(ts)41 b(with)g(a)h(leading)f(0)h(are)g(in)m(terpreted)
+f(as)g(o)s(ctal)i(n)m(um)m(b)s(ers.)72 b(A)41 b(leading)h(`)p
+Fs(0x)p Ft(')f(or)g(`)p Fs(0X)p Ft(')150 3800 y(denotes)31
+b(hexadecimal.)43 b(Otherwise,)31 b(n)m(um)m(b)s(ers)e(tak)m(e)k(the)e
+(form)f([)p Fq(base)5 b Fs(#)p Ft(])p Fq(n)p Ft(,)31
+b(where)f Fq(base)36 b Ft(is)31 b(a)g(decimal)150 3909
+y(n)m(um)m(b)s(er)26 b(b)s(et)m(w)m(een)i(2)f(and)g(64)h(represen)m
+(ting)g(the)f(arithmetic)h(base,)h(and)d Fq(n)h Ft(is)g(a)h(n)m(um)m(b)
+s(er)e(in)h(that)h(base.)150 4019 y(If)39 b Fq(base)5
+b Fs(#)40 b Ft(is)g(omitted,)j(then)d(base)g(10)g(is)g(used.)68
+b(The)39 b(digits)i(greater)g(than)e(9)h(are)g(represen)m(ted)g(b)m(y)
+150 4129 y(the)34 b(lo)m(w)m(ercase)h(letters,)h(the)d(upp)s(ercase)g
+(letters,)i(`)p Fs(@)p Ft(',)g(and)e(`)p Fs(_)p Ft(',)h(in)f(that)h
+(order.)50 b(If)32 b Fq(base)39 b Ft(is)34 b(less)f(than)150
+4238 y(or)i(equal)g(to)g(36,)i(lo)m(w)m(ercase)g(and)e(upp)s(ercase)e
+(letters)j(ma)m(y)g(b)s(e)e(used)g(in)m(terc)m(hangeably)i(to)g
+(represen)m(t)150 4348 y(n)m(um)m(b)s(ers)29 b(b)s(et)m(w)m(een)i(10)g
+(and)f(35.)275 4488 y(Op)s(erators)44 b(are)h(ev)-5 b(aluated)46
+b(in)f(order)f(of)h(precedence.)85 b(Sub-expressions)44
+b(in)g(paren)m(theses)i(are)150 4598 y(ev)-5 b(aluated)32
+b(\014rst)d(and)h(ma)m(y)h(o)m(v)m(erride)g(the)g(precedence)g(rules)f
+(ab)s(o)m(v)m(e.)150 4871 y Fr(6.6)68 b(Aliases)275 5121
+y Fq(Aliases)34 b Ft(allo)m(w)d(a)g(string)e(to)i(b)s(e)e(substituted)g
+(for)h(a)g(w)m(ord)f(when)g(it)h(is)g(used)f(as)h(the)g(\014rst)f(w)m
+(ord)h(of)g(a)150 5230 y(simple)i(command.)45 b(The)31
+b(shell)i(main)m(tains)f(a)h(list)f(of)g(aliases)i(that)e(ma)m(y)h(b)s
+(e)e(set)h(and)g(unset)f(with)h(the)150 5340 y Fs(alias)d
+Ft(and)h Fs(unalias)e Ft(builtin)i(commands.)p eop end
+%%Page: 80 86
+TeXDict begin 80 85 bop 150 -116 a Ft(80)2572 b(Bash)31
+b(Reference)g(Man)m(ual)275 299 y(The)e(\014rst)f(w)m(ord)i(of)f(eac)m
+(h)i(simple)f(command,)g(if)f(unquoted,)g(is)h(c)m(hec)m(k)m(ed)h(to)g
+(see)f(if)g(it)g(has)f(an)g(alias.)150 408 y(If)24 b(so,)i(that)g(w)m
+(ord)e(is)h(replaced)g(b)m(y)f(the)h(text)h(of)e(the)h(alias.)40
+b(The)24 b(c)m(haracters)i(`)p Fs(/)p Ft(',)h(`)p Fs($)p
+Ft(',)f(`)p Fs(`)p Ft(',)g(`)p Fs(=)p Ft(')f(and)f(an)m(y)h(of)150
+518 y(the)e(shell)g(metac)m(haracters)i(or)e(quoting)g(c)m(haracters)h
+(listed)g(ab)s(o)m(v)m(e)g(ma)m(y)f(not)g(app)s(ear)f(in)h(an)g(alias)h
+(name.)150 628 y(The)e(replacemen)m(t)h(text)g(ma)m(y)g(con)m(tain)h
+(an)m(y)e(v)-5 b(alid)23 b(shell)f(input,)h(including)f(shell)g(metac)m
+(haracters.)40 b(The)150 737 y(\014rst)35 b(w)m(ord)g(of)h(the)g
+(replacemen)m(t)i(text)e(is)g(tested)h(for)e(aliases,)k(but)c(a)h(w)m
+(ord)g(that)g(is)g(iden)m(tical)i(to)e(an)150 847 y(alias)c(b)s(eing)f
+(expanded)f(is)h(not)g(expanded)f(a)h(second)g(time.)43
+b(This)30 b(means)h(that)g(one)g(ma)m(y)h(alias)g Fs(ls)e
+Ft(to)150 956 y Fs("ls)f(-F")p Ft(,)36 b(for)f(instance,)i(and)d(Bash)h
+(do)s(es)g(not)g(try)g(to)g(recursiv)m(ely)h(expand)e(the)h(replacemen)
+m(t)i(text.)150 1066 y(If)31 b(the)h(last)h(c)m(haracter)g(of)f(the)g
+(alias)h(v)-5 b(alue)32 b(is)g(a)g(space)g(or)g(tab)g(c)m(haracter,)i
+(then)d(the)h(next)g(command)150 1176 y(w)m(ord)e(follo)m(wing)i(the)e
+(alias)i(is)e(also)i(c)m(hec)m(k)m(ed)g(for)e(alias)i(expansion.)275
+1319 y(Aliases)d(are)f(created)i(and)d(listed)i(with)f(the)g
+Fs(alias)f Ft(command,)h(and)g(remo)m(v)m(ed)h(with)f(the)g
+Fs(unalias)150 1429 y Ft(command.)275 1573 y(There)44
+b(is)h(no)g(mec)m(hanism)g(for)f(using)h(argumen)m(ts)g(in)f(the)h
+(replacemen)m(t)i(text,)i(as)d(in)e Fs(csh)p Ft(.)83
+b(If)150 1682 y(argumen)m(ts)37 b(are)h(needed,)g(a)g(shell)f(function)
+f(should)g(b)s(e)h(used)f(\(see)i(Section)g(3.3)g([Shell)f(F)-8
+b(unctions],)150 1792 y(page)31 b(14\).)275 1936 y(Aliases)i(are)h(not)
+e(expanded)g(when)g(the)h(shell)g(is)g(not)g(in)m(teractiv)m(e,)j
+(unless)c(the)h Fs(expand_aliases)150 2045 y Ft(shell)e(option)f(is)h
+(set)g(using)f Fs(shopt)f Ft(\(see)i(Section)g(4.3.2)h([The)e(Shopt)g
+(Builtin],)h(page)g(54\).)275 2189 y(The)38 b(rules)h(concerning)h(the)
+f(de\014nition)g(and)g(use)g(of)g(aliases)i(are)e(somewhat)h
+(confusing.)67 b(Bash)150 2299 y(alw)m(a)m(ys)42 b(reads)f(at)h(least)g
+(one)f(complete)i(line)e(of)g(input)f(b)s(efore)h(executing)h(an)m(y)f
+(of)g(the)g(commands)150 2408 y(on)h(that)h(line.)77
+b(Aliases)44 b(are)e(expanded)g(when)f(a)i(command)f(is)g(read,)k(not)c
+(when)g(it)g(is)h(executed.)150 2518 y(Therefore,)f(an)e(alias)h
+(de\014nition)e(app)s(earing)h(on)f(the)h(same)h(line)f(as)g(another)g
+(command)f(do)s(es)h(not)150 2628 y(tak)m(e)31 b(e\013ect)f(un)m(til)g
+(the)f(next)g(line)h(of)f(input)f(is)h(read.)41 b(The)28
+b(commands)h(follo)m(wing)i(the)e(alias)h(de\014nition)150
+2737 y(on)d(that)h(line)f(are)h(not)f(a\013ected)i(b)m(y)e(the)g(new)g
+(alias.)41 b(This)26 b(b)s(eha)m(vior)h(is)g(also)h(an)f(issue)g(when)f
+(functions)150 2847 y(are)d(executed.)39 b(Aliases)24
+b(are)f(expanded)f(when)f(a)i(function)g(de\014nition)f(is)h(read,)h
+(not)f(when)e(the)i(function)150 2956 y(is)i(executed,)j(b)s(ecause)d
+(a)h(function)f(de\014nition)f(is)i(itself)g(a)f(comp)s(ound)f
+(command.)39 b(As)25 b(a)h(consequence,)150 3066 y(aliases)36
+b(de\014ned)d(in)h(a)g(function)g(are)h(not)f(a)m(v)-5
+b(ailable)37 b(un)m(til)d(after)h(that)g(function)f(is)g(executed.)53
+b(T)-8 b(o)35 b(b)s(e)150 3176 y(safe,)41 b(alw)m(a)m(ys)f(put)d(alias)
+j(de\014nitions)e(on)g(a)h(separate)g(line,)i(and)d(do)g(not)g(use)g
+Fs(alias)f Ft(in)h(comp)s(ound)150 3285 y(commands.)275
+3429 y(F)-8 b(or)31 b(almost)g(ev)m(ery)g(purp)s(ose,)e(shell)i
+(functions)f(are)g(preferred)g(o)m(v)m(er)h(aliases.)150
+3710 y Fr(6.7)68 b(Arra)l(ys)275 3963 y Ft(Bash)39 b(pro)m(vides)h
+(one-dimensional)g(indexed)f(and)g(asso)s(ciativ)m(e)j(arra)m(y)f(v)-5
+b(ariables.)68 b(An)m(y)40 b(v)-5 b(ariable)150 4073
+y(ma)m(y)44 b(b)s(e)g(used)f(as)h(an)g(indexed)f(arra)m(y;)51
+b(the)44 b Fs(declare)e Ft(builtin)i(will)g(explicitly)h(declare)g(an)f
+(arra)m(y)-8 b(.)150 4182 y(There)31 b(is)h(no)g(maxim)m(um)g(limit)g
+(on)g(the)g(size)h(of)f(an)f(arra)m(y)-8 b(,)34 b(nor)d(an)m(y)h
+(requiremen)m(t)g(that)h(mem)m(b)s(ers)e(b)s(e)150 4292
+y(indexed)k(or)h(assigned)g(con)m(tiguously)-8 b(.)59
+b(Indexed)35 b(arra)m(ys)h(are)g(referenced)g(using)f(in)m(tegers)i
+(\(including)150 4402 y(arithmetic)44 b(expressions)f(\(see)h(Section)g
+(6.5)g([Shell)f(Arithmetic],)k(page)d(78\))g(and)e(are)i(zero-based;)
+150 4511 y(asso)s(ciativ)m(e)33 b(arra)m(ys)e(use)f(arbitrary)g
+(strings.)275 4655 y(An)c(indexed)h(arra)m(y)h(is)f(created)h
+(automatically)j(if)c(an)m(y)g(v)-5 b(ariable)28 b(is)g(assigned)f(to)h
+(using)f(the)g(syn)m(tax)390 4799 y Fs(name[)p Fj(subscript)11
+b Fs(]=)p Fj(value)150 4943 y Ft(The)25 b Fq(subscript)g
+Ft(is)h(treated)g(as)f(an)g(arithmetic)h(expression)f(that)h(m)m(ust)f
+(ev)-5 b(aluate)27 b(to)e(a)h(n)m(um)m(b)s(er)e(greater)150
+5052 y(than)30 b(or)g(equal)h(to)g(zero.)42 b(T)-8 b(o)31
+b(explicitly)h(declare)f(an)f(arra)m(y)-8 b(,)32 b(use)390
+5196 y Fs(declare)46 b(-a)h Fj(name)150 5340 y Ft(The)30
+b(syn)m(tax)p eop end
+%%Page: 81 87
+TeXDict begin 81 86 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(81)390 299 y Fs(declare)46
+b(-a)h Fj(name)11 b Fs([)p Fj(subscript)g Fs(])150 431
+y Ft(is)30 b(also)i(accepted;)g(the)e Fq(subscript)h
+Ft(is)g(ignored.)275 564 y(Asso)s(ciativ)m(e)h(arra)m(ys)f(are)g
+(created)g(using)390 696 y Fs(declare)46 b(-A)h Fj(name)p
+Fs(.)275 829 y Ft(A)m(ttributes)f(ma)m(y)h(b)s(e)e(sp)s(eci\014ed)g
+(for)h(an)g(arra)m(y)g(v)-5 b(ariable)47 b(using)e(the)h
+Fs(declare)e Ft(and)h Fs(readonly)150 938 y Ft(builtins.)40
+b(Eac)m(h)31 b(attribute)g(applies)g(to)g(all)g(mem)m(b)s(ers)f(of)g
+(an)h(arra)m(y)-8 b(.)275 1071 y(Arra)m(ys)30 b(are)h(assigned)f(to)h
+(using)f(comp)s(ound)f(assignmen)m(ts)i(of)g(the)f(form)390
+1203 y Fs(name=\(value)p Fj(1)55 b Fs(...)47 b(value)p
+Fj(n)11 b Fs(\))150 1335 y Ft(where)37 b(eac)m(h)j Fq(v)-5
+b(alue)43 b Ft(is)38 b(of)g(the)g(form)g Fs([)p Fj(subscript)11
+b Fs(]=)p Fq(string)p Ft(.)60 b(Indexed)37 b(arra)m(y)h(assignmen)m(ts)
+h(do)f(not)150 1445 y(require)c(the)g(brac)m(k)m(et)h(and)e(subscript.)
+50 b(When)34 b(assigning)g(to)g(indexed)g(arra)m(ys,)h(if)f(the)g
+(optional)h(sub-)150 1555 y(script)c(is)h(supplied,)f(that)h(index)f
+(is)h(assigned)g(to;)h(otherwise)f(the)f(index)h(of)f(the)h(elemen)m(t)
+h(assigned)f(is)150 1664 y(the)f(last)g(index)f(assigned)g(to)h(b)m(y)g
+(the)f(statemen)m(t)i(plus)e(one.)41 b(Indexing)30 b(starts)g(at)i
+(zero.)275 1797 y(When)e(assigning)h(to)g(an)f(asso)s(ciativ)m(e)j
+(arra)m(y)-8 b(,)32 b(the)e(subscript)f(is)i(required.)275
+1929 y(This)f(syn)m(tax)j(is)e(also)i(accepted)g(b)m(y)f(the)f
+Fs(declare)f Ft(builtin.)44 b(Individual)31 b(arra)m(y)h(elemen)m(ts)h
+(ma)m(y)g(b)s(e)150 2039 y(assigned)e(to)g(using)f(the)g
+Fs(name[)p Fq(subscript)r Fs(]=)p Fq(v)-5 b(alue)33 b
+Ft(syn)m(tax)e(in)m(tro)s(duced)f(ab)s(o)m(v)m(e.)275
+2171 y(An)m(y)j(elemen)m(t)i(of)f(an)f(arra)m(y)h(ma)m(y)g(b)s(e)f
+(referenced)g(using)g Fs(${name[)p Fq(subscript)r Fs(]})p
+Ft(.)46 b(The)33 b(braces)h(are)150 2281 y(required)28
+b(to)j(a)m(v)m(oid)f(con\015icts)g(with)f(the)h(shell's)f(\014lename)h
+(expansion)f(op)s(erators.)41 b(If)28 b(the)i Fq(subscript)g
+Ft(is)150 2390 y(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p Ft(',)f(the)h(w)m
+(ord)f(expands)f(to)i(all)g(mem)m(b)s(ers)e(of)i(the)f(arra)m(y)h
+Fq(name)p Ft(.)40 b(These)29 b(subscripts)f(di\013er)h(only)150
+2500 y(when)36 b(the)g(w)m(ord)g(app)s(ears)g(within)g(double)g
+(quotes.)60 b(If)36 b(the)h(w)m(ord)f(is)g(double-quoted,)j
+Fs(${name[*]})150 2609 y Ft(expands)20 b(to)h(a)g(single)g(w)m(ord)f
+(with)h(the)g(v)-5 b(alue)21 b(of)f(eac)m(h)i(arra)m(y)f(mem)m(b)s(er)f
+(separated)h(b)m(y)g(the)f(\014rst)g(c)m(haracter)150
+2719 y(of)38 b(the)g Fs(IFS)f Ft(v)-5 b(ariable,)41 b(and)c
+Fs(${name[@]})e Ft(expands)i(eac)m(h)i(elemen)m(t)g(of)f
+Fq(name)43 b Ft(to)c(a)f(separate)h(w)m(ord.)150 2829
+y(When)32 b(there)h(are)f(no)g(arra)m(y)h(mem)m(b)s(ers,)f
+Fs(${name[@]})e Ft(expands)h(to)i(nothing.)47 b(If)31
+b(the)i(double-quoted)150 2938 y(expansion)39 b(o)s(ccurs)h(within)f(a)
+h(w)m(ord,)i(the)d(expansion)h(of)g(the)f(\014rst)g(parameter)h(is)g
+(joined)f(with)h(the)150 3048 y(b)s(eginning)j(part)h(of)g(the)g
+(original)h(w)m(ord,)j(and)43 b(the)h(expansion)g(of)g(the)g(last)h
+(parameter)f(is)g(joined)150 3157 y(with)35 b(the)g(last)h(part)f(of)g
+(the)g(original)h(w)m(ord.)55 b(This)34 b(is)h(analogous)h(to)g(the)f
+(expansion)g(of)g(the)g(sp)s(ecial)150 3267 y(parameters)28
+b(`)p Fs(@)p Ft(')g(and)f(`)p Fs(*)p Ft('.)39 b Fs(${#name[)p
+Fq(subscript)r Fs(]})24 b Ft(expands)j(to)h(the)g(length)g(of)f
+Fs(${name[)p Fq(subscript)r Fs(]})p Ft(.)150 3377 y(If)j
+Fq(subscript)i Ft(is)f(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p
+Ft(',)g(the)g(expansion)g(is)g(the)g(n)m(um)m(b)s(er)e(of)i(elemen)m
+(ts)h(in)f(the)g(arra)m(y)-8 b(.)42 b(Referencing)150
+3486 y(an)30 b(arra)m(y)h(v)-5 b(ariable)31 b(without)g(a)f(subscript)g
+(is)g(equiv)-5 b(alen)m(t)32 b(to)f(referencing)g(with)f(a)g(subscript)
+g(of)g(0.)275 3619 y(The)i Fs(unset)g Ft(builtin)h(is)g(used)g(to)h
+(destro)m(y)g(arra)m(ys.)50 b Fs(unset)31 b Fq(name)5
+b Ft([)p Fq(subscript)r Ft(])33 b(destro)m(ys)h(the)f(arra)m(y)150
+3728 y(elemen)m(t)j(at)e(index)g Fq(subscript)p Ft(.)50
+b(Care)34 b(m)m(ust)g(b)s(e)g(tak)m(en)h(to)g(a)m(v)m(oid)g(un)m(w)m
+(an)m(ted)g(side)f(e\013ects)h(caused)f(b)m(y)150 3838
+y(\014lename)39 b(generation.)68 b Fs(unset)37 b Fq(name)p
+Ft(,)k(where)e Fq(name)44 b Ft(is)39 b(an)f(arra)m(y)-8
+b(,)43 b(remo)m(v)m(es)d(the)f(en)m(tire)h(arra)m(y)-8
+b(.)67 b(A)150 3947 y(subscript)29 b(of)i(`)p Fs(*)p
+Ft(')f(or)h(`)p Fs(@)p Ft(')f(also)h(remo)m(v)m(es)h(the)f(en)m(tire)g
+(arra)m(y)-8 b(.)275 4080 y(The)41 b Fs(declare)p Ft(,)i
+Fs(local)p Ft(,)h(and)d Fs(readonly)f Ft(builtins)h(eac)m(h)j(accept)f
+(a)f(`)p Fs(-a)p Ft(')g(option)h(to)f(sp)s(ecify)g(an)150
+4189 y(indexed)34 b(arra)m(y)h(and)f(a)h(`)p Fs(-A)p
+Ft(')g(option)g(to)g(sp)s(ecify)g(an)f(asso)s(ciativ)m(e)j(arra)m(y)-8
+b(.)55 b(The)34 b Fs(read)f Ft(builtin)i(accepts)150
+4299 y(a)h(`)p Fs(-a)p Ft(')f(option)h(to)g(assign)g(a)f(list)h(of)g(w)
+m(ords)f(read)g(from)g(the)h(standard)e(input)h(to)h(an)f(arra)m(y)-8
+b(,)38 b(and)d(can)150 4408 y(read)c(v)-5 b(alues)31
+b(from)f(the)h(standard)f(input)g(in)m(to)i(individual)e(arra)m(y)h
+(elemen)m(ts.)44 b(The)30 b Fs(set)g Ft(and)g Fs(declare)150
+4518 y Ft(builtins)g(displa)m(y)g(arra)m(y)h(v)-5 b(alues)31
+b(in)f(a)h(w)m(a)m(y)g(that)g(allo)m(ws)h(them)e(to)h(b)s(e)f(reused)g
+(as)g(input.)150 4769 y Fr(6.8)68 b(The)45 b(Directory)g(Stac)l(k)275
+5011 y Ft(The)26 b(directory)g(stac)m(k)i(is)f(a)g(list)g(of)g(recen)m
+(tly-visited)h(directories.)41 b(The)26 b Fs(pushd)f
+Ft(builtin)h(adds)g(direc-)150 5121 y(tories)f(to)f(the)h(stac)m(k)g
+(as)f(it)h(c)m(hanges)f(the)h(curren)m(t)e(directory)-8
+b(,)27 b(and)c(the)h Fs(popd)f Ft(builtin)g(remo)m(v)m(es)j(sp)s
+(eci\014ed)150 5230 y(directories)j(from)f(the)h(stac)m(k)h(and)d(c)m
+(hanges)j(the)e(curren)m(t)g(directory)h(to)g(the)g(directory)f(remo)m
+(v)m(ed.)41 b(The)150 5340 y Fs(dirs)29 b Ft(builtin)h(displa)m(ys)h
+(the)f(con)m(ten)m(ts)i(of)f(the)f(directory)h(stac)m(k.)p
+eop end
+%%Page: 82 88
+TeXDict begin 82 87 bop 150 -116 a Ft(82)2572 b(Bash)31
+b(Reference)g(Man)m(ual)275 299 y(The)k(con)m(ten)m(ts)i(of)f(the)h
+(directory)f(stac)m(k)h(are)f(also)h(visible)g(as)f(the)g(v)-5
+b(alue)36 b(of)g(the)g Fs(DIRSTACK)e Ft(shell)150 408
+y(v)-5 b(ariable.)150 641 y Fk(6.8.1)63 b(Directory)40
+b(Stac)m(k)g(Builtins)150 887 y Fs(dirs)870 1024 y(dirs)47
+b([+)p Fj(N)57 b Fs(|)48 b(-)p Fj(N)11 b Fs(])46 b([-clpv])630
+1160 y Ft(Displa)m(y)35 b(the)f(list)g(of)g(curren)m(tly)g(remem)m(b)s
+(ered)f(directories.)51 b(Directories)36 b(are)e(added)f(to)630
+1270 y(the)28 b(list)h(with)f(the)g Fs(pushd)f Ft(command;)i(the)f
+Fs(popd)f Ft(command)h(remo)m(v)m(es)h(directories)g(from)630
+1379 y(the)i(list.)630 1543 y Fs(+)p Fj(N)384 b Ft(Displa)m(ys)23
+b(the)f Fq(N)10 b Ft(th)21 b(directory)h(\(coun)m(ting)h(from)e(the)h
+(left)g(of)g(the)g(list)g(prin)m(ted)1110 1653 y(b)m(y)30
+b Fs(dirs)f Ft(when)h(in)m(v)m(ok)m(ed)i(without)e(options\),)h
+(starting)g(with)g(zero.)630 1816 y Fs(-)p Fj(N)384 b
+Ft(Displa)m(ys)47 b(the)g Fq(N)10 b Ft(th)46 b(directory)h(\(coun)m
+(ting)g(from)f(the)g(righ)m(t)h(of)g(the)f(list)1110
+1926 y(prin)m(ted)25 b(b)m(y)g Fs(dirs)g Ft(when)f(in)m(v)m(ok)m(ed)j
+(without)f(options\),)h(starting)g(with)e(zero.)630 2089
+y Fs(-c)384 b Ft(Clears)31 b(the)f(directory)h(stac)m(k)h(b)m(y)e
+(deleting)h(all)h(of)e(the)h(elemen)m(ts.)630 2253 y
+Fs(-l)384 b Ft(Pro)s(duces)30 b(a)i(longer)g(listing;)h(the)f(default)f
+(listing)i(format)e(uses)g(a)h(tilde)g(to)1110 2362 y(denote)f(the)f
+(home)h(directory)-8 b(.)630 2526 y Fs(-p)384 b Ft(Causes)30
+b Fs(dirs)f Ft(to)i(prin)m(t)f(the)h(directory)g(stac)m(k)h(with)e(one)
+g(en)m(try)h(p)s(er)e(line.)630 2689 y Fs(-v)384 b Ft(Causes)36
+b Fs(dirs)f Ft(to)i(prin)m(t)f(the)g(directory)h(stac)m(k)h(with)e(one)
+h(en)m(try)f(p)s(er)f(line,)1110 2799 y(pre\014xing)30
+b(eac)m(h)h(en)m(try)g(with)f(its)h(index)e(in)i(the)f(stac)m(k.)150
+2963 y Fs(popd)870 3099 y(popd)47 b([+)p Fj(N)57 b Fs(|)48
+b(-)p Fj(N)11 b Fs(])46 b([-n])630 3236 y Ft(Remo)m(v)m(e)26
+b(the)e(top)g(en)m(try)h(from)e(the)h(directory)h(stac)m(k,)i(and)c
+Fs(cd)h Ft(to)h(the)f(new)f(top)i(directory)-8 b(.)630
+3345 y(When)32 b(no)g(argumen)m(ts)h(are)g(giv)m(en,)h
+Fs(popd)d Ft(remo)m(v)m(es)j(the)f(top)f(directory)h(from)f(the)g(stac)
+m(k)630 3455 y(and)f(p)s(erforms)e(a)j Fs(cd)f Ft(to)h(the)f(new)g(top)
+h(directory)-8 b(.)44 b(The)31 b(elemen)m(ts)i(are)e(n)m(um)m(b)s(ered)
+f(from)630 3565 y(0)d(starting)g(at)g(the)g(\014rst)f(directory)h
+(listed)g(with)f Fs(dirs)p Ft(;)h(i.e.,)i Fs(popd)c Ft(is)i(equiv)-5
+b(alen)m(t)28 b(to)f Fs(popd)630 3674 y(+0)p Ft(.)630
+3838 y Fs(+)p Fj(N)384 b Ft(Remo)m(v)m(es)22 b(the)f
+Fq(N)10 b Ft(th)20 b(directory)g(\(coun)m(ting)i(from)e(the)g(left)h
+(of)g(the)f(list)h(prin)m(ted)1110 3947 y(b)m(y)30 b
+Fs(dirs)p Ft(\),)g(starting)h(with)f(zero.)630 4111 y
+Fs(-)p Fj(N)384 b Ft(Remo)m(v)m(es)46 b(the)g Fq(N)10
+b Ft(th)44 b(directory)h(\(coun)m(ting)h(from)f(the)g(righ)m(t)g(of)g
+(the)g(list)1110 4220 y(prin)m(ted)30 b(b)m(y)g Fs(dirs)p
+Ft(\),)g(starting)h(with)f(zero.)630 4384 y Fs(-n)384
+b Ft(Suppresses)27 b(the)j(normal)g(c)m(hange)g(of)g(directory)g(when)e
+(remo)m(ving)j(directo-)1110 4494 y(ries)f(from)g(the)h(stac)m(k,)h(so)
+f(that)g(only)f(the)h(stac)m(k)g(is)g(manipulated.)150
+4684 y Fs(pushd)870 4821 y(pushd)46 b([-n])h([+)p Fj(N)57
+b Fs(|)48 b Fj(-N)58 b Fs(|)47 b Fj(dir)57 b Fs(])630
+4957 y Ft(Sa)m(v)m(e)30 b(the)e(curren)m(t)g(directory)h(on)f(the)h
+(top)f(of)h(the)f(directory)h(stac)m(k)h(and)e(then)g
+Fs(cd)f Ft(to)i Fq(dir)p Ft(.)630 5067 y(With)i(no)f(argumen)m(ts,)h
+Fs(pushd)e Ft(exc)m(hanges)j(the)e(top)h(t)m(w)m(o)h(directories.)630
+5230 y Fs(-n)384 b Ft(Suppresses)26 b(the)i(normal)h(c)m(hange)g(of)f
+(directory)h(when)e(adding)h(directories)1110 5340 y(to)j(the)g(stac)m
+(k,)h(so)e(that)h(only)g(the)f(stac)m(k)i(is)f(manipulated.)p
+eop end
+%%Page: 83 89
+TeXDict begin 83 88 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(83)630 299 y Fs(+)p
+Fj(N)384 b Ft(Brings)29 b(the)f Fq(N)10 b Ft(th)29 b(directory)g
+(\(coun)m(ting)h(from)e(the)g(left)i(of)e(the)h(list)g(prin)m(ted)1110
+408 y(b)m(y)34 b Fs(dirs)p Ft(,)g(starting)h(with)f(zero\))i(to)f(the)f
+(top)g(of)h(the)f(list)h(b)m(y)f(rotating)i(the)1110
+518 y(stac)m(k.)630 678 y Fs(-)p Fj(N)384 b Ft(Brings)23
+b(the)g Fq(N)10 b Ft(th)23 b(directory)h(\(coun)m(ting)g(from)e(the)i
+(righ)m(t)f(of)g(the)h(list)f(prin)m(ted)1110 788 y(b)m(y)34
+b Fs(dirs)p Ft(,)g(starting)h(with)f(zero\))i(to)f(the)f(top)g(of)h
+(the)f(list)h(b)m(y)f(rotating)i(the)1110 897 y(stac)m(k.)630
+1057 y Fj(dir)336 b Ft(Mak)m(es)36 b(the)f(curren)m(t)g(w)m(orking)g
+(directory)g(b)s(e)f(the)h(top)g(of)g(the)g(stac)m(k,)j(and)1110
+1167 y(then)30 b(executes)i(the)e(equiv)-5 b(alen)m(t)32
+b(of)f(`)p Fs(cd)f Fq(dir)7 b Ft('.)39 b Fs(cd)p Ft(s)30
+b(to)h Fq(dir)p Ft(.)150 1425 y Fr(6.9)68 b(Con)l(trolling)47
+b(the)e(Prompt)275 1670 y Ft(The)c(v)-5 b(alue)43 b(of)f(the)h(v)-5
+b(ariable)43 b Fs(PROMPT_COMMAND)38 b Ft(is)k(examined)g(just)g(b)s
+(efore)g(Bash)g(prin)m(ts)g(eac)m(h)150 1779 y(primary)f(prompt.)73
+b(If)41 b Fs(PROMPT_COMMAND)d Ft(is)j(set)h(and)f(has)h(a)g(non-n)m
+(ull)f(v)-5 b(alue,)45 b(then)c(the)h(v)-5 b(alue)42
+b(is)150 1889 y(executed)31 b(just)f(as)h(if)f(it)h(had)f(b)s(een)f(t)m
+(yp)s(ed)h(on)h(the)f(command)g(line.)275 2024 y(In)d(addition,)j(the)f
+(follo)m(wing)h(table)f(describ)s(es)f(the)h(sp)s(ecial)g(c)m
+(haracters)h(whic)m(h)f(can)f(app)s(ear)g(in)h(the)150
+2133 y(prompt)g(v)-5 b(ariables:)150 2293 y Fs(\\a)384
+b Ft(A)30 b(b)s(ell)h(c)m(haracter.)150 2453 y Fs(\\d)384
+b Ft(The)30 b(date,)h(in)f Fs(")p Ft(W)-8 b(eekda)m(y)32
+b(Mon)m(th)f(Date)p Fs(")h Ft(format)f(\(e.g.,)h Fs(")p
+Ft(T)-8 b(ue)30 b(Ma)m(y)h(26)p Fs(")p Ft(\).)150 2613
+y Fs(\\D{)p Fj(format)11 b Fs(})630 2723 y Ft(The)27
+b Fq(format)i Ft(is)f(passed)e(to)i Fs(strftime)p Ft(\(3\))f(and)f(the)
+i(result)f(is)g(inserted)g(in)m(to)h(the)g(prompt)630
+2832 y(string;)42 b(an)d(empt)m(y)f Fq(format)j Ft(results)d(in)g(a)h
+(lo)s(cale-sp)s(eci\014c)h(time)f(represen)m(tation.)65
+b(The)630 2942 y(braces)31 b(are)f(required.)150 3102
+y Fs(\\e)384 b Ft(An)30 b(escap)s(e)h(c)m(haracter.)150
+3262 y Fs(\\h)384 b Ft(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e
+(`.'.)150 3422 y Fs(\\H)384 b Ft(The)30 b(hostname.)150
+3581 y Fs(\\j)384 b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h(jobs)g(curren)m
+(tly)h(managed)g(b)m(y)f(the)g(shell.)150 3741 y Fs(\\l)384
+b Ft(The)30 b(basename)h(of)f(the)h(shell's)f(terminal)h(device)g
+(name.)150 3901 y Fs(\\n)384 b Ft(A)30 b(newline.)150
+4061 y Fs(\\r)384 b Ft(A)30 b(carriage)i(return.)150
+4221 y Fs(\\s)384 b Ft(The)22 b(name)g(of)h(the)f(shell,)i(the)f
+(basename)f(of)h Fs($0)f Ft(\(the)g(p)s(ortion)g(follo)m(wing)i(the)f
+(\014nal)e(slash\).)150 4381 y Fs(\\t)384 b Ft(The)30
+b(time,)h(in)f(24-hour)h(HH:MM:SS)g(format.)150 4541
+y Fs(\\T)384 b Ft(The)30 b(time,)h(in)f(12-hour)h(HH:MM:SS)g(format.)
+150 4701 y Fs(\\@)384 b Ft(The)30 b(time,)h(in)f(12-hour)h(am/pm)f
+(format.)150 4860 y Fs(\\A)384 b Ft(The)30 b(time,)h(in)f(24-hour)h
+(HH:MM)g(format.)150 5020 y Fs(\\u)384 b Ft(The)30 b(username)g(of)g
+(the)h(curren)m(t)f(user.)150 5180 y Fs(\\v)384 b Ft(The)30
+b(v)m(ersion)h(of)f(Bash)h(\(e.g.,)h(2.00\))150 5340
+y Fs(\\V)384 b Ft(The)30 b(release)i(of)e(Bash,)h(v)m(ersion)g
+Fs(+)f Ft(patc)m(hlev)m(el)i(\(e.g.,)h(2.00.0\))p eop
+end
+%%Page: 84 90
+TeXDict begin 84 89 bop 150 -116 a Ft(84)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(\\w)384 b Ft(The)34
+b(curren)m(t)h(w)m(orking)g(directory)-8 b(,)37 b(with)e
+Fs($HOME)e Ft(abbreviated)j(with)e(a)h(tilde)h(\(uses)f(the)630
+408 y Fs($PROMPT_DIRTRIM)26 b Ft(v)-5 b(ariable\).)150
+564 y Fs(\\W)384 b Ft(The)30 b(basename)h(of)f Fs($PWD)p
+Ft(,)g(with)g Fs($HOME)f Ft(abbreviated)h(with)g(a)h(tilde.)150
+719 y Fs(\\!)384 b Ft(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i(this)f
+(command.)150 875 y Fs(\\#)384 b Ft(The)30 b(command)g(n)m(um)m(b)s(er)
+f(of)i(this)f(command.)150 1031 y Fs(\\$)384 b Ft(If)30
+b(the)g(e\013ectiv)m(e)j(uid)d(is)g(0,)h Fs(#)p Ft(,)g(otherwise)g
+Fs($)p Ft(.)150 1186 y Fs(\\)p Fj(nnn)288 b Ft(The)30
+b(c)m(haracter)i(whose)e(ASCI)s(I)f(co)s(de)h(is)h(the)f(o)s(ctal)i(v)
+-5 b(alue)31 b Fq(nnn)p Ft(.)150 1342 y Fs(\\\\)384 b
+Ft(A)30 b(bac)m(kslash.)150 1497 y Fs(\\[)384 b Ft(Begin)38
+b(a)f(sequence)g(of)g(non-prin)m(ting)g(c)m(haracters.)61
+b(This)36 b(could)h(b)s(e)g(used)f(to)h(em)m(b)s(ed)g(a)630
+1607 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.)
+150 1762 y Fs(\\])384 b Ft(End)29 b(a)i(sequence)g(of)f(non-prin)m
+(ting)g(c)m(haracters.)275 1918 y(The)25 b(command)h(n)m(um)m(b)s(er)f
+(and)h(the)g(history)g(n)m(um)m(b)s(er)f(are)i(usually)f(di\013eren)m
+(t:)39 b(the)26 b(history)g(n)m(um)m(b)s(er)150 2027
+y(of)h(a)f(command)h(is)f(its)h(p)s(osition)f(in)g(the)h(history)f
+(list,)i(whic)m(h)f(ma)m(y)g(include)f(commands)g(restored)g(from)150
+2137 y(the)39 b(history)h(\014le)f(\(see)h(Section)g(9.1)h([Bash)e
+(History)h(F)-8 b(acilities],)45 b(page)40 b(121\),)j(while)d(the)f
+(command)150 2246 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g
+(the)g(sequence)h(of)f(commands)g(executed)h(during)e(the)i(curren)m(t)
+f(shell)150 2356 y(session.)275 2489 y(After)35 b(the)g(string)g(is)g
+(deco)s(ded,)h(it)f(is)g(expanded)f(via)i(parameter)f(expansion,)i
+(command)d(substi-)150 2598 y(tution,)k(arithmetic)f(expansion,)g(and)e
+(quote)h(remo)m(v)-5 b(al,)39 b(sub)5 b(ject)35 b(to)i(the)f(v)-5
+b(alue)36 b(of)g(the)g Fs(promptvars)150 2708 y Ft(shell)31
+b(option)f(\(see)i(Section)f(4.2)g([Bash)g(Builtins],)g(page)g(41\).)
+150 2959 y Fr(6.10)68 b(The)45 b(Restricted)h(Shell)275
+3201 y Ft(If)26 b(Bash)h(is)f(started)h(with)g(the)g(name)f
+Fs(rbash)p Ft(,)h(or)f(the)h(`)p Fs(--restricted)p Ft(')d(or)j(`)p
+Fs(-r)p Ft(')f(option)h(is)g(supplied)150 3311 y(at)32
+b(in)m(v)m(o)s(cation,)i(the)d(shell)g(b)s(ecomes)h(restricted.)44
+b(A)31 b(restricted)h(shell)f(is)g(used)g(to)h(set)f(up)f(an)i(en)m
+(viron-)150 3421 y(men)m(t)26 b(more)f(con)m(trolled)i(than)e(the)h
+(standard)e(shell.)40 b(A)25 b(restricted)h(shell)g(b)s(eha)m(v)m(es)g
+(iden)m(tically)h(to)f Fs(bash)150 3530 y Ft(with)k(the)h(exception)g
+(that)g(the)g(follo)m(wing)h(are)e(disallo)m(w)m(ed)i(or)f(not)f(p)s
+(erformed:)225 3663 y Fp(\017)60 b Ft(Changing)30 b(directories)h(with)
+g(the)f Fs(cd)g Ft(builtin.)225 3795 y Fp(\017)60 b Ft(Setting)31
+b(or)f(unsetting)h(the)g(v)-5 b(alues)30 b(of)h(the)f
+Fs(SHELL)p Ft(,)g Fs(PATH)p Ft(,)f Fs(ENV)p Ft(,)h(or)g
+Fs(BASH_ENV)e Ft(v)-5 b(ariables.)225 3928 y Fp(\017)60
+b Ft(Sp)s(ecifying)30 b(command)g(names)g(con)m(taining)i(slashes.)225
+4060 y Fp(\017)60 b Ft(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m
+(taining)i(a)f(slash)f(as)h(an)f(argumen)m(t)h(to)g(the)f
+Fs(.)h Ft(builtin)e(command.)225 4193 y Fp(\017)60 b
+Ft(Sp)s(ecifying)28 b(a)i(\014lename)f(con)m(taining)h(a)g(slash)e(as)h
+(an)g(argumen)m(t)h(to)f(the)g(`)p Fs(-p)p Ft(')g(option)g(to)h(the)f
+Fs(hash)330 4303 y Ft(builtin)h(command.)225 4435 y Fp(\017)60
+b Ft(Imp)s(orting)30 b(function)g(de\014nitions)g(from)f(the)i(shell)g
+(en)m(vironmen)m(t)g(at)g(startup.)225 4568 y Fp(\017)60
+b Ft(P)m(arsing)31 b(the)f(v)-5 b(alue)31 b(of)g Fs(SHELLOPTS)d
+Ft(from)h(the)i(shell)g(en)m(vironmen)m(t)g(at)g(startup.)225
+4700 y Fp(\017)60 b Ft(Redirecting)31 b(output)f(using)g(the)h(`)p
+Fs(>)p Ft(',)g(`)p Fs(>|)p Ft(',)f(`)p Fs(<>)p Ft(',)h(`)p
+Fs(>&)p Ft(',)f(`)p Fs(&>)p Ft(',)h(and)e(`)p Fs(>>)p
+Ft(')i(redirection)g(op)s(erators.)225 4833 y Fp(\017)60
+b Ft(Using)31 b(the)f Fs(exec)f Ft(builtin)h(to)h(replace)h(the)e
+(shell)h(with)f(another)h(command.)225 4965 y Fp(\017)60
+b Ft(Adding)40 b(or)h(deleting)h(builtin)e(commands)h(with)f(the)h(`)p
+Fs(-f)p Ft(')g(and)f(`)p Fs(-d)p Ft(')h(options)g(to)h(the)f
+Fs(enable)330 5075 y Ft(builtin.)225 5207 y Fp(\017)60
+b Ft(Using)31 b(the)f Fs(enable)f Ft(builtin)h(command)g(to)h(enable)g
+(disabled)f(shell)g(builtins.)225 5340 y Fp(\017)60 b
+Ft(Sp)s(ecifying)30 b(the)g(`)p Fs(-p)p Ft(')h(option)g(to)g(the)f
+Fs(command)f Ft(builtin.)p eop end
+%%Page: 85 91
+TeXDict begin 85 90 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(85)225 299 y Fp(\017)60
+b Ft(T)-8 b(urning)29 b(o\013)i(restricted)g(mo)s(de)f(with)g(`)p
+Fs(set)g(+r)p Ft(')g(or)g(`)p Fs(set)g(+o)g(restricted)p
+Ft('.)275 453 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m(y)
+g(startup)f(\014les)g(are)h(read.)275 585 y(When)j(a)i(command)e(that)i
+(is)f(found)f(to)h(b)s(e)g(a)g(shell)g(script)g(is)g(executed)h(\(see)g
+(Section)g(3.8)g([Shell)150 695 y(Scripts],)25 b(page)e(34\),)j
+Fs(rbash)c Ft(turns)g(o\013)i(an)m(y)f(restrictions)h(in)f(the)g(shell)
+h(spa)m(wned)e(to)i(execute)g(the)g(script.)150 945 y
+Fr(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)275 1187 y Ft(Starting)21
+b(Bash)g(with)f(the)h(`)p Fs(--posix)p Ft(')e(command-line)j(option)f
+(or)g(executing)h(`)p Fs(set)30 b(-o)f(posix)p Ft(')20
+b(while)150 1296 y(Bash)26 b(is)g(running)e(will)j(cause)f(Bash)g(to)h
+(conform)f(more)g(closely)h(to)g(the)f Fl(posix)f Ft(standard)g(b)m(y)h
+(c)m(hanging)150 1406 y(the)31 b(b)s(eha)m(vior)f(to)h(matc)m(h)g(that)
+g(sp)s(eci\014ed)f(b)m(y)g Fl(posix)g Ft(in)g(areas)h(where)f(the)h
+(Bash)f(default)h(di\013ers.)275 1538 y(When)f(in)m(v)m(ok)m(ed)h(as)g
+Fs(sh)p Ft(,)f(Bash)h(en)m(ters)g Fl(posix)e Ft(mo)s(de)h(after)h
+(reading)g(the)f(startup)g(\014les.)275 1670 y(The)f(follo)m(wing)j
+(list)f(is)g(what's)f(c)m(hanged)h(when)e(`)p Fl(posix)h
+Ft(mo)s(de')h(is)f(in)g(e\013ect:)199 1802 y(1.)61 b(When)28
+b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e(longer)h(exists,)h(Bash)
+f(will)g(re-searc)m(h)h Fs($PATH)d Ft(to)i(\014nd)330
+1912 y(the)i(new)e(lo)s(cation.)43 b(This)29 b(is)i(also)g(a)m(v)-5
+b(ailable)33 b(with)d(`)p Fs(shopt)f(-s)h(checkhash)p
+Ft('.)199 2044 y(2.)61 b(The)42 b(message)h(prin)m(ted)e(b)m(y)h(the)g
+(job)g(con)m(trol)i(co)s(de)e(and)f(builtins)h(when)f(a)h(job)g(exits)h
+(with)f(a)330 2153 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
+2286 y(3.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)
+m(trol)h(co)s(de)g(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s(ed)e
+(is)330 2395 y(`Stopp)s(ed\()p Fq(signame)5 b Ft(\)',)31
+b(where)f Fq(signame)36 b Ft(is,)31 b(for)f(example,)h
+Fs(SIGTSTP)p Ft(.)199 2527 y(4.)61 b(The)27 b Fs(bg)g
+Ft(builtin)g(uses)g(the)h(required)f(format)h(to)g(describ)s(e)f(eac)m
+(h)i(job)e(placed)h(in)f(the)h(bac)m(kground,)330 2637
+y(whic)m(h)h(do)s(es)g(not)g(include)g(an)g(indication)h(of)f(whether)f
+(the)h(job)g(is)g(the)h(curren)m(t)e(or)h(previous)g(job.)199
+2769 y(5.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
+m(text)i(where)d(reserv)m(ed)h(w)m(ords)f(are)i(recognized)g(do)f(not)
+330 2878 y(undergo)30 b(alias)h(expansion.)199 3011 y(6.)61
+b(The)38 b Fl(posix)h Fs(PS1)f Ft(and)g Fs(PS2)g Ft(expansions)g(of)i
+(`)p Fs(!)p Ft(')f(to)g(the)g(history)g(n)m(um)m(b)s(er)f(and)g(`)p
+Fs(!!)p Ft(')h(to)g(`)p Fs(!)p Ft(')h(are)330 3120 y(enabled,)26
+b(and)f(parameter)g(expansion)g(is)g(p)s(erformed)e(on)i(the)g(v)-5
+b(alues)25 b(of)g Fs(PS1)f Ft(and)h Fs(PS2)f Ft(regardless)330
+3230 y(of)31 b(the)f(setting)i(of)e(the)h Fs(promptvars)c
+Ft(option.)199 3362 y(7.)61 b(The)30 b Fl(posix)g Ft(startup)f(\014les)
+i(are)g(executed)g(\()p Fs($ENV)p Ft(\))f(rather)g(than)g(the)h(normal)
+f(Bash)g(\014les.)199 3494 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h
+(p)s(erformed)f(on)h(assignmen)m(ts)g(preceding)g(a)g(command)g(name,)g
+(rather)330 3603 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
+(on)e(the)h(line.)199 3735 y(9.)61 b(The)30 b(default)g(history)h
+(\014le)f(is)h(`)p Fs(~/.sh_history)p Ft(')c(\(this)k(is)f(the)g
+(default)h(v)-5 b(alue)31 b(of)f Fs($HISTFILE)p Ft(\).)154
+3868 y(10.)61 b(The)23 b(output)f(of)i(`)p Fs(kill)29
+b(-l)p Ft(')23 b(prin)m(ts)f(all)i(the)g(signal)f(names)g(on)g(a)h
+(single)g(line,)h(separated)e(b)m(y)g(spaces,)330 3977
+y(without)30 b(the)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154
+4109 y(11.)61 b(The)30 b Fs(kill)f Ft(builtin)h(do)s(es)g(not)h(accept)
+h(signal)f(names)f(with)g(a)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154
+4241 y(12.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g
+Fq(\014lename)k Ft(in)30 b Fs(.)g Fq(\014lename)36 b
+Ft(is)31 b(not)f(found.)154 4373 y(13.)61 b(Non-in)m(teractiv)m(e)41
+b(shells)d(exit)h(if)f(a)g(syn)m(tax)g(error)g(in)f(an)h(arithmetic)h
+(expansion)f(results)f(in)h(an)330 4483 y(in)m(v)-5 b(alid)31
+b(expression.)154 4615 y(14.)61 b(Redirection)25 b(op)s(erators)f(do)g
+(not)g(p)s(erform)f(\014lename)h(expansion)g(on)g(the)g(w)m(ord)f(in)h
+(the)g(redirection)330 4725 y(unless)30 b(the)g(shell)h(is)f(in)m
+(teractiv)m(e.)154 4857 y(15.)61 b(Redirection)31 b(op)s(erators)g(do)f
+(not)h(p)s(erform)e(w)m(ord)h(splitting)h(on)f(the)h(w)m(ord)f(in)g
+(the)g(redirection.)154 4989 y(16.)61 b(F)-8 b(unction)35
+b(names)g(m)m(ust)f(b)s(e)g(v)-5 b(alid)35 b(shell)f
+Fs(name)p Ft(s.)52 b(That)34 b(is,)i(they)f(ma)m(y)g(not)g(con)m(tain)g
+(c)m(haracters)330 5098 y(other)e(than)g(letters,)h(digits,)h(and)d
+(underscores,)h(and)f(ma)m(y)h(not)g(start)h(with)e(a)h(digit.)49
+b(Declaring)330 5208 y(a)31 b(function)f(with)g(an)g(in)m(v)-5
+b(alid)31 b(name)g(causes)f(a)h(fatal)h(syn)m(tax)f(error)f(in)g
+(non-in)m(teractiv)m(e)j(shells.)154 5340 y(17.)61 b
+Fl(posix)30 b Ft(sp)s(ecial)h(builtins)e(are)i(found)e(b)s(efore)h
+(shell)h(functions)f(during)f(command)h(lo)s(okup.)p
+eop end
+%%Page: 86 92
+TeXDict begin 86 91 bop 150 -116 a Ft(86)2572 b(Bash)31
+b(Reference)g(Man)m(ual)154 299 y(18.)61 b(If)24 b(a)g
+Fl(posix)g Ft(sp)s(ecial)h(builtin)f(returns)f(an)h(error)g(status,)i
+(a)e(non-in)m(teractiv)m(e)j(shell)e(exits.)39 b(The)24
+b(fatal)330 408 y(errors)i(are)h(those)f(listed)h(in)f(the)h(POSIX)e
+(standard,)i(and)f(include)g(things)g(lik)m(e)i(passing)e(incorrect)330
+518 y(options,)43 b(redirection)d(errors,)i(v)-5 b(ariable)41
+b(assignmen)m(t)g(errors)e(for)g(assignmen)m(ts)i(preceding)f(the)330
+628 y(command)30 b(name,)h(and)f(so)g(on.)154 763 y(19.)61
+b(If)34 b Fs(CDPATH)f Ft(is)h(set,)i(the)f Fs(cd)f Ft(builtin)g(will)g
+(not)h(implicitly)h(app)s(end)c(the)j(curren)m(t)f(directory)h(to)g
+(it.)330 873 y(This)29 b(means)g(that)h Fs(cd)f Ft(will)h(fail)g(if)g
+(no)f(v)-5 b(alid)30 b(directory)g(name)f(can)h(b)s(e)f(constructed)h
+(from)f(an)m(y)h(of)330 982 y(the)i(en)m(tries)g(in)f
+Fs($CDPATH)p Ft(,)e(ev)m(en)j(if)g(the)f(a)h(directory)g(with)f(the)g
+(same)h(name)f(as)h(the)g(name)f(giv)m(en)330 1092 y(as)g(an)f(argumen)
+m(t)h(to)g Fs(cd)f Ft(exists)h(in)f(the)g(curren)m(t)g(directory)-8
+b(.)154 1227 y(20.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h
+(with)e(an)h(error)g(status)g(if)g(a)g(v)-5 b(ariable)32
+b(assignmen)m(t)g(error)e(o)s(ccurs)330 1337 y(when)38
+b(no)h(command)g(name)g(follo)m(ws)i(the)e(assignmen)m(t)h(statemen)m
+(ts.)69 b(A)39 b(v)-5 b(ariable)40 b(assignmen)m(t)330
+1446 y(error)30 b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g
+(assign)f(a)h(v)-5 b(alue)31 b(to)g(a)g(readonly)f(v)-5
+b(ariable.)154 1582 y(21.)61 b(A)43 b(non-in)m(teractiv)m(e)i(shell)e
+(exits)h(with)f(an)f(error)h(status)g(if)g(the)g(iteration)h(v)-5
+b(ariable)44 b(in)f(a)g Fs(for)330 1691 y Ft(statemen)m(t)32
+b(or)f(the)f(selection)i(v)-5 b(ariable)32 b(in)e(a)g
+Fs(select)f Ft(statemen)m(t)j(is)f(a)f(readonly)h(v)-5
+b(ariable.)154 1827 y(22.)61 b(Pro)s(cess)30 b(substitution)g(is)h(not)
+f(a)m(v)-5 b(ailable.)154 1962 y(23.)61 b(Assignmen)m(t)23
+b(statemen)m(ts)h(preceding)e Fl(posix)f Ft(sp)s(ecial)i(builtins)f(p)s
+(ersist)g(in)f(the)i(shell)f(en)m(vironmen)m(t)330 2072
+y(after)31 b(the)f(builtin)g(completes.)154 2207 y(24.)61
+b(Assignmen)m(t)35 b(statemen)m(ts)h(preceding)f(shell)f(function)g
+(calls)i(p)s(ersist)e(in)g(the)h(shell)f(en)m(vironmen)m(t)330
+2317 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h
+Fl(posix)e Ft(sp)s(ecial)i(builtin)f(command)g(had)g(b)s(een)g
+(executed.)154 2452 y(25.)61 b(The)38 b Fs(export)f Ft(and)g
+Fs(readonly)f Ft(builtin)i(commands)g(displa)m(y)h(their)f(output)g(in)
+g(the)h(format)g(re-)330 2562 y(quired)30 b(b)m(y)g Fl(posix)p
+Ft(.)154 2697 y(26.)61 b(The)30 b Fs(trap)f Ft(builtin)h(displa)m(ys)g
+(signal)i(names)e(without)g(the)h(leading)g Fs(SIG)p
+Ft(.)154 2832 y(27.)61 b(The)39 b Fs(trap)e Ft(builtin)i(do)s(esn't)g
+(c)m(hec)m(k)h(the)g(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e
+(signal)i(sp)s(eci\014cation)330 2942 y(and)30 b(rev)m(ert)i(the)e
+(signal)i(handling)e(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g
+(is,)g(unless)f(that)h(argumen)m(t)330 3051 y(consists)e(solely)g(of)g
+(digits)g(and)f(is)g(a)h(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38
+b(If)28 b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330
+3161 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
+(osition,)f(they)g(should)f(use)h(`)p Fs(-)p Ft(')g(as)g(the)g(\014rst)
+f(argumen)m(t.)154 3296 y(28.)61 b(The)21 b Fs(.)h Ft(and)f
+Fs(source)f Ft(builtins)h(do)g(not)h(searc)m(h)h(the)f(curren)m(t)f
+(directory)h(for)g(the)g(\014lename)f(argumen)m(t)330
+3406 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
+Fs(PATH)p Ft(.)154 3541 y(29.)61 b(Subshells)20 b(spa)m(wned)h(to)h
+(execute)g(command)g(substitutions)f(inherit)g(the)g(v)-5
+b(alue)22 b(of)g(the)f(`)p Fs(-e)p Ft(')g(option)330
+3651 y(from)34 b(the)h(paren)m(t)g(shell.)55 b(When)34
+b(not)i(in)e Fl(posix)g Ft(mo)s(de,)i(Bash)f(clears)h(the)f(`)p
+Fs(-e)p Ft(')f(option)i(in)e(suc)m(h)330 3761 y(subshells.)154
+3896 y(30.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i(enabled,)e
+(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)154 4031
+y(31.)61 b(When)43 b(the)g Fs(alias)f Ft(builtin)g(displa)m(ys)i(alias)
+g(de\014nitions,)i(it)d(do)s(es)g(not)g(displa)m(y)h(them)f(with)g(a)
+330 4141 y(leading)31 b(`)p Fs(alias)e Ft(')i(unless)f(the)g(`)p
+Fs(-p)p Ft(')g(option)h(is)g(supplied.)154 4276 y(32.)61
+b(When)40 b(the)g Fs(set)f Ft(builtin)h(is)g(in)m(v)m(ok)m(ed)h
+(without)f(options,)j(it)e(do)s(es)f(not)g(displa)m(y)g(shell)g
+(function)330 4386 y(names)30 b(and)g(de\014nitions.)154
+4521 y(33.)61 b(When)36 b(the)g Fs(set)g Ft(builtin)g(is)g(in)m(v)m(ok)
+m(ed)i(without)e(options,)i(it)f(displa)m(ys)f(v)-5 b(ariable)37
+b(v)-5 b(alues)37 b(without)330 4631 y(quotes,)26 b(unless)d(they)i
+(con)m(tain)g(shell)f(metac)m(haracters,)k(ev)m(en)d(if)f(the)g(result)
+g(con)m(tains)i(nonprin)m(ting)330 4740 y(c)m(haracters.)154
+4876 y(34.)61 b(When)35 b(the)g Fs(cd)f Ft(builtin)h(is)g(in)m(v)m(ok)m
+(ed)i(in)d Fq(logical)41 b Ft(mo)s(de,)36 b(and)f(the)g(pathname)g
+(constructed)g(from)330 4985 y Fs($PWD)i Ft(and)h(the)h(directory)f
+(name)h(supplied)e(as)i(an)f(argumen)m(t)h(do)s(es)f(not)g(refer)h(to)g
+(an)f(existing)330 5095 y(directory)-8 b(,)32 b Fs(cd)d
+Ft(will)i(fail)g(instead)g(of)f(falling)h(bac)m(k)h(to)f
+Fq(ph)m(ysical)j Ft(mo)s(de.)154 5230 y(35.)61 b(When)20
+b(the)h Fs(pwd)e Ft(builtin)h(is)g(supplied)g(the)g(`)p
+Fs(-P)p Ft(')g(option,)j(it)e(resets)g Fs($PWD)e Ft(to)i(a)g(pathname)f
+(con)m(taining)330 5340 y(no)30 b(symlinks.)p eop end
+%%Page: 87 93
+TeXDict begin 87 92 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(87)154 299 y(36.)61
+b(The)36 b Fs(pwd)f Ft(builtin)h(v)m(eri\014es)h(that)g(the)f(v)-5
+b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f(same)h(as)f(the)h(curren)m(t)f
+(directory)-8 b(,)330 408 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m(ed)
+h(to)g(c)m(hec)m(k)h(the)f(\014le)f(system)h(with)f(the)h(`)p
+Fs(-P)p Ft(')f(option.)154 543 y(37.)61 b(When)35 b(listing)g(the)g
+(history)-8 b(,)36 b(the)f Fs(fc)g Ft(builtin)f(do)s(es)g(not)h
+(include)g(an)f(indication)i(of)f(whether)f(or)330 653
+y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154
+787 y(38.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
+Fs(fc)g Ft(is)g Fs(ed)p Ft(.)154 922 y(39.)61 b(The)37
+b Fs(type)g Ft(and)g Fs(command)f Ft(builtins)i(will)g(not)g(rep)s(ort)
+f(a)i(non-executable)g(\014le)f(as)g(ha)m(ving)h(b)s(een)330
+1031 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
+(execute)g(suc)m(h)f(a)g(\014le)g(if)g(it)g(is)g(the)g(only)g(so-named)
+g(\014le)330 1141 y(found)i(in)h Fs($PATH)p Ft(.)154
+1275 y(40.)61 b(The)33 b Fs(vi)f Ft(editing)i(mo)s(de)f(will)g(in)m(v)m
+(ok)m(e)i(the)e Fs(vi)g Ft(editor)h(directly)f(when)f(the)i(`)p
+Fs(v)p Ft(')f(command)g(is)g(run,)330 1385 y(instead)e(of)f(c)m(hec)m
+(king)i Fs($VISUAL)d Ft(and)g Fs($EDITOR)p Ft(.)154 1519
+y(41.)61 b(When)41 b(the)g Fs(xpg_echo)e Ft(option)i(is)g(enabled,)j
+(Bash)d(do)s(es)g(not)g(attempt)h(to)g(in)m(terpret)f(an)m(y)h(ar-)330
+1629 y(gumen)m(ts)35 b(to)g Fs(echo)e Ft(as)i(options.)54
+b(Eac)m(h)35 b(argumen)m(t)g(is)f(displa)m(y)m(ed,)j(after)e(escap)s(e)
+g(c)m(haracters)h(are)330 1738 y(con)m(v)m(erted.)154
+1873 y(42.)61 b(The)30 b Fs(ulimit)f Ft(builtin)g(uses)h(a)h(blo)s(c)m
+(k)g(size)g(of)g(512)g(b)m(ytes)g(for)f(the)h(`)p Fs(-c)p
+Ft(')f(and)g(`)p Fs(-f)p Ft(')g(options.)275 2032 y(There)k(is)g(other)
+h Fl(posix)f Ft(b)s(eha)m(vior)h(that)g(Bash)g(do)s(es)f(not)h
+(implemen)m(t)g(b)m(y)g(default)f(ev)m(en)i(when)d(in)150
+2142 y Fl(posix)d Ft(mo)s(de.)40 b(Sp)s(eci\014cally:)199
+2276 y(1.)61 b(The)30 b Fs(fc)f Ft(builtin)h(c)m(hec)m(ks)i
+Fs($EDITOR)c Ft(as)j(a)f(program)g(to)h(edit)g(history)f(en)m(tries)h
+(if)f Fs(FCEDIT)f Ft(is)h(unset,)330 2386 y(rather)g(than)g(defaulting)
+h(directly)g(to)g Fs(ed)p Ft(.)40 b Fs(fc)30 b Ft(uses)g
+Fs(ed)g Ft(if)g Fs(EDITOR)f Ft(is)h(unset.)199 2521 y(2.)61
+b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i(Bash)e(requires)g(the)g
+Fs(xpg_echo)e Ft(option)j(to)g(b)s(e)e(enabled)h(for)g(the)g
+Fs(echo)f Ft(builtin)330 2630 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275
+2790 y(Bash)66 b(can)h(b)s(e)f(con\014gured)g(to)i(b)s(e)e
+Fl(posix)p Ft(-conforman)m(t)h(b)m(y)f(default,)77 b(b)m(y)66
+b(sp)s(ecifying)h(the)150 2899 y(`)p Fs(--enable-strict-posix-def)o
+(ault)o Ft(')i(to)76 b Fs(configure)c Ft(when)i(building)g(\(see)i
+(Section)f(10.8)150 3009 y([Optional)31 b(F)-8 b(eatures],)32
+b(page)f(129\).)p eop end
+%%Page: 88 94
+TeXDict begin 88 93 bop 150 -116 a Ft(88)2572 b(Bash)31
+b(Reference)g(Man)m(ual)p eop end
+%%Page: 89 95
+TeXDict begin 89 94 bop 150 -116 a Ft(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2571 b(89)150 299 y Fo(7)80 b(Job)54
+b(Con)l(trol)275 550 y Ft(This)34 b(c)m(hapter)i(discusses)f(what)g
+(job)g(con)m(trol)i(is,)g(ho)m(w)e(it)h(w)m(orks,)h(and)e(ho)m(w)g
+(Bash)h(allo)m(ws)g(y)m(ou)g(to)150 660 y(access)c(its)e(facilities.)
+150 931 y Fr(7.1)68 b(Job)45 b(Con)l(trol)h(Basics)275
+1181 y Ft(Job)30 b(con)m(trol)j(refers)e(to)h(the)g(abilit)m(y)g(to)g
+(selectiv)m(ely)j(stop)c(\(susp)s(end\))f(the)h(execution)i(of)e(pro)s
+(cesses)150 1290 y(and)24 b(con)m(tin)m(ue)i(\(resume\))f(their)g
+(execution)h(at)f(a)h(later)f(p)s(oin)m(t.)39 b(A)25
+b(user)f(t)m(ypically)j(emplo)m(ys)e(this)g(facilit)m(y)150
+1400 y(via)31 b(an)f(in)m(teractiv)m(e)j(in)m(terface)f(supplied)e
+(join)m(tly)h(b)m(y)f(the)h(system's)f(terminal)h(driv)m(er)f(and)g
+(Bash.)275 1540 y(The)23 b(shell)i(asso)s(ciates)h(a)f
+Fq(job)h Ft(with)e(eac)m(h)i(pip)s(eline.)38 b(It)25
+b(k)m(eeps)f(a)h(table)h(of)e(curren)m(tly)h(executing)g(jobs,)150
+1650 y(whic)m(h)33 b(ma)m(y)i(b)s(e)e(listed)h(with)f(the)h
+Fs(jobs)f Ft(command.)50 b(When)33 b(Bash)h(starts)g(a)g(job)g(async)m
+(hronously)-8 b(,)34 b(it)150 1759 y(prin)m(ts)c(a)h(line)f(that)h(lo)s
+(oks)g(lik)m(e:)390 1899 y Fs([1])47 b(25647)150 2040
+y Ft(indicating)34 b(that)g(this)f(job)g(is)g(job)g(n)m(um)m(b)s(er)f
+(1)i(and)f(that)g(the)h(pro)s(cess)f Fl(id)g Ft(of)g(the)h(last)g(pro)s
+(cess)f(in)g(the)150 2149 y(pip)s(eline)42 b(asso)s(ciated)i(with)e
+(this)g(job)g(is)h(25647.)78 b(All)43 b(of)g(the)g(pro)s(cesses)f(in)g
+(a)h(single)g(pip)s(eline)f(are)150 2259 y(mem)m(b)s(ers)30
+b(of)g(the)h(same)f(job.)41 b(Bash)30 b(uses)g(the)h
+Fq(job)h Ft(abstraction)f(as)g(the)g(basis)f(for)g(job)g(con)m(trol.)
+275 2399 y(T)-8 b(o)23 b(facilitate)j(the)d(implemen)m(tation)i(of)f
+(the)f(user)f(in)m(terface)j(to)f(job)f(con)m(trol,)j(the)d(op)s
+(erating)h(system)150 2509 y(main)m(tains)j(the)f(notion)h(of)f(a)g
+(curren)m(t)g(terminal)g(pro)s(cess)g(group)g Fl(id)p
+Ft(.)39 b(Mem)m(b)s(ers)26 b(of)g(this)g(pro)s(cess)f(group)150
+2618 y(\(pro)s(cesses)h(whose)g(pro)s(cess)g(group)g
+Fl(id)g Ft(is)h(equal)g(to)g(the)f(curren)m(t)g(terminal)h(pro)s(cess)f
+(group)f Fl(id)p Ft(\))i(receiv)m(e)150 2728 y(k)m(eyb)s
+(oard-generated)22 b(signals)g(suc)m(h)e(as)h Fs(SIGINT)p
+Ft(.)36 b(These)21 b(pro)s(cesses)g(are)g(said)g(to)g(b)s(e)g(in)f(the)
+h(foreground.)150 2837 y(Bac)m(kground)38 b(pro)s(cesses)f(are)h(those)
+g(whose)f(pro)s(cess)g(group)g Fl(id)h Ft(di\013ers)f(from)g(the)g
+(terminal's;)42 b(suc)m(h)150 2947 y(pro)s(cesses)24
+b(are)g(imm)m(une)g(to)g(k)m(eyb)s(oard-generated)h(signals.)40
+b(Only)23 b(foreground)g(pro)s(cesses)h(are)g(allo)m(w)m(ed)150
+3057 y(to)35 b(read)f(from)f(or)h(write)g(to)h(the)f(terminal.)52
+b(Bac)m(kground)34 b(pro)s(cesses)g(whic)m(h)g(attempt)h(to)g(read)e
+(from)150 3166 y(\(write)e(to\))g(the)g(terminal)g(are)g(sen)m(t)g(a)f
+Fs(SIGTTIN)f Ft(\()p Fs(SIGTTOU)p Ft(\))g(signal)i(b)m(y)f(the)h
+(terminal)g(driv)m(er,)f(whic)m(h,)150 3276 y(unless)g(caugh)m(t,)h
+(susp)s(ends)d(the)j(pro)s(cess.)275 3416 y(If)j(the)i(op)s(erating)g
+(system)f(on)h(whic)m(h)f(Bash)g(is)h(running)d(supp)s(orts)h(job)h
+(con)m(trol,)j(Bash)e(con)m(tains)150 3525 y(facilities)30
+b(to)f(use)f(it.)40 b(T)m(yping)28 b(the)g Fq(susp)s(end)h
+Ft(c)m(haracter)h(\(t)m(ypically)g(`)p Fs(^Z)p Ft(',)f(Con)m(trol-Z\))g
+(while)f(a)g(pro)s(cess)150 3635 y(is)42 b(running)f(causes)i(that)g
+(pro)s(cess)f(to)h(b)s(e)f(stopp)s(ed)f(and)h(returns)f(con)m(trol)j
+(to)f(Bash.)77 b(T)m(yping)42 b(the)150 3745 y Fq(dela)m(y)m(ed)k(susp)
+s(end)f Ft(c)m(haracter)h(\(t)m(ypically)g(`)p Fs(^Y)p
+Ft(',)i(Con)m(trol-Y\))e(causes)e(the)h(pro)s(cess)e(to)i(b)s(e)f
+(stopp)s(ed)150 3854 y(when)26 b(it)i(attempts)h(to)f(read)f(input)g
+(from)f(the)i(terminal,)h(and)e(con)m(trol)h(to)g(b)s(e)f(returned)f
+(to)j(Bash.)39 b(The)150 3964 y(user)e(then)g(manipulates)h(the)g
+(state)h(of)f(this)f(job,)j(using)d(the)h Fs(bg)f Ft(command)g(to)h
+(con)m(tin)m(ue)h(it)f(in)g(the)150 4073 y(bac)m(kground,)g(the)f
+Fs(fg)g Ft(command)f(to)i(con)m(tin)m(ue)g(it)f(in)f(the)h(foreground,)
+h(or)f(the)g Fs(kill)f Ft(command)g(to)150 4183 y(kill)27
+b(it.)40 b(A)27 b(`)p Fs(^Z)p Ft(')g(tak)m(es)h(e\013ect)g(immediately)
+-8 b(,)29 b(and)d(has)h(the)f(additional)i(side)e(e\013ect)j(of)d
+(causing)h(p)s(ending)150 4293 y(output)j(and)g(t)m(yp)s(eahead)h(to)g
+(b)s(e)e(discarded.)275 4433 y(There)j(are)g(a)h(n)m(um)m(b)s(er)e(of)i
+(w)m(a)m(ys)g(to)h(refer)e(to)h(a)g(job)f(in)g(the)h(shell.)47
+b(The)32 b(c)m(haracter)i(`)p Fs(\045)p Ft(')f(in)m(tro)s(duces)150
+4542 y(a)e(job)f(sp)s(eci\014cation)h(\()p Fq(jobsp)s(ec)6
+b Ft(\).)275 4682 y(Job)31 b(n)m(um)m(b)s(er)f Fs(n)h
+Ft(ma)m(y)h(b)s(e)f(referred)g(to)h(as)g(`)p Fs(\045n)p
+Ft('.)44 b(The)31 b(sym)m(b)s(ols)g(`)p Fs(\045\045)p
+Ft(')h(and)f(`)p Fs(\045+)p Ft(')g(refer)h(to)g(the)g(shell's)150
+4792 y(notion)k(of)f(the)g(curren)m(t)g(job,)h(whic)m(h)f(is)g(the)g
+(last)h(job)f(stopp)s(ed)f(while)h(it)h(w)m(as)g(in)e(the)i(foreground)
+e(or)150 4902 y(started)27 b(in)g(the)g(bac)m(kground.)40
+b(A)27 b(single)g(`)p Fs(\045)p Ft(')g(\(with)g(no)g(accompan)m(ying)i
+(job)d(sp)s(eci\014cation\))i(also)g(refers)150 5011
+y(to)k(the)e(curren)m(t)h(job.)42 b(The)30 b(previous)g(job)h(ma)m(y)g
+(b)s(e)f(referenced)h(using)f(`)p Fs(\045-)p Ft('.)42
+b(If)30 b(there)h(is)g(only)g(a)g(single)150 5121 y(job,)g(`)p
+Fs(\045+)p Ft(')g(and)f(`)p Fs(\045-)p Ft(')h(can)h(b)s(oth)e(b)s(e)g
+(used)h(to)g(refer)g(to)h(that)g(job.)42 b(In)30 b(output)h(p)s
+(ertaining)g(to)g(jobs)g(\(e.g.,)150 5230 y(the)39 b(output)f(of)g(the)
+h Fs(jobs)e Ft(command\),)k(the)d(curren)m(t)h(job)f(is)g(alw)m(a)m(ys)
+i(\015agged)f(with)f(a)h(`)p Fs(+)p Ft(',)i(and)d(the)150
+5340 y(previous)30 b(job)g(with)g(a)h(`)p Fs(-)p Ft('.)p
+eop end
+%%Page: 90 96
+TeXDict begin 90 95 bop 150 -116 a Ft(90)2572 b(Bash)31
+b(Reference)g(Man)m(ual)275 299 y(A)38 b(job)g(ma)m(y)h(also)g(b)s(e)f
+(referred)f(to)j(using)d(a)i(pre\014x)e(of)i(the)f(name)h(used)e(to)i
+(start)g(it,)i(or)e(using)f(a)150 408 y(substring)29
+b(that)i(app)s(ears)f(in)g(its)h(command)f(line.)41 b(F)-8
+b(or)31 b(example,)g(`)p Fs(\045ce)p Ft(')f(refers)g(to)h(a)g(stopp)s
+(ed)e Fs(ce)h Ft(job.)150 518 y(Using)d(`)p Fs(\045?ce)p
+Ft(',)g(on)f(the)h(other)g(hand,)g(refers)f(to)h(an)m(y)g(job)g(con)m
+(taining)h(the)f(string)f(`)p Fs(ce)p Ft(')h(in)f(its)h(command)150
+628 y(line.)41 b(If)30 b(the)h(pre\014x)e(or)h(substring)f(matc)m(hes)j
+(more)e(than)h(one)f(job,)h(Bash)f(rep)s(orts)g(an)g(error.)275
+767 y(Simply)g(naming)h(a)g(job)g(can)g(b)s(e)f(used)h(to)g(bring)f(it)
+i(in)m(to)g(the)f(foreground:)41 b(`)p Fs(\0451)p Ft(')31
+b(is)g(a)h(synon)m(ym)e(for)150 876 y(`)p Fs(fg)g(\0451)p
+Ft(',)i(bringing)f(job)g(1)g(from)g(the)h(bac)m(kground)f(in)m(to)i
+(the)e(foreground.)44 b(Similarly)-8 b(,)32 b(`)p Fs(\0451)e(&)p
+Ft(')i(resumes)150 986 y(job)e(1)h(in)f(the)g(bac)m(kground,)h(equiv)-5
+b(alen)m(t)32 b(to)f(`)p Fs(bg)f(\0451)p Ft(')275 1125
+y(The)g(shell)i(learns)f(immediately)i(whenev)m(er)e(a)h(job)f(c)m
+(hanges)h(state.)45 b(Normally)-8 b(,)33 b(Bash)e(w)m(aits)i(un)m(til)
+150 1235 y(it)25 b(is)g(ab)s(out)f(to)i(prin)m(t)e(a)h(prompt)f(b)s
+(efore)g(rep)s(orting)h(c)m(hanges)g(in)g(a)g(job's)f(status)h(so)g(as)
+g(to)g(not)g(in)m(terrupt)150 1344 y(an)m(y)g(other)g(output.)39
+b(If)24 b(the)i(`)p Fs(-b)p Ft(')e(option)i(to)f(the)g
+Fs(set)f Ft(builtin)h(is)g(enabled,)h(Bash)f(rep)s(orts)f(suc)m(h)h(c)m
+(hanges)150 1454 y(immediately)g(\(see)g(Section)g(4.3.1)g([The)f(Set)g
+(Builtin],)i(page)f(51\).)40 b(An)m(y)24 b(trap)f(on)h
+Fs(SIGCHLD)e Ft(is)i(executed)150 1564 y(for)30 b(eac)m(h)i(c)m(hild)e
+(pro)s(cess)g(that)h(exits.)275 1703 y(If)25 b(an)h(attempt)h(to)g
+(exit)g(Bash)f(is)h(made)f(while)g(jobs)f(are)i(stopp)s(ed,)f(\(or)h
+(running,)e(if)h(the)g Fs(checkjobs)150 1812 y Ft(option)e(is)f
+(enabled)h({)g(see)g(Section)g(4.3.2)h([The)e(Shopt)g(Builtin],)j(page)
+e(54\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150
+1922 y(message,)k(and)c(if)i(the)f Fs(checkjobs)e Ft(option)j(is)f
+(enabled,)i(lists)e(the)h(jobs)f(and)f(their)i(statuses.)39
+b(The)25 b Fs(jobs)150 2032 y Ft(command)36 b(ma)m(y)h(then)f(b)s(e)f
+(used)g(to)i(insp)s(ect)f(their)g(status.)59 b(If)36
+b(a)g(second)g(attempt)i(to)f(exit)g(is)f(made)150 2141
+y(without)e(an)f(in)m(terv)m(ening)i(command,)f(Bash)g(do)s(es)f(not)h
+(prin)m(t)g(another)f(w)m(arning,)i(and)e(an)m(y)h(stopp)s(ed)150
+2251 y(jobs)c(are)h(terminated.)150 2520 y Fr(7.2)68
+b(Job)45 b(Con)l(trol)h(Builtins)150 2766 y Fs(bg)870
+2903 y(bg)h([)p Fj(jobspec)56 b Fs(...)o(])630 3040 y
+Ft(Resume)24 b(eac)m(h)h(susp)s(ended)d(job)i Fq(jobsp)s(ec)29
+b Ft(in)24 b(the)g(bac)m(kground,)h(as)g(if)f(it)h(had)e(b)s(een)g
+(started)630 3150 y(with)32 b(`)p Fs(&)p Ft('.)45 b(If)31
+b Fq(jobsp)s(ec)37 b Ft(is)32 b(not)g(supplied,)f(the)h(curren)m(t)g
+(job)f(is)h(used.)45 b(The)31 b(return)g(status)630 3259
+y(is)i(zero)g(unless)f(it)h(is)g(run)e(when)h(job)g(con)m(trol)i(is)f
+(not)g(enabled,)h(or,)f(when)f(run)f(with)h(job)630 3369
+y(con)m(trol)h(enabled,)g(an)m(y)f Fq(jobsp)s(ec)37 b
+Ft(w)m(as)32 b(not)g(found)f(or)g(sp)s(eci\014es)h(a)g(job)g(that)g(w)m
+(as)g(started)630 3478 y(without)e(job)g(con)m(trol.)150
+3643 y Fs(fg)870 3779 y(fg)47 b([)p Fj(jobspec)11 b Fs(])630
+3916 y Ft(Resume)43 b(the)g(job)g Fq(jobsp)s(ec)48 b
+Ft(in)43 b(the)g(foreground)g(and)f(mak)m(e)j(it)e(the)h(curren)m(t)f
+(job.)78 b(If)630 4026 y Fq(jobsp)s(ec)41 b Ft(is)c(not)f(supplied,)h
+(the)f(curren)m(t)h(job)f(is)g(used.)58 b(The)36 b(return)f(status)h
+(is)h(that)g(of)630 4136 y(the)d(command)g(placed)h(in)m(to)g(the)f
+(foreground,)g(or)g(non-zero)h(if)f(run)f(when)g(job)g(con)m(trol)630
+4245 y(is)i(disabled)g(or,)i(when)d(run)g(with)h(job)g(con)m(trol)h
+(enabled,)h Fq(jobsp)s(ec)j Ft(do)s(es)35 b(not)h(sp)s(ecify)f(a)630
+4355 y(v)-5 b(alid)31 b(job)f(or)g Fq(jobsp)s(ec)35 b
+Ft(sp)s(eci\014es)30 b(a)h(job)f(that)h(w)m(as)g(started)g(without)f
+(job)g(con)m(trol.)150 4519 y Fs(jobs)870 4656 y(jobs)47
+b([-lnprs])e([)p Fj(jobspec)11 b Fs(])870 4765 y(jobs)47
+b(-x)g Fj(command)56 b Fs([)p Fj(arguments)11 b Fs(])630
+4902 y Ft(The)30 b(\014rst)f(form)h(lists)h(the)g(activ)m(e)h(jobs.)41
+b(The)30 b(options)g(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
+5066 y Fs(-l)384 b Ft(List)31 b(pro)s(cess)f Fl(id)p
+Ft(s)g(in)g(addition)h(to)g(the)f(normal)h(information.)630
+5230 y Fs(-n)384 b Ft(Displa)m(y)26 b(information)f(only)h(ab)s(out)e
+(jobs)h(that)g(ha)m(v)m(e)i(c)m(hanged)e(status)h(since)1110
+5340 y(the)31 b(user)e(w)m(as)i(last)g(noti\014ed)f(of)h(their)f
+(status.)p eop end
+%%Page: 91 97
+TeXDict begin 91 96 bop 150 -116 a Ft(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2571 b(91)630 299 y Fs(-p)384 b
+Ft(List)31 b(only)f(the)h(pro)s(cess)f Fl(id)g Ft(of)h(the)f(job's)g
+(pro)s(cess)g(group)g(leader.)630 447 y Fs(-r)384 b Ft(Restrict)31
+b(output)f(to)i(running)c(jobs.)630 594 y Fs(-s)384 b
+Ft(Restrict)31 b(output)f(to)i(stopp)s(ed)d(jobs.)630
+742 y(If)23 b Fq(jobsp)s(ec)28 b Ft(is)c(giv)m(en,)i(output)d(is)h
+(restricted)g(to)g(information)g(ab)s(out)f(that)h(job.)39
+b(If)23 b Fq(jobsp)s(ec)630 852 y Ft(is)30 b(not)h(supplied,)e(the)i
+(status)g(of)f(all)h(jobs)f(is)h(listed.)630 980 y(If)g(the)g(`)p
+Fs(-x)p Ft(')g(option)h(is)f(supplied,)g Fs(jobs)f Ft(replaces)i(an)m
+(y)f Fq(jobsp)s(ec)37 b Ft(found)29 b(in)i Fq(command)k
+Ft(or)630 1090 y Fq(argumen)m(ts)41 b Ft(with)c(the)h(corresp)s(onding)
+e(pro)s(cess)h(group)f Fl(id)p Ft(,)k(and)c(executes)j
+Fq(command)p Ft(,)630 1199 y(passing)30 b(it)h Fq(argumen)m(t)r
+Ft(s,)g(returning)f(its)g(exit)i(status.)150 1347 y Fs(kill)870
+1476 y(kill)47 b([-s)g Fj(sigspec)11 b Fs(])45 b([-n)i
+Fj(signum)11 b Fs(])45 b([-)p Fj(sigspec)11 b Fs(])44
+b Fj(jobspec)57 b Fs(or)47 b Fj(pid)870 1585 y Fs(kill)g(-l)g([)p
+Fj(exit_status)11 b Fs(])630 1714 y Ft(Send)22 b(a)i(signal)g(sp)s
+(eci\014ed)f(b)m(y)g Fq(sigsp)s(ec)29 b Ft(or)24 b Fq(sign)m(um)f
+Ft(to)h(the)g(pro)s(cess)f(named)g(b)m(y)g(job)g(sp)s(eci\014-)630
+1824 y(cation)k Fq(jobsp)s(ec)j Ft(or)25 b(pro)s(cess)g
+Fl(id)h Fq(pid)p Ft(.)38 b Fq(sigsp)s(ec)31 b Ft(is)25
+b(either)h(a)g(case-insensitiv)m(e)i(signal)e(name)630
+1933 y(suc)m(h)k(as)h Fs(SIGINT)d Ft(\(with)j(or)f(without)h(the)f
+Fs(SIG)g Ft(pre\014x\))f(or)i(a)f(signal)h(n)m(um)m(b)s(er;)f
+Fq(sign)m(um)g Ft(is)630 2043 y(a)i(signal)g(n)m(um)m(b)s(er.)43
+b(If)31 b Fq(sigsp)s(ec)37 b Ft(and)31 b Fq(sign)m(um)g
+Ft(are)h(not)f(presen)m(t,)h Fs(SIGTERM)e Ft(is)h(used.)43
+b(The)630 2152 y(`)p Fs(-l)p Ft(')34 b(option)g(lists)h(the)f(signal)h
+(names.)51 b(If)33 b(an)m(y)i(argumen)m(ts)f(are)g(supplied)f(when)g(`)
+p Fs(-l)p Ft(')h(is)630 2262 y(giv)m(en,)e(the)g(names)e(of)i(the)f
+(signals)g(corresp)s(onding)f(to)i(the)f(argumen)m(ts)g(are)h(listed,)g
+(and)630 2372 y(the)c(return)f(status)h(is)g(zero.)41
+b Fq(exit)p 1796 2372 28 4 v 41 w(status)32 b Ft(is)c(a)g(n)m(um)m(b)s
+(er)f(sp)s(ecifying)g(a)i(signal)f(n)m(um)m(b)s(er)f(or)630
+2481 y(the)35 b(exit)h(status)f(of)g(a)g(pro)s(cess)g(terminated)g(b)m
+(y)g(a)g(signal.)55 b(The)34 b(return)g(status)h(is)g(zero)630
+2591 y(if)c(at)h(least)g(one)g(signal)f(w)m(as)h(successfully)f(sen)m
+(t,)h(or)f(non-zero)h(if)f(an)g(error)f(o)s(ccurs)h(or)g(an)630
+2700 y(in)m(v)-5 b(alid)31 b(option)g(is)f(encoun)m(tered.)150
+2848 y Fs(wait)870 2977 y(wait)47 b([)p Fj(jobspec)56
+b Fs(or)47 b Fj(pid)57 b Fs(...])630 3105 y Ft(W)-8 b(ait)28
+b(un)m(til)f(the)f(c)m(hild)h(pro)s(cess)f(sp)s(eci\014ed)g(b)m(y)g
+(eac)m(h)h(pro)s(cess)f Fl(id)h Fq(pid)i Ft(or)d(job)g(sp)s
+(eci\014cation)630 3215 y Fq(jobsp)s(ec)40 b Ft(exits)35
+b(and)f(return)g(the)g(exit)i(status)f(of)g(the)g(last)g(command)f(w)m
+(aited)i(for.)53 b(If)35 b(a)630 3324 y(job)g(sp)s(ec)f(is)h(giv)m(en,)
+i(all)f(pro)s(cesses)f(in)f(the)h(job)g(are)g(w)m(aited)h(for.)54
+b(If)35 b(no)f(argumen)m(ts)i(are)630 3434 y(giv)m(en,)d(all)f(curren)m
+(tly)f(activ)m(e)i(c)m(hild)f(pro)s(cesses)f(are)g(w)m(aited)h(for,)g
+(and)e(the)i(return)e(status)630 3544 y(is)h(zero.)44
+b(If)30 b(neither)h Fq(jobsp)s(ec)36 b Ft(nor)31 b Fq(pid)i
+Ft(sp)s(eci\014es)e(an)g(activ)m(e)i(c)m(hild)f(pro)s(cess)e(of)h(the)g
+(shell,)630 3653 y(the)g(return)e(status)i(is)f(127.)150
+3801 y Fs(disown)870 3930 y(disown)46 b([-ar])g([-h])h([)p
+Fj(jobspec)56 b Fs(...)o(])630 4058 y Ft(Without)32 b(options,)g(eac)m
+(h)h Fq(jobsp)s(ec)j Ft(is)c(remo)m(v)m(ed)g(from)f(the)h(table)g(of)g
+(activ)m(e)h(jobs.)44 b(If)31 b(the)630 4168 y(`)p Fs(-h)p
+Ft(')36 b(option)h(is)g(giv)m(en,)i(the)e(job)f(is)h(not)f(remo)m(v)m
+(ed)i(from)e(the)h(table,)i(but)d(is)g(mark)m(ed)h(so)630
+4277 y(that)d Fs(SIGHUP)d Ft(is)j(not)f(sen)m(t)h(to)g(the)f(job)g(if)g
+(the)h(shell)f(receiv)m(es)i(a)f Fs(SIGHUP)p Ft(.)47
+b(If)33 b Fq(jobsp)s(ec)38 b Ft(is)630 4387 y(not)32
+b(presen)m(t,)f(and)g(neither)h(the)f(`)p Fs(-a)p Ft(')g(nor)g(`)p
+Fs(-r)p Ft(')g(option)h(is)g(supplied,)e(the)i(curren)m(t)f(job)g(is)
+630 4497 y(used.)58 b(If)36 b(no)g Fq(jobsp)s(ec)41 b
+Ft(is)36 b(supplied,)h(the)g(`)p Fs(-a)p Ft(')f(option)h(means)f(to)h
+(remo)m(v)m(e)h(or)e(mark)g(all)630 4606 y(jobs;)28 b(the)f(`)p
+Fs(-r)p Ft(')g(option)g(without)g(a)g Fq(jobsp)s(ec)32
+b Ft(argumen)m(t)27 b(restricts)h(op)s(eration)f(to)h(running)630
+4716 y(jobs.)150 4863 y Fs(suspend)870 4992 y(suspend)46
+b([-f])630 5121 y Ft(Susp)s(end)31 b(the)i(execution)h(of)g(this)f
+(shell)g(un)m(til)h(it)g(receiv)m(es)h(a)e Fs(SIGCONT)f
+Ft(signal.)50 b(A)33 b(login)630 5230 y(shell)24 b(cannot)h(b)s(e)e
+(susp)s(ended;)h(the)g(`)p Fs(-f)p Ft(')g(option)g(can)h(b)s(e)e(used)g
+(to)i(o)m(v)m(erride)g(this)f(and)f(force)630 5340 y(the)31
+b(susp)s(ension.)p eop end
+%%Page: 92 98
+TeXDict begin 92 97 bop 150 -116 a Ft(92)2572 b(Bash)31
+b(Reference)g(Man)m(ual)275 299 y(When)f(job)f(con)m(trol)j(is)e(not)h
+(activ)m(e,)i(the)d Fs(kill)f Ft(and)h Fs(wait)f Ft(builtins)g(do)h
+(not)h(accept)h Fq(jobsp)s(ec)j Ft(argu-)150 408 y(men)m(ts.)41
+b(They)30 b(m)m(ust)g(b)s(e)g(supplied)f(pro)s(cess)h
+Fl(id)p Ft(s.)150 666 y Fr(7.3)68 b(Job)45 b(Con)l(trol)h(V)-11
+b(ariables)150 910 y Fs(auto_resume)630 1020 y Ft(This)31
+b(v)-5 b(ariable)32 b(con)m(trols)g(ho)m(w)g(the)f(shell)h(in)m
+(teracts)h(with)e(the)h(user)e(and)h(job)g(con)m(trol.)45
+b(If)630 1129 y(this)28 b(v)-5 b(ariable)30 b(exists)f(then)f(single)h
+(w)m(ord)f(simple)h(commands)f(without)g(redirections)i(are)630
+1239 y(treated)h(as)g(candidates)f(for)g(resumption)g(of)g(an)g
+(existing)h(job.)41 b(There)29 b(is)h(no)h(am)m(biguit)m(y)630
+1348 y(allo)m(w)m(ed;)f(if)d(there)g(is)g(more)g(than)f(one)h(job)g(b)s
+(eginning)f(with)g(the)h(string)g(t)m(yp)s(ed,)g(then)g(the)630
+1458 y(most)j(recen)m(tly)h(accessed)f(job)f(will)h(b)s(e)f(selected.)
+42 b(The)29 b(name)g(of)h(a)g(stopp)s(ed)e(job,)i(in)f(this)630
+1567 y(con)m(text,)h(is)e(the)g(command)g(line)g(used)f(to)h(start)g
+(it.)41 b(If)27 b(this)h(v)-5 b(ariable)28 b(is)g(set)g(to)h(the)e(v)-5
+b(alue)630 1677 y(`)p Fs(exact)p Ft(',)33 b(the)g(string)g(supplied)f
+(m)m(ust)h(matc)m(h)g(the)h(name)f(of)g(a)g(stopp)s(ed)f(job)h
+(exactly;)j(if)630 1787 y(set)29 b(to)h(`)p Fs(substring)p
+Ft(',)d(the)i(string)g(supplied)e(needs)i(to)g(matc)m(h)h(a)f
+(substring)f(of)h(the)g(name)630 1896 y(of)38 b(a)f(stopp)s(ed)g(job.)
+62 b(The)37 b(`)p Fs(substring)p Ft(')e(v)-5 b(alue)38
+b(pro)m(vides)f(functionalit)m(y)i(analogous)g(to)630
+2006 y(the)f(`)p Fs(\045?)p Ft(')f(job)h Fl(id)f Ft(\(see)i(Section)f
+(7.1)h([Job)f(Con)m(trol)g(Basics],)j(page)d(89\).)64
+b(If)37 b(set)h(to)h(an)m(y)630 2115 y(other)32 b(v)-5
+b(alue,)32 b(the)g(supplied)e(string)i(m)m(ust)f(b)s(e)g(a)h(pre\014x)f
+(of)h(a)g(stopp)s(ed)e(job's)i(name;)g(this)630 2225
+y(pro)m(vides)e(functionalit)m(y)i(analogous)g(to)f(the)g(`)p
+Fs(\045)p Ft(')f(job)g Fl(id)p Ft(.)p eop end
+%%Page: 93 99
+TeXDict begin 93 98 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(93)150 299 y Fo(8)80
+b(Command)54 b(Line)f(Editing)275 546 y Ft(This)39 b(c)m(hapter)h
+(describ)s(es)g(the)g(basic)g(features)g(of)h(the)f Fl(gnu)f
+Ft(command)h(line)g(editing)h(in)m(terface.)150 655 y(Command)25
+b(line)h(editing)g(is)g(pro)m(vided)f(b)m(y)h(the)g(Readline)g(library)
+-8 b(,)27 b(whic)m(h)f(is)g(used)f(b)m(y)g(sev)m(eral)i(di\013eren)m(t)
+150 765 y(programs,)46 b(including)c(Bash.)78 b(Command)42
+b(line)h(editing)h(is)f(enabled)f(b)m(y)h(default)g(when)f(using)g(an)
+150 874 y(in)m(teractiv)m(e)47 b(shell,)i(unless)44 b(the)h(`)p
+Fs(--noediting)p Ft(')d(option)j(is)g(supplied)e(at)j(shell)e(in)m(v)m
+(o)s(cation.)86 b(Line)150 984 y(editing)26 b(is)e(also)i(used)e(when)g
+(using)h(the)g(`)p Fs(-e)p Ft(')f(option)i(to)f(the)h
+Fs(read)d Ft(builtin)i(command)f(\(see)i(Section)g(4.2)150
+1094 y([Bash)38 b(Builtins],)j(page)d(41\).)65 b(By)38
+b(default,)i(the)e(line)g(editing)h(commands)e(are)i(similar)f(to)g
+(those)h(of)150 1203 y(emacs.)i(A)28 b(vi-st)m(yle)j(line)d(editing)h
+(in)m(terface)h(is)f(also)g(a)m(v)-5 b(ailable.)42 b(Line)29
+b(editing)g(can)f(b)s(e)g(enabled)g(at)i(an)m(y)150 1313
+y(time)g(using)f(the)g(`)p Fs(-o)h(emacs)p Ft(')f(or)g(`)p
+Fs(-o)h(vi)p Ft(')f(options)h(to)g(the)f Fs(set)g Ft(builtin)g(command)
+g(\(see)h(Section)g(4.3.1)150 1422 y([The)g(Set)h(Builtin],)g(page)g
+(51\),)h(or)e(disabled)g(using)g(the)h(`)p Fs(+o)f(emacs)p
+Ft(')f(or)h(`)p Fs(+o)g(vi)p Ft(')g(options)h(to)g Fs(set)p
+Ft(.)150 1690 y Fr(8.1)68 b(In)l(tro)t(duction)45 b(to)g(Line)h
+(Editing)275 1939 y Ft(The)29 b(follo)m(wing)j(paragraphs)e(describ)s
+(e)g(the)g(notation)i(used)d(to)j(represen)m(t)e(k)m(eystrok)m(es.)275
+2077 y(The)i(text)j Fj(C-k)d Ft(is)i(read)f(as)h(`Con)m(trol-K')g(and)f
+(describ)s(es)g(the)g(c)m(haracter)i(pro)s(duced)d(when)g(the)3663
+2074 y Fg(h)p 3687 2021 38 4 v 3687 2077 a Ff(k)p 3687
+2093 V 3720 2074 a Fg(i)150 2187 y Ft(k)m(ey)f(is)g(pressed)e(while)h
+(the)h(Con)m(trol)g(k)m(ey)g(is)g(depressed.)275 2326
+y(The)g(text)i Fj(M-k)e Ft(is)h(read)f(as)i(`Meta-K')g(and)f(describ)s
+(es)f(the)h(c)m(haracter)h(pro)s(duced)e(when)f(the)i(Meta)150
+2435 y(k)m(ey)d(\(if)g(y)m(ou)g(ha)m(v)m(e)g(one\))g(is)g(depressed,)f
+(and)f(the)1859 2432 y Fg(h)p 1883 2379 V 1883 2435 a
+Ff(k)p 1883 2450 V 1916 2432 a Fg(i)1974 2435 y Ft(k)m(ey)j(is)e
+(pressed.)39 b(The)28 b(Meta)i(k)m(ey)f(is)g(lab)s(eled)3558
+2432 y Fg(h)p 3582 2379 143 4 v 3582 2435 a Ff(AL)-6
+b(T)p 3582 2450 V 3720 2432 a Fg(i)150 2545 y Ft(on)26
+b(man)m(y)g(k)m(eyb)s(oards.)39 b(On)26 b(k)m(eyb)s(oards)g(with)g(t)m
+(w)m(o)h(k)m(eys)g(lab)s(eled)2425 2542 y Fg(h)p 2450
+2489 V 2450 2545 a Ff(AL)-6 b(T)p 2450 2560 V 2587 2542
+a Fg(i)2643 2545 y Ft(\(usually)27 b(to)g(either)f(side)g(of)h(the)150
+2654 y(space)32 b(bar\),)g(the)775 2651 y Fg(h)p 799
+2598 V 799 2654 a Ff(AL)-6 b(T)p 799 2670 V 937 2651
+a Fg(i)998 2654 y Ft(on)32 b(the)f(left)h(side)g(is)f(generally)i(set)e
+(to)i(w)m(ork)e(as)h(a)f(Meta)i(k)m(ey)-8 b(.)45 b(The)3393
+2651 y Fg(h)p 3417 2598 V 3417 2654 a Ff(AL)-6 b(T)p
+3417 2670 V 3555 2651 a Fg(i)3616 2654 y Ft(k)m(ey)150
+2764 y(on)33 b(the)h(righ)m(t)g(ma)m(y)g(also)g(b)s(e)f(con\014gured)f
+(to)i(w)m(ork)g(as)g(a)f(Meta)i(k)m(ey)f(or)g(ma)m(y)g(b)s(e)e
+(con\014gured)h(as)h(some)150 2873 y(other)d(mo)s(di\014er,)e(suc)m(h)h
+(as)h(a)g(Comp)s(ose)f(k)m(ey)h(for)f(t)m(yping)h(accen)m(ted)h(c)m
+(haracters.)275 3012 y(If)21 b(y)m(ou)h(do)g(not)g(ha)m(v)m(e)h(a)f
+(Meta)h(or)1388 3009 y Fg(h)p 1412 2956 V 1412 3012 a
+Ff(AL)-6 b(T)p 1412 3028 V 1550 3009 a Fg(i)1601 3012
+y Ft(k)m(ey)e(,)25 b(or)d(another)g(k)m(ey)h(w)m(orking)f(as)g(a)g
+(Meta)h(k)m(ey)-8 b(,)25 b(the)d(iden)m(tical)150 3122
+y(k)m(eystrok)m(e)i(can)f(b)s(e)f(generated)i(b)m(y)e(t)m(yping)1619
+3119 y Fg(h)p 1643 3066 139 4 v 1643 3122 a Ff(ESC)p
+1643 3137 V 1777 3119 a Fg(i)1829 3122 y Fm(\014rst)p
+Ft(,)j(and)d(then)g(t)m(yping)2678 3119 y Fg(h)p 2703
+3066 38 4 v 2703 3122 a Ff(k)p 2703 3137 V 2736 3119
+a Fg(i)2765 3122 y Ft(.)38 b(Either)23 b(pro)s(cess)f(is)g(kno)m(wn)150
+3231 y(as)31 b Fq(metafying)39 b Ft(the)850 3228 y Fg(h)p
+874 3175 V 874 3231 a Ff(k)p 874 3247 V 907 3228 a Fg(i)968
+3231 y Ft(k)m(ey)-8 b(.)275 3370 y(The)39 b(text)j Fj(M-C-k)d
+Ft(is)h(read)g(as)h(`Meta-Con)m(trol-k')j(and)39 b(describ)s(es)h(the)g
+(c)m(haracter)i(pro)s(duced)d(b)m(y)150 3480 y Fq(metafying)g
+Fj(C-k)p Ft(.)275 3618 y(In)d(addition,)j(sev)m(eral)f(k)m(eys)f(ha)m
+(v)m(e)h(their)f(o)m(wn)g(names.)60 b(Sp)s(eci\014cally)-8
+b(,)2768 3615 y Fg(h)p 2792 3562 146 4 v 2792 3618 a
+Ff(DEL)p 2792 3634 V 2934 3615 a Fg(i)2964 3618 y Ft(,)3028
+3615 y Fg(h)p 3052 3562 139 4 v 3052 3618 a Ff(ESC)p
+3052 3634 V 3186 3615 a Fg(i)3216 3618 y Ft(,)3279 3615
+y Fg(h)p 3303 3562 144 4 v 3303 3618 a Ff(LFD)p 3303
+3634 V 3443 3615 a Fg(i)3473 3618 y Ft(,)3537 3615 y
+Fg(h)p 3561 3562 139 4 v 3561 3618 a Ff(SPC)p 3561 3634
+V 3695 3615 a Fg(i)3725 3618 y Ft(,)150 3725 y Fg(h)p
+174 3672 151 4 v 174 3728 a Ff(RET)p 174 3743 V 321 3725
+a Fg(i)351 3728 y Ft(,)47 b(and)612 3725 y Fg(h)p 637
+3672 148 4 v 637 3728 a Ff(T)-6 b(AB)p 637 3743 V 780
+3725 a Fg(i)853 3728 y Ft(all)45 b(stand)e(for)g(themselv)m(es)i(when)d
+(seen)i(in)f(this)g(text,)48 b(or)43 b(in)g(an)h(init)f(\014le)h(\(see)
+150 3837 y(Section)37 b(8.3)g([Readline)g(Init)f(File],)j(page)e(96\).)
+59 b(If)36 b(y)m(our)g(k)m(eyb)s(oard)g(lac)m(ks)h(a)2897
+3834 y Fg(h)p 2921 3781 144 4 v 2921 3837 a Ff(LFD)p
+2921 3853 V 3061 3834 a Fg(i)3127 3837 y Ft(k)m(ey)-8
+b(,)39 b(t)m(yping)3604 3834 y Fg(h)p 3628 3781 97 4
+v 3628 3837 a Ff(C-j)p 3628 3853 V 3720 3834 a Fg(i)150
+3947 y Ft(will)30 b(pro)s(duce)e(the)i(desired)f(c)m(haracter.)42
+b(The)1748 3944 y Fg(h)p 1772 3891 151 4 v 1772 3947
+a Ff(RET)p 1772 3962 V 1919 3944 a Fg(i)1978 3947 y Ft(k)m(ey)30
+b(ma)m(y)g(b)s(e)f(lab)s(eled)2770 3944 y Fg(h)p 2794
+3891 217 4 v 2794 3947 a Ff(Return)p 2794 3962 V 3007
+3944 a Fg(i)3066 3947 y Ft(or)3176 3944 y Fg(h)p 3201
+3891 172 4 v 3201 3947 a Ff(En)n(ter)p 3201 3962 V 3368
+3944 a Fg(i)3427 3947 y Ft(on)h(some)150 4057 y(k)m(eyb)s(oards.)150
+4325 y Fr(8.2)68 b(Readline)47 b(In)l(teraction)275 4573
+y Ft(Often)24 b(during)g(an)h(in)m(teractiv)m(e)j(session)e(y)m(ou)f(t)
+m(yp)s(e)h(in)f(a)g(long)h(line)f(of)h(text,)h(only)f(to)f(notice)i
+(that)f(the)150 4682 y(\014rst)32 b(w)m(ord)g(on)g(the)g(line)h(is)g
+(missp)s(elled.)46 b(The)32 b(Readline)h(library)f(giv)m(es)h(y)m(ou)g
+(a)g(set)g(of)f(commands)g(for)150 4792 y(manipulating)e(the)g(text)h
+(as)f(y)m(ou)g(t)m(yp)s(e)g(it)g(in,)g(allo)m(wing)h(y)m(ou)f(to)h
+(just)e(\014x)g(y)m(our)h(t)m(yp)s(o,)g(and)g(not)g(forcing)150
+4902 y(y)m(ou)e(to)h(ret)m(yp)s(e)g(the)f(ma)5 b(jorit)m(y)29
+b(of)f(the)h(line.)40 b(Using)28 b(these)h(editing)g(commands,)f(y)m
+(ou)h(mo)m(v)m(e)g(the)g(cursor)150 5011 y(to)35 b(the)f(place)i(that)e
+(needs)g(correction,)j(and)d(delete)h(or)f(insert)h(the)f(text)h(of)g
+(the)f(corrections.)54 b(Then,)150 5121 y(when)30 b(y)m(ou)i(are)f
+(satis\014ed)g(with)g(the)g(line,)h(y)m(ou)g(simply)e(press)2320
+5118 y Fg(h)p 2344 5065 151 4 v 2344 5121 a Ff(RET)p
+2344 5136 V 2491 5118 a Fg(i)2520 5121 y Ft(.)43 b(Y)-8
+b(ou)32 b(do)f(not)g(ha)m(v)m(e)i(to)e(b)s(e)g(at)h(the)150
+5230 y(end)j(of)h(the)g(line)g(to)h(press)1126 5227 y
+Fg(h)p 1150 5174 V 1150 5230 a Ff(RET)p 1150 5246 V 1297
+5227 a Fg(i)1327 5230 y Ft(;)h(the)e(en)m(tire)h(line)f(is)g(accepted)h
+(regardless)f(of)g(the)g(lo)s(cation)i(of)e(the)150 5340
+y(cursor)30 b(within)g(the)g(line.)p eop end
+%%Page: 94 100
+TeXDict begin 94 99 bop 150 -116 a Ft(94)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fk(8.2.1)63 b(Readline)40
+b(Bare)h(Essen)m(tials)275 540 y Ft(In)22 b(order)g(to)i(en)m(ter)g(c)m
+(haracters)g(in)m(to)g(the)g(line,)h(simply)d(t)m(yp)s(e)i(them.)38
+b(The)22 b(t)m(yp)s(ed)h(c)m(haracter)i(app)s(ears)150
+650 y(where)32 b(the)h(cursor)e(w)m(as,)j(and)e(then)g(the)h(cursor)e
+(mo)m(v)m(es)j(one)f(space)g(to)g(the)g(righ)m(t.)47
+b(If)32 b(y)m(ou)h(mist)m(yp)s(e)g(a)150 759 y(c)m(haracter,)f(y)m(ou)f
+(can)g(use)f(y)m(our)g(erase)h(c)m(haracter)h(to)f(bac)m(k)g(up)f(and)f
+(delete)j(the)f(mist)m(yp)s(ed)e(c)m(haracter.)275 891
+y(Sometimes)i(y)m(ou)g(ma)m(y)h(mist)m(yp)s(e)e(a)i(c)m(haracter,)g
+(and)e(not)i(notice)g(the)f(error)f(un)m(til)h(y)m(ou)g(ha)m(v)m(e)h(t)
+m(yp)s(ed)150 1000 y(sev)m(eral)e(other)f(c)m(haracters.)42
+b(In)28 b(that)i(case,)g(y)m(ou)f(can)g(t)m(yp)s(e)h
+Fj(C-b)d Ft(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)i(and)150
+1110 y(then)f(correct)i(y)m(our)e(mistak)m(e.)42 b(Afterw)m(ards,)31
+b(y)m(ou)f(can)h(mo)m(v)m(e)h(the)e(cursor)g(to)h(the)g(righ)m(t)g
+(with)f Fj(C-f)p Ft(.)275 1242 y(When)i(y)m(ou)h(add)f(text)h(in)f(the)
+h(middle)f(of)h(a)g(line,)h(y)m(ou)e(will)h(notice)h(that)f(c)m
+(haracters)h(to)g(the)e(righ)m(t)150 1351 y(of)d(the)g(cursor)f(are)h
+(`pushed)e(o)m(v)m(er')j(to)g(mak)m(e)f(ro)s(om)g(for)f(the)h(text)h
+(that)f(y)m(ou)g(ha)m(v)m(e)h(inserted.)40 b(Lik)m(ewise,)150
+1461 y(when)d(y)m(ou)g(delete)i(text)g(b)s(ehind)c(the)j(cursor,)h(c)m
+(haracters)g(to)f(the)g(righ)m(t)g(of)g(the)g(cursor)e(are)i(`pulled)
+150 1570 y(bac)m(k')24 b(to)f(\014ll)g(in)f(the)h(blank)f(space)i
+(created)f(b)m(y)g(the)g(remo)m(v)-5 b(al)24 b(of)f(the)g(text.)39
+b(A)23 b(list)g(of)g(the)g(bare)f(essen)m(tials)150 1680
+y(for)30 b(editing)h(the)g(text)g(of)g(an)f(input)f(line)i(follo)m(ws.)
+150 1834 y Fj(C-b)336 b Ft(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m
+(haracter.)150 1987 y Fj(C-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(one)
+h(c)m(haracter.)150 2138 y Fg(h)p 174 2085 146 4 v 174
+2141 a Ff(DEL)p 174 2156 V 316 2138 a Fg(i)376 2141 y
+Ft(or)487 2138 y Fg(h)p 512 2085 317 4 v 512 2141 a Ff(Bac)n(kspace)p
+512 2156 V 824 2138 a Fg(i)630 2251 y Ft(Delete)i(the)d(c)m(haracter)i
+(to)f(the)g(left)g(of)f(the)h(cursor.)150 2404 y Fj(C-d)336
+b Ft(Delete)33 b(the)d(c)m(haracter)i(underneath)d(the)i(cursor.)150
+2558 y(Prin)m(ting)g(c)m(haracters)630 2668 y(Insert)f(the)g(c)m
+(haracter)i(in)m(to)g(the)e(line)h(at)g(the)g(cursor.)150
+2821 y Fj(C-_)e Ft(or)i Fj(C-x)e(C-u)630 2931 y Ft(Undo)k(the)h(last)g
+(editing)g(command.)50 b(Y)-8 b(ou)34 b(can)f(undo)g(all)h(the)f(w)m(a)
+m(y)i(bac)m(k)f(to)g(an)g(empt)m(y)630 3040 y(line.)150
+3194 y(\(Dep)s(ending)g(on)g(y)m(our)g(con\014guration,)h(the)1726
+3191 y Fg(h)p 1750 3138 V 1750 3194 a Ff(Bac)n(kspace)p
+1750 3209 V 2063 3191 a Fg(i)2127 3194 y Ft(k)m(ey)g(b)s(e)e(set)h(to)h
+(delete)g(the)f(c)m(haracter)i(to)f(the)150 3304 y(left)f(of)f(the)g
+(cursor)f(and)h(the)1192 3301 y Fg(h)p 1216 3248 146
+4 v 1216 3304 a Ff(DEL)p 1216 3319 V 1358 3301 a Fg(i)1421
+3304 y Ft(k)m(ey)g(set)h(to)g(delete)g(the)f(c)m(haracter)i(underneath)
+c(the)i(cursor,)h(lik)m(e)150 3413 y Fj(C-d)p Ft(,)c(rather)g(than)g
+(the)h(c)m(haracter)h(to)f(the)f(left)h(of)g(the)f(cursor.\))150
+3629 y Fk(8.2.2)63 b(Readline)40 b(Mo)m(v)m(emen)m(t)h(Commands)275
+3870 y Ft(The)25 b(ab)s(o)m(v)m(e)i(table)g(describ)s(es)f(the)g(most)h
+(basic)f(k)m(eystrok)m(es)i(that)f(y)m(ou)f(need)g(in)g(order)f(to)i
+(do)f(editing)150 3980 y(of)g(the)f(input)g(line.)39
+b(F)-8 b(or)27 b(y)m(our)e(con)m(v)m(enience,)k(man)m(y)c(other)h
+(commands)f(ha)m(v)m(e)i(b)s(een)e(added)g(in)g(addition)150
+4089 y(to)33 b Fj(C-b)p Ft(,)e Fj(C-f)p Ft(,)h Fj(C-d)p
+Ft(,)g(and)1043 4086 y Fg(h)p 1067 4033 V 1067 4089 a
+Ff(DEL)p 1067 4105 V 1209 4086 a Fg(i)1239 4089 y Ft(.)45
+b(Here)33 b(are)f(some)g(commands)g(for)g(mo)m(ving)h(more)f(rapidly)f
+(ab)s(out)h(the)150 4199 y(line.)150 4352 y Fj(C-a)336
+b Ft(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f(line.)150
+4506 y Fj(C-e)336 b Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h
+(line.)150 4660 y Fj(M-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m
+(ord,)f(where)g(a)h(w)m(ord)f(is)g(comp)s(osed)g(of)h(letters)h(and)d
+(digits.)150 4813 y Fj(M-b)336 b Ft(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a)
+g(w)m(ord.)150 4967 y Fj(C-l)336 b Ft(Clear)31 b(the)f(screen,)h
+(reprin)m(ting)f(the)h(curren)m(t)f(line)h(at)g(the)f(top.)275
+5121 y(Notice)c(ho)m(w)f Fj(C-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m
+(haracter,)j(while)d Fj(M-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h(w)m
+(ord.)39 b(It)24 b(is)h(a)g(lo)s(ose)150 5230 y(con)m(v)m(en)m(tion)32
+b(that)f(con)m(trol)g(k)m(eystrok)m(es)h(op)s(erate)e(on)g(c)m
+(haracters)h(while)f(meta)h(k)m(eystrok)m(es)h(op)s(erate)e(on)150
+5340 y(w)m(ords.)p eop end
+%%Page: 95 101
+TeXDict begin 95 100 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(95)150 299 y Fk(8.2.3)63
+b(Readline)40 b(Killing)i(Commands)275 566 y Fq(Killing)j
+Ft(text)39 b(means)e(to)h(delete)g(the)g(text)g(from)f(the)g(line,)j
+(but)d(to)h(sa)m(v)m(e)h(it)e(a)m(w)m(a)m(y)j(for)d(later)h(use,)150
+675 y(usually)c(b)m(y)g Fq(y)m(anking)42 b Ft(\(re-inserting\))35
+b(it)g(bac)m(k)g(in)m(to)g(the)f(line.)52 b(\(`Cut')35
+b(and)e(`paste')i(are)g(more)f(recen)m(t)150 785 y(jargon)d(for)f
+(`kill')h(and)f(`y)m(ank'.\))275 942 y(If)f(the)i(description)f(for)g
+(a)h(command)f(sa)m(ys)g(that)h(it)g(`kills')g(text,)h(then)e(y)m(ou)g
+(can)h(b)s(e)e(sure)h(that)h(y)m(ou)150 1052 y(can)g(get)g(the)g(text)g
+(bac)m(k)g(in)f(a)h(di\013eren)m(t)g(\(or)g(the)f(same\))h(place)h
+(later.)275 1209 y(When)23 b(y)m(ou)g(use)g(a)h(kill)g(command,)g(the)g
+(text)g(is)f(sa)m(v)m(ed)i(in)e(a)g Fq(kill-ring)p Ft(.)39
+b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h(consecutiv)m(e)150
+1318 y(kills)31 b(sa)m(v)m(e)i(all)f(of)f(the)g(killed)h(text)g
+(together,)g(so)g(that)f(when)f(y)m(ou)h(y)m(ank)h(it)f(bac)m(k,)h(y)m
+(ou)g(get)g(it)f(all.)43 b(The)150 1428 y(kill)33 b(ring)f(is)g(not)h
+(line)g(sp)s(eci\014c;)g(the)g(text)g(that)g(y)m(ou)g(killed)f(on)h(a)f
+(previously)g(t)m(yp)s(ed)h(line)f(is)h(a)m(v)-5 b(ailable)150
+1537 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)m(k)g(later,)h(when)d(y)m(ou)
+i(are)g(t)m(yping)f(another)h(line.)275 1695 y(Here)f(is)h(the)f(list)h
+(of)g(commands)f(for)g(killing)h(text.)150 1888 y Fj(C-k)336
+b Ft(Kill)31 b(the)f(text)i(from)e(the)g(curren)m(t)g(cursor)g(p)s
+(osition)h(to)g(the)f(end)g(of)g(the)h(line.)150 2070
+y Fj(M-d)336 b Ft(Kill)27 b(from)f(the)g(cursor)g(to)h(the)f(end)g(of)h
+(the)f(curren)m(t)g(w)m(ord,)h(or,)h(if)e(b)s(et)m(w)m(een)h(w)m(ords,)
+g(to)g(the)630 2180 y(end)j(of)g(the)h(next)f(w)m(ord.)41
+b(W)-8 b(ord)30 b(b)s(oundaries)f(are)i(the)g(same)f(as)h(those)g(used)
+f(b)m(y)g Fj(M-f)p Ft(.)150 2362 y Fj(M-)246 2359 y Fg(h)p
+270 2306 146 4 v 270 2362 a Ff(DEL)p 270 2377 V 411 2359
+a Fg(i)630 2362 y Ft(Kill)h(from)f(the)h(cursor)f(the)g(start)h(of)g
+(the)g(curren)m(t)f(w)m(ord,)h(or,)f(if)h(b)s(et)m(w)m(een)g(w)m(ords,)
+f(to)i(the)630 2471 y(start)39 b(of)f(the)h(previous)f(w)m(ord.)64
+b(W)-8 b(ord)39 b(b)s(oundaries)e(are)i(the)f(same)h(as)g(those)f(used)
+g(b)m(y)630 2581 y Fj(M-b)p Ft(.)150 2763 y Fj(C-w)336
+b Ft(Kill)32 b(from)e(the)i(cursor)e(to)i(the)g(previous)e(whitespace.)
+44 b(This)31 b(is)g(di\013eren)m(t)h(than)f Fj(M-)3555
+2760 y Fg(h)p 3578 2707 V 3578 2763 a Ff(DEL)p 3578 2778
+V 3720 2760 a Fg(i)630 2872 y Ft(b)s(ecause)f(the)h(w)m(ord)f(b)s
+(oundaries)f(di\013er.)275 3066 y(Here)42 b(is)f(ho)m(w)h(to)g
+Fq(y)m(ank)47 b Ft(the)42 b(text)g(bac)m(k)h(in)m(to)f(the)g(line.)74
+b(Y)-8 b(anking)43 b(means)e(to)h(cop)m(y)h(the)e(most-)150
+3175 y(recen)m(tly-killed)33 b(text)e(from)f(the)g(kill)i(bu\013er.)150
+3369 y Fj(C-y)336 b Ft(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)h
+(killed)f(text)g(bac)m(k)g(in)m(to)h(the)e(bu\013er)g(at)h(the)f
+(cursor.)150 3551 y Fj(M-y)336 b Ft(Rotate)36 b(the)f(kill-ring,)i(and)
+d(y)m(ank)h(the)f(new)g(top.)54 b(Y)-8 b(ou)35 b(can)g(only)f(do)h
+(this)f(if)h(the)g(prior)630 3660 y(command)30 b(is)h
+Fj(C-y)e Ft(or)h Fj(M-y)p Ft(.)150 3930 y Fk(8.2.4)63
+b(Readline)40 b(Argumen)m(ts)275 4197 y Ft(Y)-8 b(ou)29
+b(can)h(pass)f(n)m(umeric)g(argumen)m(ts)g(to)h(Readline)g(commands.)40
+b(Sometimes)30 b(the)f(argumen)m(t)h(acts)150 4306 y(as)40
+b(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)f(it)h(is)f(the)g
+Fm(sign)47 b Ft(of)41 b(the)f(argumen)m(t)g(that)h(is)f(signi\014can)m
+(t.)71 b(If)40 b(y)m(ou)150 4416 y(pass)33 b(a)h(negativ)m(e)i(argumen)
+m(t)e(to)g(a)g(command)f(whic)m(h)g(normally)h(acts)g(in)f(a)h(forw)m
+(ard)f(direction,)i(that)150 4525 y(command)g(will)h(act)g(in)f(a)h
+(bac)m(kw)m(ard)f(direction.)57 b(F)-8 b(or)36 b(example,)h(to)f(kill)g
+(text)g(bac)m(k)g(to)g(the)g(start)g(of)150 4635 y(the)31
+b(line,)g(y)m(ou)f(migh)m(t)h(t)m(yp)s(e)g(`)p Fs(M--)f(C-k)p
+Ft('.)275 4792 y(The)d(general)i(w)m(a)m(y)h(to)e(pass)g(n)m(umeric)g
+(argumen)m(ts)h(to)g(a)f(command)g(is)g(to)h(t)m(yp)s(e)f(meta)i
+(digits)e(b)s(efore)150 4902 y(the)j(command.)42 b(If)30
+b(the)h(\014rst)f(`digit')i(t)m(yp)s(ed)f(is)g(a)g(min)m(us)f(sign)h
+(\(`)p Fs(-)p Ft('\),)h(then)f(the)g(sign)f(of)h(the)g(argumen)m(t)150
+5011 y(will)39 b(b)s(e)e(negativ)m(e.)66 b(Once)38 b(y)m(ou)h(ha)m(v)m
+(e)g(t)m(yp)s(ed)f(one)h(meta)g(digit)g(to)f(get)i(the)e(argumen)m(t)h
+(started,)i(y)m(ou)150 5121 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)f
+(of)h(the)g(digits,)h(and)f(then)f(the)h(command.)40
+b(F)-8 b(or)30 b(example,)g(to)f(giv)m(e)i(the)e Fj(C-d)150
+5230 y Ft(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)f
+(t)m(yp)s(e)h(`)p Fs(M-1)29 b(0)h(C-d)p Ft(',)39 b(whic)m(h)e(will)h
+(delete)h(the)e(next)h(ten)150 5340 y(c)m(haracters)32
+b(on)e(the)h(input)e(line.)p eop end
+%%Page: 96 102
+TeXDict begin 96 101 bop 150 -116 a Ft(96)2572 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fk(8.2.5)63 b(Searc)m(hing)40
+b(for)i(Commands)g(in)f(the)g(History)275 540 y Ft(Readline)23
+b(pro)m(vides)g(commands)f(for)h(searc)m(hing)h(through)e(the)h
+(command)g(history)f(\(see)i(Section)g(9.1)150 649 y([Bash)37
+b(History)h(F)-8 b(acilities],)42 b(page)37 b(121\))i(for)d(lines)h
+(con)m(taining)i(a)e(sp)s(eci\014ed)f(string.)60 b(There)36
+b(are)i(t)m(w)m(o)150 759 y(searc)m(h)31 b(mo)s(des:)40
+b Fq(incremen)m(tal)35 b Ft(and)30 b Fq(non-incremen)m(tal)p
+Ft(.)275 890 y(Incremen)m(tal)c(searc)m(hes)h(b)s(egin)e(b)s(efore)g
+(the)h(user)f(has)h(\014nished)e(t)m(yping)i(the)g(searc)m(h)g(string.)
+39 b(As)26 b(eac)m(h)150 1000 y(c)m(haracter)37 b(of)e(the)h(searc)m(h)
+g(string)f(is)h(t)m(yp)s(ed,)g(Readline)g(displa)m(ys)g(the)f(next)h
+(en)m(try)g(from)e(the)i(history)150 1109 y(matc)m(hing)25
+b(the)f(string)g(t)m(yp)s(ed)g(so)g(far.)39 b(An)23 b(incremen)m(tal)j
+(searc)m(h)e(requires)g(only)g(as)g(man)m(y)g(c)m(haracters)i(as)150
+1219 y(needed)i(to)i(\014nd)d(the)i(desired)f(history)h(en)m(try)-8
+b(.)41 b(T)-8 b(o)29 b(searc)m(h)h(bac)m(kw)m(ard)f(in)f(the)h(history)
+g(for)f(a)i(particular)150 1329 y(string,)g(t)m(yp)s(e)f
+Fj(C-r)p Ft(.)40 b(T)m(yping)29 b Fj(C-s)g Ft(searc)m(hes)h(forw)m(ard)
+f(through)g(the)g(history)-8 b(.)41 b(The)29 b(c)m(haracters)i(presen)m
+(t)150 1438 y(in)38 b(the)g(v)-5 b(alue)38 b(of)g(the)g
+Fs(isearch-terminators)33 b Ft(v)-5 b(ariable)39 b(are)f(used)f(to)i
+(terminate)g(an)f(incremen)m(tal)150 1548 y(searc)m(h.)63
+b(If)38 b(that)g(v)-5 b(ariable)38 b(has)g(not)g(b)s(een)f(assigned)h
+(a)g(v)-5 b(alue,)40 b(the)2578 1545 y Fg(h)p 2602 1492
+139 4 v 2602 1548 a Ff(ESC)p 2602 1563 V 2736 1545 a
+Fg(i)2804 1548 y Ft(and)d Fj(C-J)f Ft(c)m(haracters)k(will)150
+1657 y(terminate)j(an)g(incremen)m(tal)g(searc)m(h.)78
+b Fj(C-g)41 b Ft(will)i(ab)s(ort)f(an)g(incremen)m(tal)i(searc)m(h)f
+(and)f(restore)h(the)150 1767 y(original)30 b(line.)41
+b(When)28 b(the)h(searc)m(h)h(is)f(terminated,)h(the)f(history)g(en)m
+(try)g(con)m(taining)h(the)f(searc)m(h)h(string)150 1877
+y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 2008 y(T)-8
+b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e(the)h
+(history)g(list,)h(t)m(yp)s(e)g Fj(C-r)e Ft(or)h Fj(C-s)f
+Ft(as)h(appropriate.)43 b(This)150 2117 y(will)26 b(searc)m(h)h(bac)m
+(kw)m(ard)g(or)f(forw)m(ard)g(in)f(the)i(history)f(for)g(the)g(next)g
+(en)m(try)h(matc)m(hing)g(the)f(searc)m(h)h(string)150
+2227 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i
+(sequence)f(b)s(ound)e(to)i(a)g(Readline)h(command)e(will)h(terminate)h
+(the)150 2337 y(searc)m(h)22 b(and)e(execute)j(that)e(command.)38
+b(F)-8 b(or)22 b(instance,)h(a)2127 2334 y Fg(h)p 2151
+2281 151 4 v 2151 2337 a Ff(RET)p 2151 2352 V 2298 2334
+a Fg(i)2349 2337 y Ft(will)e(terminate)h(the)f(searc)m(h)h(and)e
+(accept)150 2446 y(the)30 b(line,)g(thereb)m(y)f(executing)i(the)e
+(command)g(from)g(the)h(history)f(list.)41 b(A)29 b(mo)m(v)m(emen)m(t)j
+(command)d(will)150 2556 y(terminate)i(the)g(searc)m(h,)g(mak)m(e)h
+(the)e(last)h(line)g(found)e(the)i(curren)m(t)f(line,)h(and)f(b)s(egin)
+g(editing.)275 2687 y(Readline)35 b(remem)m(b)s(ers)f(the)h(last)h
+(incremen)m(tal)g(searc)m(h)f(string.)54 b(If)34 b(t)m(w)m(o)j
+Fj(C-r)p Ft(s)c(are)i(t)m(yp)s(ed)g(without)150 2797
+y(an)m(y)i(in)m(terv)m(ening)g(c)m(haracters)h(de\014ning)e(a)h(new)f
+(searc)m(h)h(string,)h(an)m(y)f(remem)m(b)s(ered)e(searc)m(h)i(string)g
+(is)150 2906 y(used.)275 3037 y(Non-incremen)m(tal)48
+b(searc)m(hes)g(read)e(the)h(en)m(tire)h(searc)m(h)f(string)g(b)s
+(efore)f(starting)h(to)h(searc)m(h)f(for)150 3147 y(matc)m(hing)d
+(history)e(lines.)78 b(The)42 b(searc)m(h)h(string)g(ma)m(y)g(b)s(e)f
+(t)m(yp)s(ed)g(b)m(y)g(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150
+3257 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150
+3504 y Fr(8.3)68 b(Readline)47 b(Init)e(File)275 3745
+y Ft(Although)g(the)g(Readline)h(library)e(comes)i(with)f(a)h(set)f(of)
+g(Emacs-lik)m(e)i(k)m(eybindings)e(installed)150 3855
+y(b)m(y)d(default,)i(it)f(is)e(p)s(ossible)g(to)i(use)e(a)h(di\013eren)
+m(t)g(set)g(of)g(k)m(eybindings.)74 b(An)m(y)42 b(user)f(can)h
+(customize)150 3964 y(programs)32 b(that)h(use)f(Readline)h(b)m(y)g
+(putting)f(commands)g(in)g(an)g Fq(inputrc)37 b Ft(\014le,)d(con)m(v)m
+(en)m(tionally)h(in)d(his)150 4074 y(home)d(directory)-8
+b(.)41 b(The)28 b(name)g(of)h(this)g(\014le)f(is)h(tak)m(en)h(from)e
+(the)h(v)-5 b(alue)29 b(of)g(the)f(shell)h(v)-5 b(ariable)30
+b Fs(INPUTRC)p Ft(.)150 4184 y(If)k(that)g(v)-5 b(ariable)35
+b(is)g(unset,)g(the)f(default)g(is)g(`)p Fs(~/.inputrc)p
+Ft('.)50 b(If)34 b(that)h(\014le)f(do)s(es)g(not)g(exist)h(or)f(cannot)
+150 4293 y(b)s(e)c(read,)g(the)h(ultimate)g(default)g(is)f(`)p
+Fs(/etc/inputrc)p Ft('.)275 4425 y(When)f(a)h(program)f(whic)m(h)h
+(uses)f(the)h(Readline)g(library)f(starts)h(up,)f(the)h(init)g(\014le)f
+(is)h(read,)g(and)f(the)150 4534 y(k)m(ey)i(bindings)e(are)i(set.)275
+4665 y(In)26 b(addition,)i(the)f Fs(C-x)i(C-r)d Ft(command)h(re-reads)g
+(this)f(init)h(\014le,)h(th)m(us)f(incorp)s(orating)g(an)m(y)g(c)m
+(hanges)150 4775 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g
+(it.)150 4990 y Fk(8.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)275
+5230 y Ft(There)33 b(are)h(only)g(a)g(few)f(basic)h(constructs)g(allo)m
+(w)m(ed)h(in)f(the)g(Readline)g(init)g(\014le.)51 b(Blank)34
+b(lines)g(are)150 5340 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
+(a)g(`)p Fs(#)p Ft(')g(are)h(commen)m(ts.)73 b(Lines)41
+b(b)s(eginning)f(with)g(a)i(`)p Fs($)p Ft(')f(indicate)p
+eop end
+%%Page: 97 103
+TeXDict begin 97 102 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(97)150 299 y(conditional)39
+b(constructs)f(\(see)g(Section)h(8.3.2)g([Conditional)g(Init)e
+(Constructs],)j(page)e(102\).)64 b(Other)150 408 y(lines)31
+b(denote)g(v)-5 b(ariable)31 b(settings)g(and)f(k)m(ey)h(bindings.)150
+571 y(V)-8 b(ariable)32 b(Settings)630 681 y(Y)-8 b(ou)41
+b(can)g(mo)s(dify)e(the)i(run-time)f(b)s(eha)m(vior)g(of)h(Readline)g
+(b)m(y)f(altering)h(the)g(v)-5 b(alues)41 b(of)630 790
+y(v)-5 b(ariables)34 b(in)f(Readline)i(using)e(the)g
+Fs(set)g Ft(command)g(within)g(the)h(init)g(\014le.)50
+b(The)33 b(syn)m(tax)630 900 y(is)d(simple:)870 1036
+y Fs(set)47 b Fj(variable)56 b(value)630 1171 y Ft(Here,)29
+b(for)e(example,)h(is)g(ho)m(w)f(to)h(c)m(hange)g(from)f(the)g(default)
+h(Emacs-lik)m(e)h(k)m(ey)f(binding)e(to)630 1281 y(use)k
+Fs(vi)g Ft(line)h(editing)g(commands:)870 1417 y Fs(set)47
+b(editing-mode)d(vi)630 1552 y Ft(V)-8 b(ariable)36 b(names)f(and)g(v)
+-5 b(alues,)36 b(where)f(appropriate,)h(are)g(recognized)g(without)f
+(regard)630 1662 y(to)c(case.)42 b(Unrecognized)31 b(v)-5
+b(ariable)31 b(names)g(are)f(ignored.)630 1797 y(Bo)s(olean)c(v)-5
+b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f(set)i(to)g(on)f(or)g
+(o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)g(v)-5
+b(alue)26 b(is)630 1907 y(n)m(ull)e(or)g(empt)m(y)-8
+b(,)27 b Fq(on)d Ft(\(case-insensitiv)m(e\),)29 b(or)24
+b(1.)39 b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v)
+-5 b(ariable)630 2017 y(b)s(eing)30 b(set)h(to)g(o\013.)630
+2152 y(The)37 b Fs(bind)30 b(-V)37 b Ft(command)g(lists)i(the)f(curren)
+m(t)f(Readline)i(v)-5 b(ariable)38 b(names)g(and)f(v)-5
+b(alues.)630 2262 y(See)31 b(Section)g(4.2)g([Bash)g(Builtins],)g(page)
+g(41.)630 2397 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g
+(is)g(c)m(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5
+b(ariables.)630 2559 y Fs(bell-style)1110 2669 y Ft(Con)m(trols)44
+b(what)g(happ)s(ens)e(when)h(Readline)i(w)m(an)m(ts)f(to)h(ring)e(the)h
+(termi-)1110 2778 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p
+Fs(none)p Ft(',)g(Readline)g(nev)m(er)g(rings)e(the)i(b)s(ell.)61
+b(If)36 b(set)i(to)1110 2888 y(`)p Fs(visible)p Ft(',)32
+b(Readline)i(uses)f(a)g(visible)g(b)s(ell)g(if)g(one)g(is)g(a)m(v)-5
+b(ailable.)51 b(If)33 b(set)g(to)1110 2997 y(`)p Fs(audible)p
+Ft(')j(\(the)i(default\),)i(Readline)e(attempts)g(to)h(ring)e(the)g
+(terminal's)1110 3107 y(b)s(ell.)630 3269 y Fs(bind-tty-special-chars)
+1110 3378 y Ft(If)45 b(set)h(to)f(`)p Fs(on)p Ft(',)50
+b(Readline)45 b(attempts)i(to)f(bind)d(the)j(con)m(trol)g(c)m
+(haracters)1110 3488 y(treated)36 b(sp)s(ecially)h(b)m(y)e(the)h(k)m
+(ernel's)g(terminal)g(driv)m(er)f(to)h(their)f(Readline)1110
+3597 y(equiv)-5 b(alen)m(ts.)630 3759 y Fs(comment-begin)1110
+3869 y Ft(The)29 b(string)g(to)h(insert)f(at)h(the)f(b)s(eginning)g(of)
+g(the)h(line)f(when)f(the)i Fs(insert-)1110 3978 y(comment)e
+Ft(command)j(is)f(executed.)42 b(The)29 b(default)i(v)-5
+b(alue)31 b(is)f Fs("#")p Ft(.)630 4140 y Fs(completion-ignore-case)
+1110 4250 y Ft(If)d(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(p)s
+(erforms)e(\014lename)h(matc)m(hing)i(and)e(completion)1110
+4359 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)40 b(The)30
+b(default)h(v)-5 b(alue)30 b(is)h(`)p Fs(off)p Ft('.)630
+4521 y Fs(completion-prefix-displa)o(y-le)o(ngth)1110
+4630 y Ft(The)g(length)g(in)g(c)m(haracters)i(of)f(the)f(common)h
+(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110 4740
+y(completions)g(that)f(is)g(displa)m(y)m(ed)g(without)g(mo)s
+(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 4850
+y(v)-5 b(alue)26 b(greater)h(than)e(zero,)j(common)e(pre\014xes)e
+(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 4959
+y(replaced)k(with)f(an)g(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible)
+f(completions.)630 5121 y Fs(completion-query-items)1110
+5230 y Ft(The)c(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h
+(that)g(determines)f(when)f(the)i(user)1110 5340 y(is)i(ask)m(ed)h
+(whether)f(the)h(list)g(of)f(p)s(ossibilities)h(should)e(b)s(e)h
+(displa)m(y)m(ed.)41 b(If)29 b(the)p eop end
+%%Page: 98 104
+TeXDict begin 98 103 bop 150 -116 a Ft(98)2572 b(Bash)31
+b(Reference)g(Man)m(ual)1110 299 y(n)m(um)m(b)s(er)26
+b(of)h(p)s(ossible)f(completions)i(is)f(greater)h(than)e(this)h(v)-5
+b(alue,)28 b(Readline)1110 408 y(will)f(ask)g(the)f(user)g(whether)g
+(or)g(not)h(he)f(wishes)g(to)i(view)e(them;)i(otherwise,)1110
+518 y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5
+b(ariable)25 b(m)m(ust)g(b)s(e)e(set)i(to)g(an)g(in)m(teger)g(v)-5
+b(alue)1110 628 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
+b(A)24 b(negativ)m(e)j(v)-5 b(alue)26 b(means)e(Readline)i(should)1110
+737 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
+Fs(100)p Ft(.)630 883 y Fs(convert-meta)1110 993 y Ft(If)22
+b(set)g(to)h(`)p Fs(on)p Ft(',)h(Readline)f(will)f(con)m(v)m(ert)i(c)m
+(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110
+1103 y(to)g(an)f Fl(asci)r(i)g Ft(k)m(ey)h(sequence)g(b)m(y)f
+(stripping)f(the)i(eigh)m(th)g(bit)f(and)g(pre\014xing)f(an)1110
+1209 y Fg(h)p 1134 1156 139 4 v 1134 1212 a Ff(ESC)p
+1134 1227 V 1268 1209 a Fg(i)1332 1212 y Ft(c)m(haracter,)36
+b(con)m(v)m(erting)g(them)e(to)g(a)h(meta-pre\014xed)f(k)m(ey)g
+(sequence.)1110 1322 y(The)c(default)g(v)-5 b(alue)31
+b(is)g(`)p Fs(on)p Ft('.)630 1468 y Fs(disable-completion)1110
+1577 y Ft(If)36 b(set)h(to)h(`)p Fs(On)p Ft(',)g(Readline)f(will)g
+(inhibit)f(w)m(ord)h(completion.)60 b(Completion)1110
+1687 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g
+(line)f(as)g(if)g(they)h(had)e(b)s(een)g(mapp)s(ed)1110
+1797 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)630 1943 y Fs(editing-mode)1110 2052 y
+Ft(The)d Fs(editing-mode)e Ft(v)-5 b(ariable)29 b(con)m(trols)h(whic)m
+(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 2162 y(ings)25
+b(is)g(used.)38 b(By)26 b(default,)g(Readline)g(starts)f(up)f(in)h
+(Emacs)g(editing)h(mo)s(de,)1110 2271 y(where)j(the)g(k)m(eystrok)m(es)
+i(are)e(most)h(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5
+b(ariable)30 b(can)1110 2381 y(b)s(e)g(set)h(to)g(either)g(`)p
+Fs(emacs)p Ft(')e(or)h(`)p Fs(vi)p Ft('.)630 2527 y Fs(enable-keypad)
+1110 2637 y Ft(When)23 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f
+(will)g(try)f(to)h(enable)g(the)f(application)i(k)m(eypad)1110
+2746 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f
+(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 2856 y(The)j(default)g
+(is)h(`)p Fs(off)p Ft('.)630 3002 y Fs(expand-tilde)1110
+3112 y Ft(If)c(set)h(to)h(`)p Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f
+(p)s(erformed)f(when)h(Readline)h(attempts)1110 3221
+y(w)m(ord)i(completion.)42 b(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)630 3367 y Fs(history-preserve-point)1110
+3477 y Ft(If)41 b(set)h(to)h(`)p Fs(on)p Ft(',)i(the)c(history)h(co)s
+(de)g(attempts)h(to)f(place)h(the)f(p)s(oin)m(t)f(\(the)1110
+3587 y(curren)m(t)35 b(cursor)g(p)s(osition\))g(at)h(the)g(same)f(lo)s
+(cation)i(on)e(eac)m(h)h(history)g(line)1110 3696 y(retriev)m(ed)h
+(with)f Fs(previous-history)c Ft(or)37 b Fs(next-history)p
+Ft(.)55 b(The)36 b(default)1110 3806 y(is)30 b(`)p Fs(off)p
+Ft('.)630 3952 y Fs(history-size)1110 4061 y Ft(Set)39
+b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g(en)m(tries)h(sa)m
+(v)m(ed)g(in)f(the)g(history)1110 4171 y(list.)53 b(If)34
+b(set)h(to)g(zero,)i(the)d(n)m(um)m(b)s(er)g(of)g(en)m(tries)h(in)f
+(the)h(history)f(list)h(is)g(not)1110 4281 y(limited.)630
+4427 y Fs(horizontal-scroll-mode)1110 4536 y Ft(This)g(v)-5
+b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)p
+Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36
+b(it)g(to)h(`)p Fs(on)p Ft(')1110 4646 y(means)26 b(that)h(the)f(text)h
+(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
+(tally)1110 4755 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
+(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 4865
+y(screen,)27 b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g
+(line.)39 b(By)27 b(default,)g(this)1110 4975 y(v)-5
+b(ariable)31 b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630
+5121 y Fs(input-meta)1110 5230 y Ft(If)f(set)g(to)h(`)p
+Fs(on)p Ft(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
+i(will)f(not)h(clear)1110 5340 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
+(c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)p
+eop end
+%%Page: 99 105
+TeXDict begin 99 104 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(99)1110 299 y(terminal)40
+b(claims)h(it)g(can)f(supp)s(ort.)68 b(The)39 b(default)h(v)-5
+b(alue)40 b(is)g(`)p Fs(off)p Ft('.)69 b(The)1110 408
+y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m(ym)g(for)g(this)h(v)-5
+b(ariable.)630 579 y Fs(isearch-terminators)1110 689
+y Ft(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e(terminate)j
+(an)f(incremen)m(tal)1110 798 y(searc)m(h)25 b(without)g(subsequen)m
+(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g(command)1110
+908 y(\(see)42 b(Section)f(8.2.5)i([Searc)m(hing],)i(page)c(96\).)73
+b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110 1017
+y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m(haracters)
+2494 1014 y Fg(h)p 2518 961 139 4 v 2518 1017 a Ff(ESC)p
+2518 1033 V 2652 1014 a Fg(i)2713 1017 y Ft(and)f Fj(C-J)g
+Ft(will)h(terminate)g(an)1110 1127 y(incremen)m(tal)g(searc)m(h.)630
+1297 y Fs(keymap)192 b Ft(Sets)39 b(Readline's)g(idea)h(of)f(the)g
+(curren)m(t)f(k)m(eymap)h(for)g(k)m(ey)g(binding)f(com-)1110
+1407 y(mands.)81 b(Acceptable)47 b Fs(keymap)42 b Ft(names)i(are)h
+Fs(emacs)p Ft(,)i Fs(emacs-standard)p Ft(,)1110 1517
+y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p
+Ft(,)j Fs(vi-move)p Ft(,)f Fs(vi-command)p Ft(,)f(and)1110
+1626 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5
+b(alen)m(t)41 b(to)e Fs(vi-command)p Ft(;)i Fs(emacs)c
+Ft(is)i(equiv)-5 b(alen)m(t)1110 1736 y(to)33 b Fs(emacs-standard)p
+Ft(.)41 b(The)31 b(default)h(v)-5 b(alue)32 b(is)g Fs(emacs)p
+Ft(.)44 b(The)31 b(v)-5 b(alue)33 b(of)f(the)1110 1845
+y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31 b(also)h(a\013ects)f(the)g
+(default)f(k)m(eymap.)630 2016 y Fs(mark-directories)1110
+2125 y Ft(If)38 b(set)g(to)h(`)p Fs(on)p Ft(',)i(completed)e(directory)
+f(names)g(ha)m(v)m(e)i(a)e(slash)g(app)s(ended.)1110
+2235 y(The)30 b(default)g(is)h(`)p Fs(on)p Ft('.)630
+2405 y Fs(mark-modified-lines)1110 2515 y Ft(This)k(v)-5
+b(ariable,)38 b(when)d(set)h(to)h(`)p Fs(on)p Ft(',)g(causes)g
+(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 2625 y(terisk)f(\(`)p
+Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g(lines)g(whic)m(h)f
+(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 2734 y(This)d(v)-5
+b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g(default.)630
+2905 y Fs(mark-symlinked-directori)o(es)1110 3014 y Ft(If)44
+b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)e(names)f(whic)m(h)f(are)h
+(sym)m(b)s(olic)g(links)g(to)g(di-)1110 3124 y(rectories)j(ha)m(v)m(e)f
+(a)g(slash)f(app)s(ended)e(\(sub)5 b(ject)47 b(to)g(the)f(v)-5
+b(alue)47 b(of)f Fs(mark-)1110 3233 y(directories)p Ft(\).)38
+b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)630 3404
+y Fs(match-hidden-files)1110 3513 y Ft(This)21 b(v)-5
+b(ariable,)25 b(when)d(set)g(to)h(`)p Fs(on)p Ft(',)h(causes)f
+(Readline)g(to)g(matc)m(h)g(\014les)f(whose)1110 3623
+y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p Ft(')g(\(hidden)f
+(\014les\))i(when)e(p)s(erforming)g(\014lename)1110 3733
+y(completion,)j(unless)41 b(the)g(leading)h(`)p Fs(.)p
+Ft(')g(is)g(supplied)e(b)m(y)h(the)h(user)f(in)g(the)1110
+3842 y(\014lename)31 b(to)g(b)s(e)e(completed.)42 b(This)30
+b(v)-5 b(ariable)31 b(is)f(`)p Fs(on)p Ft(')h(b)m(y)f(default.)630
+4013 y Fs(output-meta)1110 4122 y Ft(If)35 b(set)h(to)g(`)p
+Fs(on)p Ft(',)h(Readline)f(will)g(displa)m(y)f(c)m(haracters)i(with)e
+(the)h(eigh)m(th)g(bit)1110 4232 y(set)h(directly)g(rather)f(than)g(as)
+h(a)g(meta-pre\014xed)f(escap)s(e)h(sequence.)59 b(The)1110
+4341 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 4512
+y Fs(page-completions)1110 4622 y Ft(If)j(set)i(to)f(`)p
+Fs(on)p Ft(',)h(Readline)g(uses)e(an)h(in)m(ternal)h
+Fs(more)p Ft(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
+4731 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
+47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Fs(on)p Ft(')1110
+4841 y(b)m(y)e(default.)630 5011 y Fs(print-completions-horizo)o(ntal)o
+(ly)1110 5121 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g
+(will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110
+5230 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
+(than)g(do)m(wn)g(the)h(screen.)1110 5340 y(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)p eop end
+%%Page: 100 106
+TeXDict begin 100 105 bop 150 -116 a Ft(100)2527 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(revert-all-at-newline)1110
+408 y Ft(If)e(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(will)g(undo)f
+(all)h(c)m(hanges)h(to)f(history)g(lines)f(b)s(efore)1110
+518 y(returning)f(when)f Fs(accept-line)f Ft(is)j(executed.)41
+b(By)29 b(default,)g(history)g(lines)1110 628 y(ma)m(y)42
+b(b)s(e)g(mo)s(di\014ed)e(and)h(retain)i(individual)e(undo)g(lists)h
+(across)g(calls)h(to)1110 737 y Fs(readline)p Ft(.)38
+b(The)30 b(default)h(is)f(`)p Fs(off)p Ft('.)630 905
+y Fs(show-all-if-ambiguous)1110 1015 y Ft(This)f(alters)i(the)f
+(default)g(b)s(eha)m(vior)g(of)g(the)h(completion)g(functions.)40
+b(If)29 b(set)1110 1124 y(to)f(`)p Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h)
+g(ha)m(v)m(e)i(more)f(than)f(one)h(p)s(ossible)f(completion)h(cause)
+1110 1234 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
+(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 1344 y(The)30
+b(default)g(v)-5 b(alue)31 b(is)g(`)p Fs(off)p Ft('.)630
+1512 y Fs(show-all-if-unmodified)1110 1621 y Ft(This)38
+b(alters)h(the)g(default)g(b)s(eha)m(vior)g(of)f(the)h(completion)h
+(functions)e(in)h(a)1110 1731 y(fashion)25 b(similar)h(to)g
+Fq(sho)m(w-all-if-am)m(biguous)p Ft(.)41 b(If)25 b(set)h(to)h(`)p
+Fs(on)p Ft(',)f(w)m(ords)f(whic)m(h)1110 1840 y(ha)m(v)m(e)32
+b(more)f(than)f(one)i(p)s(ossible)e(completion)i(without)f(an)m(y)g(p)s
+(ossible)f(par-)1110 1950 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
+f(completions)h(don't)f(share)g(a)h(common)1110 2060
+y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)g
+(immediately)i(instead)e(of)h(ring-)1110 2169 y(ing)g(the)f(b)s(ell.)41
+b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Fs(off)p
+Ft('.)630 2337 y Fs(visible-stats)1110 2447 y Ft(If)h(set)i(to)f(`)p
+Fs(on)p Ft(',)h(a)f(c)m(haracter)i(denoting)e(a)g(\014le's)g(t)m(yp)s
+(e)g(is)g(app)s(ended)e(to)j(the)1110 2556 y(\014lename)e(when)e
+(listing)i(p)s(ossible)f(completions.)42 b(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)150 2724 y(Key)f(Bindings)630 2834 y(The)41
+b(syn)m(tax)i(for)f(con)m(trolling)h(k)m(ey)g(bindings)e(in)h(the)g
+(init)g(\014le)g(is)g(simple.)75 b(First)43 b(y)m(ou)630
+2944 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i
+(y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41 b(The)27 b(follo)m(wing)630
+3053 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j
+(the)e(default)g(k)m(eybinding,)h(if)f(an)m(y)-8 b(,)630
+3163 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h
+(do)s(es.)630 3302 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g
+(the)g(command,)h(simply)f(place)h(on)e(a)i(line)f(in)g(the)g(init)630
+3411 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h
+(bind)f(the)h(command)f(to,)i(a)f(colon,)i(and)d(then)630
+3521 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
+b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m(ey)h(name)g
+(and)630 3630 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
+(terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72
+b(The)40 b(name)h(of)630 3740 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
+(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h
+(what)h(y)m(ou)g(\014nd)e(most)630 3850 y(comfortable.)630
+3988 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
+(k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f(string)630
+4098 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
+(\(a)h Fq(macro)5 b Ft(\).)630 4237 y(The)42 b Fs(bind)30
+b(-p)42 b Ft(command)h(displa)m(ys)g(Readline)g(function)g(names)g(and)
+f(bindings)g(in)h(a)630 4346 y(format)37 b(that)h(can)f(put)f(directly)
+i(in)m(to)g(an)f(initialization)j(\014le.)60 b(See)38
+b(Section)f(4.2)i([Bash)630 4456 y(Builtins],)31 b(page)g(41.)630
+4624 y Fq(k)m(eyname)5 b Ft(:)42 b Fq(function-name)35
+b Ft(or)c Fq(macro)1110 4734 y(k)m(eyname)k Ft(is)29
+b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s(elled)e(out)h(in)g(English.)39
+b(F)-8 b(or)30 b(example:)1350 4872 y Fs(Control-u:)45
+b(universal-argument)1350 4982 y(Meta-Rubout:)f(backward-kill-word)1350
+5092 y(Control-o:)h(">)i(output")1110 5230 y Ft(In)38
+b(the)h(ab)s(o)m(v)m(e)h(example,)h Fj(C-u)d Ft(is)h(b)s(ound)d(to)k
+(the)e(function)h Fs(universal-)1110 5340 y(argument)p
+Ft(,)f Fj(M-DEL)e Ft(is)i(b)s(ound)e(to)i(the)g(function)g
+Fs(backward-kill-word)p Ft(,)p eop end
+%%Page: 101 107
+TeXDict begin 101 106 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(101)1110 299 y(and)38
+b Fj(C-o)g Ft(is)h(b)s(ound)e(to)j(run)d(the)j(macro)f(expressed)g(on)f
+(the)i(righ)m(t)f(hand)1110 408 y(side)30 b(\(that)i(is,)e(to)h(insert)
+g(the)f(text)i(`)p Fs(>)e(output)p Ft(')f(in)m(to)i(the)g(line\).)1110
+543 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i
+(names)e(are)g(recognized)h(while)f(pro-)1110 653 y(cessing)24
+b(this)g(k)m(ey)g(binding)f(syn)m(tax:)37 b Fq(DEL)p
+Ft(,)24 b Fq(ESC)p Ft(,)f Fq(ESCAPE)p Ft(,)g Fq(LFD)p
+Ft(,)h Fq(NEW-)1110 763 y(LINE)p Ft(,)30 b Fq(RET)p Ft(,)g
+Fq(RETURN)p Ft(,)h Fq(R)m(UBOUT)p Ft(,)g Fq(SP)-8 b(A)m(CE)p
+Ft(,)30 b Fq(SPC)p Ft(,)g(and)f Fq(T)-8 b(AB)p Ft(.)630
+923 y Fs(")p Fq(k)m(eyseq)r Fs(")p Ft(:)41 b Fq(function-name)36
+b Ft(or)30 b Fq(macro)1110 1032 y(k)m(eyseq)k Ft(di\013ers)d(from)f
+Fq(k)m(eyname)37 b Ft(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f
+(denoting)g(an)g(en-)1110 1142 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s
+(e)f(sp)s(eci\014ed,)h(b)m(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)
+1110 1251 y(double)29 b(quotes.)41 b(Some)29 b Fl(gnu)h
+Ft(Emacs)f(st)m(yle)i(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)
+1110 1361 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s
+(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 1471 y(recognized.)1350
+1606 y Fs("\\C-u":)46 b(universal-argument)1350 1715
+y("\\C-x\\C-r":)f(re-read-init-file)1350 1825 y("\\e[11~":)g("Function)
+h(Key)g(1")1110 1960 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
+b Fj(C-u)64 b Ft(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
+2069 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g
+(the)f(\014rst)g(example\),)49 b(`)p Fj(C-x)1110 2179
+y(C-r)p Ft(')41 b(is)g(b)s(ound)e(to)j(the)f(function)g
+Fs(re-read-init-file)p Ft(,)e(and)i(`)3462 2176 y Fg(h)p
+3486 2123 139 4 v 3486 2179 a Ff(ESC)p 3486 2194 V 3620
+2176 a Fg(i)31 b(h)p 3705 2123 20 4 v 3705 2179 a Ff([)p
+3705 2195 V 3720 2176 a Fg(i)1110 2285 y(h)p 1134 2232
+36 4 v 1134 2288 a Ff(1)p 1134 2304 V 1165 2285 a Fg(i)f(h)p
+1250 2232 V 1250 2288 a Ff(1)p 1250 2304 V 1281 2285
+a Fg(i)g(h)p 1365 2232 48 4 v 1365 2288 a Fs(~)p 1365
+2304 V 1409 2285 a Fg(i)1438 2288 y Ft(')h(is)f(b)s(ound)f(to)i(insert)
+f(the)h(text)g(`)p Fs(Function)d(Key)i(1)p Ft('.)630
+2449 y(The)f(follo)m(wing)i Fl(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f
+(sequences)g(are)g(a)m(v)-5 b(ailable)32 b(when)d(sp)s(ecifying)630
+2558 y(k)m(ey)i(sequences:)630 2718 y Fj(\\C-)336 b Ft(con)m(trol)32
+b(pre\014x)630 2878 y Fj(\\M-)336 b Ft(meta)31 b(pre\014x)630
+3039 y Fj(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630
+3199 y Fj(\\\\)384 b Ft(bac)m(kslash)630 3359 y Fj(\\)p
+Fs(")1110 3356 y Fg(h)p 1134 3303 V 1134 3359 a Fs(")p
+1134 3374 V 1178 3356 a Fg(i)1208 3359 y Ft(,)30 b(a)h(double)f
+(quotation)h(mark)630 3519 y Fj(\\')1110 3516 y Fg(h)p
+1134 3463 20 4 v 1134 3519 a Ff(')p 1134 3534 V 1150
+3516 a Fg(i)1179 3519 y Ft(,)g(a)g(single)g(quote)g(or)f(ap)s(ostrophe)
+630 3679 y(In)d(addition)h(to)g(the)g Fl(gnu)f Ft(Emacs)h(st)m(yle)h
+(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630
+3789 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630 3949
+y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 4109 y Fs(\\b)384
+b Ft(bac)m(kspace)630 4269 y Fs(\\d)g Ft(delete)630 4430
+y Fs(\\f)g Ft(form)30 b(feed)630 4590 y Fs(\\n)384 b
+Ft(newline)630 4750 y Fs(\\r)g Ft(carriage)32 b(return)630
+4910 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)630 5070
+y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 5230 y Fs(\\)p
+Fj(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
+b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35 b Fq(nnn)e
+Ft(\(one)i(to)1110 5340 y(three)c(digits\))p eop end
+%%Page: 102 108
+TeXDict begin 102 107 bop 150 -116 a Ft(102)2527 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(\\x)p Fj(HH)288
+b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
+b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5 b(alue)40 b
+Fq(HH)1110 408 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
+554 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
+(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)630
+664 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
+b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f(name.)38
+b(In)630 773 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
+b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m(e)j
+(are)e(expanded.)37 b(Bac)m(kslash)630 883 y(will)j(quote)h(an)m(y)f
+(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
+b(`)p Fs(")p Ft(')h(and)g(`)p Fs(')p Ft('.)69 b(F)-8
+b(or)630 993 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i(mak)
+m(e)h(`)p Fj(C-x)j Fs(\\)p Ft(')c(insert)f(a)h(single)h(`)p
+Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 1120 y Fs("\\C-x\\\\":)45
+b("\\\\")150 1324 y Fk(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
+275 1561 y Ft(Readline)36 b(implemen)m(ts)f(a)h(facilit)m(y)i(similar)d
+(in)g(spirit)g(to)h(the)g(conditional)h(compilation)g(features)150
+1671 y(of)e(the)f(C)g(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)f
+(bindings)e(and)h(v)-5 b(ariable)35 b(settings)h(to)f(b)s(e)f(p)s
+(erformed)f(as)150 1781 y(the)e(result)f(of)g(tests.)42
+b(There)30 b(are)h(four)e(parser)h(directiv)m(es)i(used.)150
+1926 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h
+(bindings)d(to)i(b)s(e)e(made)i(based)f(on)g(the)g(editing)h(mo)s(de,)g
+(the)630 2036 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
+(application)h(using)f(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)
+630 2146 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
+(haracters)i(are)f(required)e(to)i(isolate)i(it.)630
+2291 y Fs(mode)288 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g
+Fs($if)f Ft(directiv)m(e)j(is)e(used)f(to)h(test)h(whether)e(Readline)
+1110 2401 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40
+b(This)29 b(ma)m(y)h(b)s(e)e(used)h(in)g(conjunction)h(with)f(the)1110
+2511 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f
+(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 2620 y(standard)23
+b Ft(and)h Fs(emacs-ctlx)f Ft(k)m(eymaps)i(only)g(if)g(Readline)h(is)f
+(starting)h(out)1110 2730 y(in)k Fs(emacs)f Ft(mo)s(de.)630
+2876 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e
+(used)g(to)i(include)f(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110
+2985 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
+(output)g(b)m(y)g(the)g(terminal's)1110 3095 y(function)24
+b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g
+(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 3204
+y(b)s(oth)k(the)h(full)g(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s
+(ortion)e(of)h(the)g(terminal)1110 3314 y(name)k(b)s(efore)f(the)g
+(\014rst)g(`)p Fs(-)p Ft('.)50 b(This)33 b(allo)m(ws)i
+Fs(sun)e Ft(to)h(matc)m(h)g(b)s(oth)f Fs(sun)g Ft(and)1110
+3424 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 3569 y
+Fs(application)1110 3679 y Ft(The)21 b Fq(application)j
+Ft(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
+(set-)1110 3789 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
+(Readline)g(library)g(sets)g(the)g Fq(application)1110
+3898 y(name)p Ft(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
+(v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g(used)f(to)1110
+4008 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
+(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 4117
+y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)f
+(sequence)h(that)f(quotes)1110 4227 y(the)e(curren)m(t)f(or)g(previous)
+g(w)m(ord)g(in)g(Bash:)1350 4355 y Fs($if)47 b(Bash)1350
+4464 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
+4574 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 4683 y($endif)150
+4829 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g
+(previous)g(example,)h(terminates)g(an)g Fs($if)e Ft(command.)150
+4975 y Fs($else)240 b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
+(the)f Fs($if)g Ft(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g
+(fails.)150 5121 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m
+(es)g(a)e(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g
+(commands)630 5230 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
+b(F)-8 b(or)39 b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e
+(from)630 5340 y(`)p Fs(/etc/inputrc)p Ft(':)p eop end
+%%Page: 103 109
+TeXDict begin 103 108 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(103)870 299 y Fs($include)46
+b(/etc/inputrc)150 523 y Fk(8.3.3)63 b(Sample)41 b(Init)g(File)275
+767 y Ft(Here)31 b(is)f(an)g(example)i(of)e(an)g Fq(inputrc)35
+b Ft(\014le.)42 b(This)29 b(illustrates)j(k)m(ey)f(binding,)f(v)-5
+b(ariable)31 b(assignmen)m(t,)150 877 y(and)f(conditional)h(syn)m(tax.)
+p eop end
+%%Page: 104 110
+TeXDict begin 104 109 bop 150 -116 a Ft(104)2527 b(Bash)31
+b(Reference)g(Man)m(ual)390 408 y Fs(#)47 b(This)g(file)g(controls)e
+(the)i(behaviour)e(of)j(line)e(input)h(editing)e(for)390
+518 y(#)i(programs)f(that)h(use)g(the)f(GNU)h(Readline)f(library.)93
+b(Existing)390 628 y(#)47 b(programs)f(include)g(FTP,)g(Bash,)h(and)g
+(GDB.)390 737 y(#)390 847 y(#)g(You)g(can)g(re-read)f(the)h(inputrc)f
+(file)g(with)h(C-x)g(C-r.)390 956 y(#)g(Lines)g(beginning)e(with)i('#')
+g(are)g(comments.)390 1066 y(#)390 1176 y(#)g(First,)g(include)e(any)i
+(systemwide)e(bindings)h(and)h(variable)390 1285 y(#)g(assignments)e
+(from)i(/etc/Inputrc)390 1395 y($include)f(/etc/Inputrc)390
+1614 y(#)390 1724 y(#)h(Set)g(various)f(bindings)g(for)h(emacs)f(mode.)
+390 1943 y(set)h(editing-mode)d(emacs)390 2162 y($if)j(mode=emacs)390
+2381 y(Meta-Control-h:)91 b(backward-kill-word)43 b(Text)k(after)f(the)
+h(function)f(name)g(is)h(ignored)390 2600 y(#)390 2710
+y(#)g(Arrow)g(keys)f(in)i(keypad)e(mode)390 2819 y(#)390
+2929 y(#"\\M-OD":)379 b(backward-char)390 3039 y(#"\\M-OC":)g
+(forward-char)390 3148 y(#"\\M-OA":)g(previous-history)390
+3258 y(#"\\M-OB":)g(next-history)390 3367 y(#)390 3477
+y(#)47 b(Arrow)g(keys)f(in)i(ANSI)e(mode)390 3587 y(#)390
+3696 y("\\M-[D":)380 b(backward-char)390 3806 y("\\M-[C":)g
+(forward-char)390 3915 y("\\M-[A":)g(previous-history)390
+4025 y("\\M-[B":)g(next-history)390 4134 y(#)390 4244
+y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(keypad)f(mode)390
+4354 y(#)390 4463 y(#"\\M-\\C-OD":)331 b(backward-char)390
+4573 y(#"\\M-\\C-OC":)g(forward-char)390 4682 y(#"\\M-\\C-OA":)g
+(previous-history)390 4792 y(#"\\M-\\C-OB":)g(next-history)390
+4902 y(#)390 5011 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(ANSI)g(mode)
+390 5121 y(#)390 5230 y(#"\\M-\\C-[D":)331 b(backward-char)390
+5340 y(#"\\M-\\C-[C":)g(forward-char)p eop end
+%%Page: 105 111
+TeXDict begin 105 110 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(105)390 299 y Fs(#"\\M-\\C-[A":)
+331 b(previous-history)390 408 y(#"\\M-\\C-[B":)g(next-history)390
+628 y(C-q:)47 b(quoted-insert)390 847 y($endif)390 1066
+y(#)g(An)h(old-style)d(binding.)93 b(This)47 b(happens)f(to)h(be)g(the)
+g(default.)390 1176 y(TAB:)g(complete)390 1395 y(#)g(Macros)g(that)f
+(are)h(convenient)e(for)i(shell)f(interaction)390 1504
+y($if)h(Bash)390 1614 y(#)g(edit)g(the)g(path)390 1724
+y("\\C-xp":)f("PATH=${PATH}\\e\\C-e\\C-a)o(\\ef)o(\\C-f)o(")390
+1833 y(#)h(prepare)f(to)h(type)g(a)h(quoted)e(word)g(--)390
+1943 y(#)h(insert)g(open)f(and)h(close)f(double)h(quotes)390
+2052 y(#)g(and)g(move)g(to)g(just)g(after)f(the)h(open)g(quote)390
+2162 y("\\C-x\\"":)e("\\"\\"\\C-b")390 2271 y(#)i(insert)g(a)g
+(backslash)e(\(testing)h(backslash)f(escapes)390 2381
+y(#)i(in)h(sequences)d(and)i(macros\))390 2491 y("\\C-x\\\\":)e("\\\\")
+390 2600 y(#)i(Quote)g(the)g(current)f(or)h(previous)e(word)390
+2710 y("\\C-xq":)h("\\eb\\"\\ef\\"")390 2819 y(#)h(Add)g(a)h(binding)e
+(to)h(refresh)f(the)h(line,)f(which)g(is)h(unbound)390
+2929 y("\\C-xr":)f(redraw-current-line)390 3039 y(#)h(Edit)g(variable)f
+(on)h(current)f(line.)390 3148 y("\\M-\\C-v":)f
+("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-)o(a\\C-)o(y=")390 3258
+y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
+(available)390 3587 y(set)f(bell-style)e(visible)390
+3806 y(#)i(don't)g(strip)f(characters)f(to)i(7)h(bits)e(when)h(reading)
+390 3915 y(set)g(input-meta)e(on)390 4134 y(#)i(allow)g(iso-latin1)e
+(characters)g(to)i(be)g(inserted)f(rather)390 4244 y(#)h(than)g
+(converted)e(to)j(prefix-meta)c(sequences)390 4354 y(set)j
+(convert-meta)d(off)390 4573 y(#)j(display)f(characters)f(with)i(the)g
+(eighth)f(bit)h(set)g(directly)390 4682 y(#)g(rather)g(than)f(as)h
+(meta-prefixed)e(characters)390 4792 y(set)i(output-meta)e(on)390
+5011 y(#)i(if)h(there)e(are)h(more)g(than)f(150)h(possible)f
+(completions)e(for)390 5121 y(#)j(a)h(word,)e(ask)h(the)g(user)g(if)g
+(he)g(wants)f(to)i(see)f(all)f(of)i(them)390 5230 y(set)f
+(completion-query-items)42 b(150)p eop end
+%%Page: 106 112
+TeXDict begin 106 111 bop 150 -116 a Ft(106)2527 b(Bash)31
+b(Reference)g(Man)m(ual)390 299 y Fs(#)47 b(For)g(FTP)390
+408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390
+628 y("\\C-xt":)g("put)g(\\M-?")390 737 y("\\M-.":)g(yank-last-arg)390
+847 y($endif)150 1109 y Fr(8.4)68 b(Bindable)45 b(Readline)i(Commands)
+275 1356 y Ft(This)34 b(section)j(describ)s(es)e(Readline)h(commands)g
+(that)g(ma)m(y)g(b)s(e)f(b)s(ound)f(to)i(k)m(ey)h(sequences.)56
+b(Y)-8 b(ou)150 1465 y(can)29 b(list)g(y)m(our)g(k)m(ey)g(bindings)f(b)
+m(y)h(executing)g Fs(bind)h(-P)e Ft(or,)h(for)g(a)g(more)f(terse)i
+(format,)f(suitable)h(for)e(an)150 1575 y Fq(inputrc)34
+b Ft(\014le,)29 b Fs(bind)g(-p)p Ft(.)40 b(\(See)30 b(Section)f(4.2)h
+([Bash)g(Builtins],)g(page)g(41.\))41 b(Command)28 b(names)h(without)
+150 1684 y(an)h(accompan)m(ying)i(k)m(ey)f(sequence)g(are)g(un)m(b)s
+(ound)d(b)m(y)i(default.)275 1821 y(In)25 b(the)h(follo)m(wing)i
+(descriptions,)f Fq(p)s(oin)m(t)h Ft(refers)e(to)h(the)f(curren)m(t)g
+(cursor)g(p)s(osition,)h(and)f Fq(mark)31 b Ft(refers)150
+1931 y(to)40 b(a)f(cursor)f(p)s(osition)h(sa)m(v)m(ed)h(b)m(y)f(the)g
+Fs(set-mark)d Ft(command.)66 b(The)38 b(text)i(b)s(et)m(w)m(een)g(the)f
+(p)s(oin)m(t)g(and)150 2040 y(mark)30 b(is)h(referred)e(to)i(as)g(the)f
+Fq(region)p Ft(.)150 2269 y Fk(8.4.1)63 b(Commands)42
+b(F)-10 b(or)41 b(Mo)m(ving)150 2514 y Fs(beginning-of-line)26
+b(\(C-a\))630 2623 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f
+(curren)m(t)g(line.)150 2785 y Fs(end-of-line)d(\(C-e\))630
+2894 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
+3056 y Fs(forward-char)c(\(C-f\))630 3165 y Ft(Mo)m(v)m(e)32
+b(forw)m(ard)e(a)h(c)m(haracter.)150 3327 y Fs(backward-char)c(\(C-b\))
+630 3437 y Ft(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150
+3598 y Fs(forward-word)d(\(M-f\))630 3708 y Ft(Mo)m(v)m(e)32
+b(forw)m(ard)e(to)h(the)f(end)g(of)g(the)h(next)f(w)m(ord.)41
+b(W)-8 b(ords)30 b(are)h(comp)s(osed)f(of)g(letters)i(and)630
+3817 y(digits.)150 3979 y Fs(backward-word)27 b(\(M-b\))630
+4088 y Ft(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g
+(curren)m(t)f(or)g(previous)g(w)m(ord.)50 b(W)-8 b(ords)34
+b(are)g(comp)s(osed)630 4198 y(of)d(letters)g(and)f(digits.)150
+4359 y Fs(shell-forward-word)25 b(\(\))630 4469 y Ft(Mo)m(v)m(e)30
+b(forw)m(ard)e(to)h(the)f(end)f(of)h(the)h(next)f(w)m(ord.)40
+b(W)-8 b(ords)28 b(are)g(delimited)h(b)m(y)f(non-quoted)630
+4579 y(shell)j(metac)m(haracters.)150 4740 y Fs(shell-backward-word)25
+b(\(\))630 4850 y Ft(Mo)m(v)m(e)37 b(bac)m(k)e(to)h(the)f(start)g(of)g
+(the)g(curren)m(t)g(or)f(previous)h(w)m(ord.)53 b(W)-8
+b(ords)35 b(are)g(delimited)630 4959 y(b)m(y)30 b(non-quoted)h(shell)f
+(metac)m(haracters.)150 5121 y Fs(clear-screen)d(\(C-l\))630
+5230 y Ft(Clear)g(the)g(screen)f(and)h(redra)m(w)f(the)h(curren)m(t)f
+(line,)i(lea)m(ving)g(the)f(curren)m(t)g(line)g(at)g(the)g(top)630
+5340 y(of)k(the)f(screen.)p eop end
+%%Page: 107 113
+TeXDict begin 107 112 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(107)150 299 y Fs
+(redraw-current-line)25 b(\(\))630 408 y Ft(Refresh)30
+b(the)g(curren)m(t)h(line.)41 b(By)30 b(default,)h(this)f(is)h(un)m(b)s
+(ound.)150 617 y Fk(8.4.2)63 b(Commands)42 b(F)-10 b(or)41
+b(Manipulating)h(The)f(History)150 855 y Fs(accept-line)27
+b(\(Newline)h(or)i(Return\))630 965 y Ft(Accept)25 b(the)e(line)h
+(regardless)g(of)f(where)g(the)h(cursor)e(is.)39 b(If)23
+b(this)g(line)h(is)f(non-empt)m(y)-8 b(,)26 b(add)c(it)630
+1074 y(to)27 b(the)f(history)g(list)h(according)g(to)g(the)f(setting)i
+(of)e(the)g Fs(HISTCONTROL)d Ft(and)j Fs(HISTIGNORE)630
+1184 y Ft(v)-5 b(ariables.)42 b(If)30 b(this)h(line)g(is)g(a)g(mo)s
+(di\014ed)e(history)i(line,)g(then)f(restore)i(the)f(history)f(line)h
+(to)630 1294 y(its)g(original)g(state.)150 1442 y Fs(previous-history)
+26 b(\(C-p\))630 1552 y Ft(Mo)m(v)m(e)32 b(`bac)m(k')g(through)e(the)g
+(history)h(list,)g(fetc)m(hing)g(the)g(previous)f(command.)150
+1701 y Fs(next-history)d(\(C-n\))630 1810 y Ft(Mo)m(v)m(e)32
+b(`forw)m(ard')f(through)e(the)i(history)f(list,)i(fetc)m(hing)f(the)g
+(next)f(command.)150 1959 y Fs(beginning-of-history)25
+b(\(M-<\))630 2068 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(\014rst)g(line)g(in)
+h(the)f(history)-8 b(.)150 2217 y Fs(end-of-history)26
+b(\(M->\))630 2327 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h
+(input)e(history)-8 b(,)31 b(i.e.,)h(the)f(line)f(curren)m(tly)h(b)s
+(eing)f(en)m(tered.)150 2475 y Fs(reverse-search-history)24
+b(\(C-r\))630 2585 y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g
+(the)f(curren)m(t)g(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g
+(his-)630 2695 y(tory)g(as)f(necessary)-8 b(.)42 b(This)29
+b(is)i(an)f(incremen)m(tal)i(searc)m(h.)150 2843 y Fs
+(forward-search-history)24 b(\(C-s\))630 2953 y Ft(Searc)m(h)30
+b(forw)m(ard)f(starting)h(at)g(the)g(curren)m(t)f(line)h(and)f(mo)m
+(ving)h(`do)m(wn')f(through)g(the)h(the)630 3062 y(history)g(as)h
+(necessary)-8 b(.)41 b(This)30 b(is)g(an)h(incremen)m(tal)g(searc)m(h.)
+150 3211 y Fs(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24
+b(\(M-p\))630 3321 y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g
+(the)f(curren)m(t)g(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g
+(his-)630 3430 y(tory)36 b(as)g(necessary)h(using)e(a)i(non-incremen)m
+(tal)g(searc)m(h)f(for)g(a)g(string)g(supplied)f(b)m(y)h(the)630
+3540 y(user.)150 3688 y Fs(non-incremental-forward-)o(sear)o(ch-h)o
+(ist)o(ory)24 b(\(M-n\))630 3798 y Ft(Searc)m(h)30 b(forw)m(ard)f
+(starting)h(at)g(the)g(curren)m(t)f(line)h(and)f(mo)m(ving)h(`do)m(wn')
+f(through)g(the)h(the)630 3908 y(history)d(as)f(necessary)i(using)e(a)h
+(non-incremen)m(tal)g(searc)m(h)h(for)e(a)h(string)g(supplied)e(b)m(y)i
+(the)630 4017 y(user.)150 4166 y Fs(history-search-forward)d(\(\))630
+4276 y Ft(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g
+(the)h(string)f(of)h(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630
+4385 y(start)36 b(of)f(the)g(curren)m(t)g(line)g(and)g(the)g(p)s(oin)m
+(t.)55 b(This)34 b(is)i(a)f(non-incremen)m(tal)h(searc)m(h.)56
+b(By)630 4495 y(default,)31 b(this)f(command)g(is)h(un)m(b)s(ound.)150
+4643 y Fs(history-search-backward)24 b(\(\))630 4753
+y Ft(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
+(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630
+4863 y(start)g(of)f(the)g(curren)m(t)g(line)g(and)g(the)g(p)s(oin)m(t.)
+55 b(This)34 b(is)i(a)f(non-incremen)m(tal)h(searc)m(h.)56
+b(By)630 4972 y(default,)31 b(this)f(command)g(is)h(un)m(b)s(ound.)150
+5121 y Fs(yank-nth-arg)c(\(M-C-y\))630 5230 y Ft(Insert)37
+b(the)g(\014rst)f(argumen)m(t)i(to)f(the)h(previous)e(command)h
+(\(usually)g(the)g(second)g(w)m(ord)630 5340 y(on)32
+b(the)g(previous)f(line\))i(at)f(p)s(oin)m(t.)46 b(With)32
+b(an)g(argumen)m(t)g Fq(n)p Ft(,)g(insert)g(the)g Fq(n)p
+Ft(th)f(w)m(ord)g(from)p eop end
+%%Page: 108 114
+TeXDict begin 108 113 bop 150 -116 a Ft(108)2527 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y(the)k(previous)f(command)h(\(the)g(w)
+m(ords)g(in)f(the)h(previous)g(command)f(b)s(egin)h(with)f(w)m(ord)630
+408 y(0\).)69 b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f
+Fq(n)p Ft(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)630
+518 y(command.)48 b(Once)33 b(the)g(argumen)m(t)h Fq(n)e
+Ft(is)h(computed,)h(the)f(argumen)m(t)g(is)g(extracted)i(as)e(if)630
+628 y(the)e(`)p Fs(!)p Fj(n)11 b Ft(')29 b(history)i(expansion)f(had)g
+(b)s(een)f(sp)s(eci\014ed.)150 773 y Fs(yank-last-arg)e(\(M-.)i(or)h
+(M-_\))630 883 y Ft(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)f
+(command)h(\(the)h(last)f(w)m(ord)g(of)g(the)g(previous)630
+993 y(history)c(en)m(try\).)41 b(With)31 b(an)g(argumen)m(t,)g(b)s(eha)
+m(v)m(e)g(exactly)i(lik)m(e)f Fs(yank-nth-arg)p Ft(.)38
+b(Succes-)630 1102 y(siv)m(e)d(calls)h(to)f Fs(yank-last-arg)c
+Ft(mo)m(v)m(e)36 b(bac)m(k)g(through)d(the)i(history)g(list,)h
+(inserting)f(the)630 1212 y(last)d(argumen)m(t)f(of)g(eac)m(h)h(line)f
+(in)f(turn.)41 b(The)30 b(history)h(expansion)f(facilities)j(are)e
+(used)f(to)630 1321 y(extract)i(the)e(last)i(argumen)m(t,)f(as)f(if)h
+(the)f(`)p Fs(!$)p Ft(')g(history)h(expansion)f(had)g(b)s(een)f(sp)s
+(eci\014ed.)150 1525 y Fk(8.4.3)63 b(Commands)42 b(F)-10
+b(or)41 b(Changing)g(T)-10 b(ext)150 1762 y Fs(delete-char)27
+b(\(C-d\))630 1872 y Ft(Delete)41 b(the)e(c)m(haracter)i(at)e(p)s(oin)m
+(t.)66 b(If)39 b(p)s(oin)m(t)f(is)h(at)h(the)f(b)s(eginning)f(of)h(the)
+g(line,)j(there)630 1982 y(are)37 b(no)g(c)m(haracters)i(in)d(the)i
+(line,)h(and)d(the)h(last)h(c)m(haracter)h(t)m(yp)s(ed)e(w)m(as)g(not)g
+(b)s(ound)e(to)630 2091 y Fs(delete-char)p Ft(,)28 b(then)i(return)f
+Fl(eof)p Ft(.)150 2237 y Fs(backward-delete-char)c(\(Rubout\))630
+2347 y Ft(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40
+b(A)30 b(n)m(umeric)g(argumen)m(t)h(means)f(to)h(kill)g(the)630
+2456 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
+2602 y Fs(forward-backward-delete-)o(char)24 b(\(\))630
+2712 y Ft(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
+(unless)d(the)i(cursor)e(is)h(at)h(the)g(end)e(of)i(the)630
+2821 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s
+(ehind)d(the)i(cursor)f(is)g(deleted.)46 b(By)32 b(default,)g(this)630
+2931 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
+3077 y Fs(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 3186
+y Ft(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)h
+(v)m(erbatim.)53 b(This)33 b(is)i(ho)m(w)f(to)h(insert)f(k)m(ey)630
+3296 y(sequences)d(lik)m(e)g Fj(C-q)p Ft(,)f(for)g(example.)150
+3442 y Fs(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o(\))630
+3551 y Ft(Insert)g(y)m(ourself.)150 3697 y Fs(transpose-chars)c
+(\(C-t\))630 3807 y Ft(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g
+(cursor)f(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g
+(cursor,)630 3916 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m
+(ell.)57 b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end)
+g(of)h(the)630 4026 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h
+(last)h(t)m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38
+b(Negativ)m(e)25 b(argumen)m(ts)630 4135 y(ha)m(v)m(e)32
+b(no)e(e\013ect.)150 4281 y Fs(transpose-words)c(\(M-t\))630
+4391 y Ft(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g
+(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)
+g(that)630 4500 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27
+b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i(the)f
+(line,)i(this)e(transp)s(oses)g(the)630 4610 y(last)j(t)m(w)m(o)h(w)m
+(ords)e(on)g(the)h(line.)150 4756 y Fs(upcase-word)c(\(M-u\))630
+4865 y Ft(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i
+(w)m(ord.)45 b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630
+4975 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h
+(the)e(cursor.)150 5121 y Fs(downcase-word)d(\(M-l\))630
+5230 y Ft(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i
+(w)m(ord.)37 b(With)22 b(a)g(negativ)m(e)i(argumen)m(t,)g(lo)m(w)m
+(ercase)630 5340 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f(mo)m
+(v)m(e)i(the)f(cursor.)p eop end
+%%Page: 109 115
+TeXDict begin 109 114 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(109)150 299 y Fs(capitalize-word)
+26 b(\(M-c\))630 408 y Ft(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)
+m(wing\))i(w)m(ord.)38 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h
+(capitalize)630 518 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
+(mo)m(v)m(e)i(the)f(cursor.)150 683 y Fs(overwrite-mode)26
+b(\(\))630 793 y Ft(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
+b(With)33 b(an)g(explicit)h(p)s(ositiv)m(e)g(n)m(umeric)f(argumen)m(t,)
+h(switc)m(hes)630 903 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
+b(With)22 b(an)g(explicit)h(non-p)s(ositiv)m(e)f(n)m(umeric)g(argumen)m
+(t,)i(switc)m(hes)e(to)630 1012 y(insert)30 b(mo)s(de.)41
+b(This)30 b(command)h(a\013ects)h(only)e Fs(emacs)f Ft(mo)s(de;)i
+Fs(vi)f Ft(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 1122
+y(di\013eren)m(tly)-8 b(.)42 b(Eac)m(h)31 b(call)h(to)f
+Fs(readline\(\))c Ft(starts)k(in)f(insert)g(mo)s(de.)630
+1259 y(In)e(o)m(v)m(erwrite)j(mo)s(de,)e(c)m(haracters)i(b)s(ound)c(to)
+j Fs(self-insert)c Ft(replace)k(the)g(text)g(at)g(p)s(oin)m(t)630
+1369 y(rather)41 b(than)h(pushing)e(the)i(text)g(to)g(the)g(righ)m(t.)
+75 b(Characters)42 b(b)s(ound)d(to)j Fs(backward-)630
+1478 y(delete-char)27 b Ft(replace)32 b(the)e(c)m(haracter)i(b)s(efore)
+e(p)s(oin)m(t)h(with)f(a)g(space.)630 1616 y(By)h(default,)f(this)h
+(command)f(is)g(un)m(b)s(ound.)150 1852 y Fk(8.4.4)63
+b(Killing)42 b(And)e(Y)-10 b(anking)150 2099 y Fs(kill-line)28
+b(\(C-k\))630 2208 y Ft(Kill)j(the)f(text)i(from)e(p)s(oin)m(t)g(to)h
+(the)g(end)e(of)i(the)f(line.)150 2374 y Fs(backward-kill-line)25
+b(\(C-x)30 b(Rubout\))630 2483 y Ft(Kill)h(bac)m(kw)m(ard)g(to)g(the)f
+(b)s(eginning)g(of)g(the)h(line.)150 2649 y Fs(unix-line-discard)26
+b(\(C-u\))630 2758 y Ft(Kill)31 b(bac)m(kw)m(ard)g(from)e(the)i(cursor)
+f(to)h(the)f(b)s(eginning)g(of)h(the)f(curren)m(t)g(line.)150
+2923 y Fs(kill-whole-line)c(\(\))630 3033 y Ft(Kill)37
+b(all)g(c)m(haracters)h(on)f(the)f(curren)m(t)h(line,)h(no)f(matter)g
+(where)f(p)s(oin)m(t)h(is.)59 b(By)36 b(default,)630
+3143 y(this)30 b(is)h(un)m(b)s(ound.)150 3308 y Fs(kill-word)d(\(M-d\))
+630 3418 y Ft(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
+(curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)h
+(the)g(end)630 3527 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
+b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Fs(forward-word)p
+Ft(.)150 3692 y Fs(backward-kill-word)25 b(\(M-)1183
+3689 y Fg(h)p 1207 3636 146 4 v 1207 3692 a Ff(DEL)p
+1207 3708 V 1348 3689 a Fg(i)1378 3692 y Fs(\))630 3802
+y Ft(Kill)k(the)g(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t.)40
+b(W)-8 b(ord)29 b(b)s(oundaries)f(are)h(the)g(same)g(as)g
+Fs(backward-word)p Ft(.)150 3967 y Fs(shell-kill-word)d(\(\))630
+4077 y Ft(Kill)k(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
+(curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)h
+(the)g(end)630 4187 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
+b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Fs
+(shell-forward-word)p Ft(.)150 4352 y Fs(backward-kill-word)25
+b(\(\))630 4461 y Ft(Kill)d(the)h(w)m(ord)e(b)s(ehind)g(p)s(oin)m(t.)38
+b(W)-8 b(ord)22 b(b)s(oundaries)f(are)h(the)g(same)h(as)f
+Fs(shell-backward-)630 4571 y(word)p Ft(.)150 4736 y
+Fs(unix-word-rubout)k(\(C-w\))630 4846 y Ft(Kill)32 b(the)g(w)m(ord)f
+(b)s(ehind)f(p)s(oin)m(t,)i(using)f(white)h(space)g(as)g(a)g(w)m(ord)f
+(b)s(oundary)-8 b(.)43 b(The)31 b(killed)630 4955 y(text)g(is)g(sa)m(v)
+m(ed)g(on)g(the)f(kill-ring.)150 5121 y Fs(unix-filename-rubout)25
+b(\(\))630 5230 y Ft(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m
+(t,)j(using)e(white)g(space)h(and)f(the)g(slash)g(c)m(haracter)i(as)f
+(the)630 5340 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30
+b(killed)h(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)p
+eop end
+%%Page: 110 116
+TeXDict begin 110 115 bop 150 -116 a Ft(110)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(delete-horizontal-space)24
+b(\(\))630 408 y Ft(Delete)33 b(all)e(spaces)g(and)e(tabs)i(around)e(p)
+s(oin)m(t.)41 b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)150
+561 y Fs(kill-region)d(\(\))630 670 y Ft(Kill)k(the)f(text)i(in)e(the)g
+(curren)m(t)h(region.)41 b(By)31 b(default,)f(this)h(command)f(is)g(un)
+m(b)s(ound.)150 822 y Fs(copy-region-as-kill)25 b(\(\))630
+932 y Ft(Cop)m(y)34 b(the)g(text)h(in)f(the)g(region)g(to)h(the)f(kill)
+h(bu\013er,)f(so)g(it)h(can)f(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)f(a)m(w)m
+(a)m(y)-8 b(.)630 1042 y(By)31 b(default,)f(this)h(command)f(is)g(un)m
+(b)s(ound.)150 1194 y Fs(copy-backward-word)25 b(\(\))630
+1303 y Ft(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(to)i
+(the)e(kill)h(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)f(are)i
+(the)630 1413 y(same)31 b(as)f Fs(backward-word)p Ft(.)38
+b(By)30 b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150
+1565 y Fs(copy-forward-word)26 b(\(\))630 1675 y Ft(Cop)m(y)31
+b(the)g(w)m(ord)g(follo)m(wing)h(p)s(oin)m(t)f(to)h(the)f(kill)h
+(bu\013er.)42 b(The)30 b(w)m(ord)h(b)s(oundaries)e(are)j(the)630
+1784 y(same)f(as)f Fs(forward-word)p Ft(.)38 b(By)30
+b(default,)h(this)g(command)f(is)g(un)m(b)s(ound.)150
+1936 y Fs(yank)f(\(C-y\))630 2046 y Ft(Y)-8 b(ank)31
+b(the)f(top)h(of)g(the)f(kill)h(ring)f(in)m(to)i(the)e(bu\013er)g(at)h
+(p)s(oin)m(t.)150 2198 y Fs(yank-pop)d(\(M-y\))630 2308
+y Ft(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h(the)f(new)g(top.)54
+b(Y)-8 b(ou)35 b(can)g(only)f(do)h(this)f(if)h(the)g(prior)630
+2417 y(command)30 b(is)h Fs(yank)e Ft(or)h Fs(yank-pop)p
+Ft(.)150 2631 y Fk(8.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
+(ts)150 2871 y Fs(digit-argument)26 b(\()p Fj(M-0)p Fs(,)j
+Fj(M-1)p Fs(,)h(...)f Fj(M--)p Fs(\))630 2981 y Ft(Add)d(this)h(digit)g
+(to)h(the)f(argumen)m(t)g(already)h(accum)m(ulating,)h(or)e(start)h(a)f
+(new)f(argumen)m(t.)630 3090 y Fj(M--)j Ft(starts)i(a)g(negativ)m(e)i
+(argumen)m(t.)150 3242 y Fs(universal-argument)25 b(\(\))630
+3352 y Ft(This)g(is)g(another)h(w)m(a)m(y)g(to)h(sp)s(ecify)e(an)g
+(argumen)m(t.)40 b(If)25 b(this)g(command)h(is)f(follo)m(w)m(ed)i(b)m
+(y)f(one)630 3462 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h
+(leading)h(min)m(us)e(sign,)h(those)g(digits)g(de\014ne)f(the)h(ar-)630
+3571 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b)
+m(y)f(digits,)i(executing)f Fs(universal-argument)630
+3681 y Ft(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h
+(otherwise)g(ignored.)45 b(As)32 b(a)g(sp)s(ecial)h(case,)630
+3790 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)
+d(a)h(c)m(haracter)i(that)e(is)g(neither)g(a)g(digit)630
+3900 y(or)28 b(min)m(us)f(sign,)i(the)f(argumen)m(t)g(coun)m(t)h(for)e
+(the)i(next)f(command)f(is)h(m)m(ultiplied)h(b)m(y)e(four.)630
+4010 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)h(initially)h(one,)g(so)f
+(executing)g(this)f(function)g(the)h(\014rst)e(time)630
+4119 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e
+(time)i(mak)m(es)f(the)g(argumen)m(t)g(coun)m(t)h(six-)630
+4229 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g(not)h
+(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 4442 y Fk(8.4.6)63
+b(Letting)40 b(Readline)h(T)m(yp)s(e)g(F)-10 b(or)42
+b(Y)-10 b(ou)150 4682 y Fs(complete)28 b(\()610 4679
+y Fg(h)p 634 4626 148 4 v 634 4682 a Ff(T)-6 b(AB)p 634
+4698 V 778 4679 a Fg(i)808 4682 y Fs(\))630 4792 y Ft(A)m(ttempt)24
+b(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g(b)s(efore)f(p)s(oin)
+m(t.)39 b(The)22 b(actual)i(completion)630 4902 y(p)s(erformed)33
+b(is)h(application-sp)s(eci\014c.)53 b(Bash)35 b(attempts)g(completion)
+g(treating)h(the)e(text)630 5011 y(as)39 b(a)h(v)-5 b(ariable)39
+b(\(if)h(the)f(text)h(b)s(egins)e(with)h(`)p Fs($)p Ft('\),)j(username)
+c(\(if)i(the)f(text)h(b)s(egins)e(with)630 5121 y(`)p
+Fs(~)p Ft('\),)31 b(hostname)f(\(if)g(the)g(text)h(b)s(egins)e(with)h
+(`)p Fs(@)p Ft('\),)h(or)f(command)f(\(including)h(aliases)i(and)630
+5230 y(functions\))j(in)f(turn.)53 b(If)34 b(none)g(of)h(these)h(pro)s
+(duces)d(a)i(matc)m(h,)i(\014lename)e(completion)h(is)630
+5340 y(attempted.)p eop end
+%%Page: 111 117
+TeXDict begin 111 116 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(111)150 299 y Fs
+(possible-completions)25 b(\(M-?\))630 408 y Ft(List)31
+b(the)f(p)s(ossible)g(completions)i(of)e(the)h(text)g(b)s(efore)f(p)s
+(oin)m(t.)150 582 y Fs(insert-completions)25 b(\(M-*\))630
+692 y Ft(Insert)30 b(all)h(completions)h(of)f(the)g(text)g(b)s(efore)f
+(p)s(oin)m(t)h(that)g(w)m(ould)f(ha)m(v)m(e)i(b)s(een)e(generated)630
+801 y(b)m(y)g Fs(possible-completions)p Ft(.)150 975
+y Fs(menu-complete)d(\(\))630 1084 y Ft(Similar)d(to)g
+Fs(complete)p Ft(,)f(but)h(replaces)g(the)g(w)m(ord)g(to)g(b)s(e)f
+(completed)i(with)e(a)i(single)f(matc)m(h)630 1194 y(from)37
+b(the)h(list)h(of)f(p)s(ossible)f(completions.)64 b(Rep)s(eated)39
+b(execution)g(of)f Fs(menu-complete)630 1303 y Ft(steps)i(through)g
+(the)g(list)h(of)f(p)s(ossible)g(completions,)k(inserting)c(eac)m(h)i
+(matc)m(h)f(in)f(turn.)630 1413 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g
+(of)g(completions,)i(the)e(b)s(ell)g(is)g(rung)f(\(sub)5
+b(ject)36 b(to)i(the)f(setting)630 1523 y(of)f Fs(bell-style)p
+Ft(\))e(and)h(the)h(original)i(text)f(is)f(restored.)57
+b(An)36 b(argumen)m(t)h(of)f Fq(n)f Ft(mo)m(v)m(es)i
+Fq(n)630 1632 y Ft(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
+(matc)m(hes;)39 b(a)c(negativ)m(e)i(argumen)m(t)e(ma)m(y)g(b)s(e)f
+(used)g(to)630 1742 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
+(list.)65 b(This)38 b(command)g(is)g(in)m(tended)g(to)h(b)s(e)f(b)s
+(ound)e(to)630 1848 y Fg(h)p 654 1795 148 4 v 654 1851
+a Ff(T)-6 b(AB)p 654 1867 V 798 1848 a Fg(i)828 1851
+y Ft(,)30 b(but)g(is)g(un)m(b)s(ound)e(b)m(y)i(default.)150
+2025 y Fs(delete-char-or-list)25 b(\(\))630 2134 y Ft(Deletes)k(the)e
+(c)m(haracter)h(under)e(the)h(cursor)f(if)h(not)g(at)g(the)g(b)s
+(eginning)g(or)f(end)h(of)g(the)g(line)630 2244 y(\(lik)m(e)k
+Fs(delete-char)p Ft(\).)37 b(If)29 b(at)h(the)f(end)f(of)i(the)f(line,)
+h(b)s(eha)m(v)m(es)g(iden)m(tically)h(to)e Fs(possible-)630
+2354 y(completions)p Ft(.)38 b(This)29 b(command)h(is)h(un)m(b)s(ound)d
+(b)m(y)i(default.)150 2527 y Fs(complete-filename)c(\(M-/\))630
+2637 y Ft(A)m(ttempt)32 b(\014lename)e(completion)i(on)e(the)h(text)g
+(b)s(efore)f(p)s(oin)m(t.)150 2810 y Fs(possible-filename-comple)o
+(tion)o(s)24 b(\(C-x)30 b(/\))630 2920 y Ft(List)f(the)g(p)s(ossible)f
+(completions)h(of)g(the)g(text)g(b)s(efore)g(p)s(oin)m(t,)g(treating)h
+(it)f(as)g(a)f(\014lename.)150 3093 y Fs(complete-username)e(\(M-~\))
+630 3203 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore)
+e(p)s(oin)m(t,)g(treating)i(it)f(as)f(a)h(username.)150
+3377 y Fs(possible-username-comple)o(tion)o(s)24 b(\(C-x)30
+b(~\))630 3486 y Ft(List)25 b(the)g(p)s(ossible)g(completions)h(of)f
+(the)g(text)h(b)s(efore)f(p)s(oin)m(t,)h(treating)g(it)g(as)f(a)g
+(username.)150 3660 y Fs(complete-variable)h(\(M-$\))630
+3769 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore)e(p)
+s(oin)m(t,)g(treating)i(it)f(as)f(a)h(shell)g(v)-5 b(ariable.)150
+3943 y Fs(possible-variable-comple)o(tion)o(s)24 b(\(C-x)30
+b($\))630 4052 y Ft(List)42 b(the)g(p)s(ossible)g(completions)h(of)f
+(the)g(text)h(b)s(efore)e(p)s(oin)m(t,)46 b(treating)d(it)f(as)g(a)h
+(shell)630 4162 y(v)-5 b(ariable.)150 4335 y Fs(complete-hostname)26
+b(\(M-@\))630 4445 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i
+(b)s(efore)e(p)s(oin)m(t,)g(treating)i(it)f(as)f(a)h(hostname.)150
+4619 y Fs(possible-hostname-comple)o(tion)o(s)24 b(\(C-x)30
+b(@\))630 4728 y Ft(List)25 b(the)g(p)s(ossible)f(completions)h(of)g
+(the)g(text)g(b)s(efore)g(p)s(oin)m(t,)h(treating)g(it)f(as)f(a)h
+(hostname.)150 4902 y Fs(complete-command)h(\(M-!\))630
+5011 y Ft(A)m(ttempt)32 b(completion)g(on)f(the)g(text)h(b)s(efore)e(p)
+s(oin)m(t,)h(treating)h(it)g(as)f(a)g(command)g(name.)630
+5121 y(Command)46 b(completion)i(attempts)g(to)f(matc)m(h)h(the)f(text)
+h(against)g(aliases,)53 b(reserv)m(ed)630 5230 y(w)m(ords,)36
+b(shell)g(functions,)h(shell)e(builtins,)i(and)e(\014nally)g
+(executable)i(\014lenames,)g(in)e(that)630 5340 y(order.)p
+eop end
+%%Page: 112 118
+TeXDict begin 112 117 bop 150 -116 a Ft(112)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(possible-command-complet)o(ions)24
+b(\(C-x)29 b(!\))630 408 y Ft(List)d(the)h(p)s(ossible)f(completions)h
+(of)f(the)h(text)g(b)s(efore)f(p)s(oin)m(t,)h(treating)g(it)g(as)g(a)f
+(command)630 518 y(name.)150 688 y Fs(dynamic-complete-history)e(\(M-)
+1470 685 y Fg(h)p 1493 632 148 4 v 1493 688 a Ff(T)-6
+b(AB)p 1493 703 V 1637 685 a Fg(i)1667 688 y Fs(\))630
+798 y Ft(A)m(ttempt)31 b(completion)h(on)e(the)g(text)h(b)s(efore)f(p)s
+(oin)m(t,)g(comparing)h(the)f(text)h(against)h(lines)630
+907 y(from)e(the)g(history)h(list)g(for)f(p)s(ossible)g(completion)i
+(matc)m(hes.)150 1077 y Fs(dabbrev-expand)26 b(\(\))630
+1187 y Ft(A)m(ttempt)i(men)m(u)e(completion)i(on)f(the)g(text)g(b)s
+(efore)f(p)s(oin)m(t,)i(comparing)f(the)g(text)h(against)630
+1297 y(lines)j(from)e(the)i(history)f(list)h(for)g(p)s(ossible)e
+(completion)j(matc)m(hes.)150 1467 y Fs(complete-into-braces)25
+b(\(M-{\))630 1576 y Ft(P)m(erform)f(\014lename)f(completion)i(and)f
+(insert)f(the)h(list)g(of)g(p)s(ossible)f(completions)i(enclosed)630
+1686 y(within)34 b(braces)h(so)f(the)h(list)g(is)g(a)m(v)-5
+b(ailable)37 b(to)e(the)g(shell)g(\(see)g(Section)h(3.5.1)g([Brace)g
+(Ex-)630 1795 y(pansion],)30 b(page)h(18\).)150 2041
+y Fk(8.4.7)63 b(Keyb)s(oard)41 b(Macros)150 2290 y Fs(start-kbd-macro)
+26 b(\(C-x)j(\(\))630 2400 y Ft(Begin)i(sa)m(ving)h(the)e(c)m
+(haracters)i(t)m(yp)s(ed)e(in)m(to)h(the)g(curren)m(t)f(k)m(eyb)s(oard)
+g(macro.)150 2570 y Fs(end-kbd-macro)d(\(C-x)i(\)\))630
+2680 y Ft(Stop)e(sa)m(ving)h(the)g(c)m(haracters)g(t)m(yp)s(ed)f(in)m
+(to)i(the)e(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i
+(the)630 2789 y(de\014nition.)150 2959 y Fs(call-last-kbd-macro)c
+(\(C-x)k(e\))630 3069 y Ft(Re-execute)37 b(the)e(last)h(k)m(eyb)s(oard)
+f(macro)h(de\014ned,)f(b)m(y)h(making)f(the)g(c)m(haracters)i(in)e(the)
+630 3178 y(macro)c(app)s(ear)f(as)g(if)h(t)m(yp)s(ed)f(at)h(the)f(k)m
+(eyb)s(oard.)150 3424 y Fk(8.4.8)63 b(Some)41 b(Miscellaneous)i
+(Commands)150 3673 y Fs(re-read-init-file)26 b(\(C-x)j(C-r\))630
+3783 y Ft(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g
+Fq(inputrc)27 b Ft(\014le,)d(and)d(incorp)s(orate)h(an)m(y)h(bindings)d
+(or)i(v)-5 b(ariable)630 3893 y(assignmen)m(ts)31 b(found)e(there.)150
+4063 y Fs(abort)g(\(C-g\))630 4172 y Ft(Ab)s(ort)d(the)h(curren)m(t)f
+(editing)h(command)f(and)g(ring)h(the)f(terminal's)h(b)s(ell)g(\(sub)5
+b(ject)26 b(to)i(the)630 4282 y(setting)j(of)g Fs(bell-style)p
+Ft(\).)150 4452 y Fs(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p
+Fj(x)p Fs(,)g(...)o(\))630 4561 y Ft(If)e(the)h(meta\014ed)g(c)m
+(haracter)h Fq(x)34 b Ft(is)28 b(lo)m(w)m(ercase,)i(run)d(the)g
+(command)h(that)g(is)g(b)s(ound)d(to)k(the)630 4671 y(corresp)s(onding)
+g(upp)s(ercase)h(c)m(haracter.)150 4841 y Fs(prefix-meta)d(\()753
+4838 y Fg(h)p 777 4785 139 4 v 777 4841 a Ff(ESC)p 777
+4856 V 911 4838 a Fg(i)941 4841 y Fs(\))630 4951 y Ft(Metafy)39
+b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62 b(This)37
+b(is)g(for)h(k)m(eyb)s(oards)f(without)g(a)h(meta)g(k)m(ey)-8
+b(.)630 5060 y(T)m(yping)30 b(`)968 5057 y Fg(h)p 993
+5004 V 993 5060 a Ff(ESC)p 993 5076 V 1127 5057 a Fg(i)1187
+5060 y Fs(f)p Ft(')g(is)g(equiv)-5 b(alen)m(t)32 b(to)f(t)m(yping)g
+Fj(M-f)p Ft(.)150 5230 y Fs(undo)e(\(C-_)g(or)h(C-x)g(C-u\))630
+5340 y Ft(Incremen)m(tal)h(undo,)f(separately)h(remem)m(b)s(ered)f(for)
+g(eac)m(h)i(line.)p eop end
+%%Page: 113 119
+TeXDict begin 113 118 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(113)150 299 y Fs(revert-line)27
+b(\(M-r\))630 408 y Ft(Undo)33 b(all)h(c)m(hanges)g(made)f(to)h(this)f
+(line.)49 b(This)32 b(is)h(lik)m(e)i(executing)f(the)f
+Fs(undo)f Ft(command)630 518 y(enough)e(times)h(to)g(get)h(bac)m(k)f
+(to)g(the)f(b)s(eginning.)150 708 y Fs(tilde-expand)d(\(M-&\))630
+818 y Ft(P)m(erform)j(tilde)h(expansion)g(on)f(the)g(curren)m(t)h(w)m
+(ord.)150 1008 y Fs(set-mark)d(\(C-@\))630 1118 y Ft(Set)33
+b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)48 b(If)32 b(a)h(n)m(umeric)g
+(argumen)m(t)g(is)g(supplied,)f(the)h(mark)g(is)f(set)630
+1228 y(to)f(that)g(p)s(osition.)150 1418 y Fs(exchange-point-and-mark)
+24 b(\(C-x)29 b(C-x\))630 1527 y Ft(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)
+g(the)g(mark.)43 b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f
+(set)h(to)f(the)h(sa)m(v)m(ed)630 1637 y(p)s(osition,)f(and)e(the)i
+(old)g(cursor)e(p)s(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150
+1827 y Fs(character-search)26 b(\(C-]\))630 1937 y Ft(A)f(c)m(haracter)
+h(is)f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g
+(o)s(ccurrence)g(of)g(that)g(c)m(haracter.)630 2047 y(A)30
+b(negativ)m(e)j(coun)m(t)e(searc)m(hes)g(for)f(previous)g(o)s
+(ccurrences.)150 2237 y Fs(character-search-backwar)o(d)24
+b(\(M-C-]\))630 2346 y Ft(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
+(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)f(the)g(previous)f(o)s(ccurrence)h(of)
+g(that)630 2456 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
+(searc)m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)150
+2646 y Fs(insert-comment)d(\(M-#\))630 2756 y Ft(Without)36
+b(a)g(n)m(umeric)g(argumen)m(t,)h(the)f(v)-5 b(alue)36
+b(of)g(the)g Fs(comment-begin)c Ft(v)-5 b(ariable)36
+b(is)g(in-)630 2866 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f
+(curren)m(t)h(line.)45 b(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)g
+(supplied,)630 2975 y(this)k(command)h(acts)g(as)g(a)g(toggle:)55
+b(if)37 b(the)f(c)m(haracters)i(at)g(the)e(b)s(eginning)g(of)h(the)g
+(line)630 3085 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5
+b(alue)31 b(of)f Fs(comment-begin)p Ft(,)e(the)i(v)-5
+b(alue)31 b(is)g(inserted,)g(otherwise)g(the)630 3194
+y(c)m(haracters)42 b(in)d Fs(comment-begin)e Ft(are)j(deleted)h(from)f
+(the)g(b)s(eginning)g(of)g(the)g(line.)71 b(In)630 3304
+y(either)37 b(case,)j(the)e(line)f(is)g(accepted)i(as)e(if)g(a)g
+(newline)g(had)g(b)s(een)f(t)m(yp)s(ed.)60 b(The)37 b(default)630
+3414 y(v)-5 b(alue)32 b(of)g Fs(comment-begin)c Ft(causes)k(this)f
+(command)h(to)g(mak)m(e)h(the)e(curren)m(t)h(line)g(a)g(shell)630
+3523 y(commen)m(t.)40 b(If)26 b(a)h(n)m(umeric)f(argumen)m(t)h(causes)g
+(the)f(commen)m(t)i(c)m(haracter)g(to)f(b)s(e)f(remo)m(v)m(ed,)630
+3633 y(the)31 b(line)f(will)h(b)s(e)f(executed)h(b)m(y)f(the)h(shell.)
+150 3823 y Fs(dump-functions)26 b(\(\))630 3933 y Ft(Prin)m(t)g(all)i
+(of)e(the)h(functions)f(and)g(their)g(k)m(ey)h(bindings)e(to)j(the)e
+(Readline)h(output)f(stream.)630 4042 y(If)31 b(a)h(n)m(umeric)g
+(argumen)m(t)g(is)g(supplied,)f(the)h(output)f(is)h(formatted)g(in)f
+(suc)m(h)h(a)g(w)m(a)m(y)g(that)630 4152 y(it)f(can)g(b)s(e)e(made)i
+(part)f(of)g(an)h Fq(inputrc)k Ft(\014le.)41 b(This)29
+b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k(default.)150
+4342 y Fs(dump-variables)26 b(\(\))630 4452 y Ft(Prin)m(t)21
+b(all)h(of)g(the)f(settable)i(v)-5 b(ariables)22 b(and)f(their)g(v)-5
+b(alues)22 b(to)g(the)f(Readline)h(output)f(stream.)630
+4561 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h
+(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)m(y)g(that)630
+4671 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fq(inputrc)k
+Ft(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k
+(default.)150 4861 y Fs(dump-macros)c(\(\))630 4971 y
+Ft(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)f(b)s
+(ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630
+5080 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
+(supplied,)h(the)g(output)g(is)f(formatted)i(in)e(suc)m(h)h(a)630
+5190 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e
+Fq(inputrc)35 b Ft(\014le.)41 b(This)29 b(command)h(is)g(un)m(b)s(ound)
+d(b)m(y)630 5300 y(default.)p eop end
+%%Page: 114 120
+TeXDict begin 114 119 bop 150 -116 a Ft(114)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(glob-complete-word)25
+b(\(M-g\))630 408 y Ft(The)i(w)m(ord)h(b)s(efore)f(p)s(oin)m(t)h(is)g
+(treated)h(as)f(a)h(pattern)f(for)f(pathname)h(expansion,)g(with)g(an)
+630 518 y(asterisk)d(implicitly)h(app)s(ended.)37 b(This)23
+b(pattern)i(is)f(used)g(to)h(generate)h(a)e(list)h(of)g(matc)m(hing)630
+628 y(\014le)30 b(names)h(for)f(p)s(ossible)g(completions.)150
+782 y Fs(glob-expand-word)c(\(C-x)j(*\))630 892 y Ft(The)40
+b(w)m(ord)g(b)s(efore)g(p)s(oin)m(t)h(is)g(treated)g(as)g(a)g(pattern)g
+(for)f(pathname)g(expansion,)k(and)630 1001 y(the)c(list)g(of)f(matc)m
+(hing)i(\014le)e(names)g(is)h(inserted,)h(replacing)g(the)e(w)m(ord.)67
+b(If)39 b(a)h(n)m(umeric)630 1111 y(argumen)m(t)31 b(is)f(supplied,)g
+(a)g(`)p Fs(*)p Ft(')h(is)f(app)s(ended)f(b)s(efore)h(pathname)g
+(expansion.)150 1266 y Fs(glob-list-expansions)25 b(\(C-x)k(g\))630
+1375 y Ft(The)k(list)h(of)f(expansions)g(that)h(w)m(ould)f(ha)m(v)m(e)h
+(b)s(een)f(generated)h(b)m(y)f Fs(glob-expand-word)630
+1485 y Ft(is)h(displa)m(y)m(ed,)h(and)e(the)h(line)g(is)f(redra)m(wn.)
+50 b(If)33 b(a)h(n)m(umeric)g(argumen)m(t)g(is)f(supplied,)h(a)g(`)p
+Fs(*)p Ft(')630 1594 y(is)c(app)s(ended)f(b)s(efore)h(pathname)g
+(expansion.)150 1749 y Fs(display-shell-version)25 b(\(C-x)k(C-v\))630
+1858 y Ft(Displa)m(y)j(v)m(ersion)e(information)h(ab)s(out)f(the)h
+(curren)m(t)f(instance)h(of)f(Bash.)150 2013 y Fs(shell-expand-line)c
+(\(M-C-e\))630 2123 y Ft(Expand)34 b(the)h(line)h(as)g(the)f(shell)h
+(do)s(es.)55 b(This)34 b(p)s(erforms)g(alias)i(and)f(history)g
+(expansion)630 2232 y(as)f(w)m(ell)g(as)g(all)h(of)e(the)h(shell)g(w)m
+(ord)f(expansions)g(\(see)i(Section)f(3.5)h([Shell)e(Expansions],)630
+2342 y(page)e(17\).)150 2496 y Fs(history-expand-line)25
+b(\(M-^\))630 2606 y Ft(P)m(erform)30 b(history)h(expansion)f(on)g(the)
+h(curren)m(t)f(line.)150 2760 y Fs(magic-space)d(\(\))630
+2870 y Ft(P)m(erform)c(history)g(expansion)g(on)g(the)g(curren)m(t)g
+(line)g(and)g(insert)g(a)g(space)h(\(see)g(Section)g(9.3)630
+2980 y([History)31 b(In)m(teraction],)i(page)e(123\).)150
+3134 y Fs(alias-expand-line)26 b(\(\))630 3244 y Ft(P)m(erform)i(alias)
+i(expansion)e(on)g(the)h(curren)m(t)f(line)h(\(see)g(Section)g(6.6)h
+([Aliases],)g(page)f(79\).)150 3398 y Fs(history-and-alias-expand)o
+(-lin)o(e)24 b(\(\))630 3508 y Ft(P)m(erform)30 b(history)h(and)e
+(alias)j(expansion)e(on)g(the)h(curren)m(t)f(line.)150
+3662 y Fs(insert-last-argument)25 b(\(M-.)k(or)h(M-_\))630
+3772 y Ft(A)g(synon)m(ym)g(for)g Fs(yank-last-arg)p Ft(.)150
+3927 y Fs(operate-and-get-next)25 b(\(C-o\))630 4036
+y Ft(Accept)42 b(the)e(curren)m(t)h(line)f(for)h(execution)g(and)f
+(fetc)m(h)i(the)e(next)h(line)g(relativ)m(e)i(to)e(the)630
+4146 y(curren)m(t)30 b(line)h(from)f(the)g(history)h(for)f(editing.)41
+b(An)m(y)31 b(argumen)m(t)f(is)h(ignored.)150 4300 y
+Fs(edit-and-execute-command)24 b(\(C-xC-e\))630 4410
+y Ft(In)m(v)m(ok)m(e)34 b(an)f(editor)g(on)g(the)g(curren)m(t)f
+(command)h(line,)h(and)e(execute)i(the)f(result)g(as)g(shell)630
+4519 y(commands.)81 b(Bash)44 b(attempts)h(to)g(in)m(v)m(ok)m(e)h
+Fs($VISUAL)p Ft(,)f Fs($EDITOR)p Ft(,)h(and)d Fs(emacs)g
+Ft(as)h(the)630 4629 y(editor,)31 b(in)f(that)h(order.)150
+4879 y Fr(8.5)68 b(Readline)47 b(vi)e(Mo)t(de)275 5121
+y Ft(While)24 b(the)g(Readline)g(library)f(do)s(es)h(not)g(ha)m(v)m(e)g
+(a)h(full)e(set)h(of)g Fs(vi)f Ft(editing)h(functions,)h(it)f(do)s(es)g
+(con)m(tain)150 5230 y(enough)34 b(to)h(allo)m(w)g(simple)f(editing)h
+(of)f(the)g(line.)52 b(The)34 b(Readline)g Fs(vi)g Ft(mo)s(de)f(b)s
+(eha)m(v)m(es)i(as)f(sp)s(eci\014ed)f(in)150 5340 y(the)e
+Fl(posix)e Ft(1003.2)k(standard.)p eop end
+%%Page: 115 121
+TeXDict begin 115 120 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(115)275 299 y(In)35
+b(order)g(to)i(switc)m(h)f(in)m(teractiv)m(ely)j(b)s(et)m(w)m(een)d
+Fs(emacs)f Ft(and)g Fs(vi)g Ft(editing)h(mo)s(des,)h(use)f(the)g(`)p
+Fs(set)30 b(-o)150 408 y(emacs)p Ft(')43 b(and)h(`)p
+Fs(set)30 b(-o)f(vi)p Ft(')44 b(commands)g(\(see)i(Section)f(4.3.1)h
+([The)e(Set)h(Builtin],)j(page)e(51\).)83 b(The)150 518
+y(Readline)31 b(default)g(is)f Fs(emacs)f Ft(mo)s(de.)275
+651 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f(in)g Fs(vi)f
+Ft(mo)s(de,)h(y)m(ou)h(are)f(already)h(placed)f(in)g(`insertion')g(mo)s
+(de,)g(as)h(if)f(y)m(ou)150 760 y(had)c(t)m(yp)s(ed)g(an)g(`)p
+Fs(i)p Ft('.)39 b(Pressing)1215 757 y Fg(h)p 1239 704
+139 4 v 1239 760 a Ff(ESC)p 1239 776 V 1373 757 a Fg(i)1429
+760 y Ft(switc)m(hes)27 b(y)m(ou)g(in)m(to)g(`command')f(mo)s(de,)h
+(where)f(y)m(ou)h(can)f(edit)h(the)150 870 y(text)35
+b(of)f(the)g(line)g(with)f(the)h(standard)f Fs(vi)g Ft(mo)m(v)m(emen)m
+(t)j(k)m(eys,)g(mo)m(v)m(e)f(to)f(previous)g(history)f(lines)h(with)150
+980 y(`)p Fs(k)p Ft(')d(and)e(subsequen)m(t)h(lines)h(with)f(`)p
+Fs(j)p Ft(',)g(and)g(so)h(forth.)150 1232 y Fr(8.6)68
+b(Programmable)47 b(Completion)275 1474 y Ft(When)25
+b(w)m(ord)g(completion)i(is)f(attempted)g(for)g(an)f(argumen)m(t)h(to)h
+(a)f(command)f(for)h(whic)m(h)f(a)h(comple-)150 1584
+y(tion)f(sp)s(eci\014cation)g(\(a)h Fq(compsp)s(ec)6
+b Ft(\))24 b(has)g(b)s(een)g(de\014ned)g(using)g(the)g
+Fs(complete)f Ft(builtin)h(\(see)h(Section)h(8.7)150
+1694 y([Programmable)e(Completion)g(Builtins],)h(page)f(116\),)j(the)c
+(programmable)h(completion)g(facilities)i(are)150 1803
+y(in)m(v)m(ok)m(ed.)275 1936 y(First,)d(the)e(command)g(name)g(is)h
+(iden)m(ti\014ed.)37 b(If)21 b(a)g(compsp)s(ec)g(has)g(b)s(een)f
+(de\014ned)g(for)h(that)h(command,)150 2046 y(the)44
+b(compsp)s(ec)g(is)g(used)f(to)h(generate)i(the)e(list)g(of)g(p)s
+(ossible)g(completions)h(for)e(the)h(w)m(ord.)81 b(If)44
+b(the)150 2155 y(command)33 b(w)m(ord)f(is)h(a)g(full)g(pathname,)h(a)f
+(compsp)s(ec)f(for)h(the)g(full)g(pathname)f(is)h(searc)m(hed)h(for)e
+(\014rst.)150 2265 y(If)f(no)h(compsp)s(ec)f(is)h(found)e(for)h(the)h
+(full)g(pathname,)g(an)f(attempt)i(is)f(made)f(to)i(\014nd)d(a)i
+(compsp)s(ec)f(for)150 2374 y(the)g(p)s(ortion)f(follo)m(wing)h(the)g
+(\014nal)f(slash.)275 2507 y(Once)k(a)g(compsp)s(ec)g(has)g(b)s(een)f
+(found,)h(it)h(is)f(used)f(to)i(generate)h(the)e(list)h(of)f(matc)m
+(hing)h(w)m(ords.)51 b(If)150 2617 y(a)37 b(compsp)s(ec)f(is)g(not)h
+(found,)f(the)h(default)f(Bash)h(completion)g(describ)s(ed)e(ab)s(o)m
+(v)m(e)j(\(see)f(Section)g(8.4.6)150 2726 y([Commands)30
+b(F)-8 b(or)31 b(Completion],)g(page)g(110\))h(is)f(p)s(erformed.)275
+2859 y(First,)g(the)g(actions)g(sp)s(eci\014ed)f(b)m(y)h(the)f(compsp)s
+(ec)h(are)g(used.)40 b(Only)30 b(matc)m(hes)i(whic)m(h)e(are)h
+(pre\014xed)150 2969 y(b)m(y)25 b(the)h(w)m(ord)f(b)s(eing)f(completed)
+j(are)e(returned.)38 b(When)25 b(the)h(`)p Fs(-f)p Ft(')f(or)g(`)p
+Fs(-d)p Ft(')g(option)h(is)f(used)g(for)g(\014lename)150
+3078 y(or)30 b(directory)h(name)f(completion,)i(the)e(shell)h(v)-5
+b(ariable)31 b Fs(FIGNORE)d Ft(is)i(used)f(to)i(\014lter)g(the)f(matc)m
+(hes.)42 b(See)150 3188 y(Section)31 b(5.2)h([Bash)e(V)-8
+b(ariables],)33 b(page)e(61,)g(for)f(a)h(description)g(of)f
+Fs(FIGNORE)p Ft(.)275 3321 y(An)m(y)f(completions)h(sp)s(eci\014ed)f(b)
+m(y)g(a)h(\014lename)f(expansion)h(pattern)f(to)h(the)g(`)p
+Fs(-G)p Ft(')f(option)h(are)f(gener-)150 3430 y(ated)h(next.)40
+b(The)29 b(w)m(ords)g(generated)h(b)m(y)f(the)h(pattern)f(need)g(not)g
+(matc)m(h)i(the)e(w)m(ord)g(b)s(eing)g(completed.)150
+3540 y(The)42 b Fs(GLOBIGNORE)d Ft(shell)k(v)-5 b(ariable)43
+b(is)f(not)h(used)e(to)i(\014lter)f(the)h(matc)m(hes,)j(but)c(the)g
+Fs(FIGNORE)f Ft(shell)150 3650 y(v)-5 b(ariable)31 b(is)g(used.)275
+3782 y(Next,)k(the)g(string)e(sp)s(eci\014ed)h(as)g(the)g(argumen)m(t)g
+(to)h(the)f(`)p Fs(-W)p Ft(')g(option)g(is)g(considered.)52
+b(The)33 b(string)150 3892 y(is)g(\014rst)e(split)i(using)f(the)h(c)m
+(haracters)h(in)e(the)h Fs(IFS)e Ft(sp)s(ecial)j(v)-5
+b(ariable)33 b(as)g(delimiters.)48 b(Shell)32 b(quoting)h(is)150
+4002 y(honored.)56 b(Eac)m(h)37 b(w)m(ord)e(is)h(then)f(expanded)g
+(using)h(brace)g(expansion,)h(tilde)f(expansion,)h(parameter)150
+4111 y(and)44 b(v)-5 b(ariable)46 b(expansion,)j(command)44
+b(substitution,)49 b(and)44 b(arithmetic)i(expansion,)j(as)c(describ)s
+(ed)150 4221 y(ab)s(o)m(v)m(e)38 b(\(see)f(Section)h(3.5)g([Shell)e
+(Expansions],)i(page)f(17\).)61 b(The)36 b(results)h(are)g(split)f
+(using)h(the)f(rules)150 4330 y(describ)s(ed)29 b(ab)s(o)m(v)m(e)i
+(\(see)f(Section)h(3.5.7)h([W)-8 b(ord)30 b(Splitting],)h(page)f(24\).)
+42 b(The)30 b(results)f(of)h(the)g(expansion)150 4440
+y(are)f(pre\014x-matc)m(hed)h(against)g(the)f(w)m(ord)g(b)s(eing)f
+(completed,)j(and)d(the)i(matc)m(hing)g(w)m(ords)e(b)s(ecome)i(the)150
+4550 y(p)s(ossible)g(completions.)275 4682 y(After)f(these)g(matc)m
+(hes)i(ha)m(v)m(e)f(b)s(een)f(generated,)h(an)m(y)g(shell)f(function)g
+(or)g(command)g(sp)s(eci\014ed)f(with)150 4792 y(the)i(`)p
+Fs(-F)p Ft(')g(and)f(`)p Fs(-C)p Ft(')h(options)g(is)g(in)m(v)m(ok)m
+(ed.)41 b(When)30 b(the)g(command)g(or)f(function)h(is)g(in)m(v)m(ok)m
+(ed,)h(the)f Fs(COMP_)150 4902 y(LINE)p Ft(,)42 b Fs(COMP_POINT)p
+Ft(,)d Fs(COMP_KEY)p Ft(,)i(and)e Fs(COMP_TYPE)f Ft(v)-5
+b(ariables)41 b(are)f(assigned)g(v)-5 b(alues)41 b(as)f(describ)s(ed)
+150 5011 y(ab)s(o)m(v)m(e)k(\(see)g(Section)f(5.2)h([Bash)f(V)-8
+b(ariables],)48 b(page)c(61\).)79 b(If)42 b(a)i(shell)f(function)f(is)h
+(b)s(eing)f(in)m(v)m(ok)m(ed,)150 5121 y(the)37 b Fs(COMP_WORDS)d
+Ft(and)i Fs(COMP_CWORD)e Ft(v)-5 b(ariables)38 b(are)f(also)h(set.)60
+b(When)37 b(the)g(function)f(or)h(command)150 5230 y(is)42
+b(in)m(v)m(ok)m(ed,)k(the)41 b(\014rst)g(argumen)m(t)h(is)g(the)g(name)
+f(of)h(the)g(command)f(whose)h(argumen)m(ts)f(are)h(b)s(eing)150
+5340 y(completed,)d(the)d(second)g(argumen)m(t)h(is)f(the)g(w)m(ord)g
+(b)s(eing)g(completed,)i(and)e(the)g(third)f(argumen)m(t)i(is)p
+eop end
+%%Page: 116 122
+TeXDict begin 116 121 bop 150 -116 a Ft(116)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y(the)d(w)m(ord)g(preceding)h(the)f(w)m
+(ord)g(b)s(eing)g(completed)h(on)f(the)h(curren)m(t)f(command)g(line.)
+40 b(No)29 b(\014ltering)g(of)150 408 y(the)i(generated)h(completions)h
+(against)f(the)f(w)m(ord)g(b)s(eing)g(completed)h(is)f(p)s(erformed;)f
+(the)h(function)g(or)150 518 y(command)f(has)g(complete)i(freedom)e(in)
+g(generating)i(the)f(matc)m(hes.)275 660 y(An)m(y)g(function)h(sp)s
+(eci\014ed)f(with)g(`)p Fs(-F)p Ft(')h(is)g(in)m(v)m(ok)m(ed)h
+(\014rst.)44 b(The)31 b(function)h(ma)m(y)g(use)g(an)m(y)g(of)g(the)g
+(shell)150 770 y(facilities,)50 b(including)44 b(the)h
+Fs(compgen)d Ft(and)i Fs(compopt)e Ft(builtins)i(describ)s(ed)f(b)s
+(elo)m(w)h(\(see)i(Section)f(8.7)150 879 y([Programmable)31
+b(Completion)h(Builtins],)f(page)h(116\),)g(to)g(generate)g(the)f(matc)
+m(hes.)42 b(It)31 b(m)m(ust)g(put)f(the)150 989 y(p)s(ossible)g
+(completions)h(in)f(the)h Fs(COMPREPLY)d Ft(arra)m(y)j(v)-5
+b(ariable.)275 1131 y(Next,)23 b(an)m(y)e(command)f(sp)s(eci\014ed)g
+(with)g(the)h(`)p Fs(-C)p Ft(')f(option)h(is)g(in)m(v)m(ok)m(ed)h(in)e
+(an)g(en)m(vironmen)m(t)h(equiv)-5 b(alen)m(t)150 1240
+y(to)26 b(command)e(substitution.)39 b(It)25 b(should)f(prin)m(t)h(a)g
+(list)h(of)f(completions,)i(one)e(p)s(er)f(line,)j(to)f(the)f(standard)
+150 1350 y(output.)40 b(Bac)m(kslash)32 b(ma)m(y)f(b)s(e)f(used)g(to)h
+(escap)s(e)g(a)f(newline,)h(if)f(necessary)-8 b(.)275
+1492 y(After)42 b(all)g(of)g(the)g(p)s(ossible)g(completions)h(are)f
+(generated,)k(an)m(y)c(\014lter)g(sp)s(eci\014ed)f(with)h(the)g(`)p
+Fs(-X)p Ft(')150 1602 y(option)34 b(is)f(applied)g(to)h(the)f(list.)49
+b(The)33 b(\014lter)g(is)g(a)h(pattern)f(as)g(used)g(for)g(pathname)g
+(expansion;)h(a)g(`)p Fs(&)p Ft(')150 1711 y(in)39 b(the)g(pattern)g
+(is)g(replaced)g(with)g(the)g(text)h(of)f(the)g(w)m(ord)g(b)s(eing)f
+(completed.)68 b(A)39 b(literal)h(`)p Fs(&)p Ft(')f(ma)m(y)150
+1821 y(b)s(e)e(escap)s(ed)h(with)g(a)h(bac)m(kslash;)k(the)38
+b(bac)m(kslash)h(is)f(remo)m(v)m(ed)h(b)s(efore)e(attempting)j(a)e
+(matc)m(h.)65 b(An)m(y)150 1930 y(completion)35 b(that)g(matc)m(hes)g
+(the)f(pattern)g(will)g(b)s(e)g(remo)m(v)m(ed)h(from)e(the)h(list.)53
+b(A)34 b(leading)g(`)p Fs(!)p Ft(')h(negates)150 2040
+y(the)c(pattern;)f(in)g(this)h(case)g(an)m(y)g(completion)g(not)g(matc)
+m(hing)h(the)e(pattern)h(will)f(b)s(e)g(remo)m(v)m(ed.)275
+2182 y(Finally)-8 b(,)33 b(an)m(y)f(pre\014x)f(and)g(su\016x)g(sp)s
+(eci\014ed)g(with)h(the)g(`)p Fs(-P)p Ft(')f(and)g(`)p
+Fs(-S)p Ft(')h(options)g(are)g(added)f(to)i(eac)m(h)150
+2292 y(mem)m(b)s(er)e(of)g(the)h(completion)h(list,)f(and)f(the)h
+(result)f(is)h(returned)e(to)i(the)g(Readline)g(completion)h(co)s(de)
+150 2401 y(as)e(the)f(list)h(of)g(p)s(ossible)f(completions.)275
+2543 y(If)22 b(the)i(previously-applied)f(actions)i(do)e(not)h
+(generate)h(an)m(y)f(matc)m(hes,)i(and)d(the)g(`)p Fs(-o)30
+b(dirnames)p Ft(')22 b(op-)150 2653 y(tion)29 b(w)m(as)f(supplied)f(to)
+i Fs(complete)d Ft(when)h(the)h(compsp)s(ec)g(w)m(as)g(de\014ned,)g
+(directory)g(name)h(completion)150 2762 y(is)h(attempted.)275
+2904 y(If)g(the)i(`)p Fs(-o)e(plusdirs)p Ft(')f(option)j(w)m(as)f
+(supplied)f(to)i Fs(complete)e Ft(when)g(the)h(compsp)s(ec)g(w)m(as)h
+(de\014ned,)150 3014 y(directory)k(name)f(completion)i(is)e(attempted)h
+(and)f(an)m(y)h(matc)m(hes)g(are)g(added)f(to)h(the)f(results)g(of)h
+(the)150 3123 y(other)31 b(actions.)275 3265 y(By)g(default,)i(if)e(a)h
+(compsp)s(ec)f(is)h(found,)f(whatev)m(er)h(it)g(generates)h(is)e
+(returned)g(to)h(the)g(completion)150 3375 y(co)s(de)21
+b(as)g(the)g(full)g(set)g(of)g(p)s(ossible)f(completions.)39
+b(The)20 b(default)h(Bash)g(completions)h(are)g(not)f(attempted,)150
+3485 y(and)k(the)h(Readline)g(default)g(of)g(\014lename)g(completion)h
+(is)f(disabled.)38 b(If)26 b(the)g(`)p Fs(-o)k(bashdefault)p
+Ft(')22 b(option)150 3594 y(w)m(as)i(supplied)e(to)j
+Fs(complete)c Ft(when)i(the)g(compsp)s(ec)h(w)m(as)g(de\014ned,)g(the)f
+(default)h(Bash)g(completions)h(are)150 3704 y(attempted)f(if)f(the)g
+(compsp)s(ec)g(generates)i(no)e(matc)m(hes.)39 b(If)23
+b(the)g(`)p Fs(-o)30 b(default)p Ft(')21 b(option)j(w)m(as)f(supplied)f
+(to)150 3813 y Fs(complete)j Ft(when)h(the)h(compsp)s(ec)f(w)m(as)i
+(de\014ned,)e(Readline's)i(default)f(completion)h(will)f(b)s(e)f(p)s
+(erformed)150 3923 y(if)k(the)h(compsp)s(ec)f(\(and,)g(if)h(attempted,)
+g(the)g(default)f(Bash)h(completions\))h(generate)g(no)e(matc)m(hes.)
+275 4065 y(When)20 b(a)i(compsp)s(ec)e(indicates)i(that)g(directory)g
+(name)f(completion)h(is)f(desired,)i(the)e(programmable)150
+4175 y(completion)31 b(functions)e(force)i(Readline)f(to)h(app)s(end)d
+(a)i(slash)g(to)g(completed)h(names)e(whic)m(h)h(are)g(sym-)150
+4284 y(b)s(olic)40 b(links)g(to)h(directories,)j(sub)5
+b(ject)40 b(to)h(the)f(v)-5 b(alue)41 b(of)f(the)g Fq(mark-directories)
+45 b Ft(Readline)c(v)-5 b(ariable,)150 4394 y(regardless)31
+b(of)f(the)h(setting)g(of)g(the)f Fq(mark-symlink)m(ed-directories)36
+b Ft(Readline)31 b(v)-5 b(ariable.)150 4670 y Fr(8.7)68
+b(Programmable)47 b(Completion)f(Builtins)275 4921 y
+Ft(Tw)m(o)30 b(builtin)g(commands)g(are)h(a)m(v)-5 b(ailable)32
+b(to)f(manipulate)g(the)g(programmable)f(completion)i(facil-)150
+5031 y(ities.)150 5202 y Fs(compgen)870 5340 y(compgen)46
+b([)p Fj(option)11 b Fs(])45 b([)p Fj(word)11 b Fs(])p
+eop end
+%%Page: 117 123
+TeXDict begin 117 122 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(117)630 299 y(Generate)27
+b(p)s(ossible)e(completion)i(matc)m(hes)g(for)e Fq(w)m(ord)k
+Ft(according)e(to)f(the)g Fq(option)p Ft(s,)h(whic)m(h)630
+408 y(ma)m(y)h(b)s(e)f(an)m(y)h(option)g(accepted)h(b)m(y)e(the)h
+Fs(complete)d Ft(builtin)j(with)f(the)h(exception)g(of)g(`)p
+Fs(-p)p Ft(')630 518 y(and)k(`)p Fs(-r)p Ft(',)i(and)e(write)h(the)g
+(matc)m(hes)h(to)g(the)f(standard)f(output.)48 b(When)33
+b(using)f(the)h(`)p Fs(-F)p Ft(')630 628 y(or)28 b(`)p
+Fs(-C)p Ft(')g(options,)h(the)f(v)-5 b(arious)29 b(shell)f(v)-5
+b(ariables)29 b(set)f(b)m(y)g(the)g(programmable)h(completion)630
+737 y(facilities,)k(while)d(a)m(v)-5 b(ailable,)33 b(will)e(not)g(ha)m
+(v)m(e)g(useful)f(v)-5 b(alues.)630 881 y(The)34 b(matc)m(hes)h(will)g
+(b)s(e)f(generated)h(in)f(the)h(same)g(w)m(a)m(y)g(as)g(if)f(the)h
+(programmable)f(com-)630 991 y(pletion)d(co)s(de)g(had)f(generated)i
+(them)e(directly)i(from)e(a)h(completion)h(sp)s(eci\014cation)f(with)
+630 1100 y(the)e(same)h(\015ags.)40 b(If)29 b Fq(w)m(ord)j
+Ft(is)d(sp)s(eci\014ed,)g(only)g(those)h(completions)g(matc)m(hing)g
+Fq(w)m(ord)j Ft(will)630 1210 y(b)s(e)d(displa)m(y)m(ed.)630
+1354 y(The)24 b(return)g(v)-5 b(alue)25 b(is)g(true)f(unless)g(an)h(in)
+m(v)-5 b(alid)25 b(option)g(is)g(supplied,)f(or)h(no)g(matc)m(hes)g(w)m
+(ere)630 1463 y(generated.)150 1641 y Fs(complete)870
+1785 y(complete)46 b([-abcdefgjksuv])d([-o)k Fj(comp-option)11
+b Fs(])44 b([-E])j([-A)g Fj(action)11 b Fs(])45 b([-)870
+1895 y(G)i Fj(globpat)11 b Fs(])46 b([-W)g Fj(wordlist)11
+b Fs(])870 2004 y([-F)47 b Fj(function)11 b Fs(])45 b([-C)i
+Fj(command)11 b Fs(])45 b([-X)i Fj(filterpat)11 b Fs(])870
+2114 y([-P)47 b Fj(prefix)11 b Fs(])45 b([-S)i Fj(suffix)11
+b Fs(])45 b Fj(name)58 b Fs([)p Fj(name)f Fs(...)o(])870
+2224 y(complete)46 b(-pr)g([-E])h([)p Fj(name)57 b Fs(...)o(])630
+2367 y Ft(Sp)s(ecify)33 b(ho)m(w)h(argumen)m(ts)h(to)f(eac)m(h)i
+Fq(name)j Ft(should)33 b(b)s(e)g(completed.)53 b(If)33
+b(the)i(`)p Fs(-p)p Ft(')e(option)630 2477 y(is)d(supplied,)e(or)i(if)g
+(no)f(options)h(are)g(supplied,)f(existing)h(completion)h(sp)s
+(eci\014cations)g(are)630 2587 y(prin)m(ted)21 b(in)g(a)g(w)m(a)m(y)h
+(that)g(allo)m(ws)g(them)f(to)h(b)s(e)f(reused)f(as)i(input.)36
+b(The)21 b(`)p Fs(-r)p Ft(')g(option)h(remo)m(v)m(es)630
+2696 y(a)46 b(completion)g(sp)s(eci\014cation)g(for)f(eac)m(h)h
+Fq(name)p Ft(,)j(or,)g(if)c(no)h Fq(name)5 b Ft(s)45
+b(are)g(supplied,)j(all)630 2806 y(completion)29 b(sp)s
+(eci\014cations.)40 b(The)27 b(`)p Fs(-E)p Ft(')g(option)h(indicates)g
+(that)g(the)f(remaining)h(options)630 2915 y(and)e(actions)i(should)d
+(apply)i(to)g(\\empt)m(y")h(command)e(completion;)k(that)d(is,)h
+(completion)630 3025 y(attempted)j(on)g(a)f(blank)g(line.)630
+3169 y(The)f(pro)s(cess)g(of)h(applying)g(these)g(completion)g(sp)s
+(eci\014cations)h(when)d(w)m(ord)i(completion)630 3278
+y(is)35 b(attempted)h(is)f(describ)s(ed)f(ab)s(o)m(v)m(e)j(\(see)f
+(Section)g(8.6)g([Programmable)g(Completion],)630 3388
+y(page)31 b(115\).)630 3532 y(Other)41 b(options,)46
+b(if)41 b(sp)s(eci\014ed,)j(ha)m(v)m(e)f(the)f(follo)m(wing)i
+(meanings.)75 b(The)41 b(argumen)m(ts)h(to)630 3641 y(the)e(`)p
+Fs(-G)p Ft(',)j(`)p Fs(-W)p Ft(',)g(and)d(`)p Fs(-X)p
+Ft(')g(options)g(\(and,)j(if)d(necessary)-8 b(,)44 b(the)c(`)p
+Fs(-P)p Ft(')h(and)e(`)p Fs(-S)p Ft(')h(options\))630
+3751 y(should)30 b(b)s(e)h(quoted)g(to)h(protect)g(them)f(from)g
+(expansion)g(b)s(efore)g(the)g Fs(complete)e Ft(builtin)630
+3861 y(is)h(in)m(v)m(ok)m(ed.)630 4039 y Fs(-o)g Fj(comp-option)1110
+4148 y Ft(The)c Fq(comp-option)i Ft(con)m(trols)g(sev)m(eral)h(asp)s
+(ects)e(of)g(the)g(compsp)s(ec's)g(b)s(eha)m(v-)1110
+4258 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h(generation)h(of)e
+(completions.)41 b Fq(comp-option)27 b Ft(ma)m(y)1110
+4367 y(b)s(e)j(one)g(of:)1110 4545 y Fs(bashdefault)1590
+4655 y Ft(P)m(erform)d(the)h(rest)f(of)h(the)g(default)f(Bash)h
+(completions)g(if)g(the)1590 4765 y(compsp)s(ec)i(generates)i(no)e
+(matc)m(hes.)1110 4943 y Fs(default)144 b Ft(Use)22 b(Readline's)g
+(default)g(\014lename)g(completion)g(if)g(the)g(comp-)1590
+5052 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110
+5230 y Fs(dirnames)96 b Ft(P)m(erform)46 b(directory)g(name)h
+(completion)g(if)f(the)g(compsp)s(ec)1590 5340 y(generates)32
+b(no)e(matc)m(hes.)p eop end
+%%Page: 118 124
+TeXDict begin 118 123 bop 150 -116 a Ft(118)2527 b(Bash)31
+b(Reference)g(Man)m(ual)1110 299 y Fs(filenames)1590
+408 y Ft(T)-8 b(ell)40 b(Readline)f(that)h(the)f(compsp)s(ec)f
+(generates)j(\014lenames,)1590 518 y(so)29 b(it)h(can)f(p)s(erform)f
+(an)m(y)h(\014lename-sp)s(eci\014c)h(pro)s(cessing)e(\(lik)m(e)1590
+628 y(adding)d(a)h(slash)f(to)h(directory)g(names)f(quoting)h(sp)s
+(ecial)g(c)m(har-)1590 737 y(acters,)39 b(or)d(suppressing)f(trailing)i
+(spaces\).)59 b(This)35 b(option)i(is)1590 847 y(in)m(tended)30
+b(to)g(b)s(e)g(used)f(with)g(shell)i(functions)e(sp)s(eci\014ed)g(with)
+1590 956 y(`)p Fs(-F)p Ft('.)1110 1115 y Fs(nospace)144
+b Ft(T)-8 b(ell)40 b(Readline)g(not)g(to)g(app)s(end)d(a)j(space)g
+(\(the)f(default\))h(to)1590 1224 y(w)m(ords)30 b(completed)h(at)g(the)
+g(end)f(of)g(the)h(line.)1110 1383 y Fs(plusdirs)96 b
+Ft(After)30 b(an)m(y)h(matc)m(hes)g(de\014ned)d(b)m(y)i(the)g(compsp)s
+(ec)g(are)g(gener-)1590 1492 y(ated,)g(directory)f(name)g(completion)i
+(is)d(attempted)i(and)f(an)m(y)1590 1602 y(matc)m(hes)j(are)e(added)g
+(to)h(the)g(results)f(of)g(the)h(other)g(actions.)630
+1760 y Fs(-A)f Fj(action)1110 1870 y Ft(The)25 b Fq(action)h
+Ft(ma)m(y)g(b)s(e)e(one)h(of)h(the)f(follo)m(wing)i(to)e(generate)i(a)e
+(list)h(of)f(p)s(ossible)1110 1979 y(completions:)1110
+2138 y Fs(alias)240 b Ft(Alias)31 b(names.)41 b(Ma)m(y)31
+b(also)h(b)s(e)e(sp)s(eci\014ed)f(as)i(`)p Fs(-a)p Ft('.)1110
+2296 y Fs(arrayvar)96 b Ft(Arra)m(y)31 b(v)-5 b(ariable)31
+b(names.)1110 2454 y Fs(binding)144 b Ft(Readline)30
+b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h([Bindable)1590
+2564 y(Readline)h(Commands],)f(page)h(106\).)1110 2722
+y Fs(builtin)144 b Ft(Names)21 b(of)g(shell)f(builtin)h(commands.)37
+b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 2832
+y(as)31 b(`)p Fs(-b)p Ft('.)1110 2990 y Fs(command)144
+b Ft(Command)29 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s
+(eci\014ed)f(as)i(`)p Fs(-c)p Ft('.)1110 3148 y Fs(directory)1590
+3258 y Ft(Directory)h(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s
+(eci\014ed)g(as)g(`)p Fs(-d)p Ft('.)1110 3416 y Fs(disabled)96
+b Ft(Names)31 b(of)g(disabled)f(shell)g(builtins.)1110
+3574 y Fs(enabled)144 b Ft(Names)31 b(of)g(enabled)f(shell)g(builtins.)
+1110 3733 y Fs(export)192 b Ft(Names)34 b(of)f(exp)s(orted)f(shell)h(v)
+-5 b(ariables.)49 b(Ma)m(y)35 b(also)e(b)s(e)g(sp)s(eci-)1590
+3842 y(\014ed)d(as)g(`)p Fs(-e)p Ft('.)1110 4001 y Fs(file)288
+b Ft(File)32 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f
+(as)i(`)p Fs(-f)p Ft('.)1110 4159 y Fs(function)96 b
+Ft(Names)31 b(of)g(shell)f(functions.)1110 4317 y Fs(group)240
+b Ft(Group)30 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g
+(as)g(`)p Fs(-g)p Ft('.)1110 4475 y Fs(helptopic)1590
+4585 y Ft(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h
+Fs(help)f Ft(builtin)g(\(see)h(Sec-)1590 4695 y(tion)31
+b(4.2)g([Bash)g(Builtins],)g(page)g(41\).)1110 4853 y
+Fs(hostname)96 b Ft(Hostnames,)89 b(as)76 b(tak)m(en)h(from)f(the)g
+(\014le)h(sp)s(eci\014ed)e(b)m(y)1590 4963 y(the)55 b
+Fs(HOSTFILE)e Ft(shell)j(v)-5 b(ariable)56 b(\(see)g(Section)g(5.2)h
+([Bash)1590 5072 y(V)-8 b(ariables],)32 b(page)f(61\).)1110
+5230 y Fs(job)336 b Ft(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f
+(activ)m(e.)46 b(Ma)m(y)33 b(also)g(b)s(e)e(sp)s(eci-)1590
+5340 y(\014ed)f(as)g(`)p Fs(-j)p Ft('.)p eop end
+%%Page: 119 125
+TeXDict begin 119 124 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(119)1110 299 y Fs(keyword)144
+b Ft(Shell)30 b(reserv)m(ed)h(w)m(ords.)40 b(Ma)m(y)32
+b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i(`)p Fs(-k)p Ft('.)1110
+467 y Fs(running)144 b Ft(Names)31 b(of)g(running)d(jobs,)i(if)h(job)f
+(con)m(trol)h(is)g(activ)m(e.)1110 635 y Fs(service)144
+b Ft(Service)31 b(names.)41 b(Ma)m(y)31 b(also)g(b)s(e)f(sp)s
+(eci\014ed)g(as)g(`)p Fs(-s)p Ft('.)1110 803 y Fs(setopt)192
+b Ft(V)-8 b(alid)34 b(argumen)m(ts)f(for)f(the)h(`)p
+Fs(-o)p Ft(')g(option)g(to)h(the)f Fs(set)e Ft(builtin)1590
+913 y(\(see)g(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f(51\).)
+1110 1081 y Fs(shopt)240 b Ft(Shell)40 b(option)g(names)g(as)g
+(accepted)i(b)m(y)e(the)g Fs(shopt)e Ft(builtin)1590
+1190 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(41\).)
+1110 1358 y Fs(signal)192 b Ft(Signal)31 b(names.)1110
+1526 y Fs(stopped)144 b Ft(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g
+(job)g(con)m(trol)i(is)f(activ)m(e.)1110 1694 y Fs(user)288
+b Ft(User)30 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f
+(as)i(`)p Fs(-u)p Ft('.)1110 1862 y Fs(variable)96 b
+Ft(Names)36 b(of)g(all)g(shell)g(v)-5 b(ariables.)56
+b(Ma)m(y)37 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)1590
+1972 y(`)p Fs(-v)p Ft('.)630 2140 y Fs(-G)30 b Fj(globpat)1110
+2250 y Ft(The)39 b(\014lename)h(expansion)g(pattern)g
+Fq(globpat)j Ft(is)d(expanded)f(to)h(generate)1110 2359
+y(the)31 b(p)s(ossible)e(completions.)630 2527 y Fs(-W)h
+Fj(wordlist)1110 2637 y Ft(The)24 b Fq(w)m(ordlist)k
+Ft(is)d(split)g(using)f(the)h(c)m(haracters)i(in)d(the)i
+Fs(IFS)e Ft(sp)s(ecial)h(v)-5 b(ariable)1110 2746 y(as)36
+b(delimiters,)i(and)e(eac)m(h)h(resultan)m(t)g(w)m(ord)e(is)h
+(expanded.)57 b(The)35 b(p)s(ossible)1110 2856 y(completions)c(are)e
+(the)h(mem)m(b)s(ers)f(of)g(the)h(resultan)m(t)g(list)g(whic)m(h)f
+(matc)m(h)i(the)1110 2966 y(w)m(ord)f(b)s(eing)g(completed.)630
+3134 y Fs(-C)g Fj(command)1110 3243 y Fq(command)35 b
+Ft(is)e(executed)g(in)e(a)i(subshell)e(en)m(vironmen)m(t,)i(and)f(its)g
+(output)g(is)1110 3353 y(used)e(as)g(the)h(p)s(ossible)f(completions.)
+630 3521 y Fs(-F)g Fj(function)1110 3630 y Ft(The)25
+b(shell)i(function)e Fq(function)h Ft(is)g(executed)h(in)e(the)i
+(curren)m(t)e(shell)i(en)m(viron-)1110 3740 y(men)m(t.)40
+b(When)25 b(it)h(\014nishes,)f(the)h(p)s(ossible)f(completions)h(are)g
+(retriev)m(ed)g(from)1110 3850 y(the)31 b(v)-5 b(alue)30
+b(of)h(the)g Fs(COMPREPLY)c Ft(arra)m(y)k(v)-5 b(ariable.)630
+4018 y Fs(-X)30 b Fj(filterpat)1110 4127 y Fq(\014lterpat)d
+Ft(is)e(a)g(pattern)g(as)f(used)g(for)h(\014lename)g(expansion.)38
+b(It)25 b(is)g(applied)f(to)1110 4237 y(the)30 b(list)f(of)h(p)s
+(ossible)f(completions)h(generated)h(b)m(y)e(the)g(preceding)h(options)
+1110 4346 y(and)d(argumen)m(ts,)i(and)e(eac)m(h)i(completion)g(matc)m
+(hing)g Fq(\014lterpat)h Ft(is)e(remo)m(v)m(ed)1110 4456
+y(from)i(the)h(list.)42 b(A)30 b(leading)i(`)p Fs(!)p
+Ft(')e(in)g Fq(\014lterpat)j Ft(negates)f(the)f(pattern;)g(in)f(this)
+1110 4566 y(case,)i(an)m(y)e(completion)i(not)f(matc)m(hing)g
+Fq(\014lterpat)i Ft(is)d(remo)m(v)m(ed.)630 4734 y Fs(-P)g
+Fj(prefix)1110 4843 y Fq(pre\014x)39 b Ft(is)34 b(added)f(at)i(the)f(b)
+s(eginning)f(of)i(eac)m(h)g(p)s(ossible)e(completion)i(after)1110
+4953 y(all)c(other)g(options)g(ha)m(v)m(e)g(b)s(een)f(applied.)630
+5121 y Fs(-S)g Fj(suffix)1110 5230 y Fq(su\016x)c Ft(is)20
+b(app)s(ended)f(to)i(eac)m(h)h(p)s(ossible)e(completion)i(after)f(all)g
+(other)g(options)1110 5340 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)p
+eop end
+%%Page: 120 126
+TeXDict begin 120 125 bop 150 -116 a Ft(120)2527 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y(The)k(return)g(v)-5
+b(alue)37 b(is)f(true)f(unless)h(an)f(in)m(v)-5 b(alid)37
+b(option)f(is)g(supplied,)g(an)g(option)h(other)630 408
+y(than)31 b(`)p Fs(-p)p Ft(')g(or)g(`)p Fs(-r)p Ft(')g(is)g(supplied)f
+(without)h(a)g Fq(name)37 b Ft(argumen)m(t,)32 b(an)f(attempt)h(is)f
+(made)g(to)630 518 y(remo)m(v)m(e)h(a)e(completion)i(sp)s
+(eci\014cation)f(for)f(a)h Fq(name)k Ft(for)30 b(whic)m(h)g(no)g(sp)s
+(eci\014cation)h(exists,)630 628 y(or)f(an)h(error)f(o)s(ccurs)g
+(adding)g(a)g(completion)i(sp)s(eci\014cation.)150 787
+y Fs(compopt)870 922 y(compopt)46 b([-o)h Fj(option)11
+b Fs(])45 b([+o)i Fj(option)11 b Fs(])45 b([)p Fj(name)11
+b Fs(])630 1056 y Ft(Mo)s(dify)33 b(completion)h(options)g(for)f(eac)m
+(h)h Fq(name)39 b Ft(according)34 b(to)g(the)f Fq(option)p
+Ft(s,)i(or)e(for)g(the)630 1166 y(curren)m(tly-execution)46
+b(completion)f(if)f(no)f Fq(name)5 b Ft(s)44 b(are)h(supplied.)80
+b(If)43 b(no)h Fq(option)p Ft(s)h(are)630 1275 y(giv)m(en,)30
+b(displa)m(y)e(the)g(completion)h(options)g(for)e(eac)m(h)i
+Fq(name)34 b Ft(or)27 b(the)i(curren)m(t)e(completion.)630
+1385 y(The)f(p)s(ossible)g(v)-5 b(alues)27 b(of)f Fq(option)h
+Ft(are)g(those)g(v)-5 b(alid)26 b(for)g(the)h Fs(complete)d
+Ft(builtin)i(describ)s(ed)630 1494 y(ab)s(o)m(v)m(e.)630
+1629 y(The)d(return)g(v)-5 b(alue)25 b(is)f(true)g(unless)f(an)h(in)m
+(v)-5 b(alid)24 b(option)h(is)f(supplied,)g(an)g(attempt)h(is)f(made)
+630 1738 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h
+Fq(name)k Ft(for)31 b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f
+(exists,)630 1848 y(or)e(an)h(output)f(error)g(o)s(ccurs.)p
+eop end
+%%Page: 121 127
+TeXDict begin 121 126 bop 150 -116 a Ft(Chapter)47 b(9:)i(Using)f
+(History)g(In)m(teractiv)m(ely)1865 b(121)150 299 y Fo(9)80
+b(Using)53 b(History)g(In)l(teractiv)l(ely)275 552 y
+Ft(This)32 b(c)m(hapter)i(describ)s(es)e(ho)m(w)h(to)h(use)f(the)g
+Fl(gnu)g Ft(History)h(Library)e(in)m(teractiv)m(ely)-8
+b(,)37 b(from)c(a)h(user's)150 661 y(standp)s(oin)m(t.)76
+b(It)42 b(should)f(b)s(e)h(considered)g(a)g(user's)g(guide.)76
+b(F)-8 b(or)43 b(information)f(on)g(using)g(the)g Fl(gnu)150
+771 y Ft(History)31 b(Library)f(in)g(other)g(programs,)g(see)h(the)g
+Fl(gnu)f Ft(Readline)h(Library)f(Man)m(ual.)150 1044
+y Fr(9.1)68 b(Bash)45 b(History)h(F)-11 b(acilities)275
+1294 y Ft(When)31 b(the)g(`)p Fs(-o)f(history)p Ft(')g(option)i(to)g
+(the)g Fs(set)f Ft(builtin)g(is)g(enabled)h(\(see)g(Section)g(4.3.1)i
+([The)d(Set)150 1404 y(Builtin],)h(page)g(51\),)h(the)e(shell)h(pro)m
+(vides)f(access)h(to)g(the)f Fq(command)g(history)p Ft(,)h(the)f(list)h
+(of)f(commands)150 1514 y(previously)h(t)m(yp)s(ed.)47
+b(The)33 b(v)-5 b(alue)33 b(of)f(the)h Fs(HISTSIZE)e
+Ft(shell)h(v)-5 b(ariable)34 b(is)f(used)e(as)i(the)g(n)m(um)m(b)s(er)e
+(of)i(com-)150 1623 y(mands)i(to)i(sa)m(v)m(e)h(in)e(a)g(history)h
+(list.)58 b(The)36 b(text)h(of)g(the)f(last)h Fs($HISTSIZE)d
+Ft(commands)i(\(default)g(500\))150 1733 y(is)h(sa)m(v)m(ed.)61
+b(The)36 b(shell)h(stores)h(eac)m(h)g(command)e(in)h(the)g(history)g
+(list)g(prior)f(to)i(parameter)f(and)f(v)-5 b(ari-)150
+1842 y(able)33 b(expansion)g(but)f(after)h(history)f(expansion)h(is)g
+(p)s(erformed,)e(sub)5 b(ject)33 b(to)g(the)g(v)-5 b(alues)33
+b(of)g(the)g(shell)150 1952 y(v)-5 b(ariables)31 b Fs(HISTIGNORE)d
+Ft(and)h Fs(HISTCONTROL)p Ft(.)275 2093 y(When)g(the)g(shell)h(starts)g
+(up,)f(the)h(history)f(is)h(initialized)h(from)e(the)h(\014le)f(named)g
+(b)m(y)h(the)f Fs(HISTFILE)150 2202 y Ft(v)-5 b(ariable)21
+b(\(default)h(`)p Fs(~/.bash_history)p Ft('\).)34 b(The)20
+b(\014le)h(named)f(b)m(y)h(the)g(v)-5 b(alue)21 b(of)g
+Fs(HISTFILE)d Ft(is)j(truncated,)150 2312 y(if)42 b(necessary)-8
+b(,)45 b(to)e(con)m(tain)g(no)f(more)g(than)f(the)h(n)m(um)m(b)s(er)f
+(of)h(lines)g(sp)s(eci\014ed)f(b)m(y)h(the)g(v)-5 b(alue)42
+b(of)g(the)150 2422 y Fs(HISTFILESIZE)21 b Ft(v)-5 b(ariable.)40
+b(When)24 b(an)g(in)m(teractiv)m(e)j(shell)e(exits,)h(the)f(last)g
+Fs($HISTSIZE)d Ft(lines)j(are)f(copied)150 2531 y(from)29
+b(the)i(history)e(list)i(to)g(the)f(\014le)g(named)f(b)m(y)h
+Fs($HISTFILE)p Ft(.)38 b(If)30 b(the)g Fs(histappend)d
+Ft(shell)j(option)g(is)g(set)150 2641 y(\(see)22 b(Section)g(4.2)g
+([Bash)g(Builtins],)h(page)f(41\),)j(the)c(lines)g(are)h(app)s(ended)d
+(to)j(the)f(history)g(\014le,)j(otherwise)150 2750 y(the)32
+b(history)f(\014le)g(is)h(o)m(v)m(erwritten.)45 b(If)31
+b Fs(HISTFILE)e Ft(is)j(unset,)f(or)h(if)f(the)h(history)f(\014le)g(is)
+h(un)m(writable,)g(the)150 2860 y(history)37 b(is)h(not)f(sa)m(v)m(ed.)
+63 b(After)38 b(sa)m(ving)g(the)f(history)-8 b(,)40 b(the)e(history)f
+(\014le)g(is)h(truncated)f(to)h(con)m(tain)h(no)150 2970
+y(more)31 b(than)f Fs($HISTFILESIZE)c Ft(lines.)41 b(If)30
+b Fs(HISTFILESIZE)d Ft(is)k(not)f(set,)h(no)g(truncation)f(is)h(p)s
+(erformed.)275 3110 y(If)g(the)h Fs(HISTTIMEFORMAT)d
+Ft(is)j(set,)h(the)f(time)h(stamp)f(information)g(asso)s(ciated)i(with)
+e(eac)m(h)h(history)150 3220 y(en)m(try)d(is)h(written)f(to)h(the)f
+(history)h(\014le,)f(mark)m(ed)h(with)f(the)g(history)g(commen)m(t)h(c)
+m(haracter.)43 b(When)30 b(the)150 3329 y(history)22
+b(\014le)h(is)g(read,)h(lines)f(b)s(eginning)e(with)i(the)f(history)h
+(commen)m(t)g(c)m(haracter)h(follo)m(w)m(ed)h(immediately)150
+3439 y(b)m(y)30 b(a)h(digit)g(are)g(in)m(terpreted)g(as)f(timestamps)h
+(for)f(the)h(previous)f(history)g(line.)275 3580 y(The)19
+b(builtin)h(command)g Fs(fc)g Ft(ma)m(y)h(b)s(e)f(used)f(to)i(list)g
+(or)g(edit)g(and)e(re-execute)j(a)f(p)s(ortion)f(of)g(the)h(history)150
+3689 y(list.)41 b(The)27 b Fs(history)f Ft(builtin)i(ma)m(y)h(b)s(e)e
+(used)g(to)i(displa)m(y)g(or)f(mo)s(dify)f(the)h(history)g(list)h(and)f
+(manipulate)150 3799 y(the)j(history)g(\014le.)42 b(When)31
+b(using)f(command-line)h(editing,)h(searc)m(h)f(commands)g(are)g(a)m(v)
+-5 b(ailable)33 b(in)e(eac)m(h)150 3909 y(editing)45
+b(mo)s(de)g(that)g(pro)m(vide)g(access)h(to)f(the)g(history)f(list)i
+(\(see)f(Section)h(8.4.2)g([Commands)e(F)-8 b(or)150
+4018 y(History],)31 b(page)h(107\).)275 4159 y(The)47
+b(shell)i(allo)m(ws)h(con)m(trol)f(o)m(v)m(er)h(whic)m(h)e(commands)g
+(are)h(sa)m(v)m(ed)g(on)f(the)h(history)f(list.)95 b(The)150
+4269 y Fs(HISTCONTROL)25 b Ft(and)j Fs(HISTIGNORE)e Ft(v)-5
+b(ariables)29 b(ma)m(y)h(b)s(e)d(set)j(to)f(cause)g(the)g(shell)f(to)i
+(sa)m(v)m(e)g(only)f(a)g(subset)150 4378 y(of)e(the)g(commands)f(en)m
+(tered.)40 b(The)26 b Fs(cmdhist)f Ft(shell)i(option,)h(if)f(enabled,)g
+(causes)h(the)e(shell)h(to)h(attempt)150 4488 y(to)23
+b(sa)m(v)m(e)h(eac)m(h)f(line)g(of)f(a)h(m)m(ulti-line)g(command)f(in)g
+(the)h(same)f(history)g(en)m(try)-8 b(,)25 b(adding)d(semicolons)h
+(where)150 4597 y(necessary)37 b(to)f(preserv)m(e)h(syn)m(tactic)h
+(correctness.)58 b(The)36 b Fs(lithist)e Ft(shell)i(option)h(causes)g
+(the)f(shell)g(to)150 4707 y(sa)m(v)m(e)25 b(the)e(command)h(with)f(em)
+m(b)s(edded)f(newlines)h(instead)h(of)f(semicolons.)40
+b(The)23 b Fs(shopt)e Ft(builtin)i(is)h(used)150 4817
+y(to)31 b(set)g(these)g(options.)41 b(See)31 b(Section)g(4.2)g([Bash)g
+(Builtins],)g(page)g(41,)h(for)e(a)h(description)f(of)h
+Fs(shopt)p Ft(.)150 5090 y Fr(9.2)68 b(Bash)45 b(History)h(Builtins)275
+5340 y Ft(Bash)30 b(pro)m(vides)g(t)m(w)m(o)i(builtin)e(commands)g
+(whic)m(h)g(manipulate)h(the)f(history)h(list)g(and)f(history)g
+(\014le.)p eop end
+%%Page: 122 128
+TeXDict begin 122 127 bop 150 -116 a Ft(122)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(fc)870 445 y(fc)47
+b([-e)g Fj(ename)11 b Fs(])46 b([-lnr])g([)p Fj(first)11
+b Fs(])45 b([)p Fj(last)11 b Fs(])870 555 y(fc)47 b(-s)g([)p
+Fj(pat)11 b Fs(=)p Fj(rep)g Fs(])45 b([)p Fj(command)11
+b Fs(])630 701 y Ft(Fix)41 b(Command.)68 b(In)39 b(the)i(\014rst)e
+(form,)j(a)e(range)h(of)f(commands)g(from)f Fq(\014rst)i
+Ft(to)g Fq(last)i Ft(is)630 810 y(selected)35 b(from)e(the)g(history)g
+(list.)50 b(Both)34 b Fq(\014rst)h Ft(and)e Fq(last)j
+Ft(ma)m(y)e(b)s(e)e(sp)s(eci\014ed)h(as)g(a)h(string)630
+920 y(\(to)26 b(lo)s(cate)h(the)e(most)h(recen)m(t)g(command)e(b)s
+(eginning)h(with)g(that)g(string\))h(or)f(as)g(a)g(n)m(um)m(b)s(er)630
+1029 y(\(an)f(index)f(in)m(to)h(the)g(history)g(list,)h(where)e(a)h
+(negativ)m(e)i(n)m(um)m(b)s(er)c(is)i(used)f(as)g(an)h(o\013set)g(from)
+630 1139 y(the)j(curren)m(t)f(command)h(n)m(um)m(b)s(er\).)39
+b(If)26 b Fq(last)j Ft(is)e(not)g(sp)s(eci\014ed)f(it)h(is)g(set)g(to)h
+Fq(\014rst)p Ft(.)39 b(If)26 b Fq(\014rst)i Ft(is)630
+1249 y(not)j(sp)s(eci\014ed)f(it)h(is)g(set)h(to)f(the)g(previous)f
+(command)h(for)f(editing)i(and)e Fp(\000)p Ft(16)h(for)g(listing.)630
+1358 y(If)f(the)g(`)p Fs(-l)p Ft(')g(\015ag)h(is)f(giv)m(en,)h(the)g
+(commands)e(are)i(listed)g(on)f(standard)f(output.)40
+b(The)30 b(`)p Fs(-n)p Ft(')630 1468 y(\015ag)i(suppresses)f(the)h
+(command)g(n)m(um)m(b)s(ers)e(when)i(listing.)46 b(The)32
+b(`)p Fs(-r)p Ft(')g(\015ag)g(rev)m(erses)h(the)630 1577
+y(order)g(of)g(the)h(listing.)50 b(Otherwise,)34 b(the)f(editor)h(giv)m
+(en)g(b)m(y)f Fq(ename)39 b Ft(is)33 b(in)m(v)m(ok)m(ed)i(on)e(a)h
+(\014le)630 1687 y(con)m(taining)i(those)f(commands.)52
+b(If)33 b Fq(ename)40 b Ft(is)34 b(not)h(giv)m(en,)h(the)f(v)-5
+b(alue)35 b(of)f(the)g(follo)m(wing)630 1797 y(v)-5 b(ariable)33
+b(expansion)e(is)h(used:)42 b Fs(${FCEDIT:-${EDITOR:-vi}})p
+Ft(.)d(This)31 b(sa)m(ys)h(to)g(use)g(the)630 1906 y(v)-5
+b(alue)34 b(of)f(the)h Fs(FCEDIT)e Ft(v)-5 b(ariable)34
+b(if)f(set,)i(or)f(the)f(v)-5 b(alue)34 b(of)g(the)f
+Fs(EDITOR)f Ft(v)-5 b(ariable)34 b(if)f(that)630 2016
+y(is)g(set,)i(or)e Fs(vi)g Ft(if)g(neither)g(is)g(set.)50
+b(When)33 b(editing)h(is)f(complete,)i(the)f(edited)f(commands)630
+2125 y(are)e(ec)m(ho)s(ed)g(and)f(executed.)630 2271
+y(In)k(the)g(second)g(form,)h Fq(command)j Ft(is)c(re-executed)i(after)
+f(eac)m(h)g(instance)g(of)f Fq(pat)j Ft(in)d(the)630
+2381 y(selected)e(command)e(is)g(replaced)h(b)m(y)g Fq(rep)p
+Ft(.)630 2527 y(A)g(useful)f(alias)i(to)g(use)e(with)h(the)g
+Fs(fc)f Ft(command)h(is)g Fs(r='fc)e(-s')p Ft(,)h(so)h(that)h(t)m
+(yping)f(`)p Fs(r)f(cc)p Ft(')630 2637 y(runs)35 b(the)h(last)h
+(command)f(b)s(eginning)g(with)g Fs(cc)f Ft(and)h(t)m(yping)g(`)p
+Fs(r)p Ft(')h(re-executes)h(the)e(last)630 2746 y(command)30
+b(\(see)h(Section)h(6.6)f([Aliases],)h(page)g(79\).)150
+2929 y Fs(history)870 3075 y(history)46 b([)p Fj(n)11
+b Fs(])870 3185 y(history)46 b(-c)870 3294 y(history)g(-d)h
+Fj(offset)870 3404 y Fs(history)f([-anrw])g([)p Fj(filename)11
+b Fs(])870 3513 y(history)46 b(-ps)h Fj(arg)630 3660
+y Ft(With)26 b(no)g(options,)h(displa)m(y)f(the)g(history)g(list)g
+(with)f(line)h(n)m(um)m(b)s(ers.)38 b(Lines)26 b(pre\014xed)e(with)630
+3769 y(a)35 b(`)p Fs(*)p Ft(')g(ha)m(v)m(e)h(b)s(een)e(mo)s(di\014ed.)
+53 b(An)34 b(argumen)m(t)h(of)g Fq(n)f Ft(lists)i(only)f(the)g(last)g
+Fq(n)f Ft(lines.)54 b(If)35 b(the)630 3879 y(shell)30
+b(v)-5 b(ariable)31 b Fs(HISTTIMEFORMAT)26 b Ft(is)k(set)h(and)e(not)i
+(n)m(ull,)f(it)h(is)f(used)f(as)h(a)h(format)f(string)630
+3988 y(for)36 b Fq(strftime)41 b Ft(to)36 b(displa)m(y)g(the)g(time)h
+(stamp)f(asso)s(ciated)h(with)f(eac)m(h)h(displa)m(y)m(ed)f(history)630
+4098 y(en)m(try)-8 b(.)47 b(No)33 b(in)m(terv)m(ening)g(blank)f(is)g
+(prin)m(ted)g(b)s(et)m(w)m(een)h(the)g(formatted)f(time)h(stamp)g(and)
+630 4208 y(the)e(history)f(line.)630 4354 y(Options,)g(if)h(supplied,)e
+(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630 4536
+y Fs(-c)384 b Ft(Clear)23 b(the)g(history)g(list.)39
+b(This)22 b(ma)m(y)i(b)s(e)e(com)m(bined)h(with)f(the)h(other)h
+(options)1110 4646 y(to)31 b(replace)g(the)g(history)f(list)h
+(completely)-8 b(.)630 4829 y Fs(-d)30 b Fj(offset)1110
+4938 y Ft(Delete)25 b(the)f(history)f(en)m(try)h(at)g(p)s(osition)f
+Fq(o\013set)p Ft(.)39 b Fq(o\013set)27 b Ft(should)22
+b(b)s(e)h(sp)s(eci\014ed)1110 5048 y(as)31 b(it)g(app)s(ears)e(when)h
+(the)g(history)g(is)h(displa)m(y)m(ed.)630 5230 y Fs(-a)384
+b Ft(App)s(end)35 b(the)i(new)g(history)g(lines)g(\(history)g(lines)g
+(en)m(tered)h(since)f(the)g(b)s(e-)1110 5340 y(ginning)30
+b(of)h(the)f(curren)m(t)g(Bash)h(session\))g(to)g(the)g(history)f
+(\014le.)p eop end
+%%Page: 123 129
+TeXDict begin 123 128 bop 150 -116 a Ft(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(123)630
+299 y Fs(-n)384 b Ft(App)s(end)32 b(the)i(history)f(lines)h(not)g
+(already)g(read)g(from)f(the)h(history)f(\014le)h(to)1110
+408 y(the)26 b(curren)m(t)f(history)g(list.)40 b(These)25
+b(are)h(lines)g(app)s(ended)e(to)i(the)f(history)h(\014le)1110
+518 y(since)31 b(the)f(b)s(eginning)g(of)g(the)h(curren)m(t)f(Bash)h
+(session.)630 668 y Fs(-r)384 b Ft(Read)26 b(the)h(curren)m(t)f
+(history)g(\014le)g(and)g(app)s(end)e(its)j(con)m(ten)m(ts)h(to)f(the)f
+(history)1110 778 y(list.)630 928 y Fs(-w)384 b Ft(W)-8
+b(rite)32 b(out)e(the)h(curren)m(t)f(history)g(to)i(the)e(history)g
+(\014le.)630 1078 y Fs(-p)384 b Ft(P)m(erform)31 b(history)f
+(substitution)h(on)f(the)h Fq(arg)8 b Ft(s)31 b(and)f(displa)m(y)h(the)
+f(result)h(on)1110 1188 y(the)d(standard)f(output,)i(without)f(storing)
+g(the)g(results)g(in)g(the)g(history)g(list.)630 1338
+y Fs(-s)384 b Ft(The)30 b Fq(arg)8 b Ft(s)30 b(are)h(added)f(to)h(the)f
+(end)g(of)h(the)f(history)h(list)g(as)f(a)h(single)g(en)m(try)-8
+b(.)630 1488 y(When)24 b(an)m(y)h(of)f(the)h(`)p Fs(-w)p
+Ft(',)h(`)p Fs(-r)p Ft(',)f(`)p Fs(-a)p Ft(',)h(or)f(`)p
+Fs(-n)p Ft(')f(options)g(is)h(used,)g(if)f Fq(\014lename)30
+b Ft(is)24 b(giv)m(en,)j(then)630 1598 y(it)32 b(is)g(used)f(as)h(the)f
+(history)h(\014le.)45 b(If)31 b(not,)h(then)g(the)f(v)-5
+b(alue)32 b(of)g(the)g Fs(HISTFILE)d Ft(v)-5 b(ariable)33
+b(is)630 1707 y(used.)150 1951 y Fr(9.3)68 b(History)46
+b(Expansion)275 2190 y Ft(The)35 b(History)h(library)f(pro)m(vides)h(a)
+g(history)f(expansion)h(feature)g(that)g(is)g(similar)g(to)g(the)g
+(history)150 2300 y(expansion)22 b(pro)m(vided)f(b)m(y)h
+Fs(csh)p Ft(.)37 b(This)22 b(section)h(describ)s(es)e(the)h(syn)m(tax)h
+(used)e(to)h(manipulate)h(the)f(history)150 2409 y(information.)275
+2539 y(History)31 b(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g
+(the)h(history)f(list)h(in)m(to)g(the)g(input)f(stream,)h(making)150
+2649 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen)
+m(ts)f(to)h(a)g(previous)f(command)g(in)m(to)i(the)e(curren)m(t)150
+2759 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g
+(quic)m(kly)-8 b(.)275 2888 y(History)27 b(expansion)f(tak)m(es)i
+(place)f(in)f(t)m(w)m(o)i(parts.)39 b(The)26 b(\014rst)g(is)g(to)h
+(determine)g(whic)m(h)f(line)h(from)f(the)150 2998 y(history)i(list)g
+(should)f(b)s(e)g(used)g(during)g(substitution.)39 b(The)27
+b(second)h(is)g(to)h(select)g(p)s(ortions)e(of)h(that)h(line)150
+3108 y(for)d(inclusion)f(in)m(to)i(the)f(curren)m(t)f(one.)40
+b(The)25 b(line)h(selected)h(from)f(the)g(history)f(is)h(called)h(the)f
+Fq(ev)m(en)m(t)p Ft(,)j(and)150 3217 y(the)21 b(p)s(ortions)g(of)g
+(that)h(line)f(that)h(are)g(acted)g(up)s(on)e(are)h(called)h
+Fq(w)m(ords)p Ft(.)38 b(V)-8 b(arious)21 b Fq(mo)s(di\014ers)j
+Ft(are)e(a)m(v)-5 b(ailable)150 3327 y(to)35 b(manipulate)f(the)g
+(selected)i(w)m(ords.)51 b(The)33 b(line)h(is)g(brok)m(en)g(in)m(to)h
+(w)m(ords)e(in)h(the)g(same)h(fashion)e(that)150 3436
+y(Bash)i(do)s(es,)h(so)f(that)h(sev)m(eral)g(w)m(ords)e(surrounded)f(b)
+m(y)i(quotes)g(are)g(considered)g(one)g(w)m(ord.)54 b(History)150
+3546 y(expansions)34 b(are)g(in)m(tro)s(duced)f(b)m(y)h(the)g(app)s
+(earance)g(of)g(the)g(history)g(expansion)g(c)m(haracter,)i(whic)m(h)e
+(is)150 3656 y(`)p Fs(!)p Ft(')d(b)m(y)f(default.)41
+b(Only)29 b(`)p Fs(\\)p Ft(')i(and)f(`)p Fs(')p Ft(')g(ma)m(y)h(b)s(e)f
+(used)g(to)h(escap)s(e)g(the)f(history)g(expansion)h(c)m(haracter.)275
+3785 y(Sev)m(eral)40 b(shell)g(options)g(settable)h(with)e(the)h
+Fs(shopt)e Ft(builtin)h(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)150
+3895 y(page)32 b(41\))h(ma)m(y)f(b)s(e)f(used)g(to)i(tailor)g(the)e(b)s
+(eha)m(vior)h(of)g(history)g(expansion.)44 b(If)31 b(the)h
+Fs(histverify)d Ft(shell)150 4005 y(option)39 b(is)f(enabled,)i(and)e
+(Readline)g(is)h(b)s(eing)e(used,)j(history)e(substitutions)g(are)g
+(not)h(immediately)150 4114 y(passed)30 b(to)h(the)g(shell)g(parser.)40
+b(Instead,)30 b(the)h(expanded)f(line)h(is)f(reloaded)h(in)m(to)h(the)e
+(Readline)h(editing)150 4224 y(bu\013er)e(for)i(further)e(mo)s
+(di\014cation.)41 b(If)30 b(Readline)h(is)f(b)s(eing)g(used,)g(and)g
+(the)g Fs(histreedit)e Ft(shell)i(option)150 4333 y(is)k(enabled,)h(a)g
+(failed)g(history)f(expansion)g(will)g(b)s(e)g(reloaded)g(in)m(to)h
+(the)g(Readline)f(editing)h(bu\013er)e(for)150 4443 y(correction.)74
+b(The)41 b(`)p Fs(-p)p Ft(')g(option)g(to)h(the)f Fs(history)f
+Ft(builtin)g(command)h(ma)m(y)h(b)s(e)e(used)h(to)g(see)h(what)150
+4553 y(a)c(history)g(expansion)f(will)h(do)f(b)s(efore)h(using)f(it.)63
+b(The)37 b(`)p Fs(-s)p Ft(')g(option)h(to)h(the)f Fs(history)d
+Ft(builtin)i(ma)m(y)150 4662 y(b)s(e)c(used)h(to)g(add)g(commands)f(to)
+i(the)f(end)g(of)g(the)g(history)g(list)h(without)f(actually)i
+(executing)f(them,)150 4772 y(so)j(that)h(they)f(are)g(a)m(v)-5
+b(ailable)40 b(for)e(subsequen)m(t)f(recall.)65 b(This)37
+b(is)h(most)g(useful)g(in)f(conjunction)h(with)150 4881
+y(Readline.)275 5011 y(The)33 b(shell)h(allo)m(ws)h(con)m(trol)h(of)e
+(the)g(v)-5 b(arious)34 b(c)m(haracters)h(used)f(b)m(y)f(the)h(history)
+g(expansion)g(mec)m(h-)150 5121 y(anism)h(with)g(the)g
+Fs(histchars)d Ft(v)-5 b(ariable,)38 b(as)d(explained)g(ab)s(o)m(v)m(e)
+i(\(see)f(Section)f(5.2)i([Bash)e(V)-8 b(ariables],)150
+5230 y(page)32 b(61\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g
+(commen)m(t)i(c)m(haracter)f(to)g(mark)f(history)g(timestamps)h(when)
+150 5340 y(writing)e(the)h(history)f(\014le.)p eop end
+%%Page: 124 130
+TeXDict begin 124 129 bop 150 -116 a Ft(124)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fk(9.3.1)63 b(Ev)m(en)m(t)39
+b(Designators)275 545 y Ft(An)30 b(ev)m(en)m(t)h(designator)h(is)e(a)h
+(reference)g(to)g(a)f(command)h(line)f(en)m(try)h(in)f(the)h(history)f
+(list.)150 709 y Fs(!)432 b Ft(Start)34 b(a)f(history)h(substitution,)g
+(except)g(when)f(follo)m(w)m(ed)i(b)m(y)e(a)h(space,)h(tab,)f(the)g
+(end)f(of)630 818 y(the)i(line,)g(`)p Fs(=)p Ft(')g(or)f(`)p
+Fs(\()p Ft(')h(\(when)e(the)i Fs(extglob)d Ft(shell)j(option)f(is)h
+(enabled)f(using)g(the)g Fs(shopt)630 928 y Ft(builtin\).)150
+1090 y Fs(!)p Fj(n)384 b Ft(Refer)30 b(to)i(command)e(line)g
+Fq(n)p Ft(.)150 1252 y Fs(!-)p Fj(n)336 b Ft(Refer)30
+b(to)i(the)e(command)g Fq(n)g Ft(lines)h(bac)m(k.)150
+1413 y Fs(!!)384 b Ft(Refer)30 b(to)i(the)e(previous)g(command.)40
+b(This)30 b(is)g(a)h(synon)m(ym)f(for)g(`)p Fs(!-1)p
+Ft('.)150 1575 y Fs(!)p Fj(string)144 b Ft(Refer)30 b(to)i(the)e(most)h
+(recen)m(t)g(command)f(starting)i(with)e Fq(string)p
+Ft(.)150 1737 y Fs(!?)p Fj(string)11 b Fs([?])630 1847
+y Ft(Refer)34 b(to)g(the)f(most)h(recen)m(t)h(command)e(con)m(taining)i
+Fq(string)p Ft(.)50 b(The)33 b(trailing)i(`)p Fs(?)p
+Ft(')e(ma)m(y)i(b)s(e)630 1956 y(omitted)c(if)g(the)f
+Fq(string)38 b Ft(is)31 b(follo)m(w)m(ed)h(immediately)g(b)m(y)e(a)h
+(newline.)150 2118 y Fs(^)p Fj(string1)11 b Fs(^)p Fj(string2)g
+Fs(^)630 2228 y Ft(Quic)m(k)32 b(Substitution.)44 b(Rep)s(eat)32
+b(the)g(last)h(command,)f(replacing)g Fq(string1)40 b
+Ft(with)31 b Fq(string2)p Ft(.)630 2337 y(Equiv)-5 b(alen)m(t)31
+b(to)g Fs(!!:s/)p Fj(string1)11 b Fs(/)p Fj(string2)g
+Fs(/)p Ft(.)150 2499 y Fs(!#)384 b Ft(The)30 b(en)m(tire)h(command)f
+(line)h(t)m(yp)s(ed)f(so)h(far.)150 2729 y Fk(9.3.2)63
+b(W)-10 b(ord)41 b(Designators)275 2975 y Ft(W)-8 b(ord)35
+b(designators)g(are)g(used)f(to)h(select)h(desired)e(w)m(ords)h(from)f
+(the)h(ev)m(en)m(t.)55 b(A)34 b(`)p Fs(:)p Ft(')h(separates)h(the)150
+3085 y(ev)m(en)m(t)41 b(sp)s(eci\014cation)f(from)g(the)f(w)m(ord)g
+(designator.)69 b(It)40 b(ma)m(y)g(b)s(e)f(omitted)i(if)e(the)h(w)m
+(ord)f(designator)150 3194 y(b)s(egins)33 b(with)h(a)h(`)p
+Fs(^)p Ft(',)g(`)p Fs($)p Ft(',)g(`)p Fs(*)p Ft(',)h(`)p
+Fs(-)p Ft(',)f(or)f(`)p Fs(\045)p Ft('.)52 b(W)-8 b(ords)35
+b(are)f(n)m(um)m(b)s(ered)f(from)g(the)i(b)s(eginning)e(of)h(the)g
+(line,)150 3304 y(with)39 b(the)h(\014rst)f(w)m(ord)g(b)s(eing)g
+(denoted)h(b)m(y)g(0)g(\(zero\).)70 b(W)-8 b(ords)39
+b(are)h(inserted)g(in)m(to)g(the)g(curren)m(t)g(line)150
+3413 y(separated)31 b(b)m(y)f(single)h(spaces.)275 3550
+y(F)-8 b(or)31 b(example,)150 3714 y Fs(!!)384 b Ft(designates)37
+b(the)f(preceding)g(command.)57 b(When)35 b(y)m(ou)i(t)m(yp)s(e)f
+(this,)h(the)f(preceding)g(com-)630 3823 y(mand)30 b(is)g(rep)s(eated)g
+(in)g(toto.)150 3985 y Fs(!!:$)288 b Ft(designates)23
+b(the)g(last)g(argumen)m(t)g(of)f(the)h(preceding)f(command.)38
+b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630 4095 y(to)31
+b Fs(!$)p Ft(.)150 4257 y Fs(!fi:2)240 b Ft(designates)30
+b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f(recen)m(t)i(command)e
+(starting)h(with)f(the)630 4366 y(letters)j Fs(fi)p Ft(.)275
+4529 y(Here)e(are)h(the)g(w)m(ord)f(designators:)150
+4692 y Fs(0)g(\(zero\))114 b Ft(The)30 b Fs(0)p Ft(th)g(w)m(ord.)40
+b(F)-8 b(or)31 b(man)m(y)g(applications,)h(this)e(is)g(the)h(command)f
+(w)m(ord.)150 4854 y Fj(n)432 b Ft(The)30 b Fq(n)p Ft(th)g(w)m(ord.)150
+5016 y Fs(^)432 b Ft(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m
+(ord)g(1.)150 5178 y Fs($)432 b Ft(The)30 b(last)h(argumen)m(t.)150
+5340 y Fs(\045)432 b Ft(The)30 b(w)m(ord)g(matc)m(hed)h(b)m(y)f(the)h
+(most)g(recen)m(t)g(`)p Fs(?)p Fj(string)11 b Fs(?)p
+Ft(')28 b(searc)m(h.)p eop end
+%%Page: 125 131
+TeXDict begin 125 130 bop 150 -116 a Ft(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(125)150
+299 y Fj(x)p Fs(-)p Fj(y)336 b Ft(A)30 b(range)h(of)g(w)m(ords;)f(`)p
+Fs(-)p Fj(y)11 b Ft(')30 b(abbreviates)h(`)p Fs(0-)p
+Fj(y)11 b Ft('.)150 458 y Fs(*)432 b Ft(All)28 b(of)g(the)g(w)m(ords,)g
+(except)h(the)e Fs(0)p Ft(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)
+h(`)p Fs(1-$)p Ft('.)39 b(It)28 b(is)g(not)g(an)f(error)630
+568 y(to)j(use)g(`)p Fs(*)p Ft(')f(if)h(there)g(is)g(just)f(one)h(w)m
+(ord)f(in)g(the)h(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)e(is)h
+(returned)e(in)630 677 y(that)j(case.)150 837 y Fj(x)11
+b Fs(*)373 b Ft(Abbreviates)31 b(`)p Fj(x)p Fs(-$)p Ft(')150
+996 y Fj(x)p Fs(-)384 b Ft(Abbreviates)31 b(`)p Fj(x)p
+Fs(-$)p Ft(')f(lik)m(e)h(`)p Fj(x)11 b Fs(*)p Ft(',)31
+b(but)e(omits)i(the)g(last)g(w)m(ord.)275 1156 y(If)i(a)h(w)m(ord)g
+(designator)g(is)g(supplied)f(without)h(an)g(ev)m(en)m(t)h(sp)s
+(eci\014cation,)h(the)e(previous)f(command)150 1265 y(is)d(used)g(as)h
+(the)f(ev)m(en)m(t.)150 1489 y Fk(9.3.3)63 b(Mo)s(di\014ers)275
+1733 y Ft(After)20 b(the)h(optional)h(w)m(ord)f(designator,)i(y)m(ou)e
+(can)g(add)f(a)h(sequence)g(of)g(one)g(or)g(more)g(of)g(the)f(follo)m
+(wing)150 1843 y(mo)s(di\014ers,)29 b(eac)m(h)j(preceded)e(b)m(y)g(a)h
+(`)p Fs(:)p Ft('.)150 2002 y Fs(h)432 b Ft(Remo)m(v)m(e)32
+b(a)f(trailing)g(pathname)g(comp)s(onen)m(t,)g(lea)m(ving)h(only)e(the)
+h(head.)150 2162 y Fs(t)432 b Ft(Remo)m(v)m(e)32 b(all)f(leading)h
+(pathname)e(comp)s(onen)m(ts,)h(lea)m(ving)h(the)e(tail.)150
+2321 y Fs(r)432 b Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g
+(the)h(form)f(`)p Fs(.)p Fj(suffix)11 b Ft(',)28 b(lea)m(ving)33
+b(the)d(basename.)150 2481 y Fs(e)432 b Ft(Remo)m(v)m(e)32
+b(all)f(but)f(the)h(trailing)g(su\016x.)150 2640 y Fs(p)432
+b Ft(Prin)m(t)30 b(the)h(new)f(command)g(but)g(do)g(not)g(execute)i
+(it.)150 2800 y Fs(q)432 b Ft(Quote)31 b(the)f(substituted)g(w)m(ords,)
+g(escaping)h(further)e(substitutions.)150 2959 y Fs(x)432
+b Ft(Quote)32 b(the)f(substituted)g(w)m(ords)f(as)i(with)f(`)p
+Fs(q)p Ft(',)h(but)e(break)h(in)m(to)i(w)m(ords)d(at)i(spaces,)h(tabs,)
+630 3068 y(and)d(newlines.)150 3228 y Fs(s/)p Fj(old)11
+b Fs(/)p Fj(new)g Fs(/)630 3337 y Ft(Substitute)32 b
+Fq(new)40 b Ft(for)32 b(the)h(\014rst)f(o)s(ccurrence)h(of)f
+Fq(old)37 b Ft(in)32 b(the)h(ev)m(en)m(t)h(line.)48 b(An)m(y)32
+b(delimiter)630 3447 y(ma)m(y)25 b(b)s(e)g(used)f(in)g(place)i(of)f(`)p
+Fs(/)p Ft('.)39 b(The)24 b(delimiter)h(ma)m(y)h(b)s(e)e(quoted)h(in)f
+Fq(old)29 b Ft(and)24 b Fq(new)32 b Ft(with)25 b(a)630
+3557 y(single)k(bac)m(kslash.)40 b(If)28 b(`)p Fs(&)p
+Ft(')g(app)s(ears)g(in)f Fq(new)p Ft(,)i(it)f(is)h(replaced)f(b)m(y)g
+Fq(old)p Ft(.)40 b(A)28 b(single)h(bac)m(kslash)630 3666
+y(will)35 b(quote)g(the)g(`)p Fs(&)p Ft('.)54 b(The)34
+b(\014nal)g(delimiter)i(is)e(optional)i(if)f(it)g(is)f(the)h(last)h(c)m
+(haracter)g(on)630 3776 y(the)31 b(input)e(line.)150
+3935 y Fs(&)432 b Ft(Rep)s(eat)31 b(the)f(previous)g(substitution.)150
+4095 y Fs(g)150 4204 y(a)432 b Ft(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f
+(applied)h(o)m(v)m(er)h(the)f(en)m(tire)g(ev)m(en)m(t)h(line.)66
+b(Used)39 b(in)f(conjunction)630 4314 y(with)30 b(`)p
+Fs(s)p Ft(',)h(as)f(in)h Fs(gs/)p Fj(old)11 b Fs(/)p
+Fj(new)g Fs(/)p Ft(,)26 b(or)k(with)h(`)p Fs(&)p Ft('.)150
+4473 y Fs(G)432 b Ft(Apply)30 b(the)g(follo)m(wing)i(`)p
+Fs(s)p Ft(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g(the)
+g(ev)m(en)m(t.)p eop end
+%%Page: 126 132
+TeXDict begin 126 131 bop 150 -116 a Ft(126)2527 b(Bash)31
+b(Reference)g(Man)m(ual)p eop end
+%%Page: 127 133
+TeXDict begin 127 132 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(127)150 299 y Fo(10)80
+b(Installing)52 b(Bash)275 535 y Ft(This)39 b(c)m(hapter)i(pro)m(vides)
+f(basic)g(instructions)g(for)g(installing)h(Bash)f(on)g(the)h(v)-5
+b(arious)40 b(supp)s(orted)150 645 y(platforms.)58 b(The)36
+b(distribution)g(supp)s(orts)e(the)j Fl(gnu)f Ft(op)s(erating)g
+(systems,)j(nearly)d(ev)m(ery)h(v)m(ersion)g(of)150 754
+y(Unix,)g(and)e(sev)m(eral)i(non-Unix)f(systems)g(suc)m(h)f(as)h(BeOS)g
+(and)f(In)m(terix.)57 b(Other)35 b(indep)s(enden)m(t)g(p)s(orts)150
+864 y(exist)c(for)f Fl(ms-dos)p Ft(,)g Fl(os/2)p Ft(,)g(and)g(Windo)m
+(ws)h(platforms.)150 1123 y Fr(10.1)68 b(Basic)45 b(Installation)275
+1367 y Ft(These)30 b(are)g(installation)j(instructions)d(for)g(Bash.)
+275 1503 y(The)f(simplest)i(w)m(a)m(y)g(to)g(compile)h(Bash)e(is:)199
+1638 y(1.)61 b Fs(cd)38 b Ft(to)h(the)f(directory)h(con)m(taining)h
+(the)f(source)f(co)s(de)h(and)f(t)m(yp)s(e)g(`)p Fs(./configure)p
+Ft(')e(to)j(con\014gure)330 1747 y(Bash)c(for)f(y)m(our)h(system.)54
+b(If)34 b(y)m(ou're)h(using)f Fs(csh)g Ft(on)g(an)h(old)g(v)m(ersion)g
+(of)g(System)f(V,)h(y)m(ou)g(migh)m(t)330 1857 y(need)21
+b(to)g(t)m(yp)s(e)g(`)p Fs(sh)30 b(./configure)p Ft(')18
+b(instead)j(to)g(prev)m(en)m(t)h Fs(csh)e Ft(from)g(trying)h(to)g
+(execute)h Fs(configure)330 1966 y Ft(itself.)330 2101
+y(Running)30 b Fs(configure)f Ft(tak)m(es)k(some)e(time.)45
+b(While)32 b(running,)e(it)i(prin)m(ts)f(messages)h(telling)h(whic)m(h)
+330 2211 y(features)e(it)g(is)f(c)m(hec)m(king)i(for.)199
+2346 y(2.)61 b(T)m(yp)s(e)30 b(`)p Fs(make)p Ft(')g(to)h(compile)g
+(Bash)g(and)e(build)h(the)g Fs(bashbug)f Ft(bug)g(rep)s(orting)h
+(script.)199 2481 y(3.)61 b(Optionally)-8 b(,)32 b(t)m(yp)s(e)e(`)p
+Fs(make)g(tests)p Ft(')f(to)i(run)e(the)h(Bash)h(test)g(suite.)199
+2615 y(4.)61 b(T)m(yp)s(e)36 b(`)p Fs(make)29 b(install)p
+Ft(')35 b(to)i(install)h Fs(bash)d Ft(and)h Fs(bashbug)p
+Ft(.)57 b(This)35 b(will)i(also)h(install)f(the)g(man)m(ual)330
+2725 y(pages)31 b(and)f(Info)g(\014le.)275 2885 y(The)20
+b Fs(configure)f Ft(shell)i(script)g(attempts)h(to)g(guess)f(correct)i
+(v)-5 b(alues)21 b(for)g(v)-5 b(arious)21 b(system-dep)s(enden)m(t)150
+2995 y(v)-5 b(ariables)44 b(used)f(during)g(compilation.)82
+b(It)43 b(uses)h(those)g(v)-5 b(alues)44 b(to)g(create)h(a)g(`)p
+Fs(Makefile)p Ft(')c(in)j(eac)m(h)150 3104 y(directory)25
+b(of)g(the)g(pac)m(k)-5 b(age)27 b(\(the)e(top)g(directory)-8
+b(,)27 b(the)e(`)p Fs(builtins)p Ft(',)f(`)p Fs(doc)p
+Ft(',)i(and)e(`)p Fs(support)p Ft(')g(directories,)150
+3214 y(eac)m(h)32 b(directory)f(under)d(`)p Fs(lib)p
+Ft(',)j(and)f(sev)m(eral)h(others\).)42 b(It)30 b(also)i(creates)f(a)g
+(`)p Fs(config.h)p Ft(')e(\014le)h(con)m(taining)150
+3324 y(system-dep)s(enden)m(t)h(de\014nitions.)44 b(Finally)-8
+b(,)34 b(it)e(creates)h(a)f(shell)g(script)f(named)g
+Fs(config.status)d Ft(that)150 3433 y(y)m(ou)k(can)g(run)e(in)h(the)g
+(future)g(to)h(recreate)h(the)f(curren)m(t)f(con\014guration,)h(a)g
+(\014le)g(`)p Fs(config.cache)p Ft(')c(that)150 3543
+y(sa)m(v)m(es)35 b(the)f(results)f(of)h(its)g(tests)h(to)f(sp)s(eed)f
+(up)g(recon\014guring,)h(and)f(a)h(\014le)g(`)p Fs(config.log)p
+Ft(')d(con)m(taining)150 3652 y(compiler)25 b(output)g(\(useful)f
+(mainly)h(for)g(debugging)f Fs(configure)p Ft(\).)37
+b(If)24 b(at)i(some)f(p)s(oin)m(t)g(`)p Fs(config.cache)p
+Ft(')150 3762 y(con)m(tains)32 b(results)e(y)m(ou)g(don't)h(w)m(an)m(t)
+g(to)g(k)m(eep,)g(y)m(ou)g(ma)m(y)g(remo)m(v)m(e)h(or)e(edit)h(it.)275
+3897 y(T)-8 b(o)37 b(\014nd)f(out)i(more)f(ab)s(out)h(the)f(options)h
+(and)f(argumen)m(ts)g(that)h(the)g Fs(configure)d Ft(script)i(under-)
+150 4007 y(stands,)30 b(t)m(yp)s(e)390 4142 y Fs(bash-2.04$)45
+b(./configure)g(--help)150 4277 y Ft(at)31 b(the)g(Bash)f(prompt)g(in)g
+(y)m(our)g(Bash)h(source)f(directory)-8 b(.)275 4412
+y(If)53 b(y)m(ou)h(need)f(to)i(do)e(un)m(usual)g(things)g(to)i(compile)
+g(Bash,)k(please)c(try)e(to)i(\014gure)e(out)h(ho)m(w)150
+4522 y Fs(configure)47 b Ft(could)j(c)m(hec)m(k)h(whether)e(or)g(not)h
+(to)h(do)e(them,)55 b(and)49 b(mail)h(di\013s)f(or)h(instructions)f(to)
+150 4631 y Fs(bash-maintainers@gnu.org)24 b Ft(so)30
+b(they)h(can)g(b)s(e)e(considered)i(for)f(the)g(next)h(release.)275
+4766 y(The)24 b(\014le)i(`)p Fs(configure.in)p Ft(')c(is)k(used)e(to)j
+(create)g Fs(configure)22 b Ft(b)m(y)k(a)g(program)f(called)h(Auto)s
+(conf.)39 b(Y)-8 b(ou)150 4876 y(only)31 b(need)f(`)p
+Fs(configure.in)p Ft(')d(if)k(y)m(ou)f(w)m(an)m(t)i(to)f(c)m(hange)g
+(it)g(or)f(regenerate)i Fs(configure)c Ft(using)i(a)h(new)m(er)150
+4986 y(v)m(ersion)25 b(of)f(Auto)s(conf.)39 b(If)24 b(y)m(ou)h(do)f
+(this,)i(mak)m(e)f(sure)f(y)m(ou)h(are)f(using)g(Auto)s(conf)h(v)m
+(ersion)f(2.50)i(or)f(new)m(er.)275 5121 y(Y)-8 b(ou)29
+b(can)f(remo)m(v)m(e)i(the)f(program)g(binaries)f(and)g(ob)5
+b(ject)29 b(\014les)g(from)f(the)h(source)f(co)s(de)h(directory)g(b)m
+(y)150 5230 y(t)m(yping)j(`)p Fs(make)d(clean)p Ft('.)42
+b(T)-8 b(o)32 b(also)g(remo)m(v)m(e)g(the)g(\014les)f(that)g
+Fs(configure)e Ft(created)j(\(so)g(y)m(ou)g(can)f(compile)150
+5340 y(Bash)g(for)f(a)g(di\013eren)m(t)h(kind)f(of)g(computer\),)h(t)m
+(yp)s(e)g(`)p Fs(make)e(distclean)p Ft('.)p eop end
+%%Page: 128 134
+TeXDict begin 128 133 bop 150 -116 a Ft(128)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fr(10.2)68 b(Compilers)46
+b(and)f(Options)275 560 y Ft(Some)40 b(systems)g(require)f(un)m(usual)g
+(options)h(for)g(compilation)i(or)e(linking)g(that)g(the)g
+Fs(configure)150 669 y Ft(script)30 b(do)s(es)h(not)g(kno)m(w)f(ab)s
+(out.)41 b(Y)-8 b(ou)31 b(can)g(giv)m(e)h Fs(configure)c
+Ft(initial)k(v)-5 b(alues)31 b(for)f(v)-5 b(ariables)31
+b(b)m(y)g(setting)150 779 y(them)21 b(in)f(the)h(en)m(vironmen)m(t.)38
+b(Using)21 b(a)g(Bourne-compatible)h(shell,)h(y)m(ou)e(can)g(do)f(that)
+i(on)e(the)h(command)150 888 y(line)31 b(lik)m(e)g(this:)390
+1039 y Fs(CC=c89)46 b(CFLAGS=-O2)f(LIBS=-lposix)g(./configure)275
+1191 y Ft(On)29 b(systems)h(that)h(ha)m(v)m(e)h(the)f
+Fs(env)e Ft(program,)h(y)m(ou)h(can)g(do)f(it)h(lik)m(e)h(this:)390
+1342 y Fs(env)47 b(CPPFLAGS=-I/usr/local/in)o(clud)o(e)42
+b(LDFLAGS=-s)j(./configure)275 1493 y Ft(The)29 b(con\014guration)i
+(pro)s(cess)f(uses)g(GCC)g(to)h(build)e(Bash)i(if)f(it)h(is)g(a)m(v)-5
+b(ailable.)150 1792 y Fr(10.3)68 b(Compiling)46 b(F)-11
+b(or)45 b(Multiple)g(Arc)l(hitectures)275 2052 y Ft(Y)-8
+b(ou)28 b(can)h(compile)g(Bash)g(for)f(more)g(than)g(one)h(kind)e(of)i
+(computer)f(at)h(the)g(same)f(time,)i(b)m(y)e(placing)150
+2162 y(the)39 b(ob)5 b(ject)39 b(\014les)g(for)f(eac)m(h)i(arc)m
+(hitecture)g(in)e(their)h(o)m(wn)f(directory)-8 b(.)67
+b(T)-8 b(o)39 b(do)f(this,)j(y)m(ou)e(m)m(ust)f(use)h(a)150
+2271 y(v)m(ersion)33 b(of)g Fs(make)f Ft(that)i(supp)s(orts)d(the)i
+Fs(VPATH)e Ft(v)-5 b(ariable,)35 b(suc)m(h)d(as)i(GNU)f
+Fs(make)p Ft(.)47 b Fs(cd)33 b Ft(to)g(the)g(directory)150
+2381 y(where)23 b(y)m(ou)g(w)m(an)m(t)h(the)f(ob)5 b(ject)24
+b(\014les)f(and)f(executables)j(to)f(go)f(and)g(run)f(the)h
+Fs(configure)d Ft(script)j(from)g(the)150 2491 y(source)j(directory)-8
+b(.)40 b(Y)-8 b(ou)26 b(ma)m(y)g(need)g(to)g(supply)f(the)g(`)p
+Fs(--srcdir=PATH)p Ft(')e(argumen)m(t)j(to)h(tell)f Fs(configure)150
+2600 y Ft(where)43 b(the)h(source)g(\014les)g(are.)82
+b Fs(configure)41 b Ft(automatically)47 b(c)m(hec)m(ks)e(for)f(the)g
+(source)g(co)s(de)g(in)g(the)150 2710 y(directory)31
+b(that)g Fs(configure)d Ft(is)i(in)g(and)g(in)g(`..'.)275
+2861 y(If)20 b(y)m(ou)h(ha)m(v)m(e)i(to)e(use)g(a)g Fs(make)f
+Ft(that)i(do)s(es)e(not)i(supp)s(orts)d(the)i Fs(VPATH)e
+Ft(v)-5 b(ariable,)24 b(y)m(ou)e(can)f(compile)h(Bash)150
+2971 y(for)33 b(one)h(arc)m(hitecture)h(at)f(a)g(time)g(in)f(the)h
+(source)g(co)s(de)f(directory)-8 b(.)51 b(After)34 b(y)m(ou)g(ha)m(v)m
+(e)h(installed)f(Bash)150 3080 y(for)c(one)h(arc)m(hitecture,)h(use)e
+(`)p Fs(make)g(distclean)p Ft(')e(b)s(efore)i(recon\014guring)g(for)g
+(another)g(arc)m(hitecture.)275 3231 y(Alternativ)m(ely)-8
+b(,)26 b(if)21 b(y)m(our)h(system)g(supp)s(orts)d(sym)m(b)s(olic)j
+(links,)i(y)m(ou)e(can)g(use)f(the)h(`)p Fs(support/mkclone)p
+Ft(')150 3341 y(script)h(to)h(create)g(a)f(build)f(tree)i(whic)m(h)f
+(has)f(sym)m(b)s(olic)i(links)e(bac)m(k)i(to)g(eac)m(h)g(\014le)f(in)g
+(the)g(source)g(directory)-8 b(.)150 3450 y(Here's)41
+b(an)f(example)i(that)f(creates)h(a)e(build)g(directory)h(in)f(the)h
+(curren)m(t)f(directory)h(from)f(a)h(source)150 3560
+y(directory)31 b(`)p Fs(/usr/gnu/src/bash-2.0)p Ft(':)390
+3711 y Fs(bash)47 b(/usr/gnu/src/bash-2.0/s)o(uppo)o(rt/)o(mkcl)o(one)
+41 b(-s)47 b(/usr/gnu/src/bash-2.0)42 b(.)150 3862 y
+Ft(The)c Fs(mkclone)e Ft(script)i(requires)g(Bash,)i(so)f(y)m(ou)f(m)m
+(ust)h(ha)m(v)m(e)g(already)g(built)f(Bash)g(for)g(at)h(least)h(one)150
+3972 y(arc)m(hitecture)32 b(b)s(efore)e(y)m(ou)h(can)f(create)i(build)e
+(directories)h(for)f(other)h(arc)m(hitectures.)150 4271
+y Fr(10.4)68 b(Installation)47 b(Names)275 4531 y Ft(By)36
+b(default,)h(`)p Fs(make)29 b(install)p Ft(')34 b(will)j(install)f(in)m
+(to)h(`)p Fs(/usr/local/bin)p Ft(',)d(`)p Fs(/usr/local/man)p
+Ft(',)g(etc.)150 4641 y(Y)-8 b(ou)39 b(can)g(sp)s(ecify)f(an)h
+(installation)h(pre\014x)d(other)i(than)g(`)p Fs(/usr/local)p
+Ft(')d(b)m(y)i(giving)i Fs(configure)c Ft(the)150 4751
+y(option)41 b(`)p Fs(--prefix=)p Fj(PATH)11 b Ft(',)41
+b(or)g(b)m(y)f(sp)s(ecifying)h(a)h(v)-5 b(alue)41 b(for)g(the)g
+Fs(DESTDIR)e Ft(`)p Fs(make)p Ft(')h(v)-5 b(ariable)42
+b(when)150 4860 y(running)29 b(`)p Fs(make)g(install)p
+Ft('.)275 5011 y(Y)-8 b(ou)71 b(can)h(sp)s(ecify)f(separate)h
+(installation)h(pre\014xes)d(for)h(arc)m(hitecture-sp)s(eci\014c)i
+(\014les)f(and)150 5121 y(arc)m(hitecture-indep)s(enden)m(t)38
+b(\014les.)62 b(If)37 b(y)m(ou)h(giv)m(e)g Fs(configure)d
+Ft(the)j(option)g(`)p Fs(--exec-prefix=)p Fj(PATH)11
+b Ft(',)150 5230 y(`)p Fs(make)29 b(install)p Ft(')63
+b(will)h(use)f Fq(P)-8 b(A)g(TH)75 b Ft(as)64 b(the)g(pre\014x)e(for)i
+(installing)h(programs)e(and)h(libraries.)150 5340 y(Do)s(cumen)m
+(tation)32 b(and)e(other)h(data)g(\014les)f(will)h(still)g(use)f(the)h
+(regular)f(pre\014x.)p eop end
+%%Page: 129 135
+TeXDict begin 129 134 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(129)150 299 y Fr(10.5)68
+b(Sp)t(ecifying)45 b(the)g(System)h(T)l(yp)t(e)275 539
+y Ft(There)35 b(ma)m(y)h(b)s(e)f(some)h(features)g Fs(configure)d
+Ft(can)j(not)g(\014gure)f(out)g(automatically)-8 b(,)41
+b(but)35 b(need)g(to)150 649 y(determine)h(b)m(y)g(the)h(t)m(yp)s(e)f
+(of)g(host)h(Bash)f(will)h(run)d(on.)58 b(Usually)37
+b Fs(configure)d Ft(can)i(\014gure)g(that)g(out,)150
+758 y(but)c(if)h(it)g(prin)m(ts)g(a)g(message)h(sa)m(ying)g(it)f(can)h
+(not)f(guess)g(the)g(host)g(t)m(yp)s(e,)h(giv)m(e)g(it)f(the)h(`)p
+Fs(--host=TYPE)p Ft(')150 868 y(option.)39 b(`)p Fs(TYPE)p
+Ft(')25 b(can)g(either)g(b)s(e)g(a)g(short)g(name)g(for)g(the)g(system)
+g(t)m(yp)s(e,)h(suc)m(h)f(as)g(`)p Fs(sun4)p Ft(',)h(or)f(a)g
+(canonical)150 977 y(name)30 b(with)g(three)h(\014elds:)40
+b(`)p Fs(CPU-COMPANY-SYSTEM)p Ft(')26 b(\(e.g.,)32 b(`)p
+Fs(i386-unknown-freebsd4.2)p Ft('\).)275 1108 y(See)e(the)h(\014le)f(`)
+p Fs(support/config.sub)p Ft(')c(for)k(the)h(p)s(ossible)f(v)-5
+b(alues)30 b(of)h(eac)m(h)g(\014eld.)150 1354 y Fr(10.6)68
+b(Sharing)45 b(Defaults)275 1594 y Ft(If)34 b(y)m(ou)i(w)m(an)m(t)g(to)
+g(set)g(default)f(v)-5 b(alues)36 b(for)f Fs(configure)e
+Ft(scripts)i(to)h(share,)g(y)m(ou)g(can)g(create)g(a)g(site)150
+1704 y(shell)48 b(script)f(called)i Fs(config.site)44
+b Ft(that)k(giv)m(es)h(default)f(v)-5 b(alues)48 b(for)f(v)-5
+b(ariables)48 b(lik)m(e)h Fs(CC)p Ft(,)j Fs(cache_)150
+1813 y(file)p Ft(,)43 b(and)e Fs(prefix)p Ft(.)73 b Fs(configure)39
+b Ft(lo)s(oks)j(for)f(`)p Fs(PREFIX/share/config.site)p
+Ft(')35 b(if)42 b(it)g(exists,)j(then)150 1923 y(`)p
+Fs(PREFIX/etc/config.site)p Ft(')20 b(if)26 b(it)g(exists.)40
+b(Or,)26 b(y)m(ou)g(can)g(set)g(the)g Fs(CONFIG_SITE)c
+Ft(en)m(vironmen)m(t)k(v)-5 b(ari-)150 2033 y(able)40
+b(to)g(the)g(lo)s(cation)h(of)e(the)h(site)g(script.)67
+b(A)40 b(w)m(arning:)58 b(the)40 b(Bash)g Fs(configure)c
+Ft(lo)s(oks)k(for)f(a)h(site)150 2142 y(script,)31 b(but)e(not)i(all)g
+Fs(configure)d Ft(scripts)i(do.)150 2388 y Fr(10.7)68
+b(Op)t(eration)46 b(Con)l(trols)275 2628 y Fs(configure)27
+b Ft(recognizes)32 b(the)f(follo)m(wing)h(options)f(to)g(con)m(trol)g
+(ho)m(w)g(it)g(op)s(erates.)150 2780 y Fs(--cache-file=)p
+Fj(file)630 2890 y Ft(Use)k(and)g(sa)m(v)m(e)h(the)f(results)g(of)g
+(the)h(tests)f(in)g Fq(\014le)40 b Ft(instead)35 b(of)h(`)p
+Fs(./config.cache)p Ft('.)51 b(Set)630 2999 y Fq(\014le)36
+b Ft(to)31 b(`)p Fs(/dev/null)p Ft(')d(to)j(disable)g(cac)m(hing,)h
+(for)e(debugging)g Fs(configure)p Ft(.)150 3151 y Fs(--help)192
+b Ft(Prin)m(t)30 b(a)h(summary)e(of)i(the)f(options)h(to)g
+Fs(configure)p Ft(,)d(and)i(exit.)150 3303 y Fs(--quiet)150
+3412 y(--silent)150 3522 y(-q)384 b Ft(Do)31 b(not)g(prin)m(t)f
+(messages)h(sa)m(ying)g(whic)m(h)g(c)m(hec)m(ks)g(are)g(b)s(eing)f
+(made.)150 3674 y Fs(--srcdir=)p Fj(dir)630 3783 y Ft(Lo)s(ok)i(for)g
+(the)g(Bash)g(source)h(co)s(de)f(in)g(directory)g Fq(dir)p
+Ft(.)45 b(Usually)33 b Fs(configure)c Ft(can)j(deter-)630
+3893 y(mine)e(that)h(directory)g(automatically)-8 b(.)150
+4045 y Fs(--version)630 4154 y Ft(Prin)m(t)29 b(the)h(v)m(ersion)g(of)g
+(Auto)s(conf)f(used)g(to)h(generate)h(the)f Fs(configure)d
+Ft(script,)j(and)f(exit.)275 4306 y Fs(configure)34 b
+Ft(also)k(accepts)g(some)g(other,)h(not)e(widely)g(used,)h(b)s
+(oilerplate)g(options.)61 b(`)p Fs(configure)150 4415
+y(--help)p Ft(')29 b(prin)m(ts)h(the)g(complete)i(list.)150
+4661 y Fr(10.8)68 b(Optional)46 b(F)-11 b(eatures)275
+4902 y Ft(The)34 b(Bash)h Fs(configure)d Ft(has)j(a)g(n)m(um)m(b)s(er)f
+(of)h(`)p Fs(--enable-)p Fj(feature)11 b Ft(')30 b(options,)37
+b(where)e Fq(feature)40 b Ft(in-)150 5011 y(dicates)33
+b(an)f(optional)h(part)f(of)g(Bash.)45 b(There)32 b(are)g(also)h(sev)m
+(eral)g(`)p Fs(--with-)p Fj(package)11 b Ft(')29 b(options,)j(where)150
+5121 y Fq(pac)m(k)-5 b(age)35 b Ft(is)28 b(something)h(lik)m(e)h(`)p
+Fs(bash-malloc)p Ft(')25 b(or)j(`)p Fs(purify)p Ft('.)39
+b(T)-8 b(o)29 b(turn)e(o\013)h(the)h(default)f(use)g(of)g(a)h(pac)m(k-)
+150 5230 y(age,)43 b(use)d(`)p Fs(--without-)p Fj(package)11
+b Ft('.)63 b(T)-8 b(o)40 b(con\014gure)g(Bash)f(without)h(a)g(feature)g
+(that)g(is)g(enabled)f(b)m(y)150 5340 y(default,)31 b(use)f(`)p
+Fs(--disable-)p Fj(feature)11 b Ft('.)p eop end
+%%Page: 130 136
+TeXDict begin 130 135 bop 150 -116 a Ft(130)2527 b(Bash)31
+b(Reference)g(Man)m(ual)275 299 y(Here)21 b(is)g(a)g(complete)h(list)g
+(of)f(the)g(`)p Fs(--enable-)p Ft(')e(and)h(`)p Fs(--with-)p
+Ft(')g(options)h(that)g(the)g(Bash)g Fs(configure)150
+408 y Ft(recognizes.)150 589 y Fs(--with-afs)630 698
+y Ft(De\014ne)31 b(if)f(y)m(ou)h(are)f(using)g(the)h(Andrew)e(File)j
+(System)e(from)g(T)-8 b(ransarc.)150 872 y Fs(--with-bash-malloc)630
+981 y Ft(Use)31 b(the)g(Bash)f(v)m(ersion)i(of)e Fs(malloc)f
+Ft(in)h(the)h(directory)g(`)p Fs(lib/malloc)p Ft('.)39
+b(This)30 b(is)h(not)g(the)630 1091 y(same)h Fs(malloc)e
+Ft(that)j(app)s(ears)e(in)g Fl(gnu)h Ft(lib)s(c,)g(but)f(an)h(older)f
+(v)m(ersion)i(originally)g(deriv)m(ed)630 1200 y(from)f(the)h(4.2)g
+Fl(bsd)f Fs(malloc)p Ft(.)45 b(This)31 b Fs(malloc)g
+Ft(is)i(v)m(ery)f(fast,)i(but)e(w)m(astes)h(some)g(space)g(on)630
+1310 y(eac)m(h)g(allo)s(cation.)48 b(This)31 b(option)i(is)f(enabled)g
+(b)m(y)g(default.)46 b(The)31 b(`)p Fs(NOTES)p Ft(')g(\014le)h(con)m
+(tains)i(a)630 1419 y(list)29 b(of)f(systems)f(for)h(whic)m(h)g(this)g
+(should)e(b)s(e)i(turned)e(o\013,)j(and)f Fs(configure)d
+Ft(disables)j(this)630 1529 y(option)j(automatically)i(for)d(a)h(n)m
+(um)m(b)s(er)e(of)i(systems.)150 1702 y Fs(--with-curses)630
+1812 y Ft(Use)h(the)h(curses)e(library)h(instead)g(of)h(the)f(termcap)g
+(library)-8 b(.)46 b(This)32 b(should)f(b)s(e)g(supplied)630
+1921 y(if)f(y)m(our)h(system)f(has)g(an)h(inadequate)g(or)f(incomplete)
+i(termcap)e(database.)150 2095 y Fs(--with-gnu-malloc)630
+2204 y Ft(A)g(synon)m(ym)g(for)g Fs(--with-bash-malloc)p
+Ft(.)150 2378 y Fs(--with-installed-readlin)o(e[=)p Fj(P)o(REFI)o(X)11
+b Fs(])630 2487 y Ft(De\014ne)26 b(this)f(to)h(mak)m(e)h(Bash)f(link)f
+(with)g(a)h(lo)s(cally-installed)i(v)m(ersion)e(of)g(Readline)g(rather)
+630 2597 y(than)38 b(the)h(v)m(ersion)g(in)g(`)p Fs(lib/readline)p
+Ft('.)62 b(This)38 b(w)m(orks)h(only)f(with)h(Readline)g(5.0)h(and)630
+2706 y(later)29 b(v)m(ersions.)40 b(If)28 b Fq(PREFIX)37
+b Ft(is)28 b Fs(yes)f Ft(or)h(not)g(supplied,)f Fs(configure)f
+Ft(uses)h(the)h(v)-5 b(alues)29 b(of)630 2816 y(the)c(mak)m(e)g(v)-5
+b(ariables)25 b Fs(includedir)d Ft(and)h Fs(libdir)p
+Ft(,)h(whic)m(h)h(are)f(sub)s(directories)g(of)h Fs(prefix)630
+2926 y Ft(b)m(y)32 b(default,)g(to)h(\014nd)d(the)i(installed)h(v)m
+(ersion)f(of)g(Readline)h(if)f(it)g(is)g(not)g(in)g(the)g(standard)630
+3035 y(system)j(include)f(and)g(library)g(directories.)54
+b(If)34 b Fq(PREFIX)43 b Ft(is)35 b Fs(no)p Ft(,)g(Bash)f(links)h(with)
+f(the)630 3145 y(v)m(ersion)k(in)f(`)p Fs(lib/readline)p
+Ft('.)58 b(If)37 b Fq(PREFIX)46 b Ft(is)38 b(set)g(to)g(an)m(y)f(other)
+h(v)-5 b(alue,)39 b Fs(configure)630 3254 y Ft(treats)27
+b(it)g(as)f(a)h(directory)g(pathname)f(and)f(lo)s(oks)i(for)f(the)g
+(installed)h(v)m(ersion)g(of)f(Readline)630 3364 y(in)34
+b(sub)s(directories)f(of)h(that)h(directory)g(\(include)f(\014les)g(in)
+g Fq(PREFIX)9 b Ft(/)p Fs(include)32 b Ft(and)i(the)630
+3473 y(library)c(in)g Fq(PREFIX)9 b Ft(/)p Fs(lib)p Ft(\).)150
+3647 y Fs(--with-purify)630 3756 y Ft(De\014ne)23 b(this)g(to)h(use)f
+(the)g(Purify)f(memory)h(allo)s(cation)i(c)m(hec)m(k)m(er)g(from)e
+(Rational)i(Soft)m(w)m(are.)150 3930 y Fs(--enable-minimal-config)630
+4039 y Ft(This)e(pro)s(duces)f(a)i(shell)g(with)f(minimal)h(features,)h
+(close)g(to)f(the)g(historical)h(Bourne)e(shell.)275
+4219 y(There)g(are)i(sev)m(eral)g(`)p Fs(--enable-)p
+Ft(')d(options)j(that)f(alter)h(ho)m(w)g(Bash)f(is)g(compiled)h(and)e
+(link)m(ed,)j(rather)150 4329 y(than)k(c)m(hanging)h(run-time)f
+(features.)150 4509 y Fs(--enable-largefile)630 4619
+y Ft(Enable)76 b(supp)s(ort)f(for)h(large)h(\014les)f(\()p
+Fs(http://www.sas.com/standar)o(ds/l)o(arge)o(_)630 4728
+y(file/x_open.20Mar96.html)o Ft(\))23 b(if)28 b(the)g(op)s(erating)h
+(system)f(requires)g(sp)s(ecial)g(compiler)630 4838 y(options)45
+b(to)g(build)e(programs)h(whic)m(h)g(can)g(access)i(large)f(\014les.)82
+b(This)44 b(is)g(enabled)g(b)m(y)630 4948 y(default,)31
+b(if)f(the)h(op)s(erating)g(system)f(pro)m(vides)g(large)i(\014le)e
+(supp)s(ort.)150 5121 y Fs(--enable-profiling)630 5230
+y Ft(This)h(builds)f(a)i(Bash)g(binary)f(that)h(pro)s(duces)e
+(pro\014ling)h(information)h(to)h(b)s(e)d(pro)s(cessed)630
+5340 y(b)m(y)g Fs(gprof)f Ft(eac)m(h)j(time)f(it)g(is)f(executed.)p
+eop end
+%%Page: 131 137
+TeXDict begin 131 136 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(131)150 299 y Fs(--enable-static-link)630
+408 y Ft(This)37 b(causes)h(Bash)f(to)h(b)s(e)f(link)m(ed)h(statically)
+-8 b(,)43 b(if)37 b Fs(gcc)g Ft(is)g(b)s(eing)g(used.)61
+b(This)37 b(could)h(b)s(e)630 518 y(used)30 b(to)h(build)e(a)i(v)m
+(ersion)g(to)g(use)f(as)g(ro)s(ot's)h(shell.)275 671
+y(The)f(`)p Fs(minimal-config)p Ft(')d(option)k(can)g(b)s(e)f(used)f
+(to)j(disable)e(all)i(of)f(the)f(follo)m(wing)i(options,)g(but)d(it)150
+781 y(is)h(pro)s(cessed)g(\014rst,)g(so)h(individual)f(options)g(ma)m
+(y)h(b)s(e)f(enabled)g(using)g(`)p Fs(enable-)p Fj(feature)11
+b Ft('.)275 913 y(All)37 b(of)g(the)f(follo)m(wing)i(options)f(except)h
+(for)e(`)p Fs(disabled-builtins)p Ft(')d(and)j(`)p Fs(xpg-echo-default)
+p Ft(')150 1022 y(are)26 b(enabled)g(b)m(y)g(default,)h(unless)f(the)g
+(op)s(erating)g(system)g(do)s(es)g(not)g(pro)m(vide)g(the)g(necessary)g
+(supp)s(ort.)150 1176 y Fs(--enable-alias)630 1285 y
+Ft(Allo)m(w)41 b(alias)g(expansion)f(and)f(include)g(the)h
+Fs(alias)f Ft(and)g Fs(unalias)e Ft(builtins)j(\(see)g(Sec-)630
+1395 y(tion)31 b(6.6)g([Aliases],)i(page)e(79\).)150
+1548 y Fs(--enable-arith-for-comma)o(nd)630 1658 y Ft(Include)21
+b(supp)s(ort)g(for)g(the)i(alternate)g(form)f(of)g(the)g
+Fs(for)f Ft(command)h(that)h(b)s(eha)m(v)m(es)f(lik)m(e)i(the)630
+1767 y(C)30 b(language)i Fs(for)d Ft(statemen)m(t)j(\(see)g(Section)f
+(3.2.4.1)i([Lo)s(oping)d(Constructs],)h(page)g(10\).)150
+1921 y Fs(--enable-array-variables)630 2030 y Ft(Include)h(supp)s(ort)g
+(for)h(one-dimensional)h(arra)m(y)f(shell)h(v)-5 b(ariables)33
+b(\(see)h(Section)g(6.7)h([Ar-)630 2140 y(ra)m(ys],)c(page)g(80\).)150
+2293 y Fs(--enable-bang-history)630 2403 y Ft(Include)36
+b(supp)s(ort)f(for)h Fs(csh)p Ft(-lik)m(e)h(history)g(substitution)f
+(\(see)h(Section)g(9.3)h([History)f(In-)630 2513 y(teraction],)c(page)e
+(123\).)150 2666 y Fs(--enable-brace-expansion)630 2776
+y Ft(Include)40 b Fs(csh)p Ft(-lik)m(e)h(brace)f(expansion)g(\()h
+Fs(b{a,b}c)2445 2772 y Fp(7!)2576 2776 y Fs(bac)30 b(bbc)39
+b Ft(\).)71 b(See)40 b(Section)h(3.5.1)630 2885 y([Brace)32
+b(Expansion],)e(page)h(18,)h(for)e(a)g(complete)i(description.)150
+3039 y Fs(--enable-casemod-attribu)o(tes)630 3148 y Ft(Include)37
+b(supp)s(ort)g(for)g(case-mo)s(difying)i(attributes)g(in)e(the)h
+Fs(declare)e Ft(builtin)i(and)f(as-)630 3258 y(signmen)m(t)29
+b(statemen)m(ts.)41 b(V)-8 b(ariables)30 b(with)e(the)g
+Fq(upp)s(ercase)k Ft(attribute,)e(for)e(example,)i(will)630
+3367 y(ha)m(v)m(e)i(their)e(v)-5 b(alues)31 b(con)m(v)m(erted)h(to)f
+(upp)s(ercase)e(up)s(on)g(assignmen)m(t.)150 3521 y Fs
+(--enable-casemod-expansi)o(on)630 3630 y Ft(Include)h(supp)s(ort)e
+(for)i(case-mo)s(difying)i(w)m(ord)e(expansions.)150
+3784 y Fs(--enable-command-timing)630 3893 y Ft(Include)43
+b(supp)s(ort)f(for)h(recognizing)i Fs(time)e Ft(as)g(a)h(reserv)m(ed)g
+(w)m(ord)f(and)g(for)h(displa)m(ying)630 4003 y(timing)37
+b(statistics)h(for)e(the)g(pip)s(eline)g(follo)m(wing)i
+Fs(time)d Ft(\(see)i(Section)g(3.2.2)h([Pip)s(elines],)630
+4113 y(page)24 b(8\).)39 b(This)23 b(allo)m(ws)h(pip)s(elines)f(as)h(w)
+m(ell)g(as)g(shell)f(builtins)g(and)g(functions)g(to)h(b)s(e)e(timed.)
+150 4266 y Fs(--enable-cond-command)630 4376 y Ft(Include)33
+b(supp)s(ort)f(for)i(the)g Fs([[)f Ft(conditional)i(command.)51
+b(\(see)34 b(Section)h(3.2.4.2)h([Condi-)630 4485 y(tional)c
+(Constructs],)e(page)h(10\).)150 4639 y Fs(--enable-cond-regexp)630
+4748 y Ft(Include)f(supp)s(ort)f(for)i(matc)m(hing)h(POSIX)d(regular)i
+(expressions)g(using)f(the)h(`)p Fs(=~)p Ft(')g(binary)630
+4858 y(op)s(erator)25 b(in)f(the)h Fs([[)f Ft(conditional)h(command.)39
+b(\(see)25 b(Section)h(3.2.4.2)h([Conditional)e(Con-)630
+4967 y(structs],)31 b(page)g(10\).)150 5121 y Fs(--enable-coprocesses)
+630 5230 y Ft(Include)23 b(supp)s(ort)f(for)i(copro)s(cesses)g(and)f
+(the)h Fs(coproc)e Ft(reserv)m(ed)i(w)m(ord)g(\(see)h(Section)f(3.2.2)
+630 5340 y([Pip)s(elines],)31 b(page)g(8\).)p eop end
+%%Page: 132 138
+TeXDict begin 132 137 bop 150 -116 a Ft(132)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fs(--enable-debugger)630
+408 y Ft(Include)f(supp)s(ort)e(for)i(the)h(bash)f(debugger)g
+(\(distributed)g(separately\).)150 573 y Fs(--enable-directory-stack)
+630 682 y Ft(Include)j(supp)s(ort)g(for)h(a)g Fs(csh)p
+Ft(-lik)m(e)h(directory)f(stac)m(k)i(and)d(the)i Fs(pushd)p
+Ft(,)f Fs(popd)p Ft(,)g(and)f Fs(dirs)630 792 y Ft(builtins)d(\(see)h
+(Section)g(6.8)h([The)e(Directory)i(Stac)m(k],)g(page)f(81\).)150
+956 y Fs(--enable-disabled-builti)o(ns)630 1066 y Ft(Allo)m(w)40
+b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m(ed)i(via)f(`)p
+Fs(builtin)29 b(xxx)p Ft(')37 b(ev)m(en)j(after)f Fs(xxx)e
+Ft(has)630 1176 y(b)s(een)31 b(disabled)g(using)g(`)p
+Fs(enable)d(-n)i(xxx)p Ft('.)43 b(See)32 b(Section)g(4.2)h([Bash)e
+(Builtins],)i(page)f(41,)630 1285 y(for)e(details)i(of)e(the)h
+Fs(builtin)d Ft(and)i Fs(enable)e Ft(builtin)i(commands.)150
+1450 y Fs(--enable-dparen-arithmet)o(ic)630 1559 y Ft(Include)42
+b(supp)s(ort)f(for)h(the)h Fs(\(\(...)o(\)\))f Ft(command)g(\(see)i
+(Section)f(3.2.4.2)i([Conditional)630 1669 y(Constructs],)30
+b(page)h(10\).)150 1833 y Fs(--enable-extended-glob)630
+1943 y Ft(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h
+(matc)m(hing)g(features)g(describ)s(ed)e(ab)s(o)m(v)m(e)630
+2052 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i
+(page)e(25.)150 2217 y Fs(--enable-help-builtin)630 2326
+y Ft(Include)24 b(the)h Fs(help)f Ft(builtin,)h(whic)m(h)g(displa)m(ys)
+f(help)h(on)f(shell)h(builtins)f(and)h(v)-5 b(ariables)25
+b(\(see)630 2436 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f
+(41\).)150 2600 y Fs(--enable-history)630 2710 y Ft(Include)e(command)g
+(history)h(and)f(the)h Fs(fc)f Ft(and)g Fs(history)e
+Ft(builtin)j(commands)f(\(see)h(Sec-)630 2819 y(tion)h(9.1)g([Bash)g
+(History)g(F)-8 b(acilities],)34 b(page)d(121\).)150
+2984 y Fs(--enable-job-control)630 3093 y Ft(This)e(enables)i(the)f
+(job)g(con)m(trol)h(features)g(\(see)g(Chapter)f(7)g([Job)g(Con)m
+(trol],)h(page)g(89\),)h(if)630 3203 y(the)f(op)s(erating)f(system)h
+(supp)s(orts)d(them.)150 3367 y Fs(--enable-multibyte)630
+3477 y Ft(This)h(enables)i(supp)s(ort)d(for)i(m)m(ultib)m(yte)h(c)m
+(haracters)g(if)f(the)g(op)s(erating)h(system)f(pro)m(vides)630
+3587 y(the)h(necessary)f(supp)s(ort.)150 3751 y Fs
+(--enable-net-redirection)o(s)630 3861 y Ft(This)21 b(enables)h(the)g
+(sp)s(ecial)h(handling)e(of)h(\014lenames)g(of)g(the)g(form)f
+Fs(/dev/tcp/)p Fj(host)11 b Fs(/)p Fj(port)630 3970 y
+Ft(and)29 b Fs(/dev/udp/)p Fj(host)11 b Fs(/)p Fj(port)34
+b Ft(when)28 b(used)g(in)h(redirections)h(\(see)g(Section)g(3.6)g
+([Redirec-)630 4080 y(tions],)h(page)g(26\).)150 4244
+y Fs(--enable-process-substit)o(utio)o(n)630 4354 y Ft(This)49
+b(enables)i(pro)s(cess)f(substitution)g(\(see)h(Section)g(3.5.6)h([Pro)
+s(cess)e(Substitution],)630 4463 y(page)31 b(23\))h(if)e(the)h(op)s
+(erating)f(system)h(pro)m(vides)f(the)h(necessary)g(supp)s(ort.)150
+4628 y Fs(--enable-progcomp)630 4737 y Ft(Enable)d(the)g(programmable)g
+(completion)i(facilities)g(\(see)f(Section)g(8.6)g([Programmable)630
+4847 y(Completion],)i(page)h(115\).)42 b(If)30 b(Readline)h(is)f(not)h
+(enabled,)f(this)h(option)g(has)f(no)g(e\013ect.)150
+5011 y Fs(--enable-prompt-string-d)o(ecod)o(ing)630 5121
+y Ft(T)-8 b(urn)46 b(on)h(the)h(in)m(terpretation)g(of)g(a)g(n)m(um)m
+(b)s(er)e(of)h(bac)m(kslash-escap)s(ed)h(c)m(haracters)h(in)630
+5230 y(the)39 b Fs($PS1)p Ft(,)g Fs($PS2)p Ft(,)h Fs($PS3)p
+Ft(,)f(and)f Fs($PS4)f Ft(prompt)h(strings.)64 b(See)39
+b(Section)g(6.9)h([Prin)m(ting)f(a)630 5340 y(Prompt],)30
+b(page)h(83,)h(for)e(a)h(complete)h(list)f(of)f(prompt)g(string)g
+(escap)s(e)h(sequences.)p eop end
+%%Page: 133 139
+TeXDict begin 133 138 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(133)150 299 y Fs(--enable-readline)630
+408 y Ft(Include)28 b(supp)s(ort)f(for)h(command-line)h(editing)g(and)f
+(history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 518
+y(the)i(Readline)g(library)f(\(see)h(Chapter)f(8)g([Command)g(Line)g
+(Editing],)h(page)g(93\).)150 677 y Fs(--enable-restricted)630
+787 y Ft(Include)41 b(supp)s(ort)f(for)i(a)g Fq(restricted)g(shell)p
+Ft(.)75 b(If)42 b(this)f(is)h(enabled,)j(Bash,)g(when)c(called)630
+897 y(as)f Fs(rbash)p Ft(,)h(en)m(ters)f(a)g(restricted)h(mo)s(de.)68
+b(See)40 b(Section)h(6.10)g([The)f(Restricted)h(Shell],)630
+1006 y(page)31 b(84,)h(for)e(a)g(description)h(of)f(restricted)h(mo)s
+(de.)150 1166 y Fs(--enable-select)630 1275 y Ft(Include)k(the)g
+Fs(select)f Ft(builtin,)i(whic)m(h)f(allo)m(ws)i(the)f(generation)g(of)
+g(simple)f(men)m(us)g(\(see)630 1385 y(Section)c(3.2.4.2)i
+([Conditional)e(Constructs],)g(page)g(10\).)150 1544
+y Fs(--enable-separate-helpfi)o(les)630 1654 y Ft(Use)h(external)h
+(\014les)f(for)g(the)g(do)s(cumen)m(tation)h(displa)m(y)m(ed)f(b)m(y)g
+(the)g Fs(help)f Ft(builtin)h(instead)630 1763 y(of)f(storing)f(the)h
+(text)g(in)m(ternally)-8 b(.)150 1923 y Fs(--enable-single-help-str)o
+(ings)630 2032 y Ft(Store)40 b(the)g(text)h(displa)m(y)m(ed)g(b)m(y)e
+(the)i Fs(help)d Ft(builtin)i(as)g(a)g(single)h(string)f(for)f(eac)m(h)
+i(help)630 2142 y(topic.)54 b(This)33 b(aids)i(in)f(translating)h(the)g
+(text)g(to)g(di\013eren)m(t)g(languages.)54 b(Y)-8 b(ou)35
+b(ma)m(y)g(need)630 2252 y(to)c(disable)g(this)f(if)g(y)m(our)h
+(compiler)g(cannot)f(handle)g(v)m(ery)h(long)g(string)f(literals.)150
+2411 y Fs(--enable-strict-posix-de)o(faul)o(t)630 2521
+y Ft(Mak)m(e)c(Bash)f Fl(posix)p Ft(-conforman)m(t)g(b)m(y)f(default)h
+(\(see)g(Section)h(6.11)g([Bash)f(POSIX)e(Mo)s(de],)630
+2630 y(page)31 b(85\).)150 2790 y Fs(--enable-usg-echo-defaul)o(t)630
+2899 y Ft(A)f(synon)m(ym)g(for)g Fs(--enable-xpg-echo-default)p
+Ft(.)150 3059 y Fs(--enable-xpg-echo-defaul)o(t)630 3168
+y Ft(Mak)m(e)c(the)f Fs(echo)e Ft(builtin)i(expand)f(bac)m
+(kslash-escap)s(ed)h(c)m(haracters)h(b)m(y)f(default,)h(without)630
+3278 y(requiring)41 b(the)g(`)p Fs(-e)p Ft(')g(option.)73
+b(This)41 b(sets)g(the)g(default)h(v)-5 b(alue)41 b(of)h(the)f
+Fs(xpg_echo)e Ft(shell)630 3387 y(option)26 b(to)g Fs(on)p
+Ft(,)g(whic)m(h)g(mak)m(es)g(the)g(Bash)g Fs(echo)e Ft(b)s(eha)m(v)m(e)
+i(more)g(lik)m(e)h(the)f(v)m(ersion)g(sp)s(eci\014ed)630
+3497 y(in)41 b(the)h(Single)g(Unix)f(Sp)s(eci\014cation,)k(v)m(ersion)e
+(3.)74 b(See)42 b(Section)g(4.2)h([Bash)f(Builtins],)630
+3606 y(page)31 b(41,)h(for)e(a)g(description)h(of)f(the)h(escap)s(e)g
+(sequences)f(that)h Fs(echo)f Ft(recognizes.)275 3766
+y(The)23 b(\014le)i(`)p Fs(config-top.h)p Ft(')c(con)m(tains)26
+b(C)e(Prepro)s(cessor)g(`)p Fs(#define)p Ft(')e(statemen)m(ts)k(for)f
+(options)f(whic)m(h)150 3875 y(are)35 b(not)g(settable)i(from)d
+Fs(configure)p Ft(.)51 b(Some)35 b(of)g(these)g(are)h(not)f(mean)m(t)g
+(to)h(b)s(e)e(c)m(hanged;)k(b)s(ew)m(are)d(of)150 3985
+y(the)h(consequences)g(if)f(y)m(ou)h(do.)55 b(Read)36
+b(the)g(commen)m(ts)g(asso)s(ciated)h(with)e(eac)m(h)i(de\014nition)e
+(for)g(more)150 4095 y(information)c(ab)s(out)f(its)h(e\013ect.)p
+eop end
+%%Page: 134 140
+TeXDict begin 134 139 bop 150 -116 a Ft(134)2527 b(Bash)31
+b(Reference)g(Man)m(ual)p eop end
+%%Page: 135 141
+TeXDict begin 135 140 bop 150 -116 a Ft(App)s(endix)29
+b(A:)h(Rep)s(orting)h(Bugs)2299 b(135)150 299 y Fo(App)t(endix)52
+b(A)121 b(Rep)t(orting)52 b(Bugs)275 533 y Ft(Please)35
+b(rep)s(ort)e(all)i(bugs)f(y)m(ou)g(\014nd)f(in)h(Bash.)52
+b(But)34 b(\014rst,)h(y)m(ou)f(should)f(mak)m(e)i(sure)f(that)g(it)h
+(really)150 643 y(is)h(a)g(bug,)h(and)e(that)h(it)h(app)s(ears)e(in)g
+(the)h(latest)i(v)m(ersion)e(of)g(Bash.)57 b(The)35 b(latest)j(v)m
+(ersion)e(of)g(Bash)g(is)150 752 y(alw)m(a)m(ys)c(a)m(v)-5
+b(ailable)33 b(for)d(FTP)g(from)g Fs(ftp://ftp.gnu.org/pub/ba)o(sh/)o
+Ft(.)275 887 y(Once)41 b(y)m(ou)g(ha)m(v)m(e)h(determined)f(that)h(a)f
+(bug)g(actually)h(exists,)j(use)c(the)g Fs(bashbug)e
+Ft(command)i(to)150 996 y(submit)25 b(a)h(bug)g(rep)s(ort.)38
+b(If)26 b(y)m(ou)g(ha)m(v)m(e)h(a)f(\014x,)h(y)m(ou)f(are)g(encouraged)
+h(to)f(mail)h(that)f(as)g(w)m(ell!)40 b(Suggestions)150
+1106 y(and)20 b(`philosophical')j(bug)d(rep)s(orts)g(ma)m(y)i(b)s(e)e
+(mailed)i(to)g Fs(bug-bash@gnu.org)17 b Ft(or)k(p)s(osted)f(to)i(the)f
+(Usenet)150 1215 y(newsgroup)29 b Fs(gnu.bash.bug)p Ft(.)275
+1350 y(All)i(bug)e(rep)s(orts)h(should)f(include:)225
+1484 y Fp(\017)60 b Ft(The)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h
+(Bash.)225 1619 y Fp(\017)60 b Ft(The)30 b(hardw)m(are)g(and)g(op)s
+(erating)g(system.)225 1753 y Fp(\017)60 b Ft(The)30
+b(compiler)h(used)e(to)i(compile)h(Bash.)225 1888 y Fp(\017)60
+b Ft(A)30 b(description)h(of)f(the)h(bug)f(b)s(eha)m(viour.)225
+2022 y Fp(\017)60 b Ft(A)30 b(short)h(script)f(or)g(`recip)s(e')h(whic)
+m(h)f(exercises)i(the)e(bug)g(and)g(ma)m(y)h(b)s(e)f(used)f(to)i(repro)
+s(duce)e(it.)150 2182 y Fs(bashbug)d Ft(inserts)i(the)h(\014rst)f
+(three)g(items)h(automatically)i(in)m(to)f(the)e(template)i(it)f(pro)m
+(vides)f(for)g(\014ling)h(a)150 2291 y(bug)h(rep)s(ort.)275
+2426 y(Please)h(send)f(all)h(rep)s(orts)f(concerning)g(this)h(man)m
+(ual)f(to)h Fs(chet@po.CWRU.Edu)p Ft(.)p eop end
+%%Page: 136 142
+TeXDict begin 136 141 bop 150 -116 a Ft(136)2527 b(Bash)31
+b(Reference)g(Man)m(ual)p eop end
+%%Page: 137 143
+TeXDict begin 137 142 bop 150 -116 a Ft(App)s(endix)29
+b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
+b(The)f(Bourne)g(Shell)1258 b(137)150 141 y Fo(App)t(endix)52
+b(B)128 b(Ma)9 b(jor)54 b(Di\013erences)d(F)-13 b(rom)54
+b(The)f(Bourne)1135 299 y(Shell)275 530 y Ft(Bash)25
+b(implemen)m(ts)g(essen)m(tially)i(the)f(same)f(grammar,)i(parameter)e
+(and)g(v)-5 b(ariable)26 b(expansion,)g(redi-)150 640
+y(rection,)i(and)e(quoting)h(as)f(the)g(Bourne)g(Shell.)40
+b(Bash)26 b(uses)g(the)g Fl(posix)g Ft(standard)f(as)i(the)f(sp)s
+(eci\014cation)150 749 y(of)h(ho)m(w)h(these)f(features)h(are)f(to)h(b)
+s(e)f(implemen)m(ted.)40 b(There)27 b(are)g(some)h(di\013erences)f(b)s
+(et)m(w)m(een)h(the)g(tradi-)150 859 y(tional)33 b(Bourne)e(shell)h
+(and)f(Bash;)i(this)f(section)g(quic)m(kly)h(details)g(the)e
+(di\013erences)h(of)g(signi\014cance.)46 b(A)150 969
+y(n)m(um)m(b)s(er)24 b(of)h(these)h(di\013erences)f(are)h(explained)f
+(in)g(greater)h(depth)f(in)g(previous)f(sections.)40
+b(This)25 b(section)150 1078 y(uses)33 b(the)i(v)m(ersion)f(of)g
+Fs(sh)f Ft(included)g(in)h(SVR4.2)h(\(the)f(last)h(v)m(ersion)f(of)g
+(the)g(historical)i(Bourne)d(shell\))150 1188 y(as)e(the)f(baseline)h
+(reference.)225 1322 y Fp(\017)60 b Ft(Bash)32 b(is)h
+Fl(posix)p Ft(-conforman)m(t,)g(ev)m(en)g(where)f(the)g
+Fl(posix)g Ft(sp)s(eci\014cation)h(di\013ers)f(from)g(traditional)330
+1431 y Fs(sh)e Ft(b)s(eha)m(vior)g(\(see)i(Section)f(6.11)h([Bash)e
+(POSIX)g(Mo)s(de],)h(page)g(85\).)225 1565 y Fp(\017)60
+b Ft(Bash)26 b(has)g(m)m(ulti-c)m(haracter)i(in)m(v)m(o)s(cation)g
+(options)f(\(see)f(Section)h(6.1)g([In)m(v)m(oking)g(Bash],)h(page)e
+(71\).)225 1699 y Fp(\017)60 b Ft(Bash)28 b(has)g(command-line)h
+(editing)f(\(see)h(Chapter)f(8)g([Command)f(Line)h(Editing],)i(page)e
+(93\))i(and)330 1809 y(the)h Fs(bind)e Ft(builtin.)225
+1943 y Fp(\017)60 b Ft(Bash)46 b(pro)m(vides)g(a)g(programmable)g(w)m
+(ord)f(completion)i(mec)m(hanism)f(\(see)h(Section)g(8.6)g([Pro-)330
+2052 y(grammable)39 b(Completion],)i(page)e(115\),)i(and)d(builtin)g
+(commands)f Fs(complete)p Ft(,)h Fs(compgen)p Ft(,)h(and)330
+2162 y Fs(compopt)p Ft(,)29 b(to)i(manipulate)g(it.)225
+2296 y Fp(\017)60 b Ft(Bash)26 b(has)f(command)h(history)f(\(see)i
+(Section)f(9.1)h([Bash)f(History)h(F)-8 b(acilities],)30
+b(page)c(121\))i(and)d(the)330 2405 y Fs(history)k Ft(and)h
+Fs(fc)g Ft(builtins)g(to)h(manipulate)g(it.)42 b(The)30
+b(Bash)h(history)g(list)g(main)m(tains)g(timestamp)330
+2515 y(information)g(and)e(uses)h(the)h(v)-5 b(alue)31
+b(of)f(the)h Fs(HISTTIMEFORMAT)26 b Ft(v)-5 b(ariable)32
+b(to)f(displa)m(y)f(it.)225 2649 y Fp(\017)60 b Ft(Bash)48
+b(implemen)m(ts)h Fs(csh)p Ft(-lik)m(e)g(history)f(expansion)g(\(see)h
+(Section)g(9.3)h([History)f(In)m(teraction],)330 2759
+y(page)31 b(123\).)225 2892 y Fp(\017)60 b Ft(Bash)33
+b(has)g(one-dimensional)h(arra)m(y)f(v)-5 b(ariables)34
+b(\(see)g(Section)g(6.7)g([Arra)m(ys],)g(page)g(80\),)h(and)e(the)330
+3002 y(appropriate)39 b(v)-5 b(ariable)40 b(expansions)f(and)g
+(assignmen)m(t)h(syn)m(tax)g(to)g(use)f(them.)67 b(Sev)m(eral)40
+b(of)g(the)330 3112 y(Bash)32 b(builtins)f(tak)m(e)j(options)e(to)h
+(act)g(on)e(arra)m(ys.)46 b(Bash)32 b(pro)m(vides)g(a)g(n)m(um)m(b)s
+(er)f(of)h(built-in)f(arra)m(y)330 3221 y(v)-5 b(ariables.)225
+3355 y Fp(\017)60 b Ft(The)37 b Fs($'...)n(')g Ft(quoting)g(syn)m(tax,)
+j(whic)m(h)d(expands)f(ANSI-C)h(bac)m(kslash-escap)s(ed)h(c)m
+(haracters)g(in)330 3465 y(the)26 b(text)h(b)s(et)m(w)m(een)g(the)g
+(single)f(quotes,)i(is)e(supp)s(orted)f(\(see)i(Section)g(3.1.2.4)h
+([ANSI-C)e(Quoting],)330 3574 y(page)31 b(6\).)225 3708
+y Fp(\017)60 b Ft(Bash)69 b(supp)s(orts)e(the)i Fs($"...)n(")g
+Ft(quoting)g(syn)m(tax)g(to)h(do)e(lo)s(cale-sp)s(eci\014c)j
+(translation)f(of)330 3818 y(the)65 b(c)m(haracters)i(b)s(et)m(w)m(een)
+f(the)f(double)g(quotes.)145 b(The)65 b(`)p Fs(-D)p Ft(',)74
+b(`)p Fs(--dump-strings)p Ft(',)d(and)330 3927 y(`)p
+Fs(--dump-po-strings)p Ft(')27 b(in)m(v)m(o)s(cation)33
+b(options)e(list)h(the)f(translatable)h(strings)f(found)f(in)h(a)g
+(script)330 4037 y(\(see)g(Section)h(3.1.2.5)g([Lo)s(cale)g(T)-8
+b(ranslation],)32 b(page)f(7\).)225 4171 y Fp(\017)60
+b Ft(Bash)44 b(implemen)m(ts)g(the)f Fs(!)h Ft(k)m(eyw)m(ord)g(to)g
+(negate)h(the)f(return)e(v)-5 b(alue)44 b(of)g(a)g(pip)s(eline)f(\(see)
+h(Sec-)330 4281 y(tion)33 b(3.2.2)i([Pip)s(elines],)f(page)g(8\).)49
+b(V)-8 b(ery)33 b(useful)f(when)g(an)h Fs(if)f Ft(statemen)m(t)j(needs)
+d(to)i(act)g(only)f(if)330 4390 y(a)k(test)h(fails.)60
+b(The)36 b(Bash)g(`)p Fs(-o)30 b(pipefail)p Ft(')35 b(option)i(to)h
+Fs(set)d Ft(will)i(cause)g(a)g(pip)s(eline)g(to)g(return)f(a)330
+4500 y(failure)31 b(status)f(if)h(an)m(y)f(command)g(fails.)225
+4634 y Fp(\017)60 b Ft(Bash)34 b(has)g(the)g Fs(time)f
+Ft(reserv)m(ed)h(w)m(ord)g(and)f(command)h(timing)h(\(see)g(Section)g
+(3.2.2)g([Pip)s(elines],)330 4743 y(page)g(8\).)52 b(The)33
+b(displa)m(y)i(of)f(the)g(timing)g(statistics)i(ma)m(y)f(b)s(e)e(con)m
+(trolled)j(with)e(the)g Fs(TIMEFORMAT)330 4853 y Ft(v)-5
+b(ariable.)225 4987 y Fp(\017)60 b Ft(Bash)23 b(implemen)m(ts)g(the)h
+Fs(for)29 b(\(\()h Fj(expr1)39 b Fs(;)30 b Fj(expr2)40
+b Fs(;)30 b Fj(expr3)39 b Fs(\)\))23 b Ft(arithmetic)h(for)e(command,)j
+(sim-)330 5096 y(ilar)31 b(to)g(the)g(C)f(language)h(\(see)h(Section)f
+(3.2.4.1)i([Lo)s(oping)d(Constructs],)h(page)g(10\).)225
+5230 y Fp(\017)60 b Ft(Bash)31 b(includes)f(the)g Fs(select)f
+Ft(comp)s(ound)g(command,)i(whic)m(h)f(allo)m(ws)i(the)f(generation)g
+(of)g(simple)330 5340 y(men)m(us)f(\(see)h(Section)g(3.2.4.2)i
+([Conditional)e(Constructs],)g(page)g(10\).)p eop end
+%%Page: 138 144
+TeXDict begin 138 143 bop 150 -116 a Ft(138)2527 b(Bash)31
+b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(Bash)40
+b(includes)g(the)g Fs([[)g Ft(comp)s(ound)e(command,)43
+b(whic)m(h)c(mak)m(es)i(conditional)h(testing)f(part)f(of)330
+408 y(the)f(shell)g(grammar)g(\(see)h(Section)f(3.2.4.2)j([Conditional)
+d(Constructs],)i(page)f(10\),)i(including)330 518 y(optional)32
+b(regular)e(expression)g(matc)m(hing.)225 653 y Fp(\017)60
+b Ft(Bash)31 b(pro)m(vides)f(optional)h(case-insensitiv)m(e)i(matc)m
+(hing)f(for)e(the)g Fs(case)g Ft(and)f Fs([[)h Ft(constructs.)225
+789 y Fp(\017)60 b Ft(Bash)27 b(includes)g(brace)h(expansion)f(\(see)h
+(Section)g(3.5.1)i([Brace)e(Expansion],)g(page)g(18\))h(and)d(tilde)330
+898 y(expansion)k(\(see)i(Section)f(3.5.2)h([Tilde)f(Expansion],)f
+(page)h(19\).)225 1034 y Fp(\017)60 b Ft(Bash)24 b(implemen)m(ts)h
+(command)e(aliases)j(and)d(the)i Fs(alias)d Ft(and)i
+Fs(unalias)e Ft(builtins)h(\(see)i(Section)g(6.6)330
+1143 y([Aliases],)32 b(page)f(79\).)225 1279 y Fp(\017)60
+b Ft(Bash)32 b(pro)m(vides)g(shell)g(arithmetic,)i(the)e
+Fs(\(\()g Ft(comp)s(ound)e(command)i(\(see)h(Section)f(3.2.4.2)j([Con-)
+330 1388 y(ditional)d(Constructs],)e(page)i(10\),)g(and)e(arithmetic)i
+(expansion)e(\(see)i(Section)f(6.5)h([Shell)f(Arith-)330
+1498 y(metic],)h(page)f(78\).)225 1633 y Fp(\017)60 b
+Ft(V)-8 b(ariables)31 b(presen)m(t)e(in)g(the)g(shell's)h(initial)g(en)
+m(vironmen)m(t)g(are)g(automatically)i(exp)s(orted)d(to)h(c)m(hild)330
+1743 y(pro)s(cesses.)38 b(The)23 b(Bourne)g(shell)g(do)s(es)g(not)g
+(normally)g(do)g(this)g(unless)g(the)g(v)-5 b(ariables)24
+b(are)f(explicitly)330 1852 y(mark)m(ed)30 b(using)g(the)h
+Fs(export)e Ft(command.)225 1988 y Fp(\017)60 b Ft(Bash)26
+b(supp)s(orts)d(the)j(`)p Fs(+=)p Ft(')f(assignmen)m(t)i(op)s(erator,)g
+(whic)m(h)e(app)s(ends)f(to)i(the)g(v)-5 b(alue)26 b(of)f(the)h(v)-5
+b(ariable)330 2097 y(named)30 b(on)g(the)h(left)g(hand)e(side.)225
+2233 y Fp(\017)60 b Ft(Bash)36 b(includes)g(the)g Fl(posix)f
+Ft(pattern)h(remo)m(v)-5 b(al)37 b(`)p Fs(\045)p Ft(',)h(`)p
+Fs(#)p Ft(',)g(`)p Fs(\045\045)p Ft(')e(and)f(`)p Fs(##)p
+Ft(')h(expansions)g(to)g(remo)m(v)m(e)330 2342 y(leading)f(or)f
+(trailing)h(substrings)e(from)g(v)-5 b(ariable)35 b(v)-5
+b(alues)35 b(\(see)g(Section)g(3.5.3)g([Shell)g(P)m(arameter)330
+2452 y(Expansion],)30 b(page)h(20\).)225 2587 y Fp(\017)60
+b Ft(The)46 b(expansion)g Fs(${#xx})p Ft(,)j(whic)m(h)d(returns)f(the)i
+(length)f(of)h Fs(${xx})p Ft(,)i(is)e(supp)s(orted)d(\(see)j(Sec-)330
+2697 y(tion)31 b(3.5.3)h([Shell)f(P)m(arameter)g(Expansion],)f(page)i
+(20\).)225 2832 y Fp(\017)60 b Ft(The)30 b(expansion)g
+Fs(${var:)p Fq(o\013set)r Fs([:)p Fq(length)p Fs(]})p
+Ft(,)g(whic)m(h)g(expands)g(to)h(the)g(substring)e(of)i
+Fs(var)p Ft('s)e(v)-5 b(alue)330 2942 y(of)43 b(length)g
+Fq(length)p Ft(,)k(b)s(eginning)42 b(at)i Fq(o\013set)p
+Ft(,)j(is)c(presen)m(t)g(\(see)g(Section)h(3.5.3)h([Shell)e(P)m
+(arameter)330 3051 y(Expansion],)30 b(page)h(20\).)225
+3187 y Fp(\017)60 b Ft(The)21 b(expansion)f Fs(${var/[/])p
+Fq(pattern)p Fs([/)p Fq(replacemen)m(t)r Fs(]})p Ft(,)i(whic)m(h)e
+(matc)m(hes)j Fq(pattern)e Ft(and)f(replaces)330 3296
+y(it)29 b(with)e Fq(replacemen)m(t)32 b Ft(in)c(the)g(v)-5
+b(alue)29 b(of)f Fs(var)p Ft(,)g(is)g(a)m(v)-5 b(ailable)31
+b(\(see)e(Section)f(3.5.3)i([Shell)f(P)m(arameter)330
+3406 y(Expansion],)h(page)h(20\).)225 3541 y Fp(\017)60
+b Ft(The)32 b(expansion)g Fs(${!)p Fj(prefix)p Fs(})p
+Fj(*)40 b Ft(expansion,)32 b(whic)m(h)g(expands)g(to)h(the)f(names)g
+(of)h(all)g(shell)f(v)-5 b(ari-)330 3651 y(ables)36 b(whose)g(names)g
+(b)s(egin)g(with)g Fq(pre\014x)p Ft(,)g(is)g(a)m(v)-5
+b(ailable)39 b(\(see)e(Section)g(3.5.3)g([Shell)g(P)m(arameter)330
+3761 y(Expansion],)30 b(page)h(20\).)225 3896 y Fp(\017)60
+b Ft(Bash)22 b(has)f Fq(indirect)j Ft(v)-5 b(ariable)22
+b(expansion)g(using)f Fs(${!word})e Ft(\(see)k(Section)f(3.5.3)i
+([Shell)e(P)m(arameter)330 4006 y(Expansion],)30 b(page)h(20\).)225
+4141 y Fp(\017)60 b Ft(Bash)31 b(can)f(expand)g(p)s(ositional)h
+(parameters)g(b)s(ey)m(ond)e Fs($9)h Ft(using)g Fs(${)p
+Fj(num)11 b Fs(})p Ft(.)225 4276 y Fp(\017)60 b Ft(The)27
+b Fl(posix)g Fs($\(\))g Ft(form)g(of)h(command)g(substitution)f(is)h
+(implemen)m(ted)g(\(see)h(Section)f(3.5.4)i([Com-)330
+4386 y(mand)38 b(Substitution],)k(page)e(23\),)j(and)38
+b(preferred)g(to)i(the)g(Bourne)f(shell's)h Fs(``)e Ft(\(whic)m(h)i(is)
+f(also)330 4495 y(implemen)m(ted)31 b(for)f(bac)m(kw)m(ards)h
+(compatibilit)m(y\).)225 4631 y Fp(\017)60 b Ft(Bash)31
+b(has)f(pro)s(cess)g(substitution)g(\(see)h(Section)g(3.5.6)h([Pro)s
+(cess)f(Substitution],)f(page)h(23\).)225 4766 y Fp(\017)60
+b Ft(Bash)55 b(automatically)j(assigns)e(v)-5 b(ariables)55
+b(that)h(pro)m(vide)f(information)h(ab)s(out)f(the)g(curren)m(t)330
+4876 y(user)40 b(\()p Fs(UID)p Ft(,)i Fs(EUID)p Ft(,)g(and)e
+Fs(GROUPS)p Ft(\),)h(the)g(curren)m(t)f(host)g(\()p Fs(HOSTTYPE)p
+Ft(,)h Fs(OSTYPE)p Ft(,)h Fs(MACHTYPE)p Ft(,)f(and)330
+4985 y Fs(HOSTNAME)p Ft(\),)55 b(and)c(the)g(instance)h(of)g(Bash)f
+(that)h(is)f(running)f(\()p Fs(BASH)p Ft(,)56 b Fs(BASH_VERSION)p
+Ft(,)e(and)330 5095 y Fs(BASH_VERSINFO)p Ft(\).)37 b(See)31
+b(Section)g(5.2)h([Bash)e(V)-8 b(ariables],)33 b(page)e(61,)g(for)f
+(details.)225 5230 y Fp(\017)60 b Ft(The)44 b Fs(IFS)f
+Ft(v)-5 b(ariable)45 b(is)f(used)f(to)i(split)f(only)g(the)g(results)g
+(of)h(expansion,)i(not)d(all)h(w)m(ords)f(\(see)330 5340
+y(Section)29 b(3.5.7)h([W)-8 b(ord)29 b(Splitting],)h(page)f(24\).)41
+b(This)28 b(closes)h(a)g(longstanding)g(shell)f(securit)m(y)h(hole.)p
+eop end
+%%Page: 139 145
+TeXDict begin 139 144 bop 150 -116 a Ft(App)s(endix)29
+b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
+b(The)f(Bourne)g(Shell)1258 b(139)225 299 y Fp(\017)60
+b Ft(Bash)38 b(implemen)m(ts)g(the)g(full)g(set)g(of)g
+Fl(posix)f Ft(\014lename)h(expansion)g(op)s(erators,)i(including)d
+Fq(c)m(har-)330 408 y(acter)i(classes)p Ft(,)j Fq(equiv)-5
+b(alence)39 b(classes)p Ft(,)j(and)37 b Fq(collating)k(sym)m(b)s(ols)g
+Ft(\(see)e(Section)g(3.5.8)h([Filename)330 518 y(Expansion],)30
+b(page)h(24\).)225 660 y Fp(\017)60 b Ft(Bash)35 b(implemen)m(ts)g
+(extended)g(pattern)g(matc)m(hing)h(features)f(when)f(the)h
+Fs(extglob)d Ft(shell)j(option)330 769 y(is)30 b(enabled)h(\(see)g
+(Section)g(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f(25\).)225
+911 y Fp(\017)60 b Ft(It)22 b(is)g(p)s(ossible)g(to)h(ha)m(v)m(e)g(a)f
+(v)-5 b(ariable)23 b(and)f(a)g(function)g(with)g(the)g(same)g(name;)j
+Fs(sh)d Ft(do)s(es)g(not)g(separate)330 1021 y(the)31
+b(t)m(w)m(o)g(name)g(spaces.)225 1163 y Fp(\017)60 b
+Ft(Bash)30 b(functions)e(are)i(p)s(ermitted)f(to)h(ha)m(v)m(e)h(lo)s
+(cal)g(v)-5 b(ariables)30 b(using)f(the)g Fs(local)f
+Ft(builtin,)i(and)e(th)m(us)330 1272 y(useful)i(recursiv)m(e)g
+(functions)g(ma)m(y)h(b)s(e)f(written)g(\(see)i(Section)f(4.2)g([Bash)g
+(Builtins],)g(page)h(41\).)225 1414 y Fp(\017)60 b Ft(V)-8
+b(ariable)25 b(assignmen)m(ts)g(preceding)e(commands)h(a\013ect)h(only)
+f(that)g(command,)h(ev)m(en)f(builtins)g(and)330 1524
+y(functions)36 b(\(see)h(Section)g(3.7.4)h([En)m(vironmen)m(t],)h(page)
+e(32\).)60 b(In)35 b Fs(sh)p Ft(,)j(all)f(v)-5 b(ariable)37
+b(assignmen)m(ts)330 1633 y(preceding)30 b(commands)g(are)h(global)h
+(unless)d(the)i(command)f(is)h(executed)g(from)f(the)g(\014le)h
+(system.)225 1775 y Fp(\017)60 b Ft(Bash)44 b(p)s(erforms)e(\014lename)
+i(expansion)f(on)h(\014lenames)g(sp)s(eci\014ed)f(as)h(op)s(erands)e
+(to)j(input)e(and)330 1885 y(output)30 b(redirection)h(op)s(erators)g
+(\(see)g(Section)g(3.6)h([Redirections],)g(page)f(26\).)225
+2027 y Fp(\017)60 b Ft(Bash)29 b(con)m(tains)h(the)f(`)p
+Fs(<>)p Ft(')f(redirection)i(op)s(erator,)f(allo)m(wing)i(a)e(\014le)g
+(to)g(b)s(e)f(op)s(ened)g(for)h(b)s(oth)f(read-)330 2136
+y(ing)35 b(and)f(writing,)i(and)e(the)h(`)p Fs(&>)p Ft(')g(redirection)
+g(op)s(erator,)h(for)f(directing)g(standard)f(output)h(and)330
+2246 y(standard)30 b(error)g(to)h(the)f(same)h(\014le)f(\(see)i
+(Section)f(3.6)g([Redirections],)h(page)g(26\).)225 2388
+y Fp(\017)60 b Ft(Bash)21 b(includes)f(the)h(`)p Fs(<<<)p
+Ft(')g(redirection)g(op)s(erator,)i(allo)m(wing)g(a)e(string)f(to)i(b)s
+(e)e(used)g(as)h(the)g(standard)330 2497 y(input)29 b(to)j(a)e
+(command.)225 2639 y Fp(\017)60 b Ft(Bash)29 b(implemen)m(ts)h(the)f(`)
+p Fs([n]<&)p Fj(word)11 b Ft(')26 b(and)j(`)p Fs([n]>&)p
+Fj(word)11 b Ft(')26 b(redirection)k(op)s(erators,)g(whic)m(h)e(mo)m(v)
+m(e)330 2749 y(one)j(\014le)f(descriptor)g(to)h(another.)225
+2890 y Fp(\017)60 b Ft(Bash)25 b(treats)h(a)f(n)m(um)m(b)s(er)e(of)i
+(\014lenames)g(sp)s(ecially)g(when)f(they)h(are)g(used)f(in)g
+(redirection)i(op)s(erators)330 3000 y(\(see)31 b(Section)h(3.6)f
+([Redirections],)h(page)f(26\).)225 3142 y Fp(\017)60
+b Ft(Bash)33 b(can)f(op)s(en)g(net)m(w)m(ork)i(connections)f(to)h
+(arbitrary)e(mac)m(hines)h(and)f(services)h(with)f(the)h(redi-)330
+3251 y(rection)e(op)s(erators)g(\(see)g(Section)g(3.6)h
+([Redirections],)g(page)f(26\).)225 3393 y Fp(\017)60
+b Ft(The)29 b Fs(noclobber)e Ft(option)j(is)g(a)m(v)-5
+b(ailable)32 b(to)e(a)m(v)m(oid)h(o)m(v)m(erwriting)g(existing)g
+(\014les)e(with)h(output)f(redi-)330 3503 y(rection)39
+b(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)i(page)e(51\).)66
+b(The)38 b(`)p Fs(>|)p Ft(')h(redirection)g(op)s(erator)330
+3612 y(ma)m(y)31 b(b)s(e)f(used)f(to)i(o)m(v)m(erride)h
+Fs(noclobber)p Ft(.)225 3754 y Fp(\017)60 b Ft(The)34
+b(Bash)g Fs(cd)g Ft(and)f Fs(pwd)g Ft(builtins)h(\(see)h(Section)g(4.1)
+g([Bourne)g(Shell)f(Builtins],)h(page)g(35\))h(eac)m(h)330
+3864 y(tak)m(e)c(`)p Fs(-L)p Ft(')e(and)g(`)p Fs(-P)p
+Ft(')g(options)h(to)g(switc)m(h)g(b)s(et)m(w)m(een)g(logical)i(and)c
+(ph)m(ysical)i(mo)s(des.)225 4006 y Fp(\017)60 b Ft(Bash)25
+b(allo)m(ws)h(a)g(function)e(to)i(o)m(v)m(erride)g(a)g(builtin)e(with)h
+(the)g(same)g(name,)i(and)d(pro)m(vides)h(access)h(to)330
+4115 y(that)34 b(builtin's)f(functionalit)m(y)h(within)f(the)g
+(function)g(via)h(the)f Fs(builtin)f Ft(and)g Fs(command)g
+Ft(builtins)330 4225 y(\(see)f(Section)h(4.2)f([Bash)g(Builtins],)g
+(page)g(41\).)225 4367 y Fp(\017)60 b Ft(The)35 b Fs(command)e
+Ft(builtin)i(allo)m(ws)i(selectiv)m(e)h(disabling)e(of)f(functions)g
+(when)g(command)g(lo)s(okup)g(is)330 4476 y(p)s(erformed)29
+b(\(see)i(Section)g(4.2)h([Bash)f(Builtins],)g(page)g(41\).)225
+4618 y Fp(\017)60 b Ft(Individual)23 b(builtins)g(ma)m(y)i(b)s(e)e
+(enabled)h(or)g(disabled)g(using)f(the)h Fs(enable)f
+Ft(builtin)g(\(see)i(Section)g(4.2)330 4728 y([Bash)31
+b(Builtins],)g(page)g(41\).)225 4869 y Fp(\017)60 b Ft(The)26
+b(Bash)h Fs(exec)e Ft(builtin)h(tak)m(es)i(additional)f(options)g(that)
+g(allo)m(w)h(users)d(to)j(con)m(trol)g(the)e(con)m(ten)m(ts)330
+4979 y(of)35 b(the)f(en)m(vironmen)m(t)h(passed)f(to)h(the)g(executed)g
+(command,)h(and)d(what)i(the)f(zeroth)h(argumen)m(t)330
+5089 y(to)c(the)g(command)f(is)g(to)h(b)s(e)f(\(see)h(Section)h(4.1)f
+([Bourne)f(Shell)h(Builtins],)g(page)g(35\).)225 5230
+y Fp(\017)60 b Ft(Shell)29 b(functions)g(ma)m(y)h(b)s(e)f(exp)s(orted)g
+(to)h(c)m(hildren)f(via)h(the)g(en)m(vironmen)m(t)g(using)f
+Fs(export)f(-f)h Ft(\(see)330 5340 y(Section)i(3.3)h([Shell)e(F)-8
+b(unctions],)32 b(page)f(14\).)p eop end
+%%Page: 140 146
+TeXDict begin 140 145 bop 150 -116 a Ft(140)2527 b(Bash)31
+b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(The)37
+b(Bash)g Fs(export)p Ft(,)h Fs(readonly)p Ft(,)f(and)f
+Fs(declare)g Ft(builtins)h(can)g(tak)m(e)i(a)f(`)p Fs(-f)p
+Ft(')f(option)h(to)g(act)g(on)330 408 y(shell)26 b(functions,)g(a)h(`)p
+Fs(-p)p Ft(')e(option)h(to)h(displa)m(y)f(v)-5 b(ariables)26
+b(with)g(v)-5 b(arious)25 b(attributes)i(set)f(in)f(a)i(format)330
+518 y(that)g(can)f(b)s(e)f(used)h(as)g(shell)g(input,)h(a)f(`)p
+Fs(-n)p Ft(')g(option)g(to)h(remo)m(v)m(e)h(v)-5 b(arious)26
+b(v)-5 b(ariable)27 b(attributes,)h(and)330 628 y(`)p
+Fs(name=value)p Ft(')g(argumen)m(ts)j(to)g(set)g(v)-5
+b(ariable)31 b(attributes)g(and)f(v)-5 b(alues)30 b(sim)m(ultaneously)
+-8 b(.)225 765 y Fp(\017)60 b Ft(The)42 b(Bash)h Fs(hash)f
+Ft(builtin)g(allo)m(ws)j(a)e(name)g(to)g(b)s(e)f(asso)s(ciated)j(with)d
+(an)h(arbitrary)f(\014lename,)330 874 y(ev)m(en)30 b(when)e(that)h
+(\014lename)g(cannot)h(b)s(e)e(found)g(b)m(y)h(searc)m(hing)g(the)g
+Fs($PATH)p Ft(,)g(using)f(`)p Fs(hash)h(-p)p Ft(')g(\(see)330
+984 y(Section)i(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(35\).)225
+1121 y Fp(\017)60 b Ft(Bash)27 b(includes)f(a)i Fs(help)d
+Ft(builtin)i(for)f(quic)m(k)h(reference)h(to)f(shell)g(facilities)i
+(\(see)f(Section)g(4.2)g([Bash)330 1230 y(Builtins],)j(page)g(41\).)225
+1367 y Fp(\017)60 b Ft(The)42 b Fs(printf)g Ft(builtin)g(is)h(a)m(v)-5
+b(ailable)45 b(to)f(displa)m(y)f(formatted)g(output)g(\(see)h(Section)g
+(4.2)g([Bash)330 1477 y(Builtins],)31 b(page)g(41\).)225
+1614 y Fp(\017)60 b Ft(The)26 b(Bash)h Fs(read)f Ft(builtin)g(\(see)i
+(Section)g(4.2)g([Bash)f(Builtins],)h(page)g(41\))g(will)f(read)g(a)g
+(line)g(ending)330 1724 y(in)f(`)p Fs(\\)p Ft(')h(with)f(the)g(`)p
+Fs(-r)p Ft(')h(option,)h(and)d(will)i(use)f(the)h Fs(REPLY)e
+Ft(v)-5 b(ariable)27 b(as)g(a)f(default)h(if)f(no)h(non-option)330
+1833 y(argumen)m(ts)k(are)h(supplied.)42 b(The)30 b(Bash)i
+Fs(read)e Ft(builtin)g(also)j(accepts)f(a)g(prompt)e(string)h(with)g
+(the)330 1943 y(`)p Fs(-p)p Ft(')k(option)g(and)f(will)h(use)g
+(Readline)g(to)h(obtain)f(the)g(line)g(when)f(giv)m(en)i(the)f(`)p
+Fs(-e)p Ft(')g(option.)54 b(The)330 2052 y Fs(read)31
+b Ft(builtin)h(also)i(has)e(additional)h(options)g(to)g(con)m(trol)h
+(input:)44 b(the)32 b(`)p Fs(-s)p Ft(')h(option)f(will)h(turn)f(o\013)
+330 2162 y(ec)m(hoing)38 b(of)e(input)f(c)m(haracters)j(as)e(they)h
+(are)f(read,)i(the)e(`)p Fs(-t)p Ft(')g(option)h(will)g(allo)m(w)g
+Fs(read)e Ft(to)i(time)330 2271 y(out)c(if)g(input)f(do)s(es)g(not)h
+(arriv)m(e)g(within)g(a)g(sp)s(eci\014ed)f(n)m(um)m(b)s(er)f(of)i
+(seconds,)h(the)f(`)p Fs(-n)p Ft(')f(option)i(will)330
+2381 y(allo)m(w)29 b(reading)e(only)h(a)g(sp)s(eci\014ed)e(n)m(um)m(b)s
+(er)g(of)i(c)m(haracters)h(rather)e(than)g(a)h(full)f(line,)i(and)d
+(the)i(`)p Fs(-d)p Ft(')330 2491 y(option)j(will)g(read)f(un)m(til)g(a)
+h(particular)g(c)m(haracter)h(rather)e(than)g(newline.)225
+2628 y Fp(\017)60 b Ft(The)33 b Fs(return)e Ft(builtin)i(ma)m(y)g(b)s
+(e)g(used)f(to)i(ab)s(ort)f(execution)h(of)f(scripts)g(executed)h(with)
+f(the)g Fs(.)g Ft(or)330 2737 y Fs(source)c Ft(builtins)g(\(see)j
+(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g(35\).)225
+2874 y Fp(\017)60 b Ft(Bash)43 b(includes)g(the)g Fs(shopt)f
+Ft(builtin,)k(for)d(\014ner)f(con)m(trol)j(of)e(shell)h(optional)g
+(capabilities)h(\(see)330 2984 y(Section)c(4.3.2)g([The)f(Shopt)f
+(Builtin],)k(page)d(54\),)k(and)39 b(allo)m(ws)i(these)f(options)h(to)f
+(b)s(e)f(set)i(and)330 3093 y(unset)30 b(at)h(shell)g(in)m(v)m(o)s
+(cation)h(\(see)f(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)g(page)h
+(71\).)225 3230 y Fp(\017)60 b Ft(Bash)45 b(has)f(m)m(uc)m(h)g(more)h
+(optional)h(b)s(eha)m(vior)e(con)m(trollable)j(with)e(the)f
+Fs(set)g Ft(builtin)g(\(see)h(Sec-)330 3340 y(tion)31
+b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(51\).)225 3477
+y Fp(\017)60 b Ft(The)31 b(`)p Fs(-x)p Ft(')g(\()p Fs(xtrace)p
+Ft(\))g(option)h(displa)m(ys)f(commands)h(other)f(than)h(simple)f
+(commands)g(when)g(p)s(er-)330 3587 y(forming)f(an)g(execution)i(trace)
+f(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(51\).)225
+3724 y Fp(\017)60 b Ft(The)28 b Fs(test)g Ft(builtin)h(\(see)h(Section)
+f(4.1)h([Bourne)f(Shell)g(Builtins],)h(page)g(35\))g(is)f(sligh)m(tly)h
+(di\013eren)m(t,)330 3833 y(as)23 b(it)g(implemen)m(ts)f(the)h
+Fl(posix)f Ft(algorithm,)j(whic)m(h)d(sp)s(eci\014es)g(the)h(b)s(eha)m
+(vior)f(based)g(on)h(the)f(n)m(um)m(b)s(er)330 3943 y(of)31
+b(argumen)m(ts.)225 4080 y Fp(\017)60 b Ft(Bash)31 b(includes)g(the)h
+Fs(caller)d Ft(builtin,)j(whic)m(h)f(displa)m(ys)g(the)g(con)m(text)i
+(of)f(an)m(y)g(activ)m(e)h(subroutine)330 4189 y(call)28
+b(\(a)f(shell)f(function)h(or)f(a)h(script)f(executed)h(with)f(the)h
+Fs(.)f Ft(or)g Fs(source)f Ft(builtins\).)39 b(This)26
+b(supp)s(orts)330 4299 y(the)31 b(bash)e(debugger.)225
+4436 y Fp(\017)60 b Ft(The)42 b Fs(trap)f Ft(builtin)h(\(see)i(Section)
+f(4.1)h([Bourne)e(Shell)g(Builtins],)47 b(page)c(35\))h(allo)m(ws)g(a)e
+Fs(DEBUG)330 4545 y Ft(pseudo-signal)c(sp)s(eci\014cation,)i(similar)e
+(to)g Fs(EXIT)p Ft(.)62 b(Commands)36 b(sp)s(eci\014ed)h(with)g(a)h
+Fs(DEBUG)e Ft(trap)330 4655 y(are)k(executed)g(b)s(efore)f(ev)m(ery)h
+(simple)f(command,)j Fs(for)c Ft(command,)k Fs(case)c
+Ft(command,)k Fs(select)330 4765 y Ft(command,)35 b(ev)m(ery)g
+(arithmetic)g Fs(for)e Ft(command,)i(and)f(b)s(efore)g(the)g(\014rst)f
+(command)h(executes)h(in)330 4874 y(a)29 b(shell)g(function.)40
+b(The)28 b Fs(DEBUG)g Ft(trap)g(is)h(not)g(inherited)f(b)m(y)h(shell)g
+(functions)f(unless)g(the)h(function)330 4984 y(has)35
+b(b)s(een)g(giv)m(en)i(the)f Fs(trace)e Ft(attribute)i(or)g(the)g
+Fs(functrace)d Ft(option)j(has)f(b)s(een)g(enabled)g(using)330
+5093 y(the)28 b Fs(shopt)e Ft(builtin.)39 b(The)27 b
+Fs(extdebug)f Ft(shell)i(option)g(has)f(additional)h(e\013ects)h(on)f
+(the)g Fs(DEBUG)e Ft(trap.)330 5230 y(The)21 b Fs(trap)e
+Ft(builtin)i(\(see)h(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)j
+(page)e(35\))g(allo)m(ws)g(an)f Fs(ERR)f Ft(pseudo-)330
+5340 y(signal)30 b(sp)s(eci\014cation,)h(similar)f(to)g
+Fs(EXIT)f Ft(and)g Fs(DEBUG)p Ft(.)39 b(Commands)28 b(sp)s(eci\014ed)h
+(with)g(an)g Fs(ERR)g Ft(trap)p eop end
+%%Page: 141 147
+TeXDict begin 141 146 bop 150 -116 a Ft(App)s(endix)29
+b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
+b(The)f(Bourne)g(Shell)1258 b(141)330 299 y(are)40 b(executed)g(after)g
+(a)f(simple)h(command)f(fails,)j(with)d(a)h(few)f(exceptions.)68
+b(The)39 b Fs(ERR)g Ft(trap)g(is)330 408 y(not)g(inherited)f(b)m(y)h
+(shell)g(functions)f(unless)g(the)h Fs(-o)29 b(errtrace)37
+b Ft(option)i(to)g(the)g Fs(set)f Ft(builtin)g(is)330
+518 y(enabled.)330 645 y(The)g Fs(trap)g Ft(builtin)h(\(see)g(Section)h
+(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(35\))g(allo)m(ws)g(a)g
+Fs(RETURN)330 755 y Ft(pseudo-signal)35 b(sp)s(eci\014cation,)j
+(similar)d(to)h Fs(EXIT)e Ft(and)g Fs(DEBUG)p Ft(.)54
+b(Commands)34 b(sp)s(eci\014ed)g(with)h(an)330 864 y
+Fs(RETURN)k Ft(trap)i(are)g(executed)h(b)s(efore)e(execution)i(resumes)
+e(after)h(a)g(shell)g(function)g(or)g(a)g(shell)330 974
+y(script)36 b(executed)g(with)g Fs(.)f Ft(or)h Fs(source)e
+Ft(returns.)56 b(The)35 b Fs(RETURN)f Ft(trap)i(is)g(not)g(inherited)f
+(b)m(y)h(shell)330 1083 y(functions)k(unless)h(the)g(function)f(has)h
+(b)s(een)f(giv)m(en)i(the)f Fs(trace)e Ft(attribute)j(or)e(the)h
+Fs(functrace)330 1193 y Ft(option)31 b(has)f(b)s(een)g(enabled)g(using)
+g(the)g Fs(shopt)f Ft(builtin.)225 1320 y Fp(\017)60
+b Ft(The)30 b(Bash)g Fs(type)f Ft(builtin)h(is)g(more)g(extensiv)m(e)i
+(and)d(giv)m(es)j(more)e(information)h(ab)s(out)f(the)g(names)330
+1430 y(it)h(\014nds)e(\(see)i(Section)g(4.2)h([Bash)e(Builtins],)i
+(page)f(41\).)225 1557 y Fp(\017)60 b Ft(The)34 b(Bash)h
+Fs(umask)e Ft(builtin)h(p)s(ermits)g(a)g(`)p Fs(-p)p
+Ft(')h(option)g(to)g(cause)g(the)g(output)f(to)h(b)s(e)f(displa)m(y)m
+(ed)h(in)330 1666 y(the)g(form)g(of)g(a)h Fs(umask)e
+Ft(command)h(that)g(ma)m(y)h(b)s(e)f(reused)f(as)h(input)g(\(see)h
+(Section)g(4.1)g([Bourne)330 1776 y(Shell)30 b(Builtins],)h(page)h
+(35\).)225 1903 y Fp(\017)60 b Ft(Bash)34 b(implemen)m(ts)h(a)g
+Fs(csh)p Ft(-lik)m(e)g(directory)f(stac)m(k,)j(and)d(pro)m(vides)g(the)
+g Fs(pushd)p Ft(,)g Fs(popd)p Ft(,)g(and)g Fs(dirs)330
+2012 y Ft(builtins)g(to)i(manipulate)f(it)h(\(see)f(Section)h(6.8)g
+([The)f(Directory)h(Stac)m(k],)i(page)d(81\).)56 b(Bash)35
+b(also)330 2122 y(mak)m(es)c(the)g(directory)g(stac)m(k)g(visible)g(as)
+g(the)f(v)-5 b(alue)31 b(of)g(the)f Fs(DIRSTACK)f Ft(shell)h(v)-5
+b(ariable.)225 2249 y Fp(\017)60 b Ft(Bash)28 b(in)m(terprets)h(sp)s
+(ecial)g(bac)m(kslash-escap)s(ed)g(c)m(haracters)g(in)f(the)h(prompt)e
+(strings)h(when)f(in)m(ter-)330 2358 y(activ)m(e)33 b(\(see)e(Section)g
+(6.9)h([Prin)m(ting)e(a)h(Prompt],)g(page)g(83\).)225
+2485 y Fp(\017)60 b Ft(The)46 b(Bash)h(restricted)g(mo)s(de)f(is)h
+(more)f(useful)g(\(see)h(Section)h(6.10)g([The)e(Restricted)i(Shell],)
+330 2595 y(page)31 b(84\);)h(the)f(SVR4.2)g(shell)f(restricted)h(mo)s
+(de)f(is)h(to)s(o)g(limited.)225 2722 y Fp(\017)60 b
+Ft(The)30 b Fs(disown)f Ft(builtin)h(can)h(remo)m(v)m(e)h(a)f(job)f
+(from)g(the)h(in)m(ternal)g(shell)g(job)f(table)i(\(see)f(Section)h
+(7.2)330 2832 y([Job)h(Con)m(trol)h(Builtins],)g(page)g(90\))h(or)e
+(suppress)e(the)i(sending)g(of)g Fs(SIGHUP)e Ft(to)j(a)g(job)f(when)f
+(the)330 2941 y(shell)f(exits)g(as)f(the)h(result)f(of)h(a)f
+Fs(SIGHUP)p Ft(.)225 3068 y Fp(\017)60 b Ft(Bash)31 b(includes)f(a)g(n)
+m(um)m(b)s(er)f(of)i(features)g(to)g(supp)s(ort)d(a)j(separate)g
+(debugger)f(for)h(shell)f(scripts.)225 3195 y Fp(\017)60
+b Ft(The)28 b(SVR4.2)h(shell)f(has)g(t)m(w)m(o)i(privilege-related)g
+(builtins)e(\()p Fs(mldmode)e Ft(and)i Fs(priv)p Ft(\))f(not)i(presen)m
+(t)f(in)330 3305 y(Bash.)225 3432 y Fp(\017)60 b Ft(Bash)31
+b(do)s(es)f(not)g(ha)m(v)m(e)i(the)e Fs(stop)g Ft(or)g
+Fs(newgrp)f Ft(builtins.)225 3559 y Fp(\017)60 b Ft(Bash)31
+b(do)s(es)f(not)g(use)g(the)h Fs(SHACCT)d Ft(v)-5 b(ariable)32
+b(or)e(p)s(erform)f(shell)i(accoun)m(ting.)225 3686 y
+Fp(\017)60 b Ft(The)30 b(SVR4.2)h Fs(sh)f Ft(uses)g(a)g
+Fs(TIMEOUT)f Ft(v)-5 b(ariable)31 b(lik)m(e)h(Bash)e(uses)g
+Fs(TMOUT)p Ft(.)150 3830 y(More)h(features)g(unique)e(to)i(Bash)g(ma)m
+(y)g(b)s(e)f(found)f(in)h(Chapter)f(6)i([Bash)g(F)-8
+b(eatures],)32 b(page)f(71.)150 4065 y Fr(B.1)67 b(Implemen)l(tation)48
+b(Di\013erences)e(F)-11 b(rom)44 b(The)h(SVR4.2)g(Shell)275
+4301 y Ft(Since)39 b(Bash)h(is)f(a)h(completely)i(new)d(implemen)m
+(tation,)k(it)d(do)s(es)g(not)f(su\013er)g(from)g(man)m(y)h(of)g(the)
+150 4411 y(limitations)32 b(of)f(the)f(SVR4.2)h(shell.)41
+b(F)-8 b(or)31 b(instance:)225 4538 y Fp(\017)60 b Ft(Bash)32
+b(do)s(es)f(not)h(fork)f(a)h(subshell)e(when)h(redirecting)h(in)m(to)h
+(or)e(out)h(of)g(a)g(shell)f(con)m(trol)i(structure)330
+4648 y(suc)m(h)d(as)h(an)f Fs(if)g Ft(or)g Fs(while)f
+Ft(statemen)m(t.)225 4775 y Fp(\017)60 b Ft(Bash)29 b(do)s(es)f(not)h
+(allo)m(w)h(un)m(balanced)f(quotes.)41 b(The)28 b(SVR4.2)h(shell)g
+(will)g(silen)m(tly)i(insert)d(a)h(needed)330 4884 y(closing)g(quote)g
+(at)f Fs(EOF)f Ft(under)g(certain)h(circumstances.)41
+b(This)27 b(can)h(b)s(e)g(the)g(cause)g(of)g(some)h(hard-)330
+4994 y(to-\014nd)h(errors.)225 5121 y Fp(\017)60 b Ft(The)45
+b(SVR4.2)h(shell)f(uses)g(a)g(baro)s(que)g(memory)g(managemen)m(t)i(sc)
+m(heme)e(based)g(on)g(trapping)330 5230 y Fs(SIGSEGV)p
+Ft(.)57 b(If)35 b(the)i(shell)f(is)h(started)g(from)e(a)i(pro)s(cess)f
+(with)g Fs(SIGSEGV)e Ft(blo)s(c)m(k)m(ed)k(\(e.g.,)h(b)m(y)d(using)330
+5340 y(the)31 b Fs(system\(\))d Ft(C)i(library)g(function)g(call\),)i
+(it)f(misb)s(eha)m(v)m(es)g(badly)-8 b(.)p eop end
+%%Page: 142 148
+TeXDict begin 142 147 bop 150 -116 a Ft(142)2527 b(Bash)31
+b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(In)26
+b(a)i(questionable)g(attempt)h(at)f(securit)m(y)-8 b(,)29
+b(the)e(SVR4.2)h(shell,)g(when)f(in)m(v)m(ok)m(ed)h(without)g(the)f(`)p
+Fs(-p)p Ft(')330 408 y(option,)39 b(will)d(alter)i(its)e(real)h(and)f
+(e\013ectiv)m(e)j Fl(uid)d Ft(and)g Fl(gid)h Ft(if)f(they)h(are)f(less)
+h(than)f(some)h(magic)330 518 y(threshold)30 b(v)-5 b(alue,)31
+b(commonly)g(100.)42 b(This)29 b(can)i(lead)g(to)g(unexp)s(ected)f
+(results.)225 653 y Fp(\017)60 b Ft(The)30 b(SVR4.2)h(shell)g(do)s(es)f
+(not)g(allo)m(w)i(users)e(to)h(trap)f Fs(SIGSEGV)p Ft(,)f
+Fs(SIGALRM)p Ft(,)f(or)j Fs(SIGCHLD)p Ft(.)225 787 y
+Fp(\017)60 b Ft(The)34 b(SVR4.2)h(shell)g(do)s(es)g(not)f(allo)m(w)j
+(the)d Fs(IFS)p Ft(,)h Fs(MAILCHECK)p Ft(,)f Fs(PATH)p
+Ft(,)h Fs(PS1)p Ft(,)g(or)f Fs(PS2)g Ft(v)-5 b(ariables)35
+b(to)330 897 y(b)s(e)30 b(unset.)225 1031 y Fp(\017)60
+b Ft(The)30 b(SVR4.2)h(shell)g(treats)g(`)p Fs(^)p Ft(')f(as)h(the)g
+(undo)s(cumen)m(ted)e(equiv)-5 b(alen)m(t)31 b(of)g(`)p
+Fs(|)p Ft('.)225 1166 y Fp(\017)60 b Ft(Bash)37 b(allo)m(ws)h(m)m
+(ultiple)f(option)g(argumen)m(ts)g(when)e(it)i(is)g(in)m(v)m(ok)m(ed)h
+(\()p Fs(-x)30 b(-v)p Ft(\);)40 b(the)c(SVR4.2)i(shell)330
+1275 y(allo)m(ws)c(only)f(one)g(option)g(argumen)m(t)g(\()p
+Fs(-xv)p Ft(\).)47 b(In)32 b(fact,)i(some)f(v)m(ersions)g(of)g(the)g
+(shell)f(dump)f(core)330 1385 y(if)f(the)h(second)f(argumen)m(t)h(b)s
+(egins)f(with)g(a)h(`)p Fs(-)p Ft('.)225 1519 y Fp(\017)60
+b Ft(The)26 b(SVR4.2)i(shell)f(exits)g(a)g(script)g(if)g(an)m(y)g
+(builtin)f(fails;)j(Bash)e(exits)g(a)g(script)g(only)g(if)g(one)g(of)g
+(the)330 1629 y Fl(posix)34 b Ft(sp)s(ecial)h(builtins)f(fails,)i(and)e
+(only)h(for)f(certain)h(failures,)h(as)f(en)m(umerated)g(in)f(the)h
+Fl(posix)330 1738 y Ft(standard.)225 1873 y Fp(\017)60
+b Ft(The)30 b(SVR4.2)h(shell)g(b)s(eha)m(v)m(es)f(di\013eren)m(tly)h
+(when)f(in)m(v)m(ok)m(ed)i(as)e Fs(jsh)g Ft(\(it)h(turns)e(on)h(job)g
+(con)m(trol\).)p eop end
+%%Page: 143 149
+TeXDict begin 143 148 bop 150 -116 a Ft(App)s(endix)29
+b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
+b(143)150 299 y Fo(App)t(endix)52 b(C)126 b(GNU)53 b(F)-13
+b(ree)53 b(Do)t(cumen)l(tation)f(License)1396 502 y Ft(V)-8
+b(ersion)31 b(1.2,)h(No)m(v)m(em)m(b)s(er)g(2002)390
+635 y(Cop)m(yrigh)m(t)842 632 y(c)817 635 y Fp(\015)e
+Ft(2000,2001,2002)36 b(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
+b(oundation,)32 b(Inc.)390 745 y(51)f(F)-8 b(ranklin)31
+b(St,)f(Fifth)h(Flo)s(or,)g(Boston,)h(MA)61 b(02110-1301,)35
+b(USA)390 964 y(Ev)m(ery)m(one)c(is)g(p)s(ermitted)f(to)h(cop)m(y)g
+(and)f(distribute)g(v)m(erbatim)h(copies)390 1074 y(of)g(this)f
+(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f(is)f(not)h(allo)m
+(w)m(ed.)199 1207 y(0.)61 b(PREAMBLE)330 1340 y(The)37
+b(purp)s(ose)e(of)i(this)g(License)h(is)f(to)h(mak)m(e)g(a)g(man)m
+(ual,)h(textb)s(o)s(ok,)h(or)d(other)g(functional)h(and)330
+1450 y(useful)29 b(do)s(cumen)m(t)h Fq(free)36 b Ft(in)29
+b(the)i(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j
+(the)e(e\013ectiv)m(e)j(freedom)330 1559 y(to)f(cop)m(y)g(and)f
+(redistribute)g(it,)h(with)g(or)f(without)g(mo)s(difying)g(it,)i
+(either)f(commercially)h(or)e(non-)330 1669 y(commercially)-8
+b(.)56 b(Secondarily)-8 b(,)36 b(this)f(License)g(preserv)m(es)g(for)f
+(the)h(author)f(and)g(publisher)f(a)i(w)m(a)m(y)330 1778
+y(to)i(get)g(credit)g(for)f(their)g(w)m(ork,)i(while)e(not)g(b)s(eing)g
+(considered)g(resp)s(onsible)f(for)h(mo)s(di\014cations)330
+1888 y(made)30 b(b)m(y)h(others.)330 2021 y(This)22 b(License)i(is)f(a)
+h(kind)e(of)i(\\cop)m(yleft",)j(whic)m(h)c(means)g(that)h(deriv)-5
+b(ativ)m(e)24 b(w)m(orks)f(of)h(the)f(do)s(cumen)m(t)330
+2131 y(m)m(ust)34 b(themselv)m(es)h(b)s(e)e(free)h(in)g(the)g(same)g
+(sense.)51 b(It)34 b(complemen)m(ts)h(the)f(GNU)g(General)h(Public)330
+2240 y(License,)c(whic)m(h)f(is)h(a)f(cop)m(yleft)i(license)g(designed)
+e(for)g(free)h(soft)m(w)m(are.)330 2373 y(W)-8 b(e)31
+b(ha)m(v)m(e)f(designed)g(this)f(License)h(in)f(order)g(to)i(use)e(it)h
+(for)f(man)m(uals)h(for)f(free)h(soft)m(w)m(are,)h(b)s(ecause)330
+2483 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:)
+65 b(a)42 b(free)h(program)f(should)f(come)i(with)f(man)m(uals)330
+2592 y(pro)m(viding)29 b(the)g(same)g(freedoms)f(that)i(the)f(soft)m(w)
+m(are)h(do)s(es.)40 b(But)29 b(this)f(License)i(is)f(not)g(limited)g
+(to)330 2702 y(soft)m(w)m(are)j(man)m(uals;)f(it)g(can)g(b)s(e)f(used)g
+(for)g(an)m(y)h(textual)h(w)m(ork,)f(regardless)g(of)g(sub)5
+b(ject)30 b(matter)i(or)330 2812 y(whether)f(it)h(is)f(published)f(as)i
+(a)f(prin)m(ted)g(b)s(o)s(ok.)44 b(W)-8 b(e)32 b(recommend)f(this)h
+(License)g(principally)f(for)330 2921 y(w)m(orks)f(whose)h(purp)s(ose)d
+(is)j(instruction)f(or)g(reference.)199 3054 y(1.)61
+b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3187 y(This)39
+b(License)i(applies)f(to)g(an)m(y)h(man)m(ual)f(or)g(other)g(w)m(ork,)i
+(in)e(an)m(y)g(medium,)i(that)e(con)m(tains)i(a)330 3297
+y(notice)h(placed)f(b)m(y)f(the)h(cop)m(yrigh)m(t)h(holder)e(sa)m(ying)
+h(it)g(can)g(b)s(e)f(distributed)f(under)g(the)i(terms)330
+3407 y(of)c(this)f(License.)62 b(Suc)m(h)37 b(a)h(notice)h(gran)m(ts)f
+(a)g(w)m(orld-wide,)h(ro)m(y)m(alt)m(y-free)i(license,)f(unlimited)d
+(in)330 3516 y(duration,)49 b(to)d(use)f(that)g(w)m(ork)h(under)d(the)j
+(conditions)f(stated)h(herein.)85 b(The)45 b(\\Do)s(cumen)m(t",)330
+3626 y(b)s(elo)m(w,)29 b(refers)f(to)h(an)m(y)g(suc)m(h)f(man)m(ual)h
+(or)f(w)m(ork.)40 b(An)m(y)29 b(mem)m(b)s(er)e(of)i(the)f(public)g(is)g
+(a)h(licensee,)i(and)330 3735 y(is)25 b(addressed)f(as)h(\\y)m(ou".)40
+b(Y)-8 b(ou)26 b(accept)g(the)f(license)h(if)f(y)m(ou)h(cop)m(y)-8
+b(,)27 b(mo)s(dify)d(or)h(distribute)g(the)g(w)m(ork)330
+3845 y(in)30 b(a)h(w)m(a)m(y)g(requiring)f(p)s(ermission)f(under)g(cop)
+m(yrigh)m(t)j(la)m(w.)330 3978 y(A)i(\\Mo)s(di\014ed)f(V)-8
+b(ersion")35 b(of)f(the)g(Do)s(cumen)m(t)g(means)g(an)m(y)g(w)m(ork)f
+(con)m(taining)j(the)e(Do)s(cumen)m(t)g(or)330 4088 y(a)k(p)s(ortion)f
+(of)h(it,)i(either)e(copied)g(v)m(erbatim,)i(or)d(with)h(mo)s
+(di\014cations)f(and/or)h(translated)g(in)m(to)330 4197
+y(another)31 b(language.)330 4330 y(A)26 b(\\Secondary)g(Section")h(is)
+f(a)h(named)e(app)s(endix)f(or)i(a)h(fron)m(t-matter)g(section)g(of)f
+(the)g(Do)s(cumen)m(t)330 4440 y(that)c(deals)g(exclusiv)m(ely)h(with)e
+(the)g(relationship)h(of)f(the)h(publishers)d(or)i(authors)g(of)h(the)f
+(Do)s(cumen)m(t)330 4549 y(to)38 b(the)f(Do)s(cumen)m(t's)i(o)m(v)m
+(erall)g(sub)5 b(ject)37 b(\(or)h(to)g(related)g(matters\))g(and)f(con)
+m(tains)h(nothing)f(that)330 4659 y(could)j(fall)h(directly)g(within)f
+(that)h(o)m(v)m(erall)i(sub)5 b(ject.)70 b(\(Th)m(us,)42
+b(if)e(the)h(Do)s(cumen)m(t)g(is)f(in)g(part)h(a)330
+4769 y(textb)s(o)s(ok)24 b(of)g(mathematics,)j(a)d(Secondary)f(Section)
+h(ma)m(y)g(not)g(explain)g(an)m(y)g(mathematics.\))40
+b(The)330 4878 y(relationship)28 b(could)f(b)s(e)g(a)g(matter)i(of)e
+(historical)i(connection)f(with)f(the)h(sub)5 b(ject)27
+b(or)g(with)g(related)330 4988 y(matters,)38 b(or)d(of)h(legal,)i
+(commercial,)h(philosophical,)f(ethical)f(or)e(p)s(olitical)i(p)s
+(osition)f(regarding)330 5097 y(them.)330 5230 y(The)25
+b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g
+(Sections)g(whose)f(titles)i(are)f(designated,)i(as)330
+5340 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27
+b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s
+(cumen)m(t)g(is)g(released)p eop end
+%%Page: 144 150
+TeXDict begin 144 149 bop 150 -116 a Ft(144)2527 b(Bash)31
+b(Reference)g(Man)m(ual)330 299 y(under)26 b(this)i(License.)40
+b(If)27 b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h
+(de\014nition)e(of)h(Secondary)f(then)h(it)g(is)330 408
+y(not)k(allo)m(w)m(ed)i(to)e(b)s(e)g(designated)g(as)g(In)m(v)-5
+b(arian)m(t.)46 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)i(zero)
+e(In)m(v)-5 b(arian)m(t)330 518 y(Sections.)39 b(If)25
+b(the)f(Do)s(cumen)m(t)i(do)s(es)e(not)h(iden)m(tify)g(an)m(y)g(In)m(v)
+-5 b(arian)m(t)25 b(Sections)h(then)e(there)h(are)g(none.)330
+655 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)g(short)
+g(passages)g(of)g(text)g(that)h(are)f(listed,)i(as)d(F)-8
+b(ron)m(t-Co)m(v)m(er)330 765 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m(er)
+j(T)-8 b(exts,)27 b(in)d(the)h(notice)i(that)e(sa)m(ys)h(that)g(the)f
+(Do)s(cumen)m(t)h(is)f(released)g(under)330 874 y(this)h(License.)40
+b(A)25 b(F)-8 b(ron)m(t-Co)m(v)m(er)29 b(T)-8 b(ext)26
+b(ma)m(y)h(b)s(e)e(at)i(most)f(5)g(w)m(ords,)g(and)g(a)g(Bac)m(k-Co)m
+(v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 984 y(b)s(e)k(at)h(most)g(25)g(w)m
+(ords.)330 1121 y(A)36 b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g
+(the)f(Do)s(cumen)m(t)h(means)g(a)g(mac)m(hine-readable)h(cop)m(y)-8
+b(,)38 b(represen)m(ted)330 1230 y(in)d(a)h(format)g(whose)g(sp)s
+(eci\014cation)g(is)g(a)m(v)-5 b(ailable)38 b(to)f(the)f(general)g
+(public,)h(that)f(is)g(suitable)g(for)330 1340 y(revising)c(the)g(do)s
+(cumen)m(t)f(straigh)m(tforw)m(ardly)i(with)e(generic)i(text)g(editors)
+f(or)f(\(for)h(images)h(com-)330 1450 y(p)s(osed)23 b(of)h(pixels\))g
+(generic)h(pain)m(t)f(programs)g(or)f(\(for)h(dra)m(wings\))g(some)g
+(widely)g(a)m(v)-5 b(ailable)26 b(dra)m(wing)330 1559
+y(editor,)k(and)f(that)g(is)g(suitable)h(for)f(input)f(to)i(text)g
+(formatters)f(or)g(for)g(automatic)i(translation)f(to)330
+1669 y(a)d(v)-5 b(ariet)m(y)28 b(of)f(formats)g(suitable)h(for)e(input)
+g(to)i(text)g(formatters.)40 b(A)27 b(cop)m(y)g(made)g(in)g(an)g
+(otherwise)330 1778 y(T)-8 b(ransparen)m(t)37 b(\014le)h(format)g
+(whose)f(markup,)i(or)e(absence)h(of)g(markup,)g(has)g(b)s(een)f
+(arranged)g(to)330 1888 y(th)m(w)m(art)27 b(or)g(discourage)g
+(subsequen)m(t)f(mo)s(di\014cation)h(b)m(y)g(readers)f(is)g(not)h(T)-8
+b(ransparen)m(t.)39 b(An)27 b(image)330 1998 y(format)35
+b(is)f(not)h(T)-8 b(ransparen)m(t)34 b(if)g(used)g(for)g(an)m(y)g
+(substan)m(tial)h(amoun)m(t)g(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g
+(is)330 2107 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)f(called)i
+(\\Opaque".)330 2244 y(Examples)53 b(of)g(suitable)h(formats)f(for)g(T)
+-8 b(ransparen)m(t)53 b(copies)h(include)f(plain)g Fl(asci)r(i)g
+Ft(without)330 2354 y(markup,)41 b(T)-8 b(exinfo)40 b(input)f(format,)j
+(LaT)1775 2373 y(E)1826 2354 y(X)d(input)g(format,)k
+Fl(sgml)c Ft(or)g Fl(xml)g Ft(using)g(a)h(publicly)330
+2463 y(a)m(v)-5 b(ailable)34 b Fl(dtd)p Ft(,)d(and)g
+(standard-conforming)g(simple)h Fl(html)p Ft(,)f(P)m(ostScript)h(or)f
+Fl(pdf)g Ft(designed)g(for)330 2573 y(h)m(uman)37 b(mo)s(di\014cation.)
+65 b(Examples)38 b(of)g(transparen)m(t)g(image)i(formats)e(include)g
+Fl(png)p Ft(,)i Fl(x)n(cf)e Ft(and)330 2682 y Fl(jpg)p
+Ft(.)63 b(Opaque)38 b(formats)g(include)g(proprietary)g(formats)g(that)
+h(can)f(b)s(e)g(read)g(and)f(edited)i(only)330 2792 y(b)m(y)g
+(proprietary)g(w)m(ord)g(pro)s(cessors,)j Fl(sgml)c Ft(or)i
+Fl(xml)e Ft(for)i(whic)m(h)f(the)g Fl(dtd)g Ft(and/or)g(pro)s(cessing)
+330 2902 y(to)s(ols)32 b(are)f(not)g(generally)h(a)m(v)-5
+b(ailable,)34 b(and)c(the)h(mac)m(hine-generated)i Fl(html)p
+Ft(,)d(P)m(ostScript)i(or)f Fl(pdf)330 3011 y Ft(pro)s(duced)e(b)m(y)h
+(some)h(w)m(ord)f(pro)s(cessors)g(for)g(output)g(purp)s(oses)e(only)-8
+b(.)330 3148 y(The)34 b(\\Title)h(P)m(age")i(means,)e(for)f(a)h(prin)m
+(ted)f(b)s(o)s(ok,)h(the)f(title)i(page)f(itself,)h(plus)e(suc)m(h)f
+(follo)m(wing)330 3258 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)g
+(legibly)-8 b(,)30 b(the)e(material)h(this)e(License)i(requires)e(to)h
+(app)s(ear)f(in)h(the)330 3367 y(title)g(page.)40 b(F)-8
+b(or)28 b(w)m(orks)e(in)g(formats)h(whic)m(h)g(do)f(not)h(ha)m(v)m(e)h
+(an)m(y)e(title)j(page)e(as)g(suc)m(h,)g(\\Title)h(P)m(age")330
+3477 y(means)j(the)f(text)i(near)e(the)h(most)g(prominen)m(t)g(app)s
+(earance)f(of)h(the)g(w)m(ork's)g(title,)h(preceding)f(the)330
+3587 y(b)s(eginning)f(of)g(the)h(b)s(o)s(dy)e(of)h(the)h(text.)330
+3724 y(A)f(section)h(\\En)m(titled)g(XYZ")f(means)f(a)h(named)g
+(subunit)e(of)h(the)h(Do)s(cumen)m(t)h(whose)e(title)i(either)330
+3833 y(is)d(precisely)g(XYZ)g(or)f(con)m(tains)i(XYZ)f(in)f(paren)m
+(theses)i(follo)m(wing)g(text)g(that)f(translates)h(XYZ)e(in)330
+3943 y(another)e(language.)40 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g
+(sp)s(eci\014c)g(section)h(name)f(men)m(tioned)h(b)s(elo)m(w,)g(suc)m
+(h)330 4052 y(as)i(\\Ac)m(kno)m(wledgemen)m(ts",)33 b(\\Dedications",)e
+(\\Endorsemen)m(ts",)e(or)f(\\History".\))42 b(T)-8 b(o)29
+b(\\Preserv)m(e)330 4162 y(the)34 b(Title")h(of)e(suc)m(h)h(a)g
+(section)g(when)f(y)m(ou)h(mo)s(dify)e(the)i(Do)s(cumen)m(t)h(means)e
+(that)h(it)g(remains)g(a)330 4271 y(section)e(\\En)m(titled)f(XYZ")g
+(according)g(to)g(this)g(de\014nition.)330 4408 y(The)c(Do)s(cumen)m(t)
+i(ma)m(y)f(include)f(W)-8 b(arran)m(t)m(y)30 b(Disclaimers)f(next)f(to)
+g(the)g(notice)h(whic)m(h)e(states)i(that)330 4518 y(this)34
+b(License)g(applies)g(to)h(the)f(Do)s(cumen)m(t.)52 b(These)33
+b(W)-8 b(arran)m(t)m(y)36 b(Disclaimers)f(are)g(considered)e(to)330
+4628 y(b)s(e)k(included)g(b)m(y)g(reference)h(in)g(this)f(License,)j
+(but)d(only)h(as)g(regards)f(disclaiming)i(w)m(arran)m(ties:)330
+4737 y(an)m(y)e(other)g(implication)i(that)e(these)g(W)-8
+b(arran)m(t)m(y)39 b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g
+(and)f(has)h(no)330 4847 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h
+(this)f(License.)199 4984 y(2.)61 b(VERBA)-8 b(TIM)31
+b(COPYING)330 5121 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e
+(distribute)h(the)g(Do)s(cumen)m(t)h(in)f(an)m(y)g(medium,)h(either)g
+(commercially)h(or)330 5230 y(noncommercially)-8 b(,)48
+b(pro)m(vided)42 b(that)h(this)f(License,)47 b(the)42
+b(cop)m(yrigh)m(t)i(notices,)j(and)42 b(the)h(license)330
+5340 y(notice)37 b(sa)m(ying)g(this)e(License)i(applies)e(to)i(the)f
+(Do)s(cumen)m(t)g(are)g(repro)s(duced)e(in)i(all)g(copies,)j(and)p
+eop end
+%%Page: 145 151
+TeXDict begin 145 150 bop 150 -116 a Ft(App)s(endix)29
+b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
+b(145)330 299 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)h
+(whatso)s(ev)m(er)h(to)f(those)g(of)g(this)f(License.)40
+b(Y)-8 b(ou)27 b(ma)m(y)g(not)g(use)330 408 y(tec)m(hnical)35
+b(measures)d(to)i(obstruct)f(or)g(con)m(trol)h(the)f(reading)g(or)g
+(further)e(cop)m(ying)j(of)f(the)g(copies)330 518 y(y)m(ou)25
+b(mak)m(e)g(or)g(distribute.)38 b(Ho)m(w)m(ev)m(er,)28
+b(y)m(ou)d(ma)m(y)g(accept)h(comp)s(ensation)f(in)f(exc)m(hange)j(for)d
+(copies.)330 628 y(If)32 b(y)m(ou)g(distribute)g(a)h(large)g(enough)f
+(n)m(um)m(b)s(er)f(of)h(copies)h(y)m(ou)f(m)m(ust)h(also)g(follo)m(w)g
+(the)f(conditions)330 737 y(in)e(section)i(3.)330 883
+y(Y)-8 b(ou)21 b(ma)m(y)h(also)f(lend)g(copies,)i(under)d(the)h(same)g
+(conditions)g(stated)h(ab)s(o)m(v)m(e,)i(and)c(y)m(ou)h(ma)m(y)g
+(publicly)330 993 y(displa)m(y)31 b(copies.)199 1139
+y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1285 y(If)25
+b(y)m(ou)g(publish)f(prin)m(ted)g(copies)i(\(or)g(copies)g(in)f(media)g
+(that)h(commonly)g(ha)m(v)m(e)g(prin)m(ted)f(co)m(v)m(ers\))i(of)330
+1395 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)e(more)h(than)f
+(100,)j(and)d(the)h(Do)s(cumen)m(t's)h(license)f(notice)h(requires)330
+1504 y(Co)m(v)m(er)i(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)i
+(the)e(copies)h(in)f(co)m(v)m(ers)i(that)f(carry)-8 b(,)36
+b(clearly)f(and)f(legibly)-8 b(,)37 b(all)330 1614 y(these)j(Co)m(v)m
+(er)g(T)-8 b(exts:)59 b(F)-8 b(ron)m(t-Co)m(v)m(er)41
+b(T)-8 b(exts)40 b(on)f(the)g(fron)m(t)g(co)m(v)m(er,)44
+b(and)38 b(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts)40 b(on)330
+1724 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m)
+m(ust)e(also)h(clearly)g(and)f(legibly)h(iden)m(tify)f(y)m(ou)h(as)f
+(the)h(publisher)330 1833 y(of)k(these)h(copies.)53 b(The)34
+b(fron)m(t)h(co)m(v)m(er)h(m)m(ust)e(presen)m(t)g(the)h(full)f(title)i
+(with)d(all)j(w)m(ords)d(of)i(the)f(title)330 1943 y(equally)e
+(prominen)m(t)e(and)g(visible.)43 b(Y)-8 b(ou)31 b(ma)m(y)g(add)g
+(other)g(material)h(on)f(the)g(co)m(v)m(ers)h(in)e(addition.)330
+2052 y(Cop)m(ying)36 b(with)g(c)m(hanges)h(limited)g(to)g(the)g(co)m(v)
+m(ers,)i(as)d(long)h(as)g(they)f(preserv)m(e)g(the)h(title)g(of)g(the)
+330 2162 y(Do)s(cumen)m(t)h(and)e(satisfy)i(these)f(conditions,)j(can)d
+(b)s(e)g(treated)h(as)f(v)m(erbatim)h(cop)m(ying)g(in)f(other)330
+2271 y(resp)s(ects.)330 2418 y(If)32 b(the)h(required)f(texts)i(for)e
+(either)h(co)m(v)m(er)i(are)e(to)s(o)g(v)m(oluminous)g(to)g(\014t)g
+(legibly)-8 b(,)35 b(y)m(ou)e(should)f(put)330 2527 y(the)h(\014rst)f
+(ones)h(listed)g(\(as)h(man)m(y)f(as)g(\014t)g(reasonably\))g(on)g(the)
+g(actual)h(co)m(v)m(er,)h(and)e(con)m(tin)m(ue)h(the)330
+2637 y(rest)d(on)m(to)g(adjacen)m(t)h(pages.)330 2783
+y(If)27 b(y)m(ou)g(publish)e(or)i(distribute)g(Opaque)f(copies)i(of)f
+(the)h(Do)s(cumen)m(t)f(n)m(um)m(b)s(ering)f(more)i(than)e(100,)330
+2892 y(y)m(ou)i(m)m(ust)g(either)h(include)e(a)i(mac)m(hine-readable)g
+(T)-8 b(ransparen)m(t)28 b(cop)m(y)h(along)g(with)e(eac)m(h)i(Opaque)
+330 3002 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)f(or)g(with)g(eac)m(h)h
+(Opaque)e(cop)m(y)i(a)g(computer-net)m(w)m(ork)g(lo)s(cation)h(from)d
+(whic)m(h)330 3112 y(the)24 b(general)i(net)m(w)m(ork-using)f(public)e
+(has)h(access)i(to)f(do)m(wnload)f(using)g(public-standard)f(net)m(w)m
+(ork)330 3221 y(proto)s(cols)40 b(a)f(complete)h(T)-8
+b(ransparen)m(t)39 b(cop)m(y)g(of)g(the)h(Do)s(cumen)m(t,)i(free)d(of)g
+(added)f(material.)67 b(If)330 3331 y(y)m(ou)39 b(use)g(the)g(latter)h
+(option,)h(y)m(ou)f(m)m(ust)e(tak)m(e)j(reasonably)e(pruden)m(t)e
+(steps,)k(when)d(y)m(ou)h(b)s(egin)330 3440 y(distribution)f(of)g
+(Opaque)g(copies)h(in)e(quan)m(tit)m(y)-8 b(,)43 b(to)38
+b(ensure)g(that)h(this)f(T)-8 b(ransparen)m(t)38 b(cop)m(y)h(will)330
+3550 y(remain)30 b(th)m(us)g(accessible)i(at)f(the)f(stated)h(lo)s
+(cation)h(un)m(til)e(at)h(least)h(one)e(y)m(ear)h(after)g(the)f(last)h
+(time)330 3660 y(y)m(ou)37 b(distribute)f(an)h(Opaque)f(cop)m(y)i
+(\(directly)g(or)e(through)g(y)m(our)h(agen)m(ts)h(or)f(retailers\))h
+(of)f(that)330 3769 y(edition)31 b(to)g(the)g(public.)330
+3915 y(It)k(is)f(requested,)i(but)e(not)h(required,)g(that)g(y)m(ou)g
+(con)m(tact)h(the)f(authors)f(of)h(the)g(Do)s(cumen)m(t)g(w)m(ell)330
+4025 y(b)s(efore)28 b(redistributing)g(an)m(y)h(large)h(n)m(um)m(b)s
+(er)d(of)i(copies,)h(to)f(giv)m(e)h(them)f(a)g(c)m(hance)h(to)f(pro)m
+(vide)g(y)m(ou)330 4134 y(with)h(an)g(up)s(dated)f(v)m(ersion)i(of)g
+(the)f(Do)s(cumen)m(t.)199 4281 y(4.)61 b(MODIFICA)-8
+b(TIONS)330 4427 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)g(a)
+h(Mo)s(di\014ed)f(V)-8 b(ersion)26 b(of)g(the)g(Do)s(cumen)m(t)g(under)
+e(the)h(conditions)330 4536 y(of)c(sections)h(2)g(and)e(3)h(ab)s(o)m(v)
+m(e,)k(pro)m(vided)20 b(that)i(y)m(ou)f(release)i(the)e(Mo)s(di\014ed)f
+(V)-8 b(ersion)22 b(under)d(precisely)330 4646 y(this)29
+b(License,)h(with)f(the)g(Mo)s(di\014ed)f(V)-8 b(ersion)30
+b(\014lling)f(the)g(role)h(of)f(the)g(Do)s(cumen)m(t,)h(th)m(us)f
+(licensing)330 4755 y(distribution)k(and)h(mo)s(di\014cation)g(of)h
+(the)f(Mo)s(di\014ed)f(V)-8 b(ersion)35 b(to)g(who)s(ev)m(er)f(p)s
+(ossesses)f(a)i(cop)m(y)g(of)330 4865 y(it.)41 b(In)30
+b(addition,)h(y)m(ou)f(m)m(ust)h(do)f(these)h(things)f(in)g(the)h(Mo)s
+(di\014ed)e(V)-8 b(ersion:)357 5011 y(A.)60 b(Use)33
+b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m(ers,)i(if)e
+(an)m(y\))g(a)g(title)h(distinct)f(from)g(that)g(of)g(the)510
+5121 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m
+(ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8
+b(,)510 5230 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
+(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 b(ma)m(y)g(use)f(the)g(same)
+h(title)h(as)510 5340 y(a)e(previous)f(v)m(ersion)g(if)h(the)f
+(original)i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s
+(ermission.)p eop end
+%%Page: 146 152
+TeXDict begin 146 151 bop 150 -116 a Ft(146)2527 b(Bash)31
+b(Reference)g(Man)m(ual)360 299 y(B.)61 b(List)31 b(on)f(the)h(Title)g
+(P)m(age,)i(as)d(authors,)h(one)g(or)f(more)h(p)s(ersons)e(or)h(en)m
+(tities)j(resp)s(onsible)c(for)510 408 y(authorship)c(of)h(the)h(mo)s
+(di\014cations)f(in)g(the)g(Mo)s(di\014ed)f(V)-8 b(ersion,)28
+b(together)g(with)d(at)i(least)h(\014v)m(e)510 518 y(of)c(the)g
+(principal)g(authors)f(of)i(the)f(Do)s(cumen)m(t)g(\(all)h(of)g(its)f
+(principal)g(authors,)h(if)f(it)g(has)g(few)m(er)510
+628 y(than)30 b(\014v)m(e\),)h(unless)f(they)h(release)g(y)m(ou)g(from)
+f(this)g(requiremen)m(t.)359 766 y(C.)60 b(State)32 b(on)e(the)h(Title)
+h(page)f(the)g(name)g(of)g(the)g(publisher)e(of)i(the)g(Mo)s(di\014ed)f
+(V)-8 b(ersion,)32 b(as)f(the)510 876 y(publisher.)355
+1015 y(D.)61 b(Preserv)m(e)31 b(all)g(the)g(cop)m(yrigh)m(t)h(notices)f
+(of)g(the)f(Do)s(cumen)m(t.)363 1154 y(E.)60 b(Add)30
+b(an)i(appropriate)f(cop)m(yrigh)m(t)i(notice)f(for)g(y)m(our)f(mo)s
+(di\014cations)g(adjacen)m(t)i(to)f(the)g(other)510 1263
+y(cop)m(yrigh)m(t)g(notices.)365 1402 y(F.)61 b(Include,)28
+b(immediately)h(after)f(the)h(cop)m(yrigh)m(t)g(notices,)h(a)e(license)
+h(notice)g(giving)g(the)f(public)510 1512 y(p)s(ermission)23
+b(to)j(use)e(the)g(Mo)s(di\014ed)g(V)-8 b(ersion)25 b(under)e(the)i
+(terms)f(of)h(this)f(License,)j(in)d(the)g(form)510 1621
+y(sho)m(wn)30 b(in)g(the)g(Addendum)f(b)s(elo)m(w.)353
+1760 y(G.)61 b(Preserv)m(e)23 b(in)g(that)g(license)h(notice)g(the)f
+(full)g(lists)g(of)g(In)m(v)-5 b(arian)m(t)23 b(Sections)h(and)e
+(required)g(Co)m(v)m(er)510 1870 y(T)-8 b(exts)31 b(giv)m(en)g(in)f
+(the)h(Do)s(cumen)m(t's)g(license)h(notice.)357 2008
+y(H.)60 b(Include)30 b(an)g(unaltered)g(cop)m(y)h(of)g(this)f(License.)
+392 2147 y(I.)60 b(Preserv)m(e)33 b(the)f(section)h(En)m(titled)g
+(\\History",)h(Preserv)m(e)f(its)f(Title,)i(and)d(add)h(to)h(it)f(an)g
+(item)510 2257 y(stating)d(at)g(least)g(the)g(title,)h(y)m(ear,)g(new)d
+(authors,)i(and)e(publisher)f(of)j(the)f(Mo)s(di\014ed)f(V)-8
+b(ersion)510 2366 y(as)32 b(giv)m(en)g(on)f(the)h(Title)g(P)m(age.)45
+b(If)31 b(there)h(is)f(no)g(section)i(En)m(titled)f(\\History")h(in)e
+(the)g(Do)s(cu-)510 2476 y(men)m(t,)37 b(create)f(one)f(stating)h(the)f
+(title,)i(y)m(ear,)g(authors,)f(and)e(publisher)f(of)i(the)g(Do)s
+(cumen)m(t)510 2586 y(as)h(giv)m(en)h(on)f(its)h(Title)g(P)m(age,)i
+(then)d(add)g(an)g(item)g(describing)g(the)g(Mo)s(di\014ed)g(V)-8
+b(ersion)37 b(as)510 2695 y(stated)31 b(in)f(the)h(previous)f(sen)m
+(tence.)378 2834 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s
+(cation,)i(if)d(an)m(y)-8 b(,)34 b(giv)m(en)f(in)g(the)f(Do)s(cumen)m
+(t)h(for)g(public)e(access)j(to)510 2944 y(a)e(T)-8 b(ransparen)m(t)30
+b(cop)m(y)i(of)g(the)f(Do)s(cumen)m(t,)h(and)f(lik)m(ewise)h(the)g(net)
+m(w)m(ork)g(lo)s(cations)g(giv)m(en)g(in)510 3053 y(the)g(Do)s(cumen)m
+(t)g(for)g(previous)f(v)m(ersions)h(it)g(w)m(as)g(based)f(on.)45
+b(These)31 b(ma)m(y)h(b)s(e)f(placed)h(in)g(the)510 3163
+y(\\History")27 b(section.)40 b(Y)-8 b(ou)25 b(ma)m(y)h(omit)g(a)f(net)
+m(w)m(ork)h(lo)s(cation)g(for)f(a)h(w)m(ork)f(that)g(w)m(as)h
+(published)510 3272 y(at)36 b(least)h(four)e(y)m(ears)i(b)s(efore)e
+(the)h(Do)s(cumen)m(t)h(itself,)h(or)d(if)h(the)g(original)h(publisher)
+d(of)i(the)510 3382 y(v)m(ersion)31 b(it)g(refers)f(to)h(giv)m(es)h(p)s
+(ermission.)354 3521 y(K.)60 b(F)-8 b(or)24 b(an)m(y)h(section)f(En)m
+(titled)h(\\Ac)m(kno)m(wledgemen)m(ts")i(or)d(\\Dedications",)k
+(Preserv)m(e)c(the)g(Title)510 3630 y(of)j(the)f(section,)j(and)d
+(preserv)m(e)h(in)f(the)h(section)g(all)h(the)e(substance)h(and)f(tone)
+h(of)f(eac)m(h)i(of)f(the)510 3740 y(con)m(tributor)k(ac)m(kno)m
+(wledgemen)m(ts)i(and/or)d(dedications)h(giv)m(en)h(therein.)368
+3879 y(L.)60 b(Preserv)m(e)36 b(all)g(the)g(In)m(v)-5
+b(arian)m(t)36 b(Sections)g(of)f(the)h(Do)s(cumen)m(t,)h(unaltered)f
+(in)f(their)g(text)i(and)510 3988 y(in)f(their)g(titles.)58
+b(Section)37 b(n)m(um)m(b)s(ers)d(or)i(the)g(equiv)-5
+b(alen)m(t)38 b(are)e(not)g(considered)g(part)g(of)g(the)510
+4098 y(section)c(titles.)341 4237 y(M.)61 b(Delete)33
+b(an)m(y)e(section)h(En)m(titled)f(\\Endorsemen)m(ts".)42
+b(Suc)m(h)30 b(a)i(section)f(ma)m(y)h(not)f(b)s(e)f(included)510
+4346 y(in)g(the)h(Mo)s(di\014ed)e(V)-8 b(ersion.)357
+4485 y(N.)60 b(Do)29 b(not)g(retitle)h(an)m(y)e(existing)i(section)f
+(to)g(b)s(e)f(En)m(titled)h(\\Endorsemen)m(ts")g(or)f(to)h(con\015ict)g
+(in)510 4595 y(title)j(with)e(an)m(y)h(In)m(v)-5 b(arian)m(t)31
+b(Section.)354 4734 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8
+b(arran)m(t)m(y)32 b(Disclaimers.)330 4902 y(If)h(the)g(Mo)s(di\014ed)g
+(V)-8 b(ersion)34 b(includes)f(new)g(fron)m(t-matter)i(sections)f(or)f
+(app)s(endices)g(that)h(qualify)330 5011 y(as)28 b(Secondary)g
+(Sections)g(and)f(con)m(tain)j(no)d(material)j(copied)e(from)f(the)h
+(Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)330 5121 y(y)m(our)k(option)h
+(designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e(in)m(v)-5
+b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)330
+5230 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5 b(arian)m(t)36
+b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8 b(ersion's)36
+b(license)g(notice.)57 b(These)330 5340 y(titles)32 b(m)m(ust)e(b)s(e)g
+(distinct)h(from)e(an)m(y)i(other)g(section)g(titles.)p
+eop end
+%%Page: 147 153
+TeXDict begin 147 152 bop 150 -116 a Ft(App)s(endix)29
+b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
+b(147)330 299 y(Y)-8 b(ou)43 b(ma)m(y)g(add)f(a)g(section)i(En)m
+(titled)f(\\Endorsemen)m(ts",)j(pro)m(vided)c(it)h(con)m(tains)g
+(nothing)g(but)330 408 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s
+(di\014ed)g(V)-8 b(ersion)31 b(b)m(y)e(v)-5 b(arious)30
+b(parties|for)g(example,)g(statemen)m(ts)i(of)330 518
+y(p)s(eer)27 b(review)g(or)g(that)h(the)f(text)i(has)d(b)s(een)h(appro)
+m(v)m(ed)g(b)m(y)g(an)h(organization)h(as)e(the)h(authoritativ)m(e)330
+628 y(de\014nition)i(of)h(a)f(standard.)330 757 y(Y)-8
+b(ou)29 b(ma)m(y)g(add)e(a)i(passage)g(of)g(up)e(to)i(\014v)m(e)g(w)m
+(ords)e(as)i(a)g(F)-8 b(ron)m(t-Co)m(v)m(er)30 b(T)-8
+b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330 867 y(to)g(25)g(w)m(ords)e
+(as)i(a)f(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext,)29 b(to)f(the)f(end)f(of)i
+(the)f(list)h(of)f(Co)m(v)m(er)h(T)-8 b(exts)27 b(in)g(the)h(Mo)s
+(di\014ed)330 976 y(V)-8 b(ersion.)58 b(Only)35 b(one)h(passage)h(of)f
+(F)-8 b(ron)m(t-Co)m(v)m(er)38 b(T)-8 b(ext)36 b(and)g(one)g(of)g(Bac)m
+(k-Co)m(v)m(er)j(T)-8 b(ext)36 b(ma)m(y)h(b)s(e)330 1086
+y(added)27 b(b)m(y)g(\(or)h(through)f(arrangemen)m(ts)h(made)g(b)m(y\))
+g(an)m(y)g(one)f(en)m(tit)m(y)-8 b(.)42 b(If)27 b(the)h(Do)s(cumen)m(t)
+g(already)330 1196 y(includes)34 b(a)g(co)m(v)m(er)h(text)g(for)f(the)g
+(same)h(co)m(v)m(er,)h(previously)e(added)f(b)m(y)h(y)m(ou)g(or)g(b)m
+(y)g(arrangemen)m(t)330 1305 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m
+(y)i(y)m(ou)f(are)f(acting)i(on)e(b)s(ehalf)f(of,)j(y)m(ou)f(ma)m(y)g
+(not)f(add)g(another;)j(but)330 1415 y(y)m(ou)c(ma)m(y)h(replace)g(the)
+f(old)g(one,)i(on)e(explicit)h(p)s(ermission)e(from)g(the)i(previous)e
+(publisher)f(that)330 1524 y(added)e(the)g(old)h(one.)330
+1654 y(The)25 b(author\(s\))h(and)f(publisher\(s\))f(of)i(the)f(Do)s
+(cumen)m(t)h(do)g(not)f(b)m(y)h(this)f(License)h(giv)m(e)h(p)s
+(ermission)330 1763 y(to)k(use)f(their)g(names)h(for)f(publicit)m(y)g
+(for)h(or)f(to)h(assert)g(or)f(imply)g(endorsemen)m(t)g(of)h(an)m(y)g
+(Mo)s(di\014ed)330 1873 y(V)-8 b(ersion.)199 2002 y(5.)61
+b(COMBINING)31 b(DOCUMENTS)330 2132 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m
+(bine)h(the)f(Do)s(cumen)m(t)g(with)g(other)f(do)s(cumen)m(ts)h
+(released)g(under)f(this)g(License,)330 2242 y(under)f(the)h(terms)g
+(de\014ned)f(in)h(section)h(4)g(ab)s(o)m(v)m(e)g(for)f(mo)s(di\014ed)f
+(v)m(ersions,)k(pro)m(vided)d(that)h(y)m(ou)330 2351
+y(include)25 b(in)g(the)g(com)m(bination)i(all)f(of)g(the)f(In)m(v)-5
+b(arian)m(t)26 b(Sections)g(of)g(all)g(of)f(the)h(original)g(do)s
+(cumen)m(ts,)330 2461 y(unmo)s(di\014ed,)g(and)g(list)h(them)g(all)g
+(as)g(In)m(v)-5 b(arian)m(t)28 b(Sections)f(of)g(y)m(our)g(com)m(bined)
+g(w)m(ork)f(in)h(its)g(license)330 2570 y(notice,)32
+b(and)e(that)h(y)m(ou)f(preserv)m(e)h(all)g(their)g(W)-8
+b(arran)m(t)m(y)32 b(Disclaimers.)330 2700 y(The)e(com)m(bined)g(w)m
+(ork)h(need)e(only)i(con)m(tain)g(one)g(cop)m(y)g(of)f(this)g(License,)
+i(and)d(m)m(ultiple)i(iden)m(tical)330 2809 y(In)m(v)-5
+b(arian)m(t)33 b(Sections)g(ma)m(y)g(b)s(e)f(replaced)h(with)f(a)h
+(single)g(cop)m(y)-8 b(.)48 b(If)32 b(there)h(are)g(m)m(ultiple)g(In)m
+(v)-5 b(arian)m(t)330 2919 y(Sections)27 b(with)g(the)g(same)g(name)g
+(but)f(di\013eren)m(t)h(con)m(ten)m(ts,)i(mak)m(e)f(the)f(title)h(of)f
+(eac)m(h)h(suc)m(h)f(section)330 3029 y(unique)33 b(b)m(y)h(adding)f
+(at)i(the)f(end)g(of)g(it,)h(in)f(paren)m(theses,)i(the)e(name)g(of)g
+(the)g(original)h(author)f(or)330 3138 y(publisher)23
+b(of)i(that)h(section)g(if)f(kno)m(wn,)h(or)f(else)h(a)f(unique)f(n)m
+(um)m(b)s(er.)38 b(Mak)m(e)26 b(the)g(same)f(adjustmen)m(t)330
+3248 y(to)g(the)g(section)g(titles)h(in)e(the)h(list)g(of)f(In)m(v)-5
+b(arian)m(t)26 b(Sections)f(in)f(the)g(license)i(notice)g(of)e(the)h
+(com)m(bined)330 3357 y(w)m(ork.)330 3487 y(In)41 b(the)g(com)m
+(bination,)46 b(y)m(ou)41 b(m)m(ust)g(com)m(bine)h(an)m(y)g(sections)g
+(En)m(titled)g(\\History")h(in)e(the)g(v)-5 b(ari-)330
+3597 y(ous)32 b(original)h(do)s(cumen)m(ts,)g(forming)f(one)g(section)h
+(En)m(titled)g(\\History";)i(lik)m(ewise)f(com)m(bine)f(an)m(y)330
+3706 y(sections)g(En)m(titled)f(\\Ac)m(kno)m(wledgemen)m(ts",)k(and)31
+b(an)m(y)h(sections)h(En)m(titled)g(\\Dedications".)47
+b(Y)-8 b(ou)330 3816 y(m)m(ust)30 b(delete)i(all)f(sections)h(En)m
+(titled)f(\\Endorsemen)m(ts.")199 3945 y(6.)61 b(COLLECTIONS)28
+b(OF)i(DOCUMENTS)330 4075 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f
+(collection)i(consisting)f(of)f(the)g(Do)s(cumen)m(t)g(and)g(other)g
+(do)s(cumen)m(ts)f(released)330 4184 y(under)41 b(this)h(License,)k
+(and)c(replace)h(the)g(individual)f(copies)h(of)f(this)g(License)h(in)f
+(the)h(v)-5 b(arious)330 4294 y(do)s(cumen)m(ts)42 b(with)g(a)h(single)
+g(cop)m(y)h(that)f(is)f(included)g(in)g(the)h(collection,)48
+b(pro)m(vided)42 b(that)i(y)m(ou)330 4403 y(follo)m(w)38
+b(the)g(rules)e(of)h(this)g(License)h(for)f(v)m(erbatim)h(cop)m(ying)g
+(of)f(eac)m(h)h(of)f(the)h(do)s(cumen)m(ts)e(in)h(all)330
+4513 y(other)31 b(resp)s(ects.)330 4643 y(Y)-8 b(ou)32
+b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h
+(collection,)i(and)d(distribute)g(it)h(individu-)330
+4752 y(ally)k(under)d(this)i(License,)i(pro)m(vided)e(y)m(ou)g(insert)g
+(a)g(cop)m(y)h(of)f(this)g(License)g(in)m(to)h(the)g(extracted)330
+4862 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g
+(other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330
+4971 y(that)d(do)s(cumen)m(t.)199 5101 y(7.)61 b(A)m(GGREGA)-8
+b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)330 5230 y(A)d(compilation)i
+(of)e(the)g(Do)s(cumen)m(t)h(or)f(its)g(deriv)-5 b(ativ)m(es)30
+b(with)d(other)i(separate)g(and)e(indep)s(enden)m(t)330
+5340 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h(on)f(a)g(v)m
+(olume)h(of)g(a)f(storage)i(or)e(distribution)g(medium,)g(is)h(called)p
+eop end
+%%Page: 148 154
+TeXDict begin 148 153 bop 150 -116 a Ft(148)2527 b(Bash)31
+b(Reference)g(Man)m(ual)330 299 y(an)f(\\aggregate")k(if)c(the)g(cop)m
+(yrigh)m(t)i(resulting)e(from)f(the)i(compilation)g(is)f(not)h(used)e
+(to)i(limit)g(the)330 408 y(legal)d(righ)m(ts)f(of)g(the)g
+(compilation's)h(users)e(b)s(ey)m(ond)g(what)g(the)h(individual)f(w)m
+(orks)g(p)s(ermit.)39 b(When)330 518 y(the)g(Do)s(cumen)m(t)g(is)f
+(included)g(in)g(an)g(aggregate,)44 b(this)38 b(License)h(do)s(es)f
+(not)h(apply)f(to)h(the)g(other)330 628 y(w)m(orks)30
+b(in)g(the)h(aggregate)i(whic)m(h)d(are)h(not)g(themselv)m(es)g(deriv)
+-5 b(ativ)m(e)32 b(w)m(orks)f(of)f(the)h(Do)s(cumen)m(t.)330
+762 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8 b(ext)23 b(requiremen)m(t)g(of)g
+(section)h(3)f(is)g(applicable)h(to)f(these)h(copies)f(of)g(the)g(Do)s
+(cumen)m(t,)330 872 y(then)f(if)g(the)h(Do)s(cumen)m(t)g(is)g(less)f
+(than)g(one)h(half)f(of)h(the)g(en)m(tire)g(aggregate,)k(the)c(Do)s
+(cumen)m(t's)g(Co)m(v)m(er)330 981 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f
+(placed)h(on)g(co)m(v)m(ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m
+(t)g(within)f(the)h(aggregate,)j(or)d(the)330 1091 y(electronic)37
+b(equiv)-5 b(alen)m(t)36 b(of)g(co)m(v)m(ers)g(if)f(the)g(Do)s(cumen)m
+(t)h(is)f(in)g(electronic)i(form.)54 b(Otherwise)35 b(they)330
+1200 y(m)m(ust)30 b(app)s(ear)g(on)g(prin)m(ted)g(co)m(v)m(ers)i(that)f
+(brac)m(k)m(et)h(the)f(whole)f(aggregate.)199 1335 y(8.)61
+b(TRANSLA)-8 b(TION)330 1469 y(T)g(ranslation)41 b(is)f(considered)f(a)
+i(kind)e(of)h(mo)s(di\014cation,)j(so)d(y)m(ou)g(ma)m(y)h(distribute)e
+(translations)330 1579 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h
+(terms)h(of)f(section)i(4.)83 b(Replacing)45 b(In)m(v)-5
+b(arian)m(t)45 b(Sections)g(with)330 1689 y(translations)h(requires)f
+(sp)s(ecial)h(p)s(ermission)f(from)g(their)g(cop)m(yrigh)m(t)i
+(holders,)i(but)c(y)m(ou)g(ma)m(y)330 1798 y(include)24
+b(translations)i(of)e(some)h(or)g(all)g(In)m(v)-5 b(arian)m(t)25
+b(Sections)g(in)f(addition)h(to)g(the)g(original)h(v)m(ersions)330
+1908 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)33 b(Sections.)44
+b(Y)-8 b(ou)32 b(ma)m(y)g(include)f(a)h(translation)g(of)g(this)f
+(License,)i(and)d(all)j(the)330 2017 y(license)42 b(notices)g(in)f(the)
+h(Do)s(cumen)m(t,)j(and)40 b(an)m(y)i(W)-8 b(arran)m(t)m(y)42
+b(Disclaimers,)k(pro)m(vided)41 b(that)h(y)m(ou)330 2127
+y(also)f(include)f(the)g(original)h(English)f(v)m(ersion)g(of)g(this)g
+(License)h(and)e(the)h(original)h(v)m(ersions)g(of)330
+2237 y(those)35 b(notices)g(and)e(disclaimers.)53 b(In)33
+b(case)i(of)g(a)f(disagreemen)m(t)h(b)s(et)m(w)m(een)g(the)f
+(translation)i(and)330 2346 y(the)f(original)i(v)m(ersion)e(of)h(this)f
+(License)h(or)f(a)g(notice)i(or)e(disclaimer,)i(the)f(original)g(v)m
+(ersion)g(will)330 2456 y(prev)-5 b(ail.)330 2590 y(If)28
+b(a)h(section)h(in)e(the)h(Do)s(cumen)m(t)h(is)e(En)m(titled)i(\\Ac)m
+(kno)m(wledgemen)m(ts",)i(\\Dedications",)g(or)d(\\His-)330
+2700 y(tory",)f(the)f(requiremen)m(t)f(\(section)i(4\))f(to)g(Preserv)m
+(e)g(its)f(Title)i(\(section)f(1\))g(will)g(t)m(ypically)h(require)330
+2809 y(c)m(hanging)j(the)g(actual)h(title.)199 2944 y(9.)61
+b(TERMINA)-8 b(TION)330 3078 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m(y)-8
+b(,)31 b(mo)s(dify)-8 b(,)30 b(sublicense,)g(or)g(distribute)f(the)h
+(Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3188 y(pro)m(vided)41
+b(for)h(under)e(this)i(License.)75 b(An)m(y)42 b(other)g(attempt)h(to)g
+(cop)m(y)-8 b(,)46 b(mo)s(dify)-8 b(,)44 b(sublicense)e(or)330
+3298 y(distribute)36 b(the)h(Do)s(cumen)m(t)g(is)g(v)m(oid,)i(and)d
+(will)h(automatically)i(terminate)f(y)m(our)e(righ)m(ts)h(under)330
+3407 y(this)28 b(License.)40 b(Ho)m(w)m(ev)m(er,)31 b(parties)d(who)f
+(ha)m(v)m(e)i(receiv)m(ed)g(copies,)h(or)d(righ)m(ts,)i(from)f(y)m(ou)g
+(under)e(this)330 3517 y(License)37 b(will)g(not)g(ha)m(v)m(e)h(their)f
+(licenses)g(terminated)h(so)f(long)g(as)g(suc)m(h)f(parties)h(remain)g
+(in)f(full)330 3626 y(compliance.)154 3761 y(10.)61 b(FUTURE)30
+b(REVISIONS)f(OF)i(THIS)e(LICENSE)330 3895 y(The)41 b(F)-8
+b(ree)43 b(Soft)m(w)m(are)f(F)-8 b(oundation)43 b(ma)m(y)f(publish)e
+(new,)k(revised)d(v)m(ersions)h(of)g(the)g(GNU)g(F)-8
+b(ree)330 4005 y(Do)s(cumen)m(tation)34 b(License)e(from)g(time)h(to)g
+(time.)46 b(Suc)m(h)31 b(new)h(v)m(ersions)g(will)h(b)s(e)e(similar)h
+(in)g(spirit)330 4115 y(to)j(the)g(presen)m(t)f(v)m(ersion,)i(but)e(ma)
+m(y)h(di\013er)f(in)g(detail)h(to)g(address)f(new)g(problems)f(or)i
+(concerns.)330 4224 y(See)c Fs(http://www.gnu.org/copy)o(left)o(/)p
+Ft(.)330 4359 y(Eac)m(h)f(v)m(ersion)g(of)g(the)f(License)h(is)g(giv)m
+(en)g(a)g(distinguishing)f(v)m(ersion)h(n)m(um)m(b)s(er.)39
+b(If)29 b(the)g(Do)s(cumen)m(t)330 4468 y(sp)s(eci\014es)45
+b(that)h(a)g(particular)f(n)m(um)m(b)s(ered)f(v)m(ersion)i(of)f(this)g
+(License)h(\\or)g(an)m(y)g(later)g(v)m(ersion")330 4578
+y(applies)33 b(to)g(it,)h(y)m(ou)e(ha)m(v)m(e)i(the)f(option)g(of)f
+(follo)m(wing)i(the)f(terms)f(and)g(conditions)h(either)g(of)f(that)330
+4687 y(sp)s(eci\014ed)37 b(v)m(ersion)i(or)e(of)h(an)m(y)h(later)g(v)m
+(ersion)f(that)g(has)g(b)s(een)f(published)f(\(not)j(as)f(a)g(draft\))g
+(b)m(y)330 4797 y(the)33 b(F)-8 b(ree)34 b(Soft)m(w)m(are)f(F)-8
+b(oundation.)49 b(If)32 b(the)h(Do)s(cumen)m(t)g(do)s(es)g(not)g(sp)s
+(ecify)f(a)h(v)m(ersion)g(n)m(um)m(b)s(er)f(of)330 4907
+y(this)i(License,)j(y)m(ou)d(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g(v)m
+(ersion)g(ev)m(er)g(published)e(\(not)i(as)g(a)f(draft\))h(b)m(y)f(the)
+h(F)-8 b(ree)330 5016 y(Soft)m(w)m(are)31 b(F)-8 b(oundation.)p
+eop end
+%%Page: 149 155
+TeXDict begin 149 154 bop 150 -116 a Ft(App)s(endix)29
+b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
+b(149)150 299 y Fr(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
+(for)g(y)l(our)g(do)t(cumen)l(ts)275 543 y Ft(T)-8 b(o)27
+b(use)g(this)g(License)h(in)f(a)h(do)s(cumen)m(t)f(y)m(ou)h(ha)m(v)m(e)
+g(written,)g(include)f(a)h(cop)m(y)g(of)f(the)h(License)g(in)f(the)150
+653 y(do)s(cumen)m(t)j(and)g(put)g(the)g(follo)m(wing)i(cop)m(yrigh)m
+(t)g(and)e(license)h(notices)g(just)f(after)h(the)g(title)h(page:)468
+765 y Fe(Copyright)42 b(\(C\))79 b Fd(year)88 b(your)40
+b(name)p Fe(.)468 852 y(Permission)i(is)e(granted)g(to)g(copy,)h
+(distribute)g(and/or)g(modify)f(this)g(document)468 939
+y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i
+(License,)f(Version)g(1.2)468 1026 y(or)f(any)g(later)g(version)h
+(published)h(by)d(the)h(Free)g(Software)h(Foundation;)468
+1113 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g
+(and)f(no)f(Back-Cover)468 1200 y(Texts.)80 b(A)40 b(copy)g(of)g(the)f
+(license)i(is)f(included)h(in)f(the)g(section)g(entitled)h(``GNU)468
+1288 y(Free)g(Documentation)h(License''.)275 1410 y Ft(If)d(y)m(ou)h
+(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)41 b(Sections,)i(F)-8
+b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k
+(T)-8 b(exts,)43 b(replace)e(the)150 1520 y(\\with)6
+b(.)22 b(.)g(.)12 b(T)-8 b(exts.")41 b(line)31 b(with)f(this:)547
+1632 y Fe(with)40 b(the)g(Invariant)h(Sections)g(being)g
+Fd(list)f(their)g(titles)p Fe(,)h(with)547 1719 y(the)f(Front-Cover)i
+(Texts)e(being)g Fd(list)p Fe(,)h(and)f(with)g(the)g(Back-Cover)h
+(Texts)547 1806 y(being)f Fd(list)p Fe(.)275 1929 y Ft(If)34
+b(y)m(ou)i(ha)m(v)m(e)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(without)f
+(Co)m(v)m(er)h(T)-8 b(exts,)38 b(or)d(some)g(other)h(com)m(bination)g
+(of)g(the)150 2038 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g
+(alternativ)m(es)i(to)e(suit)f(the)h(situation.)275 2173
+y(If)23 b(y)m(our)h(do)s(cumen)m(t)f(con)m(tains)i(non)m(trivial)g
+(examples)g(of)f(program)f(co)s(de,)j(w)m(e)e(recommend)g(releasing)150
+2283 y(these)44 b(examples)f(in)g(parallel)h(under)e(y)m(our)h(c)m
+(hoice)i(of)e(free)g(soft)m(w)m(are)h(license,)k(suc)m(h)43
+b(as)g(the)g(GNU)150 2392 y(General)31 b(Public)f(License,)i(to)f(p)s
+(ermit)e(their)i(use)f(in)g(free)g(soft)m(w)m(are.)p
+eop end
+%%Page: 150 156
+TeXDict begin 150 155 bop 150 -116 a Ft(150)2527 b(Bash)31
+b(Reference)g(Man)m(ual)p eop end
+%%Page: 151 157
+TeXDict begin 151 156 bop 150 -116 a Ft(App)s(endix)29
+b(D:)i(Indexes)2623 b(151)150 299 y Fo(App)t(endix)52
+b(D)119 b(Indexes)150 656 y Fr(D.1)68 b(Index)45 b(of)g(Shell)g
+(Builtin)g(Commands)150 977 y(.)150 1105 y Fe(.)17 b
+Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(35)150 1367
+y Fr(:)150 1495 y Fe(:)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(35)150 1767 y Fr([)150 1895 y Fe([)17 b Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(39)150 2166 y Fr(A)150
+2293 y Fe(alias)11 b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b Fb(41)150 2556
+y Fr(B)150 2684 y Fe(bg)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fb(90)150 2777 y Fe(bind)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
+b Fb(41)150 2869 y Fe(break)11 b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b
+Fb(35)150 2962 y Fe(builtin)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(42)150
+3225 y Fr(C)150 3352 y Fe(caller)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35
+b Fb(43)150 3445 y Fe(cd)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fb(36)150 3538 y Fe(command)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(43)150
+3631 y Fe(compgen)7 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(116)150 3724 y Fe(complete)26
+b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+50 b Fb(117)150 3817 y Fe(compopt)7 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(120)150
+3910 y Fe(continue)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(36)150 4172 y
+Fr(D)150 4300 y Fe(declare)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(43)150
+4393 y Fe(dirs)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(82)150
+4485 y Fe(disown)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(91)150 4748
+y Fr(E)150 4876 y Fe(echo)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
+b Fb(44)150 4969 y Fe(enable)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(45)150
+5061 y Fe(eval)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150
+5154 y Fe(exec)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150
+5247 y Fe(exit)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150
+5340 y Fe(export)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(36)2025 977
+y Fr(F)2025 1104 y Fe(fc)14 b Fc(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)41
+b Fb(122)2025 1196 y Fe(fg)15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fb(90)2025 1474 y Fr(G)2025 1601 y Fe(getopts)8 b Fc(.)14
+b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)34 b Fb(37)2025 1879 y Fr(H)2025 2006 y Fe(hash)13
+b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(37)2025 2098 y Fe(help)13
+b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(46)2025 2190 y Fe(history)7
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+g(.)h(.)33 b Fb(122)2025 2469 y Fr(J)2025 2595 y Fe(jobs)13
+b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(90)2025 2874 y Fr(K)2025
+3000 y Fe(kill)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(91)2025
+3260 y Fr(L)2025 3387 y Fe(let)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(46)2025 3479 y Fe(local)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(46)2025 3571 y Fe(logout)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b
+Fb(46)2025 3850 y Fr(M)2025 3976 y Fe(mapfile)8 b Fc(.)14
+b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)34 b Fb(46)2025 4255 y Fr(P)2025 4381 y Fe(popd)13
+b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(82)2025 4473 y Fe(printf)10
+b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)35 b Fb(47)2025 4566 y Fe(pushd)11 b Fc(.)i(.)g(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(82)2025 4658 y Fe(pwd)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(38)2025 4937 y Fr(R)2025 5063 y Fe(read)13 b Fc(.)g(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+38 b Fb(47)2025 5155 y Fe(readarray)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(48)2025
+5248 y Fe(readonly)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(38)2025 5340 y
+Fe(return)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(38)p eop end
+%%Page: 152 158
+TeXDict begin 152 157 bop 150 -116 a Ft(152)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fr(S)150 423 y Fe(set)14
+b Fc(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(51)150 514 y Fe(shift)11
+b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)37 b Fb(38)150 606 y Fe(shopt)11 b
+Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)37 b Fb(54)150 697 y Fe(source)10 b Fc(.)j(.)g(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35
+b Fb(49)150 788 y Fe(suspend)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(91)150
+1061 y Fr(T)150 1185 y Fe(test)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
+b Fb(39)150 1276 y Fe(times)11 b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b
+Fb(40)150 1368 y Fe(trap)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
+b Fb(40)2025 299 y Fe(type)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(49)2025 386 y Fe(typeset)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(49)2025
+639 y Fr(U)2025 755 y Fe(ulimit)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b
+Fb(49)2025 843 y Fe(umask)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b
+Fb(41)2025 930 y Fe(unalias)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(50)2025
+1017 y Fe(unset)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(41)2025 1251
+y Fr(W)2025 1368 y Fe(wait)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(91)150 1642 y Fr(D.2)68 b(Index)45 b(of)g(Shell)g(Reserv)l(ed)h(W)
+-11 b(ords)150 1963 y(!)150 2096 y Fe(!)18 b Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(8)150 2382 y
+Fr([)150 2515 y Fe([[)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fb(12)150 2807 y Fr(])150 2940 y Fe(]])15 b Fc(.)e(.)g(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)41 b Fb(12)150 3226 y Fa({)150 3359 y Fe({)17 b Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(14)150 3645 y Fa(})150
+3777 y Fe(})17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(14)150 4062 y Fr(C)150 4195 y Fe(case)13 b Fc(.)g(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
+b Fb(11)150 4471 y Fr(D)150 4604 y Fe(do)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)41 b Fb(10)150 4700 y Fe(done)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
+b Fb(10)2025 1963 y Fr(E)2025 2079 y Fe(elif)13 b Fc(.)g(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+38 b Fb(10)2025 2166 y Fe(else)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(10)2025 2254 y Fe(esac)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(11)2025 2487 y Fr(F)2025 2603 y Fe(fi)15 b Fc(.)e(.)f(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)41 b Fb(10)2025 2690 y Fe(for)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(10)2025 2778 y Fe(function)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(15)2025
+3011 y Fr(I)2025 3127 y Fe(if)15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fb(10)2025 3215 y Fe(in)15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fb(11)2025 3448 y Fr(S)2025 3564 y Fe(select)10 b Fc(.)j(.)f(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35
+b Fb(12)2025 3797 y Fr(T)2025 3914 y Fe(then)13 b Fc(.)g(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+38 b Fb(10)2025 4001 y Fe(time)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)40
+b Fb(8)2025 4234 y Fr(U)2025 4350 y Fe(until)11 b Fc(.)i(.)g(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(10)2025 4584 y Fr(W)2025 4700 y Fe(while)11 b Fc(.)i(.)g(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(10)150 4957 y Fr(D.3)68 b(P)l(arameter)47 b(and)d(V)-11
+b(ariable)46 b(Index)150 5279 y(!)1834 b Fe(!)17 b Fc(.)12
+b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b Fb(17)p eop end
+%%Page: 153 159
+TeXDict begin 153 158 bop 150 -116 a Ft(App)s(endix)29
+b(D:)i(Indexes)2623 b(153)150 299 y Fr(#)150 424 y Fe(#)17
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(17)150 688
+y Fr($)150 813 y Fe($)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(17)150 1084 y Fr(*)150 1209 y Fe(*)17 b Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(17)150 1464 y Fr(-)150
+1589 y Fe(-)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(17)150 1844 y Fr(?)150 1969 y Fe(?)17 b Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(17)150 2224 y Fr(@)150
+2348 y Fe(@)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(17)p 159 2603 41 6 v 150 2728 a Fe(_)17 b Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(17)150 2983 y Fr(0)150
+3108 y Fe(0)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(17)150 3363 y Fr(A)150 3488 y Fe(auto_resume)23
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46
+b Fb(92)150 3752 y Fr(B)150 3877 y Fe(BASH)13 b Fc(.)g(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
+b Fb(61)150 3968 y Fe(BASH_ALIASES)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(62)150 4060 y Fe(BASH_ARGC)25
+b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+49 b Fb(62)150 4151 y Fe(BASH_ARGV)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(62)150
+4243 y Fe(BASH_CMDS)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(62)150 4334 y Fe(BASH_COMMAND)22
+b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45
+b Fb(62)150 4426 y Fe(BASH_ENV)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(62)150
+4517 y Fe(BASH_EXECUTION_STRING)d Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50
+b Fb(62)150 4608 y Fe(BASH_LINENO)23 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(62)150 4700 y
+Fe(BASH_REMATCH)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)45 b Fb(63)150 4791 y Fe(BASH_SOURCE)23 b Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46
+b Fb(63)150 4883 y Fe(BASH_SUBSHELL)18 b Fc(.)d(.)d(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)43 b Fb(63)150 4974 y Fe(BASH_VERSINFO)18
+b Fc(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43
+b Fb(63)150 5066 y Fe(BASH_VERSION)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(63)150 5157 y Fe(BASHPID)8
+b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)34 b Fb(62)150 5249 y Fe(bell-style)24 b
+Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47
+b Fb(97)150 5340 y Fe(bind-tty-special-chars)28 b Fc(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)48 b Fb(97)2025 299 y Fr(C)2025 417 y Fe(CDPATH)10
+b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)35 b Fb(61)2025 506 y Fe(COLUMNS)8 b Fc(.)14
+b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)34 b Fb(63)2025 594 y Fe(comment-begin)18 b Fc(.)d(.)d(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(97)2025 683 y Fe(COMP_CWORD)24
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fb(63)2025 771 y Fe(COMP_KEY)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(64)2025
+860 y Fe(COMP_LINE)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(63)2025 948 y Fe(COMP_POINT)24
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fb(64)2025 1036 y Fe(COMP_TYPE)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(64)2025 1125
+y Fe(COMP_WORDBREAKS)15 b Fc(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40
+b Fb(64)2025 1213 y Fe(COMP_WORDS)24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(64)2025 1302
+y Fe(completion-prefix-display-leng)q(th)9 b Fc(.)18
+b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(97)2025
+1390 y Fe(completion-query-items)27 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48
+b Fb(97)2025 1479 y Fe(COMPREPLY)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(64)2025 1567
+y Fe(convert-meta)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)45 b Fb(98)2025 1807 y Fr(D)2025 1925 y Fe(DIRSTACK)7
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)32 b Fb(64)2025 2014 y Fe(disable-completion)10
+b Fc(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(98)2025
+2272 y Fr(E)2025 2390 y Fe(editing-mode)22 b Fc(.)12
+b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fb(98)2025 2479 y Fe(EMACS)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(64)2025 2567 y Fe(enable-keypad)18 b Fc(.)d(.)d(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(98)2025 2656 y Fe(EUID)13
+b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(65)2025 2744 y Fe(expand-tilde)22
+b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fb(98)2025 3002 y Fr(F)2025 3121 y Fe(FCEDIT)10 b Fc(.)j(.)f(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35
+b Fb(65)2025 3209 y Fe(FIGNORE)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(65)2025
+3297 y Fe(FUNCNAME)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(65)2025 3537 y
+Fr(G)2025 3655 y Fe(GLOBIGNORE)24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(65)2025 3744
+y Fe(GROUPS)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(65)2025 3983 y Fr(H)2025
+4102 y Fe(histchars)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(65)2025 4190 y Fe(HISTCMD)8
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)34 b Fb(65)2025 4279 y Fe(HISTCONTROL)23
+b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)46
+b Fb(65)2025 4367 y Fe(HISTFILE)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(66)2025
+4456 y Fe(HISTFILESIZE)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)45 b Fb(66)2025 4544 y Fe(HISTIGNORE)24
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fb(66)2025 4632 y Fe(history-preserve-point)27 b Fc(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)48 b Fb(98)2025 4721 y Fe(history-size)22 b Fc(.)12
+b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fb(98)2025 4809 y Fe(HISTSIZE)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(66)2025
+4898 y Fe(HISTTIMEFORMAT)16 b Fc(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)42 b Fb(66)2025 4986 y Fe(HOME)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(61)2025 5075 y Fe(horizontal-scroll-mode)27 b Fc(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)48 b Fb(98)2025 5163 y Fe(HOSTFILE)7 b Fc(.)14
+b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+32 b Fb(66)2025 5252 y Fe(HOSTNAME)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(66)2025
+5340 y Fe(HOSTTYPE)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(66)p eop end
+%%Page: 154 160
+TeXDict begin 154 159 bop 150 -116 a Ft(154)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fr(I)150 423 y Fe(IFS)14
+b Fc(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(61)150 515 y Fe(IGNOREEOF)25
+b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+49 b Fb(66)150 606 y Fe(input-meta)24 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(98)150 698
+y Fe(INPUTRC)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(67)150 789 y Fe
+(isearch-terminators)9 b Fc(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34
+b Fb(99)150 1044 y Fr(K)150 1168 y Fe(keymap)10 b Fc(.)j(.)g(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35
+b Fb(99)150 1442 y Fr(L)150 1566 y Fe(LANG)13 b Fc(.)g(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
+b Fb(67)150 1658 y Fe(LC_ALL)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(67)150
+1749 y Fe(LC_COLLATE)24 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)47 b Fb(67)150 1840 y Fe(LC_CTYPE)7
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)32 b Fb(67)150 1932 y Fe(LC_MESSAGES)14 b Fc(.)h(.)d(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(7,)26 b(67)150
+2023 y Fe(LC_NUMERIC)e Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)47 b Fb(67)150 2114 y Fe(LINENO)10
+b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)35 b Fb(67)150 2206 y Fe(LINES)11 b Fc(.)j(.)e(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37
+b Fb(67)150 2460 y Fr(M)150 2585 y Fe(MACHTYPE)7 b Fc(.)14
+b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+32 b Fb(67)150 2676 y Fe(MAIL)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
+b Fb(61)150 2768 y Fe(MAILCHECK)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(67)150 2859
+y Fe(MAILPATH)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(61)150 2950 y Fe(mark-modified-lines)9
+b Fc(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(99)150 3042
+y Fe(mark-symlinked-directories)17 b Fc(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(99)150 3133
+y Fe(match-hidden-files)10 b Fc(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fb(99)150 3225 y Fe(meta-flag)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(98)150 3498
+y Fr(O)150 3623 y Fe(OLDPWD)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(67)150
+3714 y Fe(OPTARG)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(61)150 3805
+y Fe(OPTERR)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(67)150 3897 y Fe(OPTIND)10
+b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)35 b Fb(61)150 3988 y Fe(OSTYPE)10 b Fc(.)j(.)g(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35
+b Fb(67)150 4079 y Fe(output-meta)23 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(99)2025 299 y
+Fr(P)2025 415 y Fe(page-completions)13 b Fc(.)j(.)c(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)39 b Fb(99)2025 502 y Fe(PATH)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(61)2025 589 y Fe(PIPESTATUS)24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(67)2025 677 y
+Fe(POSIXLY_CORRECT)15 b Fc(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40
+b Fb(68)2025 764 y Fe(PPID)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(68)2025 851 y Fe(PROMPT_COMMAND)16 b Fc(.)f(.)e(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)42 b Fb(68)2025 938 y Fe(PROMPT_DIRTRIM)16
+b Fc(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)42 b
+Fb(68)2025 1026 y Fe(PS1)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(61)2025 1113 y Fe(PS2)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(61)2025 1200 y Fe(PS3)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(68)2025 1287 y Fe(PS4)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(68)2025 1374 y Fe(PWD)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(68)2025 1607 y Fr(R)2025 1724 y Fe(RANDOM)10 b Fc(.)j(.)f(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35
+b Fb(68)2025 1811 y Fe(REPLY)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(68)2025 1898 y Fe(revert-all-at-newline)28 b Fc(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)49 b Fb(100)2025 2131 y Fr(S)2025 2247 y Fe(SECONDS)8
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)34 b Fb(68)2025 2334 y Fe(SHELL)11 b Fc(.)i(.)g(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(68)2025 2422 y Fe(SHELLOPTS)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(68)2025 2509
+y Fe(SHLVL)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(69)2025 2596
+y Fe(show-all-if-ambiguous)28 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)49 b Fb(100)2025
+2683 y Fe(show-all-if-unmodified)26 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(100)2025
+2916 y Fr(T)2025 3032 y Fe(TEXTDOMAIN)25 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 b Fb(7)2025
+3120 y Fe(TEXTDOMAINDIR)21 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)45 b Fb(7)2025 3207 y Fe(TIMEFORMAT)24
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fb(69)2025 3294 y Fe(TMOUT)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(69)2025 3381 y Fe(TMPDIR)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b
+Fb(69)2025 3614 y Fr(U)2025 3730 y Fe(UID)14 b Fc(.)f(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)40 b Fb(69)2025 3963 y Fr(V)2025 4079 y Fe(visible-stats)17
+b Fc(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b
+Fb(100)150 4353 y Fr(D.4)68 b(F)-11 b(unction)44 b(Index)150
+4675 y(A)150 4792 y Fe(abort)27 b(\(C-g\))8 b Fc(.)13
+b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34
+b Fb(112)150 4880 y Fe(accept-line)28 b(\(Newline)g(or)e(Return\))11
+b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(107)150
+4968 y Fe(alias-expand-line)29 b(\(\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39
+b Fb(114)150 5223 y Fr(B)150 5340 y Fe(backward-char)29
+b(\(C-b\))15 b Fc(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)41 b Fb(106)2025
+4675 y Fe(backward-delete-char)30 b(\(Rubout\))18 b Fc(.)c(.)f(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(108)2025 4786
+y Fe(backward-kill-line)29 b(\(C-x)e(Rubout\))d Fc(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fb(109)2025
+4896 y Fe(backward-kill-word)29 b(\(\))12 b Fc(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)38
+b Fb(109)2025 5007 y Fe(backward-kill-word)29 b(\(M-)2873
+5004 y Fg(h)p 2898 4951 146 4 v 2898 5007 a Ff(DEL)p
+2898 5023 V 3040 5004 a Fg(i)3070 5007 y Fe(\))20 b Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b
+Fb(109)2025 5118 y Fe(backward-word)28 b(\(M-b\))15 b
+Fc(.)e(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)41 b Fb(106)2025 5229 y Fe(beginning-of-history)
+30 b(\(M-<\))24 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)49 b Fb(107)2025 5340 y Fe(beginning-of-line)29
+b(\(C-a\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(106)p eop end
+%%Page: 155 161
+TeXDict begin 155 160 bop 150 -116 a Ft(App)s(endix)29
+b(D:)i(Indexes)2623 b(155)150 299 y Fr(C)150 428 y Fe
+(call-last-kbd-macro)30 b(\(C-x)c(e\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(112)150 521
+y Fe(capitalize-word)29 b(\(M-c\))12 b Fc(.)h(.)g(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
+b Fb(109)150 615 y Fe(character-search)29 b(\(C-]\))10
+b Fc(.)k(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)36 b Fb(113)150 708 y Fe(character-search-backward)31
+b(\(M-C-]\))12 b Fc(.)j(.)d(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(113)150 802 y Fe(clear-screen)28 b(\(C-l\))16 b
+Fc(.)e(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(106)150 896 y Fe(complete)27
+b(\()528 893 y Fg(h)p 553 839 148 4 v 553 896 a Ff(T)-6
+b(AB)p 553 911 V 697 893 a Fg(i)726 896 y Fe(\))18 b
+Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(110)150
+989 y Fe(complete-command)29 b(\(M-!\))10 b Fc(.)k(.)e(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)36
+b Fb(111)150 1083 y Fe(complete-filename)29 b(\(M-/\))9
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)35 b Fb(111)150 1176 y Fe(complete-hostname)29
+b(\(M-@\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(111)150 1270 y Fe(complete-into-braces)
+30 b(\(M-{\))24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)49 b Fb(112)150 1363 y Fe(complete-username)29
+b(\(M-~\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(111)150 1457 y Fe(complete-variable)29
+b(\(M-$\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(111)150 1550 y Fe(copy-backward-word)30
+b(\(\))12 b Fc(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fb(110)150 1644 y Fe(copy-forward-word)
+29 b(\(\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(110)150 1737
+y Fe(copy-region-as-kill)30 b(\(\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)36
+b Fb(110)150 2022 y Fr(D)150 2151 y Fe(dabbrev-expand)29
+b(\(\))18 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(112)150
+2245 y Fe(delete-char)28 b(\(C-d\))18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)43 b Fb(108)150 2338 y Fe(delete-char-or-list)30
+b(\(\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)36 b Fb(111)150 2432 y Fe
+(delete-horizontal-space)31 b(\(\))23 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)49 b Fb(110)150 2525
+y Fe(digit-argument)29 b(\()p Fd(M-0)p Fe(,)e Fd(M-1)p
+Fe(,)f(...)g Fd(M--)p Fe(\))13 b Fc(.)h(.)e(.)h(.)f(.)g(.)g(.)h(.)39
+b Fb(110)150 2619 y Fe(display-shell-version)30 b(\(C-x)d(C-v\))c
+Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(114)150
+2712 y Fe(do-uppercase-version)30 b(\(M-a,)d(M-b,)f(M-)p
+Fd(x)p Fe(,)h(...)q(\))317 2799 y Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39
+b Fb(112)150 2893 y Fe(downcase-word)29 b(\(M-l\))15
+b Fc(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)41 b Fb(108)150 2987 y Fe(dump-functions)29
+b(\(\))18 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(113)150
+3080 y Fe(dump-macros)28 b(\(\))22 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)48 b Fb(113)150 3174 y Fe(dump-variables)29
+b(\(\))18 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(113)150
+3267 y Fe(dynamic-complete-history)31 b(\(M-)1234 3264
+y Fg(h)p 1259 3211 V 1259 3267 a Ff(T)-6 b(AB)p 1259
+3282 V 1403 3264 a Fg(i)1432 3267 y Fe(\))10 b Fc(.)j(.)g(.)f(.)g(.)h
+(.)f(.)36 b Fb(112)150 3552 y Fr(E)150 3681 y Fe
+(edit-and-execute-command)31 b(\(C-xC-e\))12 b Fc(.)j(.)d(.)g(.)h(.)f
+(.)g(.)h(.)38 b Fb(114)150 3774 y Fe(end-kbd-macro)29
+b(\(C-x)d(\)\))19 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(112)150
+3868 y Fe(end-of-history)29 b(\(M->\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39
+b Fb(107)150 3962 y Fe(end-of-line)28 b(\(C-e\))18 b
+Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(106)150 4055
+y Fe(exchange-point-and-mark)31 b(\(C-x)26 b(C-x\))21
+b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)45 b Fb(113)150
+4340 y Fr(F)150 4469 y Fe(forward-backward-delete-char)32
+b(\(\))15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)41
+b Fb(108)150 4562 y Fe(forward-char)28 b(\(C-f\))16 b
+Fc(.)e(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(106)150 4656 y Fe
+(forward-search-history)31 b(\(C-s\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fb(107)150 4749 y Fe(forward-word)28
+b(\(M-f\))16 b Fc(.)e(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(106)150
+5024 y Fr(G)150 5153 y Fe(glob-complete-word)30 b(\(M-g\))7
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)33 b Fb(113)150 5246 y Fe(glob-expand-word)c(\(C-x)e(*\))14
+b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)40 b Fb(114)150 5340 y Fe(glob-list-expansions)30
+b(\(C-x)d(g\))8 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)34 b Fb(114)2025 299 y Fr(H)2025 431 y Fe
+(history-and-alias-expand-line)e(\(\))14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)40 b Fb(114)2025 526 y Fe(history-expand-line)30
+b(\(M-^\))25 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)50 b Fb(114)2025 621 y Fe(history-search-backward)31
+b(\(\))23 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)49 b Fb(107)2025 716 y Fe(history-search-forward)30
+b(\(\))25 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)50 b Fb(107)2025 1008 y Fr(I)2025 1140 y Fe(insert-comment)
+29 b(\(M-#\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(113)2025
+1235 y Fe(insert-completions)29 b(\(M-*\))7 b Fc(.)14
+b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)34
+b Fb(111)2025 1330 y Fe(insert-last-argument)c(\(M-.)c(or)g(M-_\))8
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)34 b Fb(114)2025
+1622 y Fr(K)2025 1754 y Fe(kill-line)27 b(\(C-k\))22
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fb(109)2025
+1849 y Fe(kill-region)28 b(\(\))22 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)48 b Fb(110)2025 1944 y Fe(kill-whole-line)29
+b(\(\))16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(109)2025
+2039 y Fe(kill-word)27 b(\(M-d\))22 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)47 b Fb(109)2025 2321 y Fr(M)2025 2453 y Fe(magic-space)28
+b(\(\))22 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48
+b Fb(114)2025 2548 y Fe(menu-complete)28 b(\(\))20 b
+Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(111)2025
+2840 y Fr(N)2025 2972 y Fe(next-history)28 b(\(C-n\))16
+b Fc(.)e(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(107)2025 3067 y Fe
+(non-incremental-forward-search)q(-hist)q(ory)32 b(\(M-n\))2191
+3154 y Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(107)2025 3249 y Fe
+(non-incremental-reverse-search)q(-hist)q(ory)32 b(\(M-p\))2191
+3337 y Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(107)2025 3610 y Fr(O)2025
+3742 y Fe(operate-and-get-next)30 b(\(C-o\))24 b Fc(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49
+b Fb(114)2025 3837 y Fe(overwrite-mode)29 b(\(\))18 b
+Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fb(109)2025 4119
+y Fr(P)2025 4251 y Fe(possible-command-completions)32
+b(\(C-x)26 b(!\))15 b Fc(.)e(.)f(.)h(.)f(.)41 b Fb(112)2025
+4346 y Fe(possible-completions)30 b(\(M-?\))24 b Fc(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49
+b Fb(111)2025 4441 y Fe(possible-filename-completions)32
+b(\(C-x)26 b(/\))14 b Fc(.)f(.)f(.)g(.)40 b Fb(111)2025
+4536 y Fe(possible-hostname-completions)32 b(\(C-x)26
+b(@\))14 b Fc(.)f(.)f(.)g(.)40 b Fb(111)2025 4631 y Fe
+(possible-username-completions)32 b(\(C-x)26 b(~\))14
+b Fc(.)f(.)f(.)g(.)40 b Fb(111)2025 4726 y Fe
+(possible-variable-completions)32 b(\(C-x)26 b($\))14
+b Fc(.)f(.)f(.)g(.)40 b Fb(111)2025 4821 y Fe(prefix-meta)28
+b(\()2521 4818 y Fg(h)p 2545 4765 139 4 v 2545 4821 a
+Ff(ESC)p 2545 4836 V 2679 4818 a Fg(i)2709 4821 y Fe(\))19
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fb(112)2025 4916 y Fe(previous-history)
+29 b(\(C-p\))10 b Fc(.)k(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(107)2025 5208 y Fr(Q)2025
+5340 y Fe(quoted-insert)28 b(\(C-q)f(or)f(C-v\))18 b
+Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44
+b Fb(108)p eop end
+%%Page: 156 162
+TeXDict begin 156 161 bop 150 -116 a Ft(156)2527 b(Bash)31
+b(Reference)g(Man)m(ual)150 299 y Fr(R)150 424 y Fe(re-read-init-file)e
+(\(C-x)e(C-r\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)36 b Fb(112)150 516 y Fe(redraw-current-line)30
+b(\(\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)36 b Fb(107)150 608 y Fe(reverse-search-history)
+31 b(\(C-r\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)46 b Fb(107)150 700 y Fe(revert-line)28 b(\(M-r\))18
+b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(113)150 965
+y Fr(S)150 1091 y Fe(self-insert)28 b(\(a,)e(b,)g(A,)g(1,)h(!,)f(...\))
+12 b Fc(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
+b Fb(108)150 1183 y Fe(set-mark)27 b(\(C-@\))c Fc(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(113)150
+1275 y Fe(shell-backward-word)30 b(\(\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)36
+b Fb(106)150 1366 y Fe(shell-expand-line)29 b(\(M-C-e\))d
+Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)50
+b Fb(114)150 1458 y Fe(shell-forward-word)30 b(\(\))12
+b Fc(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)38 b Fb(106)150 1550 y Fe(shell-kill-word)29
+b(\(\))16 b Fc(.)d(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(109)150
+1642 y Fe(start-kbd-macro)29 b(\(C-x)e(\(\))16 b Fc(.)c(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)42
+b Fb(112)150 1907 y Fr(T)2025 299 y Fe(tilde-expand)28
+b(\(M-&\))16 b Fc(.)e(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(113)2025
+386 y Fe(transpose-chars)29 b(\(C-t\))12 b Fc(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)38
+b Fb(108)2025 473 y Fe(transpose-words)29 b(\(M-t\))12
+b Fc(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)38 b Fb(108)2025 725 y Fr(U)2025 841
+y Fe(undo)26 b(\(C-_)h(or)f(C-x)g(C-u\))14 b Fc(.)f(.)g(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40
+b Fb(112)2025 929 y Fe(universal-argument)29 b(\(\))12
+b Fc(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)38 b Fb(110)2025 1016 y Fe(unix-filename-rubout)30
+b(\(\))9 b Fc(.)k(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)35 b Fb(109)2025 1103 y Fe(unix-line-discard)29
+b(\(C-u\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(109)2025 1190 y Fe(unix-word-rubout)29
+b(\(C-w\))10 b Fc(.)k(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(109)2025 1278 y Fe(upcase-word)28
+b(\(M-u\))18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b
+Fb(108)2025 1530 y Fr(Y)2025 1646 y Fe(yank)26 b(\(C-y\))10
+b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fb(110)2025 1733 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))18
+b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+44 b Fb(108)2025 1820 y Fe(yank-nth-arg)28 b(\(M-C-y\))13
+b Fc(.)h(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)39 b Fb(107)2025 1907 y Fe(yank-pop)27
+b(\(M-y\))c Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48
+b Fb(110)150 2165 y Fr(D.5)68 b(Concept)45 b(Index)150
+2509 y(A)150 2630 y Fb(alias)27 b(expansion)20 b Fc(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fb(79)150
+2719 y(arithmetic)26 b(ev)l(aluation)f Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50
+b Fb(78)150 2808 y(arithmetic)26 b(expansion)12 b Fc(.)h(.)f(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)38 b Fb(23)150 2898 y(arithmetic,)27 b(shell)20
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45
+b Fb(78)150 2987 y(arra)n(ys)6 b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)32
+b Fb(80)150 3248 y Fr(B)150 3368 y Fb(bac)n(kground)23
+b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49
+b Fb(89)150 3457 y(Bash)26 b(con\014guration)11 b Fc(.)i(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)36 b Fb(127)150 3547 y(Bash)26 b(installation)6
+b Fc(.)15 b(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32 b Fb(127)150
+3636 y(Bourne)26 b(shell)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(5)150 3725 y(brace)26
+b(expansion)d Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)48
+b Fb(18)150 3814 y(builtin)17 b Fc(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b
+Fb(3)150 4058 y Fr(C)150 4179 y Fb(command)26 b(editing)19
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(94)150
+4268 y(command)26 b(execution)11 b Fc(.)h(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+37 b Fb(30)150 4357 y(command)26 b(expansion)d Fc(.)12
+b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fb(30)150 4447 y(command)26
+b(history)16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(121)150 4536 y(command)26 b(searc)n(h)12 b Fc(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)38 b Fb(30)150 4625 y(command)26
+b(substitution)e Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 b Fb(23)150
+4715 y(command)26 b(timing)8 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)34 b Fb(8)150 4804 y(commands,)26 b(comp)r(ound)8
+b Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 b Fb(9)150 4893
+y(commands,)26 b(conditional)13 b Fc(.)h(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)39
+b Fb(10)150 4983 y(commands,)26 b(grouping)15 b Fc(.)f(.)e(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)41 b Fb(13)150 5072 y(commands,)26 b(lists)6
+b Fc(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32
+b Fb(9)150 5161 y(commands,)26 b(lo)r(oping)e Fc(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(10)150 5251 y(commands,)26
+b(pip)r(elines)17 b Fc(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43
+b Fb(8)150 5340 y(commands,)26 b(shell)16 b Fc(.)e(.)e(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(8)2025 2509 y(commands,)26
+b(simple)21 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47
+b Fb(8)2025 2598 y(commen)n(ts,)26 b(shell)8 b Fc(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)34
+b Fb(7)2025 2687 y(completion)26 b(builtins)c Fc(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(116)2025 2777 y(con\014guration)15
+b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)42
+b Fb(127)2025 2866 y(con)n(trol)26 b(op)r(erator)c Fc(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fb(3)2025
+2955 y(copro)r(cess)6 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32 b Fb(14)2025 3214
+y Fr(D)2025 3334 y Fb(directory)26 b(stac)n(k)d Fc(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 b Fb(81)2025
+3594 y Fr(E)2025 3713 y Fb(editing)26 b(command)g(lines)c
+Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(94)2025 3802 y(en)n(vironmen)n(t)10
+b Fc(.)h(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fb(32)2025 3892 y(ev)l(aluation,)26 b(arithmetic)13
+b Fc(.)h(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)39 b Fb(78)2025 3981 y(ev)n(en)n(t)24
+b(designators)18 b Fc(.)d(.)d(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44
+b Fb(124)2025 4070 y(execution)25 b(en)n(vironmen)n(t)19
+b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fb(31)2025 4159 y(exit)25
+b(status)17 b Fc(.)c(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)43 b Fb(3,)26 b(33)2025 4248 y(expansion)16 b Fc(.)c(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b
+Fb(17)2025 4337 y(expansion,)26 b(arithmetic)20 b Fc(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)45 b Fb(23)2025 4426 y(expansion,)26
+b(brace)12 b Fc(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
+b Fb(18)2025 4515 y(expansion,)26 b(\014lename)18 b Fc(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(24)2025 4604 y(expansion,)26
+b(parameter)c Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(20)2025
+4693 y(expansion,)26 b(pathname)8 b Fc(.)k(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34
+b Fb(24)2025 4782 y(expansion,)26 b(tilde)9 b Fc(.)j(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(19)2025 4872 y(expressions,)27
+b(arithmetic)16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(78)2025
+4961 y(expressions,)27 b(conditional)22 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47
+b Fb(77)2025 5220 y Fr(F)2025 5340 y Fb(\014eld)21 b
+Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(3)p eop end
+%%Page: 157 163
+TeXDict begin 157 162 bop 150 -116 a Ft(App)s(endix)29
+b(D:)i(Indexes)2623 b(157)150 299 y Fb(\014lename)8 b
+Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)34 b Fb(3)150 398 y(\014lename)26 b(expansion)10
+b Fc(.)i(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)36 b Fb(24)150
+497 y(foreground)20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)45 b Fb(89)150 596 y(functions,)26
+b(shell)d Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47
+b Fb(14)150 908 y Fr(H)150 1048 y Fb(history)26 b(builtins)16
+b Fc(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b
+Fb(121)150 1147 y(history)26 b(ev)n(en)n(ts)19 b Fc(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)46 b Fb(124)150
+1246 y(history)26 b(expansion)13 b Fc(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)39 b Fb(123)150 1345 y(history)26 b(list)18 b Fc(.)13
+b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44
+b Fb(121)150 1444 y(History)-6 b(,)26 b(ho)n(w)g(to)f(use)20
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 b Fb(120)150 1755
+y Fr(I)150 1896 y Fb(iden)n(ti\014er)16 b Fc(.)c(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(3)150 1995 y(initialization)28 b(\014le,)e(readline)7
+b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)33 b Fb(96)150 2094 y(installation)11
+b Fc(.)j(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(127)150 2193 y(in)n(teraction,)27 b(readline)9 b
+Fc(.)k(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)35 b Fb(93)150 2292
+y(in)n(teractiv)n(e)26 b(shell)20 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)46 b Fb(73,)26 b(75)150 2391 y(in)n(ternationalization)21
+b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fb(7)150
+2686 y Fr(J)150 2826 y Fb(job)22 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fb(3)150 2925 y(job)26 b(con)n(trol)12 b Fc(.)h(.)g(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(3,)26 b(89)150
+3236 y Fr(K)150 3377 y Fb(kill)g(ring)14 b Fc(.)f(.)f(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(95)150 3476 y(killing)27 b(text)16 b Fc(.)c(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(95)150
+3787 y Fr(L)150 3928 y Fb(lo)r(calization)10 b Fc(.)15
+b(.)e(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36
+b Fb(7)150 4027 y(login)27 b(shell)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)39 b Fb(73)150
+4338 y Fr(M)150 4478 y Fb(matc)n(hing,)26 b(pattern)7
+b Fc(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(25)150
+4577 y(metac)n(haracter)17 b Fc(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)43 b Fb(3)150 4872 y Fr(N)150 5013 y
+Fb(name)21 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fb(3)150 5112
+y(nativ)n(e)25 b(languages)14 b Fc(.)h(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)40 b Fb(7)150 5211 y(notation,)27 b(readline)12
+b Fc(.)h(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fb(94)150
+5522 y Fr(O)150 5662 y Fb(op)r(erator,)27 b(shell)15
+b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fb(3)2025 299 y Fr(P)2025 415 y Fb(parameter)26 b(expansion)14
+b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(20)2025 502 y(parameters)14
+b Fc(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(16)2025 589 y(parameters,)27 b(p)r(ositional)9 b
+Fc(.)14 b(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(16)2025 677 y(parameters,)27
+b(sp)r(ecial)e Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49
+b Fb(17)2025 764 y(pathname)25 b(expansion)19 b Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(24)2025 851 y(pattern)25
+b(matc)n(hing)18 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43
+b Fb(25)2025 938 y(pip)r(eline)15 b Fc(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b
+Fb(8)2025 1026 y(POSIX)8 b Fc(.)j(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(3)2025
+1113 y(POSIX)24 b(Mo)r(de)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)35 b Fb(85)2025 1200 y(pro)r(cess)26
+b(group)7 b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)34 b Fb(3)2025 1287 y(pro)r(cess)26 b(group)g(ID)e
+Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)50
+b Fb(3)2025 1374 y(pro)r(cess)26 b(substitution)10 b
+Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(23)2025 1462
+y(programmable)27 b(completion)16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(115)2025
+1549 y(prompting)7 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(83)2025 1799 y Fr(Q)2025
+1915 y Fb(quoting)19 b Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(6)2025
+2002 y(quoting,)26 b(ANSI)12 b Fc(.)f(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)39 b Fb(6)2025 2251 y Fr(R)2025 2368
+y Fb(Readline,)26 b(ho)n(w)g(to)g(use)14 b Fc(.)e(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+g(.)40 b Fb(92)2025 2455 y(redirection)21 b Fc(.)12 b(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 b Fb(26)2025
+2542 y(reserv)n(ed)25 b(w)n(ord)f Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)50 b Fb(3)2025 2629 y(restricted)26
+b(shell)8 b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+34 b Fb(84)2025 2716 y(return)25 b(status)19 b Fc(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45
+b Fb(4)2025 2949 y Fr(S)2025 3066 y Fb(shell)26 b(arithmetic)12
+b Fc(.)h(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
+b Fb(78)2025 3153 y(shell)26 b(function)11 b Fc(.)i(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(14)2025 3240
+y(shell)26 b(script)18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)44 b Fb(34)2025 3327 y(shell)26
+b(v)l(ariable)17 b Fc(.)c(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)43 b Fb(16)2025 3414 y(shell,)26 b(in)n(teractiv)n(e)16
+b Fc(.)d(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b
+Fb(75)2025 3502 y(signal)14 b Fc(.)f(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40
+b Fb(4)2025 3589 y(signal)27 b(handling)18 b Fc(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(33)2025
+3676 y(sp)r(ecial)27 b(builtin)12 b Fc(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)38 b Fb(4,)26 b(59)2025 3763 y(startup)f(\014les)20
+b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)45
+b Fb(73)2025 3851 y(susp)r(ending)25 b(jobs)7 b Fc(.)14
+b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(89)2025
+4100 y Fr(T)2025 4216 y Fb(tilde)26 b(expansion)19 b
+Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45
+b Fb(19)2025 4304 y(tok)n(en)18 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fb(4)2025 4391 y(translation,)27 b(nativ)n(e)e(languages)9
+b Fc(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)35 b Fb(7)2025 4640 y Fr(V)2025 4756 y Fb(v)l(ariable,)26
+b(shell)7 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)32 b Fb(16)2025 4844 y(v)l(ariables,)27 b(readline)7
+b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(97)2025
+5093 y Fr(W)2025 5209 y Fb(w)n(ord)10 b Fc(.)i(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36
+b Fb(4)2025 5297 y(w)n(ord)26 b(splitting)21 b Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46
+b Fb(24)2025 5546 y Fr(Y)2025 5662 y Fb(y)n(anking)25
+b(text)7 b Fc(.)k(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)33 b Fb(95)p eop end
+%%Page: 158 164
+TeXDict begin 158 163 bop 150 -116 a Ft(158)2527 b(Bash)31
+b(Reference)g(Man)m(ual)p eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
index 3f60390b06cc7f3dfcd8e0139e3d358c0a9e7d19..04178bc9f8015ee8dc91617bee807794417b0659 100644 (file)
@@ -1095,6 +1095,9 @@ The format for a coprocess is:
 @noindent
 This creates a coprocess named @var{NAME}.
 If @var{NAME} is not supplied, the default name is @var{COPROC}.
+@var{NAME} must not be supplied if @var{command} is a simple
+command (@pxref{Simple Commands}); otherwise, it is interpreted as
+the first word of the simple command.
 
 When the coproc is executed, the shell creates an array variable
 (@pxref{Arrays})
@@ -1614,11 +1617,12 @@ introduce indirection.
 In each of the cases below, @var{word} is subject to tilde expansion,
 parameter expansion, command substitution, and arithmetic expansion.
 
-When not performing substring expansion, Bash tests for a parameter
-that is unset or null; omitting the colon results in a test only for a
-parameter that is unset.  Put another way, if the colon is included,
-the operator tests for both existence and that the value is not null;
-if the colon is omitted, the operator tests only for existence.
+When not performing substring expansion, using the form described
+below, Bash tests for a parameter that is unset or null.
+Omitting the colon results in a test only for a parameter that is unset.
+Put another way, if the colon is included,
+the operator tests for both @var{parameter}'s existence and that its value
+is not null; if the colon is omitted, the operator tests only for existence.
 
 @table @code
 
@@ -1769,7 +1773,7 @@ to uppercase; the @samp{,} operator converts matching uppercase letters
 to lowercase.
 The @samp{^^} and @samp{,,} expansions convert each matched character in the
 expanded value; the @samp{^} and @samp{,} expansions match and convert only
-the first character.
+the first character in the expanded value.
 If @var{pattern} is omitted, it is treated like a @samp{?}, which matches
 every character.
 If @var{parameter} is @samp{@@} or @samp{*},
@@ -2106,7 +2110,7 @@ ls 2>&1 > @var{dirlist}
 @end example
 @noindent
 directs only the standard output to file @var{dirlist},
-because the standard error was duplicated as standard output
+because the standard error was made a copy of the standard output
 before the standard output was redirected to @var{dirlist}.
 
 Bash handles several filenames specially when they are used in
@@ -3169,7 +3173,7 @@ is executed whenever a simple command has a non-zero exit status,
 subject to the following conditions.
 The @code{ERR} trap is not executed if the failed command is part of the
 command list immediately following an @code{until} or @code{while} keyword,
-part of the test in an @code{if} statement,
+part of the test following the @code{if} or @code{elif} reserved words,
 part of a command executed in a @code{&&} or @code{||} list,
 or if the command's return
 status is being inverted using @code{!}.
@@ -3648,6 +3652,10 @@ Specify the number of lines read between each call to @var{callback}.
 
 If @option{-C} is specified without @option{-c}, 
 the default quantum is 5000.
+When @var{callback}  is evaluated, it is supplied the index of the next
+array element to be assigned as an additional argument.
+@var{callback} is evaluated after the line is read but before the 
+array element is assigned.
 
 If not supplied with an explicit origin, @code{mapfile} will clear @var{array}
 before assigning to it.
@@ -3765,6 +3773,18 @@ Read input from file descriptor @var{fd}.
 
 @end table
 
+@item readarray
+@btindex readarray
+@example
+readarray [-n @var{count}] [-O @var{origin}] [-s @var{count}] [-t] [-u @var{fd}] [
+-C @var{callback}] [-c @var{quantum}] [@var{array}]
+@end example
+Read lines from the standard input into array variable @var{array},
+or from file descriptor @var{fd}
+if the @option{-u} option is supplied.
+
+A synonym for @code{mapfile}.
+
 @item source
 @btindex source
 @example
@@ -3858,10 +3878,11 @@ The maximum number of pending signals.
 The maximum size that may be locked into memory.
 
 @item -m
-The maximum resident set size.
+The maximum resident set size (many systems do not honor this limit).
 
 @item -n
-The maximum number of open file descriptors.
+The maximum number of open file descriptors (most systems do not
+allow this value to be set).
 
 @item -p
 The pipe buffer size.
@@ -3966,18 +3987,25 @@ Cause the status of terminated background jobs to be reported
 immediately, rather than before printing the next primary prompt.
 
 @item -e
-Exit immediately if a simple command (@pxref{Simple Commands}) exits
-with a non-zero status, unless the command that fails is part of the
+Exit immediately if a pipeline (@pxref{Pipelines}), which may consist
+of a single simple command (@pxref{Simple Commands}),
+a subshell command enclosed in parentheses (@pxref{Command Grouping}),
+or one of the commands executed as part of a command list enclosed
+by braces (@pxref{Command Grouping})
+returns a non-zero status.
+The shell does not exit if the command that fails is part of the
 command list immediately following a @code{while} or @code{until} keyword,
 part of the test in an @code{if} statement,
-part of a command executed in a @code{&&} or @code{||b} list,
+part of any command executed in a @code{&&} or @code{||} list except
+the command following the final @code{&&} or @code{||},
 any command in a pipeline but the last,
-or if the command's return status is being inverted using @code{!}.
-Failing simple commands that are part of shell functions or command lists
-enclosed in braces or parentheses satisfying the above conditions do not
-cause the shell to exit.
+or if the command's return status is being inverted with @code{!}.
 A trap on @code{ERR}, if set, is executed before the shell exits.
 
+This option applies to the shell environment and each subshell environment
+separately (@pxref{Command Execution Environment}), and may cause
+subshells to exit before executing all the commands in the subshell.
+
 @item -f
 Disable file name generation (globbing).
 
@@ -4773,8 +4801,8 @@ even if it is subsequently reset.
 @item COMP_WORDS
 An array variable consisting of the individual
 words in the current command line.
-The words are split on shell metacharacters as the shell parser would
-separate them.
+The line is split into words as Readline would split it, using
+@code{COMP_WORDBREAKS} as described above.
 This variable is available only in shell functions invoked by the
 programmable completion facilities (@pxref{Programmable Completion}).
 
@@ -7318,7 +7346,7 @@ to reproduce it.
 the template it provides for filing a bug report.
 
 Please send all reports concerning this manual to
-@email{chet@@po.CWRU.Edu}.
+@email{chet.ramey@@case.edu}.
 
 @node Major Differences From The Bourne Shell
 @appendix Major Differences From The Bourne Shell
diff --git a/doc/builtins.0 b/doc/builtins.0
new file mode 100644 (file)
index 0000000..faf90a0
--- /dev/null
@@ -0,0 +1,1534 @@
+BASH_BUILTINS(1)                                              BASH_BUILTINS(1)
+
+
+
+N\bNA\bAM\bME\bE
+       bash,  :,  .,  [, alias, bg, bind, break, builtin, caller, cd, command,
+       compgen, complete, compopt,  continue,  declare,  dirs,  disown,  echo,
+       enable,  eval,  exec, exit, export, false, fc, fg, getopts, hash, help,
+       history, jobs, kill, let, local, logout, mapfile, popd, printf,  pushd,
+       pwd,  read, readonly, return, set, shift, shopt, source, suspend, test,
+       times, trap, true, type, typeset, ulimit, umask, unalias, unset, wait -
+       bash built-in commands, see b\bba\bas\bsh\bh(1)
+
+B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
+       Unless otherwise noted, each builtin command documented in this section
+       as accepting options preceded by -\b- accepts -\b--\b- to signify the end of the
+       options.   For  example,  the  :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt builtins do not
+       accept options.
+       :\b: [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
+              No effect; the command does nothing beyond  expanding  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
+              and  performing any specified redirections.  A zero exit code is
+              returned.
+
+        .\b.  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
+       s\bso\bou\bur\brc\bce\be _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
+              Read and execute commands from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  in  the  current  shell
+              environment  and return the exit status of the last command exe-
+              cuted from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.  If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be does not contain a slash, file
+              names  in  P\bPA\bAT\bTH\bH  are used to find the directory containing _\bf_\bi_\bl_\be_\b-
+              _\bn_\ba_\bm_\be.  The file searched for in P\bPA\bAT\bTH\bH  need  not  be  executable.
+              When  b\bba\bas\bsh\bh  is  not  in  _\bp_\bo_\bs_\bi_\bx  _\bm_\bo_\bd_\be,  the  current directory is
+              searched if no file is found in P\bPA\bAT\bTH\bH.  If the s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh  option
+              to  the  s\bsh\bho\bop\bpt\bt  builtin  command  is turned off, the P\bPA\bAT\bTH\bH is not
+              searched.  If any _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs are supplied, they become the  posi-
+              tional  parameters  when  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  is  executed.  Otherwise the
+              positional parameters are unchanged.  The return status  is  the
+              status  of  the  last  command exited within the script (0 if no
+              commands are executed), and false if _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is  not  found  or
+              cannot be read.
+
+       a\bal\bli\bia\bas\bs [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+              A\bAl\bli\bia\bas\bs with no arguments or with the -\b-p\bp option prints the list of
+              aliases in the form a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be on standard  output.   When
+              arguments  are supplied, an alias is defined for each _\bn_\ba_\bm_\be whose
+              _\bv_\ba_\bl_\bu_\be is given.  A trailing space in  _\bv_\ba_\bl_\bu_\be causes the next word
+              to be checked for alias substitution when the alias is expanded.
+              For each _\bn_\ba_\bm_\be in the argument list for which no  _\bv_\ba_\bl_\bu_\be  is  sup-
+              plied,  the  name  and  value  of  the  alias is printed.  A\bAl\bli\bia\bas\bs
+              returns true unless a _\bn_\ba_\bm_\be is given for which no alias has  been
+              defined.
+
+       b\bbg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
+              Resume  each  suspended  job _\bj_\bo_\bb_\bs_\bp_\be_\bc in the background, as if it
+              had been started with &\b&.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell's
+              notion  of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used.  b\bbg\bg _\bj_\bo_\bb_\bs_\bp_\be_\bc returns 0 unless
+              run when job control is disabled or, when run with  job  control
+              enabled,  any  specified  _\bj_\bo_\bb_\bs_\bp_\be_\bc  was  not found or was started
+              without job control.
+
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-l\blp\bps\bsv\bvP\bPS\bSV\bV]
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-q\bq _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-u\bu _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-r\br _\bk_\be_\by_\bs_\be_\bq]
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-x\bx _\bk_\be_\by_\bs_\be_\bq:_\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
+       b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] _\bk_\be_\by_\bs_\be_\bq:_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
+       b\bbi\bin\bnd\bd _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
+              Display current r\bre\bea\bad\bdl\bli\bin\bne\be key and function bindings, bind  a  key
+              sequence  to  a  r\bre\bea\bad\bdl\bli\bin\bne\be  function  or macro, or set a r\bre\bea\bad\bdl\bli\bin\bne\be
+              variable.  Each non-option argument is a  command  as  it  would
+              appear  in  _\b._\bi_\bn_\bp_\bu_\bt_\br_\bc, but each binding or command must be passed
+              as a separate argument; e.g.,  '"\C-x\C-r":  re-read-init-file'.
+              Options, if supplied, have the following meanings:
+              -\b-m\bm _\bk_\be_\by_\bm_\ba_\bp
+                     Use _\bk_\be_\by_\bm_\ba_\bp as the keymap to be affected by the subsequent
+                     bindings.  Acceptable _\bk_\be_\by_\bm_\ba_\bp names are _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\b-
+                     _\bd_\ba_\br_\bd_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b,  _\bv_\bi_\b, _\bv_\bi_\b-_\bm_\bo_\bv_\be_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd,
+                     and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.  _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs  is
+                     equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd.
+              -\b-l\bl     List the names of all r\bre\bea\bad\bdl\bli\bin\bne\be functions.
+              -\b-p\bp     Display  r\bre\bea\bad\bdl\bli\bin\bne\be  function  names and bindings in such a
+                     way that they can be re-read.
+              -\b-P\bP     List current r\bre\bea\bad\bdl\bli\bin\bne\be function names and bindings.
+              -\b-s\bs     Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to  macros  and  the
+                     strings  they  output  in such a way that they can be re-
+                     read.
+              -\b-S\bS     Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to  macros  and  the
+                     strings they output.
+              -\b-v\bv     Display  r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values in such a way
+                     that they can be re-read.
+              -\b-V\bV     List current r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values.
+              -\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+                     Read key bindings from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
+              -\b-q\bq _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
+                     Query about which keys invoke the named _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn.
+              -\b-u\bu _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
+                     Unbind all keys bound to the named _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn.
+              -\b-r\br _\bk_\be_\by_\bs_\be_\bq
+                     Remove any current binding for _\bk_\be_\by_\bs_\be_\bq.
+              -\b-x\bx _\bk_\be_\by_\bs_\be_\bq:\b:_\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                     Cause _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd to be  executed  whenever  _\bk_\be_\by_\bs_\be_\bq  is
+                     entered.   When _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed, the shell sets
+                     the R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE variable to the contents of  the  r\bre\bea\bad\bd-\b-
+                     l\bli\bin\bne\be  line  buffer and the R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT variable to the
+                     current location of the insertion point.  If the executed
+                     command  changes  the  value  of  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE  or R\bRE\bEA\bAD\bD-\b-
+                     L\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT, those new values will  be  reflected  in  the
+                     editing state.
+
+              The  return value is 0 unless an unrecognized option is given or
+              an error occurred.
+
+       b\bbr\bre\bea\bak\bk [_\bn]
+              Exit from within a f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or s\bse\bel\ble\bec\bct\bt loop.  If  _\bn  is
+              specified,  break  _\bn  levels.   _\bn must be >= 1.  If _\bn is greater
+              than the number of enclosing  loops,  all  enclosing  loops  are
+              exited.   The  return value is 0 unless _\bn is not greater than or
+              equal to 1.
+
+       b\bbu\bui\bil\blt\bti\bin\bn _\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
+              Execute the specified shell builtin, passing it  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs,  and
+              return its exit status.  This is useful when defining a function
+              whose name is the same as a shell builtin, retaining  the  func-
+              tionality of the builtin within the function.  The c\bcd\bd builtin is
+              commonly redefined this way.  The  return  status  is  false  if
+              _\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn is not a shell builtin command.
+
+       c\bca\bal\bll\ble\ber\br [_\be_\bx_\bp_\br]
+              Returns the context of any active subroutine call (a shell func-
+              tion or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins.   With-
+              out _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number and source filename of
+              the current subroutine call.  If a non-negative integer is  sup-
+              plied as _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number, subroutine name,
+              and source file corresponding to that position  in  the  current
+              execution  call  stack.  This extra information may be used, for
+              example, to print a stack trace.  The current frame is frame  0.
+              The  return  value is 0 unless the shell is not executing a sub-
+              routine call or _\be_\bx_\bp_\br does not correspond to a valid position  in
+              the call stack.
+
+       c\bcd\bd [-\b-L\bL|\b|-\b-P\bP] [_\bd_\bi_\br]
+              Change  the  current directory to _\bd_\bi_\br.  The variable H\bHO\bOM\bME\bE is the
+              default _\bd_\bi_\br.  The variable C\bCD\bDP\bPA\bAT\bTH\bH defines the  search  path  for
+              the  directory  containing  _\bd_\bi_\br.  Alternative directory names in
+              C\bCD\bDP\bPA\bAT\bTH\bH are separated by a colon (:).  A null directory  name  in
+              C\bCD\bDP\bPA\bAT\bTH\bH  is  the  same as the current directory, i.e., ``.\b.''.  If
+              _\bd_\bi_\br begins with a slash (/), then C\bCD\bDP\bPA\bAT\bTH\bH is  not  used.  The  -\b-P\bP
+              option  says  to use the physical directory structure instead of
+              following symbolic links (see also the  -\b-P\bP  option  to  the  s\bse\bet\bt
+              builtin command); the -\b-L\bL option forces symbolic links to be fol-
+              lowed.  An argument of -\b- is equivalent to $\b$O\bOL\bLD\bDP\bPW\bWD\bD.   If  a  non-
+              empty  directory  name from C\bCD\bDP\bPA\bAT\bTH\bH is used, or if -\b- is the first
+              argument, and the directory change is successful,  the  absolute
+              pathname of the new working directory is written to the standard
+              output.  The return value is true if the directory was  success-
+              fully changed; false otherwise.
+
+       c\bco\bom\bmm\bma\ban\bnd\bd [-\b-p\bpV\bVv\bv] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg ...]
+              Run  _\bc_\bo_\bm_\bm_\ba_\bn_\bd  with  _\ba_\br_\bg_\bs  suppressing  the normal shell function
+              lookup. Only builtin commands or commands found in the P\bPA\bAT\bTH\bH  are
+              executed.   If the -\b-p\bp option is given, the search for _\bc_\bo_\bm_\bm_\ba_\bn_\bd is
+              performed using a default value for P\bPA\bAT\bTH\bH that is  guaranteed  to
+              find  all  of  the  standard  utilities.  If either the -\b-V\bV or -\b-v\bv
+              option is supplied, a description of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is printed.  The -\b-v\bv
+              option  causes a single word indicating the command or file name
+              used to invoke _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be displayed; the -\b-V\bV option produces a
+              more  verbose  description.  If the -\b-V\bV or -\b-v\bv option is supplied,
+              the exit status is 0 if _\bc_\bo_\bm_\bm_\ba_\bn_\bd was found, and  1  if  not.   If
+              neither option is supplied and an error occurred or _\bc_\bo_\bm_\bm_\ba_\bn_\bd can-
+              not be found, the exit status is 127.  Otherwise, the exit  sta-
+              tus of the c\bco\bom\bmm\bma\ban\bnd\bd builtin is the exit status of _\bc_\bo_\bm_\bm_\ba_\bn_\bd.
+
+       c\bco\bom\bmp\bpg\bge\ben\bn [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bw_\bo_\br_\bd]
+              Generate  possible  completion matches for _\bw_\bo_\br_\bd according to the
+              _\bo_\bp_\bt_\bi_\bo_\bns, which may  be  any  option  accepted  by  the  c\bco\bom\bmp\bpl\ble\bet\bte\be
+              builtin  with  the exception of -\b-p\bp and -\b-r\br, and write the matches
+              to the standard output.  When using the -\b-F\bF or  -\b-C\bC  options,  the
+              various  shell  variables  set  by  the  programmable completion
+              facilities, while available, will not have useful values.
+
+              The matches will be generated in the same way  as  if  the  pro-
+              grammable  completion  code  had  generated them directly from a
+              completion specification with the same flags.  If _\bw_\bo_\br_\bd is speci-
+              fied, only those completions matching _\bw_\bo_\br_\bd will be displayed.
+
+              The  return  value is true unless an invalid option is supplied,
+              or no matches were generated.
+
+       c\bco\bom\bmp\bpl\ble\bet\bte\be [-\b-a\bab\bbc\bcd\bde\bef\bfg\bgj\bjk\bks\bsu\buv\bv] [-\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn] [-\b-E\bE] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn] [-\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt]
+       [-\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt] [-\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd]
+              [-\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt] [-\b-P\bP _\bp_\br_\be_\bf_\bi_\bx] [-\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be _\b._\b._\b.]
+       c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-p\bpr\br [-\b-E\bE] [_\bn_\ba_\bm_\be ...]
+              Specify how arguments to each _\bn_\ba_\bm_\be should be completed.  If  the
+              -\b-p\bp  option  is supplied, or if no options are supplied, existing
+              completion specifications are printed in a way that allows  them
+              to be reused as input.  The -\b-r\br option removes a completion spec-
+              ification for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are supplied, all  com-
+              pletion  specifications.   The  -\b-E\bE  option  indicates  that  the
+              remaining options and actions should apply to ``empty''  command
+              completion; that is, completion attempted on a blank line.
+
+              The  process  of  applying  these completion specifications when
+              word completion is  attempted  is  described  above  under  P\bPr\bro\bo-\b-
+              g\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn.
+
+              Other  options,  if specified, have the following meanings.  The
+              arguments to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary,  the
+              -\b-P\bP  and -\b-S\bS options) should be quoted to protect them from expan-
+              sion before the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin is invoked.
+              -\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn
+                      The _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn controls several aspects  of  the  comp-
+                      spec's  behavior beyond the simple generation of comple-
+                      tions.  _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn may be one of:
+                      b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt
+                              Perform the rest of the default b\bba\bas\bsh\bh completions
+                              if the compspec generates no matches.
+                      d\bde\bef\bfa\bau\bul\blt\bt Use  readline's  default  filename completion if
+                              the compspec generates no matches.
+                      d\bdi\bir\brn\bna\bam\bme\bes\bs
+                              Perform directory name completion if  the  comp-
+                              spec generates no matches.
+                      f\bfi\bil\ble\ben\bna\bam\bme\bes\bs
+                              Tell  readline that the compspec generates file-
+                              names, so it can perform  any  filename-specific
+                              processing  (like  adding  a  slash to directory
+                              names, quoting special characters, or  suppress-
+                              ing  trailing spaces).  Intended to be used with
+                              shell functions.
+                      n\bno\bos\bsp\bpa\bac\bce\be Tell  readline  not  to  append  a  space   (the
+                              default)  to  words  completed at the end of the
+                              line.
+                      p\bpl\blu\bus\bsd\bdi\bir\brs\bs
+                              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.
+              -\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn
+                      The  _\ba_\bc_\bt_\bi_\bo_\bn  may  be  one of the following to generate a
+                      list of possible completions:
+                      a\bal\bli\bia\bas\bs   Alias names.  May also be specified as -\b-a\ba.
+                      a\bar\brr\bra\bay\byv\bva\bar\br
+                              Array variable names.
+                      b\bbi\bin\bnd\bdi\bin\bng\bg R\bRe\bea\bad\bdl\bli\bin\bne\be key binding names.
+                      b\bbu\bui\bil\blt\bti\bin\bn Names of shell builtin commands.   May  also  be
+                              specified as -\b-b\bb.
+                      c\bco\bom\bmm\bma\ban\bnd\bd Command names.  May also be specified as -\b-c\bc.
+                      d\bdi\bir\bre\bec\bct\bto\bor\bry\by
+                              Directory names.  May also be specified as -\b-d\bd.
+                      d\bdi\bis\bsa\bab\bbl\ble\bed\bd
+                              Names of disabled shell builtins.
+                      e\ben\bna\bab\bbl\ble\bed\bd Names of enabled shell builtins.
+                      e\bex\bxp\bpo\bor\brt\bt  Names  of exported shell variables.  May also be
+                              specified as -\b-e\be.
+                      f\bfi\bil\ble\be    File names.  May also be specified as -\b-f\bf.
+                      f\bfu\bun\bnc\bct\bti\bio\bon\bn
+                              Names of shell functions.
+                      g\bgr\bro\bou\bup\bp   Group names.  May also be specified as -\b-g\bg.
+                      h\bhe\bel\blp\bpt\bto\bop\bpi\bic\bc
+                              Help topics as accepted by the h\bhe\bel\blp\bp builtin.
+                      h\bho\bos\bst\btn\bna\bam\bme\be
+                              Hostnames, as taken from the file  specified  by
+                              the H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE shell variable.
+                      j\bjo\bob\bb     Job  names,  if job control is active.  May also
+                              be specified as -\b-j\bj.
+                      k\bke\bey\byw\bwo\bor\brd\bd Shell reserved words.  May also be specified  as
+                              -\b-k\bk.
+                      r\bru\bun\bnn\bni\bin\bng\bg Names of running jobs, if job control is active.
+                      s\bse\ber\brv\bvi\bic\bce\be Service names.  May also be specified as -\b-s\bs.
+                      s\bse\bet\bto\bop\bpt\bt  Valid arguments for the -\b-o\bo  option  to  the  s\bse\bet\bt
+                              builtin.
+                      s\bsh\bho\bop\bpt\bt   Shell  option  names  as  accepted  by the s\bsh\bho\bop\bpt\bt
+                              builtin.
+                      s\bsi\big\bgn\bna\bal\bl  Signal names.
+                      s\bst\bto\bop\bpp\bpe\bed\bd Names of stopped jobs, if job control is active.
+                      u\bus\bse\ber\br    User names.  May also be specified as -\b-u\bu.
+                      v\bva\bar\bri\bia\bab\bbl\ble\be
+                              Names of all shell variables.  May also be spec-
+                              ified as -\b-v\bv.
+              -\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt
+                      The filename expansion pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt  is  expanded  to
+                      generate the possible completions.
+              -\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
+                      The  _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt  is  split using the characters in the I\bIF\bFS\bS
+                      special variable as delimiters, and each resultant  word
+                      is  expanded.   The possible completions are the members
+                      of the resultant list which match the  word  being  com-
+                      pleted.
+              -\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+                      _\bc_\bo_\bm_\bm_\ba_\bn_\bd  is  executed in a subshell environment, and its
+                      output is used as the possible completions.
+              -\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
+                      The shell function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in  the  current
+                      shell  environment.  When it finishes, the possible com-
+                      pletions are retrieved from the value of  the  C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
+                      array variable.
+              -\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt
+                      _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt  is  a pattern as used for filename expansion.
+                      It is applied to the list of possible completions gener-
+                      ated  by  the  preceding options and arguments, and each
+                      completion matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed from the  list.
+                      A  leading  !\b!  in _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt negates the pattern; in this
+                      case, any completion not matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is  removed.
+              -\b-P\bP _\bp_\br_\be_\bf_\bi_\bx
+                      _\bp_\br_\be_\bf_\bi_\bx  is  added at the beginning of each possible com-
+                      pletion after all other options have been applied.
+              -\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx
+                      _\bs_\bu_\bf_\bf_\bi_\bx is appended to each possible completion after all
+                      other options have been applied.
+
+              The  return  value is true unless an invalid option is supplied,
+              an option other than -\b-p\bp or -\b-r\br is supplied without a  _\bn_\ba_\bm_\be  argu-
+              ment,  an  attempt  is made to remove a completion specification
+              for a _\bn_\ba_\bm_\be for which no specification exists, or an error occurs
+              adding a completion specification.
+
+       c\bco\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be]
+              Modify  completion  options  for  each  _\bn_\ba_\bm_\be  according  to  the
+              _\bo_\bp_\bt_\bi_\bo_\bns, or for the currently-execution completion if  no  _\bn_\ba_\bm_\bes
+              are  supplied.   If no _\bo_\bp_\bt_\bi_\bo_\bns are given, display the completion
+              options for each _\bn_\ba_\bm_\be or the current completion.   The  possible
+              values  of  _\bo_\bp_\bt_\bi_\bo_\bn  are  those  valid  for  the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin
+              described above.
+
+       The return value is true unless  an  invalid  option  is  supplied,  an
+       attempt  is  made to modify the options for a _\bn_\ba_\bm_\be for which no comple-
+       tion specification exists, or an output error occurs.
+
+       c\bco\bon\bnt\bti\bin\bnu\bue\be [_\bn]
+              Resume the next iteration of the enclosing f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or
+              s\bse\bel\ble\bec\bct\bt  loop.   If  _\bn  is specified, resume at the _\bnth enclosing
+              loop.  _\bn must be >= 1.  If _\bn  is  greater  than  the  number  of
+              enclosing  loops,  the  last  enclosing  loop (the ``top-level''
+              loop) is resumed.  The return value is 0 unless _\bn is not greater
+              than or equal to 1.
+
+       d\bde\bec\bcl\bla\bar\bre\be [-\b-a\baA\bAf\bfF\bFi\bil\blr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+       t\bty\byp\bpe\bes\bse\bet\bt [-\b-a\baA\bAf\bfF\bFi\bil\blr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+              Declare  variables and/or give them attributes.  If no _\bn_\ba_\bm_\bes are
+              given then display the values of variables.  The -\b-p\bp option  will
+              display the attributes and values of each _\bn_\ba_\bm_\be.  When -\b-p\bp is used
+              with _\bn_\ba_\bm_\be arguments, additional options are ignored.  When -\b-p\bp is
+              supplied  without _\bn_\ba_\bm_\be arguments, it will display the attributes
+              and values of all variables having the attributes  specified  by
+              the  additional  options.  If no other options are supplied with
+              -\b-p\bp, d\bde\bec\bcl\bla\bar\bre\be will display the attributes and values of all  shell
+              variables.   The  -\b-f\bf  option  will restrict the display to shell
+              functions.  The -\b-F\bF option inhibits the display of function defi-
+              nitions;  only the function name and attributes are printed.  If
+              the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is enabled  using  s\bsh\bho\bop\bpt\bt,  the  source
+              file name and line number where the function is defined are dis-
+              played as well.   The  -\b-F\bF  option  implies  -\b-f\bf.   The  following
+              options  can  be  used  to restrict output to variables with the
+              specified attribute or to give variables attributes:
+              -\b-a\ba     Each _\bn_\ba_\bm_\be  is  an  indexed  array  variable  (see  A\bAr\brr\bra\bay\bys\bs
+                     above).
+              -\b-A\bA     Each  _\bn_\ba_\bm_\be  is  an associative array variable (see A\bAr\brr\bra\bay\bys\bs
+                     above).
+              -\b-f\bf     Use function names only.
+              -\b-i\bi     The variable is treated as an integer; arithmetic evalua-
+                     tion  (see  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN )\b) is performed when the
+                     variable is assigned a value.
+              -\b-l\bl     When the variable is assigned  a  value,  all  upper-case
+                     characters  are  converted to lower-case.  The upper-case
+                     attribute is disabled.
+              -\b-r\br     Make _\bn_\ba_\bm_\bes readonly.  These names cannot then be assigned
+                     values by subsequent assignment statements or unset.
+              -\b-t\bt     Give  each  _\bn_\ba_\bm_\be  the  _\bt_\br_\ba_\bc_\be attribute.  Traced functions
+                     inherit the D\bDE\bEB\bBU\bUG\bG  and  R\bRE\bET\bTU\bUR\bRN\bN  traps  from  the  calling
+                     shell.   The  trace  attribute has no special meaning for
+                     variables.
+              -\b-u\bu     When the variable is assigned  a  value,  all  lower-case
+                     characters  are  converted to upper-case.  The lower-case
+                     attribute is disabled.
+              -\b-x\bx     Mark _\bn_\ba_\bm_\bes for export  to  subsequent  commands  via  the
+                     environment.
+
+              Using  `+'  instead of `-' turns off the attribute instead, with
+              the exceptions that +\b+a\ba may not be used to destroy an array vari-
+              able  and  +\b+r\br w\bwi\bil\bll\bl n\bno\bot\bt r\bre\bem\bmo\bov\bve\be t\bth\bhe\be r\bre\bea\bad\bdo\bon\bnl\bly\by a\bat\btt\btr\bri\bib\bbu\but\bte\be.\b.  W\bWh\bhe\ben\bn u\bus\bse\bed\bd
+              i\bin\bn a\ba f\bfu\bun\bnc\bct\bti\bio\bon\bn,\b, m\bma\bak\bke\bes\bs e\bea\bac\bch\bh _\bn_\ba_\bm_\be l\blo\boc\bca\bal\bl,\b, a\bas\bs w\bwi\bit\bth\bh t\bth\bhe\be l\blo\boc\bca\bal\bl command.
+              If a variable name is followed by =_\bv_\ba_\bl_\bu_\be, the value of the vari-
+              able is set to _\bv_\ba_\bl_\bu_\be.  The return value is 0 unless  an  invalid
+              option  is  encountered, an attempt is made to define a function
+              using ``-f foo=bar'', an attempt is made to assign a value to  a
+              readonly  variable,  an  attempt is made to assign a value to an
+              array variable without using the compound assignment syntax (see
+              A\bAr\brr\bra\bay\bys\bs  above),  one  of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable
+              name, an attempt is made to turn off readonly status for a read-
+              only  variable,  an attempt is made to turn off array status for
+              an array variable, or an attempt is made to display a  non-exis-
+              tent function with -\b-f\bf.
+
+       d\bdi\bir\brs\bs [\b[+\b+_\bn]\b] [\b[-\b-_\bn]\b] [\b[-\b-c\bcp\bpl\blv\bv]\b]
+              Without  options,  displays  the  list  of  currently remembered
+              directories.  The default display  is  on  a  single  line  with
+              directory  names  separated by spaces.  Directories are added to
+              the list with  the  p\bpu\bus\bsh\bhd\bd  command;  the  p\bpo\bop\bpd\bd  command  removes
+              entries from the list.
+              +\b+_\bn     Displays the _\bnth entry counting from the left of the list
+                     shown by d\bdi\bir\brs\bs when invoked without options, starting with
+                     zero.
+              -\b-_\bn     Displays  the  _\bnth  entry  counting from the right of the
+                     list shown by d\bdi\bir\brs\bs when invoked without options, starting
+                     with zero.
+              -\b-c\bc     Clears  the  directory  stack  by  deleting  all  of  the
+                     entries.
+              -\b-l\bl     Produces a longer listing;  the  default  listing  format
+                     uses a tilde to denote the home directory.
+              -\b-p\bp     Print the directory stack with one entry per line.
+              -\b-v\bv     Print  the  directory stack with one entry per line, pre-
+                     fixing each entry with its index in the stack.
+
+              The return value is 0 unless an invalid option is supplied or  _\bn
+              indexes beyond the end of the directory stack.
+
+       d\bdi\bis\bso\bow\bwn\bn [-\b-a\bar\br] [-\b-h\bh] [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
+              Without  options,  each  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is  removed  from the table of
+              active jobs.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, and neither -\b-a\ba  n\bno\bor\br  -\b-r\br
+              i\bis\bs  s\bsu\bup\bpp\bpl\bli\bie\bed\bd,\b, t\bth\bhe\be s\bsh\bhe\bel\bll\bl'\b's\bs n\bno\bot\bti\bio\bon\bn o\bof\bf t\bth\bhe\be _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb i\bis\bs u\bus\bse\bed\bd.\b.  I\bIf\bf
+              t\bth\bhe\be -\b-h\bh o\bop\bpt\bti\bio\bon\bn i\bis\bs g\bgi\biv\bve\ben\bn,\b, e\bea\bac\bch\bh _\bj_\bo_\bb_\bs_\bp_\be_\bc is not removed from the ta-
+              ble,  but is marked so that S\bSI\bIG\bGH\bHU\bUP\bP is not sent to the job if the
+              shell receives a S\bSI\bIG\bGH\bHU\bUP\bP.  If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is present, and  neither
+              the  -\b-a\ba  nor the -\b-r\br option is supplied, the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used.
+              If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, the -\b-a\ba option means to remove or mark
+              all  jobs;  the  -\b-r\br  option without a _\bj_\bo_\bb_\bs_\bp_\be_\bc argument restricts
+              operation to running jobs.  The return value is 0 unless a  _\bj_\bo_\bb_\b-
+              _\bs_\bp_\be_\bc does not specify a valid job.
+
+       e\bec\bch\bho\bo [-\b-n\bne\beE\bE] [_\ba_\br_\bg ...]
+              Output  the  _\ba_\br_\bgs,  separated  by spaces, followed by a newline.
+              The return status is always 0.  If -\b-n\bn is specified, the trailing
+              newline  is  suppressed.  If the -\b-e\be option is given, interpreta-
+              tion of the following backslash-escaped characters  is  enabled.
+              The  -\b-E\bE option disables the interpretation of these escape char-
+              acters, even on systems where they are interpreted  by  default.
+              The  x\bxp\bpg\bg_\b_e\bec\bch\bho\bo  shell option may be used to dynamically determine
+              whether or not e\bec\bch\bho\bo expands these escape characters by  default.
+              e\bec\bch\bho\bo  does  not  interpret  -\b--\b- to mean the end of options.  e\bec\bch\bho\bo
+              interprets the following escape sequences:
+              \\b\a\ba     alert (bell)
+              \\b\b\bb     backspace
+              \\b\c\bc     suppress further output
+              \\b\e\be     an escape character
+              \\b\f\bf     form feed
+              \\b\n\bn     new line
+              \\b\r\br     carriage return
+              \\b\t\bt     horizontal tab
+              \\b\v\bv     vertical tab
+              \\b\\\b\     backslash
+              \\b\0\b0_\bn_\bn_\bn  the eight-bit character whose value is  the  octal  value
+                     _\bn_\bn_\bn (zero to three octal digits)
+              \\b\x\bx_\bH_\bH   the  eight-bit  character  whose value is the hexadecimal
+                     value _\bH_\bH (one or two hex digits)
+
+       e\ben\bna\bab\bbl\ble\be [-\b-a\ba] [-\b-d\bdn\bnp\bps\bs] [-\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [_\bn_\ba_\bm_\be ...]
+              Enable and disable builtin shell commands.  Disabling a  builtin
+              allows a disk command which has the same name as a shell builtin
+              to be executed without specifying a full pathname,  even  though
+              the  shell  normally searches for builtins before disk commands.
+              If -\b-n\bn is used, each  _\bn_\ba_\bm_\be  is  disabled;  otherwise,  _\bn_\ba_\bm_\be_\bs  are
+              enabled.  For example, to use the t\bte\bes\bst\bt binary found via the P\bPA\bAT\bTH\bH
+              instead of the shell builtin version, run  ``enable  -n  test''.
+              The  -\b-f\bf  option  means to load the new builtin command _\bn_\ba_\bm_\be from
+              shared object _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, on systems that support dynamic loading.
+              The  -\b-d\bd  option will delete a builtin previously loaded with -\b-f\bf.
+              If no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied,
+              a list of shell builtins is printed.  With no other option argu-
+              ments, the list consists of all enabled shell builtins.   If  -\b-n\bn
+              is  supplied, only disabled builtins are printed.  If -\b-a\ba is sup-
+              plied, the list printed includes all builtins, with  an  indica-
+              tion  of whether or not each is enabled.  If -\b-s\bs is supplied, the
+              output is restricted to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins.  The  return
+              value  is  0 unless a _\bn_\ba_\bm_\be is not a shell builtin or there is an
+              error loading a new builtin from a shared object.
+
+       e\bev\bva\bal\bl [_\ba_\br_\bg ...]
+              The _\ba_\br_\bgs are read and concatenated together into a  single  com-
+              mand.   This command is then read and executed by the shell, and
+              its exit status is returned as the value of e\bev\bva\bal\bl.  If there  are
+              no _\ba_\br_\bg_\bs, or only null arguments, e\bev\bva\bal\bl returns 0.
+
+       e\bex\bxe\bec\bc [-\b-c\bcl\bl] [-\b-a\ba _\bn_\ba_\bm_\be] [_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]]
+              If  _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell.  No new process
+              is created.  The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   If
+              the -\b-l\bl option is supplied, the shell places a dash at the begin-
+              ning of the zeroth argument passed to  _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   This  is  what
+              _\bl_\bo_\bg_\bi_\bn(1) does.  The -\b-c\bc option causes _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be executed with
+              an empty environment.  If -\b-a\ba is supplied, the shell passes  _\bn_\ba_\bm_\be
+              as the zeroth argument to the executed command.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd can-
+              not be executed for some reason, a non-interactive shell  exits,
+              unless  the  shell  option e\bex\bxe\bec\bcf\bfa\bai\bil\bl is enabled, in which case it
+              returns failure.  An interactive shell returns  failure  if  the
+              file cannot be executed.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redi-
+              rections take effect in the current shell, and the return status
+              is  0.  If there is a redirection error, the return status is 1.
+
+       e\bex\bxi\bit\bt [_\bn]
+              Cause the shell to exit with a status of _\bn.  If  _\bn  is  omitted,
+              the exit status is that of the last command executed.  A trap on
+              E\bEX\bXI\bIT\bT is executed before the shell terminates.
+
+       e\bex\bxp\bpo\bor\brt\bt [-\b-f\bfn\bn] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd]] ...
+       e\bex\bxp\bpo\bor\brt\bt -\b-p\bp
+              The supplied _\bn_\ba_\bm_\be_\bs are marked for automatic export to the  envi-
+              ronment  of subsequently executed commands.  If the -\b-f\bf option is
+              given, the _\bn_\ba_\bm_\be_\bs refer to functions.  If no _\bn_\ba_\bm_\be_\bs are given,  or
+              if  the  -\b-p\bp  option  is  supplied,  a list of all names that are
+              exported in this shell is printed.  The  -\b-n\bn  option  causes  the
+              export  property  to  be  removed from each _\bn_\ba_\bm_\be.  If a variable
+              name is followed by =_\bw_\bo_\br_\bd, the value of the variable is  set  to
+              _\bw_\bo_\br_\bd.   e\bex\bxp\bpo\bor\brt\bt  returns  an  exit  status of 0 unless an invalid
+              option is encountered, one of the _\bn_\ba_\bm_\be_\bs is  not  a  valid  shell
+              variable name, or -\b-f\bf is supplied with a _\bn_\ba_\bm_\be that is not a func-
+              tion.
+
+       f\bfc\bc [-\b-e\be _\be_\bn_\ba_\bm_\be] [-\b-l\bln\bnr\br] [_\bf_\bi_\br_\bs_\bt] [_\bl_\ba_\bs_\bt]
+       f\bfc\bc -\b-s\bs [_\bp_\ba_\bt=_\br_\be_\bp] [_\bc_\bm_\bd]
+              Fix Command.  In the first form, a range of commands from  _\bf_\bi_\br_\bs_\bt
+              to  _\bl_\ba_\bs_\bt  is selected from the history list.  _\bF_\bi_\br_\bs_\bt and _\bl_\ba_\bs_\bt may
+              be specified as a string (to locate the last  command  beginning
+              with  that  string)  or  as  a number (an index into the history
+              list, where a negative number is used as an offset from the cur-
+              rent command number).  If _\bl_\ba_\bs_\bt is not specified it is set to the
+              current command for listing (so that ``fc -l  -10''  prints  the
+              last 10 commands) and to _\bf_\bi_\br_\bs_\bt otherwise.  If _\bf_\bi_\br_\bs_\bt is not spec-
+              ified it is set to the previous command for editing and -16  for
+              listing.
+
+              The  -\b-n\bn option suppresses the command numbers when listing.  The
+              -\b-r\br option reverses the order of the commands.  If the -\b-l\bl  option
+              is  given,  the  commands are listed on standard output.  Other-
+              wise, the editor given by _\be_\bn_\ba_\bm_\be is invoked on a file  containing
+              those  commands.  If _\be_\bn_\ba_\bm_\be is not given, the value of the F\bFC\bCE\bED\bDI\bIT\bT
+              variable is used, and the value of E\bED\bDI\bIT\bTO\bOR\bR if F\bFC\bCE\bED\bDI\bIT\bT is not  set.
+              If  neither variable is set, is used.  When editing is complete,
+              the edited commands are echoed and executed.
+
+              In the second form, _\bc_\bo_\bm_\bm_\ba_\bn_\bd is re-executed after  each  instance
+              of  _\bp_\ba_\bt  is replaced by _\br_\be_\bp.  A useful alias to use with this is
+              ``r="fc -s"'', so that typing ``r cc''  runs  the  last  command
+              beginning with ``cc'' and typing ``r'' re-executes the last com-
+              mand.
+
+              If the first form is used, the  return  value  is  0  unless  an
+              invalid  option  is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt specify history
+              lines out of range.  If the -\b-e\be option is  supplied,  the  return
+              value is the value of the last command executed or failure if an
+              error occurs with the temporary file of commands.  If the second
+              form  is  used, the return status is that of the command re-exe-
+              cuted, unless _\bc_\bm_\bd does not specify  a  valid  history  line,  in
+              which case f\bfc\bc returns failure.
+
+       f\bfg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc]
+              Resume  _\bj_\bo_\bb_\bs_\bp_\be_\bc  in the foreground, and make it the current job.
+              If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell's notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb
+              is  used.   The  return value is that of the command placed into
+              the foreground, or failure if run when job control  is  disabled
+              or, when run with job control enabled, if _\bj_\bo_\bb_\bs_\bp_\be_\bc does not spec-
+              ify a valid job or _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies  a  job  that  was  started
+              without job control.
+
+       g\bge\bet\bto\bop\bpt\bts\bs _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg _\bn_\ba_\bm_\be [_\ba_\br_\bg_\bs]
+              g\bge\bet\bto\bop\bpt\bts\bs  is used by shell procedures to parse positional parame-
+              ters.  _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg contains the option  characters  to  be  recog-
+              nized;  if  a  character  is  followed by a colon, the option is
+              expected to have an argument, which should be separated from  it
+              by  white space.  The colon and question mark characters may not
+              be used as option characters.  Each time it is invoked,  g\bge\bet\bto\bop\bpt\bts\bs
+              places  the next option in the shell variable _\bn_\ba_\bm_\be, initializing
+              _\bn_\ba_\bm_\be if it does not exist, and the index of the next argument to
+              be processed into the variable O\bOP\bPT\bTI\bIN\bND\bD.  O\bOP\bPT\bTI\bIN\bND\bD is initialized to
+              1 each time the shell or a shell script  is  invoked.   When  an
+              option  requires  an argument, g\bge\bet\bto\bop\bpt\bts\bs places that argument into
+              the variable O\bOP\bPT\bTA\bAR\bRG\bG.  The shell does not reset O\bOP\bPT\bTI\bIN\bND\bD  automati-
+              cally;  it  must  be  manually  reset  between multiple calls to
+              g\bge\bet\bto\bop\bpt\bts\bs within the same shell invocation if a new set of parame-
+              ters is to be used.
+
+              When  the  end  of  options is encountered, g\bge\bet\bto\bop\bpt\bts\bs exits with a
+              return value greater than zero.  O\bOP\bPT\bTI\bIN\bND\bD is set to the  index  of
+              the first non-option argument, and n\bna\bam\bme\be is set to ?.
+
+              g\bge\bet\bto\bop\bpt\bts\bs  normally  parses the positional parameters, but if more
+              arguments are given in _\ba_\br_\bg_\bs, g\bge\bet\bto\bop\bpt\bts\bs parses those instead.
+
+              g\bge\bet\bto\bop\bpt\bts\bs can report errors in two ways.  If the  first  character
+              of  _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg  is  a  colon, _\bs_\bi_\bl_\be_\bn_\bt error reporting is used.  In
+              normal operation diagnostic messages are  printed  when  invalid
+              options  or  missing  option  arguments are encountered.  If the
+              variable O\bOP\bPT\bTE\bER\bRR\bR is set to 0, no  error  messages  will  be  dis-
+              played, even if the first character of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is not a colon.
+
+              If an invalid option is seen, g\bge\bet\bto\bop\bpt\bts\bs places ? into _\bn_\ba_\bm_\be and, if
+              not  silent,  prints  an  error  message  and unsets O\bOP\bPT\bTA\bAR\bRG\bG.  If
+              g\bge\bet\bto\bop\bpt\bts\bs is silent, the  option  character  found  is  placed  in
+              O\bOP\bPT\bTA\bAR\bRG\bG and no diagnostic message is printed.
+
+              If  a required argument is not found, and g\bge\bet\bto\bop\bpt\bts\bs is not silent,
+              a question mark (?\b?) is placed in _\bn_\ba_\bm_\be, O\bOP\bPT\bTA\bAR\bRG\bG is  unset,  and  a
+              diagnostic  message  is  printed.   If g\bge\bet\bto\bop\bpt\bts\bs is silent, then a
+              colon (:\b:) is placed in _\bn_\ba_\bm_\be and O\bOP\bPT\bTA\bAR\bRG\bG  is  set  to  the  option
+              character found.
+
+              g\bge\bet\bto\bop\bpt\bts\bs  returns true if an option, specified or unspecified, is
+              found.  It returns false if the end of options is encountered or
+              an error occurs.
+
+       h\bha\bas\bsh\bh [-\b-l\blr\br] [-\b-p\bp _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [-\b-d\bdt\bt] [_\bn_\ba_\bm_\be]
+              For  each  _\bn_\ba_\bm_\be, the full file name of the command is determined
+              by searching the directories in $\b$P\bPA\bAT\bTH\bH and remembered.  If the -\b-p\bp
+              option is supplied, no path search is performed, and _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is
+              used as the full file name of the command.  The -\b-r\br option causes
+              the  shell  to  forget  all remembered locations.  The -\b-d\bd option
+              causes the shell to forget the remembered location of each _\bn_\ba_\bm_\be.
+              If  the  -\b-t\bt  option is supplied, the full pathname to which each
+              _\bn_\ba_\bm_\be corresponds is printed.  If  multiple  _\bn_\ba_\bm_\be  arguments  are
+              supplied  with  -\b-t\bt,  the  _\bn_\ba_\bm_\be is printed before the hashed full
+              pathname.  The -\b-l\bl option causes output to be displayed in a for-
+              mat  that may be reused as input.  If no arguments are given, or
+              if only -\b-l\bl is supplied, information about remembered commands is
+              printed.   The  return status is true unless a _\bn_\ba_\bm_\be is not found
+              or an invalid option is supplied.
+
+       h\bhe\bel\blp\bp [-\b-d\bdm\bms\bs] [_\bp_\ba_\bt_\bt_\be_\br_\bn]
+              Display helpful information about builtin commands.  If  _\bp_\ba_\bt_\bt_\be_\br_\bn
+              is  specified, h\bhe\bel\blp\bp gives detailed help on all commands matching
+              _\bp_\ba_\bt_\bt_\be_\br_\bn; otherwise help for all the builtins and  shell  control
+              structures is printed.
+              -\b-d\bd     Display a short description of each _\bp_\ba_\bt_\bt_\be_\br_\bn
+               -\b-m\bm    Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
+                     format
+              -\b-s\bs     Display only a short usage synopsis for each _\bp_\ba_\bt_\bt_\be_\br_\bn
+       The return status is 0 unless no command matches _\bp_\ba_\bt_\bt_\be_\br_\bn.
+
+       h\bhi\bis\bst\bto\bor\bry\by [\b[_\bn]\b]
+       h\bhi\bis\bst\bto\bor\bry\by -\b-c\bc
+       h\bhi\bis\bst\bto\bor\bry\by -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
+       h\bhi\bis\bst\bto\bor\bry\by -\b-a\ban\bnr\brw\bw [_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be]
+       h\bhi\bis\bst\bto\bor\bry\by -\b-p\bp _\ba_\br_\bg [_\ba_\br_\bg _\b._\b._\b.]
+       h\bhi\bis\bst\bto\bor\bry\by -\b-s\bs _\ba_\br_\bg [_\ba_\br_\bg _\b._\b._\b.]
+              With no options, display the command history list with line num-
+              bers.  Lines listed with a *\b* have been modified.  An argument of
+              _\bn lists only the last _\bn lines.  If the shell variable  H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
+              F\bFO\bOR\bRM\bMA\bAT\bT  is  set  and not null, it is used as a format string for
+              _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to display the time stamp associated with each  dis-
+              played  history  entry.  No intervening blank is printed between
+              the formatted time stamp and the history line.  If  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  is
+              supplied,  it  is  used as the name of the history file; if not,
+              the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is used.  Options, if supplied,  have  the
+              following meanings:
+              -\b-c\bc     Clear the history list by deleting all the entries.
+              -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
+                     Delete the history entry at position _\bo_\bf_\bf_\bs_\be_\bt.
+              -\b-a\ba     Append  the  ``new'' history lines (history lines entered
+                     since the beginning of the current b\bba\bas\bsh\bh session)  to  the
+                     history file.
+              -\b-n\bn     Read  the history lines not already read from the history
+                     file into the current  history  list.   These  are  lines
+                     appended  to  the history file since the beginning of the
+                     current b\bba\bas\bsh\bh session.
+              -\b-r\br     Read the contents of the history file and use them as the
+                     current history.
+              -\b-w\bw     Write  the current history to the history file, overwrit-
+                     ing the history file's contents.
+              -\b-p\bp     Perform history substitution on the  following  _\ba_\br_\bg_\bs  and
+                     display  the  result  on  the  standard output.  Does not
+                     store the results in the history list.  Each _\ba_\br_\bg must  be
+                     quoted to disable normal history expansion.
+              -\b-s\bs     Store  the  _\ba_\br_\bg_\bs  in  the history list as a single entry.
+                     The last command in the history list  is  removed  before
+                     the _\ba_\br_\bg_\bs are added.
+
+              If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT is set, the time stamp information associ-
+              ated with each history entry is written  to  the  history  file,
+              marked  with  the  history  comment character.  When the history
+              file is read, lines beginning with the history comment character
+              followed  immediately  by  a digit are interpreted as timestamps
+              for the previous history line.  The return value is 0 unless  an
+              invalid  option is encountered, an error occurs while reading or
+              writing the history file, an invalid _\bo_\bf_\bf_\bs_\be_\bt is  supplied  as  an
+              argument to -\b-d\bd, or the history expansion supplied as an argument
+              to -\b-p\bp fails.
+
+       j\bjo\bob\bbs\bs [-\b-l\bln\bnp\bpr\brs\bs] [ _\bj_\bo_\bb_\bs_\bp_\be_\bc ... ]
+       j\bjo\bob\bbs\bs -\b-x\bx _\bc_\bo_\bm_\bm_\ba_\bn_\bd [ _\ba_\br_\bg_\bs ... ]
+              The first form lists the active jobs.  The options have the fol-
+              lowing meanings:
+              -\b-l\bl     List process IDs in addition to the normal information.
+              -\b-p\bp     List  only  the  process  ID  of  the job's process group
+                     leader.
+              -\b-n\bn     Display information only about  jobs  that  have  changed
+                     status  since the user was last notified of their status.
+              -\b-r\br     Restrict output to running jobs.
+              -\b-s\bs     Restrict output to stopped jobs.
+
+              If _\bj_\bo_\bb_\bs_\bp_\be_\bc is given, output is restricted to  information  about
+              that  job.   The  return status is 0 unless an invalid option is
+              encountered or an invalid _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied.
+
+              If the -\b-x\bx option is supplied, j\bjo\bob\bbs\bs replaces any _\bj_\bo_\bb_\bs_\bp_\be_\bc found in
+              _\bc_\bo_\bm_\bm_\ba_\bn_\bd  or  _\ba_\br_\bg_\bs  with  the corresponding process group ID, and
+              executes _\bc_\bo_\bm_\bm_\ba_\bn_\bd passing it _\ba_\br_\bg_\bs, returning its exit status.
+
+       k\bki\bil\bll\bl [-\b-s\bs _\bs_\bi_\bg_\bs_\bp_\be_\bc | -\b-n\bn _\bs_\bi_\bg_\bn_\bu_\bm | -\b-_\bs_\bi_\bg_\bs_\bp_\be_\bc] [_\bp_\bi_\bd | _\bj_\bo_\bb_\bs_\bp_\be_\bc] ...
+       k\bki\bil\bll\bl -\b-l\bl [_\bs_\bi_\bg_\bs_\bp_\be_\bc | _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs]
+              Send the signal named by _\bs_\bi_\bg_\bs_\bp_\be_\bc  or  _\bs_\bi_\bg_\bn_\bu_\bm  to  the  processes
+              named  by  _\bp_\bi_\bd or _\bj_\bo_\bb_\bs_\bp_\be_\bc.  _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a case-insensitive
+              signal name such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix)  or
+              a  signal  number; _\bs_\bi_\bg_\bn_\bu_\bm is a signal number.  If _\bs_\bi_\bg_\bs_\bp_\be_\bc is not
+              present, then S\bSI\bIG\bGT\bTE\bER\bRM\bM is assumed.  An argument of -\b-l\bl  lists  the
+              signal  names.   If any arguments are supplied when -\b-l\bl is given,
+              the names of the signals  corresponding  to  the  arguments  are
+              listed, and the return status is 0.  The _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs argument to
+              -\b-l\bl is a number specifying either a signal  number  or  the  exit
+              status  of  a process terminated by a signal.  k\bki\bil\bll\bl returns true
+              if at least one signal was successfully sent,  or  false  if  an
+              error occurs or an invalid option is encountered.
+
+       l\ble\bet\bt _\ba_\br_\bg [_\ba_\br_\bg ...]
+              Each _\ba_\br_\bg is an arithmetic expression to be evaluated (see A\bAR\bRI\bIT\bTH\bH-\b-
+              M\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN).  If the last _\ba_\br_\bg evaluates to 0, l\ble\bet\bt  returns
+              1; 0 is returned otherwise.
+
+       l\blo\boc\bca\bal\bl [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
+              For  each  argument, a local variable named _\bn_\ba_\bm_\be is created, and
+              assigned _\bv_\ba_\bl_\bu_\be.  The _\bo_\bp_\bt_\bi_\bo_\bn can be any of the  options  accepted
+              by d\bde\bec\bcl\bla\bar\bre\be.  When l\blo\boc\bca\bal\bl is used within a function, it causes the
+              variable _\bn_\ba_\bm_\be to have a visible scope restricted to  that  func-
+              tion and its children.  With no operands, l\blo\boc\bca\bal\bl writes a list of
+              local variables to the standard output.  It is an error  to  use
+              l\blo\boc\bca\bal\bl when not within a function.  The return status is 0 unless
+              l\blo\boc\bca\bal\bl is used outside a function, an invalid _\bn_\ba_\bm_\be  is  supplied,
+              or _\bn_\ba_\bm_\be is a readonly variable.
+
+       l\blo\bog\bgo\bou\but\bt Exit a login shell.
+
+       m\bma\bap\bpf\bfi\bil\ble\be  [-\b-n\bn  _\bc_\bo_\bu_\bn_\bt]  [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk]
+       [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
+       r\bre\bea\bad\bda\bar\brr\bra\bay\by  [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk]
+       [-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
+              Read lines from the standard input into array variable _\ba_\br_\br_\ba_\by, or
+              from file descriptor _\bf_\bd if the -\b-u\bu option is supplied.  The vari-
+              able  M\bMA\bAP\bPF\bFI\bIL\bLE\bE  is the default _\ba_\br_\br_\ba_\by.  Options, if supplied, have
+              the following meanings:
+              -\b-n\bn     Copy at most _\bc_\bo_\bu_\bn_\bt lines.  If _\bc_\bo_\bu_\bn_\bt is 0, all  lines  are
+                     copied.
+              -\b-O\bO     Begin  assigning  to  _\ba_\br_\br_\ba_\by at index _\bo_\br_\bi_\bg_\bi_\bn.  The default
+                     index is 0.
+              -\b-s\bs     Discard the first _\bc_\bo_\bu_\bn_\bt lines read.
+              -\b-t\bt     Remove a trailing line from each line read.
+              -\b-u\bu     Read lines from file descriptor _\bf_\bd instead of  the  stan-
+                     dard input.
+              -\b-C\bC     Evaluate  _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read.  The
+                     -\b-c\bc option specifies _\bq_\bu_\ba_\bn_\bt_\bu_\bm.
+              -\b-c\bc     Specify the number of lines read  between  each  call  to
+                     _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk.
+
+              If  -\b-C\bC  is  specified  without  -\b-c\bc, the default quantum is 5000.
+              When _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated, it is supplied the index of the next
+              array  element  to be assigned as an additional argument.  _\bc_\ba_\bl_\bl_\b-
+              _\bb_\ba_\bc_\bk is evaluated after the line is read but  before  the  array
+              element is assigned.
+
+              If  not  supplied  with  an  explicit origin, m\bma\bap\bpf\bfi\bil\ble\be will clear
+              _\ba_\br_\br_\ba_\by before assigning to it.
+
+              m\bma\bap\bpf\bfi\bil\ble\be returns successfully unless an invalid option or  option
+              argument is supplied, or _\ba_\br_\br_\ba_\by is invalid or unassignable.
+
+       p\bpo\bop\bpd\bd [-n\bn] [+_\bn] [-_\bn]
+              Removes  entries  from  the directory stack.  With no arguments,
+              removes the top directory from the stack, and performs a  c\bcd\bd  to
+              the new top directory.  Arguments, if supplied, have the follow-
+              ing meanings:
+              -\b-n\bn     Suppresses the normal change of directory  when  removing
+                     directories  from  the  stack,  so that only the stack is
+                     manipulated.
+              +\b+_\bn     Removes the _\bnth entry counting from the left of the  list
+                     shown  by  d\bdi\bir\brs\bs, starting with zero.  For example: ``popd
+                     +0'' removes the first directory, ``popd +1'' the second.
+              -\b-_\bn     Removes the _\bnth entry counting from the right of the list
+                     shown by d\bdi\bir\brs\bs, starting with zero.  For  example:  ``popd
+                     -0''  removes the last directory, ``popd -1'' the next to
+                     last.
+
+              If the p\bpo\bop\bpd\bd command is successful, a d\bdi\bir\brs\bs is performed as  well,
+              and  the  return  status is 0.  p\bpo\bop\bpd\bd returns false if an invalid
+              option is encountered, the directory stack is empty, a non-exis-
+              tent directory stack entry is specified, or the directory change
+              fails.
+
+       p\bpr\bri\bin\bnt\btf\bf [-\b-v\bv _\bv_\ba_\br] _\bf_\bo_\br_\bm_\ba_\bt [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
+              Write the formatted _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs to the standard output  under  the
+              control  of  the _\bf_\bo_\br_\bm_\ba_\bt.  The _\bf_\bo_\br_\bm_\ba_\bt is a character string which
+              contains three types of objects:  plain  characters,  which  are
+              simply  copied  to  standard output, character escape sequences,
+              which are converted and copied to the standard output, and  for-
+              mat  specifications,  each  of which causes printing of the next
+              successive _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.  In addition to the standard _\bp_\br_\bi_\bn_\bt_\bf(1) for-
+              mats,  %\b%b\bb  causes p\bpr\bri\bin\bnt\btf\bf to expand backslash escape sequences in
+              the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt (except that  \\b\c\bc  terminates  output,
+              backslashes in \\b\'\b', \\b\"\b", and \\b\?\b? are not removed, and octal escapes
+              beginning with \\b\0\b0 may contain up to four digits), and %\b%q\bq  causes
+              p\bpr\bri\bin\bnt\btf\bf to output the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in a format that can
+              be reused as shell input.
+
+              The -\b-v\bv option causes the output to be assigned to  the  variable
+              _\bv_\ba_\br rather than being printed to the standard output.
+
+              The  _\bf_\bo_\br_\bm_\ba_\bt  is  reused as necessary to consume all of the _\ba_\br_\bg_\bu_\b-
+              _\bm_\be_\bn_\bt_\bs.  If the _\bf_\bo_\br_\bm_\ba_\bt requires more _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs than are supplied,
+              the  extra  format  specifications  behave as if a zero value or
+              null string, as appropriate,  had  been  supplied.   The  return
+              value is zero on success, non-zero on failure.
+
+       p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [+_\bn] [-_\bn]
+       p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [_\bd_\bi_\br]
+              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, exchanges the top two directories
+              and returns 0, unless the directory stack is empty.   Arguments,
+              if supplied, have the following meanings:
+              -\b-n\bn     Suppresses  the  normal  change  of directory when adding
+                     directories to the stack,  so  that  only  the  stack  is
+                     manipulated.
+              +\b+_\bn     Rotates  the  stack  so  that the _\bnth directory (counting
+                     from the left of the list shown by  d\bdi\bir\brs\bs,  starting  with
+                     zero) is at the top.
+              -\b-_\bn     Rotates  the  stack  so  that the _\bnth directory (counting
+                     from the right of the list shown by d\bdi\bir\brs\bs,  starting  with
+                     zero) is at the top.
+              _\bd_\bi_\br    Adds _\bd_\bi_\br to the directory stack at the top, making it the
+                     new current working directory.
+
+              If the p\bpu\bus\bsh\bhd\bd command is successful, a d\bdi\bir\brs\bs is performed as well.
+              If  the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to _\bd_\bi_\br
+              fails.  With the second form, p\bpu\bus\bsh\bhd\bd returns 0 unless the  direc-
+              tory  stack  is empty, a non-existent directory stack element is
+              specified, or the directory change to the specified new  current
+              directory fails.
+
+       p\bpw\bwd\bd [-\b-L\bLP\bP]
+              Print  the  absolute  pathname of the current working directory.
+              The pathname printed contains no symbolic links if the -\b-P\bP option
+              is supplied or the -\b-o\bo p\bph\bhy\bys\bsi\bic\bca\bal\bl option to the s\bse\bet\bt builtin command
+              is enabled.  If the -\b-L\bL option is used, the pathname printed  may
+              contain  symbolic links.  The return status is 0 unless an error
+              occurs while reading the name of the  current  directory  or  an
+              invalid option is supplied.
+
+       r\bre\bea\bad\bd  [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b- _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt
+       _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
+              One  line  is  read  from  the  standard input, or from the file
+              descriptor _\bf_\bd supplied as an argument to the -\b-u\bu option, and  the
+              first word is assigned to the first _\bn_\ba_\bm_\be, the second word to the
+              second _\bn_\ba_\bm_\be, and so on, with leftover words and their  interven-
+              ing  separators  assigned  to the last _\bn_\ba_\bm_\be.  If there are fewer
+              words read from the input stream than names, the remaining names
+              are  assigned  empty  values.  The characters in I\bIF\bFS\bS are used to
+              split the line into words.  The backslash character (\\b\)  may  be
+              used  to  remove any special meaning for the next character read
+              and for line continuation.  Options, if supplied, have the  fol-
+              lowing meanings:
+              -\b-a\ba _\ba_\bn_\ba_\bm_\be
+                     The words are assigned to sequential indices of the array
+                     variable _\ba_\bn_\ba_\bm_\be, starting at 0.  _\ba_\bn_\ba_\bm_\be is unset before any
+                     new  values  are  assigned.   Other  _\bn_\ba_\bm_\be  arguments  are
+                     ignored.
+              -\b-d\bd _\bd_\be_\bl_\bi_\bm
+                     The first character of _\bd_\be_\bl_\bi_\bm is  used  to  terminate  the
+                     input line, rather than newline.
+              -\b-e\be     If the standard input is coming from a terminal, r\bre\bea\bad\bdl\bli\bin\bne\be
+                     (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE above) is used to obtain the  line.   Read-
+                     line  uses  the  current (or default, if line editing was
+                     not previously active) editing settings.
+              -\b-i\bi _\bt_\be_\bx_\bt
+                     If r\bre\bea\bad\bdl\bli\bin\bne\be is being used  to  read  the  line,  _\bt_\be_\bx_\bt  is
+                     placed into the editing buffer before editing begins.
+              -\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs
+                     r\bre\bea\bad\bd  returns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather than
+                     waiting for a complete line of input.
+              -\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt
+                     Display _\bp_\br_\bo_\bm_\bp_\bt on standard error, without a trailing new-
+                     line, before attempting to read any input.  The prompt is
+                     displayed only if input is coming from a terminal.
+              -\b-r\br     Backslash does not act as an escape character.  The back-
+                     slash  is considered to be part of the line.  In particu-
+                     lar, a backslash-newline pair may not be used as  a  line
+                     continuation.
+              -\b-s\bs     Silent mode.  If input is coming from a terminal, charac-
+                     ters are not echoed.
+              -\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt
+                     Cause r\bre\bea\bad\bd to time out and return failure if  a  complete
+                     line  of input is not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  _\bt_\bi_\bm_\be_\b-
+                     _\bo_\bu_\bt may be a decimal number  with  a  fractional  portion
+                     following  the decimal point.  This option is only effec-
+                     tive if r\bre\bea\bad\bd is reading input from a terminal,  pipe,  or
+                     other  special  file;  it has no effect when reading from
+                     regular files.  If _\bt_\bi_\bm_\be_\bo_\bu_\bt is 0, r\bre\bea\bad\bd returns success  if
+                     input  is  available  on  the  specified file descriptor,
+                     failure otherwise.  The exit status is greater  than  128
+                     if the timeout is exceeded.
+              -\b-u\bu _\bf_\bd  Read input from file descriptor _\bf_\bd.
+
+              If no _\bn_\ba_\bm_\be_\bs are supplied, the line read is assigned to the vari-
+              able R\bRE\bEP\bPL\bLY\bY.  The return code  is  zero,  unless  end-of-file  is
+              encountered,  r\bre\bea\bad\bd  times  out (in which case the return code is
+              greater than 128), or an invalid file descriptor is supplied  as
+              the argument to -\b-u\bu.
+
+       r\bre\bea\bad\bdo\bon\bnl\bly\by [-\b-a\baA\bAp\bpf\bf] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd] ...]
+              The  given  _\bn_\ba_\bm_\be_\bs are marked readonly; the values of these _\bn_\ba_\bm_\be_\bs
+              may not be changed by subsequent assignment.  If the  -\b-f\bf  option
+              is  supplied,  the  functions  corresponding to the _\bn_\ba_\bm_\be_\bs are so
+              marked.  The  -\b-a\ba  option  restricts  the  variables  to  indexed
+              arrays;  the  -\b-A\bA  option  restricts the variables to associative
+              arrays.  If no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option  is
+              supplied,  a  list  of  all  readonly  names is printed.  The -\b-p\bp
+              option causes output to be displayed in a  format  that  may  be
+              reused  as  input.  If a variable name is followed by =_\bw_\bo_\br_\bd, the
+              value of the variable is set to _\bw_\bo_\br_\bd.  The return  status  is  0
+              unless an invalid option is encountered, one of the _\bn_\ba_\bm_\be_\bs is not
+              a valid shell variable name, or -\b-f\bf is supplied with a _\bn_\ba_\bm_\be  that
+              is not a function.
+
+       r\bre\bet\btu\bur\brn\bn [_\bn]
+              Causes  a function to exit with the return value specified by _\bn.
+              If _\bn is omitted, the return status is that of the  last  command
+              executed  in the function body.  If used outside a function, but
+              during execution of a script by  the  .\b.   (s\bso\bou\bur\brc\bce\be)  command,  it
+              causes the shell to stop executing that script and return either
+              _\bn or the exit status of the last  command  executed  within  the
+              script  as  the  exit  status  of the script.  If used outside a
+              function and not during execution of a script by .\b.,  the  return
+              status is false.  Any command associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is
+              executed before execution resumes after the function or  script.
+
+       s\bse\bet\bt [-\b--\b-a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\ba_\br_\bg ...]
+       s\bse\bet\bt [+\b+a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\ba_\br_\bg ...]
+              Without  options,  the name and value of each shell variable are
+              displayed in a format that can be reused as input for setting or
+              resetting the currently-set variables.  Read-only variables can-
+              not be reset.  In _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, only shell variables  are  listed.
+              The  output  is  sorted  according  to the current locale.  When
+              options are specified, they set or unset shell attributes.   Any
+              arguments  remaining after option processing are treated as val-
+              ues for the positional parameters and are assigned, in order, to
+              $\b$1\b1,  $\b$2\b2,  .\b..\b..\b.   $\b$_\bn.   Options,  if specified, have the following
+              meanings:
+              -\b-a\ba      Automatically mark variables  and  functions  which  are
+                      modified  or  created  for  export to the environment of
+                      subsequent commands.
+              -\b-b\bb      Report the status of terminated background jobs  immedi-
+                      ately, rather than before the next primary prompt.  This
+                      is effective only when job control is enabled.
+              -\b-e\be      Exit immediately if a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd (see S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR
+                      above) exits with a non-zero status.  The shell does not
+                      exit if the command that fails is part  of  the  command
+                      list  immediately  following  a  w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword,
+                      part of the test in an i\bif\bf statement, part of  a  command
+                      executed  in  a &\b&&\b& or |\b||\b| list, any command in a pipeline
+                      but the last, or if the command's return value is  being
+                      inverted  via  !\b!.  Failing simple commands that are part
+                      of shell functions or command lists enclosed  in  braces
+                      or  parentheses  satisfying  the above conditions do not
+                      cause the shell to exit.  A trap on E\bER\bRR\bR, if set, is exe-
+                      cuted before the shell exits.
+              -\b-f\bf      Disable pathname expansion.
+              -\b-h\bh      Remember  the location of commands as they are looked up
+                      for execution.  This is enabled by default.
+              -\b-k\bk      All arguments in the form of assignment  statements  are
+                      placed  in the environment for a command, not just those
+                      that precede the command name.
+              -\b-m\bm      Monitor mode.  Job control is enabled.  This  option  is
+                      on  by  default  for  interactive shells on systems that
+                      support it (see J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL  above).   Background  pro-
+                      cesses  run  in a separate process group and a line con-
+                      taining their exit status is printed upon their  comple-
+                      tion.
+              -\b-n\bn      Read commands but do not execute them.  This may be used
+                      to check a shell script  for  syntax  errors.   This  is
+                      ignored by interactive shells.
+              -\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
+                      The _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be can be one of the following:
+                      a\bal\bll\ble\bex\bxp\bpo\bor\brt\bt
+                              Same as -\b-a\ba.
+                      b\bbr\bra\bac\bce\bee\bex\bxp\bpa\ban\bnd\bd
+                              Same as -\b-B\bB.
+                      e\bem\bma\bac\bcs\bs   Use  an  emacs-style command line editing inter-
+                              face.  This is enabled by default when the shell
+                              is interactive, unless the shell is started with
+                              the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option.  This also  affects  the
+                              editing interface used for r\bre\bea\bad\bd -\b-e\be.
+                      e\ber\brr\brt\btr\bra\bac\bce\be
+                              Same as -\b-E\bE.
+                      f\bfu\bun\bnc\bct\btr\bra\bac\bce\be
+                              Same as -\b-T\bT.
+                      e\ber\brr\bre\bex\bxi\bit\bt Same as -\b-e\be.
+                      h\bha\bas\bsh\bha\bal\bll\bl Same as -\b-h\bh.
+                      h\bhi\bis\bst\bte\bex\bxp\bpa\ban\bnd\bd
+                              Same as -\b-H\bH.
+                      h\bhi\bis\bst\bto\bor\bry\by Enable command history, as described above under
+                              H\bHI\bIS\bST\bTO\bOR\bRY\bY.  This option is on by default in inter-
+                              active shells.
+                      i\big\bgn\bno\bor\bre\bee\beo\bof\bf
+                              The   effect   is   as   if  the  shell  command
+                              ``IGNOREEOF=10'' had been  executed  (see  S\bSh\bhe\bel\bll\bl
+                              V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above).
+                      k\bke\bey\byw\bwo\bor\brd\bd Same as -\b-k\bk.
+                      m\bmo\bon\bni\bit\bto\bor\br Same as -\b-m\bm.
+                      n\bno\boc\bcl\blo\bob\bbb\bbe\ber\br
+                              Same as -\b-C\bC.
+                      n\bno\boe\bex\bxe\bec\bc  Same as -\b-n\bn.
+                      n\bno\bog\bgl\blo\bob\bb  Same as -\b-f\bf.
+                      n\bno\bol\blo\bog\bg   Currently ignored.
+                      n\bno\bot\bti\bif\bfy\by  Same as -\b-b\bb.
+                      n\bno\bou\bun\bns\bse\bet\bt Same as -\b-u\bu.
+                      o\bon\bne\bec\bcm\bmd\bd  Same as -\b-t\bt.
+                      p\bph\bhy\bys\bsi\bic\bca\bal\bl
+                              Same as -\b-P\bP.
+                      p\bpi\bip\bpe\bef\bfa\bai\bil\bl
+                              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\bpo\bos\bsi\bix\bx   Change  the  behavior  of b\bba\bas\bsh\bh where the default
+                              operation differs from  the  POSIX  standard  to
+                              match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
+                      p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
+                              Same as -\b-p\bp.
+                      v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
+                      v\bvi\bi      Use  a  vi-style command line editing interface.
+                              This also affects the editing interface used for
+                              r\bre\bea\bad\bd -\b-e\be.
+                      x\bxt\btr\bra\bac\bce\be  Same as -\b-x\bx.
+                      If -\b-o\bo is supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, the values of the
+                      current options are printed.  If +\b+o\bo is supplied with  no
+                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be,  a  series  of s\bse\bet\bt commands to recreate the
+                      current option settings is  displayed  on  the  standard
+                      output.
+              -\b-p\bp      Turn  on  _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd  mode.   In this mode, the $\b$E\bEN\bNV\bV and
+                      $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV files are not processed, shell  functions  are
+                      not  inherited  from the environment, and the S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
+                      C\bCD\bDP\bPA\bAT\bTH\bH, and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they appear in  the
+                      environment,  are ignored.  If the shell is started with
+                      the effective user (group) id not equal to the real user
+                      (group)  id,  and  the  -\b-p\bp option is not supplied, these
+                      actions are taken and the effective user id  is  set  to
+                      the  real  user  id.   If  the  -\b-p\bp option is supplied at
+                      startup, the effective user id is  not  reset.   Turning
+                      this  option off causes the effective user and group ids
+                      to be set to the real user and group ids.
+              -\b-t\bt      Exit after reading and executing one command.
+              -\b-u\bu      Treat unset variables as an error when performing param-
+                      eter  expansion.   If expansion is attempted on an unset
+                      variable, the shell prints an error message, and, if not
+                      interactive, exits with a non-zero status.
+              -\b-v\bv      Print shell input lines as they are read.
+              -\b-x\bx      After  expanding  each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br command, c\bca\bas\bse\be
+                      command, s\bse\bel\ble\bec\bct\bt command, or arithmetic f\bfo\bor\br command, dis-
+                      play  the expanded value of P\bPS\bS4\b4, followed by the command
+                      and its expanded arguments or associated word list.
+              -\b-B\bB      The shell performs brace expansion (see B\bBr\bra\bac\bce\be  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+                      above).  This is on by default.
+              -\b-C\bC      If  set,  b\bba\bas\bsh\bh  does not overwrite an existing file with
+                      the >\b>, >\b>&\b&, and <\b<>\b> redirection operators.   This  may  be
+                      overridden when creating output files by using the redi-
+                      rection operator >\b>|\b| instead of >\b>.
+              -\b-E\bE      If set, any trap on E\bER\bRR\bR is inherited by shell functions,
+                      command  substitutions,  and commands executed in a sub-
+                      shell environment.  The E\bER\bRR\bR trap is normally not  inher-
+                      ited in such cases.
+              -\b-H\bH      Enable !\b!  style history substitution.  This option is on
+                      by default when the shell is interactive.
+              -\b-P\bP      If set, the shell does not follow  symbolic  links  when
+                      executing  commands  such  as c\bcd\bd that change the current
+                      working  directory.   It  uses  the  physical  directory
+                      structure instead.  By default, b\bba\bas\bsh\bh follows the logical
+                      chain of  directories  when  performing  commands  which
+                      change the current directory.
+              -\b-T\bT      If  set,  any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are inherited by
+                      shell functions,  command  substitutions,  and  commands
+                      executed  in  a  subshell  environment.   The  D\bDE\bEB\bBU\bUG\bG and
+                      R\bRE\bET\bTU\bUR\bRN\bN traps are normally not inherited in such cases.
+              -\b--\b-      If no arguments follow this option, then the  positional
+                      parameters are unset.  Otherwise, the positional parame-
+                      ters are set to the _\ba_\br_\bgs, even if  some  of  them  begin
+                      with a -\b-.
+              -\b-       Signal  the  end of options, cause all remaining _\ba_\br_\bgs to
+                      be assigned to the positional parameters.  The -\b-x\bx and -\b-v\bv
+                      options are turned off.  If there are no _\ba_\br_\bgs, the posi-
+                      tional parameters remain unchanged.
+
+              The options are off by default unless otherwise noted.  Using  +
+              rather  than  -  causes  these  options  to  be turned off.  The
+              options can also be specified as arguments to an  invocation  of
+              the  shell.  The current set of options may be found in $\b$-\b-.  The
+              return status is always true unless an invalid option is encoun-
+              tered.
+
+       s\bsh\bhi\bif\bft\bt [_\bn]
+              The  positional  parameters  from _\bn+1 ... are renamed to $\b$1\b1 .\b..\b..\b..\b.
+              Parameters represented by the numbers  $\b$#\b#  down  to  $\b$#\b#-_\bn+1  are
+              unset.   _\bn  must  be a non-negative number less than or equal to
+              $\b$#\b#.  If _\bn is 0, no parameters are changed.  If _\bn is  not  given,
+              it  is assumed to be 1.  If _\bn is greater than $\b$#\b#, the positional
+              parameters are not changed.  The return status is  greater  than
+              zero if _\bn is greater than $\b$#\b# or less than zero; otherwise 0.
+
+       s\bsh\bho\bop\bpt\bt [-\b-p\bpq\bqs\bsu\bu] [-\b-o\bo] [_\bo_\bp_\bt_\bn_\ba_\bm_\be ...]
+              Toggle the values of variables controlling optional shell behav-
+              ior.  With no options, or with the -\b-p\bp option, a list of all set-
+              table options is displayed, with an indication of whether or not
+              each is set.  The -\b-p\bp option causes output to be displayed  in  a
+              form  that  may be reused as input.  Other options have the fol-
+              lowing meanings:
+              -\b-s\bs     Enable (set) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
+              -\b-u\bu     Disable (unset) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
+              -\b-q\bq     Suppresses normal output (quiet mode); the return  status
+                     indicates whether the _\bo_\bp_\bt_\bn_\ba_\bm_\be is set or unset.  If multi-
+                     ple _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are given with -\b-q\bq, the return  sta-
+                     tus  is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero other-
+                     wise.
+              -\b-o\bo     Restricts the values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those  defined  for
+                     the -\b-o\bo option to the s\bse\bet\bt builtin.
+
+              If  either  -\b-s\bs or -\b-u\bu is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments, the dis-
+              play is limited to those options which are set or unset, respec-
+              tively.   Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are disabled
+              (unset) by default.
+
+              The return status when listing options is zero if  all  _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
+              are  enabled,  non-zero  otherwise.   When  setting or unsetting
+              options, the return status is zero unless an _\bo_\bp_\bt_\bn_\ba_\bm_\be  is  not  a
+              valid shell option.
+
+              The list of s\bsh\bho\bop\bpt\bt options is:
+
+              a\bau\but\bto\boc\bcd\bd  If  set,  a command name that is the name of a directory
+                      is executed as if it were the argument to  the  c\bcd\bd  com-
+                      mand.  This option is only used by interactive shells.
+              c\bcd\bda\bab\bbl\ble\be_\b_v\bva\bar\brs\bs
+                      If  set,  an  argument to the c\bcd\bd builtin command that is
+                      not a directory is assumed to be the name of a  variable
+                      whose value is the directory to change to.
+              c\bcd\bds\bsp\bpe\bel\bll\bl If set, minor errors in the spelling of a directory com-
+                      ponent in a c\bcd\bd command will be  corrected.   The  errors
+                      checked for are transposed characters, a missing charac-
+                      ter, and one character too many.   If  a  correction  is
+                      found,  the corrected file name is printed, and the com-
+                      mand proceeds.  This option is only used by  interactive
+                      shells.
+              c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
+                      If set, b\bba\bas\bsh\bh checks that a command found in the hash ta-
+                      ble exists before trying to execute  it.   If  a  hashed
+                      command  no  longer exists, a normal path search is per-
+                      formed.
+              c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
+                      If set, b\bba\bas\bsh\bh 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 intervening command
+                      (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above).   The  shell  always  postpones
+                      exiting if any jobs are stopped.
+              c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be
+                      If  set,  b\bba\bas\bsh\bh checks the window size after each command
+                      and, if necessary, updates the values of L\bLI\bIN\bNE\bES\bS and  C\bCO\bOL\bL-\b-
+                      U\bUM\bMN\bNS\bS.
+              c\bcm\bmd\bdh\bhi\bis\bst\bt If  set,  b\bba\bas\bsh\bh attempts to save all lines of a multiple-
+                      line command in the same  history  entry.   This  allows
+                      easy re-editing of multi-line commands.
+              c\bco\bom\bmp\bpa\bat\bt3\b31\b1
+                      If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.1
+                      with respect to quoted arguments to the conditional com-
+                      mand's =~ operator.
+              d\bdi\bir\brs\bsp\bpe\bel\bll\bl
+                      If  set,  b\bba\bas\bsh\bh attempts spelling correction on directory
+                      names during word completion if the directory name  ini-
+                      tially supplied does not exist.
+              d\bdo\bot\btg\bgl\blo\bob\bb If  set, b\bba\bas\bsh\bh includes filenames beginning with a `.' in
+                      the results of pathname expansion.
+              e\bex\bxe\bec\bcf\bfa\bai\bil\bl
+                      If set, a non-interactive shell will not exit if it can-
+                      not  execute  the  file  specified as an argument to the
+                      e\bex\bxe\bec\bc builtin command.  An  interactive  shell  does  not
+                      exit if e\bex\bxe\bec\bc fails.
+              e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs
+                      If  set,  aliases  are expanded as described above under
+                      A\bAL\bLI\bIA\bAS\bSE\bES\bS.  This option is enabled by default for interac-
+                      tive shells.
+              e\bex\bxt\btd\bde\beb\bbu\bug\bg
+                      If  set,  behavior  intended  for  use  by  debuggers is
+                      enabled:
+                      1\b1.\b.     The -\b-F\bF option to the d\bde\bec\bcl\bla\bar\bre\be builtin displays the
+                             source file name and line number corresponding to
+                             each function name supplied as an argument.
+                      2\b2.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
+                             non-zero  value,  the next command is skipped and
+                             not executed.
+                      3\b3.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
+                             value  of 2, and the shell is executing in a sub-
+                             routine (a shell function or a shell script  exe-
+                             cuted  by  the  .\b.  or s\bso\bou\bur\brc\bce\be builtins), a call to
+                             r\bre\bet\btu\bur\brn\bn is simulated.
+                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as  described
+                             in their descriptions above.
+                      5\b5.\b.     Function  tracing  is enabled:  command substitu-
+                             tion, shell functions, and subshells invoked with
+                             (\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
+                      6\b6.\b.     Error  tracing is enabled:  command substitution,
+                             shell functions, and  subshells  invoked  with  (\b(
+                             _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bRO\bOR\bR trap.
+              e\bex\bxt\btg\bgl\blo\bob\bb If set, the extended pattern matching features described
+                      above under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn are enabled.
+              e\bex\bxt\btq\bqu\buo\bot\bte\be
+                      If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg"  quoting  is  performed
+                      within   $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}   expansions  enclosed  in  double
+                      quotes.  This option is enabled by default.
+              f\bfa\bai\bil\blg\bgl\blo\bob\bb
+                      If set, patterns which fail to  match  filenames  during
+                      pathname expansion result in an expansion error.
+              f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
+                      If  set,  the  suffixes  specified  by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
+                      variable cause words to be ignored when performing  word
+                      completion even if the ignored words are the only possi-
+                      ble  completions.   See  S\bSH\bHE\bEL\bLL\bL  V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS  above  for  a
+                      description  of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled by
+                      default.
+              g\bgl\blo\bob\bbs\bst\bta\bar\br
+                      If set, the pattern *\b**\b* used in a filename expansion con-
+                      text will match a files and zero or more directories and
+                      subdirectories.  If the pattern is followed by a /\b/, only
+                      directories and subdirectories match.
+              g\bgn\bnu\bu_\b_e\ber\brr\brf\bfm\bmt\bt
+                      If set, shell error messages are written in the standard
+                      GNU error message format.
+              h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd
+                      If set, the history list is appended to the  file  named
+                      by  the  value  of  the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE variable when the shell
+                      exits, rather than overwriting the file.
+              h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt
+                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given  the
+                      opportunity to re-edit a failed history substitution.
+              h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by
+                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of his-
+                      tory substitution are  not  immediately  passed  to  the
+                      shell  parser.   Instead,  the  resulting line is loaded
+                      into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer, allowing further modi-
+                      fication.
+              h\bho\bos\bst\btc\bco\bom\bmp\bpl\ble\bet\bte\be
+                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will attempt to
+                      perform hostname completion when a word containing  a  @\b@
+                      is   being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg  under  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
+                      above).  This is enabled by default.
+              h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt
+                      If set, b\bba\bas\bsh\bh will send S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an inter-
+                      active login shell exits.
+              i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs
+                      If set, allow a word beginning with #\b# to cause that word
+                      and all remaining characters on that line to be  ignored
+                      in  an  interactive  shell  (see  C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS above).  This
+                      option is enabled by default.
+              l\bli\bit\bth\bhi\bis\bst\bt If set, and the c\bcm\bmd\bdh\bhi\bis\bst\bt option  is  enabled,  multi-line
+                      commands are saved to the history with embedded newlines
+                      rather than using semicolon separators where possible.
+              l\blo\bog\bgi\bin\bn_\b_s\bsh\bhe\bel\bll\bl
+                      The shell sets this option if it is started as  a  login
+                      shell  (see  I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN  above).   The  value may not be
+                      changed.
+              m\bma\bai\bil\blw\bwa\bar\brn\bn
+                      If set, and a file that b\bba\bas\bsh\bh is checking  for  mail  has
+                      been  accessed  since  the last time it was checked, the
+                      message ``The mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been read''  is  dis-
+                      played.
+              n\bno\bo_\b_e\bem\bmp\bpt\bty\by_\b_c\bcm\bmd\bd_\b_c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
+                      If  set,  and  r\bre\bea\bad\bdl\bli\bin\bne\be  is  being  used,  b\bba\bas\bsh\bh will not
+                      attempt to search the P\bPA\bAT\bTH\bH for possible completions when
+                      completion is attempted on an empty line.
+              n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb
+                      If  set,  b\bba\bas\bsh\bh  matches  filenames in a case-insensitive
+                      fashion when performing pathname expansion (see P\bPa\bat\bth\bhn\bna\bam\bme\be
+                      E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
+              n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
+                      If  set,  b\bba\bas\bsh\bh  matches  patterns  in a case-insensitive
+                      fashion when performing matching while executing c\bca\bas\bse\be or
+                      [\b[[\b[ conditional commands.
+              n\bnu\bul\bll\blg\bgl\blo\bob\bb
+                      If  set,  b\bba\bas\bsh\bh allows patterns which match no files (see
+                      P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above) to expand to  a  null  string,
+                      rather than themselves.
+              p\bpr\bro\bog\bgc\bco\bom\bmp\bp
+                      If set, the programmable completion facilities (see P\bPr\bro\bo-\b-
+                      g\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn above) are enabled.  This option is
+                      enabled by default.
+              p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs
+                      If set, prompt strings undergo parameter expansion, com-
+                      mand  substitution,  arithmetic  expansion,  and   quote
+                      removal  after  being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
+                      above.  This option is enabled by default.
+              r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl
+                      The  shell  sets  this  option  if  it  is  started   in
+                      restricted mode (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).  The value
+                      may not be changed.  This is not reset when the  startup
+                      files  are  executed, allowing the startup files to dis-
+                      cover whether or not a shell is restricted.
+              s\bsh\bhi\bif\bft\bt_\b_v\bve\ber\brb\bbo\bos\bse\be
+                      If set, the s\bsh\bhi\bif\bft\bt builtin prints an error  message  when
+                      the shift count exceeds the number of positional parame-
+                      ters.
+              s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh
+                      If set, the s\bso\bou\bur\brc\bce\be (.\b.) builtin uses the value of P\bPA\bAT\bTH\bH to
+                      find  the  directory  containing the file supplied as an
+                      argument.  This option is enabled by default.
+              x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
+                      If  set,  the  e\bec\bch\bho\bo  builtin  expands   backslash-escape
+                      sequences by default.
+       s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
+              Suspend  the execution of this shell until it receives a S\bSI\bIG\bGC\bCO\bON\bNT\bT
+              signal.  A login shell cannot be suspended; the -\b-f\bf option can be
+              used to override this and force the suspension.  The return sta-
+              tus is 0 unless the shell is a login shell and -\b-f\bf  is  not  sup-
+              plied, or if job control is not enabled.
+       t\bte\bes\bst\bt _\be_\bx_\bp_\br
+       [\b[ _\be_\bx_\bp_\br ]\b]
+              Return  a  status  of  0 or 1 depending on the evaluation of the
+              conditional expression _\be_\bx_\bp_\br.  Each operator and operand must  be
+              a  separate argument.  Expressions are composed of the primaries
+              described above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.   t\bte\bes\bst\bt  does  not
+              accept any options, nor does it accept and ignore an argument of
+              -\b--\b- as signifying the end of options.
+
+              Expressions may  be  combined  using  the  following  operators,
+              listed  in  decreasing  order  of  precedence.   The  evaluation
+              depends on the number of arguments; see below.
+              !\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
+              (\b( _\be_\bx_\bp_\br )\b)
+                     Returns the value of _\be_\bx_\bp_\br.  This may be used to  override
+                     the normal precedence of operators.
+              _\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
+                     True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
+              _\be_\bx_\bp_\br_\b1 -o\bo _\be_\bx_\bp_\br_\b2
+                     True if either _\be_\bx_\bp_\br_\b1 or _\be_\bx_\bp_\br_\b2 is true.
+
+              t\bte\bes\bst\bt and [\b[ evaluate conditional expressions using a set of rules
+              based on the number of arguments.
+
+              0 arguments
+                     The expression is false.
+              1 argument
+                     The expression is true if and only if the argument is not
+                     null.
+              2 arguments
+                     If the first argument is !\b!, the expression is true if and
+                     only if the second argument is null.  If the first  argu-
+                     ment  is  one  of  the unary conditional operators listed
+                     above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS,  the  expression  is
+                     true if the unary test is true.  If the first argument is
+                     not a valid unary conditional operator, the expression is
+                     false.
+              3 arguments
+                     If  the  second argument is one of the binary conditional
+                     operators listed above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
+                     result of the expression is the result of the binary test
+                     using the first and third arguments as operands.  The  -\b-a\ba
+                     and  -\b-o\bo  operators  are  considered binary operators when
+                     there are three arguments.  If the first argument  is  !\b!,
+                     the  value is the negation of the two-argument test using
+                     the second and third arguments.  If the first argument is
+                     exactly (\b( and the third argument is exactly )\b), the result
+                     is the one-argument test of the second argument.   Other-
+                     wise, the expression is false.
+              4 arguments
+                     If the first argument is !\b!, the result is the negation of
+                     the three-argument expression composed of  the  remaining
+                     arguments.  Otherwise, the expression is parsed and eval-
+                     uated according to  precedence  using  the  rules  listed
+                     above.
+              5 or more arguments
+                     The  expression  is  parsed  and  evaluated  according to
+                     precedence using the rules listed above.
+
+       t\bti\bim\bme\bes\bs  Print the accumulated user and system times for  the  shell  and
+              for processes run from the shell.  The return status is 0.
+
+       t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\br_\bg] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
+              The  command  _\ba_\br_\bg  is  to  be  read  and executed when the shell
+              receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc.  If _\ba_\br_\bg is absent (and  there  is  a
+              single  _\bs_\bi_\bg_\bs_\bp_\be_\bc)  or  -\b-,  each  specified signal is reset to its
+              original disposition (the value it  had  upon  entrance  to  the
+              shell).   If _\ba_\br_\bg is the null string the signal specified by each
+              _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored by the shell and by the commands it  invokes.
+              If  _\ba_\br_\bg  is  not present and -\b-p\bp has been supplied, then the trap
+              commands associated with each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are  displayed.   If  no
+              arguments  are  supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
+              list of commands associated with each  signal.   The  -\b-l\bl  option
+              causes  the shell to print a list of signal names and their cor-
+              responding numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal  name
+              defined  in  <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>,  or  a signal number.  Signal names are
+              case insensitive and the SIG prefix is optional.  If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc
+              is  E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit from the shell.
+              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is executed before  every
+              _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command, _\bs_\be_\bl_\be_\bc_\bt command, every
+              arithmetic _\bf_\bo_\br command, and before the first command executes in
+              a  shell  function  (see  S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR  above).   Refer to the
+              description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option  to  the  s\bsh\bho\bop\bpt\bt  builtin  for
+              details  of  its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR,
+              the command _\ba_\br_\bg is executed whenever  a  simple  command  has  a
+              non-zero  exit status, subject to the following conditions.  The
+              E\bER\bRR\bR trap is not executed if the failed command is  part  of  the
+              command  list  immediately  following  a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword,
+              part of the test in an _\bi_\bf statement, part of a command  executed
+              in  a  &\b&&\b&  or |\b||\b| list, or if the command's return value is being
+              inverted via !\b!.  These are the same  conditions  obeyed  by  the
+              e\ber\brr\bre\bex\bxi\bit\bt option.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is exe-
+              cuted each time a shell function or a script executed with the .\b.
+              or  s\bso\bou\bur\brc\bce\be  builtins  finishes  executing.  Signals ignored upon
+              entry to the shell cannot be trapped or reset.  Trapped  signals
+              that are not being ignored are reset to their original values in
+              a child process when it is created.  The return status is  false
+              if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is invalid; otherwise t\btr\bra\bap\bp returns true.
+
+       t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
+              With  no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
+              used as a command name.  If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
+              string  which  is  one  of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
+              _\bf_\bi_\bl_\be if  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word,  function,
+              builtin,  or disk file, respectively.  If the _\bn_\ba_\bm_\be is not found,
+              then nothing  is  printed,  and  an  exit  status  of  false  is
+              returned.   If  the  -\b-p\bp  option is used, t\bty\byp\bpe\be either returns the
+              name of the disk file that would be executed if _\bn_\ba_\bm_\be were speci-
+              fied as a command name, or nothing if ``type -t name'' would not
+              return _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each  _\bn_\ba_\bm_\be,
+              even if ``type -t name'' would not return _\bf_\bi_\bl_\be.  If a command is
+              hashed, -\b-p\bp and -\b-P\bP print the hashed value,  not  necessarily  the
+              file that appears first in P\bPA\bAT\bTH\bH.  If the -\b-a\ba option is used, t\bty\byp\bpe\be
+              prints all of the places that contain an executable named  _\bn_\ba_\bm_\be.
+              This  includes  aliases  and  functions,  if  and only if the -\b-p\bp
+              option is not also used.  The table of hashed  commands  is  not
+              consulted  when  using -\b-a\ba.  The -\b-f\bf option suppresses shell func-
+              tion lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true  if
+              all of the arguments are found, false if any are not found.
+
+       u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bST\bTa\bab\bbc\bcd\bde\bef\bfi\bil\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bx [_\bl_\bi_\bm_\bi_\bt]]
+              Provides  control  over the resources available to the shell and
+              to processes started by it, on systems that allow such  control.
+              The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
+              for the given resource.  A hard limit cannot be increased  by  a
+              non-root  user  once it is set; a soft limit may be increased up
+              to the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is  speci-
+              fied, both the soft and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt
+              can be a number in the unit specified for the resource or one of
+              the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
+              current hard limit,  the  current  soft  limit,  and  no  limit,
+              respectively.   If  _\bl_\bi_\bm_\bi_\bt  is  omitted, the current value of the
+              soft limit of the resource is printed, unless the -\b-H\bH  option  is
+              given.  When more than one resource is specified, the limit name
+              and unit are printed before the value.  Other options are inter-
+              preted as follows:
+              -\b-a\ba     All current limits are reported
+              -\b-b\bb     The maximum socket buffer size
+              -\b-c\bc     The maximum size of core files created
+              -\b-d\bd     The maximum size of a process's data segment
+              -\b-e\be     The maximum scheduling priority ("nice")
+              -\b-f\bf     The  maximum  size  of files written by the shell and its
+                     children
+              -\b-i\bi     The maximum number of pending signals
+              -\b-l\bl     The maximum size that may be locked into memory
+              -\b-m\bm     The maximum resident set size
+              -\b-n\bn     The maximum number of open file descriptors (most systems
+                     do not allow this value to be set)
+              -\b-p\bp     The pipe size in 512-byte blocks (this may not be set)
+              -\b-q\bq     The maximum number of bytes in POSIX message queues
+              -\b-r\br     The maximum real-time scheduling priority
+              -\b-s\bs     The maximum stack size
+              -\b-t\bt     The maximum amount of cpu time in seconds
+              -\b-u\bu     The  maximum  number  of  processes available to a single
+                     user
+              -\b-v\bv     The maximum amount of virtual  memory  available  to  the
+                     shell
+              -\b-x\bx     The maximum number of file locks
+              -\b-T\bT     The maximum number of threads
+
+              If _\bl_\bi_\bm_\bi_\bt is given, it is the new value of the specified resource
+              (the -\b-a\ba option is display only).  If no option is given, then -\b-f\bf
+              is  assumed.  Values are in 1024-byte increments, except for -\b-t\bt,
+              which is in seconds, -\b-p\bp, which is in units of  512-byte  blocks,
+              and  -\b-T\bT,  -\b-b\bb, -\b-n\bn, and -\b-u\bu, which are unscaled values.  The return
+              status is 0 unless an invalid option or argument is supplied, or
+              an error occurs while setting a new limit.
+
+       u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
+              The user file-creation mask is set to _\bm_\bo_\bd_\be.  If _\bm_\bo_\bd_\be begins with
+              a digit, it is interpreted as an octal number; otherwise  it  is
+              interpreted  as a symbolic mode mask similar to that accepted by
+              _\bc_\bh_\bm_\bo_\bd(1).  If _\bm_\bo_\bd_\be is omitted, the current value of the mask  is
+              printed.   The  -\b-S\bS  option causes the mask to be printed in sym-
+              bolic form; the default output is an octal number.   If  the  -\b-p\bp
+              option is supplied, and _\bm_\bo_\bd_\be is omitted, the output is in a form
+              that may be reused as input.  The return status is 0 if the mode
+              was  successfully  changed  or if no _\bm_\bo_\bd_\be argument was supplied,
+              and false otherwise.
+
+       u\bun\bna\bal\bli\bia\bas\bs [-a\ba] [_\bn_\ba_\bm_\be ...]
+              Remove each _\bn_\ba_\bm_\be from the list of defined  aliases.   If  -\b-a\ba  is
+              supplied,  all  alias definitions are removed.  The return value
+              is true unless a supplied _\bn_\ba_\bm_\be is not a defined alias.
+
+       u\bun\bns\bse\bet\bt [-f\bfv\bv] [_\bn_\ba_\bm_\be ...]
+              For each _\bn_\ba_\bm_\be, remove the corresponding  variable  or  function.
+              If no options are supplied, or the -\b-v\bv option is given, each _\bn_\ba_\bm_\be
+              refers to a shell variable.   Read-only  variables  may  not  be
+              unset.   If  -\b-f\bf  is specified, each _\bn_\ba_\bm_\be refers to a shell func-
+              tion, and the function definition is removed.  Each unset  vari-
+              able  or function is removed from the environment passed to sub-
+              sequent commands.  If any of R\bRA\bAN\bND\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS,  L\bLI\bIN\bNE\bEN\bNO\bO,  H\bHI\bIS\bST\bTC\bCM\bMD\bD,
+              F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE, G\bGR\bRO\bOU\bUP\bPS\bS, or D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK are unset, they lose their special
+              properties, even if they are subsequently reset.  The exit  sta-
+              tus is true unless a _\bn_\ba_\bm_\be is readonly.
+
+       w\bwa\bai\bit\bt [_\bn _\b._\b._\b.]
+              Wait  for each specified process and return its termination sta-
+              tus.  Each _\bn may be a process ID or a job  specification;  if  a
+              job  spec  is  given,  all  processes in that job's pipeline are
+              waited for.  If _\bn is not given, all currently active child  pro-
+              cesses  are  waited  for,  and  the return status is zero.  If _\bn
+              specifies a non-existent process or job, the  return  status  is
+              127.   Otherwise,  the  return  status is the exit status of the
+              last process or job waited for.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       bash(1), sh(1)
+
+
+
+GNU Bash-4.0                      2004 Apr 20                 BASH_BUILTINS(1)
diff --git a/doc/builtins.ps b/doc/builtins.ps
new file mode 100644 (file)
index 0000000..7d00230
--- /dev/null
@@ -0,0 +1,2567 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.19.2
+%%CreationDate: Thu Feb  5 08:05:28 2009
+%%DocumentNeededResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%+ font Symbol
+%%+ font Courier
+%%DocumentSuppliedResources: procset grops 1.19 2
+%%Pages: 20
+%%PageOrder: Ascend
+%%DocumentMedia: Default 595 842 0 () ()
+%%Orientation: Portrait
+%%EndComments
+%%BeginDefaults
+%%PageMedia: Default
+%%EndDefaults
+%%BeginProlog
+%%BeginResource: procset grops 1.19 2
+%!PS-Adobe-3.0 Resource-ProcSet
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/Fr{
+setrgbcolor fill
+}bind def
+/setcmykcolor where{
+pop
+/Fk{
+setcmykcolor fill
+}bind def
+}if
+/Fg{
+setgray fill
+}bind def
+/FL/fill load def
+/LW/setlinewidth load def
+/Cr/setrgbcolor load def
+/setcmykcolor where{
+pop
+/Ck/setcmykcolor load def
+}if
+/Cg/setgray load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+/setpagedevice{}def
+}bind def
+/PEND{
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%%BeginFeature: *PageSize Default
+<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice
+%%EndFeature
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+%%IncludeResource: font Symbol
+%%IncludeResource: font Courier
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
+/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE
+/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10.95
+/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0 1.325
+(bash, :, ., [, alias, bg, bind, break, b)108 96 R 1.325(uiltin, caller)
+-.2 F 3.825(,c)-.4 G 1.324
+(d, command, compgen, complete, compopt, continue,)-3.825 F .903
+(declare, dirs, diso)108 108 R .903(wn, echo, enable, e)-.25 F -.25(va)
+-.25 G .904(l, e).25 F -.15(xe)-.15 G .904(c, e).15 F .904(xit, e)-.15 F
+.904(xport, f)-.15 F .904(alse, fc, fg, getopts, hash, help, history)-.1
+F 3.404(,j)-.65 G(obs,)-3.404 E .133(kill, let, local, logout, map\214l\
+e, popd, printf, pushd, pwd, read, readonly)108 120 R 2.633(,r)-.65 G
+.133(eturn, set, shift, shopt, source, sus-)-2.633 F .279(pend, test, t\
+imes, trap, true, type, typeset, ulimit, umask, unalias, unset, w)108
+132 R .279(ait \255 bash b)-.1 F .279(uilt-in commands, see)-.2 F/F2 10
+/Times-Bold@0 SF(bash)108 144 Q F0(\(1\))A F1 -.329(BA)72 160.8 S(SH B)
+.329 E(UIL)-.11 E(TIN COMMANDS)-1.007 E F0 .063
+(Unless otherwise noted, each b)108 172.8 R .062(uiltin command documen\
+ted in this section as accepting options preceded by)-.2 F F2<ad>108
+184.8 Q F0(accepts)3.8 E F2<adad>3.8 E F0 1.3
+(to signify the end of the options.)3.8 F -.15(Fo)6.3 G 3.8(re).15 G 1.3
+(xample, the)-3.95 F F2(:)3.8 E F0(,)A F2(true)3.8 E F0(,)A F2(false)3.8
+E F0 3.8(,a)C(nd)-3.8 E F2(test)3.8 E F0 -.2(bu)3.8 G 1.3(iltins do not)
+.2 F(accept options.)108 196.8 Q F2(:)108 214.8 Q F0([)2.5 E/F3 10
+/Times-Italic@0 SF(ar)A(guments)-.37 E F0(])A .452(No ef)144 226.8 R
+.452(fect; the command does nothing be)-.25 F .452(yond e)-.15 F
+(xpanding)-.15 E F3(ar)3.282 E(guments)-.37 E F0 .451(and performing an)
+3.221 F 2.951(ys)-.15 G(peci\214ed)-2.951 E 2.5(redirections. A)144
+238.8 R(zero e)2.5 E(xit code is returned.)-.15 E F2(.)110.5 255.6 Q F3
+(\214lename)6.666 E F0([)2.5 E F3(ar)A(guments)-.37 E F0(])A F2(sour)108
+267.6 Q(ce)-.18 E F3(\214lename)2.5 E F0([)2.5 E F3(ar)A(guments)-.37 E
+F0(])A 1.02(Read and e)144 279.6 R -.15(xe)-.15 G 1.02
+(cute commands from).15 F F3(\214lename)5.43 E F0 1.02
+(in the current shell en)3.7 F 1.02(vironment and return the e)-.4 F
+(xit)-.15 E 1.68(status of the last command e)144 291.6 R -.15(xe)-.15 G
+1.68(cuted from).15 F F3(\214lename)4.18 E F0 6.68(.I).18 G(f)-6.68 E F3
+(\214lename)6.09 E F0 1.68(does not contain a slash, \214le)4.36 F .608
+(names in)144 303.6 R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E
+F0 .608(are used to \214nd the directory containing)2.858 F F3
+(\214lename)3.108 E F0 5.608(.T).18 G .608(he \214le searched for in)
+-5.608 F F4 -.666(PA)3.108 G(TH)-.189 E F0 .833(need not be e)144 315.6
+R -.15(xe)-.15 G 3.333(cutable. When).15 F F2(bash)3.333 E F0 .832
+(is not in)3.333 F F3 .832(posix mode)3.332 F F0 3.332(,t)C .832
+(he current directory is searched if no)-3.332 F .981
+(\214le is found in)144 327.6 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
+/Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F2(sour)3.481 E(cepath)-.18
+E F0 .981(option to the)3.481 F F2(shopt)3.481 E F0 -.2(bu)3.481 G .981
+(iltin command is turned of).2 F .982(f, the)-.25 F F4 -.666(PA)144
+339.6 S(TH)-.189 E F0 .112(is not searched.)2.363 F .112(If an)5.112 F
+(y)-.15 E F3(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)2.612 F
+2.612(yb)-.15 G .112(ecome the positional parameters when)-2.612 F F3
+(\214lename)144 351.6 Q F0 .341(is e)2.841 F -.15(xe)-.15 G 2.841
+(cuted. Otherwise).15 F .341(the positional parameters are unchanged.)
+2.841 F .342(The return status is the)5.342 F .716
+(status of the last command e)144 363.6 R .716
+(xited within the script \(0 if no commands are e)-.15 F -.15(xe)-.15 G
+.716(cuted\), and f).15 F .715(alse if)-.1 F F3(\214lename)145.91 375.6
+Q F0(is not found or cannot be read.)2.68 E F2(alias)108 392.4 Q F0([)
+2.5 E F2<ad70>A F0 2.5(][)C F3(name)-2.5 E F0([=)A F3(value)A F0 2.5(].)
+C(..])-2.5 E F2(Alias)144 404.4 Q F0 2.724(with no ar)5.224 F 2.724
+(guments or with the)-.18 F F2<ad70>5.224 E F0 2.724
+(option prints the list of aliases in the form)5.224 F F2(alias)5.225 E
+F3(name)144 416.4 Q F0(=)A F3(value)A F0 .58(on standard output.)3.08 F
+.58(When ar)5.58 F .58
+(guments are supplied, an alias is de\214ned for each)-.18 F F3(name)
+3.08 E F0(whose)144 428.4 Q F3(value)2.895 E F0 .395(is gi)2.895 F -.15
+(ve)-.25 G 2.895(n. A).15 F .395(trailing space in)2.895 F F3(value)
+5.395 E F0 .395(causes the ne)2.895 F .395(xt w)-.15 F .395
+(ord to be check)-.1 F .395(ed for alias sub-)-.1 F .054
+(stitution when the alias is e)144 440.4 R 2.554(xpanded. F)-.15 F .054
+(or each)-.15 F F3(name)2.554 E F0 .054(in the ar)2.554 F .054
+(gument list for which no)-.18 F F3(value)2.554 E F0 .053(is sup-)2.553
+F 1.313(plied, the name and v)144 452.4 R 1.314
+(alue of the alias is printed.)-.25 F F2(Alias)6.314 E F0 1.314
+(returns true unless a)3.814 F F3(name)3.814 E F0 1.314(is gi)3.814 F
+-.15(ve)-.25 G 3.814(nf).15 G(or)-3.814 E
+(which no alias has been de\214ned.)144 464.4 Q F2(bg)108 481.2 Q F0([)
+2.5 E F3(jobspec)A F0(...])2.5 E .745(Resume each suspended job)144
+493.2 R F3(jobspec)3.245 E F0 .745
+(in the background, as if it had been started with)3.245 F F2(&)3.244 E
+F0 5.744(.I)C(f)-5.744 E F3(job-)4.984 E(spec)144 505.2 Q F0 .671
+(is not present, the shell')3.481 F 3.171(sn)-.55 G .672(otion of the)
+-3.171 F F3(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F2
+(bg)5.672 E F3(jobspec)4.912 E F0 .672(returns 0 unless run)3.482 F .419
+(when job control is disabled or)144 517.2 R 2.919(,w)-.4 G .419
+(hen run with job control enabled, an)-2.919 F 2.918(ys)-.15 G
+(peci\214ed)-2.918 E F3(jobspec)2.918 E F0 -.1(wa)2.918 G 2.918(sn).1 G
+(ot)-2.918 E(found or w)144 529.2 Q(as started without job control.)-.1
+E F2(bind)108 546 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5 G(ymap)-.2 E F0
+2.5(][)C F2(\255lpsvPSV)-2.5 E F0(])A F2(bind)108 558 Q F0([)2.5 E F2
+<ad6d>A F3 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F2<ad71>-2.5 E F3
+(function)2.5 E F0 2.5(][)C F2<ad75>-2.5 E F3(function)2.5 E F0 2.5(][)C
+F2<ad72>-2.5 E F3 -.1(ke)2.5 G(yseq)-.2 E F0(])A F2(bind)108 570 Q F0([)
+2.5 E F2<ad6d>A F3 -.1(ke)2.5 G(ymap)-.2 E F0(])A F2<ad66>2.5 E F3
+(\214lename)2.5 E F2(bind)108 582 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5 G
+(ymap)-.2 E F0(])A F2<ad78>2.5 E F3 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F3
+(shell\255command)A F2(bind)108 594 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5
+G(ymap)-.2 E F0(])A F3 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F3
+(function\255name)A F2(bind)108 606 Q F3 -.37(re)2.5 G
+(adline\255command).37 E F0 .238(Display current)144 618 R F2 -.18(re)
+2.738 G(adline).18 E F0 -.1(ke)2.738 G 2.738(ya)-.05 G .239
+(nd function bindings, bind a k)-2.738 F .539 -.15(ey s)-.1 H .239
+(equence to a).15 F F2 -.18(re)2.739 G(adline).18 E F0 .239(function or)
+2.739 F .476(macro, or set a)144 630 R F2 -.18(re)2.976 G(adline).18 E
+F0 -.25(va)2.976 G 2.976(riable. Each).25 F .476(non-option ar)2.976 F
+.475(gument is a command as it w)-.18 F .475(ould appear in)-.1 F F3
+(.inputr)144 642 Q(c)-.37 E F0 2.983(,b).31 G .484
+(ut each binding or command must be passed as a separate ar)-3.183 F
+.484(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
+(re\255read\255init\255\214le'. Options,)144 654 R(if supplied, ha)2.5 E
+.3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad6d>144 666
+Q F3 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 678 Q F3 -.1(ke)5.159 G(ymap)-.2
+E F0 2.659(as the k)5.349 F -.15(ey)-.1 G 2.658(map to be af).15 F 2.658
+(fected by the subsequent bindings.)-.25 F(Acceptable)7.658 E F3 -.1(ke)
+180 690 S(ymap)-.2 E F0 3.192(names are)5.882 F F3 3.192
+(emacs, emacs\255standar)5.692 F 3.193
+(d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E
+(vi\255command)180 702 Q F0 4.43(,a)C(nd)-4.43 E F3(vi\255insert)4.429 E
+F0(.).68 E F3(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G 1.929
+(lent to).25 F F3(vi\255command)4.429 E F0(;)A F3(emacs)4.429 E F0 1.929
+(is equi)4.429 F -.25(va)-.25 G 1.929(lent to).25 F F3(emacs\255standar)
+180 714 Q(d)-.37 E F0(.)A(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(1)
+203.725 E 0 Cg EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF<ad6c>144 84 Q F0(List the names of all)27.52 E F1 -.18
+(re)2.5 G(adline).18 E F0(functions.)2.5 E F1<ad70>144 96 Q F0(Display)
+24.74 E F1 -.18(re)2.5 G(adline).18 E F0
+(function names and bindings in such a w)2.5 E(ay that the)-.1 E 2.5(yc)
+-.15 G(an be re-read.)-2.5 E F1<ad50>144 108 Q F0(List current)24.19 E
+F1 -.18(re)2.5 G(adline).18 E F0(function names and bindings.)2.5 E F1
+<ad73>144 120 Q F0(Display)26.41 E F1 -.18(re)3.655 G(adline).18 E F0
+-.1(ke)3.655 G 3.655(ys)-.05 G 1.155
+(equences bound to macros and the strings the)-3.655 F 3.655(yo)-.15 G
+1.155(utput in such a)-3.655 F -.1(wa)180 132 S 2.5(yt).1 G(hat the)-2.5
+E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 144 Q F0(Display)24.74
+E F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)-.05 G
+(equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G
+(utput.)-2.5 E F1<ad76>144 156 Q F0(Display)25.3 E F1 -.18(re)2.5 G
+(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
+(alues in such a w)-.25 E(ay that the)-.1 E 2.5(yc)-.15 G
+(an be re-read.)-2.5 E F1<ad56>144 168 Q F0(List current)23.08 E F1 -.18
+(re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E(alues.)
+-.25 E F1<ad66>144 180 Q/F2 10/Times-Italic@0 SF(\214lename)2.5 E F0
+(Read k)180 192 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)
+2.5 E F0(.)A F1<ad71>144 204 Q F2(function)2.5 E F0(Query about which k)
+180 216 Q -.15(ey)-.1 G 2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4
+H(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 228 Q F2(function)
+2.5 E F0(Unbind all k)180 240 Q -.15(ey)-.1 G 2.5(sb).15 G
+(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 252 Q F2
+-.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 264 Q .3 -.15(ve a)-.15 H .3 -.15
+(ny c).15 H(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(.)A
+F1<ad78>144 276 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2(shell\255command)
+A F0(Cause)180 288 Q F2(shell\255command)4.325 E F0 1.825(to be e)4.325
+F -.15(xe)-.15 G 1.825(cuted whene).15 F -.15(ve)-.25 G(r).15 E F2 -.1
+(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F(When)6.825 E F2
+(shell\255com-)4.325 E(mand)180 300 Q F0 1.113(is e)3.613 F -.15(xe)-.15
+G 1.113(cuted, the shell sets the).15 F F1(READLINE_LINE)3.613 E F0 -.25
+(va)3.613 G 1.113(riable to the contents of the).25 F F1 -.18(re)180 312
+S(adline).18 E F0 .587(line b)3.087 F(uf)-.2 E .587(fer and the)-.25 F
+F1(READLINE_POINT)3.087 E F0 -.25(va)3.087 G .586
+(riable to the current location of the).25 F 1.24(insertion point.)180
+324 R 1.241(If the e)6.241 F -.15(xe)-.15 G 1.241
+(cuted command changes the v).15 F 1.241(alue of)-.25 F F1
+(READLINE_LINE)3.741 E F0(or)3.741 E F1(READLINE_POINT)180 336 Q F0 2.5
+(,t)C(hose ne)-2.5 E 2.5(wv)-.25 G
+(alues will be re\215ected in the editing state.)-2.75 E(The return v)
+144 352.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
+(ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5
+E F1(br)108 369.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .055
+(Exit from within a)144 381.6 R F1 -.25(fo)2.555 G(r).25 E F0(,)A F1
+(while)2.555 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1
+(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)2.555 E F0 .055
+(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G
+(ls.).15 E F2(n)5.414 E F0 .054(must be)2.794 F/F3 10/Symbol SF<b3>2.554
+E F0(1.)2.554 E(If)144 393.6 Q F2(n)3.074 E F0 .215(is greater than the\
+ number of enclosing loops, all enclosing loops are e)2.954 F 2.715
+(xited. The)-.15 F .215(return v)2.715 F(alue)-.25 E(is 0 unless)144
+405.6 Q F2(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F1 -.2
+(bu)108 422.4 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E
+F2(ar)A(guments)-.37 E F0(])A(Ex)144 434.4 Q .793
+(ecute the speci\214ed shell b)-.15 F .793(uiltin, passing it)-.2 F F2
+(ar)3.293 E(guments)-.37 E F0 3.293(,a).27 G .793(nd return its e)-3.293
+F .792(xit status.)-.15 F .792(This is useful)5.792 F .615
+(when de\214ning a function whose name is the same as a shell b)144
+446.4 R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144
+458.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0
+-.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E
+5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 470.4 Q(alse if)-.1
+E F2(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
+(uiltin command.)-.2 E F1(caller)108 487.2 Q F0([)2.5 E F2 -.2(ex)C(pr)
+.2 E F0(])A .253(Returns the conte)144 499.2 R .254(xt of an)-.15 F
+2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254
+(ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G
+.254(cuted with the).15 F F1(.)2.754 E F0(or)2.754 E F1(sour)144 511.2 Q
+(ce)-.18 E F0 -.2(bu)3.063 G 3.063(iltins. W).2 F(ithout)-.4 E F2 -.2
+(ex)3.062 G(pr).2 E F0(,)A F1(caller)3.062 E F0 .562
+(displays the line number and source \214lename of the current)3.062 F
+.253(subroutine call.)144 523.2 R .253(If a non-ne)5.253 F -.05(ga)-.15
+G(ti).05 E .553 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
+F F2 -.2(ex)2.753 G(pr).2 E F0(,)A F1(caller)2.753 E F0 .254
+(displays the line number)2.754 F 2.754(,s)-.4 G(ub-)-2.754 E 1.327(rou\
+tine name, and source \214le corresponding to that position in the curr\
+ent e)144 535.2 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)
+144 547.2 Q(xtra information may be used, for e)-.15 E .001
+(xample, to print a stack trace.)-.15 F .001(The current frame is frame)
+5.001 F 3.02(0. The)144 559.2 R .52(return v)3.02 F .52
+(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .519
+(cuting a subroutine call or).15 F F2 -.2(ex)3.019 G(pr).2 E F0 .519
+(does not corre-)3.019 F(spond to a v)144 571.2 Q
+(alid position in the call stack.)-.25 E F1(cd)108 588 Q F0([)2.5 E F1
+(\255L|-P)A F0 2.5(][)C F2(dir)-2.5 E F0(])A .21
+(Change the current directory to)144 600 R F2(dir)2.71 E F0 5.21(.T)C
+.21(he v)-5.21 F(ariable)-.25 E/F4 9/Times-Bold@0 SF(HOME)2.71 E F0 .21
+(is the def)2.46 F(ault)-.1 E F2(dir)2.71 E F0 5.21(.T).73 G .21(he v)
+-5.21 F(ariable)-.25 E F4(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .777
+(de\214nes the search path for the directory containing)144 612 R F2
+(dir)3.276 E F0 5.776(.A).73 G(lternati)-5.776 E 1.076 -.15(ve d)-.25 H
+.776(irectory names in).15 F F4(CDP)3.276 E -.855(AT)-.666 G(H).855 E F0
+.764(are separated by a colon \(:\).)144 624 R 3.264(An)5.764 G .764
+(ull directory name in)-3.264 F F4(CDP)3.264 E -.855(AT)-.666 G(H).855 E
+F0 .764(is the same as the current direc-)3.014 F(tory)144 636 Q 2.974
+(,i)-.65 G .474(.e., `)-2.974 F(`)-.74 E F1(.)A F0 -.74('')C 5.474(.I)
+.74 G(f)-5.474 E F2(dir)3.324 E F0(be)3.704 E .474
+(gins with a slash \(/\), then)-.15 F F4(CDP)2.974 E -.855(AT)-.666 G(H)
+.855 E F0 .473(is not used. The)2.724 F F1<ad50>2.973 E F0 .473
+(option says to use)2.973 F .579(the ph)144 648 R .579
+(ysical directory structure instead of follo)-.05 F .579
+(wing symbolic links \(see also the)-.25 F F1<ad50>3.08 E F0 .58
+(option to the)3.08 F F1(set)144 660 Q F0 -.2(bu)3.384 G .884
+(iltin command\); the).2 F F1<ad4c>3.384 E F0 .884
+(option forces symbolic links to be follo)3.384 F 3.384(wed. An)-.25 F
+(ar)3.383 E .883(gument of)-.18 F F1<ad>3.383 E F0(is)3.383 E(equi)144
+672 Q -.25(va)-.25 G .062(lent to).25 F F4($OLDPWD)2.562 E/F5 9
+/Times-Roman@0 SF(.)A F0 .062(If a non-empty directory name from)4.562 F
+F1(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .063(is used, or if)2.562 F F1
+<ad>2.563 E F0 .063(is the \214rst)2.563 F(ar)144 684 Q .116(gument, an\
+d the directory change is successful, the absolute pathname of the ne)
+-.18 F 2.615(ww)-.25 G .115(orking direc-)-2.715 F 1.164
+(tory is written to the standard output.)144 696 R 1.164(The return v)
+6.164 F 1.165(alue is true if the directory w)-.25 F 1.165
+(as successfully)-.1 F(changed; f)144 708 Q(alse otherwise.)-.1 E
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(2)203.725 E 0 Cg EP
+%%Page: 3 3
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(command)108 84 Q F0([)2.5 E F1(\255pVv)A F0(])A/F2 10
+/Times-Italic@0 SF(command)2.5 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5
+E(Run)144 96 Q F2(command)2.957 E F0(with)3.527 E F2(ar)3.087 E(gs)-.37
+E F0 .257(suppressing the normal shell function lookup. Only b)3.027 F
+.257(uiltin commands or)-.2 F .501(commands found in the)144 108 R/F3 9
+/Times-Bold@0 SF -.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15
+(xe)-.15 G 3.002(cuted. If).15 F(the)3.002 E F1<ad70>3.002 E F0 .502
+(option is gi)3.002 F -.15(ve)-.25 G .502(n, the search for).15 F F2
+(command)3.202 E F0(is)3.772 E .232(performed using a def)144 120 R .231
+(ault v)-.1 F .231(alue for)-.25 F F1 -.74(PA)2.731 G(TH)-.21 E F0 .231
+(that is guaranteed to \214nd all of the standard utilities.)2.731 F(If)
+5.231 E .174(either the)144 132 R F1<ad56>2.674 E F0(or)2.674 E F1<ad76>
+2.674 E F0 .175(option is supplied, a description of)2.674 F F2(command)
+2.875 E F0 .175(is printed.)3.445 F(The)5.175 E F1<ad76>2.675 E F0 .175
+(option causes)2.675 F 3.11(as)144 144 S .61(ingle w)-3.11 F .61
+(ord indicating the command or \214le name used to in)-.1 F -.2(vo)-.4 G
+-.1(ke).2 G F2(command)3.41 E F0 .61(to be displayed; the)3.88 F F1
+<ad56>144 156 Q F0 .249(option produces a more v)2.749 F .249
+(erbose description.)-.15 F .249(If the)5.249 F F1<ad56>2.749 E F0(or)
+2.749 E F1<ad76>2.75 E F0 .25(option is supplied, the e)2.75 F .25
+(xit status)-.15 F 1.005(is 0 if)144 168 R F2(command)3.705 E F0 -.1(wa)
+4.275 G 3.505(sf).1 G 1.005(ound, and 1 if not.)-3.505 F 1.004
+(If neither option is supplied and an error occurred or)6.005 F F2
+(command)144.2 180 Q F0 1.598(cannot be found, the e)4.868 F 1.599
+(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.599
+(xit status of the)-.15 F F1(command)4.099 E F0 -.2(bu)144 192 S
+(iltin is the e).2 E(xit status of)-.15 E F2(command)2.5 E F0(.).77 E F1
+(compgen)108 208.8 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d)
+-.37 E F0(])A .013(Generate possible completion matches for)144 220.8 R
+F2(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F2(option)2.513
+E F0 .013(s, which may be an)B 2.512(yo)-.15 G(ption)-2.512 E .981
+(accepted by the)144 232.8 R F1(complete)3.481 E F0 -.2(bu)3.481 G .981
+(iltin with the e).2 F .981(xception of)-.15 F F1<ad70>3.481 E F0(and)
+3.481 E F1<ad72>3.481 E F0 3.481(,a)C .982(nd write the matches to the)
+-3.481 F 1.415(standard output.)144 244.8 R 1.415(When using the)6.415 F
+F1<ad46>3.915 E F0(or)3.915 E F1<ad43>3.915 E F0 1.415(options, the v)
+3.915 F 1.415(arious shell v)-.25 F 1.415(ariables set by the pro-)-.25
+F(grammable completion f)144 256.8 Q(acilities, while a)-.1 E -.25(va)
+-.2 G(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)
+-.25 E .352(The matches will be generated in the same w)144 280.8 R .352
+(ay as if the programmable completion code had gen-)-.1 F .02(erated th\
+em directly from a completion speci\214cation with the same \215ags.)144
+292.8 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)
+2.52 F(those completions matching)144 304.8 Q F2(wor)2.5 E(d)-.37 E F0
+(will be displayed.)2.5 E(The return v)144 328.8 Q
+(alue is true unless an in)-.25 E -.25(va)-.4 G
+(lid option is supplied, or no matches were generated.).25 E F1
+(complete)108 345.6 Q F0([)3.033 E F1(\255abcdefgjksuv)A F0 3.033(][)C
+F1<ad6f>-3.033 E F2(comp-option)3.033 E F0 3.033(][)C F1<ad45>-3.033 E
+F0 3.033(][)C F1<ad41>-3.033 E F2(action)3.033 E F0 3.033(][)C F1<ad47>
+-3.033 E F2(globpat)3.033 E F0 3.034(][)C F1<ad57>-3.034 E F2(wor)3.034
+E(dlist)-.37 E F0 3.034(][)C F1<ad46>-3.034 E F2(function)3.034 E F0(])A
+([)108 357.6 Q F1<ad43>A F2(command)2.5 E F0(])A([)144 369.6 Q F1<ad58>A
+F2(\214lterpat)2.5 E F0 2.5(][)C F1<ad50>-2.5 E F2(pr)2.5 E(e\214x)-.37
+E F0 2.5(][)C F1<ad53>-2.5 E F2(suf)2.5 E<8c78>-.18 E F0(])A F2(name)2.5
+E F0([)2.5 E F2(name ...)A F0(])A F1(complete \255pr)108 381.6 Q F0([)
+2.5 E F1<ad45>A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .633
+(Specify ho)144 393.6 R 3.133(wa)-.25 G -.18(rg)-3.133 G .633
+(uments to each).18 F F2(name)3.133 E F0 .633(should be completed.)3.133
+F .634(If the)5.634 F F1<ad70>3.134 E F0 .634
+(option is supplied, or if no)3.134 F .14(options are supplied, e)144
+405.6 R .139(xisting completion speci\214cations are printed in a w)-.15
+F .139(ay that allo)-.1 F .139(ws them to be)-.25 F .31
+(reused as input.)144 417.6 R(The)5.31 E F1<ad72>2.81 E F0 .31
+(option remo)2.81 F -.15(ve)-.15 G 2.81(sac).15 G .31
+(ompletion speci\214cation for each)-2.81 F F2(name)2.81 E F0 2.81(,o)C
+1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F2(name)2.81 E F0(s)A 1.393
+(are supplied, all completion speci\214cations.)144 429.6 R(The)6.393 E
+F1<ad45>3.893 E F0 1.392(option indicates that the remaining options)
+3.892 F 1.304(and actions should apply to `)144 441.6 R(`empty')-.74 E
+3.804('c)-.74 G 1.304
+(ommand completion; that is, completion attempted on a)-3.804 F
+(blank line.)144 453.6 Q 1.438
+(The process of applying these completion speci\214cations when w)144
+477.6 R 1.437(ord completion is attempted is)-.1 F(described abo)144
+489.6 Q .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E
+(ogrammable Completion)-.18 E F0(.)A .555
+(Other options, if speci\214ed, ha)144 513.6 R .855 -.15(ve t)-.2 H .555
+(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555
+(guments to the)-.18 F F1<ad47>3.056 E F0(,)A F1<ad57>3.056 E F0 3.056
+(,a)C(nd)-3.056 E F1<ad58>3.056 E F0 .723(options \(and, if necessary)
+144 525.6 R 3.223(,t)-.65 G(he)-3.223 E F1<ad50>3.223 E F0(and)3.223 E
+F1<ad53>3.223 E F0 .722
+(options\) should be quoted to protect them from e)3.223 F(xpan-)-.15 E
+(sion before the)144 537.6 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
+(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 549.6 Q
+F2(comp-option)2.5 E F0(The)184 561.6 Q F2(comp-option)2.79 E F0 .291
+(controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
+.15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
+(yond the simple)-.15 F(generation of completions.)184 573.6 Q F2
+(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 585.6 Q F0
+.281(Perform the rest of the def)224 597.6 R(ault)-.1 E F1(bash)2.781 E
+F0 .281(completions if the compspec generates no)2.781 F(matches.)224
+609.6 Q F1(default)184 621.6 Q F0 2.875(Use readline')10 F 5.375(sd)-.55
+G(ef)-5.375 E 2.876
+(ault \214lename completion if the compspec generates no)-.1 F(matches.)
+224 633.6 Q F1(dir)184 645.6 Q(names)-.15 E F0(Perform directory name c\
+ompletion if the compspec generates no matches.)224 657.6 Q F1
+(\214lenames)184 669.6 Q F0 -.7(Te)224 681.6 S .137(ll readline that th\
+e compspec generates \214lenames, so it can perform an).7 F 2.636<798c>
+-.15 G(le-)-2.636 E .134(name\255speci\214c processing \(lik)224 693.6 R
+2.634(ea)-.1 G .134(dding a slash to directory names, quoting spe-)
+-2.634 F .45(cial characters, or suppressing trailing spaces\).)224
+705.6 R .45(Intended to be used with shell)5.45 F(functions.)224 717.6 Q
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(3)203.725 E 0 Cg EP
+%%Page: 4 4
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(nospace)184 84 Q F0 -.7(Te)6.11 G .22
+(ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1 F
+.22(ords completed at the end)-.1 F(of the line.)224 96 Q F1(plusdirs)
+184 108 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985
+(atches de\214ned by the compspec are generated, directory name)-4.485 F
+.583(completion is attempted and an)224 120 R 3.084(ym)-.15 G .584
+(atches are added to the results of the other)-3.084 F(actions.)224 132
+Q F1<ad41>144 144 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184 156
+Q F2(action)2.5 E F0(may be one of the follo)2.5 E
+(wing to generate a list of possible completions:)-.25 E F1(alias)184
+168 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
+E F0(.)A F1(arrayv)184 180 Q(ar)-.1 E F0(Array v)224 192 Q
+(ariable names.)-.25 E F1 4.7(binding Readline)184 204 R F0 -.1(ke)2.5 G
+2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 216 S(iltin).2 E F0
+(Names of shell b)11.85 E(uiltin commands.)-.2 E
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 228
+Q F0(Command names.)224 240 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 252 Q(ectory)-.18 E F0(Directory names.)224 264 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 276
+Q F0(Names of disabled shell b)224 288 Q(uiltins.)-.2 E F1(enabled)184
+300 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
+312 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
+-.25 F(also be speci\214ed as)2.5 E F1<ad65>2.5 E F0(.)A F1(\214le)184
+324 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F1<ad66>2.5
+E F0(.)A F1(function)184 336 Q F0(Names of shell functions.)224 348 Q F1
+(gr)184 360 Q(oup)-.18 E F0(Group names.)14.62 E
+(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A F1(helptopic)184
+372 Q F0(Help topics as accepted by the)224 384 Q F1(help)2.5 E F0 -.2
+(bu)2.5 G(iltin.).2 E F1(hostname)184 396 Q F0(Hostnames, as tak)224 408
+Q(en from the \214le speci\214ed by the)-.1 E/F3 9/Times-Bold@0 SF
+(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 420 Q F0
+(Job names, if job control is acti)26.11 E -.15(ve)-.25 G 5(.M).15 G
+(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 432 S
+(yw).1 E(ord)-.1 E F0(Shell reserv)224 444 Q(ed w)-.15 E 2.5(ords. May)
+-.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1(running)184
+456 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
+-.25 G(.).15 E F1(ser)184 468 Q(vice)-.1 E F0(Service names.)10.67 E
+(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 480 Q
+F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5 E
+F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
+(shopt)184 492 Q F0(Shell option names as accepted by the)16.66 E F1
+(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 504 Q F0
+(Signal names.)14.99 E F1(stopped)184 516 Q F0
+(Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.)
+.15 E F1(user)184 528 Q F0(User names.)21.67 E
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 540 S
+(riable).1 E F0(Names of all shell v)5.1 E 2.5(ariables. May)-.25 F
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad47>144 552 Q F2
+(globpat)2.5 E F0 1.411(The \214lename e)184 564 R 1.411
+(xpansion pattern)-.15 F F2(globpat)3.911 E F0 1.411(is e)3.911 F 1.411
+(xpanded to generate the possible comple-)-.15 F(tions.)184 576 Q F1
+<ad57>144 588 Q F2(wor)2.5 E(dlist)-.37 E F0(The)184 600 Q F2(wor)3.639
+E(dlist)-.37 E F0 1.14(is split using the characters in the)3.639 F F3
+(IFS)3.64 E F0 1.14(special v)3.39 F 1.14(ariable as delimiters, and)
+-.25 F 2.008(each resultant w)184 612 R 2.008(ord is e)-.1 F 4.508
+(xpanded. The)-.15 F 2.007(possible completions are the members of the)
+4.508 F(resultant list which match the w)184 624 Q(ord being completed.)
+-.1 E F1<ad43>144 636 Q F2(command)2.5 E(command)184 648 Q F0 1.055
+(is e)3.555 F -.15(xe)-.15 G 1.055(cuted in a subshell en).15 F 1.056
+(vironment, and its output is used as the possible)-.4 F(completions.)
+184 660 Q F1<ad46>144 672 Q F2(function)2.5 E F0 1.181
+(The shell function)184 684 R F2(function)3.681 E F0 1.181(is e)3.681 F
+-.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.68
+(vironment. When)-.4 F 1.18(it \214n-)3.68 F .932
+(ishes, the possible completions are retrie)184 696 R -.15(ve)-.25 G
+3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F F3
+(COMPREPL)3.432 E(Y)-.828 E F0(array)3.182 E -.25(va)184 708 S(riable.)
+.25 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(4)203.725 E 0 Cg EP
+%%Page: 5 5
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF<ad58>144 84 Q/F2 10/Times-Italic@0 SF(\214lterpat)2.5 E
+(\214lterpat)184 96 Q F0 .733(is a pattern as used for \214lename e)
+3.234 F 3.233(xpansion. It)-.15 F .733
+(is applied to the list of possible)3.233 F 1.596
+(completions generated by the preceding options and ar)184 108 R 1.596
+(guments, and each completion)-.18 F(matching)184 120 Q F2(\214lterpat)
+3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15 G .704
+(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
+(in)3.204 E F2(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15 G .704
+(tes the pattern;).05 F(in this case, an)184 132 Q 2.5(yc)-.15 G
+(ompletion not matching)-2.5 E F2(\214lterpat)2.5 E F0(is remo)2.5 E
+-.15(ve)-.15 G(d.).15 E F1<ad50>144 144 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
+184 156 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534
+(ginning of each possible completion after all other options ha)-.15 F
+-.15(ve)-.2 G(been applied.)184 168 Q F1<ad53>144 180 Q F2(suf)2.5 E
+2.81(\214x suf)-.18 F<8c78>-.18 E F0
+(is appended to each possible completion after all other options ha)2.5
+E .3 -.15(ve b)-.2 H(een applied.).15 E .467(The return v)144 196.8 R
+.467(alue is true unless an in)-.25 F -.25(va)-.4 G .466
+(lid option is supplied, an option other than).25 F F1<ad70>2.966 E F0
+(or)2.966 E F1<ad72>2.966 E F0 .466(is sup-)2.966 F 1.361
+(plied without a)144 208.8 R F2(name)3.861 E F0(ar)3.861 E 1.361
+(gument, an attempt is made to remo)-.18 F 1.662 -.15(ve a c)-.15 H
+1.362(ompletion speci\214cation for a).15 F F2(name)144 220.8 Q F0
+(for which no speci\214cation e)2.5 E
+(xists, or an error occurs adding a completion speci\214cation.)-.15 E
+F1(compopt)108 237.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
+F1(+o)-2.5 E F2(option)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A .447
+(Modify completion options for each)144 249.6 R F2(name)2.947 E F0 .447
+(according to the)2.947 F F2(option)2.947 E F0 .447
+(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .725
+(completion if no)144 261.6 R F2(name)3.225 E F0 3.225(sa)C .725
+(re supplied.)-3.225 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
+C .725(re gi)-3.225 F -.15(ve)-.25 G .726
+(n, display the completion options for).15 F(each)144 273.6 Q F2(name)
+3.224 E F0 .724(or the current completion.)3.224 F .724(The possible v)
+5.724 F .724(alues of)-.25 F F2(option)3.224 E F0 .724(are those v)3.224
+F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 285.6 Q F0 -.2(bu)
+2.5 G(iltin described abo).2 E -.15(ve)-.15 G(.).15 E .327(The return v)
+108 302.4 R .327(alue is true unless an in)-.25 F -.25(va)-.4 G .327
+(lid option is supplied, an attempt is made to modify the options for a)
+.25 F F2(name)108 314.4 Q F0(for which no completion speci\214cation e)
+2.5 E(xists, or an output error occurs.)-.15 E F1(continue)108 331.2 Q
+F0([)2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 343.2 R 1.754
+(xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A
+F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1
+(select)4.254 E F0 4.253(loop. If)4.254 F F2(n)4.613 E F0 1.753
+(is speci\214ed,)4.493 F 1.208(resume at the)144 355.2 R F2(n)3.709 E F0
+1.209(th enclosing loop.)B F2(n)6.569 E F0 1.209(must be)3.949 F/F3 10
+/Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F2(n)4.069 E F0 1.209
+(is greater than the number of enclosing)3.949 F .514
+(loops, the last enclosing loop \(the `)144 367.2 R(`top-le)-.74 E -.15
+(ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513
+(The return v)5.513 F .513(alue is 0 unless)-.25 F F2(n)3.013 E F0(is)
+3.013 E(not greater than or equal to 1.)144 379.2 Q F1(declar)108 396 Q
+(e)-.18 E F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1<ad70>-2.5 E F0
+2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E F1
+(typeset)108 408 Q F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1<ad70>
+-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])
+-2.5 E 1.264(Declare v)144 420 R 1.264(ariables and/or gi)-.25 F 1.564
+-.15(ve t)-.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E
+F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.765
+(nt).15 G 1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25
+(va)144 432 S 3.483(riables. The).25 F F1<ad70>3.483 E F0 .983
+(option will display the attrib)3.483 F .983(utes and v)-.2 F .982
+(alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1
+<ad70>3.482 E F0 .982(is used)3.482 F(with)144 444 Q F2(name)3.579 E F0
+(ar)3.579 E 1.079(guments, additional options are ignored.)-.18 F(When)
+6.079 E F1<ad70>3.579 E F0 1.079(is supplied without)3.579 F F2(name)
+3.58 E F0(ar)3.58 E(gu-)-.18 E .151(ments, it will display the attrib)
+144 456 R .151(utes and v)-.2 F .151(alues of all v)-.25 F .15
+(ariables ha)-.25 F .15(ving the attrib)-.2 F .15
+(utes speci\214ed by the)-.2 F .046(additional options.)144 468 R .046
+(If no other options are supplied with)5.046 F F1<ad70>2.547 E F0(,)A F1
+(declar)2.547 E(e)-.18 E F0 .047(will display the attrib)2.547 F .047
+(utes and)-.2 F -.25(va)144 480 S 1.363(lues of all shell v).25 F 3.863
+(ariables. The)-.25 F F1<ad66>3.863 E F0 1.362
+(option will restrict the display to shell functions.)3.863 F(The)6.362
+E F1<ad46>3.862 E F0 2.422(option inhibits the display of function de\
+\214nitions; only the function name and attrib)144 492 R 2.423(utes are)
+-.2 F 2.664(printed. If)144 504 R(the)2.664 E F1(extdeb)2.664 E(ug)-.2 E
+F0 .164(shell option is enabled using)2.664 F F1(shopt)2.664 E F0 2.664
+(,t)C .163(he source \214le name and line number)-2.664 F 1.382
+(where the function is de\214ned are displayed as well.)144 516 R(The)
+6.382 E F1<ad46>3.882 E F0 1.382(option implies)3.882 F F1<ad66>3.882 E
+F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .794
+(options can be used to restrict output to v)144 528 R .794
+(ariables with the speci\214ed attrib)-.25 F .793(ute or to gi)-.2 F
+1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 540 Q(utes:)-.2 E F1
+<ad61>144 552 Q F0(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E -.15
+(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5
+E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 564 Q F0(Each)23.08
+E F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v).15
+E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
+.15 E F1<ad66>144 576 Q F0(Use function names only)26.97 E(.)-.65 E F1
+<ad69>144 588 Q F0 .557(The v)27.52 F .558
+(ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25
+(va)-.25 G .558(luation \(see).25 F/F4 9/Times-Bold@0 SF .558
+(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 600 Q F0
+(is performed when the v)2.25 E(ariable is assigned a v)-.25 E(alue.)
+-.25 E F1<ad6c>144 612 Q F0 .91(When the v)27.52 F .909
+(ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909
+(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to lo).15 F(wer)
+-.25 E(-)-.2 E 2.5(case. The)180 624 R(upper)2.5 E(-case attrib)-.2 E
+(ute is disabled.)-.2 E F1<ad72>144 636 Q F0(Mak)25.86 E(e)-.1 E F2
+(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E 7.546(.T)-.65 G 2.546
+(hese names cannot then be assigned v)-7.546 F 2.547
+(alues by subsequent)-.25 F(assignment statements or unset.)180 648 Q F1
+<ad74>144 660 Q F0(Gi)26.97 E .73 -.15(ve e)-.25 H(ach).15 E F2(name)
+2.93 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929
+(ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929 E(UG)
+-.1 E F0(and)2.929 E F1(RETURN)2.929 E F0(traps from the calling shell.)
+180 672 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E
+(ariables.)-.25 E F1<ad75>144 684 Q F0 .909(When the v)24.74 F .909
+(ariable is assigned a v)-.25 F .909(alue, all lo)-.25 F(wer)-.25 E .909
+(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to upper).15 F(-)
+-.2 E 2.5(case. The)180 696 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E
+(ute is disabled.)-.2 E F1<ad78>144 708 Q F0(Mark)25.3 E F2(name)2.5 E
+F0 2.5(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E
+(vironment.)-.4 E .121(Using `+' instead of `\255' turns of)144 724.8 R
+2.621(ft)-.25 G .121(he attrib)-2.621 F .121(ute instead, with the e)-.2
+F .12(xceptions that)-.15 F F1(+a)2.62 E F0 .12(may not be used)2.62 F
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(5)203.725 E 0 Cg EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.236
+(to destro)144 84 R 3.736(ya)-.1 G 3.737(na)-3.736 G 1.237(rray v)-3.737
+F 1.237(ariable and)-.25 F/F1 10/Times-Bold@0 SF 1.237(+r will not r)
+3.737 F(emo)-.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237
+(eadonly attrib)-.18 F 3.737(ute. When)-.2 F 1.237(used in a)3.737 F
+.312(function, mak)144 96 R .312(es each)-.1 F/F2 10/Times-Italic@0 SF
+(name)2.812 E F1 .311(local, as with the local)2.812 F F0 2.811
+(command. If)2.811 F 2.811(av)2.811 G .311(ariable name is follo)-3.061
+F .311(wed by)-.25 F(=)144 108 Q F2(value)A F0 3.238(,t)C .738(he v)
+-3.238 F .738(alue of the v)-.25 F .738(ariable is set to)-.25 F F2
+(value)3.238 E F0 5.738(.T)C .738(he return v)-5.738 F .739
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G .739(lid option is).25 F
+.603(encountered, an attempt is made to de\214ne a function using)144
+120 R/F3 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103
+(na)-3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 132 R
+1.242(alue to a readonly v)-.25 F 1.242
+(ariable, an attempt is made to assign a v)-.25 F 1.243
+(alue to an array v)-.25 F(ariable)-.25 E 1.386
+(without using the compound assignment syntax \(see)144 144 R F1(Arrays)
+3.886 E F0(abo)3.886 E -.15(ve)-.15 G 1.386(\), one of the).15 F F2
+(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 156 S .171
+(lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25
+F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .172
+(ariable, an)-.25 F .96(attempt is made to turn of)144 168 R 3.46(fa)
+-.25 G .96(rray status for an array v)-3.46 F .96
+(ariable, or an attempt is made to display a)-.25 F(non-e)144 180 Q
+(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1(dirs [+)108 196.8
+Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0
+-.4(Wi)144 208.8 S .328
+(thout options, displays the list of currently remembered directories.)
+.4 F .329(The def)5.329 F .329(ault display is on a)-.1 F 1.238
+(single line with directory names separated by spaces.)144 220.8 R 1.238
+(Directories are added to the list with the)6.238 F F1(pushd)144 232.8 Q
+F0(command; the)2.5 E F1(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G
+2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 244.8 Q F2(n)A F0
+1.564(Displays the)25.3 F F2(n)4.064 E F0 1.565
+(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F1
+(dirs)4.065 E F0 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+(without options, starting with zero.)180 256.8 Q F1<ad>144 268.8 Q F2
+(n)A F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194
+(th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
+F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+(without options, starting with zero.)180 280.8 Q F1<ad63>144 292.8 Q F0
+(Clears the directory stack by deleting all of the entries.)25.86 E F1
+<ad6c>144 304.8 Q F0 .324(Produces a longer listing; the def)27.52 F
+.324(ault listing format uses a tilde to denote the home direc-)-.1 F
+(tory)180 316.8 Q(.)-.65 E F1<ad70>144 328.8 Q F0
+(Print the directory stack with one entry per line.)24.74 E F1<ad76>144
+340.8 Q F0 .273(Print the directory stack with one entry per line, pre\
+\214xing each entry with its inde)25.3 F 2.772(xi)-.15 G 2.772(nt)-2.772
+G(he)-2.772 E(stack.)180 352.8 Q .257(The return v)144 369.6 R .258
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
+(lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe)
+-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
+.15 F(tory stack.)144 381.6 Q F1(diso)108 398.4 Q(wn)-.1 E F0([)2.5 E F1
+(\255ar)A F0 2.5(][)C F1<ad68>-2.5 E F0 2.5(][)C F2(jobspec)-2.5 E F0
+(...])2.5 E -.4(Wi)144 410.4 S .295(thout options, each).4 F F2(jobspec)
+4.535 E F0 .295(is remo)3.105 F -.15(ve)-.15 G 2.795(df).15 G .295
+(rom the table of acti)-2.795 F .595 -.15(ve j)-.25 H 2.795(obs. If).15
+F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .243(and neither)
+144 422.4 R F1 .243(\255a nor \255r is supplied, the shell')2.743 F
+2.743(sn)-.37 G .243(otion of the)-2.743 F F2(curr)2.743 E .243(ent job)
+-.37 F F1 .243(is used.)2.743 F .244(If the \255h option)5.243 F .334
+(is gi)144 434.4 R -.1(ve)-.1 G .334(n, each).1 F F2(jobspec)4.574 E F0
+.334(is not remo)3.144 F -.15(ve)-.15 G 2.834(df).15 G .334
+(rom the table, b)-2.834 F .334(ut is mark)-.2 F .334(ed so that)-.1 F
+/F4 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .333(is not sent to)2.584 F
+1.189(the job if the shell recei)144 446.4 R -.15(ve)-.25 G 3.689(sa).15
+G F4(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2
+(jobspec)5.429 E F0 1.189(is present, and neither the)3.999 F F1<ad61>
+3.689 E F0 1.19(nor the)3.69 F F1<ad72>3.69 E F0 1.57
+(option is supplied, the)144 458.4 R F2(curr)4.07 E 1.57(ent job)-.37 F
+F0 1.57(is used.)4.07 F 1.569(If no)6.569 F F2(jobspec)5.809 E F0 1.569
+(is supplied, the)4.379 F F1<ad61>4.069 E F0 1.569(option means to)4.069
+F(remo)144 470.4 Q .903 -.15(ve o)-.15 H 3.103(rm).15 G .603
+(ark all jobs; the)-3.103 F F1<ad72>3.103 E F0 .603(option without a)
+3.103 F F2(jobspec)4.843 E F0(ar)3.414 E .604
+(gument restricts operation to running)-.18 F 2.5(jobs. The)144 482.4 R
+(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
+(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 499.2 Q
+F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
+.395(Output the)144 511.2 R F2(ar)2.895 E(g)-.37 E F0 .395
+(s, separated by spaces, follo)B .395(wed by a ne)-.25 F 2.895
+(wline. The)-.25 F .394(return status is al)2.895 F -.1(wa)-.1 G .394
+(ys 0.).1 F(If)5.394 E F1<ad6e>2.894 E F0 .548
+(is speci\214ed, the trailing ne)144 523.2 R .548(wline is suppressed.)
+-.25 F .548(If the)5.548 F F1<ad65>3.048 E F0 .548(option is gi)3.048 F
+-.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 535.2 Q
+.053(wing backslash-escaped characters is enabled.)-.25 F(The)5.053 E F1
+<ad45>2.553 E F0 .052(option disables the interpretation of these)2.552
+F 1.502(escape characters, e)144 547.2 R -.15(ve)-.25 G 4.002(no).15 G
+4.002(ns)-4.002 G 1.502(ystems where the)-4.002 F 4.002(ya)-.15 G 1.502
+(re interpreted by def)-4.002 F 4.003(ault. The)-.1 F F1(xpg_echo)4.003
+E F0(shell)4.003 E .009
+(option may be used to dynamically determine whether or not)144 559.2 R
+F1(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters)
+.15 F .659(by def)144 571.2 R(ault.)-.1 E F1(echo)5.659 E F0 .659
+(does not interpret)3.159 F F1<adad>3.159 E F0 .659
+(to mean the end of options.)3.159 F F1(echo)5.66 E F0 .66
+(interprets the follo)3.16 F(wing)-.25 E(escape sequences:)144 583.2 Q
+F1(\\a)144 595.2 Q F0(alert \(bell\))28.22 E F1(\\b)144 607.2 Q F0
+(backspace)27.66 E F1(\\c)144 619.2 Q F0(suppress further output)28.78 E
+F1(\\e)144 631.2 Q F0(an escape character)28.78 E F1(\\f)144 643.2 Q F0
+(form feed)29.89 E F1(\\n)144 655.2 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)
+-2.5 E F1(\\r)144 667.2 Q F0(carriage return)28.78 E F1(\\t)144 679.2 Q
+F0(horizontal tab)29.89 E F1(\\v)144 691.2 Q F0 -.15(ve)28.22 G
+(rtical tab).15 E F1(\\\\)144 703.2 Q F0(backslash)30.44 E F1(\\0)144
+715.2 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E
+(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
+(\(zero to three octal digits\))2.5 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)
+148.735 E(6)203.725 E 0 Cg EP
+%%Page: 7 7
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(\\x)144 84 Q/F2 10/Times-Italic@0 SF(HH)A F0
+(the eight-bit character whose v)13.78 E(alue is the he)-.25 E
+(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 100.8 Q F0([)2.5 E
+F1<ad61>A F0 2.5(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2
+(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .278
+(Enable and disable b)144 112.8 R .278(uiltin shell commands.)-.2 F .278
+(Disabling a b)5.278 F .278(uiltin allo)-.2 F .278
+(ws a disk command which has)-.25 F .833(the same name as a shell b)144
+124.8 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834
+(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.334
+(nt).15 G(hough)-3.334 E .99(the shell normally searches for b)144 136.8
+R .989(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0
+.989(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F 1.581
+(abled; otherwise,)144 148.8 R F2(names)4.082 E F0 1.582(are enabled.)
+4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582(xample, to use the)-4.232 F
+F1(test)4.082 E F0 1.582(binary found via the)4.082 F/F3 9/Times-Bold@0
+SF -.666(PA)4.082 G(TH)-.189 E F0 .081(instead of the shell b)144 160.8
+R .081(uiltin v)-.2 F .081(ersion, run)-.15 F/F4 10/Courier@0 SF .081
+(enable -n test)2.581 F F0 5.081(.T)C(he)-5.081 E F1<ad66>2.58 E F0 .08
+(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 172.8 S 1.524
+(iltin command).2 F F2(name)4.384 E F0 1.524(from shared object)4.204 F
+F2(\214lename)4.024 E F0 4.024(,o).18 G 4.024(ns)-4.024 G 1.524
+(ystems that support dynamic loading.)-4.024 F(The)144 184.8 Q F1<ad64>
+2.867 E F0 .367(option will delete a b)2.867 F .367(uiltin pre)-.2 F
+.367(viously loaded with)-.25 F F1<ad66>2.866 E F0 5.366(.I)C 2.866(fn)
+-5.366 G(o)-2.866 E F2(name)2.866 E F0(ar)2.866 E .366(guments are gi)
+-.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 196.8 R F1<ad70>
+2.898 E F0 .399(option is supplied, a list of shell b)2.899 F .399
+(uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4
+F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
+208.8 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
+(is supplied, only disabled b)2.598 F .098(uiltins are printed.)-.2 F
+(If)5.098 E F1<ad61>2.598 E F0 1.916
+(is supplied, the list printed includes all b)144 220.8 R 1.916
+(uiltins, with an indication of whether or not each is)-.2 F 2.879
+(enabled. If)144 232.8 R F1<ad73>2.879 E F0 .379
+(is supplied, the output is restricted to the POSIX)2.879 F F2(special)
+2.879 E F0 -.2(bu)2.878 G 2.878(iltins. The).2 F .378(return v)2.878 F
+(alue)-.25 E .994(is 0 unless a)144 244.8 R F2(name)3.854 E F0 .994
+(is not a shell b)3.674 F .994(uiltin or there is an error loading a ne)
+-.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(object.)144
+256.8 Q F1 -2.3 -.15(ev a)108 273.6 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
+E F0(...])2.5 E(The)144 285.6 Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C
+.671(re read and concatenated together into a single command.)-3.171 F
+.67(This command is then read)5.67 F .495(and e)144 297.6 R -.15(xe)-.15
+G .495(cuted by the shell, and its e).15 F .495
+(xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15
+(ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
+-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 309.6 Q
+(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1
+(exec)108 326.4 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
+(name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E F2(ar)A(guments)
+-.37 E F0(]])A(If)144 338.4 Q F2(command)3.006 E F0 .306
+(is speci\214ed, it replaces the shell.)3.576 F .305(No ne)5.305 F 2.805
+(wp)-.25 G .305(rocess is created.)-2.805 F(The)5.305 E F2(ar)3.135 E
+(guments)-.37 E F0(become)3.075 E .176(the ar)144 350.4 R .176
+(guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G
+(he)-2.676 E F1<ad6c>2.676 E F0 .176
+(option is supplied, the shell places a dash at the be)2.676 F .177
+(ginning of)-.15 F .5(the zeroth ar)144 362.4 R .5(gument passed to)-.18
+F F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999
+E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F1<ad63>2.999 E F0
+.499(option causes)2.999 F F2(com-)3.199 E(mand)144 374.4 Q F0 .638
+(to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
+(vironment. If)-.4 F F1<ad61>3.138 E F0 .638
+(is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the)
+3.319 F 1.078(zeroth ar)144 386.4 R 1.077(gument to the e)-.18 F -.15
+(xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0
+1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
+.15 F(non-interacti)144 398.4 Q .617 -.15(ve s)-.25 H .317(hell e).15 F
+.317(xits, unless the shell option)-.15 F F1(execfail)2.817 E F0 .318
+(is enabled, in which case it returns f)2.817 F(ail-)-.1 E 2.505
+(ure. An)144 410.4 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005
+(hell returns f).15 F .005(ailure if the \214le cannot be e)-.1 F -.15
+(xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005
+(is not speci\214ed,)3.275 F(an)144 422.4 Q 3.036(yr)-.15 G .536
+(edirections tak)-3.036 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536
+(ect in the current shell, and the return status is 0.).25 F .536
+(If there is a redirection)5.536 F(error)144 434.4 Q 2.5(,t)-.4 G
+(he return status is 1.)-2.5 E F1(exit)108 451.2 Q F0([)2.5 E F2(n)A F0
+6.29(]C)C .096(ause the shell to e)-6.29 F .096(xit with a status of)
+-.15 F F2(n)2.596 E F0 5.096(.I)C(f)-5.096 E F2(n)2.955 E F0 .095
+(is omitted, the e)2.835 F .095(xit status is that of the last command)
+-.15 F -.15(exe)144 463.2 S 2.5(cuted. A).15 F(trap on)2.5 E F3(EXIT)2.5
+E F0(is e)2.25 E -.15(xe)-.15 G(cuted before the shell terminates.).15 E
+F1(export)108 480 Q F0([)2.5 E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5
+E F0([=)A F2(wor)A(d)-.37 E F0(]] ...)A F1(export \255p)108 492 Q F0
+.256(The supplied)144 504 R F2(names)3.117 E F0 .257(are mark)3.027 F
+.257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257
+(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.627
+(commands. If)144 516 R(the)2.627 E F1<ad66>2.627 E F0 .127
+(option is gi)2.627 F -.15(ve)-.25 G .127(n, the).15 F F2(names)2.987 E
+F0 .127(refer to functions.)2.897 F .127(If no)5.127 F F2(names)2.987 E
+F0 .127(are gi)2.897 F -.15(ve)-.25 G .126(n, or if the).15 F F1<ad70>
+144 528 Q F0 .659(option is supplied, a list of all names that are e)
+3.159 F .66(xported in this shell is printed.)-.15 F(The)5.66 E F1<ad6e>
+3.16 E F0(option)3.16 E 1.587(causes the e)144 540 R 1.587
+(xport property to be remo)-.15 F -.15(ve)-.15 G 4.086(df).15 G 1.586
+(rom each)-4.086 F F2(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G
+1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 552 Q F2
+(wor)A(d)-.37 E F0 2.803(,t)C .303(he v)-2.803 F .303(alue of the v)-.25
+F .304(ariable is set to)-.25 F F2(wor)2.804 E(d)-.37 E F0(.)A F1
+(export)5.304 E F0 .304(returns an e)2.804 F .304
+(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .294
+(option is encountered, one of the)144 564 R F2(names)2.793 E F0 .293
+(is not a v)2.793 F .293(alid shell v)-.25 F .293(ariable name, or)-.25
+F F1<ad66>2.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36 576
+Q F0(that is not a function.)2.68 E F1(fc)108 592.8 Q F0([)2.5 E F1
+<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
+<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108
+604.8 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
+(cmd)-2.5 E F0(])A .477(Fix Command.)144 616.8 R .478
+(In the \214rst form, a range of commands from)5.477 F F2<8c72>4.888 E
+(st)-.1 E F0(to)3.658 E F2(last)3.068 E F0 .478
+(is selected from the his-)3.658 F .882(tory list.)144 628.8 R F2 -.45
+(Fi)5.882 G -.1(rs).45 G(t).1 E F0(and)4.062 E F2(last)3.472 E F0 .882
+(may be speci\214ed as a string \(to locate the last command be)4.062 F
+.881(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
+640.8 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F
+-.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .797(umber is used as an)
+.15 F(of)144 652.8 Q .277(fset from the current command number\).)-.25 F
+(If)5.277 E F2(last)2.867 E F0 .276
+(is not speci\214ed it is set to the current command)3.457 F .092
+(for listing \(so that)144 664.8 R F4 .092(fc \255l \25510)2.592 F F0
+.092(prints the last 10 commands\) and to)2.592 F F2<8c72>4.502 E(st)-.1
+E F0 2.592(otherwise. If)3.272 F F2<8c72>4.502 E(st)-.1 E F0 .093
+(is not)3.273 F(speci\214ed it is set to the pre)144 676.8 Q
+(vious command for editing and \25516 for listing.)-.25 E(The)144 700.8
+Q F1<ad6e>2.522 E F0 .022
+(option suppresses the command numbers when listing.)2.522 F(The)5.022 E
+F1<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
+(rses the order of).15 F .438(the commands.)144 712.8 R .438(If the)
+5.438 F F1<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
+(n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
+.335(the editor gi)144 724.8 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E
+F2(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835
+(do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835
+F(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
+(n,).15 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(7)203.725 E 0 Cg
+EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .63(the v)
+144 84 R .63(alue of the)-.25 F/F1 9/Times-Bold@0 SF(FCEDIT)3.13 E F0
+-.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25 F
+F1(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F1(FCEDIT)3.131 E F0 .631
+(is not set.)2.881 F .631(If nei-)5.631 F 1.884(ther v)144 96 R 1.884
+(ariable is set, is used.)-.25 F 1.884
+(When editing is complete, the edited commands are echoed and)6.884 F
+-.15(exe)144 108 S(cuted.).15 E .039(In the second form,)144 132 R/F2 10
+/Times-Italic@0 SF(command)2.539 E F0 .039(is re-e)2.539 F -.15(xe)-.15
+G .039(cuted after each instance of).15 F F2(pat)2.54 E F0 .04
+(is replaced by)2.54 F F2 -.37(re)2.54 G(p).37 E F0 5.04(.A)C(useful)
+-2.5 E .406(alias to use with this is)144 144 R/F3 10/Courier@0 SF .406
+(r='fc \255s')2.906 F F0 2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)
+-2.906 F F3 6.406(rc)2.906 G(c)-6.406 E F0 .406
+(runs the last command be)2.906 F .406(ginning with)-.15 F F3(cc)144 156
+Q F0(and typing)2.5 E F3(r)2.5 E F0(re-e)2.5 E -.15(xe)-.15 G
+(cutes the last command.).15 E .142
+(If the \214rst form is used, the return v)144 180 R .142
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
+(lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322
+E F2(last)2.732 E F0 .455(specify history lines out of range.)144 192 R
+.454(If the)5.454 F/F4 10/Times-Bold@0 SF<ad65>2.954 E F0 .454
+(option is supplied, the return v)2.954 F .454(alue is the v)-.25 F .454
+(alue of the)-.25 F .787(last command e)144 204 R -.15(xe)-.15 G .787
+(cuted or f).15 F .788
+(ailure if an error occurs with the temporary \214le of commands.)-.1 F
+.788(If the)5.788 F 1.136
+(second form is used, the return status is that of the command re-e)144
+216 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F2(cmd)3.835 E F0 1.135
+(does not)4.405 F(specify a v)144 228 Q
+(alid history line, in which case)-.25 E F4(fc)2.5 E F0(returns f)2.5 E
+(ailure.)-.1 E F4(fg)108 244.8 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
+144 256.8 Q F2(jobspec)5.653 E F0 1.413(in the fore)4.223 F 1.413
+(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
+(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2(jobspec)5.653 E F0
+1.414(is not present, the)4.223 F(shell')144 268.8 Q 3.117(sn)-.55 G
+.617(otion of the)-3.117 F F2(curr)3.117 E .617(ent job)-.37 F F0 .617
+(is used.)3.117 F .617(The return v)5.617 F .616
+(alue is that of the command placed into the)-.25 F(fore)144 280.8 Q
+.362(ground, or f)-.15 F .362
+(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .363
+(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 292.8 Q
+F0 .004(does not specify a v)2.815 F .004(alid job or)-.25 F F2(jobspec)
+4.244 E F0 .004(speci\214es a job that w)2.814 F .004
+(as started without job control.)-.1 F F4(getopts)108 309.6 Q F2
+(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F4(getopts)144
+321.6 Q F0 .793
+(is used by shell procedures to parse positional parameters.)3.293 F F2
+(optstring)6.023 E F0 .793(contains the option)3.513 F .15
+(characters to be recognized; if a character is follo)144 333.6 R .149
+(wed by a colon, the option is e)-.25 F .149(xpected to ha)-.15 F .449
+-.15(ve a)-.2 H(n).15 E(ar)144 345.6 Q .578
+(gument, which should be separated from it by white space.)-.18 F .579
+(The colon and question mark char)5.579 F(-)-.2 E 1.665
+(acters may not be used as option characters.)144 357.6 R 1.665
+(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F4(getopts)
+4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796
+(option in the shell v)144 369.6 R(ariable)-.25 E F2(name)3.296 E F0
+3.296(,i).18 G(nitializing)-3.296 E F2(name)3.657 E F0 .797
+(if it does not e)3.477 F .797(xist, and the inde)-.15 F 3.297(xo)-.15 G
+3.297(ft)-3.297 G .797(he ne)-3.297 F(xt)-.15 E(ar)144 381.6 Q .085
+(gument to be processed into the v)-.18 F(ariable)-.25 E F1(OPTIND)2.585
+E/F5 9/Times-Roman@0 SF(.)A F1(OPTIND)4.585 E F0 .085
+(is initialized to 1 each time the shell)2.335 F .845
+(or a shell script is in)144 393.6 R -.2(vo)-.4 G -.1(ke).2 G 3.345
+(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F4
+(getopts)3.346 E F0 .846(places that ar)3.346 F(gument)-.18 E .804
+(into the v)144 405.6 R(ariable)-.25 E F1(OPT)3.304 E(ARG)-.81 E F5(.)A
+F0 .803(The shell does not reset)5.304 F F1(OPTIND)3.303 E F0 .803
+(automatically; it must be manually)3.053 F .293
+(reset between multiple calls to)144 417.6 R F4(getopts)2.793 E F0 .293
+(within the same shell in)2.793 F -.2(vo)-.4 G .293(cation if a ne).2 F
+2.793(ws)-.25 G .294(et of parameters)-2.793 F(is to be used.)144 429.6
+Q 2.044(When the end of options is encountered,)144 453.6 R F4(getopts)
+4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.043
+(alue greater than zero.)-.25 F F4(OPTIND)144 465.6 Q F0
+(is set to the inde)2.5 E 2.5(xo)-.15 G 2.5(ft)-2.5 G
+(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F4(name)2.5 E F0
+(is set to ?.)2.5 E F4(getopts)144 489.6 Q F0 2.392
+(normally parses the positional parameters, b)4.892 F 2.392
+(ut if more ar)-.2 F 2.393(guments are gi)-.18 F -.15(ve)-.25 G 4.893
+(ni).15 G(n)-4.893 E F2(ar)4.893 E(gs)-.37 E F0(,).27 E F4(getopts)144
+501.6 Q F0(parses those instead.)2.5 E F4(getopts)144 525.6 Q F0 1.166
+(can report errors in tw)3.666 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F
+1.165(the \214rst character of)3.665 F F2(optstring)3.895 E F0 1.165
+(is a colon,)3.885 F F2(silent)4.005 E F0(error)4.345 E 1.263
+(reporting is used.)144 537.6 R 1.263
+(In normal operation diagnostic messages are printed when in)6.263 F
+-.25(va)-.4 G 1.263(lid options or).25 F .394(missing option ar)144
+549.6 R .394(guments are encountered.)-.18 F .394(If the v)5.394 F
+(ariable)-.25 E F1(OPTERR)2.894 E F0 .394
+(is set to 0, no error messages)2.644 F(will be displayed, e)144 561.6 Q
+-.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E
+F2(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 585.6 R
+-.25(va)-.4 G .666(lid option is seen,).25 F F4(getopts)3.166 E F0 .667
+(places ? into)3.167 F F2(name)3.527 E F0 .667
+(and, if not silent, prints an error message)3.347 F .4(and unsets)144
+597.6 R F1(OPT)2.9 E(ARG)-.81 E F5(.)A F0(If)4.899 E F4(getopts)2.899 E
+F0 .399(is silent, the option character found is placed in)2.899 F F1
+(OPT)2.899 E(ARG)-.81 E F0 .399(and no)2.649 F
+(diagnostic message is printed.)144 609.6 Q 1.241(If a required ar)144
+633.6 R 1.241(gument is not found, and)-.18 F F4(getopts)3.741 E F0
+1.241(is not silent, a question mark \()3.741 F F4(?).833 E F0 3.742
+(\)i).833 G 3.742(sp)-3.742 G 1.242(laced in)-3.742 F F2(name)144 645.6
+Q F0(,).18 E F1(OPT)2.735 E(ARG)-.81 E F0 .234
+(is unset, and a diagnostic message is printed.)2.485 F(If)5.234 E F4
+(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F4(:).833 E
+F0(\)).833 E(is placed in)144 657.6 Q F2(name)2.86 E F0(and)2.68 E F1
+(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F4
+(getopts)144 681.6 Q F0 .902
+(returns true if an option, speci\214ed or unspeci\214ed, is found.)
+3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F
+(options is encountered or an error occurs.)144 693.6 Q(GNU Bash-4.0)72
+768 Q(2004 Apr 20)148.735 E(8)203.725 E 0 Cg EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(hash)108 84 Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1
+<ad70>-2.5 E/F2 10/Times-Italic@0 SF(\214lename)2.5 E F0 2.5(][)C F1
+(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A -.15(Fo)144 96 S 3.555
+(re).15 G(ach)-3.555 E F2(name)3.555 E F0 3.555(,t).18 G 1.054(he full \
+\214le name of the command is determined by searching the directories i\
+n)-3.555 F F1($P)144 108 Q -.95(AT)-.74 G(H).95 E F0 .349
+(and remembered.)2.849 F .349(If the)5.349 F F1<ad70>2.849 E F0 .349
+(option is supplied, no path search is performed, and)2.849 F F2
+(\214lename)4.76 E F0 .452
+(is used as the full \214le name of the command.)144 120 R(The)5.452 E
+F1<ad72>2.952 E F0 .452(option causes the shell to for)2.952 F .452
+(get all remem-)-.18 F .592(bered locations.)144 132 R(The)5.592 E F1
+<ad64>3.092 E F0 .593(option causes the shell to for)3.092 F .593
+(get the remembered location of each)-.18 F F2(name)3.093 E F0(.)A .021
+(If the)144 144 R F1<ad74>2.521 E F0 .021
+(option is supplied, the full pathname to which each)2.521 F F2(name)
+2.52 E F0 .02(corresponds is printed.)2.52 F .02(If multi-)5.02 F(ple)
+144 156 Q F2(name)3.703 E F0(ar)3.703 E 1.203(guments are supplied with)
+-.18 F F1<ad74>3.703 E F0 3.703(,t)C(he)-3.703 E F2(name)3.703 E F0
+1.204(is printed before the hashed full pathname.)3.703 F(The)144 168 Q
+F1<ad6c>3.216 E F0 .715(option causes output to be displayed in a forma\
+t that may be reused as input.)3.216 F .715(If no ar)5.715 F(gu-)-.18 E
+1.183(ments are gi)144 180 R -.15(ve)-.25 G 1.183(n, or if only).15 F F1
+<ad6c>3.683 E F0 1.184
+(is supplied, information about remembered commands is printed.)3.684 F
+(The return status is true unless a)144 192 Q F2(name)2.86 E F0
+(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25
+E F1(help)108 208.8 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2(pattern)
+-2.5 E F0(])A .867(Display helpful information about b)144 220.8 R .867
+(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0 .866
+(is speci\214ed,)3.607 F F1(help)3.366 E F0(gi)3.366 E -.15(ve)-.25 G
+3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144
+232.8 R F2(pattern)2.806 E F0 2.807(;o).24 G .307
+(therwise help for all the b)-2.807 F .307
+(uiltins and shell control struc-)-.2 F(tures is printed.)144 244.8 Q F1
+<ad64>144 256.8 Q F0(Display a short description of each)24.74 E F2
+(pattern)2.5 E F1(-m)146.5 268.8 Q F0(Display the description of each)
+21.84 E F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)
+-2.5 E F1<ad73>144 280.8 Q F0
+(Display only a short usage synopsis for each)26.41 E F2(pattern)2.5 E
+F0(The return status is 0 unless no command matches)108 292.8 Q F2
+(pattern)2.5 E F0(.).24 E F1(history [)108 309.6 Q F2(n)A F1(])A
+(history \255c)108 321.6 Q(history \255d)108 333.6 Q F2(of)2.5 E(fset)
+-.18 E F1(history \255anrw)108 345.6 Q F0([)2.5 E F2(\214lename)A F0(])A
+F1(history \255p)108 357.6 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5
+(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 369.6 Q F2(ar)2.5 E(g)
+-.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144
+381.6 S .752
+(th no options, display the command history list with line numbers.).4 F
+.752(Lines listed with a)5.752 F F1(*)3.251 E F0(ha)3.251 E -.15(ve)-.2
+G 1.23(been modi\214ed.)144 393.6 R 1.23(An ar)6.23 F 1.23(gument of)
+-.18 F F2(n)4.09 E F0 1.231(lists only the last)3.97 F F2(n)4.091 E F0
+3.731(lines. If)3.971 F 1.231(the shell v)3.731 F(ariable)-.25 E F1
+(HISTTIME-)3.731 E(FORMA)144 405.6 Q(T)-.95 E F0 .25
+(is set and not null, it is used as a format string for)2.75 F F2
+(strftime)2.749 E F0 .249(\(3\) to display the time stamp)B .378
+(associated with each displayed history entry)144 417.6 R 5.378(.N)-.65
+G 2.878(oi)-5.378 G(nterv)-2.878 E .379
+(ening blank is printed between the format-)-.15 F .815
+(ted time stamp and the history line.)144 429.6 R(If)5.814 E F2
+(\214lename)3.314 E F0 .814
+(is supplied, it is used as the name of the history)3.314 F
+(\214le; if not, the v)144 441.6 Q(alue of)-.25 E/F3 9/Times-Bold@0 SF
+(HISTFILE)2.5 E F0(is used.)2.25 E(Options, if supplied, ha)5 E .3 -.15
+(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad63>144 453.6 Q F0
+(Clear the history list by deleting all the entries.)25.86 E F1<ad64>144
+465.6 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
+180 477.6 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 489.6 Q F0 .598
+(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.098('h)-.74 G .598
+(istory lines \(history lines entered since the be)-3.098 F .599
+(ginning of the current)-.15 F F1(bash)180 501.6 Q F0
+(session\) to the history \214le.)2.5 E F1<ad6e>144 513.6 Q F0 .854(Rea\
+d the history lines not already read from the history \214le into the c\
+urrent history list.)24.74 F .772
+(These are lines appended to the history \214le since the be)180 525.6 R
+.773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E
+(sion.)180 537.6 Q F1<ad72>144 549.6 Q F0(Read the contents of the hist\
+ory \214le and use them as the current history)25.86 E(.)-.65 E F1<ad77>
+144 561.6 Q F0(Write the current history to the history \214le, o)23.08
+E -.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
+(ontents.)-2.5 E F1<ad70>144 573.6 Q F0 .626
+(Perform history substitution on the follo)24.74 F(wing)-.25 E F2(ar)
+3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F
+2.975(output. Does)180 585.6 R .475
+(not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
+2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
+(normal history e)180 597.6 Q(xpansion.)-.15 E F1<ad73>144 609.6 Q F0
+.363(Store the)26.41 F F2(ar)3.193 E(gs)-.37 E F0 .363
+(in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
+(he last command in the history list is)-5.363 F(remo)180 621.6 Q -.15
+(ve)-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
+(are added.)2.77 E .28(If the)144 638.4 R F1(HISTTIMEFORMA)2.78 E(T)-.95
+E F0 .28
+(is set, the time stamp information associated with each history entry)
+2.78 F .54(is written to the history \214le, mark)144 650.4 R .539
+(ed with the history comment character)-.1 F 5.539(.W)-.55 G .539
+(hen the history \214le is)-5.539 F 1.778(read, lines be)144 662.4 R
+1.778(ginning with the history comment character follo)-.15 F 1.779
+(wed immediately by a digit are)-.25 F 1.424
+(interpreted as timestamps for the pre)144 674.4 R 1.424
+(vious history line.)-.25 F 1.424(The return v)6.424 F 1.424
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\
+ncountered, an error occurs while reading or writing the history \214le\
+, an in)144 686.4 R -.25(va)-.4 G(lid).25 E F2(of)3 E(fset)-.18 E F0(is)
+3 E(supplied as an ar)144 698.4 Q(gument to)-.18 E F1<ad64>2.5 E F0 2.5
+(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E(xpansion supplied as an ar)-.15
+E(gument to)-.18 E F1<ad70>2.5 E F0 -.1(fa)2.5 G(ils.).1 E(GNU Bash-4.0)
+72 768 Q(2004 Apr 20)148.735 E(9)203.725 E 0 Cg EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(jobs)108 84 Q F0([)2.5 E F1(\255lnprs)A F0 2.5(][)C/F2
+10/Times-Italic@0 SF(jobspec)A F0(... ])2.5 E F1(jobs \255x)108 96 Q F2
+(command)2.5 E F0([)2.5 E F2(ar)2.5 E(gs)-.37 E F0(... ])2.5 E
+(The \214rst form lists the acti)144 108 Q .3 -.15(ve j)-.25 H 2.5
+(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad6c>144 120 Q F0
+(List process IDs in addition to the normal information.)27.52 E F1
+<ad70>144 132 Q F0(List only the process ID of the job')24.74 E 2.5(sp)
+-.55 G(rocess group leader)-2.5 E(.)-.55 E F1<ad6e>144 144 Q F0 .194
+(Display information only about jobs that ha)24.74 F .494 -.15(ve c)-.2
+H .193(hanged status since the user w).15 F .193(as last noti-)-.1 F
+(\214ed of their status.)180 156 Q F1<ad72>144 168 Q F0
+(Restrict output to running jobs.)25.86 E F1<ad73>144 180 Q F0
+(Restrict output to stopped jobs.)26.41 E(If)144 196.8 Q F2(jobspec)
+4.553 E F0 .313(is gi)3.123 F -.15(ve)-.25 G .313
+(n, output is restricted to information about that job).15 F 5.314(.T)
+-.4 G .314(he return status is 0 unless)-5.314 F(an in)144 208.8 Q -.25
+(va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
+E F2(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 225.6 R F1
+<ad78>2.895 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
+.394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in)
+3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .394
+(with the corre-)3.164 F(sponding process group ID, and e)144 237.6 Q
+-.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E F2(ar)
+2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15 E
+F1(kill)108 254.4 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)2.5 E F1
+<ad6e>2.5 E F2(signum)2.5 E F0(|)2.5 E F1<ad>2.5 E F2(sigspec)A F0 2.5
+(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F1
+(kill \255l)108 266.4 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5
+G(it_status).2 E F0(])A .119(Send the signal named by)144 278.4 R F2
+(sigspec)2.959 E F0(or)2.929 E F2(signum)2.959 E F0 .119
+(to the processes named by)2.939 F F2(pid)3.87 E F0(or)3.39 E F2
+(jobspec)2.62 E F0(.).31 E F2(sigspec)5.46 E F0(is)2.93 E .319
+(either a case-insensiti)144 290.4 R .619 -.15(ve s)-.25 H .319
+(ignal name such as).15 F/F3 9/Times-Bold@0 SF(SIGKILL)2.819 E F0 .318
+(\(with or without the)2.569 F F3(SIG)2.818 E F0 .318
+(pre\214x\) or a signal)2.568 F(number;)144 302.4 Q F2(signum)4.188 E F0
+1.349(is a signal number)4.168 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
+4.189 E F0 1.349(is not present, then)4.159 F F3(SIGTERM)3.849 E F0
+1.349(is assumed.)3.599 F(An)6.349 E(ar)144 314.4 Q .523(gument of)-.18
+F F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)
+5.523 F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when)
+.18 F F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523
+(n, the names).15 F .28(of the signals corresponding to the ar)144 326.4
+R .28(guments are listed, and the return status is 0.)-.18 F(The)5.28 E
+F2 -.2(ex)2.78 G(it_status).2 E F0(ar)144 338.4 Q .378(gument to)-.18 F
+F1<ad6c>2.878 E F0 .378
+(is a number specifying either a signal number or the e)2.878 F .377
+(xit status of a process termi-)-.15 F .593(nated by a signal.)144 350.4
+R F1(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
+.593(as successfully sent, or f)-.1 F .594(alse if an error)-.1 F
+(occurs or an in)144 362.4 Q -.25(va)-.4 G(lid option is encountered.)
+.25 E F1(let)108 379.2 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37
+E F0(...])2.5 E(Each)144 391.2 Q F2(ar)3.965 E(g)-.37 E F0 1.135
+(is an arithmetic e)3.855 F 1.134(xpression to be e)-.15 F -.25(va)-.25
+G 1.134(luated \(see).25 F F3 1.134(ARITHMETIC EV)3.634 F(ALU)-1.215 E
+-.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(\).)A F0 1.134(If the)
+5.634 F(last)144 403.2 Q F2(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G
+(luates to 0,).25 E F1(let)2.5 E F0(returns 1; 0 is returned otherwise.)
+2.5 E F1(local)108 420 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(name)-2.5
+E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 432 S 2.56(re)
+.15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06(ariable named)
+-.25 F F2(name)2.92 E F0 .06(is created, and assigned)2.74 F F2(value)
+2.56 E F0 5.06(.T).18 G(he)-5.06 E F2(option)2.56 E F0 .06(can be)2.56 F
+(an)144 444 Q 3.153(yo)-.15 G 3.153(ft)-3.153 G .653
+(he options accepted by)-3.153 F F1(declar)3.153 E(e)-.18 E F0 5.652(.W)
+C(hen)-5.652 E F1(local)3.152 E F0 .652
+(is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144
+456 Q F2(name)3.72 E F0 .86(to ha)3.54 F 1.16 -.15(ve a v)-.2 H .861
+(isible scope restricted to that function and its children.).15 F -.4
+(Wi)5.861 G .861(th no operands,).4 F F1(local)144 468 Q F0 1.165
+(writes a list of local v)3.665 F 1.165
+(ariables to the standard output.)-.25 F 1.165(It is an error to use)
+6.165 F F1(local)3.664 E F0 1.164(when not)3.664 F .232
+(within a function.)144 480 R .233(The return status is 0 unless)5.232 F
+F1(local)2.733 E F0 .233(is used outside a function, an in)2.733 F -.25
+(va)-.4 G(lid).25 E F2(name)3.093 E F0(is)2.913 E(supplied, or)144 492 Q
+F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1(logout)108
+508.8 Q F0(Exit a login shell.)9.33 E F1(map\214le)108 525.6 Q F0([)2.5
+E F1<ad6e>A F2(count)2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0
+2.5(][)C F1<ad73>-2.5 E F2(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5
+(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)
+2.5 E(k)-.2 E F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2
+(arr)-2.5 E(ay)-.15 E F0(])A F1 -.18(re)108 537.6 S(adarray).18 E F0([)
+2.5 E F1<ad6e>A F2(count)2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5
+E F0 2.5(][)C F1<ad73>-2.5 E F2(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E
+F0 2.5(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2
+(callbac)2.5 E(k)-.2 E F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)2.5 E F0
+2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0(])A 1.006
+(Read lines from the standard input into array v)144 549.6 R(ariable)
+-.25 E F2(arr)3.506 E(ay)-.15 E F0 3.506(,o).32 G 3.506(rf)-3.506 G
+1.006(rom \214le descriptor)-3.506 F F2(fd)3.506 E F0 1.005(if the)3.506
+F F1<ad75>3.505 E F0 1.086(option is supplied.)144 561.6 R 1.086(The v)
+6.086 F(ariable)-.25 E F1(MAPFILE)3.586 E F0 1.086(is the def)3.586 F
+(ault)-.1 E F2(arr)3.587 E(ay)-.15 E F0 6.087(.O)C 1.087
+(ptions, if supplied, ha)-6.087 F 1.387 -.15(ve t)-.2 H(he).15 E(follo)
+144 573.6 Q(wing meanings:)-.25 E F1<ad6e>144 585.6 Q F0(Cop)24.74 E 2.5
+(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F2(count)2.7 E F0 2.5(lines. If)3.18
+F F2(count)2.5 E F0(is 0, all lines are copied.)2.5 E F1<ad4f>144 597.6
+Q F0(Be)22.52 E(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0
+(at inde)2.82 E(x)-.15 E F2(origin)2.5 E F0 5(.T).24 G(he def)-5 E
+(ault inde)-.1 E 2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 609.6
+Q F0(Discard the \214rst)26.41 E F2(count)2.5 E F0(lines read.)2.5 E F1
+<ad74>144 621.6 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H
+(railing line from each line read.).15 E F1<ad75>144 633.6 Q F0
+(Read lines from \214le descriptor)24.74 E F2(fd)2.5 E F0
+(instead of the standard input.)2.5 E F1<ad43>144 645.6 Q F0(Ev)23.08 E
+(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2(quantum)
+2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
+(option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1<ad63>144 657.6
+Q F0(Specify the number of lines read between each call to)25.86 E F2
+(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 674.4 Q F1<ad43>2.968 E F0 .467
+(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
+(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F2
+(callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
+(luated, it is sup-).25 F 1.22(plied the inde)144 686.4 R 3.72(xo)-.15 G
+3.72(ft)-3.72 G 1.22(he ne)-3.72 F 1.22
+(xt array element to be assigned as an additional ar)-.15 F(gument.)-.18
+E F2(callbac)6.22 E(k)-.2 E F0(is)3.72 E -.25(eva)144 698.4 S
+(luated after the line is read b).25 E
+(ut before the array element is assigned.)-.2 E
+(If not supplied with an e)144 715.2 Q(xplicit origin,)-.15 E F1
+(map\214le)2.5 E F0(will clear)2.5 E F2(arr)2.5 E(ay)-.15 E F0
+(before assigning to it.)2.5 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735
+E(10)198.725 E 0 Cg EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(map\214le)144 84 Q F0 .996
+(returns successfully unless an in)3.496 F -.25(va)-.4 G .996
+(lid option or option ar).25 F .995(gument is supplied, or)-.18 F/F2 10
+/Times-Italic@0 SF(arr)3.495 E(ay)-.15 E F0(is)3.495 E(in)144 96 Q -.25
+(va)-.4 G(lid or unassignable.).25 E F1(popd)108 112.8 Q F0<5bad>2.5 E
+F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C<ad>-2.5 E F2(n)A F0(])A
+(Remo)144 124.8 Q -.15(ve)-.15 G 2.799(se).15 G .299
+(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G .299(th no ar)
+.4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G .3
+(he top directory from the)-2.799 F 1.479(stack, and performs a)144
+136.8 R F1(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479
+(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.478
+(uments, if supplied, ha).18 F 1.778 -.15(ve t)-.2 H 1.478(he follo).15
+F(wing)-.25 E(meanings:)144 148.8 Q F1<ad6e>144 160.8 Q F0 .551
+(Suppresses the normal change of directory when remo)24.74 F .551
+(ving directories from the stack, so)-.15 F
+(that only the stack is manipulated.)180 172.8 Q F1(+)144 184.8 Q F2(n)A
+F0(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E F0
+.14(th entry counting from the left of the list sho)B .14(wn by)-.25 F
+F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
+196.8 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0
+(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)
+-.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 208.8 Q F2(n)A F0
+(Remo)25.3 E -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F2(n)3.759 E F0
+1.259(th entry counting from the right of the list sho)B 1.26(wn by)-.25
+F F1(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180
+220.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15
+(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5
+E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 237.6 R F1(popd)
+3.144 E F0 .644(command is successful, a)3.144 F F1(dirs)3.143 E F0 .643
+(is performed as well, and the return status is 0.)3.143 F F1(popd)5.643
+E F0 .415(returns f)144 249.6 R .415(alse if an in)-.1 F -.25(va)-.4 G
+.415(lid option is encountered, the directory stack is empty).25 F 2.916
+(,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F
+(tory stack entry is speci\214ed, or the directory change f)144 261.6 Q
+(ails.)-.1 E F1(printf)108 278.4 Q F0([)2.5 E F1<ad76>A F2(var)2.5 E F0
+(])A F2(format)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .372
+(Write the formatted)144 290.4 R F2(ar)2.872 E(guments)-.37 E F0 .372
+(to the standard output under the control of the)2.872 F F2(format)2.872
+E F0 5.372(.T)C(he)-5.372 E F2(format)2.872 E F0 1.804(is a character s\
+tring which contains three types of objects: plain characters, which ar\
+e simply)144 302.4 R .159
+(copied to standard output, character escape sequences, which are con)
+144 314.4 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(\
+dard output, and format speci\214cations, each of which causes printing\
+ of the ne)144 326.4 R .5(xt successi)-.15 F -.15(ve)-.25 G F2(ar)3.15 E
+(gu-)-.37 E(ment)144 338.4 Q F0 5.424(.I)C 2.924(na)-5.424 G .424
+(ddition to the standard)-2.924 F F2(printf)2.924 E F0 .424
+(\(1\) formats,)B F1(%b)2.924 E F0(causes)2.923 E F1(printf)2.923 E F0
+.423(to e)2.923 F .423(xpand backslash escape)-.15 F .976
+(sequences in the corresponding)144 350.4 R F2(ar)3.476 E(gument)-.37 E
+F0(\(e)3.476 E .976(xcept that)-.15 F F1(\\c)3.476 E F0 .976
+(terminates output, backslashes in)3.476 F F1<5c08>3.477 E F0(,)A F1
+(\\")3.477 E F0(,)A(and)144 362.4 Q F1(\\?)3.422 E F0 .922(are not remo)
+3.422 F -.15(ve)-.15 G .922(d, and octal escapes be).15 F .922
+(ginning with)-.15 F F1(\\0)3.422 E F0 .921
+(may contain up to four digits\), and)3.422 F F1(%q)144 374.4 Q F0
+(causes)3.63 E F1(printf)3.63 E F0 1.13(to output the corresponding)3.63
+F F2(ar)3.631 E(gument)-.37 E F0 1.131
+(in a format that can be reused as shell)3.631 F(input.)144 386.4 Q(The)
+144 410.4 Q F1<ad76>2.904 E F0 .404
+(option causes the output to be assigned to the v)2.904 F(ariable)-.25 E
+F2(var)2.904 E F0 .404(rather than being printed to the)2.904 F
+(standard output.)144 422.4 Q(The)144 446.4 Q F2(format)3.423 E F0 .923
+(is reused as necessary to consume all of the)3.423 F F2(ar)3.423 E
+(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F2(format)
+3.423 E F0 .924(requires more)3.424 F F2(ar)144 458.4 Q(guments)-.37 E
+F0 .033(than are supplied, the e)2.534 F .033
+(xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si)
+.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .033(alue or null string,)
+-.25 F(as appropriate, had been supplied.)144 470.4 Q(The return v)5 E
+(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd)
+108 487.2 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C
+<ad>-2.5 E F2(n)A F0(])A F1(pushd)108 499.2 Q F0([)2.5 E F1<ad6e>A F0
+2.5(][)C F2(dir)-2.5 E F0(])A .639(Adds a directory to the top of the d\
+irectory stack, or rotates the stack, making the ne)144 511.2 R 3.14(wt)
+-.25 G .64(op of the)-3.14 F 1.316(stack the current w)144 523.2 R 1.316
+(orking directory)-.1 F 6.316(.W)-.65 G 1.315(ith no ar)-6.716 F 1.315
+(guments, e)-.18 F 1.315(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315
+(irectories and)-3.815 F .871
+(returns 0, unless the directory stack is empty)144 535.2 R 5.871(.A)
+-.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172 -.15
+(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 547.2 Q
+F1<ad6e>144 559.2 Q F0 .902(Suppresses the normal change of directory w\
+hen adding directories to the stack, so that)24.74 F
+(only the stack is manipulated.)180 571.2 Q F1(+)144 583.2 Q F2(n)A F0
+1.267(Rotates the stack so that the)25.3 F F2(n)3.767 E F0 1.268
+(th directory \(counting from the left of the list sho)B 1.268(wn by)
+-.25 F F1(dirs)180 595.2 Q F0 2.5(,s)C
+(tarting with zero\) is at the top.)-2.5 E F1<ad>144 607.2 Q F2(n)A F0
+.92(Rotates the stack so that the)25.3 F F2(n)3.42 E F0 .92
+(th directory \(counting from the right of the list sho)B .92(wn by)-.25
+F F1(dirs)180 619.2 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E F2(dir)144.35 631.2 Q F0(Adds)23.98 E F2(dir)2.85 E F0
+(to the directory stack at the top, making it the ne)3.23 E 2.5(wc)-.25
+G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 648 R
+F1(pushd)2.988 E F0 .488(command is successful, a)2.988 F F1(dirs)2.988
+E F0 .488(is performed as well.)2.988 F .489
+(If the \214rst form is used,)5.488 F F1(pushd)2.989 E F0 1.04
+(returns 0 unless the cd to)144 660 R F2(dir)3.89 E F0 -.1(fa)4.27 G
+3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F1(pushd)3.539 E F0
+1.039(returns 0 unless the directory)3.539 F .846(stack is empty)144 672
+R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack element i\
+s speci\214ed, or the directory change to the)-.15 F(speci\214ed ne)144
+684 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E(ails.)-.1 E F1(pwd)108
+700.8 Q F0([)2.5 E F1(\255LP)A F0(])A .845
+(Print the absolute pathname of the current w)144 712.8 R .845
+(orking directory)-.1 F 5.844(.T)-.65 G .844
+(he pathname printed contains no)-5.844 F .181(symbolic links if the)144
+724.8 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1
+.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1
+(set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F(GNU Bash-4.0)
+72 768 Q(2004 Apr 20)148.735 E(11)198.725 E 0 Cg EP
+%%Page: 12 12
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 3.264
+(enabled. If)144 84 R(the)3.264 E/F1 10/Times-Bold@0 SF<ad4c>3.264 E F0
+.763(option is used, the pathname printed may contain symbolic links.)
+3.264 F .763(The return)5.763 F 1.36(status is 0 unless an error occurs\
+ while reading the name of the current directory or an in)144 96 R -.25
+(va)-.4 G(lid).25 E(option is supplied.)144 108 Q F1 -.18(re)108 124.8 S
+(ad).18 E F0([)2.5 E F1(\255ers)A F0 2.5(][)C F1<ad61>-2.5 E/F2 10
+/Times-Italic@0 SF(aname)2.5 E F0 2.5(][)C F1<ad64>-2.5 E F2(delim)2.5 E
+F0 2.5(][)C F1<ad>-2.5 E F2(te)2.5 E(xt)-.2 E F0 2.5(][)C F1<ad6e>-2.5 E
+F2(nc)2.5 E(har)-.15 E(s)-.1 E F0 2.5(][)C F1<ad70>-2.5 E F2(pr)2.5 E
+(ompt)-.45 E F0 2.5(][)C F1<ad74>-2.5 E F2(timeout)2.5 E F0 2.5(][)C F1
+<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .516(\
+One line is read from the standard input, or from the \214le descriptor)
+144 136.8 R F2(fd)3.016 E F0 .516(supplied as an ar)3.016 F .516
+(gument to)-.18 F(the)144 148.8 Q F1<ad75>2.538 E F0 .038
+(option, and the \214rst w)2.538 F .038(ord is assigned to the \214rst)
+-.1 F F2(name)2.539 E F0 2.539(,t).18 G .039(he second w)-2.539 F .039
+(ord to the second)-.1 F F2(name)2.539 E F0(,).18 E .42
+(and so on, with lefto)144 160.8 R -.15(ve)-.15 G 2.92(rw).15 G .42
+(ords and their interv)-3.02 F .42
+(ening separators assigned to the last)-.15 F F2(name)2.92 E F0 5.42(.I)
+.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 172.8 R .54(wer w)-.25
+F .541(ords read from the input stream than names, the remaining names \
+are assigned empty)-.1 F -.25(va)144 184.8 S 2.511(lues. The).25 F .011
+(characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011
+(are used to split the line into w)2.261 F 2.511(ords. The)-.1 F .011
+(backslash character \()2.511 F F1(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89
+(be used to remo)144 196.8 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H
+1.891(pecial meaning for the ne).15 F 1.891
+(xt character read and for line continuation.)-.15 F
+(Options, if supplied, ha)144 208.8 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad61>144 220.8 Q F2(aname)2.5 E F0 1.05(The w)
+180 232.8 R 1.049
+(ords are assigned to sequential indices of the array v)-.1 F(ariable)
+-.25 E F2(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F
+F2(aname)180.33 244.8 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
+-.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F2(name)2.5 E F0
+(ar)2.5 E(guments are ignored.)-.18 E F1<ad64>144 256.8 Q F2(delim)2.5 E
+F0(The \214rst character of)180 268.8 Q F2(delim)2.5 E F0
+(is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E
+F1<ad65>144 280.8 Q F0 .372
+(If the standard input is coming from a terminal,)25.86 F F1 -.18(re)
+2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E
+-.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218
+(to obtain the line.)180 292.8 R .218
+(Readline uses the current \(or def)5.218 F .218
+(ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
+(acti)180 304.8 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E
+F1<ad69>144 316.8 Q F2(te)2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.715
+G(adline).18 E F0 .216(is being used to read the line,)2.715 F F2(te)
+2.716 E(xt)-.2 E F0 .216(is placed into the editing b)2.716 F(uf)-.2 E
+.216(fer before edit-)-.25 F(ing be)180 328.8 Q(gins.)-.15 E F1<ad6e>144
+340.8 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 352.8 S(ad).18 E
+F0 1.395(returns after reading)3.895 F F2(nc)3.895 E(har)-.15 E(s)-.1 E
+F0 1.395(characters rather than w)3.895 F 1.394
+(aiting for a complete line of)-.1 F(input.)180 364.8 Q F1<ad70>144
+376.8 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)180 388.8 Q F2(pr)3.66 E
+(ompt)-.45 E F0 1.161(on standard error)3.66 F 3.661(,w)-.4 G 1.161
+(ithout a trailing ne)-3.661 F 1.161(wline, before attempting to read)
+-.25 F(an)180 400.8 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F
+(prompt is displayed only if input is coming from a terminal.)2.5 E F1
+<ad72>144 412.8 Q F0 .544(Backslash does not act as an escape character)
+25.86 F 5.543(.T)-.55 G .543(he backslash is considered to be part of)
+-5.543 F(the line.)180 424.8 Q(In particular)5 E 2.5(,ab)-.4 G
+(ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.)
+-.25 E F1<ad73>144 436.8 Q F0(Silent mode.)26.41 E
+(If input is coming from a terminal, characters are not echoed.)5 E F1
+<ad74>144 448.8 Q F2(timeout)2.5 E F0(Cause)180 460.8 Q F1 -.18(re)3.548
+G(ad).18 E F0 1.048(to time out and return f)3.548 F 1.048
+(ailure if a complete line of input is not read within)-.1 F F2(timeout)
+180 472.8 Q F0(seconds.)3.497 E F2(timeout)5.997 E F0 .997
+(may be a decimal number with a fractional portion follo)3.497 F(wing)
+-.25 E .576(the decimal point.)180 484.8 R .576(This option is only ef)
+5.576 F(fecti)-.25 E .876 -.15(ve i)-.25 H(f).15 E F1 -.18(re)3.076 G
+(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .142
+(pipe, or other special \214le; it has no ef)180 496.8 R .142
+(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.141 E
+F2(timeout)2.641 E F0 .141(is 0,)2.641 F F1 -.18(re)180 508.8 S(ad).18 E
+F0 .113(returns success if input is a)2.613 F -.25(va)-.2 G .113
+(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .114
+(ailure otherwise.)-2.713 F(The e)180 520.8 Q
+(xit status is greater than 128 if the timeout is e)-.15 E(xceeded.)-.15
+E F1<ad75>144 532.8 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
+14.46 E F2(fd)2.5 E F0(.)A .192(If no)144 549.6 R F2(names)3.052 E F0
+.192(are supplied, the line read is assigned to the v)2.962 F(ariable)
+-.25 E F3(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .191
+(The return code is zero,)4.691 F 1.343
+(unless end-of-\214le is encountered,)144 561.6 R F1 -.18(re)3.843 G(ad)
+.18 E F0 1.343
+(times out \(in which case the return code is greater than)3.843 F
+(128\), or an in)144 573.6 Q -.25(va)-.4 G
+(lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F1
+<ad75>2.5 E F0(.)A F1 -.18(re)108 590.4 S(adonly).18 E F0([)2.5 E F1
+(\255aA)A(pf)-.25 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E
+F0 2.5(].)C(..])-2.5 E .77(The gi)144 602.4 R -.15(ve)-.25 G(n).15 E F2
+(names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77
+(alues of these)-.25 F F2(names)3.63 E F0 .77
+(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 614.4 R
+1.096(If the)6.096 F F1<ad66>3.596 E F0 1.097
+(option is supplied, the functions corresponding to the)3.596 F F2
+(names)3.597 E F0 1.097(are so)3.597 F(mark)144 626.4 Q 3.334(ed. The)
+-.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
+(ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
+-3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
+-.25 E .537(ables to associati)144 638.4 R .837 -.15(ve a)-.25 H 3.037
+(rrays. If).15 F(no)3.038 E F2(name)3.398 E F0(ar)3.218 E .538
+(guments are gi)-.18 F -.15(ve)-.25 G .538(n, or if the).15 F F1<ad70>
+3.038 E F0 .538(option is supplied, a list)3.038 F .081
+(of all readonly names is printed.)144 650.4 R(The)5.081 E F1<ad70>2.581
+E F0 .08(option causes output to be displayed in a format that may)2.581
+F 1.176(be reused as input.)144 662.4 R 1.176(If a v)6.176 F 1.176
+(ariable name is follo)-.25 F 1.176(wed by =)-.25 F F2(wor)A(d)-.37 E F0
+3.676(,t)C 1.176(he v)-3.676 F 1.177(alue of the v)-.25 F 1.177
+(ariable is set to)-.25 F F2(wor)144 674.4 Q(d)-.37 E F0 6.206(.T)C
+1.206(he return status is 0 unless an in)-6.206 F -.25(va)-.4 G 1.205
+(lid option is encountered, one of the).25 F F2(names)4.065 E F0 1.205
+(is not a)3.975 F -.25(va)144 686.4 S(lid shell v).25 E
+(ariable name, or)-.25 E F1<ad66>2.5 E F0(is supplied with a)2.5 E F2
+(name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 703.2 S
+(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .586
+(Causes a function to e)144 715.2 R .587(xit with the return v)-.15 F
+.587(alue speci\214ed by)-.25 F F2(n)3.087 E F0 5.587(.I).24 G(f)-5.587
+E F2(n)3.447 E F0 .587(is omitted, the return status is)3.327 F 1.335
+(that of the last command e)144 727.2 R -.15(xe)-.15 G 1.335
+(cuted in the function body).15 F 6.335(.I)-.65 G 3.835(fu)-6.335 G
+1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(12)198.725 E 0 Cg EP
+%%Page: 13 13
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E -.15(exe)144
+84 S .794(cution of a script by the).15 F/F1 10/Times-Bold@0 SF(.)3.294
+E F0(\()5.794 E F1(sour)A(ce)-.18 E F0 3.294(\)c)C .794
+(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .795
+(cuting that script).15 F .246(and return either)144 96 R/F2 10
+/Times-Italic@0 SF(n)3.106 E F0 .246(or the e)2.986 F .246
+(xit status of the last command e)-.15 F -.15(xe)-.15 G .246
+(cuted within the script as the e).15 F .245(xit sta-)-.15 F .081
+(tus of the script.)144 108 R .082
+(If used outside a function and not during e)5.082 F -.15(xe)-.15 G .082
+(cution of a script by).15 F F1(.)2.582 E F0 2.582(,t).833 G .082
+(he return sta-)-2.582 F 2.306(tus is f)144 120 R 4.806(alse. An)-.1 F
+4.806(yc)-.15 G 2.305(ommand associated with the)-4.806 F F1(RETURN)
+4.805 E F0 2.305(trap is e)4.805 F -.15(xe)-.15 G 2.305(cuted before e)
+.15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.)
+144 132 Q F1(set)108 148.8 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A
+F0 2.5(][)C F1<ad6f>-2.5 E F2(option)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)
+-.37 E F0(...])2.5 E F1(set)108 160.8 Q F0([)2.5 E F1
+(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option)2.5 E F0 2.5
+(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 172.8 S .835
+(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
+.836(ariable are displayed in a format that can be)-.25 F .784
+(reused as input for setting or resetting the currently-set v)144 184.8
+R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
+(riables cannot be).25 F 2.946(reset. In)144 196.8 R F2 .447(posix mode)
+2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+(ariables are listed.)-.25 F .447
+(The output is sorted according to the current)5.447 F 3.531
+(locale. When)144 208.8 R 1.031(options are speci\214ed, the)3.531 F
+3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)
+-.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623
+(after option processing are treated as v)144 220.8 R 1.624
+(alues for the positional parameters and are assigned, in)-.25 F(order)
+144 232.8 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
+F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 244.8 Q
+F0 .54(Automatically mark v)29.3 F .539
+(ariables and functions which are modi\214ed or created for e)-.25 F
+.539(xport to)-.15 F(the en)184 256.8 Q
+(vironment of subsequent commands.)-.4 E F1<ad62>144 268.8 Q F0 .131
+(Report the status of terminated background jobs immediately)28.74 F
+2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
+(primary prompt.)184 280.8 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
+-.25 H(nly when job control is enabled.).15 E F1<ad65>144 292.8 Q F0
+1.694(Exit immediately if a)29.86 F F2 1.693(simple command)4.193 F F0
+(\(see)4.193 E/F3 9/Times-Bold@0 SF 1.693(SHELL GRAMMAR)4.193 F F0(abo)
+3.943 E -.15(ve)-.15 G 4.193(\)e).15 G 1.693(xits with a)-4.343 F .011
+(non-zero status.)184 304.8 R .011(The shell does not e)5.011 F .011
+(xit if the command that f)-.15 F .012(ails is part of the command)-.1 F
+.719(list immediately follo)184 316.8 R .719(wing a)-.25 F F1(while)
+3.219 E F0(or)3.219 E F1(until)3.219 E F0 -.1(ke)3.219 G(yw)-.05 E .719
+(ord, part of the test in an)-.1 F F1(if)3.218 E F0(statement,)3.218 E
+.378(part of a command e)184 328.8 R -.15(xe)-.15 G .379(cuted in a).15
+F F1(&&)2.879 E F0(or)2.879 E/F4 10/Symbol SF<efef>2.879 E F0 .379
+(list, an)2.879 F 2.879(yc)-.15 G .379(ommand in a pipeline b)-2.879 F
+.379(ut the last,)-.2 F .578(or if the command')184 340.8 R 3.078(sr)
+-.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve)-.4 G
+.578(rted via).15 F F1(!)3.078 E F0 5.578(.F)C .577
+(ailing simple commands that)-5.728 F .402(are part of shell functions \
+or command lists enclosed in braces or parentheses satisfying)184 352.8
+R .841(the abo)184 364.8 R 1.141 -.15(ve c)-.15 H .841
+(onditions do not cause the shell to e).15 F 3.341(xit. A)-.15 F .84
+(trap on)3.34 F F1(ERR)3.34 E F0 3.34(,i)C 3.34(fs)-3.34 G .84(et, is e)
+-3.34 F -.15(xe)-.15 G(cuted).15 E(before the shell e)184 376.8 Q(xits.)
+-.15 E F1<ad66>144 388.8 Q F0(Disable pathname e)30.97 E(xpansion.)-.15
+E F1<ad68>144 400.8 Q F0 2.238(Remember the location of commands as the)
+28.74 F 4.738(ya)-.15 G 2.239(re look)-4.738 F 2.239(ed up for e)-.1 F
+-.15(xe)-.15 G 4.739(cution. This).15 F(is)4.739 E(enabled by def)184
+412.8 Q(ault.)-.1 E F1<ad6b>144 424.8 Q F0 .514(All ar)28.74 F .514
+(guments in the form of assignment statements are placed in the en)-.18
+F .513(vironment for a)-.4 F
+(command, not just those that precede the command name.)184 436.8 Q F1
+<ad6d>144 448.8 Q F0 .148(Monitor mode.)25.97 F .148
+(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
+.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .637
+(on systems that support it \(see)184 460.8 R F3 .636(JOB CONTR)3.136 F
+(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .636
+(processes run in a)3.136 F .641
+(separate process group and a line containing their e)184 472.8 R .642
+(xit status is printed upon their com-)-.15 F(pletion.)184 484.8 Q F1
+<ad6e>144 496.8 Q F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F
+-.15(xe)-.15 G .653(cute them.).15 F .652
+(This may be used to check a shell script for)5.653 F(syntax errors.)184
+508.8 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
+E F1<ad6f>144 520.8 Q F2(option\255name)2.5 E F0(The)184 532.8 Q F2
+(option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E F1
+(allexport)184 544.8 Q F0(Same as)224 556.8 Q F1<ad61>2.5 E F0(.)A F1
+(braceexpand)184 568.8 Q F0(Same as)224 580.8 Q F1<ad42>2.5 E F0(.)A F1
+(emacs)184 592.8 Q F0 .089
+(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
+-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
+(when the shell is interacti)224 604.8 R -.15(ve)-.25 G 3.45(,u).15 G
+.95(nless the shell is started with the)-3.45 F F1(\255\255noediting)
+3.45 E F0 2.5(option. This)224 616.8 R(also af)2.5 E
+(fects the editing interf)-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G
+(ad \255e).18 E F0(.)A F1(errtrace)184 628.8 Q F0(Same as)5.03 E F1
+<ad45>2.5 E F0(.)A F1(functrace)184 640.8 Q F0(Same as)224 652.8 Q F1
+<ad54>2.5 E F0(.)A F1(err)184 664.8 Q(exit)-.18 E F0(Same as)11.31 E F1
+<ad65>2.5 E F0(.)A F1(hashall)184 676.8 Q F0(Same as)9.43 E F1<ad68>2.5
+E F0(.)A F1(histexpand)184 688.8 Q F0(Same as)224 700.8 Q F1<ad48>2.5 E
+F0(.)A F1(history)184 712.8 Q F0 .586(Enable command history)10 F 3.087
+(,a)-.65 G 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)
+-.15 H(nder).15 E F3(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F5 9
+/Times-Roman@0 SF(.)A F0 .587(This option is)5.087 F(on by def)224 724.8
+Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E(GNU Bash-4.0)
+72 768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg EP
+%%Page: 14 14
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(ignor)184 84 Q(eeof)-.18 E F0 1.657(The ef)224 96 R
+1.657(fect is as if the shell command)-.25 F/F2 10/Courier@0 SF
+(IGNOREEOF=10)4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted)
+.15 E(\(see)224 108 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15
+(ve)-.15 G(\).).15 E F1 -.1(ke)184 120 S(yw).1 E(ord)-.1 E F0(Same as)
+224 132 Q F1<ad6b>2.5 E F0(.)A F1(monitor)184 144 Q F0(Same as)5.56 E F1
+<ad6d>2.5 E F0(.)A F1(noclob)184 156 Q(ber)-.1 E F0(Same as)224 168 Q F1
+<ad43>2.5 E F0(.)A F1(noexec)184 180 Q F0(Same as)11.12 E F1<ad6e>2.5 E
+F0(.)A F1(noglob)184 192 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1
+(nolog)184 204 Q F0(Currently ignored.)16.66 E F1(notify)184 216 Q F0
+(Same as)15 E F1<ad62>2.5 E F0(.)A F1(nounset)184 228 Q F0(Same as)6.66
+E F1<ad75>2.5 E F0(.)A F1(onecmd)184 240 Q F0(Same as)6.67 E F1<ad74>2.5
+E F0(.)A F1(ph)184 252 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E
+F0(.)A F1(pipefail)184 264 Q F0 1.029(If set, the return v)7.77 F 1.029
+(alue of a pipeline is the v)-.25 F 1.03
+(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 276 R
+1.136
+(xit with a non-zero status, or zero if all commands in the pipeline)
+-.15 F -.15(ex)224 288 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 300 Q F0
+2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
+2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
+(fers from the)-.25 F(POSIX standard to match the standard \()224 312 Q
+/F3 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 324 Q(vileged)
+-.1 E F0(Same as)224 336 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 348 S
+(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 360 Q F0
+1.466(Use a vi-style command line editing interf)32.22 F 3.965
+(ace. This)-.1 F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F
+(interf)224 372 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
+(.)A F1(xtrace)184 384 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
+402 Q F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F3
+(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553
+(alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184
+414 Q F0 1.072(is supplied with no)3.572 F F3(option\255name)3.572 E F0
+3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071
+(commands to recreate the current)3.571 F
+(option settings is displayed on the standard output.)184 426 Q F1<ad70>
+144 438 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F3(privile)4.821 E -.1
+(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
+/F4 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F4($B)3.572 E(ASH_ENV)
+-.27 E F0 1.072(\214les are not pro-)3.322 F 1.501
+(cessed, shell functions are not inherited from the en)184 450 R 1.5
+(vironment, and the)-.4 F F4(SHELLOPTS)4 E/F5 9/Times-Roman@0 SF(,)A F1
+(CDP)184 462 Q -.95(AT)-.74 G(H).95 E F0 5.603(,a)C(nd)-5.603 E F1
+(GLOBIGNORE)5.603 E F0 -.25(va)5.603 G 3.103(riables, if the).25 F 5.603
+(ya)-.15 G 3.103(ppear in the en)-5.603 F 3.103(vironment, are)-.4 F
+2.618(ignored. If)184 474 R .118(the shell is started with the ef)2.618
+F(fecti)-.25 E .418 -.15(ve u)-.25 H .117
+(ser \(group\) id not equal to the real user).15 F 1.018
+(\(group\) id, and the)184 486 R F1<ad70>3.518 E F0 1.018
+(option is not supplied, these actions are tak)3.518 F 1.018
+(en and the ef)-.1 F(fecti)-.25 E -.15(ve)-.25 G .287
+(user id is set to the real user id.)184 498 R .286(If the)5.286 F F1
+<ad70>2.786 E F0 .286(option is supplied at startup, the ef)2.786 F
+(fecti)-.25 E .586 -.15(ve u)-.25 H(ser).15 E .102(id is not reset.)184
+510 R -.45(Tu)5.102 G .102(rning this option of).45 F 2.602(fc)-.25 G
+.102(auses the ef)-2.602 F(fecti)-.25 E .402 -.15(ve u)-.25 H .103
+(ser and group ids to be set to).15 F(the real user and group ids.)184
+522 Q F1<ad74>144 534 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15
+G(cuting one command.).15 E F1<ad75>144 546 Q F0 -.35(Tr)28.74 G .445
+(eat unset v).35 F .444
+(ariables as an error when performing parameter e)-.25 F 2.944
+(xpansion. If)-.15 F -.15(ex)2.944 G .444(pansion is).15 F .519
+(attempted on an unset v)184 558 R .519
+(ariable, the shell prints an error message, and, if not interacti)-.25
+F -.15(ve)-.25 G(,).15 E -.15(ex)184 570 S(its with a non-zero status.)
+.15 E F1<ad76>144 582 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 594 Q F0 .315(After e)29.3 F .315
+(xpanding each)-.15 F F3 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
+2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E
+F1(select)2.815 E F0(command,)2.815 E 1.235(or arithmetic)184 606 R F1
+-.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236
+(xpanded v)-.15 F 1.236(alue of)-.25 F F4(PS4)3.736 E F5(,)A F0(follo)
+3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 618 Q
+(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
+<ad42>144 630 Q F0 2.579(The shell performs brace e)27.63 F 2.578
+(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
+-.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 642 Q
+(ault.)-.1 E F1<ad43>144 654 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
+F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
+2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
+3.054(tors. This)184 666 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+(rridden when creating output \214les by using the redirection opera-)
+.15 F(tor)184 678 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 690 Q F0 .103(If set, an)27.63 F 2.603(yt)-.15 G .103(rap on)
+-2.603 F F1(ERR)2.603 E F0 .104
+(is inherited by shell functions, command substitutions, and com-)2.603
+F .839(mands e)184 702 R -.15(xe)-.15 G .839(cuted in a subshell en).15
+F 3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838
+(trap is normally not inherited in)3.338 F(such cases.)184 714 Q
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(14)198.725 E 0 Cg EP
+%%Page: 15 15
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF<ad48>144 84 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531
+(style history substitution.)5.531 F .531(This option is on by def)5.531
+F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 96 Q -.15(ve)
+-.25 G(.).15 E F1<ad50>144 108 Q F0 1.165
+(If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
+(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.164
+(cuting commands such as).15 F F1(cd)3.664 E F0 2.821
+(that change the current w)184 120 R 2.822(orking directory)-.1 F 7.822
+(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.822
+(ysical directory structure)-.05 F 2.686(instead. By)184 132 R(def)2.686
+E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
+(ws the logical chain of directories when performing com-)-.25 F
+(mands which change the current directory)184 144 Q(.)-.65 E F1<ad54>144
+156 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
+(DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89
+(are inherited by shell functions, command)3.39 F 1.932
+(substitutions, and commands e)184 168 R -.15(xe)-.15 G 1.932
+(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 180 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 192 Q
+F0 .4(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
+(his option, then the positional parameters are unset.)-2.901 F
+(Otherwise,)5.401 E(the positional parameters are set to the)184 204 Q
+/F2 10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5
+(ni).15 G 2.5(fs)-2.5 G(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>
+2.5 E F0(.)A F1<ad>144 216 Q F0 1.945
+(Signal the end of options, cause all remaining)34.3 F F2(ar)4.444 E(g)
+-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.444(ea)-4.444 G 1.944
+(ssigned to the positional)-4.444 F 3.445(parameters. The)184 228 R F1
+<ad78>3.445 E F0(and)3.445 E F1<ad76>3.445 E F0 .945
+(options are turned of)3.445 F 3.445(f. If)-.25 F .946(there are no)
+3.445 F F2(ar)3.446 E(g)-.37 E F0 .946(s, the positional)B
+(parameters remain unchanged.)184 240 Q .425(The options are of)144
+256.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+(ault unless otherwise noted.)-.1 F .425
+(Using + rather than \255 causes these options)5.425 F .177
+(to be turned of)144 268.8 R 2.677(f. The)-.25 F .178
+(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
+-.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066
+(current set of options may be found in)144 280.8 R F1<24ad>2.566 E F0
+5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
+(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
+(is encountered.)144 292.8 Q F1(shift)108 309.6 Q F0([)2.5 E F2(n)A F0
+(])A .428(The positional parameters from)144 321.6 R F2(n)2.928 E F0
+.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.429 G
+.429(rameters represented by the num-).15 F(bers)144 333.6 Q F1($#)2.583
+E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0<ad>A F2(n)A F0 .083
+(+1 are unset.)B F2(n)5.443 E F0 .083(must be a non-ne)2.823 F -.05(ga)
+-.15 G(ti).05 E .382 -.15(ve n)-.25 H .082(umber less than or equal to)
+.15 F F1($#)2.582 E F0 5.082(.I)C(f)-5.082 E F2(n)2.942 E F0 .06
+(is 0, no parameters are changed.)144 345.6 R(If)5.06 E F2(n)2.92 E F0
+.06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
+(If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
+(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 357.6 R
+.144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0
+.143(is greater than)2.883 F F1($#)2.643 E F0
+(or less than zero; otherwise 0.)144 369.6 Q F1(shopt)108 386.4 Q F0([)
+2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
+-2.5 E F0(...])2.5 E -.8(To)144 398.4 S .222(ggle the v).8 F .222
+(alues of v)-.25 F .222(ariables controlling optional shell beha)-.25 F
+(vior)-.2 E 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1
+<ad70>2.722 E F0 .721(option, a list of all settable options is display\
+ed, with an indication of whether or not each is set.)144 410.4 R(The)
+144 422.4 Q F1<ad70>2.827 E F0 .327(option causes output to be displaye\
+d in a form that may be reused as input.)2.827 F .328(Other options)
+5.328 F(ha)144 434.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
+-.25 E F1<ad73>144 446.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
+E F0(.)A F1<ad75>144 458.4 Q F0(Disable \(unset\) each)24.74 E F2
+(optname)2.5 E F0(.)A F1<ad71>144 470.4 Q F0 .003(Suppresses normal out\
+put \(quiet mode\); the return status indicates whether the)24.74 F F2
+(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 482.4 R .255
+(If multiple)5.255 F F2(optname)2.755 E F0(ar)2.755 E .256
+(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1
+<ad71>2.756 E F0 2.756(,t)C .256(he return status is zero if)-2.756 F
+(all)180 494.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
+2.5 E F1<ad6f>144 506.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
+(optname)2.5 E F0(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0
+(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .128
+(If either)144 523.2 R F1<ad73>2.628 E F0(or)2.628 E F1<ad75>2.628 E F0
+.127(is used with no)2.627 F F2(optname)2.627 E F0(ar)2.627 E .127
+(guments, the display is limited to those options which)-.18 F 1.023
+(are set or unset, respecti)144 535.2 R -.15(ve)-.25 G(ly).15 E 6.023
+(.U)-.65 G 1.024(nless otherwise noted, the)-6.023 F F1(shopt)3.524 E F0
+1.024(options are disabled \(unset\) by)3.524 F(def)144 547.2 Q(ault.)
+-.1 E 1.544(The return status when listing options is zero if all)144
+564 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)
+4.044 F .696
+(When setting or unsetting options, the return status is zero unless an)
+144 576 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696(alid shell)
+-.25 F(option.)144 588 Q(The list of)144 604.8 Q F1(shopt)2.5 E F0
+(options is:)2.5 E F1(autocd)144 622.8 Q F0 .2
+(If set, a command name that is the name of a directory is e)11.11 F
+-.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
+(ment to the)184 634.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
+F1(cdable_v)144 646.8 Q(ars)-.1 E F0 .155(If set, an ar)184 658.8 R .155
+(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
+(iltin command that is not a directory is assumed to be the).2 F
+(name of a v)184 670.8 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 682.8 Q F0
+1.055
+(If set, minor errors in the spelling of a directory component in a)
+10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
+(corrected. The)184 694.8 R 1.487(errors check)3.987 F 1.487
+(ed for are transposed characters, a missing character)-.1 F 3.988(,a)
+-.4 G(nd)-3.988 E .552(one character too man)184 706.8 R 4.352 -.65
+(y. I)-.15 H 3.052(fac).65 G .552
+(orrection is found, the corrected \214le name is printed, and)-3.052 F
+(the command proceeds.)184 718.8 Q
+(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
+.15 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(15)198.725 E 0 Cg EP
+%%Page: 16 16
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(checkhash)144 84 Q F0 2.079(If set,)184 96 R F1(bash)
+4.579 E F0 2.079(checks that a command found in the hash table e)4.579 F
+2.08(xists before trying to)-.15 F -.15(exe)184 108 S(cute it.).15 E
+(If a hashed command no longer e)5 E
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 120 Q
+F0 .449(If set,)184 132 R F1(bash)2.949 E F0 .449
+(lists the status of an)2.949 F 2.949(ys)-.15 G .448
+(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
+F -.15(ve)-.25 G 3.438(shell. If)184 144 R(an)3.438 E 3.438(yj)-.15 G
+.938(obs are running, this causes the e)-3.438 F .938
+(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 1.456
+(attempted without an interv)184 156 R 1.456(ening command \(see)-.15 F
+F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G 3.956
+(\). The).15 F(shell)3.956 E(al)184 168 Q -.1(wa)-.1 G(ys postpones e).1
+E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)-2.5 E F1
+(checkwinsize)144 180 Q F0 .796(If set,)184 192 R F1(bash)3.296 E F0
+.796(checks the windo)3.296 F 3.296(ws)-.25 G .797
+(ize after each command and, if necessary)-3.296 F 3.297(,u)-.65 G .797
+(pdates the)-3.297 F -.25(va)184 204 S(lues of).25 E/F2 9/Times-Bold@0
+SF(LINES)2.5 E F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A
+F1(cmdhist)144 216 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
+(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202
+(ll lines of a multiple-line command in the same history).15 F(entry)184
+228 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 240 Q
+F0 .419(If set,)184 252 R F1(bash)2.919 E F0 .419(changes its beha)2.919
+F .419(vior to that of v)-.2 F .42(ersion 3.1 with respect to quoted ar)
+-.15 F(guments)-.18 E(to the conditional command')184 264 Q 2.5(s=)-.55
+G 2.5(~o)-2.5 G(perator)-2.5 E(.)-.55 E F1(dirspell)144 276 Q F0 .859
+(If set,)7.77 F F1(bash)3.359 E F0 .858
+(attempts spelling correction on directory names during w)3.359 F .858
+(ord completion if)-.1 F
+(the directory name initially supplied does not e)184 288 Q(xist.)-.15 E
+F1(dotglob)144 300 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
+(includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i)
+-.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
+(xpansion.)-.15 E F1(execfail)144 312 Q F0 1.387
+(If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386
+(hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
+1.386(cute the \214le speci\214ed as an).15 F(ar)184 324 Q
+(gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
+(An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 336 Q F0
+.716(If set, aliases are e)184 348 R .717(xpanded as described abo)-.15
+F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .717
+(This option is enabled)5.217 F(by def)184 360 Q(ault for interacti)-.1
+E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 372 Q(ug)-.2 E F0
+(If set, beha)184 384 Q(vior intended for use by deb)-.2 E
+(uggers is enabled:)-.2 E F1(1.)184 396 Q F0(The)28.5 E F1<ad46>4.251 E
+F0 1.751(option to the)4.251 F F1(declar)4.251 E(e)-.18 E F0 -.2(bu)
+4.251 G 1.751(iltin displays the source \214le name and line).2 F
+(number corresponding to each function name supplied as an ar)220 408 Q
+(gument.)-.18 E F1(2.)184 420 Q F0 1.667(If the command run by the)28.5
+F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
+1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 432
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 444 Q F0 .841
+(If the command run by the)28.5 F F1(DEB)3.341 E(UG)-.1 E F0 .841
+(trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15
+(exe)220 456 S .488
+(cuting in a subroutine \(a shell function or a shell script e).15 F
+-.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
+(sour)220 468 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
+-.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1 26(4. B)184
+480 R(ASH_ARGC)-.3 E F0(and)3.776 E F1 -.3(BA)3.776 G(SH_ARGV).3 E F0
+1.275(are updated as described in their descrip-)3.776 F(tions abo)220
+492 Q -.15(ve)-.15 G(.).15 E F1(5.)184 504 Q F0 1.359
+(Function tracing is enabled:)28.5 F 1.359
+(command substitution, shell functions, and sub-)6.359 F(shells in)220
+516 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
+/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
+(DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
+184 528 Q F0 .805(Error tracing is enabled:)28.5 F .804
+(command substitution, shell functions, and subshells)5.805 F(in)220 540
+Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4
+(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E(OR)-.3 E F0
+(trap.)2.5 E F1(extglob)144 552 Q F0 .4(If set, the e)8.89 F .4
+(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 564 Q
+F0(are enabled.)2.5 E F1(extquote)144 576 Q F0 2.473(If set,)184 588 R
+F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
+E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within)
+-4.973 F F1(${)4.973 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
+(pansions).15 E(enclosed in double quotes.)184 600 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 612 Q F0
+1.424(If set, patterns which f)7.77 F 1.425
+(ail to match \214lenames during pathname e)-.1 F 1.425
+(xpansion result in an)-.15 F -.15(ex)184 624 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 636 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.585(If set, the suf)184 648 R<8c78>-.25 E .585(es speci\214ed by the)
+-.15 F F1(FIGNORE)3.085 E F0 .585(shell v)3.085 F .585(ariable cause w)
+-.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 660 R .32
+(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
+(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.33
+(pletions. See)184 672 R F2 .83(SHELL V)3.33 F(ARIABLES)-1.215 E F0(abo)
+3.08 E 1.13 -.15(ve f)-.15 H .829(or a description of).15 F F1(FIGNORE)
+3.329 E F0 5.829(.T)C .829(his option)-5.829 F(is enabled by def)184 684
+Q(ault.)-.1 E F1(globstar)144 696 Q F0 .439(If set, the pattern)5 F F1
+(**)2.939 E F0 .439(used in a \214lename e)2.939 F .439(xpansion conte)
+-.15 F .44(xt will match a \214les and zero or)-.15 F 1.298
+(more directories and subdirectories.)184 708 R 1.298
+(If the pattern is follo)6.298 F 1.298(wed by a)-.25 F F1(/)3.797 E F0
+3.797(,o)C 1.297(nly directories)-3.797 F(and subdirectories match.)184
+720 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(16)198.725 E 0 Cg EP
+%%Page: 17 17
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(gnu_errfmt)144 84 Q F0(If set, shell error messages ar\
+e written in the standard GNU error message format.)184 96 Q F1
+(histappend)144 108 Q F0 .383
+(If set, the history list is appended to the \214le named by the v)184
+120 R .384(alue of the)-.25 F F1(HISTFILE)2.884 E F0 -.25(va)2.884 G
+(ri-).25 E(able when the shell e)184 132 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 144 Q(eedit)-.18
+E F0 .576(If set, and)184 156 R F1 -.18(re)3.076 G(adline).18 E F0 .575
+(is being used, a user is gi)3.076 F -.15(ve)-.25 G 3.075(nt).15 G .575
+(he opportunity to re-edit a f)-3.075 F .575(ailed his-)-.1 F
+(tory substitution.)184 168 Q F1(histv)144 180 Q(erify)-.1 E F0 .402
+(If set, and)184 192 R F1 -.18(re)2.903 G(adline).18 E F0 .403
+(is being used, the results of history substitution are not immediately)
+2.903 F .662(passed to the shell parser)184 204 R 5.662(.I)-.55 G .661
+(nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161
+G(adline).18 E F0(editing)3.161 E -.2(bu)184 216 S -.25(ff).2 G(er).25 E
+2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
+(hostcomplete)144 228 Q F0 1.181(If set, and)184 240 R F1 -.18(re)3.681
+G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182
+(will attempt to perform hostname completion)3.682 F 1.381(when a w)184
+252 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
+/F2 9/Times-Bold@0 SF(READLINE)3.88 E F0(abo)184 264 Q -.15(ve)-.15 G
+2.5(\). This).15 F(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144
+276 Q F0(If set,)184 288 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)
+2.5 E F0(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H
+(ogin shell e).15 E(xits.)-.15 E F1(interacti)144 300 Q -.1(ve)-.1 G
+(_comments).1 E F0 .33(If set, allo)184 312 R 2.83(waw)-.25 G .33
+(ord be)-2.93 F .33(ginning with)-.15 F F1(#)2.83 E F0 .33
+(to cause that w)2.83 F .33(ord and all remaining characters on)-.1 F
+.967(that line to be ignored in an interacti)184 324 R 1.267 -.15(ve s)
+-.25 H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)
+-.15 G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184
+336 Q(ault.)-.1 E F1(lithist)144 348 Q F0 .654(If set, and the)15.55 F
+F1(cmdhist)3.154 E F0 .654
+(option is enabled, multi-line commands are sa)3.154 F -.15(ve)-.2 G
+3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F
+(with embedded ne)184 360 Q
+(wlines rather than using semicolon separators where possible.)-.25 E F1
+(login_shell)144 372 Q F0 .486
+(The shell sets this option if it is started as a login shell \(see)184
+384 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
+-.15 G 2.986(\). The).15 F -.25(va)184 396 S(lue may not be changed.).25
+E F1(mailwar)144 408 Q(n)-.15 E F0 .814(If set, and a \214le that)184
+420 R F1(bash)3.314 E F0 .815
+(is checking for mail has been accessed since the last time it)3.314 F
+-.1(wa)184 432 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+(`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
+(has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
+(no_empty_cmd_completion)144 444 Q F0 .146(If set, and)184 456 R F1 -.18
+(re)2.646 G(adline).18 E F0 .146(is being used,)2.646 F F1(bash)2.646 E
+F0 .145(will not attempt to search the)2.646 F F1 -.74(PA)2.645 G(TH)
+-.21 E F0 .145(for possible)2.645 F
+(completions when completion is attempted on an empty line.)184 468 Q F1
+(nocaseglob)144 480 Q F0 .436(If set,)184 492 R F1(bash)2.936 E F0 .436
+(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25
+H .437(ashion when performing pathname).05 F -.15(ex)184 504 S
+(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 516 Q F0 1.194(If set,)184
+528 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
+3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05
+F(while e)184 540 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
+E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 552 Q F0
+.854(If set,)184 564 R F1(bash)3.354 E F0(allo)3.354 E .855
+(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855
+(thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o)
+-3.355 E -.15(ex)184 576 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 588 Q(ogcomp)-.18 E F0 .677
+(If set, the programmable completion f)184 600 R .677(acilities \(see)
+-.1 F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E
+-.15(ve)-.15 G(\)).15 E(are enabled.)184 612 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 624 Q(omptv)
+-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 636 R 1.448
+(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
+-.15 F -.15(ex)184 648 S .171(pansion, and quote remo).15 F -.25(va)-.15
+G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
+-.15 F F2(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E
+(This option is enabled by def)184 660 Q(ault.)-.1 E F1 -.18(re)144 672
+S(stricted_shell).18 E F0 1.069
+(The shell sets this option if it is started in restricted mode \(see)
+184 684 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 696 Q 4.178
+(w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F
+1.678(This is not reset when the startup \214les are)6.678 F -.15(exe)
+184 708 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
+-.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(17)198.725 E 0 Cg EP
+%%Page: 18 18
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(shift_v)144 84 Q(erbose)-.1 E F0 .501(If set, the)184
+96 R F1(shift)3.001 E F0 -.2(bu)3.001 G .501
+(iltin prints an error message when the shift count e).2 F .502
+(xceeds the number)-.15 F(of positional parameters.)184 108 Q F1(sour)
+144 120 Q(cepath)-.18 E F0 .771(If set, the)184 132 R F1(sour)3.271 E
+(ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v)
+-3.471 F .771(alue of)-.25 F/F2 9/Times-Bold@0 SF -.666(PA)3.27 G(TH)
+-.189 E F0 .77(to \214nd the directory containing the)3.02 F
+(\214le supplied as an ar)184 144 Q 2.5(gument. This)-.18 F
+(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 156 Q F0
+(If set, the)184 168 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
+(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
+108 180 Q F0([)2.5 E F1<ad66>A F0(])A 1.001(Suspend the e)144 192 R -.15
+(xe)-.15 G 1.001(cution of this shell until it recei).15 F -.15(ve)-.25
+G 3.501(sa).15 G F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002
+(login shell cannot be)3.502 F .023(suspended; the)144 204 R F1<ad66>
+2.523 E F0 .023(option can be used to o)2.523 F -.15(ve)-.15 G .022
+(rride this and force the suspension.).15 F .022(The return status is)
+5.022 F 2.5(0u)144 216 S(nless the shell is a login shell and)-2.5 E F1
+<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5 E
+F1(test)108 228 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108
+240 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15
+(Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15
+(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G
+(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188
+(operator and operand must be a separate ar)144 252 R 3.688
+(gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F
+1.889(described abo)144 264 R 2.189 -.15(ve u)-.15 H(nder).15 E F2
+(CONDITION)4.389 E 1.889(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
+F1(test)6.389 E F0 1.89(does not accept an)4.389 F 4.39(yo)-.15 G 1.89
+(ptions, nor)-4.39 F(does it accept and ignore an ar)144 276 Q
+(gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
+E .786(Expressions may be combined using the follo)144 294 R .785
+(wing operators, listed in decreasing order of prece-)-.25 F 2.5
+(dence. The)144 306 R -.25(eva)2.5 G
+(luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65
+(w.)-.25 G F1(!)144 318 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
+(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()
+144 330 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
+F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
+(his may be used to o)-5.26 F -.15(ve)-.15 G .26
+(rride the normal precedence of opera-).15 F(tors.)180 342 Q F3 -.2(ex)
+144 354 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35
+(Tr)180 366 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3
+-.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 378 S(pr1).2 E
+F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 390 S
+(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2(ex)2.5 G
+(pr2).2 E F0(is true.)2.52 E F1(test)144 406.8 Q F0(and)2.5 E F1([)2.5 E
+F0 -.25(eva)2.5 G(luate conditional e).25 E
+(xpressions using a set of rules based on the number of ar)-.15 E
+(guments.)-.18 E 2.5(0a)144 424.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 436.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 448.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 460.8 Q
+(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
+E 2.5(2a)144 472.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 484.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
+F .37(xpression is true if and only if the second ar)-.15 F .37
+(gument is null.)-.18 F .379(If the \214rst ar)180 496.8 R .38
+(gument is one of the unary conditional operators listed abo)-.18 F .68
+-.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 508.8 Q .553
+(AL EXPRESSIONS)-.18 F F4(,)A F0 .552(the e)2.802 F .552
+(xpression is true if the unary test is true.)-.15 F .552
+(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 520.8 Q
+(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 532.8 S -.18(rg)-2.5 G
+(uments).18 E .023(If the second ar)180 544.8 R .023
+(gument is one of the binary conditional operators listed abo)-.18 F
+.324 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.524 E(DITION)180 556.8 Q
+1.478(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
+1.477(xpression is the result of the binary test)-.15 F .513
+(using the \214rst and third ar)180 568.8 R .513(guments as operands.)
+-.18 F(The)5.513 E F1<ad61>3.013 E F0(and)3.013 E F1<ad6f>3.013 E F0
+.513(operators are considered)3.013 F .972
+(binary operators when there are three ar)180 580.8 R 3.472(guments. If)
+-.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F1(!)3.472 E F0
+3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 592.8
+R -.05(ga)-.15 G .883(tion of the tw).05 F(o-ar)-.1 E .884
+(gument test using the second and third ar)-.18 F 3.384(guments. If)-.18
+F .884(the \214rst)3.384 F(ar)180 604.8 Q .875(gument is e)-.18 F
+(xactly)-.15 E F1(\()3.375 E F0 .875(and the third ar)3.375 F .875
+(gument is e)-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.374(,t)C .874
+(he result is the one-ar)-3.374 F(gument)-.18 E(test of the second ar)
+180 616.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
+-.15 E(alse.)-.1 E 2.5(4a)144 628.8 S -.18(rg)-2.5 G(uments).18 E .384
+(If the \214rst ar)180 640.8 R .384(gument is)-.18 F F1(!)2.884 E F0
+2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .385
+(tion of the three-ar).05 F .385(gument e)-.18 F .385(xpression com-)
+-.15 F 1.648(posed of the remaining ar)180 652.8 R 4.147
+(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647
+(xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
+(according to precedence using the rules listed abo)180 664.8 Q -.15(ve)
+-.15 G(.).15 E 2.5(5o)144 676.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
+-.18 E 1.635(The e)180 688.8 R 1.635(xpression is parsed and e)-.15 F
+-.25(va)-.25 G 1.635
+(luated according to precedence using the rules listed).25 F(abo)180
+700.8 Q -.15(ve)-.15 G(.).15 E F1(times)108 717.6 Q F0 1.229(Print the \
+accumulated user and system times for the shell and for processes run f\
+rom the shell.)13.23 F(The return status is 0.)144 729.6 Q(GNU Bash-4.0)
+72 768 Q(2004 Apr 20)148.735 E(18)198.725 E 0 Cg EP
+%%Page: 19 19
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(trap)108 84 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5
+E/F2 10/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...])
+2.5 E .702(The command)144 96 R F2(ar)3.532 E(g)-.37 E F0 .702
+(is to be read and e)3.422 F -.15(xe)-.15 G .702
+(cuted when the shell recei).15 F -.15(ve)-.25 G 3.203(ss).15 G
+(ignal\(s\))-3.203 E F2(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F2
+(ar)3.533 E(g)-.37 E F0(is)3.423 E .609(absent \(and there is a single)
+144 108 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E F0
+3.108(,e)C .608
+(ach speci\214ed signal is reset to its original disposition)-3.108 F
+.658(\(the v)144 120 R .658(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .659
+(is the null string the signal speci\214ed by each)3.378 F F2(sigspec)
+144.34 132 Q F0 .581(is ignored by the shell and by the commands it in)
+3.391 F -.2(vo)-.4 G -.1(ke).2 G 3.08(s. If).1 F F2(ar)3.41 E(g)-.37 E
+F0 .58(is not present and)3.3 F F1<ad70>3.08 E F0(has)3.08 E 1.214
+(been supplied, then the trap commands associated with each)144 144 R F2
+(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215 F
+(gu-)-.18 E .86(ments are supplied or if only)144 156 R F1<ad70>3.36 E
+F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
+(prints the list of commands associated with each)3.36 F 2.83
+(signal. The)144 168 R F1<ad6c>2.83 E F0 .33(option causes the shell to\
+ print a list of signal names and their corresponding num-)2.83 F 4.311
+(bers. Each)144 180 R F2(sigspec)4.651 E F0 1.811
+(is either a signal name de\214ned in <)4.621 F F2(signal.h)A F0 1.81
+(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E .745
+(names are case insensiti)144 192 R 1.045 -.15(ve a)-.25 H .745
+(nd the SIG pre\214x is optional.).15 F .745(If a)5.745 F F2(sigspec)
+3.585 E F0(is)3.555 E/F3 9/Times-Bold@0 SF(EXIT)3.245 E F0 .745
+(\(0\) the command)2.995 F F2(ar)144.33 204 Q(g)-.37 E F0 1.63(is e)4.35
+F -.15(xe)-.15 G 1.63(cuted on e).15 F 1.63(xit from the shell.)-.15 F
+1.63(If a)6.63 F F2(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)-.09 E
+/F4 9/Times-Roman@0 SF(,)A F0 1.629(the command)3.88 F F2(ar)4.459 E(g)
+-.37 E F0 1.629(is e)4.349 F -.15(xe)-.15 G(cuted).15 E 1.206(before e)
+144 216 R -.15(ve)-.25 G(ry).15 E F2 1.206(simple command)3.706 F F0(,)A
+F2(for)3.706 E F0(command,)3.706 E F2(case)3.706 E F0(command,)3.706 E
+F2(select)3.707 E F0 1.207(command, e)3.707 F -.15(ve)-.25 G 1.207
+(ry arithmetic).15 F F2(for)144 228 Q F0 .412
+(command, and before the \214rst command e)2.913 F -.15(xe)-.15 G .412
+(cutes in a shell function \(see).15 F F3 .412(SHELL GRAMMAR)2.912 F F0
+(abo)144 240 Q -.15(ve)-.15 G 2.665(\). Refer).15 F .166
+(to the description of the)2.665 F F1(extdeb)2.666 E(ug)-.2 E F0 .166
+(option to the)2.666 F F1(shopt)2.666 E F0 -.2(bu)2.666 G .166
+(iltin for details of its ef).2 F(fect)-.25 E .509(on the)144 252 R F1
+(DEB)3.009 E(UG)-.1 E F0 3.009(trap. If)3.009 F(a)3.009 E F2(sigspec)
+3.348 E F0(is)3.318 E F3(ERR)3.008 E F4(,)A F0 .508(the command)2.758 F
+F2(ar)3.338 E(g)-.37 E F0 .508(is e)3.228 F -.15(xe)-.15 G .508
+(cuted whene).15 F -.15(ve)-.25 G 3.008(ras).15 G .508(imple com-)-3.008
+F 2.506(mand has a non\255zero e)144 264 R 2.506
+(xit status, subject to the follo)-.15 F 2.506(wing conditions.)-.25 F
+(The)7.506 E F3(ERR)5.006 E F0 2.506(trap is not)4.756 F -.15(exe)144
+276 S .105(cuted if the f).15 F .105
+(ailed command is part of the command list immediately follo)-.1 F .105
+(wing a)-.25 F F1(while)2.605 E F0(or)2.605 E F1(until)2.605 E F0 -.1
+(ke)144 288 S(yw)-.05 E .549(ord, part of the test in an)-.1 F F2(if)
+3.059 E F0 .549(statement, part of a command e)5.009 F -.15(xe)-.15 G
+.549(cuted in a).15 F F1(&&)3.049 E F0(or)3.049 E/F5 10/Symbol SF<efef>
+3.049 E F0 .549(list, or if)3.049 F .578(the command')144 300 R 3.078
+(sr)-.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve)
+-.4 G .578(rted via).15 F F1(!)3.078 E F0 5.577(.T)C .577
+(hese are the same conditions obe)-5.577 F .577(yed by the)-.15 F F1
+(err)144 312 Q(exit)-.18 E F0 3.03(option. If)3.03 F(a)3.03 E F2
+(sigspec)3.37 E F0(is)3.341 E F3(RETURN)3.031 E F4(,)A F0 .531
+(the command)2.781 F F2(ar)3.361 E(g)-.37 E F0 .531(is e)3.251 F -.15
+(xe)-.15 G .531(cuted each time a shell function).15 F .317
+(or a script e)144 324 R -.15(xe)-.15 G .317(cuted with the).15 F F1(.)
+2.817 E F0(or)2.817 E F1(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G .317
+(iltins \214nishes e).2 F -.15(xe)-.15 G 2.817(cuting. Signals).15 F
+.316(ignored upon entry to)2.817 F .787
+(the shell cannot be trapped or reset.)144 336 R -.35(Tr)5.787 G .787
+(apped signals that are not being ignored are reset to their).35 F 1.1
+(original v)144 348 R 1.1(alues in a child process when it is created.)
+-.25 F 1.1(The return status is f)6.1 F 1.1(alse if an)-.1 F(y)-.15 E F2
+(sigspec)3.94 E F0(is)3.91 E(in)144 360 Q -.25(va)-.4 G(lid; otherwise)
+.25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108 376.8 Q F0([)2.5
+E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5 E
+-.4(Wi)144 388.8 S .173(th no options, indicate ho).4 F 2.673(we)-.25 G
+(ach)-2.673 E F2(name)3.033 E F0 -.1(wo)2.853 G .174
+(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
+F1<ad74>144 400.8 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
+.843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E
+F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0
+(,).24 E F2 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F2
+(\214le)5.252 E F0(if)3.522 E F2(name)144.36 412.8 Q F0 .086
+(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
+(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
+(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2
+(name)2.947 E F0 .087(is not)2.767 F .119
+(found, then nothing is printed, and an e)144 424.8 R .118
+(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
+F1<ad70>2.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855
+(either returns the name of the disk \214le that w)144 436.8 R .855
+(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
+.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
+144 448.8 R/F6 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141
+G .641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E
+F1<ad50>3.14 E F0 .64(option forces a)3.14 F F3 -.666(PA)3.14 G(TH)-.189
+E F0 .112(search for each)144 460.8 R F2(name)2.612 E F0 2.612(,e)C -.15
+(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F6 .113(type -t name)2.613 F F0
+-.1(wo)2.613 G .113(uld not return).1 F F2(\214le)2.613 E F0 5.113(.I)
+.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F1<ad70>2.613 E
+F0(and)144 472.8 Q F1<ad50>2.945 E F0 .445(print the hashed v)2.945 F
+.444(alue, not necessarily the \214le that appears \214rst in)-.25 F F3
+-.666(PA)2.944 G(TH)-.189 E F4(.)A F0 .444(If the)4.944 F F1<ad61>2.944
+E F0(option)2.944 E .265(is used,)144 484.8 R F1(type)2.765 E F0 .265
+(prints all of the places that contain an e)2.765 F -.15(xe)-.15 G .265
+(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18 G .265
+(his includes aliases)-5.265 F .427(and functions, if and only if the)
+144 496.8 R F1<ad70>2.926 E F0 .426(option is not also used.)2.926 F
+.426(The table of hashed commands is not)5.426 F .548
+(consulted when using)144 508.8 R F1<ad61>3.048 E F0 5.548(.T)C(he)
+-5.548 E F1<ad66>3.048 E F0 .549
+(option suppresses shell function lookup, as with the)3.048 F F1
+(command)3.049 E F0 -.2(bu)144 520.8 S(iltin.).2 E F1(type)5 E F0
+(returns true if all of the ar)2.5 E(guments are found, f)-.18 E
+(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 537.6
+Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2
+(limit)A F0(]])A(Pro)144 549.6 Q .244(vides control o)-.15 F -.15(ve)
+-.15 G 2.744(rt).15 G .244(he resources a)-2.744 F -.25(va)-.2 G .244
+(ilable to the shell and to processes started by it, on systems).25 F
+.943(that allo)144 561.6 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
+(The)5.943 E F1<ad48>3.443 E F0(and)3.443 E F1<ad53>3.444 E F0 .944
+(options specify that the hard or soft limit is set for the)3.444 F(gi)
+144 573.6 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+(hard limit cannot be increased by a non-root user once it is set; a so\
+ft limit may)2.709 F .425(be increased up to the v)144 585.6 R .425
+(alue of the hard limit.)-.25 F .426(If neither)5.425 F F1<ad48>2.926 E
+F0(nor)2.926 E F1<ad53>2.926 E F0 .426
+(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
+597.6 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
+(can be a number in the unit speci\214ed for the resource or one)3.319 F
+.741(of the special v)144 609.6 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
+(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
+C .741(hich stand for the current hard limit, the current)-3.241 F .78
+(soft limit, and no limit, respecti)144 621.6 R -.15(ve)-.25 G(ly).15 E
+5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
+(is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
+F .498(resource is printed, unless the)144 633.6 R F1<ad48>2.999 E F0
+.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499
+(more than one resource is speci\214ed, the)2.999 F
+(limit name and unit are printed before the v)144 645.6 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1
+<ad61>144 657.6 Q F0(All current limits are reported)25.3 E F1<ad62>144
+669.6 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E
+F1<ad63>144 681.6 Q F0(The maximum size of core \214les created)25.86 E
+F1<ad64>144 693.6 Q F0(The maximum size of a process')24.74 E 2.5(sd)
+-.55 G(ata se)-2.5 E(gment)-.15 E F1<ad65>144 705.6 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 717.6 Q
+F0(The maximum size of \214les written by the shell and its children)
+26.97 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(19)198.725 E 0 Cg EP
+%%Page: 20 20
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF<ad69>144 84 Q F0(The maximum number of pending signals)
+27.52 E F1<ad6c>144 96 Q F0(The maximum size that may be lock)27.52 E
+(ed into memory)-.1 E F1<ad6d>144 108 Q F0
+(The maximum resident set size)21.97 E F1<ad6e>144 120 Q F0 .791(The ma\
+ximum number of open \214le descriptors \(most systems do not allo)24.74
+F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180 132 Q
+F1<ad70>144 144 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
+<ad71>144 156 Q F0(The maximum number of bytes in POSIX message queues)
+24.74 E F1<ad72>144 168 Q F0(The maximum real-time scheduling priority)
+25.86 E F1<ad73>144 180 Q F0(The maximum stack size)26.41 E F1<ad74>144
+192 Q F0(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144
+204 Q F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
+(ilable to a single user).25 E F1<ad76>144 216 Q F0
+(The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
+(ilable to the shell).25 E F1<ad78>144 228 Q F0
+(The maximum number of \214le locks)25.3 E F1<ad54>144 240 Q F0
+(The maximum number of threads)23.63 E(If)144 256.8 Q/F2 10
+/Times-Italic@0 SF(limit)2.933 E F0 .343(is gi)3.523 F -.15(ve)-.25 G
+.343(n, it is the ne).15 F 2.843(wv)-.25 G .343
+(alue of the speci\214ed resource \(the)-3.093 F F1<ad61>2.843 E F0 .343
+(option is display only\).)2.843 F .343(If no)5.343 F .176(option is gi)
+144 268.8 R -.15(ve)-.25 G .176(n, then).15 F F1<ad66>2.676 E F0 .175
+(is assumed.)2.676 F -1.11(Va)5.175 G .175
+(lues are in 1024-byte increments, e)1.11 F .175(xcept for)-.15 F F1
+<ad74>2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 280.8
+Q F1<ad70>2.515 E F0 2.515(,w)C .015
+(hich is in units of 512-byte blocks, and)-2.515 F F1<ad54>2.516 E F0(,)
+A F1<ad62>2.516 E F0(,)A F1<ad6e>2.516 E F0 2.516(,a)C(nd)-2.516 E F1
+<ad75>2.516 E F0 2.516(,w)C .016(hich are unscaled v)-2.516 F(al-)-.25 E
+3.788(ues. The)144 292.8 R 1.287(return status is 0 unless an in)3.787 F
+-.25(va)-.4 G 1.287(lid option or ar).25 F 1.287
+(gument is supplied, or an error occurs)-.18 F(while setting a ne)144
+304.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 321.6 Q F0([)2.5 E F1
+<ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0 2.5(][)C F2(mode)-2.5 E F0(])A .2
+(The user \214le-creation mask is set to)144 333.6 R F2(mode)2.7 E F0
+5.2(.I).18 G(f)-5.2 E F2(mode)3.08 E F0(be)2.88 E .2
+(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
+therwise it is interpreted as a symbolic mode mask similar to that acce\
+pted by)144 345.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+357.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
+(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
+(option causes the mask to be)2.882 F .547
+(printed in symbolic form; the def)144 369.6 R .547
+(ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
+(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
+(mode)144.38 381.6 Q F0 .551
+(is omitted, the output is in a form that may be reused as input.)3.231
+F .552(The return status is 0 if the)5.552 F(mode w)144 393.6 Q
+(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
+(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
+(unalias)108 410.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E(Remo)144 422.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
+4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 F(If)6.655 E
+F1<ad61>4.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155
+F(remo)144 434.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+(alue is true unless a supplied)-.25 E F2(name)2.86 E F0
+(is not a de\214ned alias.)2.68 E F1(unset)108 451.2 Q F0<5bad>2.5 E F1
+(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 463.2 S 3.106
+(re).15 G(ach)-3.106 E F2(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E
+.906 -.15(ve t)-.15 H .606(he corresponding v).15 F .607
+(ariable or function.)-.25 F .607(If no options are supplied, or the)
+5.607 F F1<ad76>144 475.2 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G
+.305(n, each).15 F F2(name)3.165 E F0 .305(refers to a shell v)2.985 F
+2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .304
+(riables may not be unset.).25 F(If)5.304 E F1<ad66>144 487.2 Q F0 .459
+(is speci\214ed, each)2.959 F F2(name)3.319 E F0 .459
+(refers to a shell function, and the function de\214nition is remo)3.139
+F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 499.2 R .903
+(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.402(df).15 G .902
+(rom the en)-3.402 F .902(vironment passed to subsequent commands.)-.4 F
+(If)5.902 E(an)144 511.2 Q 4.284(yo)-.15 G(f)-4.284 E/F3 9/Times-Bold@0
+SF(RANDOM)4.284 E/F4 9/Times-Roman@0 SF(,)A F3(SECONDS)4.035 E F4(,)A F3
+(LINENO)4.035 E F4(,)A F3(HISTCMD)4.035 E F4(,)A F3(FUNCN)4.035 E(AME)
+-.18 E F4(,)A F3(GR)4.035 E(OUPS)-.27 E F4(,)A F0(or)4.035 E F3(DIRST)
+4.285 E -.495(AC)-.81 G(K).495 E F0(are)4.035 E .329(unset, the)144
+523.2 R 2.829(yl)-.15 G .328(ose their special properties, e)-2.829 F
+-.15(ve)-.25 G 2.828(ni).15 G 2.828(ft)-2.828 G(he)-2.828 E 2.828(ya)
+-.15 G .328(re subsequently reset.)-2.828 F .328(The e)5.328 F .328
+(xit status is true)-.15 F(unless a)144 535.2 Q F2(name)2.86 E F0
+(is readonly)2.68 E(.)-.65 E F1(wait)108 552 Q F0([)2.5 E F2 2.5(n.)C
+(..)-2.5 E F0(])A -.8(Wa)144 564 S .288
+(it for each speci\214ed process and return its termination status.).8 F
+(Each)5.288 E F2(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
+(job speci\214cation; if a job spec is gi)144 576 R -.15(ve)-.25 G .722
+(n, all processes in that job').15 F 3.222(sp)-.55 G .722(ipeline are w)
+-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F2(n)3.582 E F0
+(is)3.462 E 1.265(not gi)144 588 R -.15(ve)-.25 G 1.265
+(n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265
+(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266
+(nd the return status is zero.)-3.765 F(If)6.266 E F2(n)4.126 E F0 .457
+(speci\214es a non-e)144 600 R .457
+(xistent process or job, the return status is 127.)-.15 F .457
+(Otherwise, the return status is the)5.457 F -.15(ex)144 612 S
+(it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E
+/F5 10.95/Times-Bold@0 SF(SEE ALSO)72 628.8 Q F0(bash\(1\), sh\(1\))108
+640.8 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(20)198.725 E 0 Cg EP
+%%Trailer
+end
+%%EOF
diff --git a/doc/rbash.0 b/doc/rbash.0
new file mode 100644 (file)
index 0000000..eb06220
--- /dev/null
@@ -0,0 +1,59 @@
+RBASH(1)                                                              RBASH(1)
+
+
+
+N\bNA\bAM\bME\bE
+       rbash - restricted bash, see b\bba\bas\bsh\bh(1)
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
+       If b\bba\bas\bsh\bh is started with the name r\brb\bba\bas\bsh\bh, or the -\b-r\br option is supplied at
+       invocation, the shell becomes restricted.  A restricted shell  is  used
+       to  set  up an environment more controlled than the standard shell.  It
+       behaves identically to b\bba\bas\bsh\bh with the exception that the  following  are
+       disallowed or not performed:
+
+       +\bo      changing directories with c\bcd\bd
+
+       +\bo      setting or unsetting the values of S\bSH\bHE\bEL\bLL\bL, P\bPA\bAT\bTH\bH, E\bEN\bNV\bV, or B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV
+
+       +\bo      specifying command names containing /\b/
+
+       +\bo      specifying a file name containing a /\b/ as an argument  to  the  .\b.
+              builtin command
+
+       +\bo      Specifying  a  filename containing a slash as an argument to the
+              -\b-p\bp option to the h\bha\bas\bsh\bh builtin command
+
+       +\bo      importing function definitions from  the  shell  environment  at
+              startup
+
+       +\bo      parsing  the  value  of  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell environment at
+              startup
+
+       +\bo      redirecting output using the >, >|, <>, >&, &>, and >> redirect-
+              ion operators
+
+       +\bo      using the e\bex\bxe\bec\bc builtin command to replace the shell with another
+              command
+
+       +\bo      adding or deleting builtin commands with the -\b-f\bf and  -\b-d\bd  options
+              to the e\ben\bna\bab\bbl\ble\be builtin command
+
+       +\bo      Using  the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled shell
+              builtins
+
+       +\bo      specifying the -\b-p\bp option to the c\bco\bom\bmm\bma\ban\bnd\bd builtin command
+
+       +\bo      turning off restricted mode with s\bse\bet\bt +\b+r\br or s\bse\bet\bt +\b+o\bo r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd.
+
+       These restrictions are enforced after any startup files are read.
+
+       When a command that is found to be a shell script  is  executed,  r\brb\bba\bas\bsh\bh
+       turns  off any restrictions in the shell spawned to execute the script.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       bash(1)
+
+
+
+GNU Bash-4.0                      2004 Apr 20                         RBASH(1)
diff --git a/doc/rbash.ps b/doc/rbash.ps
new file mode 100644 (file)
index 0000000..38d31e1
--- /dev/null
@@ -0,0 +1,279 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.19.2
+%%CreationDate: Thu Feb  5 08:05:28 2009
+%%DocumentNeededResources: font Times-Roman
+%%+ font Times-Bold
+%%DocumentSuppliedResources: procset grops 1.19 2
+%%Pages: 1
+%%PageOrder: Ascend
+%%DocumentMedia: Default 595 842 0 () ()
+%%Orientation: Portrait
+%%EndComments
+%%BeginDefaults
+%%PageMedia: Default
+%%EndDefaults
+%%BeginProlog
+%%BeginResource: procset grops 1.19 2
+%!PS-Adobe-3.0 Resource-ProcSet
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/Fr{
+setrgbcolor fill
+}bind def
+/setcmykcolor where{
+pop
+/Fk{
+setcmykcolor fill
+}bind def
+}if
+/Fg{
+setgray fill
+}bind def
+/FL/fill load def
+/LW/setlinewidth load def
+/Cr/setrgbcolor load def
+/setcmykcolor where{
+pop
+/Ck/setcmykcolor load def
+}if
+/Cg/setgray load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+/setpagedevice{}def
+}bind def
+/PEND{
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%%BeginFeature: *PageSize Default
+<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice
+%%EndFeature
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Times-Bold
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
+/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(RB)72 48 Q 376.2(ASH\(1\) RB)-.35 F(ASH\(1\))
+-.35 E/F1 10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
+(rbash \255 restricted bash, see)108 96 Q/F2 10/Times-Bold@0 SF(bash)2.5
+E F0(\(1\))A F1(RESTRICTED SHELL)72 112.8 Q F0(If)108 124.8 Q F2(bash)
+4.397 E F0 1.897(is started with the name)4.397 F F2(rbash)4.397 E F0
+4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F2<ad72>4.397 E F0 1.896
+(option is supplied at in)4.397 F -.2(vo)-.4 G 1.896
+(cation, the shell becomes).2 F 3.445(restricted. A)108 136.8 R .945
+(restricted shell is used to set up an en)3.445 F .946
+(vironment more controlled than the standard shell.)-.4 F(It)5.946 E
+(beha)108 148.8 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F2
+(bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E
+(wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108
+165.6 S(hanging directories with)-32.5 E F2(cd)2.5 E F0 32.5<8373>108
+182.4 S(etting or unsetting the v)-32.5 E(alues of)-.25 E F2(SHELL)2.5 E
+F0(,)A F2 -.74(PA)2.5 G(TH)-.21 E F0(,)A F2(ENV)2.5 E F0 2.5(,o)C(r)-2.5
+E F2 -.3(BA)2.5 G(SH_ENV).3 E F0 32.5<8373>108 199.2 S
+(pecifying command names containing)-32.5 E F2(/)2.5 E F0 32.5<8373>108
+216 S(pecifying a \214le name containing a)-32.5 E F2(/)2.5 E F0
+(as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F0 -.2(bu)5 G
+(iltin command).2 E 32.5<8353>108 232.8 S .351
+(pecifying a \214lename containing a slash as an ar)-32.5 F .351
+(gument to the)-.18 F F2<ad70>2.851 E F0 .351(option to the)2.851 F F2
+(hash)2.851 E F0 -.2(bu)2.851 G .351(iltin com-).2 F(mand)144 244.8 Q
+32.5<8369>108 261.6 S(mporting function de\214nitions from the shell en)
+-32.5 E(vironment at startup)-.4 E 32.5<8370>108 278.4 S(arsing the v)
+-32.5 E(alue of)-.25 E F2(SHELLOPTS)2.5 E F0(from the shell en)2.5 E
+(vironment at startup)-.4 E 32.5<8372>108 295.2 S(edirecting output usi\
+ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5
+<8375>108 312 S(sing the)-32.5 E F2(exec)2.5 E F0 -.2(bu)2.5 G
+(iltin command to replace the shell with another command).2 E 32.5<8361>
+108 328.8 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E
+F2<ad66>2.5 E F0(and)2.5 E F2<ad64>2.5 E F0(options to the)2.5 E F2
+(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8355>108 345.6 S
+(sing the)-32.5 E F2(enable)2.5 E F0 -.2(bu)2.5 G
+(iltin command to enable disabled shell b).2 E(uiltins)-.2 E 32.5<8373>
+108 362.4 S(pecifying the)-32.5 E F2<ad70>2.5 E F0(option to the)2.5 E
+F2(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8374>108 379.2
+S(urning of)-32.5 E 2.5(fr)-.25 G(estricted mode with)-2.5 E F2(set +r)
+2.5 E F0(or)2.5 E F2(set +o r)2.5 E(estricted)-.18 E F0(.)A
+(These restrictions are enforced after an)108 396 Q 2.5(ys)-.15 G
+(tartup \214les are read.)-2.5 E .429
+(When a command that is found to be a shell script is e)108 412.8 R -.15
+(xe)-.15 G(cuted,).15 E F2(rbash)2.929 E F0 .429(turns of)2.929 F 2.929
+(fa)-.25 G .729 -.15(ny r)-2.929 H .429(estrictions in the shell).15 F
+(spa)108 424.8 Q(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E
+F1(SEE ALSO)72 441.6 Q F0(bash\(1\))108 453.6 Q(GNU Bash-4.0)72 768 Q
+(2004 Apr 20)148.735 E(1)203.725 E 0 Cg EP
+%%Trailer
+end
+%%EOF
diff --git a/doc/rose94.pdf b/doc/rose94.pdf
new file mode 100644 (file)
index 0000000..1772f54
Binary files /dev/null and b/doc/rose94.pdf differ
diff --git a/doc/rose94.ps b/doc/rose94.ps
new file mode 100644 (file)
index 0000000..1fff283
--- /dev/null
@@ -0,0 +1,1581 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.08
+%%DocumentNeededResources: font Times-Bold
+%%+ font Times-Italic
+%%+ font Times-Roman
+%%+ font Courier
+%%+ font Symbol
+%%DocumentSuppliedResources: procset grops 1.08 0
+%%Pages: 13
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.08 0
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll 
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Courier
+%%IncludeResource: font Symbol
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL
+792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron/scaron/zcaron
+/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space
+/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C
+/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/circumflex/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q
+/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase
+/guillemotleft/guillemotright/bullet/florin/fraction/perthousand/dagger
+/daggerdbl/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guilsinglleft/logicalnot/minus
+/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu
+/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guilsinglright
+/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde
+/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
+/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
+/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute
+/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve
+/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex
+/udieresis/yacute/thorn/ydieresis]def/Courier@0 ENC0/Courier RE/Times-Roman@0
+ENC0/Times-Roman RE/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0
+/Times-Bold RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 12/Times-Bold@0 SF(Bash, the Bour)210.99 123 Q(ne\255Again Shell)-.18 E/F1
+10/Times-Italic@0 SF(Chet Rame)263.85 147 Q(y)-.3 E(Case W)221.72 159 Q
+(estern Reserve Univer)-.92 E(sity)-.1 E -.15(ch)250.425 171 S(et@po.cwru.edu)
+.15 E(ABSTRA)264.535 213 Q(CT)-.3 E/F2 10/Times-Roman@0 SF .019(An o)133 237 R
+-.15(ve)-.15 G(rvie).15 E 2.519(wo)-.25 G 2.519(f/)191.918 237 S .018
+(bin/sh\255compatible shells is presented, as well as an introduction to)
+200.547 237 R .128(the POSIX.2 shell and tools standard.)108 249 R .128
+(These serv)5.128 F 2.628(ea)-.15 G 2.628(sa)318.562 249 S 2.628(ni)329.52 249
+S .128(ntroduction to bash.)339.928 249 R 2.628(Ac)5.128 G(ompar)439.32 249 Q
+(-)-.2 E .188(ison of bash to sh and ksh is presented, as well as a discussion\
+ of features unique to bash.)108 261 R(Finally)108 273 Q 3.178(,s)-.65 G .678
+(ome of the changes and ne)145.258 273 R 3.178(wf)-.25 G .678
+(eatures to appear in the ne)268.486 273 R .678(xt bash release will be)-.15 F
+(discussed.)108 285 Q/F3 10/Times-Bold@0 SF 2.5(1. Intr)72 321 R(oduction)-.18
+E(Bash)97 336.6 Q F2 .904(is the shell, or command language interpreter)3.404 F
+3.404(,t)-.4 G .904(hat will appear in the GNU operating system.)316.032 336.6
+R .782(The name is an acron)72 348.6 R .782(ym for the `)-.15 F(`Bourne\255Ag)
+-.74 E .782(ain SHell')-.05 F .782(', a pun on Ste)-.74 F 1.082 -.15(ve B)-.25
+H .783(ourne, the author of the direct).15 F .212(ancestor of the current)72
+360.6 R/F4 9/Times-Roman@0 SF(UNIX)2.712 E F2 2.712<8773>C(hell)199.131 360.6 Q
+F1(/bin/sh)2.712 E F2 2.712(,w)C .212(hich appeared in the Se)256.505 360.6 R
+-.15(ve)-.25 G .211(nth Edition Bell Labs Research v).15 F(er)-.15 E(-)-.2 E
+(sion of)72 372.6 Q F4(UNIX)2.5 E F2([1].).833 E .191(Bash is an)97 388.2 R F3
+(sh)2.691 E F2 .192
+(\255compatible shell that incorporates useful features from the K)B .192
+(orn shell \()-.35 F F3(ksh)A F2 .833(\)[)C .192(2] and the)-.833 F 2.767(Cs)72
+400.2 S .267(hell \()85.327 400.2 R F3(csh)A F2 .833(\)[)C .267
+(3], described later in this article.)-.833 F .266
+(It is ultimately intended to be a conformant implementation)5.267 F 1.965
+(of the IEEE POSIX Shell and T)72 412.2 R 1.966(ools speci\214cation \(IEEE W)
+-.8 F 1.966(orking Group 1003.2\).)-.8 F 1.966(It of)6.966 F 1.966
+(fers functional)-.25 F(impro)72 424.2 Q -.15(ve)-.15 G(ments o).15 E -.15(ve)
+-.15 G 2.5(rs).15 G 2.5(hf)155.28 424.2 S(or both interacti)166.11 424.2 Q .3
+-.15(ve a)-.25 H(nd programming use.).15 E .802
+(While the GNU operating system will most lik)97 439.8 R .801(ely include a v)
+-.1 F .801(ersion of the Berk)-.15 F(ele)-.1 E 3.301(ys)-.15 G .801
+(hell csh, bash)448.238 439.8 R .108(will be the def)72 451.8 R .108
+(ault shell.)-.1 F(Lik)5.108 E 2.608(eo)-.1 G .108(ther GNU softw)199.658 451.8
+R .108(are, bash is quite portable.)-.1 F .109(It currently runs on nearly e)
+5.109 F -.15(ve)-.25 G(ry).15 E -.15(ve)72 463.8 S .367(rsion of).15 F F4(UNIX)
+2.867 E F2 .367(and a fe)2.867 F 2.867(wo)-.25 G .367
+(ther operating systems \255 an independently-supported port e)187.933 463.8 R
+.366(xists for OS/2, and)-.15 F .706(there are rumors of ports to DOS and W)72
+475.8 R(indo)-.4 E .706(ws NT)-.25 F 5.706(.P)-.74 G .706(orts to)295.97 475.8
+R F4(UNIX)3.206 E F2(-lik)A 3.206(es)-.1 G .706(ystems such as QNX and Minix)
+372.979 475.8 R(are part of the distrib)72 487.8 Q(ution.)-.2 E .51
+(The original author of bash w)97 503.4 R .51(as Brian F)-.1 F .509
+(ox, an emplo)-.15 F .509(yee of the Free Softw)-.1 F .509(are F)-.1 F 3.009
+(oundation. The)-.15 F(cur)3.009 E(-)-.2 E(rent de)72 515.4 Q -.15(ve)-.25 G
+(loper and maintainer is Chet Rame).15 E 1.3 -.65(y, a v)-.15 H(olunteer who w)
+.45 E(orks at Case W)-.1 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)458.91 515.4 Q
+-.15(ve)-.25 G(rsity).15 E(.)-.65 E F3 2.5(2. What)72 539.4 R(is a shell?)2.5 E
+F2 1.241(At its base, a shell is simply a macro processor that e)97 555 R -.15
+(xe)-.15 G 1.242(cutes commands.).15 F(A)6.242 E F4(UNIX)3.742 E F2 1.242
+(shell is both a)3.742 F .189(command interpreter)72 567 R 2.688(,w)-.4 G .188
+(hich pro)167.787 567 R .188(vides the user interf)-.15 F .188
+(ace to the rich set of)-.1 F F4(UNIX)2.688 E F2 .188
+(utilities, and a programming)2.688 F .751(language, allo)72 579 R .752
+(wing these utilitites to be combined.)-.25 F .752
+(The shell reads commands either from a terminal or a)5.752 F 2.52
+(\214le. Files)72 591 R .019
+(containing commands can be created, and become commands themselv)2.52 F 2.519
+(es. These)-.15 F(ne)2.519 E 2.519(wc)-.25 G(ommands)465.11 591 Q(ha)72 603 Q
+.395 -.15(ve t)-.2 H .095(he same status as system commands in directories lik)
+.15 F(e)-.1 E F3(/bin)2.595 E F2 2.595(,a)C(llo)342.575 603 Q .096
+(wing users or groups to establish cus-)-.25 F(tom en)72 615 Q(vironments.)-.4
+E F3 2.5(2.1. Command)72 639 R(Inter)2.5 E(pr)-.1 E(eter)-.18 E F2 2.926(As)97
+654.6 S .426(hell allo)111.036 654.6 R .426(ws e)-.25 F -.15(xe)-.15 G .426
+(cution of).15 F F4(UNIX)2.926 E F2 .426
+(commands, both synchronously and asynchronously)2.926 F 5.425(.T)-.65 G(he)
+460.165 654.6 Q F1 -.37(re)2.925 G(dir).37 E(ec-)-.37 E(tion)72 666.6 Q F2 .334
+(constructs permit \214ne-grained control of the input and output of those com\
+mands, and the shell allo)2.833 F(ws)-.25 E .559(control o)72 678.6 R -.15(ve)
+-.15 G 3.058(rt).15 G .558(he contents of their en)126.697 678.6 R(vironment.)
+-.4 E F4(UNIX)5.558 E F2 .558(shells also pro)3.058 F .558
+(vide a small set of b)-.15 F .558(uilt-in commands)-.2 F(\()72 690.6 Q F1 -.2
+(bu)C(iltins).2 E F2 4.611(\)i)C 2.112
+(mplementing functionality impossible \(e.g.,)115.861 690.6 R F3(cd)4.612 E F2
+(,)A F3(br)4.612 E(eak)-.18 E F2(,)A F3(continue)4.612 E F2 4.612(,a)C(nd)
+399.074 690.6 Q F3(exec)4.612 E F2 4.612(\)o)C 4.612(ri)444.948 690.6 S(ncon)
+455.67 690.6 Q -.15(ve)-.4 G(nient).15 E .32 LW 76 700.6 72 700.6 DL 80 700.6
+76 700.6 DL 84 700.6 80 700.6 DL 88 700.6 84 700.6 DL 92 700.6 88 700.6 DL 96
+700.6 92 700.6 DL 100 700.6 96 700.6 DL 104 700.6 100 700.6 DL 108 700.6 104
+700.6 DL 112 700.6 108 700.6 DL 116 700.6 112 700.6 DL 120 700.6 116 700.6 DL
+124 700.6 120 700.6 DL 128 700.6 124 700.6 DL 132 700.6 128 700.6 DL 136 700.6
+132 700.6 DL 140 700.6 136 700.6 DL 144 700.6 140 700.6 DL/F5 8/Times-Roman@0
+SF 2<8755>72 710.6 S(NIX is a trademark of X/OPEN)83.776 710.6 Q EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-2-)279.67 48 S(\()72 84 Q/F1 10/Times-Bold@0 SF
+(history)A F0(,)A F1(getopts)3.505 E F0(,)A F1(kill)3.505 E F0 3.505(,o)C(r)
+172.795 84 Q F1(pwd)3.505 E F0 3.505(,f)C 1.005(or e)207.305 84 R 1.005
+(xample\) to obtain via separate utilities.)-.15 F 1.005
+(Shells may be used interac-)6.005 F(ti)72 96 Q -.15(ve)-.25 G
+(ly or non-interacti).15 E -.15(ve)-.25 G 2.5(ly: the).15 F 2.5(ya)-.15 G
+(ccept input typed from the k)207.42 96 Q -.15(ey)-.1 G
+(board or from a \214le.).15 E F1 2.5(2.2. Pr)72 120 R(ogramming Language)-.18
+E F0 .501(While e)97 135.6 R -.15(xe)-.15 G .501
+(cuting commands is essential, most of the po).15 F .501(wer \(and comple)-.25
+F .502(xity\) of shells is due to their)-.15 F .05
+(embedded programming languages.)72 147.6 R(Lik)5.049 E 2.549(ea)-.1 G .349
+-.15(ny h)245.398 147.6 T(igh-le).15 E -.15(ve)-.25 G 2.549(ll).15 G .049
+(anguage, the shell pro)303.276 147.6 R .049(vides v)-.15 F .049
+(ariables, \215o)-.25 F 2.549(wc)-.25 G(ontrol)480.11 147.6 Q
+(constructs, quoting, and functions.)72 159.6 Q .475
+(The basic syntactic element is a)97 175.2 R/F2 10/Times-Italic@0 SF .475
+(simple command)2.975 F F0 5.475(.A)C .475
+(simple command consists of an optional set of)315.405 175.2 R -.25(va)72 187.2
+S .525(riable assignments, a command w).25 F .525
+(ord, and an optional list of ar)-.1 F 3.024(guments. Operators)-.18 F .524
+(to redirect input and)3.024 F(output may appear an)72 199.2 Q
+(ywhere in a simple command.)-.15 E(Some e)5 E(xamples are:)-.15 E/F3 10
+/Courier@0 SF(who)97 211.2 Q(trn -e -S1 -N)97 223.2 Q(ls -l /bin > binfiles)97
+235.2 Q(make > make.out 2>make.errs)97 247.2 Q F0 2.518(Ap)97 262.8 S .018
+(ipeline is a sequence of tw)111.738 262.8 R 2.518(oo)-.1 G 2.518(rm)230.056
+262.8 S .018(ore commands separated by the character)243.684 262.8 R/F4 10
+/Symbol SF<ef>2.519 E F0 5.019(.T)C .019(he standard output)430.082 262.8 R
+(of the \214rst command is connected to the standard input of the second.)72
+274.8 Q(Examples of pipelines include:)5 E F3(who | wc -l)97 286.8 Q
+(ls -l | sort +3nr)97 298.8 Q F0 .578
+(Simple commands and pipelines may be combined into)97 314.4 R F2(lists)3.078 E
+F0 5.578(.A)C .578(list is a sequence of pipelines sepa-)360.002 314.4 R .289
+(rated by one of)72 326.4 R F1(;)2.789 E F0(,)A F1(&)2.789 E F0(,)A F1(&&)2.789
+E F0 2.789(,o)C(r)185.103 326.4 Q F4<efef>2.789 E F0 2.789(,a)C .289
+(nd optionally terminated by)210.831 326.4 R F1(;)2.789 E F0(,)A F1(&)2.789 E
+F0 2.789(,o)C 2.789(ran)352.555 326.4 S -.25(ew)370.903 326.4 S 2.789
+(line. Commands).25 F .289(separated by)2.789 F F1(;)72 338.4 Q F0 .336(are e)
+2.836 F -.15(xe)-.15 G .336(cuted sequentially; the shell w).15 F .335
+(aits for each to complete in turn.)-.1 F .335(If a command is terminated by)
+5.335 F F1(&)2.835 E F0(,)A .007(the shell e)72 350.4 R -.15(xe)-.15 G .007
+(cutes it in the).15 F F2(bac)2.507 E(kgr)-.2 E(ound)-.45 E F0 2.508(,a)1.666 G
+.008(nd does not w)236.076 350.4 R .008(ait for it to \214nish.)-.1 F .008
+(If tw)5.008 F 2.508(oc)-.1 G .008(ommands are separated by)397.616 350.4 R F1
+(&&)72 362.4 Q F0 3.008(,t)C .508(he second command e)96.948 362.4 R -.15(xe)
+-.15 G .508(cutes only if the \214rst command succeeds.).15 F 3.007(As)5.508 G
+.507(eparator of)383.575 362.4 R F4<efef>3.007 E F0 .507(causes the sec-)3.007
+F(ond command to e)72 374.4 Q -.15(xe)-.15 G(cute only if the \214rst f).15 E
+2.5(ails. Some)-.1 F -.15(ex)2.5 G(amples are:).15 E F3(who ; date)97 386.4 Q
+(cd /usr/src || exit 1)97 398.4 Q(cd "$@" && xtitle $HOST: $PWD)97 410.4 Q F0
+1.36(The shell programming language pro)97 426 R 1.361(vides a v)-.15 F 1.361
+(ariety of \215o)-.25 F 3.861(wc)-.25 G 1.361(ontrol structures.)353.276 426 R
+(The)6.361 E F1 -.25(fo)3.861 G(r).25 E F0(command)3.861 E(allo)72 438 Q .654
+(ws a list of commands to be e)-.25 F -.15(xe)-.15 G .654
+(cuted once for each w).15 F .654(ord in a w)-.1 F .654(ord list.)-.1 F(The)
+5.654 E F1(case)3.154 E F0 .654(command allo)3.154 F .654(ws a)-.25 F .627
+(list to be e)72 450 R -.15(xe)-.15 G .628(cuted if a w).15 F .628
+(ord matches a speci\214ed pattern.)-.1 F(The)5.628 E F1(while)3.128 E F0(and)
+3.128 E F1(until)3.128 E F0 .628(commands e)3.128 F -.15(xe)-.15 G .628
+(cute a list of).15 F 1.559
+(commands as long as a guard command completes successfully or f)72 462 R 1.559
+(ails, respecti)-.1 F -.15(ve)-.25 G(ly).15 E 6.559(.T)-.65 G(he)440.892 462 Q
+F1(if)4.059 E F0(command)4.059 E(allo)72 474 Q(ws e)-.25 E -.15(xe)-.15 G
+(cution of dif).15 E(ferent command lists depending on the e)-.25 E
+(xit status of a guard command.)-.15 E(A)97 489.6 Q F2 .385(shell function)
+2.885 F F0 .385(associates a list of commands with a name.)2.885 F .386
+(Each time the name is used as a simple)5.385 F .938(command, the list is e)72
+501.6 R -.15(xe)-.15 G 3.438(cuted. This).15 F -.15(exe)3.438 G .938
+(cution tak).15 F .938(es place in the current shell conte)-.1 F .937
+(xt; no ne)-.15 F 3.437(wp)-.25 G .937(rocess is)468.903 501.6 R 2.5
+(created. Functions)72 513.6 R(may ha)2.5 E .3 -.15(ve t)-.2 H(heir o).15 E
+(wn ar)-.25 E(gument lists and local v)-.18 E(ariables, and may be recursi)-.25
+E -.15(ve)-.25 G(.).15 E .722(The shell language pro)97 529.2 R .722(vides v)
+-.15 F .722(ariables, which may be both set and referenced.)-.25 F 3.222(An)
+5.722 G .722(umber of special)435.906 529.2 R 1.02
+(parameters are present, such as)72 541.2 R F1($@)3.519 E F0 3.519(,w)C 1.019
+(hich returns the shell')231.257 541.2 R 3.519(sp)-.55 G 1.019
+(ositional parameters \(command-line ar)333.103 541.2 R(gu-)-.18 E(ments\),)72
+553.2 Q F1($?)2.906 E F0 2.906(,t)C .406(he e)122.812 553.2 R .406
+(xit status of the pre)-.15 F .406(vious command, and)-.25 F F1($$)2.906 E F0
+2.906(,t)C .406(he shell')322.436 553.2 R 2.906(sp)-.55 G .406(rocess I.D.)
+368.248 553.2 R .407(In addition to pro)5.406 F(vid-)-.15 E .129
+(ing special parameters and user)72 565.2 R .129(-de\214ned v)-.2 F .129
+(ariables, the shell permits the v)-.25 F .128(alues of certain v)-.25 F .128
+(ariables to control)-.25 F .16(its beha)72 577.2 R(vior)-.2 E 5.16(.S)-.55 G
+.16(ome of these v)131.57 577.2 R .16(ariables include)-.25 F F1(IFS)2.661 E F0
+2.661(,w)C .161(hich controls ho)284.202 577.2 R 2.661(wt)-.25 G .161
+(he shell splits w)361.375 577.2 R(ords,)-.1 E F1 -.74(PA)2.661 G(TH)-.21 E F0
+2.661(,w)C(hich)486.78 577.2 Q .392
+(tells the shell where to look for commands, and)72 589.2 R F1(PS1)2.892 E F0
+2.892(,w)C .392(hose v)297.01 589.2 R .392
+(alue is the string the shell uses to prompt for)-.25 F 3.371(commands. There)
+72 601.2 R .871(are a fe)3.371 F 3.371(wv)-.25 G .871(ariables whose v)196.645
+601.2 R .871(alues are set by the shell and normally only referenced by)-.25 F
+(users;)72 613.2 Q F1(PWD)3.663 E F0 3.663(,w)C 1.163(hose v)135.706 613.2 R
+1.163(alue is the pathname of the shell')-.25 F 3.662(sc)-.55 G 1.162(urrent w)
+313.068 613.2 R 1.162(orking directory)-.1 F 3.662(,i)-.65 G 3.662(so)421.894
+613.2 S 1.162(ne such v)434.446 613.2 R(ariable.)-.25 E -1.11(Va)72 625.2 S
+.008(riables can be used in nearly an)1.11 F 2.509(ys)-.15 G .009(hell conte)
+219.37 625.2 R .009(xt and are particularly v)-.15 F .009
+(aluable when used with control struc-)-.25 F(tures.)72 637.2 Q .583
+(There are se)97 652.8 R -.15(ve)-.25 G .583(ral shell).15 F F2 -.2(ex)3.083 G
+(pansions).2 E F0 5.583(.A)C -.25(va)254.298 652.8 S(riable).25 E F2(name)3.083
+E F0 .583(is e)3.083 F .582(xpanded to its v)-.15 F .582(alue using ${)-.25 F
+F2(name)A F0 .582(}, where)B 1.387(the braces are optional.)72 664.8 R 1.387
+(There are a number of parameter e)6.387 F 1.388(xpansions a)-.15 F -.25(va)-.2
+G 3.888(ilable. F).25 F 1.388(or e)-.15 F 1.388(xample, there are)-.15 F(${)72
+676.8 Q F2(name)A F0<3aad>A F2(wor)A(d)-.37 E F0 .891(}, which e)B .891
+(xpands to)-.15 F F2(wor)3.391 E(d)-.37 E F0(if)3.391 E F2(name)3.391 E F0 .891
+(is unset or null, and the in)3.391 F -.15(ve)-.4 G .89(rse ${).15 F F2(name)A
+F0(:+)A F2(wor)A(d)-.37 E F0 .89(}, which)B -.15(ex)72 688.8 S 1.203(pands to)
+.15 F F2(wor)3.703 E(d)-.37 E F0(if)3.703 E F2(name)3.703 E F0 1.203
+(is set and not null.)3.703 F F2 1.203(Command substitution)6.203 F F0(allo)
+3.703 E 1.204(ws the output of a command to)-.25 F .918
+(replace the command name.)72 700.8 R .918(The syntax is `)5.918 F F2(command)A
+F0(`.)A F2(Command)5.918 E F0 .918(is e)3.418 F -.15(xe)-.15 G .918
+(cuted and it and the backquotes).15 F .299
+(are replaced by its output, with trailing ne)72 712.8 R .299(wlines remo)-.25
+F -.15(ve)-.15 G(d.).15 E F2 -.8(Pa)5.299 G .299(thname e).8 F(xpansion)-.2 E
+F0 .299(is a w)2.799 F .299(ay to e)-.1 F .299(xpand a w)-.15 F(ord)-.1 E 1.586
+(to a set of \214lenames.)72 724.8 R -.8(Wo)6.586 G 1.586(rds are re).8 F -.05
+(ga)-.15 G 1.586(rded as patterns, in which the characters).05 F F1(*)4.086 E
+F0(,)A F1(?)4.086 E F0 4.085(,a)C(nd)432.115 724.8 Q F1([)4.085 E F0(ha)4.085 E
+1.885 -.15(ve s)-.2 H(pecial).15 E EP
+%%Page: 3 3
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-3-)279.67 48 S 2.845(meaning. W)72 84 R .346(ords\
+ containing these special characters are replaced with a sorted list of matchi\
+ng pathnames.)-.8 F(If a w)72 96 Q
+(ord generates no matches, it is left unchanged.)-.1 E/F1 10/Times-Italic@0 SF
+(Quoting)97 111.6 Q F0 .85(is used to remo)3.35 F 1.15 -.15(ve t)-.15 H .85
+(he special meaning of characters or w).15 F 3.35(ords. It)-.1 F .85
+(can disable special treat-)3.35 F .314
+(ment for shell operators or other special characters, pre)72 123.6 R -.15(ve)
+-.25 G .315(nt reserv).15 F .315(ed w)-.15 F .315
+(ords from being recognized as such,)-.1 F .683(and inhibit v)72 135.6 R .683
+(ariable e)-.25 F 3.183(xpansion. The)-.15 F .683
+(shell has three quoting mechanisms:)3.183 F 3.183(ab)5.683 G .683
+(ackslash preserv)387.413 135.6 R .682(es the literal)-.15 F -.25(va)72 147.6 S
+.417(lue of the ne).25 F .417(xt character)-.15 F 2.917(,ap)-.4 G .417
+(air of single quotes preserv)196.712 147.6 R .417(es the literal v)-.15 F .418
+(alue of each character between the)-.25 F 1.426
+(quotes, and a pair of double quotes preserv)72 159.6 R 1.425
+(es the literal meaning of enclosed characters while allo)-.15 F(wing)-.25 E
+(some e)72 171.6 Q(xpansions.)-.15 E 1.054(Some of the commands b)97 187.2 R
+1.054(uilt into the shell are part of the programming language.)-.2 F(The)6.055
+E/F2 10/Times-Bold@0 SF(br)3.555 E(eak)-.18 E F0(and)3.555 E F2(continue)72
+199.2 Q F0 1.175(commands control loop e)3.675 F -.15(xe)-.15 G 1.175
+(cution as in the C language.).15 F(The)6.175 E F2 -2.3 -.15(ev a)3.675 H(l).15
+E F0 -.2(bu)3.675 G 1.174(iltin allo).2 F 1.174(ws a string to be)-.25 F .204
+(parsed and e)72 211.2 R -.15(xe)-.15 G .204(cuted as a command.).15 F F2 -.65
+(Wa)5.205 G(it).65 E F0 .205
+(tells the shell to pause until the processes speci\214ed as ar)2.705 F
+(guments)-.18 E(ha)72 223.2 Q .3 -.15(ve ex)-.2 H(ited.).15 E F2 2.5
+(2.3. Interacti)72 247.2 R .2 -.1(ve F)-.1 H(eatur)-.15 E(es)-.18 E F0 .51
+(Shells ha)97 262.8 R .81 -.15(ve b)-.2 H -.15(eg).15 G .51(un of).15 F .51
+(fering features geared speci\214cally for interacti)-.25 F .81 -.15(ve u)-.25
+H .51(se rather than to augment the).15 F .76(programming language.)72 274.8 R
+.761(These interacti)5.76 F 1.061 -.15(ve f)-.25 H .761
+(eatures include job control, command line editing, history and).15 F(aliases.)
+72 286.8 Q .626(Job control is a f)97 302.4 R .626(acility pro)-.1 F .626
+(vided jointly by the shell and the)-.15 F/F3 9/Times-Roman@0 SF(UNIX)3.125 E
+F0 -.1(ke)3.125 G .625(rnel that allo).1 F .625(ws users to selec-)-.25 F(ti)72
+314.4 Q -.15(ve)-.25 G .344
+(ly stop \(suspend\) and restart \(resume\) processes.).15 F .345
+(Each pipeline e)5.345 F -.15(xe)-.15 G .345
+(cuted by the shell is referred to as a).15 F F1(job)72 326.4 Q F0 2.989(.J)C
+.488(obs may be suspended and restarted in either the fore)94.159 326.4 R .488
+(ground, where the)-.15 F 2.988(yh)-.15 G -2.25 -.2(av e)397.148 326.4 T .488
+(access to the terminal,)3.188 F .833(or background, where the)72 338.4 R 3.333
+(ya)-.15 G .834(re isolated and cannot read from the terminal.)189.312 338.4 R
+-.8(Ty)5.834 G .834(ping the).8 F F1(suspend)3.334 E F0(character)5 E .459(whi\
+le a process is running stops that process and returns control to the shell.)72
+350.4 R .459(Once a job is suspended, the)5.459 F .392
+(user manipulates the job')72 362.4 R 2.892(ss)-.55 G .392(tate, using)184.118
+362.4 R F2(bg)2.892 E F0 .393(to continue it in the background,)2.892 F F2(fg)
+2.893 E F0 .393(to return it to the fore)2.893 F(ground)-.15 E .891(and a)72
+374.4 R -.1(wa)-.15 G .891(it its completion, or).1 F F2(kill)3.391 E F0 .891
+(to send it a signal.)3.391 F(The)5.89 E F2(jobs)3.39 E F0 .89
+(command lists the status of jobs, and)3.39 F F2(wait)3.39 E F0 .407
+(will pause the shell until a speci\214ed job terminates.)72 386.4 R .407
+(The shell pro)5.407 F .407(vides a number of w)-.15 F .407
+(ays to refer to a job,)-.1 F(and will notify the user whene)72 398.4 Q -.15
+(ve)-.25 G 2.5(rab).15 G(ackground job terminates.)220.18 398.4 Q -.4(Wi)97 414
+S .956(th the adv).4 F .956(ent of more po)-.15 F .956
+(werful terminals and terminal emulators, more sophisticated interaction)-.25 F
+.253(than that pro)72 426 R .253(vided by the)-.15 F F3(UNIX)2.753 E F0 -.1(ke)
+2.754 G .254(rnel terminal dri).1 F -.15(ve)-.25 G 2.754(ri).15 G 2.754(sp)
+293.592 426 S 2.754(ossible. Some)305.236 426 R .254(shells of)2.754 F .254
+(fer command line editing,)-.25 F 1.141
+(which permits a user to edit lines of input using f)72 438 R(amiliar)-.1 E F1
+(emacs)3.64 E F0(or)3.64 E F1(vi)3.64 E F0 1.14
+(-style commands before submitting)B .02(them to the shell.)72 450 R .02
+(Editors allo)5.02 F 2.52(wc)-.25 G .02(orrections to be made without ha)206.31
+450 R .021(ving to erase back to the point of error)-.2 F 2.521(,o)-.4 G(r)
+500.67 450 Q .135(start the line ane)72 462 R 3.935 -.65(w. C)-.25 H .135
+(ommand line editors run the g).65 F .135(amut from a small \214x)-.05 F .134
+(ed set of commands and k)-.15 F .434 -.15(ey b)-.1 H(ind-).15 E
+(ings to input f)72 474 Q(acilities which allo)-.1 E 2.5(wa)-.25 G
+(rbitrary actions to be bound to a k)217.2 474 Q .3 -.15(ey o)-.1 H 2.5(rk).15
+G .3 -.15(ey s)379.88 474 T(equence.).15 E .145(Modern shells also k)97 489.6 R
+.145(eep a history)-.1 F 2.645(,w)-.65 G .146
+(hich is the list of commands a user has typed.)243.49 489.6 R .146(Shell f)
+5.146 F .146(acilities are)-.1 F -.2(av)72 501.6 S .368(ailable to recall pre)
+-.05 F .367(vious commands and use portions of old commands when composing ne)
+-.25 F 2.867(wo)-.25 G 2.867(nes. The)467.253 501.6 R 1.456
+(command history can be sa)72 513.6 R -.15(ve)-.2 G 3.957(dt).15 G 3.957
+(oa\214)207.522 513.6 S 1.457
+(le and read back in at shell startup, so it persists across sessions.)230.436
+513.6 R .675(Shells which pro)72 525.6 R .675
+(vide both command editing and history generally ha)-.15 F .974 -.15(ve e)-.2 H
+.674(diting commands to interacti).15 F -.15(ve)-.25 G(ly).15 E(step forw)72
+537.6 Q(ard and backw)-.1 E(ard through the history list.)-.1 E .013
+(Aliases allo)97 553.2 R -5.012 2.513(wa s)-.25 H .014
+(tring to be substituted for a command name.)164.28 553.2 R(The)5.014 E 2.514
+(yc)-.15 G .014(an be used to create a mnemonic)373.396 553.2 R .568(for a)72
+565.2 R F3(UNIX)3.068 E F0 .568(command name \()3.068 F/F4 10/Courier@0 SF .568
+(alias del=rm)B F0 .568(\), to e)B .567(xpand a single w)-.15 F .567
+(ord to a comple)-.1 F 3.067(xc)-.15 G .567(ommand \()432.603 565.2 R F4(alias)
+A .255(news='xterm -g 80x45 -title trn -e trn -e -S1 -N &')72 577.2 R F0 .255
+(\), or to ensure that a command)B(is in)72 589.2 Q -.2(vo)-.4 G -.1(ke).2 G
+2.5(dw).1 G(ith a basic set of options \()122.41 589.2 Q F4
+(alias ls="/bin/ls -F")A F0(\).)A F2 2.5(3. The)72 613.2 R
+(POSIX Shell Standard)2.5 E F1(POSIX)97 628.8 Q F0 .239
+(is a name originally coined by Richard Stallman for a f)4.405 F .239
+(amily of open system standards based)-.1 F(on)72 640.8 Q F3(UNIX)3.239 E F0
+5.739(.T)C .74(here are a number of aspects of)122.079 640.8 R F3(UNIX)3.24 E
+F0 .74(under consideration for standardization, from the basic)3.24 F .192
+(system services at the system call and C library le)72 652.8 R -.15(ve)-.25 G
+2.692(lt).15 G 2.692(oa)290.16 652.8 S .191
+(pplications and tools to system administration and)302.292 652.8 R 2.5
+(management. Each)72 664.8 R(area of standardization is assigned to a w)2.5 E
+(orking group in the 1003 series.)-.1 E 3.602(The POSIX Shell and T)97 680.4 R
+3.602(ools standard has been de)-.8 F -.15(ve)-.25 G 3.603(loped by IEEE W).15
+F 3.603(orking Group 1003.2)-.8 F -1.667(\(POSIX.2\) [4].)72 692.4 R 2.799
+(It concentrates on the command interpreter interf)7.799 F 2.799
+(ace and utility programs commonly)-.1 F -.15(exe)72 704.4 S 2.345
+(cuted from the command line or by other programs.).15 F 2.345(An initial v)
+7.345 F 2.345(ersion of the standard has been)-.15 F(appro)72 716.4 Q -.15(ve)
+-.15 G 2.915(da).15 G .414(nd published by the IEEE, and w)116.265 716.4 R .414
+(ork is currently underw)-.1 F .414(ay to update it.)-.1 F .414
+(There are four primary)5.414 F(areas of w)72 728.4 Q
+(ork in the 1003.2 standard:)-.1 E EP
+%%Page: 4 4
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-4-)279.67 48 S 21.5<8341>72 84 S .835
+(spects of the shell')104.22 84 R 3.335(ss)-.55 G .835
+(yntax and command language.)192 84 R 3.335(An)5.835 G .835(umber of special b)
+338.095 84 R .835(uiltins such as)-.2 F/F1 10/Times-Bold@0 SF(cd)3.335 E F0
+(and)3.335 E F1(exec)97 96 Q F0 .545(are being speci\214ed as part of the shel\
+l, since their functionality usually cannot be implemented)3.046 F
+(by a separate e)97 108 Q -.15(xe)-.15 G(cutable;).15 E 21.5<8341>72 123.6 S
+.73(set of utilities to be called by shell scripts and applications.)107.45
+123.6 R .731(Examples are programs lik)5.731 F(e)-.1 E/F2 10/Times-Italic@0 SF
+2.397(sed, tr)3.231 F(,)-1.11 E F0(and)97 135.6 Q F2(awk.)2.853 E F0 .352
+(Utilities commonly implemented as shell b)4.519 F .352
+(uiltins are described in this section, such as)-.2 F F1(test)2.852 E F0(and)97
+147.6 Q F1(kill)3.422 E F0 5.922(.A)C 3.422(ne)144.404 147.6 S .922
+(xpansion of this section')157.116 147.6 R 3.423(ss)-.55 G .923
+(cope, termed the User Portability Extension, or UPE, has)268.586 147.6 R
+(standardized interacti)97 159.6 Q .3 -.15(ve p)-.25 H(rograms such as).15 E F2
+(vi)2.5 E F0(and)4.166 E F2(mailx;)2.5 E F0 21.5<8341>72 175.2 S .926
+(group of functional interf)107.646 175.2 R .926(aces to services pro)-.1 F
+.926(vided by the shell, such as the traditional)-.15 F F2(system)3.425 E F0(C)
+5.091 E .507(library function.)97 187.2 R .507
+(There are functions to perform shell w)5.507 F .508(ord e)-.1 F .508
+(xpansions, perform \214lename e)-.15 F(xpansion)-.15 E(\()97 199.2 Q F2
+(globbing)A F0 .58(\), obtain v)B .58
+(alues of POSIX.2 system con\214guration v)-.25 F .58(ariables, retrie)-.25 F
+.88 -.15(ve v)-.25 H .58(alues of en)-.1 F(vironment)-.4 E -.25(va)97 211.2 S
+(riables \().25 E F2 -.1(ge)C(ten).1 E(v\(\))-.4 E F0(\), and other services;)
+.833 E 21.5<8341>72 226.8 S(suite of `)106.72 226.8 Q(`de)-.74 E -.15(ve)-.25 G
+(lopment').15 E 2.5('u)-.74 G(tilities such as)209.54 226.8 Q F2(c89)2.5 E F0
+(\(the POSIX.2 v)4.166 E(ersion of)-.15 E F2(cc)2.5 E F0(\), and)A F2(yacc.)2.5
+E F0 .483(Bash is concerned with the aspects of the shell')97 242.4 R 2.983(sb)
+-.55 G(eha)301.597 242.4 Q .484(vior de\214ned by POSIX.2.)-.2 F .484
+(The shell command)5.484 F 1.439
+(language has of course been standardized, including the basic \215o)72 254.4 R
+3.938(wc)-.25 G 1.438(ontrol and program e)359.688 254.4 R -.15(xe)-.15 G 1.438
+(cution con-).15 F 1.145(structs, I/O redirection and pipelining, ar)72 266.4 R
+1.145(gument handling, v)-.18 F 1.145(ariable e)-.25 F 1.146
+(xpansion, and quoting.)-.15 F(The)6.146 E F2(special)3.646 E F0 -.2(bu)72
+278.4 S .676(iltins, which must be implemented as part of the shell to pro).2 F
+.676(vide the desired functionality)-.15 F 3.176(,a)-.65 G .676(re speci\214ed)
+457.504 278.4 R .7(as being part of the shell; e)72 290.4 R .7
+(xamples of these are)-.15 F F1 -2.3 -.15(ev a)3.201 H(l).15 E F0(and)3.201 E
+F1(export)3.201 E F0 5.701(.O)C .701(ther utilities appear in the sections of)
+352.034 290.4 R .256(POSIX.2 not de)72 302.4 R -.2(vo)-.25 G .256(ted to the s\
+hell which are commonly \(and in some cases must be\) implemented as b).2 F
+(uiltin)-.2 E(commands, such as)72 314.4 Q F1 -.18(re)2.5 G(ad).18 E F0(and)2.5
+E F1(test)2.5 E F0(.)A .972(POSIX.2 also speci\214es aspects of the shell')97
+330 R 3.473(si)-.55 G(nteracti)286.016 330 Q 1.273 -.15(ve b)-.25 H(eha).15 E
+.973(vior as part of the UPE, including job)-.2 F .233
+(control, command line editing, and history)72 342 R 5.233(.I)-.65 G .233
+(nterestingly enough, only)253.849 342 R F2(vi)2.733 E F0 .233
+(-style line editing commands ha)B -.15(ve)-.2 G(been standardized;)72 354 Q F2
+(emacs)2.5 E F0(editing commands were left out due to objections.)2.5 E .148
+(There were certain areas in which POSIX.2 felt standardization w)97 369.6 R
+.149(as necessary)-.1 F 2.649(,b)-.65 G .149(ut no e)420.643 369.6 R .149
+(xisting imple-)-.15 F 1.598(mentation pro)72 381.6 R 1.598
+(vided the proper beha)-.15 F(vior)-.2 E 6.598(.T)-.55 G 1.598(he w)251.56
+381.6 R 1.597(orking group in)-.1 F -.15(ve)-.4 G 1.597
+(nted and standardized functionality in).15 F .228(these areas.)72 393.6 R(The)
+5.228 E F1(command)2.728 E F0 -.2(bu)2.728 G .228(iltin w).2 F .228(as in)-.1 F
+-.15(ve)-.4 G .228(nted so that shell functions could be written to replace b)
+.15 F(uiltins;)-.2 E 1.663(it mak)72 405.6 R 1.663
+(es the capabilities of the b)-.1 F 1.663(uiltin a)-.2 F -.25(va)-.2 G 1.663
+(ilable to the function.).25 F 1.663(The reserv)6.663 F 1.663(ed w)-.15 F 1.663
+(ord `)-.1 F(`!')-.74 E 4.163('w)-.74 G 1.663(as added to)455.685 405.6 R(ne)72
+417.6 Q -.05(ga)-.15 G .915(te the return v).05 F .915
+(alue of a command or pipeline; it w)-.25 F .916(as nearly impossible to e)-.1
+F .916(xpress `)-.15 F .916(`if not x')-.74 F 3.416('c)-.74 G(leanly)479.56
+417.6 Q .904(using the sh language.)72 429.6 R .904(There e)5.904 F .904
+(xist multiple incompatible implementations of the)-.15 F F1(test)3.403 E F0
+-.2(bu)3.403 G .903(iltin, which tests).2 F .28
+(\214les for type and other attrib)72 441.6 R .281
+(utes and performs arithmetic and string comparisons.)-.2 F .281
+(POSIX considered none)5.281 F .868(of these correct, so the standard beha)72
+453.6 R .868(vior w)-.2 F .868(as speci\214ed in terms of the number of ar)-.1
+F .867(guments to the com-)-.18 F 3.803(mand. POSIX.2)72 465.6 R 1.303
+(dictates e)3.803 F 1.303(xactly what will happen when four or fe)-.15 F 1.303
+(wer ar)-.25 F 1.303(guments are gi)-.18 F -.15(ve)-.25 G 3.803(nt).15 G(o)
+459.462 465.6 Q F1(test)3.804 E F0 3.804(,a)C(nd)494 465.6 Q(lea)72 477.6 Q
+-.15(ve)-.2 G 4.531(st).15 G 2.031(he beha)103.951 477.6 R 2.031
+(vior unde\214ned when more ar)-.2 F 2.031(guments are supplied.)-.18 F 2.03
+(Bash uses the POSIX.2 algorithm,)7.031 F(which w)72 489.6 Q(as concei)-.1 E
+-.15(ve)-.25 G 2.5(db).15 G 2.5(yD)164.53 489.6 S -.2(av)179.25 489.6 S(id K).2
+E(orn.)-.35 E 1.128
+(While POSIX.2 includes much of what the shell has traditionally pro)97 505.2 R
+1.129(vided, some important things)-.15 F(ha)72 517.2 Q .58 -.15(ve b)-.2 H .28
+(een omitted as being `).15 F(`be)-.74 E .28(yond its scope.)-.15 F 4.26 -.74
+('' T)-.7 H .28(here is, for instance, no mention of a dif).74 F .28
+(ference between)-.25 F(a)72 529.2 Q F2(lo)3.354 E(gin)-.1 E F0 .854
+(shell and an)5.02 F 3.354(yo)-.15 G .854(ther interacti)167.956 529.2 R 1.154
+-.15(ve s)-.25 H .854(hell \(since POSIX.2 does not specify a login program\).)
+.15 F .855(No \214x)5.855 F(ed)-.15 E
+(startup \214les are de\214ned, either \255 the standard does not mention)72
+541.2 Q F2(.pr)2.5 E(o\214le)-.45 E F0(.)1.666 E F1 2.5(4. Shell)72 565.2 R
+(Comparison)2.5 E F0 .693(This section compares features of bash, sh, and ksh \
+\(the three shells closest to POSIX compliance\).)97 580.8 R .245(Since ksh an\
+d bash are supersets of sh, the features common to all three are co)72 592.8 R
+-.15(ve)-.15 G .245(red \214rst.).15 F .245(Some of the fea-)5.245 F 1.198
+(tures bash and ksh contain which are not in sh will be discussed.)72 604.8 R
+(Ne)6.198 E 1.198(xt, features unique to bash will be)-.15 F 2.866(listed. The)
+72 616.8 R .366(\214rst three sections pro)2.866 F .366(vide a progressi)-.15 F
+-.15(ve)-.25 G .366(ly more detailed o).15 F -.15(ve)-.15 G(rvie).15 E 2.866
+(wo)-.25 G 2.866(fb)395.706 616.8 S 2.866(ash. Finally)406.902 616.8 R 2.866
+(,f)-.65 G .366(eatures of)464.484 616.8 R(ksh-88 \(the currently-a)72 628.8 Q
+-.25(va)-.2 G(ilable v).25 E(ersion\) not in sh or bash will be presented.)-.15
+E F1 2.5(4.1. Common)72 652.8 R -.25(Fe)2.5 G(atur).25 E(es)-.18 E F0 .021
+(All three shells ha)97 668.4 R .321 -.15(ve t)-.2 H .021
+(he same basic feature set, which is essentially that pro).15 F .02
+(vided by sh and described)-.15 F 1.026(in an)72 680.4 R 3.526(ys)-.15 G 3.526
+(hm)105.012 680.4 S 1.027
+(anual page. Bash and ksh are both sh supersets, and so all three pro)121.318
+680.4 R 1.027(vide the command inter)-.15 F(-)-.2 E .714
+(preter and programming language described earlier)72 692.4 R 3.214(.T)-.55 G
+.714(he shell grammar)291.506 692.4 R 3.214(,s)-.4 G .714(yntax, \215o)371.568
+692.4 R 3.214(wc)-.25 G .714(ontrol, redirections,)424.686 692.4 R(and b)72
+704.4 Q(uiltins implemented by the Bourne shell are the baseline for subsequen\
+t discussion.)-.2 E EP
+%%Page: 5 5
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-5-)279.67 48 S/F1 10/Times-Bold@0 SF 2.5(4.2. F)72
+84 R(eatur)-.25 E(es in bash and ksh)-.18 E F0 .458(Ksh and bash ha)97 99.6 R
+.758 -.15(ve s)-.2 H -2.15 -.25(ev e).15 H .459(ral features in common be).25 F
+.459(yond this base le)-.15 F -.15(ve)-.25 G 2.959(lo).15 G 2.959(ff)387.814
+99.6 S(unctionality)397.433 99.6 Q 5.459(.S)-.65 G .459(ome of this)458.082
+99.6 R(is due to the POSIX.2 standard.)72 111.6 Q(Other functions ha)5 E .3
+-.15(ve b)-.2 H(een implemented in bash using ksh as a guide.).15 E F1 2.5
+(4.2.1. V)72 135.6 R(ariables and V)-.92 E(ariable Expansion)-.92 E F0 .097
+(Bash and ksh ha)97 151.2 R .396 -.15(ve a)-.2 H .096(ugmented v).15 F .096
+(ariable e)-.25 F 2.596(xpansion. Arithmetic)-.15 F .096(substitution allo)
+2.596 F .096(ws an e)-.25 F .096(xpression to be)-.15 F -.25(eva)72 163.2 S .6
+(luated and the result substituted.).25 F .6(Shell v)5.6 F .6
+(ariables may be used as operands, and the result of an e)-.25 F(xpres-)-.15 E
+.41(sion may be assigned to a v)72 175.2 R 2.91(ariable. Nearly)-.25 F .41
+(all of the operators from the C language are a)2.91 F -.25(va)-.2 G .41
+(ilable, with the).25 F(same precedence rules:)72 187.2 Q/F2 10/Courier@0 SF 6
+($e)97 205.2 S(cho $\(\(3 + 5 * 32\)\))115 205.2 Q(163)97 217.2 Q F0 -1.11(Va)
+72 238.8 S 1.445(riables may be declared as)1.11 F/F3 10/Times-Italic@0 SF
+(inte)3.945 E -.1(ge)-.4 G(r).1 E F0 3.945(,w)1.666 G 1.446
+(hich causes arithmetic e)240.956 238.8 R -.25(va)-.25 G 1.446
+(luation to be performed on the v).25 F(alue)-.25 E(whene)72 250.8 Q -.15(ve)
+-.25 G 2.5(rt).15 G(he)115.75 250.8 Q 2.5(ya)-.15 G(re assigned to.)136.98
+250.8 Q .483(There are ne)97 266.4 R 2.983(we)-.25 G .483
+(xpansions to obtain the length of a v)162.179 266.4 R(ariable')-.25 E 2.982
+(sv)-.55 G .482(alue and to remo)352.19 266.4 R .782 -.15(ve s)-.15 H .482
+(ubstrings match-).15 F .063(ing speci\214ed patterns from the be)72 278.4 R
+.063(ginning and end of v)-.15 F .063(ariable v)-.25 F 2.563(alues. A)-.25 F
+(ne)2.563 E 2.563(wf)-.25 G .064(orm of command substitution,)383.249 278.4 R
+F1($\()72 290.4 Q F3(list)A F1(\))A F0 2.5(,i)C 2.5(sm)103.67 290.4 S
+(uch easier to nest than `)117.84 290.4 Q F3(list)A F0 2.5(`a)C
+(nd has simpli\214ed quoting rules.)235.04 290.4 Q .082(There are ne)97 306 R
+2.582(wv)-.25 G .082(ariables to control the shell')161.436 306 R 2.581(sb)-.55
+G(eha)284.333 306 Q(vior)-.2 E 2.581(,a)-.4 G .081(nd additional v)323.244 306
+R .081(ariables set or interpreted spe-)-.25 F 1.038(cially by the shell.)72
+318 R F1(RANDOM)6.038 E F0(and)3.538 E F1(SECONDS)3.538 E F0(are)3.539 E F3
+(dynamic)3.539 E F0 -.25(va)3.539 G 3.539(riables: their).25 F -.25(va)3.539 G
+1.039(lues are generated afresh).25 F 1.022(each time the)72 330 R 3.522(ya)
+-.15 G 1.022(re referenced.)140.176 330 R F1(RANDOM)6.022 E F0 1.021
+(returns a dif)3.521 F 1.021(ferent random number each time it is referenced,)
+-.25 F(and)72 342 Q F1(SECONDS)3.138 E F0 .638
+(returns the number of seconds since the shell w)3.138 F .638
+(as started or the v)-.1 F .639(ariable w)-.25 F .639(as assigned to,)-.1 F
+1.448(plus an)72 354 R 3.948(yv)-.15 G 1.448(alue assigned.)115.606 354 R F1
+(PWD)6.448 E F0(and)3.948 E F1(OLDPWD)3.947 E F0 1.447
+(are set to the current and pre)3.947 F 1.447(vious w)-.25 F 1.447
+(orking directories,)-.1 F(respecti)72 366 Q -.15(ve)-.25 G(ly).15 E(.)-.65 E
+F1(TMOUT)5.604 E F0 .604(controls ho)3.104 F 3.104(wl)-.25 G .604
+(ong the shell will w)226.436 366 R .604(ait at a prompt for input.)-.1 F(If)
+5.604 E F1(TMOUT)3.104 E F0 .605(is set to a)3.105 F -.25(va)72 378 S 1.168
+(lue greater than zero, the shell e).25 F 1.168(xits after w)-.15 F 1.168
+(aiting that man)-.1 F 3.668(ys)-.15 G 1.167(econds for input.)337.478 378 R F1
+(REPL)6.167 E(Y)-.92 E F0 1.167(is the def)3.667 F(ault)-.1 E -.25(va)72 390 S
+.991(riable for the).25 F F1 -.18(re)3.491 G(ad).18 E F0 -.2(bu)3.491 G .991
+(iltin; if no v).2 F .992(ariable names are supplied as ar)-.25 F .992
+(guments, the line read is assigned to)-.18 F F1(REPL)72 402 Q(Y)-.92 E F0(.)A
+F1 2.5(4.2.2. New)72 426 R(and Modi\214ed Builtins)2.5 E F0 .652(Both shells e)
+97 441.6 R .651(xpand the basic sh set of b)-.15 F .651(uiltin commands.)-.2 F
+F1(Let)5.651 E F0(pro)3.151 E .651(vides a w)-.15 F .651
+(ay to perform arithmetic)-.1 F 2.767(on shell v)72 453.6 R 5.268
+(ariables. Shell)-.25 F 2.768(programmers use)5.268 F F1(typeset)5.268 E F0
+2.768(\(bash includes)5.268 F F1(declar)5.268 E(e)-.18 E F0 2.768(as a synon)
+5.268 F 2.768(ym\) to assign)-.15 F(attrib)72 465.6 Q .295(utes such as)-.2 F
+F3 -.2(ex)2.795 G(port).2 E F0(and)4.461 E F3 -.37(re)2.795 G(adonly).37 E F0
+.295(to v)4.461 F(ariables.)-.25 E F1(Getopts)5.295 E F0 .294
+(is used by shell scripts to parse script options)2.795 F .962(and ar)72 477.6
+R 3.462(guments. The)-.18 F F1(set)3.462 E F0 .962(command has a ne)3.462 F
+3.462(wo)-.25 G(ption)266.446 477.6 Q F1<ad6f>3.463 E F0 .963(which tak)3.463 F
+.963(es option names as ar)-.1 F 3.463(guments. Option)-.18 F 1.28
+(names are synon)72 489.6 R 1.28(yms for the other set options \(e.g.,)-.15 F
+F1<ad66>3.78 E F0(and)3.78 E F1 1.28(\255o noglob)3.78 F F0 3.78(\)o)C 3.78(rp)
+375.97 489.6 S(ro)388.08 489.6 Q 1.28(vide ne)-.15 F 3.78(wf)-.25 G 1.28
+(unctionality \()440.78 489.6 R F1(-o)A(notify)72 501.6 Q F0 3.348(,f)C .849
+(or e)106.178 501.6 R 3.349(xample\). The)-.15 F F1 -.18(re)3.349 G(ad).18 E F0
+-.2(bu)3.349 G .849(iltin tak).2 F .849(es a ne)-.1 F(w)-.25 E F1<ad72>3.349 E
+F0 .849(option to specify that a line ending in a backslash)3.349 F
+(should not be continued.)72 513.6 Q F1 2.5(4.2.3. T)72 537.6 R(ilde Expansion)
+-.18 E F0 -.35(Ti)97 553.2 S .252(lde e).35 F .251
+(xpansion is a feature adopted from the C shell.)-.15 F 2.751(At)5.251 G .251
+(ilde character at the be)331.172 553.2 R .251(ginning of a w)-.15 F .251
+(ord is)-.1 F -.15(ex)72 565.2 S(panded to either).15 E F1($HOME)2.5 E F0
+(or the home directory of another user)2.5 E 2.5(,d)-.4 G
+(epending on what follo)345.84 565.2 Q(ws the tilde.)-.25 E F1 2.5
+(4.2.4. Interacti)72 589.2 R .2 -.1(ve I)-.1 H(mpr).1 E -.1(ove)-.18 G(ments).1
+E F0 .789(The most noticable impro)97 604.8 R -.15(ve)-.15 G .789(ments o).15 F
+-.15(ve)-.15 G 3.289(rs).15 G 3.289(ha)263.385 604.8 S .789
+(re geared for interacti)276.114 604.8 R 1.089 -.15(ve u)-.25 H 3.29(se. Ksh)
+.15 F .79(and bash pro)3.29 F .79(vide job)-.15 F .882(control in a v)72 616.8
+R .882(ery similar f)-.15 F .882
+(ashion, with the same options to enable and disable it \()-.1 F F1 .881
+(set -o monitor)B F0 3.381(\)a)C .881(nd the)478.399 616.8 R(same b)72 628.8 Q
+(uiltin commands to manipulate jobs \()-.2 E F1(jobs/fg/bg/kill/wait)A F0(\).)A
+.866(Command line editing, with emacs and vi-style k)97 644.4 R 1.166 -.15
+(ey b)-.1 H .866(indings, is a).15 F -.25(va)-.2 G .866(ilable in both shells.)
+.25 F .866(The Bash)5.866 F F3 -.37(re)72 656.4 S(adline).37 E F0 1.578
+(library is considerably more sophisticated than the ksh editing library:)5.744
+F 1.577(it allo)6.577 F 1.577(ws arbitrary k)-.25 F -.15(ey)-.1 G 1.867
+(bindings, macros, a per)72 668.4 R 1.868(-user customization \214le \()-.2 F
+F3(~/.inputr)A(c)-.37 E F0 1.868(\), a number of v)B 1.868
+(ariables to further customize)-.25 F(beha)72 680.4 Q(vior)-.2 E 3.538(,a)-.4 G
+1.038(nd a much lar)116.868 680.4 R 1.038
+(ger set of bindable editing commands.)-.18 F 1.037
+(The ksh editing library pro)6.037 F 1.037(vides a small)-.15 F<8c78>72 692.4 Q
+(ed command set and only clumsy macros.)-.15 E .706(Both shells of)97 708 R
+.706(fer access to the command history)-.25 F 5.706(.T)-.65 G .706
+(he in-line editing options ha)307.278 708 R 1.006 -.15(ve d)-.2 H(ef).15 E
+.706(ault k)-.1 F 1.006 -.15(ey b)-.1 H(ind-).15 E .624
+(ings to access the history list.)72 720 R(The)5.624 E F1(fc)3.124 E F0 .624
+(command is pro)3.124 F .624(vided to re-e)-.15 F -.15(xe)-.15 G .623(cute pre)
+.15 F .623(vious commands and display)-.25 F EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-6-)279.67 48 S(the contents of the history list.)
+72 84 Q/F1 10/Times-Bold@0 SF 2.5(4.2.5. Miscellaneous)72 108 R
+(Changes and Impr)2.5 E -.1(ov)-.18 G(ments).1 E F0 .707(Other impro)97 123.6 R
+-.15(ve)-.15 G .707(ments include aliases, the).15 F F1(select)3.207 E F0 .708
+(shell language construct, which supports the genera-)3.207 F 1.298
+(tion and presentation of simple menus, and e)72 135.6 R 1.298
+(xtensions to the)-.15 F F1(export)3.798 E F0(and)3.798 E F1 -.18(re)3.798 G
+(adonly).18 E F0 -.2(bu)3.798 G 1.298(iltins which allo).2 F(w)-.25 E -.25(va)
+72 147.6 S .017(riables to be assigned v).25 F .017
+(alues at the same time the attrib)-.25 F .017(utes are set.)-.2 F -.8(Wo)5.018
+G .018(rd splitting has changed:).8 F .018(if tw)5.018 F 2.518(oo)-.1 G(r)
+500.67 147.6 Q .158(more adjacent w)72 159.6 R .157
+(ord splitting characters occur)-.1 F 2.657(,b)-.4 G .157
+(ash and ksh will generate null \214elds; sh mak)264.893 159.6 R .157
+(es runs of mul-)-.1 F .339
+(tiple \214eld separator charactors the same as a single separator)72 171.6 R
+5.339(.B)-.55 G .34(ash and ksh split only the results of e)330.89 171.6 R
+(xpan-)-.15 E(sion, rather than e)72 183.6 Q -.15(ve)-.25 G(ry w).15 E
+(ord as sh does, closing a long-standing shell security hole.)-.1 E 1.234
+(Shell functions in bash and ksh may ha)97 199.2 R 1.534 -.15(ve l)-.2 H 1.234
+(ocal v).15 F 3.734(ariables. V)-.25 F 1.234(ariables declared with)-1.11 F F1
+(typeset)3.734 E F0 1.234(\(or the)3.734 F .001(bash synon)72 211.2 R(ym,)-.15
+E F1(local)2.501 E F0 .001(\), ha)B .301 -.15(ve a s)-.2 H .001
+(cope restricted to the function and its descendents, and may shado).15 F 2.502
+(wv)-.25 G(ariables)472.9 211.2 Q(de\214ned by the in)72 223.2 Q -.2(vo)-.4 G
+(king shell.).2 E(Local v)5 E(ariables are remo)-.25 E -.15(ve)-.15 G 2.5(dw)
+.15 G(hen a function completes.)317.75 223.2 Q F1 2.5(4.3. F)72 247.2 R(eatur)
+-.25 E(es Unique to bash)-.18 E F0(Naturally)97 262.8 Q 2.895(,b)-.65 G .395
+(ash includes features not in sh or ksh.)144.515 262.8 R .395
+(This section discusses some of the features which)5.395 F(mak)72 274.8 Q 2.986
+(eb)-.1 G .486(ash unique.)101.546 274.8 R .486(Most of them pro)5.486 F .486
+(vide impro)-.15 F -.15(ve)-.15 G 2.986(di).15 G(nteracti)288.098 274.8 Q .787
+-.15(ve u)-.25 H .487(se, b).15 F .487(ut a fe)-.2 F 2.987(wp)-.25 G .487
+(rogramming impro)394.653 274.8 R -.15(ve)-.15 G(ments).15 E
+(are present as well.)72 286.8 Q
+(Full descriptions of these features can be found in the bash documentation.)5
+E F1 2.5(4.3.1. Startup)72 310.8 R(Files)2.5 E F0 .281(Bash e)97 326.4 R -.15
+(xe)-.15 G .281(cutes startup \214les dif).15 F .281
+(ferently than other shells.)-.25 F .281(The bash beha)5.281 F .28
+(vior is a compromise between)-.2 F .116
+(the csh principle of startup \214les with \214x)72 338.4 R .116(ed names e)
+-.15 F -.15(xe)-.15 G .116(cuted for each shell and the sh `).15 F
+(`minimalist')-.74 E 2.616('b)-.74 G(eha)472.26 338.4 Q(vior)-.2 E(.)-.55 E
+2.956(An interacti)72 350.4 R 3.256 -.15(ve i)-.25 H 2.956
+(nstance of bash started as a login shell reads and e).15 F -.15(xe)-.15 G
+(cutes).15 E/F2 10/Times-Italic@0 SF(~/.bash_pr)5.455 E(o\214le)-.45 E F0 2.955
+(\(the \214le)7.121 F F2(.bash_pr)72 362.4 Q(o\214le)-.45 E F0 .835
+(in the user')5 F 3.335(sh)-.55 G .835(ome directory\), if it e)187.385 362.4 R
+3.335(xists. An)-.15 F(interacti)3.335 E 1.135 -.15(ve n)-.25 H .835
+(on-login shell reads and e).15 F -.15(xe)-.15 G(cutes).15 E F2(~/.bashr)72
+374.4 Q(c)-.37 E F0 5.538(.A)1.666 G(non-interacti)127.422 374.4 Q .838 -.15
+(ve s)-.25 H .538(hell \(one be).15 F .538(gun to e)-.15 F -.15(xe)-.15 G .538
+(cute a shell script, for e).15 F .537(xample\) reads no \214x)-.15 F .537
+(ed startup)-.15 F .139(\214le, b)72 386.4 R .139(ut uses the v)-.2 F .139
+(alue of the v)-.25 F(ariable)-.25 E F1(ENV)2.639 E F0 2.639(,i)C 2.639(fs)
+253.361 386.4 S .139(et, as the name of a startup \214le.)263.22 386.4 R .139
+(The ksh practice of reading)5.139 F F1($ENV)72 398.4 Q F0 .69(for e)3.19 F
+-.15(ve)-.25 G .69(ry shell, with the accompan).15 F .689(ying dif)-.15 F .689
+(\214culty of de\214ning the proper v)-.25 F .689(ariables and functions for)
+-.25 F(interacti)72 410.4 Q .946 -.15(ve a)-.25 H .646(nd non-interacti).15 F
+.946 -.15(ve s)-.25 H .646(hells or ha).15 F .646
+(ving the \214le read only for interacti)-.2 F .946 -.15(ve s)-.25 H .646
+(hells, w).15 F .646(as considered too)-.1 F(comple)72 422.4 Q(x.)-.15 E F1 2.5
+(4.3.2. New)72 446.4 R(Builtin Commands)2.5 E F0 1.119(There are a fe)97 462 R
+3.619(wb)-.25 G 1.118(uiltins which are ne)170.986 462 R 3.618(wo)-.25 G 3.618
+(rh)268.528 462 S -2.25 -.2(av e)280.476 462 T 1.118(been e)3.818 F 1.118
+(xtended in bash.)-.15 F(The)6.118 E F1(enable)3.618 E F0 -.2(bu)3.618 G 1.118
+(iltin allo).2 F(ws)-.25 E -.2(bu)72 474 S .736
+(iltin commands to be turned on and of).2 F 3.236(fa)-.25 G(rbitrarily)250.198
+474 Q 5.736(.T)-.65 G 3.237(ou)298.644 474 S .737(se the v)311.881 474 R .737
+(ersion of)-.15 F F2(ec)3.237 E(ho)-.15 E F0 .737(found in a user')4.903 F
+3.237(ss)-.55 G(earch)482.35 474 Q .013(path rather than the bash b)72 486 R
+(uiltin,)-.2 E/F3 10/Courier@0 SF .013(enable -n echo)2.513 F F0(suf)2.513 E
+2.513(\214ces. The)-.25 F F1(help)2.513 E F0 -.2(bu)2.513 G .013(iltin pro).2 F
+.013(vides quick synopses of)-.15 F 1.382(the shell f)72 498 R 1.382
+(acilities without requiring access to a manual page.)-.1 F F1(Builtin)6.382 E
+F0 1.383(is similar to)3.882 F F1(command)3.883 E F0 1.383(in that it)3.883 F
+.342(bypasses shell functions and directly e)72 510 R -.15(xe)-.15 G .342
+(cutes b).15 F .342(uiltin commands.)-.2 F .342
+(Access to a csh-style stack of directories)5.342 F .072(is pro)72 522 R .073
+(vided via the)-.15 F F1(pushd)2.573 E F0(,)A F1(popd)2.573 E F0 2.573(,a)C(nd)
+211.197 522 Q F1(dirs)2.573 E F0 -.2(bu)2.573 G(iltins.).2 E F1(Pushd)5.073 E
+F0(and)2.573 E F1(popd)2.573 E F0 .073(insert and remo)2.573 F .373 -.15(ve d)
+-.15 H .073(irectories from the).15 F .094(stack, respecti)72 534 R -.15(ve)
+-.25 G(ly).15 E 2.594(,a)-.65 G(nd)154.448 534 Q F1(dirs)2.594 E F0 .094
+(lists the stack contents.The)2.594 F F1(suspend)2.594 E F0 .094
+(command will stop the shell process when)2.594 F 1.329(job control is acti)72
+546 R -.15(ve)-.25 G 3.829(;m).15 G 1.329(ost other shells do not allo)169.136
+546 R 3.829(wt)-.25 G(hemselv)294.64 546 Q 1.33(es to be stopped lik)-.15 F
+3.83(et)-.1 G(hat.)421.31 546 Q F1 -.74(Ty)6.33 G(pe,).74 E F0 1.33(the bash)
+3.83 F(answer to)72 558 Q F1(which)2.5 E F0(and)2.5 E F1(whence,)2.5 E F0(sho)
+2.5 E(ws what will happen when a w)-.25 E(ord is typed as a command:)-.1 E F3 6
+($t)97 576 S(ype export)115 576 Q(export is a shell builtin)97 588 Q 6($t)97
+600 S(ype -t export)115 600 Q(builtin)97 612 Q 6($t)97 624 S(ype bash)115 624 Q
+(bash is /bin/bash)97 636 Q 6($t)97 648 S(ype cd)115 648 Q(cd is a function)97
+660 Q(cd \(\))97 672 Q({)97 684 Q(builtin cd "$@" && xtitle $HOST: $PWD)121 696
+Q(})97 708 Q EP
+%%Page: 7 7
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-7-)279.67 48 S -1.11(Va)72 84 S .682
+(rious modes tell what a command w)1.11 F .681(ord is \(reserv)-.1 F .681(ed w)
+-.15 F .681(ord, alias, function, b)-.1 F .681(uiltin, or \214le\) or which v)
+-.2 F(er)-.15 E(-)-.2 E 1.15(sion of a command will be e)72 96 R -.15(xe)-.15 G
+1.15(cuted based on a user').15 F 3.65(ss)-.55 G 1.15(earch path.)305.7 96 R
+1.15(Some of this functionality has been)6.15 F
+(adopted by POSIX.2 and folded into the)72 108 Q/F1 10/Times-Bold@0 SF(command)
+2.5 E F0(utility)2.5 E(.)-.65 E F1 2.5(4.3.3. Editing)72 132 R(and Completion)
+2.5 E F0 .682(One area in which bash shines is command line editing.)97 147.6 R
+.682(Bash uses the)5.682 F/F2 10/Times-Italic@0 SF -.37(re)3.182 G(adline).37 E
+F0 .682(library to read and)4.848 F .102(edit lines when interacti)72 159.6 R
+-.15(ve)-.25 G 5.102(.R).15 G .103(eadline is a po)191.438 159.6 R .103
+(werful and \215e)-.25 F .103(xible input f)-.15 F .103
+(acility that a user can con\214gure to his)-.1 F 2.506(tastes. It)72 171.6 R
+(allo)2.506 E .006(ws lines to be edited using either emacs or vi commands, wh\
+ere those commands are appropri-)-.25 F 2.994(ate. The)72 183.6 R .494
+(full capability of emacs is not present \255 there is no w)2.994 F .495
+(ay to e)-.1 F -.15(xe)-.15 G .495(cute a named command with M-x,).15 F .222
+(for instance \255 b)72 195.6 R .222(ut the e)-.2 F .222
+(xisting commands are more than adequate.)-.15 F .221
+(The vi mode is compliant with the com-)5.222 F
+(mand line editing standardized by POSIX.2.)72 207.6 Q 1.69
+(Readline is fully customizable.)97 223.2 R 1.691
+(In addition to the basic commands and k)6.69 F 1.991 -.15(ey b)-.1 H 1.691
+(indings, the library).15 F(allo)72 235.2 Q .83
+(ws users to de\214ne additional k)-.25 F 1.13 -.15(ey b)-.1 H .83
+(indings using a startup \214le.).15 F(The)5.83 E F2(inputr)3.329 E(c)-.37 E F0
+.829(\214le, which def)4.995 F .829(aults to the)-.1 F(\214le)72 247.2 Q F2
+(~/.inputr)4.287 E(c)-.37 E F0 4.287(,i)1.666 G 4.287(sr)137.43 247.2 S 1.788(\
+ead each time readline initializes, permitting users to maintain a consistent \
+interf)148.937 247.2 R(ace)-.1 E .547(across a set of programs.)72 259.2 R .546
+(Readline includes an e)5.546 F .546(xtensible interf)-.15 F .546
+(ace, so each program using the library can)-.1 F .23(add its o)72 271.2 R .23
+(wn bindable commands and program-speci\214c k)-.25 F .531 -.15(ey b)-.1 H
+2.731(indings. Bash).15 F .231(uses this f)2.731 F .231
+(acility to add bindings)-.1 F(that perform history e)72 283.2 Q
+(xpansion or shell w)-.15 E(ord e)-.1 E(xpansions on the current input line.)
+-.15 E .707(Readline interprets a number of v)97 298.8 R .706
+(ariables which further tune its beha)-.25 F(vior)-.2 E 5.706(.V)-.55 G .706
+(ariables e)408.432 298.8 R .706(xist to control)-.15 F .157
+(whether or not eight-bit characters are directly read as input or con)72 310.8
+R -.15(ve)-.4 G .158(rted to meta-pre\214x).15 F .158(ed k)-.15 F .458 -.15
+(ey s)-.1 H .158(equences \(a).15 F(meta-pre\214x)72 322.8 Q 1.575(ed k)-.15 F
+1.875 -.15(ey s)-.1 H 1.575
+(equence consists of the character with the eighth bit zeroed, preceded by the)
+.15 F F2(meta-)4.074 E(pr)72 334.8 Q(e\214x)-.37 E F0(character)4.45 E 2.784
+(,u)-.4 G .284(sually escape, which selects an alternate k)145.374 334.8 R -.15
+(ey)-.1 G .285(map\), to decide whether to output characters).15 F .485
+(with the eighth bit set directly or as a meta-pre\214x)72 346.8 R .485(ed k)
+-.15 F .784 -.15(ey s)-.1 H .484(equence, whether or not to wrap to a ne).15 F
+2.984(ws)-.25 G(creen)482.35 346.8 Q .157
+(line when a line being edited is longer than the screen width, the k)72 358.8
+R -.15(ey)-.1 G .158(map to which subsequent k).15 F .458 -.15(ey b)-.1 H
+(indings).15 E .531(should apply)72 370.8 R 3.031(,o)-.65 G 3.031(re)133.802
+370.8 S -.15(ve)144.353 370.8 S 3.031(nw).15 G .531
+(hat happens when readline w)168.894 370.8 R .531(ants to ring the terminal')
+-.1 F 3.03(sb)-.55 G 3.03(ell. All)399.37 370.8 R .53(of these v)3.03 F
+(ariables)-.25 E(can be set in the inputrc \214le.)72 382.8 Q .284
+(The startup \214le understands a set of C preprocessor)97 398.4 R(-lik)-.2 E
+2.785(ec)-.1 G .285(onditional constructs which allo)329.49 398.4 R 2.785(wv)
+-.25 G(ariables)472.9 398.4 Q .12(or k)72 410.4 R .42 -.15(ey b)-.1 H .119(ind\
+ings to be assigned based on the application using readline, the terminal curr\
+ently being used, or).15 F .316(the editing mode.)72 422.4 R .317
+(Users can add program-speci\214c bindings to mak)5.317 F 2.817(et)-.1 G .317
+(heir li)352.808 422.4 R -.15(ve)-.25 G 2.817(se).15 G 2.817(asier: here)
+396.922 422.4 R .317(are bindings to)2.817 F(edit the v)72 434.4 Q(alue of)-.25
+E F1 -.74(PA)2.5 G(TH)-.21 E F0(and double-quote the current or pre)2.5 E
+(vious w)-.25 E(ord:)-.1 E/F3 10/Courier@0 SF 6(#M)97 452.4 S
+(acros that are convenient for shell interaction)115 452.4 Q($if Bash)97 464.4
+Q 6(#e)97 476.4 S(dit the path)115 476.4 Q
+("\\C-xp": "PATH=${PATH}\\e\\C-e\\C-a\\ef\\C-f")97 488.4 Q 6(#p)97 500.4 S
+(repare to type a quoted word -- insert open and close double quotes)115 500.4
+Q 6(#a)97 512.4 S(nd move to just after the open quote)115 512.4 Q
+("\\C-x\\"": "\\"\\"\\C-b")97 524.4 Q 6(#Q)97 536.4 S
+(uote the current or previous word)115 536.4 Q("\\C-xq": "\\eb\\"\\ef\\"")97
+548.4 Q($endif)97 560.4 Q F0 .322(There is a readline command to re-read the \
+\214le, so users can edit the \214le, change some bindings, and be)72 582 R
+(gin)-.15 E(to use them almost immediately)72 594 Q(.)-.65 E .851
+(Bash implements the)97 609.6 R F1(bind)3.351 E F0 -.2(bu)3.351 G .851
+(iltin for more dyamic control of readline than the startup \214le permits.).2
+F F1(Bind)72 621.6 Q F0 .167(is used in se)2.667 F -.15(ve)-.25 G .167(ral w)
+.15 F 2.667(ays. In)-.1 F F2(list)2.667 E F0 .167
+(mode, it can display the current k)4.333 F .466 -.15(ey b)-.1 H .166
+(indings, list all the readline edit-).15 F .149(ing directi)72 633.6 R -.15
+(ve)-.25 G 2.649(sa).15 G -.25(va)132.798 633.6 S .149
+(ilable for binding, list which k).25 F -.15(ey)-.1 G 2.649(si).15 G -1.9 -.4
+(nv o)282.352 633.6 T .349 -.1(ke a g).4 H -2.15 -.25(iv e).1 H 2.65(nd).25 G
+(irecti)345.3 633.6 Q -.15(ve)-.25 G 2.65(,o).15 G 2.65(ro)385.04 633.6 S .15
+(utput the current set of k)396.02 633.6 R -.15(ey)-.1 G .526(bindings in a fo\
+rmat that can be incorporated directly into an inputrc \214le.)72 645.6 R(In)
+5.526 E F2(batc)3.026 E(h)-.15 E F0 .526(mode, it reads a series)4.692 F .71
+(of k)72 657.6 R 1.01 -.15(ey b)-.1 H .71
+(indings directly from a \214le and passes them to readline.).15 F .71
+(In its most common usage,)5.71 F F1(bind)3.21 E F0(tak)3.21 E .71(es a)-.1 F
+.534(single string and passes it directly to readline, which interprets the li\
+ne as if it had just been read from the)72 669.6 R(inputrc \214le.)72 681.6 Q
+(Both k)5 E .3 -.15(ey b)-.1 H(indings and v).15 E
+(ariable assignments can appear in the string gi)-.25 E -.15(ve)-.25 G 2.5(nt)
+.15 G(o)424.4 681.6 Q F1(bind)2.5 E F0(.)A .401(The readline library also pro)
+97 697.2 R .402(vides an interf)-.15 F .402(ace for)-.1 F F2(wor)2.902 E 2.902
+(dc)-.37 G(ompletion)328.546 697.2 Q F0 5.402(.W)C .402(hen the)385.888 697.2 R
+F2(completion)2.902 E F0(character)4.568 E 1.261(\(usually T)72 709.2 R 1.261
+(AB\) is typed, readline looks at the w)-.93 F 1.26
+(ord currently being entered and computes the set of \214le-)-.1 F .523
+(names of which the current w)72 721.2 R .523(ord is a v)-.1 F .523
+(alid pre\214x.)-.25 F .524
+(If there is only one possible completion, the rest of the)5.523 F EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-8-)279.67 48 S .358
+(characters are inserted directly)72 84 R 2.858(,o)-.65 G .358(therwise the co\
+mmon pre\214x of the set of \214lenames is added to the current)205.232 84 R
+-.1(wo)72 96 S 3.199(rd. A).1 F .699(second T)3.199 F .699(AB character entere\
+d immediately after a non-unique completion causes readline to list)-.93 F
+1.814(the possible completions; there is an option to ha)72 108 R 2.113 -.15
+(ve t)-.2 H 1.813(he list displayed immediately).15 F 6.813(.R)-.65 G 1.813
+(eadline pro)436.517 108 R(vides)-.15 E .482
+(hooks so that applications can pro)72 120 R .482
+(vide speci\214c types of completion before the def)-.15 F .483
+(ault \214lename completion)-.1 F .132(is attempted.)72 132 R .132
+(This is quite \215e)5.132 F .132(xible, though it is not completely user)-.15
+F 2.632(-programmable. Bash,)-.2 F .132(for e)2.632 F .132(xample, can)-.15 F
+.37(complete \214lenames, command names \(including aliases, b)72 144 R .37
+(uiltins, shell reserv)-.2 F .37(ed w)-.15 F .37(ords, shell functions, and)-.1
+F -.15(exe)72 156 S .424(cutables found in the \214le system\), shell v).15 F
+.424(ariables, usernames, and hostnames.)-.25 F .423
+(It uses a set of heuristics)5.424 F(that, while not perfect, is generally qui\
+te good at determining what type of completion to attempt.)72 168 Q/F1 10
+/Times-Bold@0 SF 2.5(4.3.4. History)72 192 R F0 .255
+(Access to the list of commands pre)97 207.6 R .255(viously entered \(the)-.25
+F/F2 10/Times-Italic@0 SF .255(command history)2.755 F F0 2.756(\)i)C 2.756(sp)
+399.236 207.6 S(ro)410.882 207.6 Q .256(vided jointly by bash)-.15 F .095
+(and the readline library)72 219.6 R 5.094(.B)-.65 G .094(ash pro)178.928 219.6
+R .094(vides v)-.15 F .094(ariables \()-.25 F F1(HISTFILE)A F0(,)A F1(HISTSIZE)
+2.594 E F0 2.594(,a)C(nd)382.068 219.6 Q F1(HISTCONTR)2.594 E(OL)-.3 E F0 2.594
+(\)a)C .094(nd the)479.186 219.6 R F1(history)72 231.6 Q F0(and)2.825 E F1(fc)
+2.825 E F0 -.2(bu)2.825 G .325(iltins to manipulate the history list.).2 F .325
+(The v)5.325 F .325(alue of)-.25 F F1(HISTFILE)2.825 E F0 .326
+(specifes the \214le where bash)2.826 F .128(writes the command history on e)72
+243.6 R .128(xit and reads it on startup.)-.15 F F1(HISTSIZE)5.128 E F0 .128
+(is used to limit the number of com-)2.628 F .346(mands sa)72 255.6 R -.15(ve)
+-.2 G 2.846(di).15 G 2.846(nt)129.002 255.6 S .346(he history)139.628 255.6 R
+(.)-.65 E F1(HISTCONTR)5.346 E(OL)-.3 E F0(pro)2.846 E .346
+(vides a crude form of control o)-.15 F -.15(ve)-.15 G 2.846(rw).15 G .346
+(hich commands are)425.548 255.6 R(sa)72 267.6 Q -.15(ve)-.2 G 2.905(do).15 G
+2.905(nt)102.325 267.6 S .405(he history list: a v)113.01 267.6 R .405(alue of)
+-.25 F F2(ignor)2.905 E(espace)-.37 E F0 .405(means to not sa)4.571 F .705 -.15
+(ve c)-.2 H .405(ommands which be).15 F .405(gin with a space; a)-.15 F -.25
+(va)72 279.6 S .339(lue of).25 F F2(ignor)2.839 E(edups)-.37 E F0 .339
+(means to not sa)4.505 F .64 -.15(ve c)-.2 H .34
+(ommands identical to the last command sa).15 F -.15(ve)-.2 G(d.).15 E F1
+(HISTCONTR)5.34 E(OL)-.3 E F0 -.1(wa)72 291.6 S 3.15(sn).1 G(amed)95.6 291.6 Q
+F1(history_contr)3.15 E(ol)-.18 E F0 .65(in earlier v)3.15 F .649
+(ersions of bash; the old name is still accepted for backw)-.15 F .649
+(ards com-)-.1 F(patibility)72 303.6 Q 5.723(.T)-.65 G(he)121.803 303.6 Q F1
+(history)3.223 E F0 .724(command can read or write \214les containing the hist\
+ory list and display the current)3.223 F .895(list contents.)72 315.6 R(The)
+5.895 E F1(fc)3.395 E F0 -.2(bu)3.395 G .895
+(iltin, adopted from POSIX.2 and the K).2 F .894(orn Shell, allo)-.35 F .894
+(ws display and re-e)-.25 F -.15(xe)-.15 G(cution,).15 E .461
+(with optional editing, of commands from the history list.)72 327.6 R .462
+(The readline library of)5.462 F .462(fers a set of commands to)-.25 F .657(se\
+arch the history list for a portion of the current input line or a string type\
+d by the user)72 339.6 R 5.657(.F)-.55 G(inally)445.836 339.6 Q 3.157(,t)-.65 G
+(he)476.403 339.6 Q F2(his-)3.157 E(tory)72 351.6 Q F0(library)4.196 E 2.53(,g)
+-.65 G .03(enerally incorporated directly into the readline library)128.346
+351.6 R 2.53(,i)-.65 G .03(mplements a f)350.636 351.6 R .031
+(acility for history recall,)-.1 F -.15(ex)72 363.6 S .594(pansion, and re-e)
+.15 F -.15(xe)-.15 G .594(cution of pre).15 F .594(vious commands v)-.25 F .594
+(ery similar to csh \(`)-.15 F .593(`bang history')-.74 F .593
+(', so called because)-.74 F(the e)72 375.6 Q
+(xclamation point introduces a history substitution\):)-.15 E/F3 10/Courier@0
+SF 6($e)97 393.6 S(cho a b c d e)115 393.6 Q 6(abcde)97 405.6 S 6($!)97 417.6 S
+6(!fghi)115 417.6 S(echo a b c d e f g h i)97 429.6 Q 6(abcdefghi)97 441.6 S 6
+($!)97 453.6 S(-2)115 453.6 Q(echo a b c d e)97 465.6 Q 6(abcde)97 477.6 S 6
+($e)97 489.6 S(cho !-2:1-4)115 489.6 Q(echo a b c d)97 501.6 Q 6(abcd)97 513.6
+S F0 1.456(The command history is only sa)72 535.2 R -.15(ve)-.2 G 3.957(dw).15
+G 1.457(hen the shell is interacti)232.599 535.2 R -.15(ve)-.25 G 3.957(,s).15
+G 3.957(oi)352.804 535.2 S 3.957(ti)364.541 535.2 S 3.957(sn)374.058 535.2 S
+1.457(ot a)386.905 535.2 R -.25(va)-.2 G 1.457(ilable for use by shell).25 F
+(scripts.)72 547.2 Q F1 2.5(4.3.5. New)72 571.2 R(Shell V)2.5 E(ariables)-.92 E
+F0 .701(There are a number of con)97 586.8 R -.15(ve)-.4 G .701(nience v).15 F
+.701(ariables that bash interprets to mak)-.25 F 3.2(el)-.1 G .7(ife easier)
+402.76 586.8 R 5.7(.T)-.55 G .7(hese include)453.59 586.8 R F1(FIGNORE)72 598.8
+Q F0 3.973(,w)C 1.473(hich is a set of \214lename suf)132.363 598.8 R<8c78>-.25
+E 1.474(es identifying \214les to e)-.15 F 1.474
+(xclude when completing \214lenames;)-.15 F F1(HOSTTYPE)72 610.8 Q F0 3.03(,w)C
+.53(hich is automatically set to a string describing the type of hardw)139.21
+610.8 R .53(are on which bash is cur)-.1 F(-)-.2 E .76(rently e)72 622.8 R -.15
+(xe)-.15 G(cuting;).15 E F1(OSTYPE)3.26 E F0 3.26(,t)C 3.26(ow)191.76 622.8 S
+.76(hich bash assigns a v)207.24 622.8 R .761(alue that identi\214es the v)-.25
+F .761(ersion of)-.15 F/F4 9/Times-Roman@0 SF(UNIX)3.261 E F0(it')3.261 E 3.261
+(sr)-.55 G(unning)476.22 622.8 Q 1.354
+(on \(great for putting architecture-speci\214c binary directories into the)72
+634.8 R F1 -.74(PA)3.854 G(TH)-.21 E F0 1.354(\); and)B F1(IGNOREEOF)3.854 E F0
+3.854(,w)C(hose)485.67 634.8 Q -.25(va)72 646.8 S .062
+(lue indicates the number of consecuti).25 F .362 -.15(ve E)-.25 H .062
+(OF characters that an interacti).15 F .362 -.15(ve s)-.25 H .062
+(hell will read before e).15 F .062(xiting \255)-.15 F .114(an easy w)72 658.8
+R .113(ay to k)-.1 F .113(eep yourself from being logged out accidentally)-.1 F
+5.113(.T)-.65 G(he)344.285 658.8 Q F1(auto_r)2.613 E(esume)-.18 E F0 -.25(va)
+2.613 G .113(riable alters the w).25 F(ay)-.1 E .409
+(the shell treats simple command names: if job control is acti)72 670.8 R -.15
+(ve)-.25 G 2.909(,a).15 G .409(nd this v)335.516 670.8 R .409
+(ariable is set, single-w)-.25 F .409(ord simple)-.1 F .17(commands without re\
+directions cause the shell to \214rst look for a suspended job with that name \
+before start-)72 682.8 R(ing a ne)72 694.8 Q 2.5(wp)-.25 G(rocess.)118.13 694.8
+Q EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-9-)279.67 48 S/F1 10/Times-Bold@0 SF 2.5
+(4.3.6. Brace)72 84 R(Expansion)2.5 E F0 .653(Since sh of)97 99.6 R .653
+(fers no con)-.25 F -.15(ve)-.4 G .653(nient w).15 F .653
+(ay to generate arbitrary strings that share a common pre\214x or suf)-.1 F
+<8c78>-.25 E 1.893(\(pathname e)72 111.6 R 1.893
+(xpansion requires that the \214lenames e)-.15 F 1.892(xist\), bash implements)
+-.15 F/F2 10/Times-Italic@0 SF(br)4.392 E 1.892(ace e)-.15 F(xpansion)-.2 E F0
+4.392(,ac)C(apability)469 111.6 Q(pick)72 123.6 Q .496(ed up from csh.)-.1 F
+.496(Brace e)5.496 F .496(xpansion is similar to pathname e)-.15 F .496
+(xpansion, b)-.15 F .497(ut the strings generated need not)-.2 F 1.107
+(correspond to e)72 135.6 R 1.107(xisting \214les.)-.15 F 3.607(Ab)6.107 G
+1.107(race e)207.655 135.6 R 1.107(xpression consists of an optional)-.15 F F2
+(pr)3.606 E(eamble)-.37 E F0 3.606(,f)1.666 G(ollo)419.286 135.6 Q 1.106
+(wed by a pair of)-.25 F 2.809
+(braces enclosing a series of comma-separated strings, and an optional)72 147.6
+R F2(postamble)5.31 E F0 7.81(.T)1.666 G 2.81(he preamble is)440.06 147.6 R(pr\
+epended to each string within the braces, and the postamble is then appended t\
+o each resulting string:)72 159.6 Q/F3 10/Courier@0 SF 6($e)97 177.6 S
+(cho a{d,c,b}e)115 177.6 Q(ade ace abe)97 189.6 Q F1 2.5(4.3.7. Pr)72 219.6 R
+(ompt Customization)-.18 E F0 .077(One of the more popular interacti)97 235.2 R
+.376 -.15(ve f)-.25 H .076(eatures that bash pro).15 F .076
+(vides is the ability to customize the prompt.)-.15 F(Both)72 247.2 Q F1(PS1)
+3.305 E F0(and)3.305 E F1(PS2,)3.305 E F0 .805
+(the primary and secondary prompts, are e)3.305 F .805
+(xpanded before being displayed.)-.15 F -.15(Pa)5.805 G(rameter).15 E .324
+(and v)72 259.2 R .324(ariable e)-.25 F .324
+(xpansion is performed when the prompt string is e)-.15 F .323
+(xpanded, so the v)-.15 F .323(alue of an)-.25 F 2.823(ys)-.15 G .323(hell v)
+454.217 259.2 R(ariable)-.25 E .728(can be put into the prompt \(e.g.,)72 271.2
+R F1($SHL)3.228 E(VL)-.92 E F0 3.228(,w)C .728(hich indicates ho)258.564 271.2
+R 3.228(wd)-.25 G .729(eeply the current shell is nested\).)342.988 271.2 R
+(Bash)5.729 E 1.895
+(specially interprets characters in the prompt string preceded by a backslash.)
+72 283.2 R 1.895(Some of these backslash)6.895 F .874
+(escapes are replaced with the current time, the date, the current w)72 295.2 R
+.874(orking directory)-.1 F 3.374(,t)-.65 G .874(he username, and the)416.958
+295.2 R .781(command number or history number of the command being entered.)72
+307.2 R .78(There is e)5.781 F -.15(ve)-.25 G 3.28(nab).15 G .78
+(ackslash escape to)429.13 307.2 R .007
+(cause the shell to change its prompt when running as root after an)72 319.2 R
+F2(su)2.507 E F0 5.007(.B)C .008(efore printing each primary prompt,)360.388
+319.2 R .27(bash e)72 331.2 R .27(xpands the v)-.15 F(ariable)-.25 E F1(PR)2.77
+E(OMPT_COMMAND)-.3 E F0 .269(and, if it has a v)2.77 F .269(alue, e)-.25 F -.15
+(xe)-.15 G .269(cutes the e).15 F .269(xpanded v)-.15 F .269(alue as a)-.25 F
+.04(command, allo)72 343.2 R .041(wing additional prompt customization.)-.25 F
+-.15(Fo)5.041 G 2.541(re).15 G .041
+(xample, this assignment causes the current user)311.964 343.2 R(,)-.4 E .99
+(the current host, the time, the last component of the current w)72 355.2 R
+.989(orking directory)-.1 F 3.489(,t)-.65 G .989(he le)402.954 355.2 R -.15(ve)
+-.25 G 3.489(lo).15 G 3.489(fs)443.412 355.2 S .989(hell nesting,)454.121 355.2
+R(and the history number of the current command to be embedded into the primar\
+y prompt:)72 367.2 Q F3 6($P)97 385.2 S
+(S1='\\u@\\h [\\t] \\W\($SHLVL:\\!\)\\$ ')115 385.2 Q
+(chet@odin [21:03:44] documentation\(2:636\)$ cd ..)97 397.2 Q
+(chet@odin [21:03:54] src\(2:637\)$)97 409.2 Q F0 .619
+(The string being assigned is surrounded by single quotes so that if it is e)72
+430.8 R(xported,)-.15 E F1(SHL)3.119 E(VL)-.92 E F0 .619(will be updated)3.119
+F(by a child shell:)72 442.8 Q F3
+(chet@odin [21:13:35] src\(2:638\)$ export PS1)97 460.8 Q
+(chet@odin [21:17:40] src\(2:639\)$ bash)97 472.8 Q
+(chet@odin [21:17:46] src\(3:696\)$)97 484.8 Q F0(The)72 506.4 Q F1(\\$)2.5 E
+F0(escape is displayed as `)2.5 E(`)-.74 E F1($)A F0 1.48 -.74('' w)D
+(hen running as a normal user).74 E 2.5(,b)-.4 G(ut as `)342.08 506.4 Q(`)-.74
+E F1(#)A F0 1.48 -.74('' w)D(hen running as root.).74 E F1 2.5(4.3.8. POSIX)72
+530.4 R(Mode)2.5 E F0 .46(Although bash is intended to be POSIX.2 compliant, t\
+here are areas in which the def)97 546 R .46(ault beha)-.1 F .46(vior is)-.2 F
+1.168(not compatible with the standard.)72 558 R -.15(Fo)6.169 G 3.669(ru).15 G
+1.169(sers who wish to operate in a strict POSIX.2 en)238.85 558 R 1.169
+(vironment, bash)-.4 F .61(implements a)72 570 R F2 .61(POSIX mode)3.11 F F0
+5.61(.W)C .61(hen this mode is acti)199.42 570 R -.15(ve)-.25 G 3.109(,b).15 G
+.609(ash modi\214es its def)303.727 570 R .609(ault operation where it dif)-.1
+F(fers)-.25 E .066(from POSIX.2 to match the standard.)72 582 R .067
+(POSIX mode is entered when bash is started with the)5.066 F F1 .067(-o posix)
+2.567 F F0(option)2.567 E .382(or when)72 594 R F1 .382(set -o posix)2.882 F F0
+.381(is e)2.881 F -.15(xe)-.15 G 2.881(cuted. F).15 F .381
+(or compatibility with other GNU softw)-.15 F .381
+(are that attempts to be POSIX.2)-.1 F 5.752
+(compliant, bash also enters POSIX mode if either of the v)72 606 R(ariables)
+-.25 E F1(POSIX_PED)8.253 E(ANTIC)-.35 E F0(or)8.253 E F1(POSIXL)72 618 Q
+(Y_CORRECT)-.92 E F0 1.179(is set when bash is started or assigned a v)3.679 F
+1.178(alue during e)-.25 F -.15(xe)-.15 G 3.678(cution. When).15 F 1.178
+(bash is)3.678 F .218(started in POSIX mode, for e)72 630 R .218(xample, the)
+-.15 F F1(kill)2.718 E F0 -.2(bu)2.718 G(iltin').2 E(s)-.55 E F1<ad6c>2.718 E
+F0 .218(option beha)2.718 F -.15(ve)-.2 G 2.718(sd).15 G(if)370.166 630 Q .219
+(ferently: it lists the names of all)-.25 F 1.084(signals on a single line sep\
+arated by spaces, rather than listing the signal names and their corresponding)
+72 642 R(numbers.)72 654 Q .865(Some of the def)97 669.6 R .865(ault bash beha)
+-.1 F .865(vior dif)-.2 F .865
+(fers from other shells as a result of the POSIX standard.)-.25 F -.15(Fo)5.866
+G(r).15 E 1.16(instance, bash includes the)72 681.6 R F1(!)3.66 E F0(reserv)
+6.16 E 1.16(ed w)-.15 F 1.16(ord to ne)-.1 F -.05(ga)-.15 G 1.16
+(te the return status of a pipeline because it has been).05 F
+(de\214ned by POSIX.2.)72 693.6 Q
+(Neither sh nor ksh has implemented that feature.)5 E EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(0-)288 48 S/F1 10/Times-Bold@0
+SF 2.5(4.4. F)72 84 R(eatur)-.25 E(es Unique to ksh)-.18 E F0 .177
+(Ksh includes a number of features not in the currently-released v)97 99.6 R
+.178(ersion of bash, v)-.15 F .178(ersion 1.14.)-.15 F(Unless)5.178 E .822
+(noted, none of these features is in the POSIX.2 standard.)72 111.6 R .821
+(Where appropriate the equi)5.821 F -.25(va)-.25 G .821(lent bash features).25
+F(are noted.)72 123.6 Q F1 2.5(4.4.1. The)72 147.6 R(ksh Language)2.5 E F0
+2.955(An)97 163.2 S .955 -.25(ew c)112.175 163.2 T .455(ompound command folds)
+.25 F F1(test)2.955 E F0 .456(into the ksh language, delimited by the reserv)
+2.955 F .456(ed w)-.15 F(ords)-.1 E F1([[)2.956 E F0(and)2.956 E F1(]])72 175.2
+Q F0 5.726(.T)C .726(he syntax is identical to)92.996 175.2 R F1(test)3.225 E
+F0 .725(with a fe)3.225 F 3.225(wc)-.25 G .725
+(hanges: for instance, instead of)262.855 175.2 R F1<ad61>3.225 E F0(and)3.225
+E F1<ad6f>3.225 E F0(,)A F1(&&)3.225 E F0(and)3.225 E/F2 10/Symbol SF<efef>
+3.225 E F0(are)3.225 E 3.32(used. The)72 187.2 R -.1(wo)3.32 G .82(rds between)
+.1 F F1([[)3.32 E F0(and)3.32 E F1(]])3.32 E F0 .82(are not processed for w)
+3.32 F .82(ord splitting or \214lename generation.)-.1 F .82(The ne)5.82 F(w)
+-.25 E .926
+(command does pattern matching as well as string comparison, a la the)72 199.2
+R F1(case)3.425 E F0 3.425(command. This)3.425 F(ne)3.425 E 3.425(wc)-.25 G
+(ontrol)480.11 199.2 Q .165(structure does ha)72 211.2 R .465 -.15(ve t)-.2 H
+.165(he adv).15 F .166(antage of reducing common ar)-.25 F .166
+(gument problems encountered using test \(e.g.)-.18 F F1(test)2.666 E
+("$string")72 223.2 Q F0 2.928(,w)C(here)125.748 223.2 Q F1($string)2.928 E F0
+-.15(ex)2.928 G .428(pands to).15 F F1<ad66>2.928 E F0 .428(\), b)B .428
+(ut at the cost of bloating the language.)-.2 F .427(The POSIX.2 test algo-)
+5.427 F 2.752(rithm that bash uses, along with some programmer care, alle)72
+235.2 R 2.752(viates those problems in a backw)-.25 F(ards-)-.1 E .854
+(compatible w)72 247.2 R .853(ay with no additions to the language.)-.1 F .853
+(The one capability of)5.853 F F1 .853([[ ]])3.353 F F0 .853(not a)3.353 F -.25
+(va)-.2 G .853(ilable in bash is its).25 F(ability to test whether an indi)72
+259.2 Q(vidual)-.25 E F1(set \255o)2.5 E F0(option is turned on or of)2.5 E(f.)
+-.25 E .339(Other parts of the ksh language are not common to bash.)97 274.8 R
+(The)5.34 E F1(\(\(...\)\))2.84 E F0(operator)5.34 E 2.84(,e)-.4 G(qui)419.33
+274.8 Q -.25(va)-.25 G .34(lent to).25 F F1 .34(let "...")2.84 F F0(,)A .197
+(is unique to ksh, as are the concept of co-processes and the)72 286.8 R F1
+(time)2.697 E F0 -.1(ke)2.696 G(yw)-.05 E .196
+(ord to time commands and pipelines.)-.1 F F1 2.5(4.4.2. Functions)72 310.8 R
+(and Aliases)2.5 E F0 1.022(The K)97 326.4 R 1.022(orn shell has)-.35 F/F3 10
+/Times-Italic@0 SF(autoloaded)3.522 E F0 3.522(functions. A)3.522 F 1.022
+(function mark)3.522 F 1.022(ed as)-.1 F F3(autoload)3.522 E F0 1.022
+(is not de\214ned until it is)5.188 F 1.042(\214rst e)72 338.4 R -.15(xe)-.15 G
+3.542(cuted. When).15 F 1.042(such a function is e)3.542 F -.15(xe)-.15 G 1.042
+(cuted, a search is made through the directories in).15 F F1(FP)3.541 E -.95
+(AT)-.74 G(H).95 E F0(\(a)3.541 E .27
+(colon-separated list of directories similar to)72 350.4 R F1 -.74(PA)2.77 G
+(TH)-.21 E F0 2.77(\)f)C .27(or a \214le with the same name as the function.)
+285.78 350.4 R .27(That \214le)5.27 F .548(is then read in as with the)72 362.4
+R F1(.)3.881 E F0 .547(command; presumably the function is de\214ned therein.)
+3.047 F .547(There is a pair of shell)5.547 F .886
+(functions included in the bash distrib)72 374.4 R .886(ution \()-.2 F F3 -.2
+(ex)C(amples/functions/autoload).2 E F0 5.886(\)t)C .886(hat pro)378.35 374.4 R
+.886(vide much of this func-)-.15 F
+(tionality without changing the shell itself.)72 386.4 Q .116
+(Ksh functions are scoped in such a w)97 402 R .116(ay that the en)-.1 F .116
+(vironment in which the)-.4 F 2.616(ya)-.15 G .116(re e)405.144 402 R -.15(xe)
+-.15 G .115(cuted is closer to a).15 F .827(shell script en)72 414 R 3.327
+(vironment. Bash)-.4 F .827(uses the POSIX.2 scoping rules, which mak)3.327 F
+3.327(et)-.1 G .827(he function e)392.517 414 R -.15(xe)-.15 G .828(cution en)
+.15 F(vi-)-.4 E 1.2(ronment an e)72 426 R 1.2(xact cop)-.15 F 3.7(yo)-.1 G 3.7
+(ft)174.86 426 S 1.199(he shell en)184.67 426 R 1.199
+(vironment with the replacement of the shell')-.4 F 3.699(sp)-.55 G 1.199
+(ositional paramters)426.421 426 R(with the function ar)72 438 Q 2.5
+(guments. K)-.18 F
+(orn shell functions do not share options or traps with the in)-.35 E -.2(vo)
+-.4 G(king shell.).2 E .451(Ksh has)97 453.6 R F3(tr)2.951 E(ac)-.15 E -.1(ke)
+-.2 G(d).1 E F0 .452(aliases, which alias a command name to its full pathname.)
+2.952 F .452(Bash has true command)5.452 F(hashing.)72 465.6 Q F1 2.5
+(4.4.3. Arrays)72 489.6 R F0 .246
+(Arrays are an aspect of ksh that has no real bash equi)97 505.2 R -.25(va)-.25
+G 2.746(lent. The).25 F 2.746(ya)-.15 G .246(re easy to create and manipulate:)
+371.42 505.2 R 1.637
+(an array is created automatically by using subscript assignment \()72 517.2 R
+F1(name)A F0([)A F3(inde)A(x)-.2 E F0(]=)A F1 -.1(va)C(lue).1 E F0 1.637
+(\), and an)B 4.137(yv)-.15 G(ariable)476.79 517.2 Q 1.967
+(may be referred to as an array)72 529.2 R 6.967(.K)-.65 G 1.967(sh arrays, ho)
+219.229 529.2 R(we)-.25 E -.15(ve)-.25 G 2.767 -.4(r, h).15 H -2.25 -.2(av e).4
+H(se)4.667 E -.15(ve)-.25 G 1.967(ral anno).15 F 1.967(ying limitations: the)
+-.1 F 4.466(ym)-.15 G 1.966(ay be)480.654 529.2 R(inde)72 541.2 Q -.15(xe)-.15
+G 3.498(do).15 G .998(nly up to 512 or 1024 elements, depending on ho)111.858
+541.2 R 3.498(wt)-.25 G .999(he shell is compiled, and there is only the)
+330.188 541.2 R(clumsy)72 553.2 Q F1 .223(set -A)2.723 F F0 .223
+(to assign a list of v)2.723 F .223(alues sequentially)-.25 F 5.223(.D)-.65 G
+.223(espite these limits, arrays are useful, if underutilized)293.31 553.2 R
+(by shell programmers.)72 565.2 Q F1 2.5(4.4.4. Builtin)72 589.2 R(Commands)2.5
+E F0 .112(Some of the b)97 604.8 R .112(uiltin commands ha)-.2 F .412 -.15
+(ve b)-.2 H .112(een e).15 F .112(xtended or are ne)-.15 F 2.612(wi)-.25 G
+2.613(nk)351.402 604.8 S 2.613(sh. The)364.015 604.8 R F1(print)2.613 E F0 -.2
+(bu)2.613 G .113(iltin w).2 F .113(as included)-.1 F .242(to w)72 616.8 R .242
+(ork around the incompatibilities and limitations of)-.1 F F1(echo)2.741 E F0
+5.241(.T)C(he)328.234 616.8 Q F1(whence)2.741 E F0 .241(command tells what w)
+2.741 F .241(ould hap-)-.1 F .418(pen if each ar)72 628.8 R .418
+(gument were typed as a command name.)-.18 F(The)5.418 E F1(cd)2.919 E F0 -.2
+(bu)2.919 G .419(iltin has been e).2 F .419(xtended to tak)-.15 F 2.919(eu)-.1
+G 2.919(pt)470.482 628.8 S 2.919(ot)481.181 628.8 S -.1(wo)491.88 628.8 S(ar)72
+640.8 Q 1.425(guments: if tw)-.18 F 3.925(oa)-.1 G -.18(rg)153.485 640.8 S
+1.424(uments are supplied, the second is substituted for the \214rst in the cu\
+rrent directory).18 F 2.294
+(name and the shell changes to the resultant directory name.)72 652.8 R 2.295
+(The ksh)7.294 F F1(trap)4.795 E F0 -.2(bu)4.795 G 2.295(iltin accepts).2 F F1
+(ERR)4.795 E F0(and)4.795 E F1(DEB)72 664.8 Q(UG)-.1 E F0 .15(as trap names.)
+2.65 F(The)5.15 E F1(ERR)2.65 E F0 .15(trap is e)2.65 F -.15(xe)-.15 G .15
+(cuted when a command f).15 F(ails;)-.1 E F1(DEB)2.65 E(UG)-.1 E F0 .15(is e)
+2.65 F -.15(xe)-.15 G .15(cuted after e).15 F -.15(ve)-.25 G(ry).15 E
+(simple command.)72 676.8 Q .05(The bash distrib)97 692.4 R .05
+(ution includes shell functions that implement)-.2 F F1(print)2.55 E F0(and)
+2.55 E F1(whence)2.55 E F0 .05(and the e)2.55 F .05(xtensions to)-.15 F F1(cd)
+72 704.4 Q F0(.)A EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(1-)288 48 S/F1 10/Times-Bold@0
+SF 2.5(4.4.5. Expansion)72 84 R F0 .282(The ksh \214lename generation \()97
+99.6 R/F2 10/Times-Italic@0 SF(globbing)A F0 2.782(\)f)C .282(acilities ha)
+262.45 99.6 R .581 -.15(ve b)-.2 H .281(een e).15 F .281(xtended be)-.15 F .281
+(yond their bash and sh coun-)-.15 F 3.68(terparts. In)72 111.6 R 1.181
+(this area, ksh can be thought of as)3.681 F F2 -.4(eg)3.681 G -.37(re).4 G(p)
+.37 E F0 1.181(to the bash)5.347 F F2(gr)3.681 E(ep)-.37 E F0 6.181(.K)1.666 G
+1.181(sh globbing of)382.406 111.6 R 1.181(fers things lik)-.25 F(e)-.1 E 1.018
+(alternation, the ability to match zero or more instances of a pattern, and th\
+e ability to match e)72 123.6 R 1.018(xactly one)-.15 F(occurrence of an)72
+135.6 Q 2.5(yo)-.15 G 2.5(fal)150.98 135.6 S(ist of patterns.)166.53 135.6 Q F1
+2.5(4.4.6. Startup)72 159.6 R(Files)2.5 E F0 .977(Ksh and bash e)97 175.2 R
+-.15(xe)-.15 G .977(cute startup \214les dif).15 F(ferently)-.25 E 5.977(.K)
+-.65 G .977(sh e)297.879 175.2 R(xpands)-.15 E F1(ENV)3.478 E F0 .978
+(and sources the \214le it names for)3.478 F -2.15 -.25(ev e)72 187.2 T 1.85
+(ry shell.).25 F 1.85(Bash sources)6.85 F F1($ENV)4.35 E F0 1.85
+(only in non-interacti)4.35 F 2.15 -.15(ve s)-.25 H 1.85(hells; interacti).15 F
+2.15 -.15(ve s)-.25 H 1.85(hells source \214x).15 F 1.85(ed \214les, as)-.15 F
+-.15(ex)72 199.2 S 1.285(plained in the pre).15 F 1.285(vious section.)-.25 F
+1.285(The POSIX standard has speci\214ed the ksh beha)6.285 F(vior)-.2 E 3.785
+(,s)-.4 G 3.785(ob)441.545 199.2 S 1.285(ash acts the)455.33 199.2 R
+(same as ksh if started with the)72 211.2 Q F1(\255posix)2.5 E F0(or)2.5 E F1
+(\255o posix)2.5 E F0(options.)2.5 E F1 2.5(4.4.7. History)72 235.2 R F0
+(Finally)97 250.8 Q 3.372(,t)-.65 G .872(he ksh history implementation dif)
+133.342 250.8 R .871(fers slightly from bash.)-.25 F .871
+(Each instance of bash k)5.871 F .871(eeps the)-.1 F .633
+(history list in memory and of)72 262.8 R .633(fers options to the)-.25 F F1
+(history)3.133 E F0 -.2(bu)3.133 G .634
+(iltin to write the list to or read it from a named).2 F 3.216(\214le. Ksh)72
+274.8 R -.1(ke)3.216 G .716
+(eps the history in a \214le, which it accesses each time a command is sa).1 F
+-.15(ve)-.2 G 3.215(dt).15 G 3.215(oo)426.445 274.8 S 3.215(rr)439.66 274.8 S
+(etrie)449.535 274.8 Q -.15(ve)-.25 G 3.215(df).15 G(rom)487.89 274.8 Q .338
+(the history)72 286.8 R 5.338(.K)-.65 G .338
+(sh history \214les may be shared among dif)129.246 286.8 R .338
+(ferent concurrent instances of ksh, which could be a)-.25 F
+(bene\214t to the user)72 298.8 Q(.)-.55 E F1 2.5(5. F)72 322.8 R(eatur)-.25 E
+(es in Bash-2.0)-.18 E F0 .657(The ne)97 338.4 R .657
+(xt release of bash, 2.0, will be a major o)-.15 F -.15(ve)-.15 G 3.157
+(rhaul. It).15 F .656(will include man)3.157 F 3.156(yn)-.15 G 1.156 -.25(ew f)
+419.532 338.4 T .656(eatures, for both).25 F .705(programming and interacti)72
+350.4 R 1.005 -.15(ve u)-.25 H 3.205(se. Redundant).15 F -.15(ex)3.205 G .705
+(isting functions will be remo).15 F -.15(ve)-.15 G 3.206(d. There).15 F .706
+(are se)3.206 F -.15(ve)-.25 G .706(ral cases).15 F 1.34(where bash treats a v)
+72 362.4 R 1.34(ariable specially to enable functionality a)-.25 F -.25(va)-.2
+G 1.34(ilable another w).25 F 1.34(ay \()-.1 F F1($nolinks)A F0(vs.)3.84 E F1
+1.34(set -o)3.84 F(ph)72 374.4 Q(ysical)-.15 E F0 2.5(,f)C(or e)115.19 374.4 Q
+(xample\); the special treatment of the v)-.15 E(ariable name will be remo)-.25
+E -.15(ve)-.15 G(d.).15 E F1 2.5(5.1. Arrays)72 398.4 R F0 .546(Bash-2.0 will \
+include arrays which are a superset of those in ksh, with the size limitations\
+ remo)97 414 R -.15(ve)-.15 G(d.).15 E(The)72 426 Q F1(declar)3.086 E(e)-.18 E
+F0(,)A F1 -.18(re)3.086 G(adonly).18 E F0 3.086(,a)C(nd)174.768 426 Q F1
+(export)3.086 E F0 -.2(bu)3.086 G .586
+(iltins will accept options to specify arrays, and the).2 F F1 -.18(re)3.085 G
+(ad).18 E F0 -.2(bu)3.085 G .585(iltin will).2 F(ha)72 438 Q .81 -.15(ve a)-.2
+H 3.01(no).15 G .51(ption to read a list of w)110.99 438 R .51
+(ords and assign them directly to an array)-.1 F 5.51(.T)-.65 G .51
+(here will also be a ne)386.23 438 R 3.01(wa)-.25 G(rray)487.9 438 Q F2 .262
+(compound assignment)72 450 R F0 .262(syntax a)2.762 F -.25(va)-.2 G .262
+(ilable for assignment statements and the).25 F F1(declar)2.761 E(e)-.18 E F0
+-.2(bu)2.761 G 2.761(iltin. This).2 F(ne)2.761 E 2.761(ws)-.25 G(yntax)481.78
+450 Q .441(has the form)72 462 R F2(name)2.941 E F0(=\()A F2(value1)A F0(...)
+2.941 E F2(valueN)2.941 E F0 .441(\), where each)B F2(value)2.942 E F0 .442
+(has the form [)4.608 F F2(subscript)A F0(]=)A F2(string)A F0 5.442(.O)C .442
+(nly the)449.776 462 R F2(string)2.942 E F0 1.395(is required.)72 474 R 1.395
+(If the optional brack)6.395 F 1.395(ets and)-.1 F F2(subscript)3.894 E F0
+1.394(are included, that inde)3.894 F 3.894(xi)-.15 G 3.894(sa)388.714 474 S
+1.394(ssigned to, otherwise the)400.938 474 R(inde)72 486 Q 3.656(xo)-.15 G
+3.656(ft)102.726 486 S 1.156(he element assigned is the last inde)112.492 486 R
+3.657(xa)-.15 G 1.157(ssigned to by the statement plus one.)272.917 486 R(Inde)
+6.157 E 1.157(xing starts at)-.15 F 2.73(zero. The)72 498 R .23
+(same syntax is accepted by)2.73 F F1(declar)2.73 E(e)-.18 E F0 5.229(.I)C(ndi)
+269.159 498 Q .229(vidual array elements may be assigned to using the ksh)-.25
+F F2(name)72 510 Q F0([)A F2(subscript)A F0(]=)A F2(value)A F0(.)A F1 2.5
+(5.2. Dynamic)72 534 R(Loading)2.5 E F0 .348(On systems that support the)97
+549.6 R F2(dlopen)2.848 E F0 .349(\(3\) library function, bash-2.0 will allo)B
+2.849(wn)-.25 G .849 -.25(ew b)407.504 549.6 T .349(uiltins to be loaded).05 F
+.049(into a running shell from a shared object \214le.)72 561.6 R .049(The ne)
+5.049 F 2.549(wb)-.25 G .049(uiltins will ha)298.999 561.6 R .348 -.15(ve a)-.2
+H .048(ccess to the rest of the shell f).15 F(acil-)-.1 E .649(ities, b)72
+573.6 R .649(ut programmers will be subject to a fe)-.2 F 3.149(ws)-.25 G .649
+(tructural rules.)269.591 573.6 R .65(This will be pro)5.65 F .65
+(vided via a ne)-.15 F 3.15(wo)-.25 G .65(ption to)472.51 573.6 R F1(enable)72
+585.6 Q F0(.)A F1 2.5(5.3. Builtins)72 609.6 R F0 .889(Some of the e)97 625.2 R
+.889(xisting b)-.15 F .889(uiltins will change in bash-2.0.)-.2 F .888(As pre)
+5.888 F .888(viously noted,)-.25 F F1(declar)3.388 E(e)-.18 E F0(,)A F1(export)
+3.388 E F0(,)A F1 -.18(re)3.388 G(ad-).18 E(only)72 637.2 Q F0 2.873(,a)C(nd)
+100.153 637.2 Q F1 -.18(re)2.873 G(ad).18 E F0 .373(will accept ne)2.873 F
+2.873(wo)-.25 G .374(ptions to specify arrays.)206.288 637.2 R(The)5.374 E F1
+(jobs)2.874 E F0 -.2(bu)2.874 G .374(iltin will be able to list only stopped).2
+F .323(or running jobs.)72 649.2 R(The)5.322 E F1(enable)2.822 E F0 .322
+(command will tak)2.822 F 2.822(ean)-.1 G -.25(ew)282.84 649.2 S F1<ad73>3.072
+E F0 .322(option to restrict its actions to the POSIX.2)2.822 F F2(spe-)2.822 E
+(cial)72 661.2 Q F0 -.2(bu)3.14 G(iltins.).2 E F1(Kill)5.64 E F0 .64
+(will be able to list signal numbers corresponding to indi)3.14 F .64
+(vidual signal names.)-.25 F .64(The read-)5.64 F .703(line library interf)72
+673.2 R(ace,)-.1 E F1(bind)3.203 E F0 3.203(,w)C .703(ill ha)193.032 673.2 R
+1.003 -.15(ve a)-.2 H 3.203(no).15 G .703(ption to remo)243.951 673.2 R 1.003
+-.15(ve t)-.15 H .703(he binding for an).15 F 3.203(yk)-.15 G 1.002 -.15(ey s)
+398.032 673.2 T .702(equence \(which is not).15 F
+(the same as binding it to self-insert\).)72 685.2 Q .494(There will be tw)97
+700.8 R 2.994(on)-.1 G .994 -.25(ew b)177.196 700.8 T .495
+(uiltin commands in bash-2.0.).05 F(The)5.495 E F1(diso)2.995 E(wn)-.1 E F0
+.495(command will remo)2.995 F .795 -.15(ve j)-.15 H .495(obs from).15 F(bash')
+72 712.8 Q 3.445(si)-.55 G .945(nternal jobs table when job control is acti)
+103.225 712.8 R -.15(ve)-.25 G 5.945(.A).15 G(diso)303.25 712.8 Q .944
+(wned job will not be listed by the jobs com-)-.25 F .666(mand, nor will its e)
+72 724.8 R .666(xit status be reported.)-.15 F(Diso)5.667 E .667
+(wned jobs will not be sent a)-.25 F F1(SIGHUP)3.167 E F0 .667
+(when an interacti)3.167 F -.15(ve)-.25 G EP
+%%Page: 12 12
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(2-)288 48 S .688(shell e)72 84 R
+3.187(xits. Most)-.15 F .687(of the shell')3.187 F 3.187(so)-.55 G .687
+(ptional or)205.423 84 R/F1 10/Times-Italic@0 SF(to)3.187 E -.1(gg)-.1 G(led).1
+E F0 .687(functionality will be folded into the ne)3.187 F(w)-.25 E/F2 10
+/Times-Bold@0 SF(shopt)3.187 E F0 -.2(bu)3.187 G(iltin.).2 E(Man)72 96 Q 3.714
+(yo)-.15 G 3.714(ft)103.894 96 S 1.214(he v)113.718 96 R 1.214
+(ariables which alter the shell')-.25 F 3.714(sb)-.55 G(eha)266.282 96 Q 1.214
+(vior when set \(re)-.2 F -.05(ga)-.15 G 1.214(rdless of their v).05 F 1.215
+(alue\) will be made)-.25 F 6(options settable with)72 108 R F2(shopt)8.5 E F0
+11(.E)C 6(xamples of such v)218.23 108 R 6(ariables include)-.25 F F2(allo)8.5
+E(w_null_glob_expansion)-.1 E F0(,)A F2(glob_dot_\214lenames)72 120 Q F0 2.5
+(,a)C(nd)163.67 120 Q F2(MAIL_W)2.5 E(ARNING)-1.2 E F0(.)A F2 2.5(5.4. V)72 144
+R(ariables and V)-.92 E(ariable Expansion)-.92 E F0 .047
+(Bash-2.0 will implement se)97 159.6 R -.15(ve)-.25 G .048(ral ne).15 F 2.548
+(wv)-.25 G .048(ariable e)252.988 159.6 R 2.548(xpansions. These)-.15 F .048
+(will answer se)2.548 F -.15(ve)-.25 G .048(ral of the most per).15 F(-)-.2 E
+.213(sistant requests for ne)72 171.6 R 2.713(wf)-.25 G 2.713(eatures. It)
+172.582 171.6 R .213(will be possible to `)2.713 F .212(`indirectly reference')
+-.74 F 2.712('av)-.74 G .212(ariable with an e)398.534 171.6 R(xpansion,)-.15 E
+(lik)72 183.6 Q 3.01(eu)-.1 G(sing)94.91 183.6 Q/F3 10/Courier@0 SF .51
+(eval \\$${name})3.01 F F0 .51(to reference a v)3.01 F .51(ariable named by)
+-.25 F F3(${name})3.01 E F0 5.51(.E)C .51(xpansions will be a)394.32 183.6 R
+-.25(va)-.2 G(ilable).25 E .462(to retrie)72 195.6 R .762 -.15(ve s)-.25 H .462
+(ubstrings of v).15 F .461(ariables in an)-.25 F F1(awk)2.961 E F0(-lik)A 2.961
+(em)-.1 G .461(anner: starting at a speci\214c inde)277.692 195.6 R .461
+(x, retrie)-.15 F .461(ving some num-)-.25 F .941
+(ber of characters or the rest of the string.)72 207.6 R .941
+(It will be possible to retrie)5.941 F 1.241 -.15(ve s)-.25 H .941
+(equences of array elements lik).15 F(e)-.1 E .354(this, too.)72 219.6 R .354
+(It w)5.354 F .354(ould be nice to ha)-.1 F .654 -.15(ve a w)-.2 H .354
+(ay to replace portions of a v).05 F .353
+(ariable matching a pattern the same w)-.25 F(ay)-.1 E(leading or trailing sub\
+strings are presently stripped; that capability may be a)72 231.6 Q -.25(va)-.2
+G(ilable.).25 E .453(Another ne)97 247.2 R 2.953(we)-.25 G .453
+(xpansion will pro)156.376 247.2 R .453(vide a w)-.15 F .454
+(ay to create strings containing arbitrary characters, which is)-.1 F(incon)72
+259.2 Q -.15(ve)-.4 G 1.636(nient in the current v).15 F 4.136(ersion. W)-.15 F
+1.635(ords of the form $')-.8 F F1(string)A F0 4.135('w)C 1.635(ill e)355.145
+259.2 R 1.635(xpand to)-.15 F F1(string)4.135 E F0 1.635(with backslash-)4.135
+F 1.231(escaped characters in)72 271.2 R F1(string)3.731 E F0 1.231
+(replaced as speci\214ed by the ANSI C standard.)3.731 F 1.232
+(As with other single-quoted)6.232 F
+(shell strings, the only character that may not appear in)72 283.2 Q F1(string)
+2.5 E F0(is a single quote.)2.5 E 1.436(The shell v)97 298.8 R 1.436
+(ariables will change also.)-.25 F 3.936(An)6.436 G 1.936 -.25(ew va)272.052
+298.8 T(riable).25 E F2(HISTIGNORE)3.936 E F0 1.435(will supersede)3.936 F F2
+(HISTCON-)3.935 E(TR)72 310.8 Q(OL)-.3 E F0(.)A F2(HISTIGNORE)5.327 E F0 .327
+(is the history analogy of)2.827 F F2(FIGNORE)2.828 E F0 2.828(:ac)C .328
+(olon-separated list of patterns specifying)339.938 310.8 R 1.082
+(commands to omit from the history list.)72 322.8 R 1.081
+(The special pattern '&' will match the pre)6.081 F 1.081
+(vious history line, to)-.25 F(pro)72 334.8 Q 1.568(vide the)-.15 F F2
+(HISTCONTR)4.068 E(OL)-.3 E F1(ignor)4.068 E(edups)-.37 E F0(beha)5.734 E(vior)
+-.2 E 6.568(.M)-.55 G(an)303.546 334.8 Q 4.069(yv)-.15 G 1.569
+(ariables which modify the shell')326.655 334.8 R 4.069(sb)-.55 G(eha)474.21
+334.8 Q(vior)-.2 E .395(will lose their special meaning.)72 346.8 R -1.11(Va)
+5.395 G .395(riables such as)1.11 F F2(notify)2.895 E F0(and)2.895 E F2(noclob)
+2.895 E(ber)-.1 E F0 .395(which pro)2.895 F .395(vide functionality a)-.15 F
+-.25(va)-.2 G(il-).25 E .931
+(able via other mechanisms will no longer be treated specially)72 358.8 R 5.931
+(.O)-.65 G .931(ther v)340.06 358.8 R .932(ariables will be folded into)-.25 F
+F2(shopt)3.432 E F0(.)A(The)72 370.8 Q F2(history_contr)5.519 E(ol)-.18 E F0
+(and)5.519 E F2(hostname_completion_\214le)5.519 E F0 -.25(va)5.519 G 3.019
+(riables, superseded by).25 F F2(HISTCONTR)5.518 E(OL)-.3 E F0(and)5.518 E F2
+(HOSTFILE)72 382.8 Q F0(respecti)2.5 E -.15(ve)-.25 G(ly).15 E 2.5(,w)-.65 G
+(ill be remo)185.12 382.8 Q -.15(ve)-.15 G(d.).15 E F2 2.5(5.5. Readline)72
+406.8 R F0(Naturally)97 422.4 Q 2.94(,t)-.65 G .44(here will be impro)142.34
+422.4 R -.15(ve)-.15 G .441(ments to readline as well.).15 F .441
+(All of the POSIX.2)5.441 F F1(vi)2.941 E F0 .441(-mode editing com-)B .33
+(mands will be implemented; missing commands lik)72 434.4 R 2.829(e`)-.1 G .329
+(m' to sa)290.599 434.4 R .629 -.15(ve t)-.2 H .329
+(he current cursor position \().15 F F1(mark)A F0 2.829(\)a)C .329(nd the)
+478.951 434.4 R .36(`@' command for macro e)72 446.4 R .36(xpansion will be a)
+-.15 F -.25(va)-.2 G 2.861(ilable. The).25 F .361
+(ability to set the mark and e)2.861 F .361(xchange the current)-.15 F .764
+(cursor position \()72 458.4 R F1(point)A F0 3.264(\)a)C .764
+(nd mark will be added to the readline emacs mode as well.)170.672 458.4 R .763
+(Since there are com-)5.764 F .196
+(mands to set the mark, commands to manipulate the re)72 470.4 R .197
+(gion \(the characters between the point and the mark\))-.15 F .111(will be a)
+72 482.4 R -.25(va)-.2 G 2.611(ilable. Commands).25 F(ha)2.611 E .411 -.15
+(ve b)-.2 H .11
+(een added to the readline emacs mode for more complete ksh compati-).15 F
+(bility)72 494.4 Q 2.5(,s)-.65 G(uch as the C-])101.36 494.4 Q F1(c)A F0
+(character search command.)2.5 E F2 2.5(5.6. Con\214guration)72 518.4 R F0 .318
+(Bash w)97 534 R .318
+(as the \214rst GNU program to completely autocon\214gure.)-.1 F .319
+(Its autocon\214guration mechanism pre-)5.319 F(dates)72 546 Q F1(autoconf)4.07
+E F0 4.07(,t)C 1.569
+(he current GNU con\214guration program, and needs updating.)140.97 546 R 1.569
+(Bash-2.0 may include an)6.569 F .603
+(autoconf-based con\214guration script, if necessary ne)72 558 R 3.103(wf)-.25
+G .603(unctionality can be added to autoconf, or its limita-)294.476 558 R
+(tions bypassed.)72 570 Q F2 2.5(5.7. Miscellaneous)72 594 R F0 1.632
+(The POSIX mode will be impro)97 609.6 R -.15(ve)-.15 G 4.131(di).15 G 4.131
+(nb)254.26 609.6 S 1.631(ash-2.0; it will pro)268.391 609.6 R 1.631
+(vide a more complete superset of the)-.15 F(POSIX standard.)72 621.6 Q -.15
+(Fo)5 G 2.5(rt).15 G(he \214rst time, bash will recognize the e)163.79 621.6 Q
+(xistance of the POSIX.2)-.15 E F1(special)2.5 E F0 -.2(bu)2.5 G(iltins.).2 E
+2.627(An)97 637.2 S .627 -.25(ew t)111.847 637.2 T .127(rap v).25 F(alue,)-.25
+E F2(DEB)2.627 E(UG)-.1 E F0 2.627(,w)C .128(ill be present, as in ksh.)218.405
+637.2 R .128(Commands speci\214ed with a)5.128 F F2(DEB)2.628 E(UG)-.1 E F0
+.128(trap will)2.628 F 1.908(be e)72 649.2 R -.15(xe)-.15 G 1.908
+(cuted after e).15 F -.15(ve)-.25 G 1.908(ry simple command.).15 F 1.908
+(Since this mak)6.908 F 1.908(es shell script deb)-.1 F 1.908
+(uggers possible, I hope to)-.2 F(include a bash deb)72 661.2 Q
+(ugger in the bash-2.0 release.)-.2 E F2 2.5(6. A)72 685.2 R -.1(va)-1 G
+(ilability).1 E F0 5.997(The current v)97 700.8 R 5.997(ersion of bash is a)
+-.15 F -.25(va)-.2 G 5.998(ilable for anon).25 F 5.998
+(ymous FTP from prep.ai.mit.edu as)-.15 F F1(/pub/gnu/bash-1.14.2.tar)72 712.8
+Q(.gz)-1.11 E F0(.)1.666 E EP
+%%Page: 13 13
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 2.5(-1)277.17 48 S 2.5(3-)288 48 S/F1 10/Times-Bold@0
+SF 2.5(7. Conclusion)72 84 R F0 .755(This paper has presented an o)97 99.6 R
+-.15(ve)-.15 G(rvie).15 E 3.255(wo)-.25 G 3.255(fb)259.27 99.6 S .755
+(ash, compared its features with those of other shells, and)270.855 99.6 R
+(hinted at features in the ne)72 111.6 Q(xt release, bash-2.0.)-.15 E .483
+(Bash is a solid replacement for sh.)97 127.2 R .483(It is suf)5.483 F .483
+(\214ciently portable to run on nearly e)-.25 F -.15(ve)-.25 G .484(ry v).15 F
+.484(ersion of)-.15 F/F2 9/Times-Roman@0 SF(UNIX)2.984 E F0 .514
+(from 4.3 BSD to SVR4.2, and se)72 139.2 R -.15(ve)-.25 G(ral).15 E F2(UNIX)
+3.013 E F0 -.1(wo)3.013 G(rkalik).1 E .513(es, and rob)-.1 F .513
+(ust enough to replace sh on most of those)-.2 F .771(systems, It is v)72 151.2
+R .771(ery close to POSIX.2-conformant in POSIX mode, and is getting f)-.15 F
+(aster)-.1 E 5.771(.I)-.55 G 3.272(ti)436.684 151.2 S 3.272(sn)445.516 151.2 S
+.772(ot, unfortu-)457.678 151.2 R(nately)72 163.2 Q 2.663(,g)-.65 G .163
+(etting smaller)105.953 163.2 R 2.663(,b)-.4 G .163(ut there are man)170.399
+163.2 R 2.663(yo)-.15 G .163(ptional features.)248.101 163.2 R .163(It is v)
+5.163 F .162(ery easy to b)-.15 F .162(uild a small subset to use as)-.2 F 2.5
+(ad)72 175.2 S(irect replacement for /bin/sh.)83.94 175.2 Q .909
+(Bash has thousands of users w)97 190.8 R .909(orldwide, all of whom ha)-.1 F
+1.209 -.15(ve h)-.2 H .91(elped to mak).15 F 3.41(ei)-.1 G 3.41(tb)409.34 190.8
+S(etter)420.53 190.8 Q 5.91(.A)-.55 G .91(nother testa-)453.38 190.8 R
+(ment to the bene\214ts of free softw)72 202.8 Q(are.)-.1 E F1 2.5(8. Refer)72
+226.8 R(ences)-.18 E F0 .432([1] S. R. Bourne, `)72 242.4 R .432(`UNIX T)-.74 F
+.432(ime-Sharing System:)-.35 F .431(The UNIX Shell')5.431 F(',)-.74 E/F3 10
+/Times-Italic@0 SF .431(Bell System T)2.931 F(ec)-.92 E .431(hnical J)-.15 F
+(ournal)-.25 E F0 2.931(,5)C(7\(6\),)484.84 242.4 Q
+(July-August, 1978, pp. 1971-1990.)72 254.4 Q .736([2] Morris Bolsk)72 270 R
+3.237(ya)-.15 G .737(nd Da)153.22 270 R .737(vid K)-.2 F(orn,)-.35 E F3 .737
+(The K)3.237 F .737(ornShell Command and Pr)-.4 F -.1(og)-.45 G -.15(ra).1 G
+.737(mming Langua).15 F -.1(ge)-.1 G F0 3.237(,P).1 G .737(rentice Hall,)
+453.833 270 R(1989.)72 282 Q .142([3] Bill Jo)72 297.6 R 1.442 -.65(y, A)-.1 H
+2.642(nI).65 G .141(ntroduction to the C Shell,)140.428 297.6 R F3 .141
+(UNIX User')2.641 F 2.641(sS)-.4 G .141(upplementary Documents)309.346 297.6 R
+F0 2.641(,U)C(ni)424.328 297.6 Q -.15(ve)-.25 G .141(rsity of Califor).15 F(-)
+-.2 E(nia at Berk)72 309.6 Q(ele)-.1 E 1.3 -.65(y, 1)-.15 H(986.).65 E .283
+([4] IEEE,)72 325.2 R F3 .283(IEEE Standar)2.783 F 2.783(df)-.37 G .283
+(or Information T)179.692 325.2 R(ec)-.92 E(hnolo)-.15 E .283(gy -- P)-.1 F
+.283(ortable Oper)-.8 F .283(ating System Interface \(POSIX\) P)-.15 F(art)-.8
+E(2: Shell and Utilities)72 337.2 Q F0 2.5(,1)C(992.)165.06 337.2 Q F1 2.5
+(9. A)72 361.2 R(uthor Inf)-.5 E(ormation)-.25 E F0 .937(Chet Rame)97 376.8 R
+3.437(yi)-.15 G 3.437(sas)153.724 376.8 S(oftw)172.818 376.8 Q .936
+(are engineer w)-.1 F .936(orking at Case W)-.1 F .936(estern Reserv)-.8 F
+3.436(eU)-.15 G(ni)393.43 376.8 Q -.15(ve)-.25 G(rsity).15 E 5.936(.H)-.65 G
+3.436(eh)443.036 376.8 S .936(as a B.S. in)455.912 376.8 R .072
+(Computer Engineering and an M.S. in Computer Science, both from CWR)72 388.8 R
+2.573(U. He)-.4 F .073(has been w)2.573 F .073(orking on bash)-.1 F
+(for six years, and the primary maintainer for one.)72 400.8 Q EP
+%%Trailer
+end
+%%EOF
index 9993262d0f0874cd491f4c85bde4153328f01cb3..64d030c619fa3b1cf4a96c34b15505b068087bc5 100644 (file)
@@ -2,9 +2,9 @@
 Copyright (C) 1988-2009 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Mon Dec 29 16:48:40 EST 2008
+@set LASTCHANGE Fri Feb 13 18:29:03 EST 2009
 
 @set EDITION 4.0
 @set VERSION 4.0
-@set UPDATED 29 December 2008
-@set UPDATED-MONTH December 2008
+@set UPDATED 13 February 2009
+@set UPDATED-MONTH February 2009
index 609dd31fdc21b008a34c68d1304cc09551acd0dd..4843f4ba69cfb118683bb4e182230bef87373e11 100644 (file)
@@ -513,7 +513,7 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
      int pipe_in, pipe_out;
      struct fd_bitmap *fds_to_close;
 {
-  int exec_result, invert, ignore_return, was_error_trap;
+  int exec_result, user_subshell, invert, ignore_return, was_error_trap;
   REDIRECT *my_undo_list, *exec_undo_list;
   volatile int last_pid;
   volatile int save_line_number;
@@ -557,6 +557,8 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
     return (execute_coproc (command, pipe_in, pipe_out, fds_to_close));
 #endif
 
+  user_subshell = command->type == cm_subshell || ((command->flags & CMD_WANT_SUBSHELL) != 0);
+
   if (command->type == cm_subshell ||
       (command->flags & (CMD_WANT_SUBSHELL|CMD_FORCE_SUBSHELL)) ||
       (shell_control_structure (command->type) &&
@@ -590,6 +592,10 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
 
          if (asynchronous == 0)
            {
+             was_error_trap = signal_is_trapped (ERROR_TRAP) && signal_is_ignored (ERROR_TRAP) == 0;
+             invert = (command->flags & CMD_INVERT_RETURN) != 0;
+             ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
+
              last_command_exit_value = wait_for (paren_pid);
 
              /* If we have to, invert the return value. */
@@ -600,6 +606,20 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
              else
                exec_result = last_command_exit_value;
 
+
+             if (user_subshell && was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
+               {
+                 last_command_exit_value = exec_result;
+                 run_error_trap ();
+               }
+
+             if (user_subshell && ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS)
+               {
+                 last_command_exit_value = exec_result;
+                 run_pending_traps ();
+                 jump_to_top_level (ERREXIT);
+               }
+
              return (last_command_exit_value = exec_result);
            }
          else
@@ -741,10 +761,8 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
          }
       }
 
-      /* 10/6/2008 -- added test for pipe_in and pipe_out because they indicate
-        the presence of a pipeline, and (until Posix changes things), a
-        pipeline failure should not cause the parent shell to exit on an
-        unsuccessful return status, even in the presence of errexit.. */
+      /* 2009/02/13 -- pipeline failure is processed elsewhere.  This handles
+        only the failure of a simple command. */
       if (was_error_trap && ignore_return == 0 && invert == 0 && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS)
        {
          last_command_exit_value = exec_result;
@@ -1056,8 +1074,11 @@ print_formatted_time (fp, format, rs, rsf, us, usf, ss, ssf, cpu)
       else if (s[1] == 'P')
        {
          s++;
+#if 0
+         /* clamp CPU usage at 100% */
          if (cpu > 10000)
            cpu = 10000;
+#endif
          sum = cpu / 100;
          sum_frac = (cpu % 100) * 10;
          len = mkfmt (ts, 2, 0, sum, sum_frac);
@@ -1438,6 +1459,7 @@ static struct cpelement *cpe_alloc __P((struct coproc *));
 static void cpe_dispose __P((struct cpelement *));
 static struct cpelement *cpl_add __P((struct coproc *));
 static struct cpelement *cpl_delete __P((pid_t));
+static void cpl_reap __P((void));
 static void cpl_flush __P((void));
 static struct cpelement *cpl_search __P((pid_t));
 static struct cpelement *cpl_searchbyname __P((char *));
@@ -1447,8 +1469,7 @@ Coproc sh_coproc = { 0, NO_PID, -1, -1, 0, 0 };
 
 cplist_t coproc_list = {0, 0, 0};
 
-/* Functions to manage the list of exited background pids whose status has
-   been saved. */
+/* Functions to manage the list of coprocs */
 
 static struct cpelement *
 cpe_alloc (cp)
@@ -1527,6 +1548,37 @@ cpl_delete (pid)
   return (p);
 }
 
+static void
+cpl_reap ()
+{
+  struct cpelement *prev, *p;
+
+  for (prev = p = coproc_list.head; p; prev = p, p = p->next)
+    if (p->coproc->c_flags & COPROC_DEAD)
+      {
+        prev->next = p->next;  /* remove from list */
+
+       /* Housekeeping in the border cases. */
+       if (p == coproc_list.head)
+         coproc_list.head = coproc_list.head->next;
+       else if (p == coproc_list.tail)
+         coproc_list.tail = prev;
+
+       coproc_list.ncoproc--;
+       if (coproc_list.ncoproc == 0)
+         coproc_list.head = coproc_list.tail = 0;
+       else if (coproc_list.ncoproc == 1)
+         coproc_list.tail = coproc_list.head;          /* just to make sure */
+
+#if defined (DEBUG)
+       itrace("cpl_reap: deleting %d", p->coproc->c_pid);
+#endif
+
+       coproc_dispose (p->coproc);
+       cpe_dispose (p);
+      }
+}
+
 /* Clear out the list of saved statuses */
 static void
 cpl_flush ()
@@ -1679,6 +1731,16 @@ coproc_closeall ()
   coproc_close (&sh_coproc);
 }
 
+void
+coproc_reap ()
+{
+  struct coproc *cp;
+
+  cp = &sh_coproc;
+  if (cp && (cp->c_flags & COPROC_DEAD))
+    coproc_dispose (cp);
+}
+
 void
 coproc_rclose (cp, fd)
      struct coproc *cp;
@@ -1751,9 +1813,9 @@ coproc_fdrestore (cp)
   cp->c_rfd = cp->c_rsave;
   cp->c_wfd = cp->c_wsave;
 }
-  
+
 void
-coproc_pidchk (pid)
+coproc_pidchk (pid, status)
      pid_t pid;
 {
   struct coproc *cp;
@@ -1764,7 +1826,14 @@ coproc_pidchk (pid)
     itrace("coproc_pidchk: pid %d has died", pid);
 #endif
   if (cp)
-    coproc_dispose (cp);
+    {
+      cp->c_status = status;
+      cp->c_flags |= COPROC_DEAD;
+      cp->c_flags &= ~COPROC_RUNNING;
+#if 0
+      coproc_dispose (cp);
+#endif
+    }
 }
 
 void
@@ -2035,7 +2104,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
 {
   REDIRECT *rp;
   COMMAND *tc, *second;
-  int ignore_return, exec_result;
+  int ignore_return, exec_result, was_error_trap, invert;
 
   ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
 
@@ -2101,7 +2170,25 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
       break;
 
     case '|':
+      was_error_trap = signal_is_trapped (ERROR_TRAP) && signal_is_ignored (ERROR_TRAP) == 0;
+      invert = (command->flags & CMD_INVERT_RETURN) != 0;
+      ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
+
       exec_result = execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close);
+
+      if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
+       {
+         last_command_exit_value = exec_result;
+         run_error_trap ();
+       }
+
+      if (ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS)
+       {
+         last_command_exit_value = exec_result;
+         run_pending_traps ();
+         jump_to_top_level (ERREXIT);
+       }
+
       break;
 
     case AND_AND:
index 5439b4f6cae9f3a4a57ae3682d4b3b5140b4ba24..67ae93afcd037d839466add13b3563b40a61df92 100644 (file)
@@ -44,6 +44,7 @@ extern void coproc_dispose __P((struct coproc *));
 extern void coproc_flush __P((void));
 extern void coproc_close __P((struct coproc *));
 extern void coproc_closeall __P((void));
+extern void coproc_reap __P((void));
 
 extern void coproc_rclose __P((struct coproc *, int));
 extern void coproc_wclose __P((struct coproc *, int));
@@ -52,7 +53,7 @@ extern void coproc_fdclose __P((struct coproc *, int));
 extern void coproc_checkfd __P((struct coproc *, int));
 extern void coproc_fdchk __P((int));
 
-extern void coproc_pidchk __P((pid_t));
+extern void coproc_pidchk __P((pid_t, int));
 
 extern void coproc_fdsave __P((struct coproc *));
 extern void coproc_fdrestore __P((struct coproc *));
index cc2be680be9df5d891844224c16693b95781eed8..1079e727257a80aa2b4da89f13fa7aaa889f0e27 100644 (file)
--- a/externs.h
+++ b/externs.h
@@ -154,12 +154,16 @@ extern char *sh_modcase __P((const char *, char *, int));
 
 /* Defines for flags argument to sh_modcase.  These need to agree with what's
    in lib/sh/casemode.c */
-#define CASE_LOWER     0x01
-#define CASE_UPPER     0x02
-#define CASE_CAPITALIZE        0x04
-#define CASE_UNCAP     0x08
-#define CASE_TOGGLE    0x10
-#define CASE_TOGGLEALL 0x20
+#define CASE_LOWER     0x0001
+#define CASE_UPPER     0x0002
+#define CASE_CAPITALIZE        0x0004
+#define CASE_UNCAP     0x0008
+#define CASE_TOGGLE    0x0010
+#define CASE_TOGGLEALL 0x0020
+#define CASE_UPFIRST   0x0040
+#define CASE_LOWFIRST  0x0080
+
+#define CASE_USEWORDS  0x1000
 
 /* declarations for functions defined in lib/sh/clktck.c */
 extern long get_clk_tck __P((void));
@@ -433,8 +437,10 @@ extern int zmapfd __P((int, char **, char *));
 
 /* declarations for functions defined in lib/sh/zread.c */
 extern ssize_t zread __P((int, char *, size_t));
+extern ssize_t zreadretry __P((int, char *, size_t));
 extern ssize_t zreadintr __P((int, char *, size_t));
 extern ssize_t zreadc __P((int, char *));
+extern ssize_t zreadcintr __P((int, char *));
 extern void zreset __P((void));
 extern void zsyncfd __P((int));
 
diff --git a/jobs.c b/jobs.c
index 3de0f4cf4e78f2fb96529d362a1203880f60e2f3..24d98af5668f550689d8fb555e147f6504991c95 100644 (file)
--- a/jobs.c
+++ b/jobs.c
@@ -840,6 +840,11 @@ cleanup_dead_jobs ()
       if (jobs[i] && DEADJOB (i) && IS_NOTIFIED (i))
        delete_job (i, 0);
     }
+
+#if defined (COPROCESS_SUPPORT)
+  coproc_reap ();
+#endif
+
   UNQUEUE_SIGCHLD(os);
 }
 
@@ -3081,7 +3086,7 @@ waitchld (wpid, block)
       child = find_process (pid, 1, &job);     /* want living procs only */
 
 #if defined (COPROCESS_SUPPORT)
-      coproc_pidchk (pid);
+      coproc_pidchk (pid, status);
 #endif
 
       /* It is not an error to have a child terminate that we did
index f68b5fa858e45ff2681877528312e728deb53b5e..836f837b91ed5abfb1b2b8b1598bd0b2c33cc6f3 100644 (file)
@@ -796,6 +796,8 @@ _rl_read_file (filename, sizep)
       return ((char *)NULL);
     }
 
+  RL_CHECK_SIGNALS ();
+
   buffer[i] = '\0';
   if (sizep)
     *sizep = i;
@@ -864,6 +866,7 @@ _rl_read_init_file (filename, include_level)
   buffer = _rl_read_file (openname, &file_size);
   xfree (openname);
 
+  RL_CHECK_SIGNALS ();
   if (buffer == 0)
     return (errno);
   
index 8c9b6d3a5d5c040ba040c96309736aedcd700a1a..6c52ac037a2ff7119b96d25bd658b256ce46305a 100644 (file)
@@ -87,6 +87,7 @@ _rl_callback_newline ()
     }
 
   readline_internal_setup ();
+  RL_CHECK_SIGNALS ();
 }
 
 /* Install a readline handler, set up the terminal, and issue the prompt. */
@@ -127,6 +128,7 @@ rl_callback_read_char ()
 
   do
     {
+      RL_CHECK_SIGNALS ();
       if  (RL_ISSTATE (RL_STATE_ISEARCH))
        {
          eof = _rl_isearch_callback (_rl_iscxt);
@@ -186,6 +188,7 @@ rl_callback_read_char ()
       else
        eof = readline_internal_char ();
 
+      RL_CHECK_SIGNALS ();
       if (rl_done == 0 && _rl_want_redisplay)
        {
          (*rl_redisplay_function) ();
@@ -223,6 +226,7 @@ rl_callback_handler_remove ()
 {
   rl_linefunc = NULL;
   RL_UNSETSTATE (RL_STATE_CALLBACK);
+  RL_CHECK_SIGNALS ();
   if (in_handler)
     {
       in_handler = 0;
index 186f6e87db5a5c925b1885ae4b05fd72d912482d..20bb1eaacd2a0de096fd7007a0d39839f763b2db 100644 (file)
@@ -1019,7 +1019,9 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
      variable rl_attempted_completion_function. */
   if (rl_attempted_completion_function)
     {
+      _rl_interrupt_immediately++;
       matches = (*rl_attempted_completion_function) (text, start, end);
+      _rl_interrupt_immediately--;
 
       if (matches || rl_attempted_completion_over)
        {
@@ -1881,6 +1883,7 @@ rl_completion_matches (text, entry_function)
   match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *));
   match_list[1] = (char *)NULL;
 
+  _rl_interrupt_immediately++;
   while (string = (*entry_function) (text, matches))
     {
       if (matches + 1 == match_list_size)
@@ -1890,6 +1893,7 @@ rl_completion_matches (text, entry_function)
       match_list[++matches] = string;
       match_list[matches + 1] = (char *)NULL;
     }
+  _rl_interrupt_immediately--;
 
   /* If there were any matches, then look through them finding out the
      lowest common denominator.  That then becomes match_list[0]. */
index 4de8c0a11928d9152093c8ecfa8877d6749e21c4..bf5ac0ed5f20f8759eea2b4b7cd5d91739792d56 100644 (file)
@@ -1016,7 +1016,7 @@ history_expand (hstring, output)
            }
          else if (string[i] == history_expansion_char)
            {
-             if (!cc || member (cc, history_no_expand_chars))
+             if (cc == 0 || member (cc, history_no_expand_chars))
                continue;
              /* If the calling application has set
                 history_inhibit_expansion_function to a function that checks
@@ -1164,7 +1164,8 @@ history_expand (hstring, output)
          /* If the history_expansion_char is followed by one of the
             characters in history_no_expand_chars, then it is not a
             candidate for expansion of any kind. */
-         if (member (cc, history_no_expand_chars))
+         if (cc == 0 || member (cc, history_no_expand_chars) ||
+                        (history_inhibit_expansion_function && (*history_inhibit_expansion_function) (string, i)))
            {
              ADD_CHAR (string[i]);
              break;
index 93fbdc0ee88561d0bf2c425bfacbf0233ed264e8..320c4bc7f06bbd9f4242bcd44028d0c7f140e908 100644 (file)
@@ -252,6 +252,7 @@ rl_gather_tyi ()
     {
       while (chars_avail--)
        {
+         RL_CHECK_SIGNALS ();
          k = (*rl_getc_function) (rl_instream);
          if (rl_stuff_char (k) == 0)
            break;                      /* some problem; no more room */
@@ -437,6 +438,7 @@ rl_read_key ()
          while (rl_event_hook && rl_get_char (&c) == 0)
            {
              (*rl_event_hook) ();
+             RL_CHECK_SIGNALS ();
              if (rl_done)              /* XXX - experimental */
                return ('\n');
              if (rl_gather_tyi () < 0) /* XXX - EIO */
@@ -450,6 +452,7 @@ rl_read_key ()
        {
          if (rl_get_char (&c) == 0)
            c = (*rl_getc_function) (rl_instream);
+         RL_CHECK_SIGNALS ();
        }
     }
 
@@ -465,6 +468,8 @@ rl_getc (stream)
 
   while (1)
     {
+      RL_CHECK_SIGNALS ();
+
 #if defined (__MINGW32__)
       if (isatty (fileno (stream)))
        return (getch ());
index b359dc05cfc5500a76d39cacbae681b46a45f465..f3f46a71b34438dc059a8a2cd4bb8bb1f0cef760 100644 (file)
@@ -383,7 +383,7 @@ _rl_isearch_dispatch (cxt, c)
     {
       if (cxt->lastc >= 0 && (cxt->mb[0] && cxt->mb[1] == '\0') && ENDSRCH_CHAR (cxt->lastc))
        {
-         /* This sets rl_pending_input to c; it will be picked up the next
+         /* This sets rl_pending_input to LASTC; it will be picked up the next
             time rl_read_key is called. */
          rl_execute_next (cxt->lastc);
          return (0);
index a7179ccf189411f611f37808a00f349dd4975c9e..3550b354024299f35759f1e1fa8f042fda8b9e24 100644 (file)
@@ -397,6 +397,8 @@ readline_internal_setup ()
 
   if (rl_pre_input_hook)
     (*rl_pre_input_hook) ();
+
+  RL_CHECK_SIGNALS ();
 }
 
 STATIC_CALLBACK char *
@@ -406,6 +408,8 @@ readline_internal_teardown (eof)
   char *temp;
   HIST_ENTRY *entry;
 
+  RL_CHECK_SIGNALS ();
+
   /* Restore the original of this history line, iff the line that we
      are editing was originally in the history, AND the line has changed. */
   entry = current_history ();
@@ -542,6 +546,7 @@ readline_internal_charloop ()
 
       lastc = c;
       _rl_dispatch ((unsigned char)c, _rl_keymap);
+      RL_CHECK_SIGNALS ();
 
       /* If there was no change in _rl_last_command_was_kill, then no kill
         has taken place.  Note that if input is pending we are reading
@@ -662,7 +667,6 @@ _rl_dispatch_callback (cxt)
   int nkey, r;
 
   /* For now */
-#if 1
   /* The first time this context is used, we want to read input and dispatch
      on it.  When traversing the chain of contexts back `up', we want to use
      the value from the next context down.  We're simulating recursion using
@@ -680,13 +684,11 @@ _rl_dispatch_callback (cxt)
     }
   else
     r = cxt->childval;
-#else
-  r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
-#endif
 
   /* For now */
   r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & KSEQ_SUBSEQ));
 
+  RL_CHECK_SIGNALS ();
   if (r == 0)                  /* success! */
     {
       _rl_keyseq_chain_dispose ();
@@ -773,6 +775,8 @@ _rl_dispatch_subseq (key, map, got_subseq)
             remember the last command executed in this variable. */
          if (rl_pending_input == 0 && map[key].function != rl_digit_argument)
            rl_last_func = map[key].function;
+
+         RL_CHECK_SIGNALS ();
        }
       else if (map[ANYOTHERKEY].function)
        {
index 2a0abf97f7b5d0aa368f6f4886ca638a160d5491..f575c14a929e8b695c87bd6efc2f0ab4295417b5 100644 (file)
 #define VI_COMMAND_MODE()      (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap)
 #define VI_INSERT_MODE()       (rl_editing_mode == vi_mode && _rl_keymap == vi_insertion_keymap)
 
+#define RL_CHECK_SIGNALS() \
+       do { \
+         if (_rl_caught_signal) _rl_signal_handler (_rl_caught_signal); \
+       } while (0)
+
 /*************************************************************************
  *                                                                      *
  * Global structs undocumented in texinfo manual and not in readline.h   *
@@ -291,6 +296,8 @@ extern int _rl_restore_tty_signals PARAMS((void));
 extern int _rl_nsearch_callback PARAMS((_rl_search_cxt *));
 
 /* signals.c */
+extern void _rl_signal_handler PARAMS((int));
+
 extern void _rl_block_sigint PARAMS((void));
 extern void _rl_release_sigint PARAMS((void));
 
@@ -424,6 +431,9 @@ extern _rl_keyseq_cxt *_rl_kscxt;
 extern _rl_search_cxt *_rl_nscxt;
 
 /* signals.c */
+extern int _rl_interrupt_immediately;
+extern int volatile _rl_caught_signal;
+
 extern int _rl_echoctl;
 
 extern int _rl_intr_char;
index 48dd885fbcd052aff1e255799b0b053cabd9316a..325ae8cce46490a4a90c9640660465286e0ff5d5 100644 (file)
@@ -81,6 +81,9 @@ typedef struct { SigHandler *sa_handler; int sa_mask, sa_flags; } sighandler_cxt
 static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
 static void rl_maybe_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
 
+static RETSIGTYPE rl_signal_handler PARAMS((int));
+static RETSIGTYPE _rl_handle_signal PARAMS((int));
+     
 /* Exported variables for use by applications. */
 
 /* If non-zero, readline will install its own signal handlers for
@@ -95,6 +98,9 @@ int rl_catch_sigwinch = 0;    /* for the readline state struct in readline.c */
 #endif
 
 /* Private variables. */
+int _rl_interrupt_immediately = 0;
+int volatile _rl_caught_signal = 0;    /* should be sig_atomic_t, but that requires including <signal.h> everywhere */
+
 /* If non-zero, print characters corresponding to received signals. */
 int _rl_echoctl = 0;
 
@@ -121,9 +127,33 @@ static sighandler_cxt old_winch;
 
 /* Readline signal handler functions. */
 
+/* Called from RL_CHECK_SIGNALS() macro */
+RETSIGTYPE
+_rl_signal_handler (sig)
+{
+  _rl_caught_signal = 0;       /* XXX */
+
+  _rl_handle_signal (sig);
+  SIGHANDLER_RETURN;
+}
+
 static RETSIGTYPE
 rl_signal_handler (sig)
      int sig;
+{
+  if (_rl_interrupt_immediately)
+    {
+      _rl_interrupt_immediately = 0;
+      _rl_handle_signal (sig);
+    }
+
+  _rl_caught_signal = sig;
+  SIGHANDLER_RETURN;
+}
+
+static RETSIGTYPE
+_rl_handle_signal (sig)
+     int sig;
 {
 #if defined (HAVE_POSIX_SIGNALS)
   sigset_t set;
index c2a7851c731abd2281e7d2c7e70956f0be8dea16..c0ba631f13189f764c0fc86d554801f380eb91cf 100644 (file)
@@ -114,7 +114,7 @@ rl_free_undo_list ()
       rl_undo_list = rl_undo_list->next;
 
       if (release->what == UNDO_DELETE)
-       free (release->text);
+       xfree (release->text);
 
       xfree (release);
     }
@@ -191,7 +191,7 @@ rl_do_undo ()
        case UNDO_DELETE:
          rl_point = start;
          rl_insert_text (rl_undo_list->text);
-         free (rl_undo_list->text);
+         xfree (rl_undo_list->text);
          break;
 
        /* Undoing inserts means deleting some text. */
index 83b8ebec204af8261242c18df12a95ed939d054e..b7e085018eb2fa994a8252705e533da1c1c2ef0c 100644 (file)
 #endif
 
 /* These must agree with the defines in externs.h */
-#define CASE_NOOP      0x0
-#define CASE_LOWER     0x01
-#define CASE_UPPER     0x02
-#define CASE_CAPITALIZE        0x04
-#define CASE_UNCAP     0x08
-#define CASE_TOGGLE    0x10
-#define CASE_TOGGLEALL 0x20
+#define CASE_NOOP      0x0000
+#define CASE_LOWER     0x0001
+#define CASE_UPPER     0x0002
+#define CASE_CAPITALIZE        0x0004
+#define CASE_UNCAP     0x0008
+#define CASE_TOGGLE    0x0010
+#define CASE_TOGGLEALL 0x0020
+#define CASE_UPFIRST   0x0040
+#define CASE_LOWFIRST  0x0080
+
+#define CASE_USEWORDS  0x1000          /* modify behavior to act on words in passed string */
 
 extern char *substring __P((char *, int, int));
 
@@ -96,7 +100,7 @@ sh_modcase (string, pat, flags)
      int flags;
 {
   int start, next, end;
-  int inword, c, nc, nop, match;
+  int inword, c, nc, nop, match, usewords;
   char *ret, *s;
   wchar_t wc;
 #if defined (HANDLE_MULTIBYTE)
@@ -116,6 +120,10 @@ sh_modcase (string, pat, flags)
   ret = (char *)xmalloc (end + 1);
   strcpy (ret, string);
 
+  /* See if we are supposed to split on alphanumerics and operate on each word */
+  usewords = (flags & CASE_USEWORDS);
+  flags &= ~CASE_USEWORDS;
+
   inword = 0;
   while (start < end)
     {
@@ -143,16 +151,41 @@ sh_modcase (string, pat, flags)
             }
        }
 
+      /* XXX - for now, the toggling operators work on the individual
+        words in the string, breaking on alphanumerics.  Should I
+        leave the capitalization operators to do that also? */
       if (flags == CASE_CAPITALIZE)
        {
-         nop = inword ? CASE_LOWER : CASE_UPPER;
+         if (usewords)
+           nop = inword ? CASE_LOWER : CASE_UPPER;
+         else
+           nop = (start > 0) ? CASE_LOWER : CASE_UPPER;
          inword = 1;
        }
       else if (flags == CASE_UNCAP)
        {
-         nop = inword ? CASE_UPPER : CASE_LOWER;
+         if (usewords)
+           nop = inword ? CASE_UPPER : CASE_LOWER;
+         else
+           nop = (start > 0) ? CASE_UPPER : CASE_LOWER;
          inword = 1;
        }
+      else if (flags == CASE_UPFIRST)
+       {
+         if (usewords)
+           nop = inword ? CASE_NOOP : CASE_UPPER;
+         else
+           nop = (start > 0) ? CASE_NOOP : CASE_UPPER;
+         inword = 1;
+       }
+      else if (flags == CASE_LOWFIRST)
+       {
+         if (usewords)
+           nop = inword ? CASE_NOOP : CASE_LOWER;
+         else
+           nop = (start > 0) ? CASE_NOOP : CASE_LOWER;
+         inword = 1;
+       }
       else if (flags == CASE_TOGGLE)
        {
          nop = inword ? CASE_NOOP : CASE_TOGGLE;
index 20069e901d1bf6f36863d2698383a10baad41e09..33ac830da6d1b1f7f7fcb5869370150c807c809a 100644 (file)
@@ -36,6 +36,11 @@ extern int errno;
 
 extern ssize_t zread __P((int, char *, size_t));
 extern ssize_t zreadc __P((int, char *));
+extern ssize_t zreadintr __P((int, char *, size_t));
+extern ssize_t zreadcintr __P((int, char *));
+
+typedef ssize_t breadfunc_t __P((int, char *, size_t));
+typedef ssize_t creadfunc_t __P((int, char *));
 
 /* Initial memory allocation for automatic growing buffer in zreadlinec */
 #define GET_LINE_INITIAL_ALLOCATION 16
@@ -74,31 +79,32 @@ zgetline (fd, lineptr, n, unbuffered_read)
 
       if (retval <= 0)
        {
-         line[nr] = '\0';
+         if (line && nr > 0)
+           line[nr] = '\0';
          break;
        }
 
       if (nr + 2 >= *n)
        {
-        size_t new_size;
-
-        new_size = (*n == 0) ? GET_LINE_INITIAL_ALLOCATION : *n * 2;
-        line = xrealloc (*lineptr, new_size);
-
-        if (line)
-          {
-            *lineptr = line;
-            *n = new_size;
-          }
-        else
-          {
-            if (*n > 0)
-              {
-                (*lineptr)[*n - 1] = '\0';
-                nr = *n - 2;
-              }
-            break;
-          }
+         size_t new_size;
+
+         new_size = (*n == 0) ? GET_LINE_INITIAL_ALLOCATION : *n * 2;
+         line = (*n >= new_size) ? NULL : xrealloc (*lineptr, new_size);
+
+         if (line)
+           {
+             *lineptr = line;
+             *n = new_size;
+           }
+         else
+           {
+             if (*n > 0)
+               {
+                 (*lineptr)[*n - 1] = '\0';
+                 nr = *n - 2;
+               }
+             break;
+           }
        }
 
       line[nr] = c;
index 94c426ff07f81a652469afb681a84ebf1148f9be..0fd1199ed1f79c21087809386e52c91bd6b99106 100644 (file)
@@ -60,7 +60,7 @@ zread (fd, buf, len)
 #define NUM_INTR 3
 
 ssize_t
-zreadintr (fd, buf, len)
+zreadretry (fd, buf, len)
      int fd;
      char *buf;
      size_t len;
@@ -75,7 +75,7 @@ zreadintr (fd, buf, len)
        return r;
       if (r == -1 && errno == EINTR)
        {
-         if (++nintr > NUM_INTR)
+         if (++nintr >= NUM_INTR)
            return -1;
          continue;
        }
@@ -83,6 +83,16 @@ zreadintr (fd, buf, len)
     }
 }
 
+/* Call read(2) and allow it to be interrupted.  Just a stub for now. */
+ssize_t
+zreadintr (fd, buf, len)
+     int fd;
+     char *buf;
+     size_t len;
+{
+  return (read (fd, buf, len));
+}
+
 /* Read one character from FD and return it in CP.  Return values are as
    in read(2).  This does some local buffering to avoid many one-character
    calls to read(2), like those the `read' builtin performs. */
@@ -113,6 +123,31 @@ zreadc (fd, cp)
   return 1;
 }
 
+/* Don't mix calls to zreadc and zreadcintr in the same function, since they
+   use the same local buffer. */
+ssize_t
+zreadcintr (fd, cp)
+     int fd;
+     char *cp;
+{
+  ssize_t nr;
+
+  if (lind == lused || lused == 0)
+    {
+      nr = zreadintr (fd, lbuf, sizeof (lbuf));
+      lind = 0;
+      if (nr <= 0)
+       {
+         lused = 0;
+         return nr;
+       }
+      lused = nr;
+    }
+  if (cp)
+    *cp = lbuf[lind++];
+  return 1;
+}
+
 void
 zreset ()
 {
index 53b447a32ff4285b5607e8b0b4d457dcf8c07c92..2f2e9fc45bd7f10c38733c9c2787fd82770625e3 100644 (file)
--- a/locale.c
+++ b/locale.c
@@ -187,7 +187,12 @@ set_locale_var (var, value)
 #if defined (HAVE_SETLOCALE)
       r = *lc_all ? ((x = setlocale (LC_ALL, lc_all)) != 0) : reset_locale_vars ();
       if (x == 0)
-       internal_warning("setlocale: LC_ALL: cannot change locale (%s): %s", lc_all, strerror(errno));
+       {
+         if (errno == 0)
+           internal_warning(_("setlocale: LC_ALL: cannot change locale (%s)"), lc_all);
+         else
+           internal_warning(_("setlocale: LC_ALL: cannot change locale (%s): %s"), lc_all, strerror (errno));
+       }
       locale_setblanks ();
       return r;
 #else
@@ -237,7 +242,12 @@ set_locale_var (var, value)
 #endif /* HAVE_SETLOCALE */
   
   if (x == 0)
-    internal_warning("setlocale: %s: cannot change locale (%s): %s", var, get_locale_var (var), strerror(errno));
+    {
+      if (errno == 0)
+       internal_warning(_("setlocale: %s: cannot change locale (%s)"), var, get_locale_var (var));
+      else
+       internal_warning(_("setlocale: %s: cannot change locale (%s): %s"), var, get_locale_var (var), strerror (errno));
+    }
 
   return (x != 0);
 }
index 08a225497eb3d1cb7126b17946052ab2463d7c98..b73e3d6d1c1d7470a33128002a286526803c3246 100644 (file)
--- a/nojobs.c
+++ b/nojobs.c
@@ -45,6 +45,7 @@
 
 #include "shell.h"
 #include "jobs.h"
+#include "execute_cmd.h"
 
 #include "builtins/builtext.h" /* for wait_builtin */
 
@@ -256,6 +257,10 @@ set_pid_status (pid, status)
 {
   int slot;
 
+#if defined (COPROCESS_SUPPORT)
+  coproc_pidchk (pid, status);
+#endif
+
   slot = find_index_by_pid (pid);
   if (slot == NO_PID)
     return;
@@ -387,6 +392,10 @@ cleanup_dead_jobs ()
        pid_list[i].pid = NO_PID;
     }
 
+#if defined (COPROCESS_SUPPORT)
+  coproc_reap ();
+#endif
+
   return 0;
 }
 
index 311f9674bc23e9070afe4856e37c61c3dfc2d500..e1ccaac8678ed6cbd3c2b2496fb6ad258954482c 100644 (file)
@@ -941,11 +941,12 @@ unbind_compfunc_variables (exported)
 
        $0 == function or command being invoked
        $1 == command name
-       $2 = word to be completed (possibly null)
-       $3 = previous word
+       $2 == word to be completed (possibly null)
+       $3 == previous word
 
    Functions can access all of the words in the current command line
-   with the COMP_WORDS array.  External commands cannot. */
+   with the COMP_WORDS array.  External commands cannot; they have to
+   make do  with the COMP_LINE and COMP_POINT variables. */
 
 static WORD_LIST *
 build_arg_list (cmd, text, lwords, ind)
@@ -1005,6 +1006,7 @@ gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw)
   WORD_LIST *cmdlist;
   int fval;
   sh_parser_state_t ps;
+  sh_parser_state_t * restrict pps;
 #if defined (ARRAY_VARS)
   ARRAY *a;
 #endif
@@ -1029,9 +1031,16 @@ gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw)
 
   cmdlist = build_arg_list (funcname, text, lwords, cw);
 
-  save_parser_state (&ps);  
+  pps = &ps;
+  begin_unwind_frame ("gen-shell-function-matches");
+  add_unwind_protect (restore_parser_state, (char *)pps);
+  add_unwind_protect (dispose_words, (char *)cmdlist);
+  add_unwind_protect (unbind_compfunc_variables, (char *)0);
+
   fval = execute_shell_function (f, cmdlist);  
-  restore_parser_state (&ps);
+
+  discard_unwind_frame ("gen-shell-function-matches");
+  restore_parser_state (pps);
 
   /* Now clean up and destroy everything. */
   dispose_words (cmdlist);
similarity index 96%
rename from po/._de.po
rename to po/._lt.po
index c04a52a0b8af6b616b3c6d9ab7f3766beadc4517..09ec0ede78a8649d1a8f76df60b3c29938b7899c 100644 (file)
Binary files a/po/._de.po and b/po/._lt.po differ
diff --git a/po/._nl.po b/po/._nl.po
deleted file mode 100644 (file)
index 05ec628..0000000
Binary files a/po/._nl.po and /dev/null differ
diff --git a/po/._sv.po b/po/._sv.po
deleted file mode 100644 (file)
index 6eb0ced..0000000
Binary files a/po/._sv.po and /dev/null differ
index 1258057e09a5bc6ecd0b5433bdd419dbe0d57aa0..1b59cac12da920c6d86f081aa2b230675a74ebee 100644 (file)
Binary files a/po/af.gmo and b/po/af.gmo differ
index d09e4df0a31f23e06b93b0ff7730073e2eed88c2..e60048fb570d48db937422c4e2e24a582cb6b754 100644 (file)
--- a/po/af.po
+++ b/po/af.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2004-03-17 13:48+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -39,7 +39,7 @@ msgstr ""
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: kan nie %s skep nie"
@@ -253,12 +253,22 @@ msgstr ""
 msgid "write error: %s"
 msgstr "pypfout: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr ""
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, fuzzy, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: dubbelsinnige herroetering"
@@ -294,7 +304,7 @@ msgstr ""
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: leesalleen-funksie"
@@ -333,7 +343,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: kan nie %s skep nie"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -349,7 +359,7 @@ msgstr "%s: kan nie 'n bin
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: kan nie 'n binêre lêer uitvoer nie"
@@ -492,37 +502,37 @@ msgstr "Onbekende fout %d"
 msgid "expression expected"
 msgstr "Bools uitdrukking verwag"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s: illegal option -- %c\n"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: illegal option -- %c\n"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "Die sein nommer wat was gevang het"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "Veranderlike boom"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -823,32 +833,32 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "pypfout: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: bevel nie gevind nie"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: is 'n gids"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "kan nie fd %d na fd 0 dupliseer nie: %s"
@@ -951,144 +961,144 @@ msgstr ""
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "E108: Geen veranderlike: \"%s\""
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "Sein kwaliteit:"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Klaar"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 #, fuzzy
 msgid "Stopped"
 msgstr "Op gehou"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Op gehou"
 
-#: jobs.c:1438
+#: jobs.c:1443
 #, fuzzy
 msgid "Running"
 msgstr "aktief"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Klaar(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Verlaat %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Onbekende status"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, fuzzy, c-format
 msgid "(core dumped) "
 msgstr "Kern Ontwikkelaar"
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, fuzzy, c-format
 msgid "  (wd: %s)"
 msgstr "Aktiveer nou dadelik"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, fuzzy, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "Fout in die skryf van %s"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, fuzzy, c-format
 msgid "%s: job has terminated"
 msgstr "Die bediener beëindig Die verbinding."
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "3d modus"
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, fuzzy, c-format
 msgid " (core dumped)"
 msgstr "Kern Ontwikkelaar"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, fuzzy, c-format
 msgid "(wd now: %s)\n"
 msgstr "Aktiveer nou dadelik"
 
-#: jobs.c:3558
+#: jobs.c:3563
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "Inisialisering van OpenGL het misluk."
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "Inisialisering van OpenGL het misluk."
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "geen taakbeheer in hierdie dop nie"
 
@@ -1324,7 +1334,7 @@ msgstr "Gebruik Kaart na Los Tronk"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1334,12 +1344,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1717,12 +1727,12 @@ msgstr "Woord Substitusie"
 msgid "$%s: cannot assign in this way"
 msgstr "Kan nie soek 'n handtekening in hierdie boodskap!"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "--Geen reëls in buffer--"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -2184,81 +2194,91 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "Bediener of domein naam:"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 #, fuzzy
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "Bediener of domein naam:"
 
-#: builtins.c:200
+#: builtins.c:202
 #, fuzzy
 msgid "{ COMMANDS ; }"
 msgstr "Opdragte"
 
-#: builtins.c:202
+#: builtins.c:204
 #, fuzzy
 msgid "job_spec [&]"
 msgstr "Kort Spesifikasie werkvoorbeeld"
 
-#: builtins.c:204
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "Bools uitdrukking verwag"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "Bools uitdrukking verwag"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 #, fuzzy
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "Tydelike gids:"
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 #, fuzzy
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "Volle Naam:"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 #, fuzzy
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "Tipe die naam van die %1 speler."
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2278,7 +2298,7 @@ msgid ""
 "    defined."
 msgstr ""
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2288,7 +2308,7 @@ msgid ""
 "    Return success unless a NAME is not an existing alias."
 msgstr ""
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2327,7 +2347,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2338,7 +2358,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2349,7 +2369,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2363,7 +2383,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2379,7 +2399,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2412,7 +2432,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2428,7 +2448,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2438,7 +2458,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2446,7 +2466,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2454,7 +2474,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2473,7 +2493,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2509,14 +2529,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2531,7 +2551,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2562,7 +2582,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2575,7 +2595,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2602,7 +2622,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2614,7 +2634,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2655,7 +2675,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2678,7 +2698,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2686,7 +2706,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2695,7 +2715,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2725,7 +2745,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2737,7 +2757,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2751,7 +2771,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2775,7 +2795,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2797,7 +2817,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2831,7 +2851,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2855,7 +2875,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2872,7 +2892,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2894,7 +2914,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2939,7 +2959,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2983,7 +3003,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2995,7 +3015,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3077,7 +3097,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3097,7 +3117,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3116,7 +3136,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3136,7 +3156,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3147,7 +3167,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3161,7 +3181,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3175,7 +3195,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3252,7 +3272,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3260,7 +3280,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3272,7 +3292,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3308,7 +3328,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3338,7 +3358,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3382,7 +3402,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3400,7 +3420,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3417,7 +3437,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3431,7 +3451,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3444,7 +3464,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3461,7 +3481,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3481,7 +3501,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3497,7 +3517,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3508,7 +3528,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3529,7 +3549,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3540,7 +3560,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3551,7 +3571,20 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3565,7 +3598,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3576,7 +3609,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3590,7 +3623,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3601,7 +3634,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3629,7 +3662,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3683,7 +3716,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3714,7 +3747,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3741,7 +3774,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3770,7 +3803,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3791,7 +3824,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3821,7 +3854,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3843,7 +3876,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3856,7 +3889,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3885,9 +3918,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3911,7 +3944,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3921,6 +3956,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #, fuzzy
 #~ msgid "     new current working directory."
 #~ msgstr "Nuutste gebruik word werksaam gids"
index 775fc3ff8d1deba37cfe69a4082e723837ff656b..3f78e05f07cf4fa8f1880c6622b8431735ed52f2 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -41,7 +41,7 @@ msgstr ""
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr ""
@@ -245,12 +245,22 @@ msgstr ""
 msgid "write error: %s"
 msgstr ""
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr ""
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr ""
@@ -286,7 +296,7 @@ msgstr ""
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr ""
@@ -325,7 +335,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr ""
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -341,7 +351,7 @@ msgstr ""
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr ""
@@ -481,36 +491,36 @@ msgstr ""
 msgid "expression expected"
 msgstr ""
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, c-format
 msgid "%s: invalid line count"
 msgstr ""
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, c-format
 msgid "%s: invalid array origin"
 msgstr ""
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr ""
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr ""
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -800,31 +810,31 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 msgid "pipe error"
 msgstr ""
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr ""
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr ""
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
@@ -918,140 +928,140 @@ msgstr ""
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr ""
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr ""
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, c-format
 msgid "%s: line %d: "
 msgstr ""
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr ""
 
@@ -1278,7 +1288,7 @@ msgstr ""
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1288,12 +1298,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1630,12 +1640,12 @@ msgstr ""
 msgid "$%s: cannot assign in this way"
 msgstr ""
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr ""
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -2052,73 +2062,83 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr ""
 
 #: builtins.c:198
-msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgid "coproc [NAME] command [redirections]"
 msgstr ""
 
 #: builtins.c:200
-msgid "{ COMMANDS ; }"
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:202
-msgid "job_spec [&]"
+msgid "{ COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:204
-msgid "(( expression ))"
+msgid "job_spec [&]"
 msgstr ""
 
 #: builtins.c:206
-msgid "[[ expression ]]"
+msgid "(( expression ))"
 msgstr ""
 
 #: builtins.c:208
+msgid "[[ expression ]]"
+msgstr ""
+
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr ""
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr ""
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr ""
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2138,7 +2158,7 @@ msgid ""
 "    defined."
 msgstr ""
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2148,7 +2168,7 @@ msgid ""
 "    Return success unless a NAME is not an existing alias."
 msgstr ""
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2187,7 +2207,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2198,7 +2218,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2209,7 +2229,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2223,7 +2243,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2239,7 +2259,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2272,7 +2292,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2288,7 +2308,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2298,7 +2318,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2306,7 +2326,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2314,7 +2334,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2333,7 +2353,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2369,14 +2389,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2391,7 +2411,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2422,7 +2442,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2435,7 +2455,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2462,7 +2482,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2474,7 +2494,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2515,7 +2535,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2538,7 +2558,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2546,7 +2566,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2555,7 +2575,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2585,7 +2605,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2597,7 +2617,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2611,7 +2631,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2635,7 +2655,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2657,7 +2677,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2691,7 +2711,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2715,7 +2735,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2732,7 +2752,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2754,7 +2774,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2799,7 +2819,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2843,7 +2863,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2855,7 +2875,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -2937,7 +2957,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -2957,7 +2977,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -2976,7 +2996,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -2996,7 +3016,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3007,7 +3027,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3021,7 +3041,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3035,7 +3055,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3112,7 +3132,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3120,7 +3140,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3132,7 +3152,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3168,7 +3188,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3198,7 +3218,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3242,7 +3262,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3260,7 +3280,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3277,7 +3297,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3291,7 +3311,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3304,7 +3324,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3321,7 +3341,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3341,7 +3361,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3357,7 +3377,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3368,7 +3388,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3389,7 +3409,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3400,7 +3420,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3411,7 +3431,20 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3425,7 +3458,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3436,7 +3469,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3450,7 +3483,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3461,7 +3494,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3489,7 +3522,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3543,7 +3576,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3574,7 +3607,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3601,7 +3634,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3630,7 +3663,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3651,7 +3684,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3681,7 +3714,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3703,7 +3736,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3716,7 +3749,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3745,9 +3778,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3771,7 +3804,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3780,3 +3815,10 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
+
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
index 46fc6e17de35d504704d4b38baf83defceb95255..0d0cae363906e7fe60ea09e7ba51ae03eb66fe0a 100644 (file)
Binary files a/po/bg.gmo and b/po/bg.gmo differ
index ab331c0b86ad07a4076d30e02779bde99928575b..d4e61c028290a4390e22aad7963c25384dc5d2d4 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2007-07-26 07:18+0300\n"
 "Last-Translator: Alexander Shopov <ash@contact.bg>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -40,7 +40,7 @@ msgstr "%s: не може да се присвоява на нецифров и
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: не може да се създаде: %s"
@@ -249,12 +249,22 @@ msgstr "%s: не е команда вградена в обвивката"
 msgid "write error: %s"
 msgstr "грешка при запис: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: грешка при получаването на текущата директория: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: нееднозначно указана задача"
@@ -290,7 +300,7 @@ msgstr "може да се използва само във функция"
 msgid "cannot use `-f' to make functions"
 msgstr "„-f“ не може да се използва за създаването на функции"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: функция с права само за четене"
@@ -329,7 +339,7 @@ msgstr "%s: не е зареден динамично"
 msgid "%s: cannot delete: %s"
 msgstr "%s: не може да се изтрие: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -345,7 +355,7 @@ msgstr "%s: не е обикновен файл"
 msgid "%s: file is too large"
 msgstr "%s: файлът е прекалено голям"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: двоичният файл не може да бъде изпълнен"
@@ -496,37 +506,37 @@ msgstr "Неизвестна грешка"
 msgid "expression expected"
 msgstr "очаква се израз"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: грешно указване на файловия дескриптор"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: грешен файлов дескриптор: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s: грешна опция"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: грешна опция"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: грешно име на действие"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: не е променлива за масив"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -883,33 +893,33 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "стандартният вход от /dev/null не може да бъде пренасочен: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "в променливата $TIMEFORMAT: „%c“: грешен форматиращ знак"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "грешка при запис: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 "%s: ограничение: в имената на командите не може да присъства знакът „/“"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: командата не е открита"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: лош интерпретатор"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "файловият дескриптор %d не може да се дублира като дескриптор %d"
@@ -1007,141 +1017,141 @@ msgstr ""
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "изтриване на спряната задача %d в групата процеси %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr ""
 "описателен идентификатор на процес: %ld: няма такъв идентификатор на процес"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "изчакване: процесът с идентификатор %ld не е дъщерен на тази обвивка"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "изчакване: липсват данни за процес с идентификатор %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "изчакване на задача: задачата %d е спряна"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: задачата е приключила"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: задача %d вече е във фонов режим"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: предупреждение: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "в тази обвивка няма управление на задачите"
 
@@ -1381,7 +1391,7 @@ msgstr "Използвайте „%s“, за да излезете от обв
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "неочакван знак за край на файл „EOF“, очакваше се знакът „)“"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "дописване: функцията „%s“ не е открита"
@@ -1392,12 +1402,12 @@ msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 "вмъкване на завършване на команда: %s указване на команда, което е NULL"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "команда за печат: лош конектор „%d“"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "отпечатване: „%c“: неправилен форматиращ знак"
@@ -1744,12 +1754,12 @@ msgstr "%s: лошо заместване"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: не може да се задава по този начин"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "лошо заместване: липсва затварящ знак „%s“ в %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "няма съвпадение: %s"
@@ -2194,75 +2204,85 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr ""
 
 #: builtins.c:198
-msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgid "coproc [NAME] command [redirections]"
 msgstr ""
 
 #: builtins.c:200
-msgid "{ COMMANDS ; }"
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:202
-msgid "job_spec [&]"
+msgid "{ COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:204
+msgid "job_spec [&]"
+msgstr ""
+
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "очаква се израз"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "очаква се израз"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr ""
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr ""
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr ""
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 #, fuzzy
 msgid ""
 "Define or display aliases.\n"
@@ -2292,7 +2312,7 @@ msgstr ""
 "случаите,\n"
 "    когато се зададе ИМЕ, за което не е дефиниран синоним."
 
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2305,7 +2325,7 @@ msgstr ""
 " ИМЕната се премахват от списъка с дефинираните синоними.  Ако е е дадена и\n"
 "    опцията „-a“ тогава се премахват всички синоними."
 
-#: builtins.c:285
+#: builtins.c:289
 #, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
@@ -2390,7 +2410,7 @@ msgstr ""
 "се\n"
 "                           използва за вход."
 
-#: builtins.c:322
+#: builtins.c:326
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2404,7 +2424,7 @@ msgstr ""
 " Продължение със следващата итерация от цикъл ползващ FOR, WHILE или UNTIL.\n"
 "    Ако е указан N, се продължава от N-тия обхващащ цикъл."
 
-#: builtins.c:334
+#: builtins.c:338
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2418,7 +2438,7 @@ msgstr ""
 " Продължение със следващата итерация от цикъл ползващ FOR, WHILE или UNTIL.\n"
 "    Ако е указан N, се продължава от N-тия обхващащ цикъл."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2432,7 +2452,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2458,7 +2478,7 @@ msgstr ""
 "изведе\n"
 "    информация.  Най-горната рамка е 0."
 
-#: builtins.c:379
+#: builtins.c:383
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2506,7 +2526,7 @@ msgstr ""
 "    фактическата подредба на директориите, вместо да се следват символните\n"
 "    връзки.  Опцията „-L“ налага следването на символните връзки."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2522,7 +2542,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2533,7 +2553,7 @@ msgid ""
 "    Always succeeds."
 msgstr " Без ефект - командата нищо не прави.  Връща се изходен код 0."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2541,7 +2561,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2549,7 +2569,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2568,7 +2588,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2635,14 +2655,14 @@ msgstr ""
 "    функция ИМЕната стават локални, както при използването на командата "
 "„local“."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2657,7 +2677,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 #, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
@@ -2708,7 +2728,7 @@ msgstr ""
 "    Можете изрично да спрете интерпретирането на горните знаци с опцията „-"
 "E“."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2721,7 +2741,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2748,7 +2768,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2760,7 +2780,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 #, fuzzy
 msgid ""
 "Parse option arguments.\n"
@@ -2843,7 +2863,7 @@ msgstr ""
 "са\n"
 "    дадени повече аргументи, те биват анализирани вместо това."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2866,7 +2886,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2877,7 +2897,7 @@ msgstr ""
 " Изход от обвивката с код N.  Ако N е изпуснат, то изходният код е този на\n"
 "     последната изпълнена команда."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2886,7 +2906,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 #, fuzzy
 msgid ""
 "Display or execute commands from the history list.\n"
@@ -2942,7 +2962,7 @@ msgstr ""
 "когато\n"
 "    се въведе само „-r“, ще се изпълни последната команда."
 
-#: builtins.c:734
+#: builtins.c:738
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -2957,7 +2977,7 @@ msgstr ""
 " Изважда ЗАДАЧА от фонов режим и я прави текуща задача.  Ако липсва\n"
 "    аргумент ЗАДАЧА, се използва текущата задача според обвивката."
 
-#: builtins.c:749
+#: builtins.c:753
 #, fuzzy
 msgid ""
 "Move jobs to the background.\n"
@@ -2974,7 +2994,7 @@ msgstr ""
 " Поставя всяка ЗАДАЧА във фонов режим, все едно е била стартирана с „&“.\n"
 "    Ако липсва аргумент ЗАДАЧА, се използва текущата задача според обвивката."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2998,7 +3018,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3020,7 +3040,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 #, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
@@ -3088,7 +3108,7 @@ msgstr ""
 "времето не\n"
 "    се записва."
 
-#: builtins.c:848
+#: builtins.c:852
 #, fuzzy
 msgid ""
 "Display status of jobs.\n"
@@ -3129,7 +3149,7 @@ msgstr ""
 "като\n"
 "    аргументи, се заменят с идентификатора на водача на групата процеси."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3146,7 +3166,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 #, fuzzy
 msgid ""
 "Send a signal to a job.\n"
@@ -3178,7 +3198,7 @@ msgstr ""
 "    за вас брой процеси, няма да ви се налага да пуснете още един процес,\n"
 "    за да убиете друг."
 
-#: builtins.c:917
+#: builtins.c:921
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3262,7 +3282,7 @@ msgstr ""
 "    Ако последният АРГУМЕНТ се изчислява като 0, „let“ връща 1. В\n"
 "    противен случай - връща 0."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3342,7 +3362,7 @@ msgstr ""
 "    ИНТЕРВАЛът за въвеждане или е зададен неправилен файлов дескриптор като\n"
 "    аргумент на „-u“."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3354,7 +3374,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3523,7 +3543,7 @@ msgstr ""
 "    съответно на $1, $2,… $n.  Ако не са зададени АРГументи, се извеждат\n"
 "    всички променливи на средата."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3543,7 +3563,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3562,7 +3582,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3582,7 +3602,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3593,7 +3613,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 #, fuzzy
 msgid ""
 "Execute commands from a file in the current shell.\n"
@@ -3614,7 +3634,7 @@ msgstr ""
 "    са зададени АРГУМЕНТИ, те се превръщат в позиционни аргументи при\n"
 "    изпълнението на ФАЙЛа."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3628,7 +3648,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3779,7 +3799,7 @@ msgstr ""
 "                                    „-eq“ (=),  „-ne“ (!=), „-lt“ (<),\n"
 "                                    „-le“ (<=), „-gt“ (>) , „-ge“ (>=)."
 
-#: builtins.c:1292
+#: builtins.c:1296
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3791,7 +3811,7 @@ msgstr ""
 "    задължително да е знакът „]“, който да съответства на отварящата скоба "
 "„[“."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3803,7 +3823,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -3859,7 +3879,7 @@ msgstr ""
 "на\n"
 "    обвивката с командата „kill -signal $$“."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3889,7 +3909,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 #, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
@@ -3968,7 +3988,7 @@ msgstr ""
 "        - опцията „-t“, при която стойността е в секунди;\n"
 "        - опцията „-u“, при която стойността е точният брой процеси."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3986,7 +4006,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -4003,7 +4023,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 #, fuzzy
 msgid ""
 "Wait for process completion and return exit status.\n"
@@ -4025,7 +4045,7 @@ msgstr ""
 "се\n"
 "    всички процеси в програмния канал на задачата."
 
-#: builtins.c:1474
+#: builtins.c:1478
 #, fuzzy
 msgid ""
 "Execute commands for each member in a list.\n"
@@ -4045,7 +4065,7 @@ msgstr ""
 "    всеки елемент в ДУМИте, ИМЕто се задава да е елементът и се изпълняват\n"
 "    КОМАНДИте."
 
-#: builtins.c:1488
+#: builtins.c:1492
 #, fuzzy
 msgid ""
 "Arithmetic for loop.\n"
@@ -4072,7 +4092,7 @@ msgstr ""
 "се\n"
 "    изчислява да е 1."
 
-#: builtins.c:1506
+#: builtins.c:1510
 #, fuzzy
 msgid ""
 "Select words from a list and execute commands.\n"
@@ -4110,7 +4130,7 @@ msgstr ""
 "    изпълняват след всеки избор до изпълняването на команда за прекъсване\n"
 "    (break)."
 
-#: builtins.c:1527
+#: builtins.c:1531
 #, fuzzy
 msgid ""
 "Report time consumed by pipeline's execution.\n"
@@ -4134,7 +4154,7 @@ msgstr ""
 "според\n"
 "    стойността на променливата на средата $TIMEFORMAT."
 
-#: builtins.c:1544
+#: builtins.c:1548
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -4148,7 +4168,7 @@ msgstr ""
 " Избирателно се изпълняват КОМАНДИ на база ДУМА, която напасва на ШАБЛОН.\n"
 "    Шаблоните се разделят със знака „|“."
 
-#: builtins.c:1556
+#: builtins.c:1560
 #, fuzzy
 msgid ""
 "Execute commands based on conditional.\n"
@@ -4185,7 +4205,7 @@ msgstr ""
 "ако\n"
 "    никое тестово условие, не се е оценило като истина."
 
-#: builtins.c:1573
+#: builtins.c:1577
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -4200,7 +4220,7 @@ msgstr ""
 "„while“\n"
 "    е с изходен код, който е 0."
 
-#: builtins.c:1585
+#: builtins.c:1589
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -4215,7 +4235,20 @@ msgstr ""
 "„until“\n"
 "    е с изходен код, който не е 0."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4229,7 +4262,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -4244,7 +4277,7 @@ msgstr ""
 "се\n"
 "    цял набор от команди."
 
-#: builtins.c:1623
+#: builtins.c:1641
 #, fuzzy
 msgid ""
 "Resume job in foreground.\n"
@@ -4264,7 +4297,7 @@ msgstr ""
 "    се изпълнява във фонов режим, все едно е била подадена като аргумент\n"
 "    на командата „bg“."
 
-#: builtins.c:1638
+#: builtins.c:1656
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expression.\n"
@@ -4278,7 +4311,7 @@ msgstr ""
 " ИЗРАЗът се изчислява според правилата на аритметичното оценяване.\n"
 "    Еквивалентно на „let ИЗРАЗ“."
 
-#: builtins.c:1650
+#: builtins.c:1668
 #, fuzzy
 msgid ""
 "Execute conditional command.\n"
@@ -4328,7 +4361,7 @@ msgstr ""
 "    „&&“ и „||“ не оценят ИЗРАЗ2, ако ИЗРАЗ1 е достатъчен за определяне на\n"
 "    стойността на израза."
 
-#: builtins.c:1676
+#: builtins.c:1694
 #, fuzzy
 msgid ""
 "Common shell variable names and usage.\n"
@@ -4457,7 +4490,7 @@ msgstr ""
 "кои\n"
 "                        команди да не се запазват в историята.\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 #, fuzzy
 msgid ""
 "Add directories to stack.\n"
@@ -4508,7 +4541,7 @@ msgstr ""
 "    \n"
 "    Можете да изведете стека на директорията с командата „dirs“."
 
-#: builtins.c:1767
+#: builtins.c:1785
 #, fuzzy
 msgid ""
 "Remove directories from stack.\n"
@@ -4553,7 +4586,7 @@ msgstr ""
 "\n"
 "    Стекът с директориите се визуализира с командата „dirs“."
 
-#: builtins.c:1797
+#: builtins.c:1815
 #, fuzzy
 msgid ""
 "Display directory stack.\n"
@@ -4605,7 +4638,7 @@ msgstr ""
 "    -N  показва N-тия елемент отдясно в списъка показван от\n"
 "        командата „dirs“, когато е стартирана без опции.  Брои се от 0."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -4626,7 +4659,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -4673,7 +4706,7 @@ msgstr ""
 "    вход за обвивката. Ако е включена опцията „-v“, изходът се поставя в\n"
 "    променливата на обвивката VAR, вместо да се извежда на стандартния изход."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4695,7 +4728,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -4716,7 +4749,7 @@ msgstr ""
 "с\n"
 "    него."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4745,9 +4778,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -4771,7 +4804,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -4781,6 +4816,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid " "
 #~ msgstr " "
 
index 82d6012f11f43678865dd44797372ff3081a8ee9..b6dc10b4e9e8e56b472de6c5eb2aae68ea5e5106 100644 (file)
Binary files a/po/ca.gmo and b/po/ca.gmo differ
index 4fdd458f6aa4356ebb61c298f31c1ed2464c02a1..7b84ffe4f47b6fad428356bdf19f8340e3533b9e 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2003-12-28 19:59+0100\n"
 "Last-Translator: Montxo Vicente i Sempere <montxo@alacant.com>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -39,7 +39,7 @@ msgstr "%s: no es pot assignar a un ?ndex que no ?s num?ric"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: no es pot crear: %s"
@@ -250,12 +250,22 @@ msgstr ""
 msgid "write error: %s"
 msgstr "error del conducte: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr ""
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, fuzzy, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: Redirecci? ambigua"
@@ -293,7 +303,7 @@ msgstr ""
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funci? nom?s de lectura"
@@ -332,7 +342,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: no es pot crear: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -348,7 +358,7 @@ msgstr "%s: no es pot executar el fitxer binari"
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: no es pot executar el fitxer binari"
@@ -490,37 +500,37 @@ msgstr "Error desconegut %d"
 msgid "expression expected"
 msgstr "s'esperava una expressi?"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%c%c: opci? inv?lida"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%c%c: opci? inv?lida"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "n?mero inv?lid de senyal"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: variable sense vincle"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -824,32 +834,32 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "error del conducte: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restringit: no es pot especificar '/' en noms d'ordres"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: no s'ha trobat l'ordre"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: ?s un directori"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
@@ -954,144 +964,144 @@ msgstr ""
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: L'identificador de proc?s (pid) no existeix (%d)!\n"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "Senyal desconeguda #%d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Fet"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Aturat"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Aturat"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "S'est? executant"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Fet (%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Fi d'execuci? amb l'estat %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Estat desconegut"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(la imatge del nucli ha estat bolcada) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, fuzzy, c-format
 msgid "  (wd: %s)"
 msgstr "(wd ara: %s)\n"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, fuzzy, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "error en l'execuci? de setpgid (%d a %d) en el proc?s fill %d: %s\n"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, fuzzy, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 "wait: l'identificador del proc?s (pid) %d no ?s un fill d'aquest int?rpret"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: s'ha finalitzat la tasca"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "encaix %3d:"
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (bolcat de la imatge del nucli)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd ara: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp ha fallat: %s"
 
-#: jobs.c:3618
+#: jobs.c:3623
 #, fuzzy
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs: disciplina de l?nia: %s"
 
-#: jobs.c:3628
+#: jobs.c:3633
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs: getpgrp ha fallat: %s"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "no hi ha cap tasca de control dins d'aquest int?rpret"
 
@@ -1332,7 +1342,7 @@ msgstr ""
 "s'ha arribat inesperadament a la fi del fitxer (EOF) mentre\n"
 "es buscava per '%c'"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1342,12 +1352,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: el connector '%d' ?s incorrecte"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1708,12 +1718,12 @@ msgstr "%s: substituci? inv?lida"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: no es pot assignar d'aquesta manera"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "substituci? inv?lida: no existeix '%s' en %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -2188,83 +2198,93 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until ORDRES; do ORDRES; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 #, fuzzy
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function NOM { ORDRES ; } or NOM () { ORDRES ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 #, fuzzy
 msgid "{ COMMANDS ; }"
 msgstr "{ ORDRES }"
 
-#: builtins.c:202
+#: builtins.c:204
 #, fuzzy
 msgid "job_spec [&]"
 msgstr "fg [id_tasca]"
 
-#: builtins.c:204
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "s'esperava una expressi?"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "s'esperava una expressi?"
 
-#: builtins.c:208
+#: builtins.c:210
 #, fuzzy
 msgid "variables - Names and meanings of some shell variables"
 msgstr "Es permeten les variables de l'int?rpret d'ordres com a operands.  El"
 
-#: builtins.c:211
+#: builtins.c:213
 #, fuzzy
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [directori | +N | -N] [-n]"
 
-#: builtins.c:215
+#: builtins.c:217
 #, fuzzy
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [+N | -N] [-n]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 #, fuzzy
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o opci?_format_llarg] nom_opci? [nom_opci?...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 #, fuzzy
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "type [-apt] nom [nom ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2284,7 +2304,7 @@ msgid ""
 "    defined."
 msgstr ""
 
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2296,7 +2316,7 @@ msgid ""
 msgstr ""
 "Es treuen NOMs de la llista de les definicions d'?lies.  Si s'especifica"
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2335,7 +2355,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2347,7 +2367,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr "Repr?n la seg?ent iteraci? del bucle envoltant FOR, WHILE, o UNTIL."
 
-#: builtins.c:334
+#: builtins.c:338
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2359,7 +2379,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr "Repr?n la seg?ent iteraci? del bucle envoltant FOR, WHILE, o UNTIL."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2373,7 +2393,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2389,7 +2409,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2422,7 +2442,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2438,7 +2458,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2449,7 +2469,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Cap efecte; no es fa res.  Es retorna amb el codi zero com a eixida."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2457,7 +2477,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2465,7 +2485,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2484,7 +2504,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2520,14 +2540,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2542,7 +2562,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2573,7 +2593,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2586,7 +2606,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2613,7 +2633,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2625,7 +2645,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2666,7 +2686,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2689,7 +2709,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2698,7 +2718,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr "Finalitza l'int?rpret d'ordres amb l'estat d'N. Si s'ometeix N,"
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2707,7 +2727,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2737,7 +2757,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -2750,7 +2770,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr "Ubica la ID_TASCA en primer pla, i l'activa com a la tasca actual."
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2764,7 +2784,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2788,7 +2808,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2810,7 +2830,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2844,7 +2864,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2868,7 +2888,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2885,7 +2905,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2907,7 +2927,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2952,7 +2972,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2996,7 +3016,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3008,7 +3028,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3090,7 +3110,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3110,7 +3130,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3129,7 +3149,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3149,7 +3169,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3160,7 +3180,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3174,7 +3194,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3188,7 +3208,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3265,7 +3285,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3276,7 +3296,7 @@ msgstr ""
 "par?metre ha de ser el signe \"]\" perqu? es puga tancar l'expressi? que\n"
 "comen?a pel signe \"[\"."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3288,7 +3308,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3324,7 +3344,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3354,7 +3374,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3398,7 +3418,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3416,7 +3436,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3433,7 +3453,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3447,7 +3467,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3460,7 +3480,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3477,7 +3497,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3497,7 +3517,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3513,7 +3533,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -3525,7 +3545,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Executa selectivament les ordres especificades en ORDRES seguint una "
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3546,7 +3566,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -3560,7 +3580,7 @@ msgstr ""
 "Expandeix i executa les ordres especificades en ORDRES i els executa\n"
 "de tal manera que la darrera ordre"
 
-#: builtins.c:1585
+#: builtins.c:1589
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -3574,7 +3594,20 @@ msgstr ""
 "Expandeix i executa les ordres especificades en ORDRES i els executa\n"
 "de tal manera que la darrera ordre"
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3588,7 +3621,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -3600,7 +3633,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Executa un conjunt d'ordres en un grup.  A?? ?s una manera de"
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3614,7 +3647,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3625,7 +3658,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3653,7 +3686,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3707,7 +3740,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3738,7 +3771,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3765,7 +3798,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3794,7 +3827,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3815,7 +3848,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3845,7 +3878,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3867,7 +3900,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3880,7 +3913,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3909,9 +3942,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3935,7 +3968,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3945,6 +3980,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid "Display the list of currently remembered directories.  Directories"
 #~ msgstr ""
 #~ "Mostra la llista dels directoris actualment recordats.  Els directoris "
index b14e605e8af4c9c5c06fcbc237bc21ed66de6086..42ae24650755ddde67db3d901417d4bf63a40585 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index 054b9113c6de9c5dfbdc0b5701ec1165125872e4..986c4ce59075febea8bc10e36266204de5881b80 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2008-09-07 13:09+0200\n"
 "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -42,7 +42,7 @@ msgstr "%s: přes nečíselný indexu nelze dosadit"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: při přiřazovaní asociativního pole se musí použít podprogram"
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nelze vytvořit: %s"
@@ -247,12 +247,22 @@ msgstr "%s: není vestavěným příkazem shellu"
 msgid "write error: %s"
 msgstr "chyba zápisu: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: chyba při zjišťování současného adresáře: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: nejednoznačné určení úlohy"
@@ -288,7 +298,7 @@ msgstr "může být použito jen ve funkci"
 msgid "cannot use `-f' to make functions"
 msgstr "„-f“ nezle použít na výrobu funkce"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkce jen pro čtení"
@@ -327,7 +337,7 @@ msgstr "%s: není dynamicky nahráno"
 msgid "%s: cannot delete: %s"
 msgstr "%s: nelze smazat: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -343,7 +353,7 @@ msgstr "%s: není obyčejný soubor"
 msgid "%s: file is too large"
 msgstr "%s: soubor je příliš velký"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: binární soubor nelze spustit"
@@ -497,36 +507,36 @@ msgstr "Neznámá chyba"
 msgid "expression expected"
 msgstr "očekáván výraz"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: chybné určení deskriptoru souboru"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: neplatný deskriptor souboru: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: chybný počet řádků"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: chybný počátek pole"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: neplatné množství mezi voláními"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr "prázdný název proměnné typu pole"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr "je vyžadována podpora proměnných typu pole"
 
@@ -872,31 +882,31 @@ msgstr "\ačasový limit pro čekání na vstup vypršel: automatické odhláše
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "standardní vstup nelze přesměrovat z /dev/null: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: „%c“: chybný formátovací znak"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 msgid "pipe error"
 msgstr "chyba v rouře"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: omezeno: v názvu příkazu nesmí být „/“"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: příkaz nenalezen"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: chybný interpretr"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "deskriptor souboru %d nelze duplikovat na deskriptor %d"
@@ -990,143 +1000,143 @@ msgstr "save_bash_input: buffer již pro nový deskriptor %d existuje"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp roury"
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "forknutý PID %d se objevil v běžící úloze %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "mažu pozastavenou úlohu %d se skupinou procesů %ld"
 
 # FIXME: in the_pipeline znamená do nebo v?
-#: jobs.c:1105
+#: jobs.c:1110
 #, fuzzy, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: proces %5ld (%s) do the_pipeline"
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: PID %5ld (%s) označen za stále živého"
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: žádný takový PID"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr "Signál %d"
 
 # FIXME: rod a zkontrolovat následující
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Dokonán"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Pozastaven"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Pozastaven (%s)"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Běží"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Dokonán (%d)"
 
 # FIXME: Jedná se o způsob ukončení zavoláním funkce exit(%d)?
-#: jobs.c:1454
+#: jobs.c:1459
 #, fuzzy, c-format
 msgid "Exit %d"
 msgstr "Exit %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Stav neznámý"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dumped [obraz paměti uložen]) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (cwd: %s)"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid na potomku (z %ld na %ld)"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: PID %ld není potomkem tohoto shellu"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Žádný záznam o procesu %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: úloha %d je pozastavena"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: úloha skončila"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: úloha %d je již na pozadí"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: řádek %d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dumped [obraz paměti uložen])"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(cwd nyní: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp selhalo"
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: disciplína linky"
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "nelze nastavit skupinu procesů terminálu (%d)"
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "žádná správa úloh v tomto shellu"
 
@@ -1359,7 +1369,7 @@ msgstr "Shell lze ukončit příkazem „%s“.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "nenadálý konec souboru při hledání odpovídající „)“"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "doplňování: funkce „%s“ nenalezena"
@@ -1369,12 +1379,12 @@ msgstr "doplňování: funkce „%s“ nenalezena"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULLOVÝ COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: chybná propojka „%d“"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: „%c“: chybný formátovací znak"
@@ -1725,12 +1735,12 @@ msgstr "%s: chybná substituce"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: takto nelze přiřazovat"
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "chybná substituce: v %s chybí uzavírací „`“"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "žádná shoda: %s"
@@ -2161,51 +2171,55 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until PŘÍKAZY; do PŘÍKAZY; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function jméno { PŘÍKAZY ; } nebo jméno () { PŘÍKAZY ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 msgid "{ COMMANDS ; }"
 msgstr "{ PŘÍKAZY ; }"
 
-#: builtins.c:202
+#: builtins.c:204
 msgid "job_spec [&]"
 msgstr "úloha [&]"
 
-#: builtins.c:204
+#: builtins.c:206
 msgid "(( expression ))"
 msgstr "(( výraz ))"
 
-#: builtins.c:206
+#: builtins.c:208
 msgid "[[ expression ]]"
 msgstr "[[ výraz ]]"
 
 # XXX: "variable" je literál na seznamy vestavěných příkazů
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr "variables – názvy a významy některých proměnných shellu"
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | adresář]"
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [název_volby…]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v proměnná] formát [argumenty]"
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
@@ -2215,7 +2229,7 @@ msgstr ""
 "seznam_slov]  [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S "
 "přípona] [název…]"
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
@@ -2224,11 +2238,11 @@ msgstr ""
 "seznam_slov]  [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S "
 "přípona] [slovo]"
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "compopt [-o|+o přepínač] [název…]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
@@ -2236,7 +2250,16 @@ msgstr ""
 "mapfile [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c "
 "množství] [pole]"
 
-#: builtins.c:250
+#: builtins.c:242
+#, fuzzy
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c "
+"množství] [pole]"
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2273,7 +2296,7 @@ msgstr ""
 "    alias vrátí pravdu, pokud nebyl zadán NÁZEV, pro který není žádný alias\n"
 "    definován."
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2288,7 +2311,7 @@ msgstr ""
 "      -a\todstraní všechny definice aliasů.    \n"
 "    Vrací úspěch, pokud NÁZEV není neexistující alias."
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2368,7 +2391,7 @@ msgstr ""
 "    bind vrací 0, pokud není zadán nerozpoznaný přepínač nebo nedojde "
 "k chybě."
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2386,7 +2409,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Návratový kód je 0, pokud N je větší nebo rovno 1."
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2403,7 +2426,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Návratový kód je 0, pokud N je větší nebo rovno 1."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2428,7 +2451,7 @@ msgstr ""
 "    Vrací návratový kód VESTAVĚNÉHO-PŘÍKAZU-SHELLU, nebo nepravdu, pokud\n"
 "    VESTAVĚNÝ-PŘÍKAZ-SHELLU není vestavěným příkazem shellu."
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2455,7 +2478,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací 0, pokud shell provádí shellovou funkci a VÝRAZ je platný."
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2514,7 +2537,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací 0, byl-li adresář změněn, jinak nenulovou hodnotu."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2542,7 +2565,7 @@ msgstr ""
 "    Vrací 0, nebyl-li zadán neplatný přepínač a mohl-li být současný\n"
 "    adresář přečten."
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2558,7 +2581,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vždy uspěje."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2570,7 +2593,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vždy uspěje."
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2582,7 +2605,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vždy selže."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2617,7 +2640,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací návratový kód PŘÍKAZU, nebo selže, nebyl–li příkaz nalezen."
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2685,7 +2708,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2695,7 +2718,7 @@ msgstr ""
 "    \n"
 "    Příkaz je zastaralý. Vizte „help declare“."
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2723,7 +2746,7 @@ msgstr ""
 "    Vrací úspěch, nebyl-li zadán neplatný přepínač, nenastala-li chyba a\n"
 "    vykonává-li shell funkci."
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2784,7 +2807,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací úspěch, nedojde-li k chybě zápisu na výstup."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2805,7 +2828,7 @@ msgstr ""
 "    \n"
 "    Vrací úspěch, nedojte-li k chybě zápisu na výstup."
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2859,7 +2882,7 @@ msgstr ""
 "    Vrací úspěch, je-li NÁZEV vestavěným příkazem shellu a nevyskytne-li\n"
 "    se chyba."
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2877,7 +2900,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí návratový kód příkazu, nebo úspěch, byl-li příkaz prázdný."
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2960,7 +2983,7 @@ msgstr ""
 "dojde\n"
 "    na konec přepínačů nebo nastane-li chyba."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3001,7 +3024,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud byl PŘÍKAZ nalezen a nedošlo k chybě přesměrování."
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3013,7 +3036,7 @@ msgstr ""
 "    Ukončí tento shell se stavem N. Bez N bude návratový kód roven kódu\n"
 "    posledně prováděného příkazu."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3026,7 +3049,7 @@ msgstr ""
 "    Ukončí přihlašovací (login) shell se stavem N. Nebyl-li příkaz zavolán\n"
 "    z přihlašovacího shellu, vrátí chybu."
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3079,7 +3102,7 @@ msgstr ""
 "    Vrátí úspěch nebo kód provedeného příkazu. Nenulový kód, vyskytne-li se\n"
 "    chyba."
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3100,7 +3123,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Kód úlohy přesunuté do popředí, nebo došlo-li k chybě, kód selhání."
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3122,7 +3145,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud je správa úloh zapnuta a nedošlo-li k nějaké chybě."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3166,7 +3189,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud byl NÁZEV nalezen a nebyl-li zadán neplatný přepínač."
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3207,7 +3230,7 @@ msgstr ""
 "    Vrací úspěch, pokud byl nalezen VZOREK a nebyl zadán neplatný přepínač."
 
 # FIXME: bash-4.0-pre1: Orphaned line between -w and -p option. It belongs to -n.
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3272,7 +3295,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě."
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3317,7 +3340,7 @@ msgstr ""
 "chyba.\n"
 "    Byl-ly použit přepínač -x, vrátí návratový kód PŘÍKAZU."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3347,7 +3370,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo ÚLOHA."
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3388,7 +3411,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě."
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3475,7 +3498,7 @@ msgstr ""
 "    Pokud poslední ARGUMENT je vyhodnocen na 0, let vrátí 1. Jinak je\n"
 "    navrácena 0."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3557,7 +3580,7 @@ msgstr ""
 "    pro čtení nevyprší nebo není poskytnut neplatný deskriptor souboru jako\n"
 "    argument -u."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3579,7 +3602,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vrátí N, nebo selže, pokud shell neprovádí funkci nebo skript."
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3745,7 +3768,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný argument."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3782,7 +3805,7 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a JMÉNO není jen pro\n"
 "    čtení."
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3817,7 +3840,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo NÁZEV."
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3855,7 +3878,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo NÁZEV."
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3873,7 +3896,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud N není záporný a není větší než $#."
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3897,7 +3920,7 @@ msgstr ""
 "    Vrací návratový kód posledního provedeného příkazu z NÁZVU_SOUBORU.\n"
 "    Selže, pokud NÁZEV_SOUBORU nelze načíst."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3921,7 +3944,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací úspěch, pokud je správa úloh zapnuta a nevyskytla se chyba."
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4079,7 +4102,7 @@ msgstr ""
 "    Vrací úspěch, je-li VÝRAZ vyhodnocen jako pravdivý. Selže, je-li VÝRAZ\n"
 "    vyhodnocen jako nepravdivý nebo je-li zadán neplatný argument."
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4091,7 +4114,7 @@ msgstr ""
 "    Toto je synonymum pro vestavěný příkaz „test“, až na to, že poslední\n"
 "    argument musí být doslovně „]“, aby se shodoval s otevírající „[“."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4111,7 +4134,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vždy uspěje."
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4182,7 +4205,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud SIGSPEC a zadané přepínače jsou platné."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4238,7 +4261,7 @@ msgstr ""
 "    Vrátí úspěch, pokud všechny NÁZVY byly nalezeny. Selže, pokud některé\n"
 "    nalezeny nebyly."
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4322,7 +4345,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vrací úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4355,7 +4378,7 @@ msgstr ""
 "    Návratový kód\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný MÓD nebo přepínač."
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -4383,7 +4406,7 @@ msgstr ""
 "    Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný "
 "přepínač."
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4407,7 +4430,7 @@ msgstr ""
 "    Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný "
 "přepínač."
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4431,7 +4454,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4460,7 +4483,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy vykonaného příkazu."
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4502,7 +4525,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy prováděného příkazu."
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4533,7 +4556,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Návratová hodnota je návratová hodnota KOLONY."
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4551,7 +4574,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4586,7 +4609,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4605,7 +4628,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4623,7 +4646,20 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4648,7 +4684,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud NÁZEV není jen pro čtení."
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4665,7 +4701,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy spuštěného příkazu."
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4690,7 +4726,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód obnovené úlohy."
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4712,7 +4748,7 @@ msgstr ""
 # příkaz, který by byl vykonán na základě splnění jiné podmínky. Tj. překlad
 # „podmíněný příkaz“ je chybný.
 # Toto je nápověda k vestavěnému příkazu „[“.
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4764,7 +4800,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    0 nebo 1 podle hodnoty VÝRAZU."
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4869,7 +4905,7 @@ msgstr ""
 "    \t\trozlišení, které příkazy by měly být uloženy do seznamu\n"
 "    \t\thistorie.\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4926,7 +4962,7 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný argument a změna adresáře\n"
 "    neselhala."
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4976,7 +5012,7 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný argument nebo neselhala změna\n"
 "    adresáře."
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5027,7 +5063,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5065,7 +5101,7 @@ msgstr ""
 "    Vrátí úspěch, je-li NÁZEV_VOLBY zapnut. Selže, byl-li zadán neplatný\n"
 "    přepínač nebo je-li NÁZEV_VOLBY vypnut."
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5120,7 +5156,7 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě\n"
 "    zápisu nebo přiřazení."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5159,7 +5195,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5187,7 +5223,7 @@ msgstr ""
 # opravit.
 # TODO: Tento překlad je vemli kostrbatý a místy nedává smysl. Je třeba
 # ujednotit pravidlo–pravidla doplnění–doplňování (completion specification).
-#: builtins.c:1912
+#: builtins.c:1930
 #, fuzzy
 msgid ""
 "Modify or display completion options.\n"
@@ -5239,10 +5275,10 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a NÁZEV již měl\n"
 "    definováno pravidlo pro doplnění."
 
-#: builtins.c:1940
+#: builtins.c:1958
 #, fuzzy
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -5266,7 +5302,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -5310,6 +5348,13 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a POLE nebylo jen pro\n"
 "    čtení."
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid " "
 #~ msgstr " "
 
index 8cfb60d28ab42771541c697e6cf16b88371f4328..e0340474c2d3d24c05e39d6d5634a538acecbcc6 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index 11fc4e0b10b94f328238eeaab81b20a970d52978..2f3932514236ab548ae58d751416c0f0a5174f7d 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2008-12-20 16:56+0100\n"
 "Last-Translator: Nils Naumann <nnau@gmx.net>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -38,7 +38,7 @@ msgstr "%s: Kann nicht auf einen nicht-numerischen Index zuweisen."
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: Kann die Datei %s nicht erzeugen."
@@ -243,12 +243,22 @@ msgstr "%s: Ist kein Shell Kommando."
 msgid "write error: %s"
 msgstr "Schreibfehler: %s."
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: Kann das nicht aktuelle Verzeichnis wiederfinden: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: Mehrdeutige Job Bezeichnung."
@@ -284,7 +294,7 @@ msgstr "kann nur innerhalb einer Funktion benutzt werden."
 msgid "cannot use `-f' to make functions"
 msgstr "Mit `-f' können keine Funktionen erzeugt werden."
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: Schreibgeschützte Funktion."
@@ -323,7 +333,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: Kann nicht löschen: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -339,7 +349,7 @@ msgstr "%s: Ist keine normale Datei."
 msgid "%s: file is too large"
 msgstr "%s: Die Datei ist zu groß."
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: Kann die Datei nicht ausführen."
@@ -487,36 +497,36 @@ msgstr "Unbekannter Fehler."
 msgid "expression expected"
 msgstr "Ausdruck erwartet."
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, c-format
 msgid "%s: invalid line count"
 msgstr ""
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, c-format
 msgid "%s: invalid array origin"
 msgstr ""
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr ""
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr ""
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -850,31 +860,31 @@ msgstr "\aZu lange keine Eingabe: Automatisch ausgeloggt.\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "Kann nicht die Standardeingabe von /dev/null umleiten: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': Ungültiges Formatzeichen."
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 msgid "pipe error"
 msgstr "Pipe-Fehler"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: Verboten:  `/' ist in Kommandonamen unzulässig."
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: Kommando nicht gefunden."
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: ist ein Verzeichnis."
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "Kann fd %d nicht auf fd 0 verdoppeln: %s"
@@ -973,146 +983,146 @@ msgstr "check_bash_input: buffer already exists for new fd %d"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
 # Programmierfehler
-#: jobs.c:1396
+#: jobs.c:1401
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: Prozeß-Nummer existiert nicht (%d)!\n"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Fertig"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Angehalten"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Angehalten(%s)"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Läuft"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Fertig(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Exit %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Unbekannter Status"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(Speicherabzug geschrieben) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
 # interner Fehler
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: Prozeß %ld wurde nicht von dieser Shell gestartet."
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: Programm ist beendet."
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
 # Debug Ausgabe
-#: jobs.c:3487
+#: jobs.c:3492
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: Zeile %d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (Speicherabzug geschrieben)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(gegenwärtiges Arbeitsverzeichnis ist: %s)\n"
 
 # interner Fehler
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp war nicht erfolgreich."
 
 # interner Fehler
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: line discipline"
 
 # interner Fehler
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "Keine Job Steuerung in dieser Shell."
 
@@ -1347,7 +1357,7 @@ msgstr "Benutze \"%s\" um die Shell zu verlassen.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "Dateiende beim Suchen nach passender `)' erreicht."
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1357,12 +1367,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: Falsches Verbindungszeichen `%d'."
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1705,12 +1715,12 @@ msgstr "%s: Falsche Variablenersetzung."
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: Kann so nicht zuweisen."
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "Falsche Ersetzung: Keine schließende \"`\" in %s."
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "Keine Entsprechung: %s"
@@ -2146,50 +2156,54 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until Kommandos; do Kommandos; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function Name { Kommandos ; } oder Name () { Kommandos ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 msgid "{ COMMANDS ; }"
 msgstr "{ Kommandos ; }"
 
-#: builtins.c:202
+#: builtins.c:204
 msgid "job_spec [&]"
 msgstr "Jobbezeichnung [&]"
 
-#: builtins.c:204
+#: builtins.c:206
 msgid "(( expression ))"
 msgstr "(( Ausdruck ))"
 
-#: builtins.c:206
+#: builtins.c:208
 msgid "[[ expression ]]"
 msgstr "[[ Ausdruck ]]"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr "variables - Namen und Bedeutung einiger Shell Variablen"
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | Verzeichnis]"
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [Optionsname ...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] Format [Argumente]"
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
@@ -2199,7 +2213,7 @@ msgstr ""
 "Wortliste]  [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S "
 "Suffix] [Name ...]"
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
@@ -2208,17 +2222,23 @@ msgstr ""
 "Wortliste]  [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S "
 "Suffix] [Wort]"
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "compopt [-o|+o Option] [Name ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2253,7 +2273,7 @@ msgstr ""
 "    Rückgabewert:\n"
 "    Meldet Erfolg, außer wenn NAME nicht existiert."
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2269,7 +2289,7 @@ msgstr ""
 "    \n"
 "    Gibt immer Erfolg zurück, wenn der Name existiert."
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2308,7 +2328,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2327,7 +2347,7 @@ msgstr ""
 "    Rückgabewert:\n"
 "    Der Rückgabewert ist 0, es sei den N ist größer oder gleich 1."
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2347,7 +2367,7 @@ msgstr ""
 "    Rückgabewert:\n"
 "    Der Rückgabewert ist 0, außer wenn N größer oder gleich 1 ist."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2361,7 +2381,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2377,7 +2397,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2410,7 +2430,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2442,7 +2462,7 @@ msgstr ""
 "    Verzeichnis nicht gelesen werden kann."
 
 # colon
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2458,7 +2478,7 @@ msgstr ""
 "    Rückgabewert:\n"
 "    Das Kommando ist immer erfolgreich."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2466,7 +2486,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2474,7 +2494,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2493,7 +2513,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2529,7 +2549,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2539,7 +2559,7 @@ msgstr ""
 "\n"
 "    Veraltet.  Siehe `help declare'."
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2568,7 +2588,7 @@ msgstr ""
 "    Liefert \"Erfolg\" außer bei einer ungültigen Option, einem Fehler oder\n"
 "    die Shell führt keine Funktion aus."
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2599,7 +2619,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2612,7 +2632,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2639,7 +2659,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2651,7 +2671,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2692,7 +2712,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2716,7 +2736,7 @@ msgid ""
 msgstr ""
 
 # exit
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2729,7 +2749,7 @@ msgstr ""
 "angegeben ist,\n"
 "    wird der Rückgabewert des letzten ausgeführten Kommandos übernommen."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2738,7 +2758,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2768,7 +2788,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2780,7 +2800,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2794,7 +2814,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2818,7 +2838,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2840,7 +2860,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2874,7 +2894,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2898,7 +2918,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2915,7 +2935,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2937,7 +2957,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2982,7 +3002,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3026,7 +3046,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3038,7 +3058,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3120,7 +3140,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3140,7 +3160,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3159,7 +3179,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3179,7 +3199,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3190,7 +3210,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3204,7 +3224,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3218,7 +3238,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3295,7 +3315,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3303,7 +3323,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3315,7 +3335,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3351,7 +3371,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3381,7 +3401,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3425,7 +3445,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3443,7 +3463,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3460,7 +3480,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3474,7 +3494,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3487,7 +3507,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3504,7 +3524,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3524,7 +3544,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3540,7 +3560,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3551,7 +3571,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3572,7 +3592,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3583,7 +3603,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3594,7 +3614,20 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3608,7 +3641,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3619,7 +3652,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3633,7 +3666,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3644,7 +3677,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3672,7 +3705,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3726,7 +3759,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3757,7 +3790,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3784,7 +3817,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3813,7 +3846,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3834,7 +3867,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3864,7 +3897,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3886,7 +3919,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3899,7 +3932,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3928,9 +3961,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3954,7 +3987,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3964,6 +3999,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid "Missing `}'"
 #~ msgstr "Fehlende `}'."
 
index 17bb207c16c2a8ea8711c420a13814f8b5d56ddc..e4dc9596b1c1b24577202e66929b954c44d12ca5 100644 (file)
Binary files a/po/en@boldquot.gmo and b/po/en@boldquot.gmo differ
index 33ec483a2a708b64b04ee3349e31582708fdd0f9..1bbd427823ca3f019986e75ec64990e2e3ae0d4f 100644 (file)
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU bash 4.0-rc1\n"
+"Project-Id-Version: GNU bash 4.0-release\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
-"PO-Revision-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
+"PO-Revision-Date: 2009-02-19 14:53-0500\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
@@ -65,7 +65,7 @@ msgstr "%s: cannot assign to non-numeric index"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: must use subscript when assigning associative array"
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: cannot create: %s"
@@ -272,12 +272,22 @@ msgstr "%s: not a shell builtin"
 msgid "write error: %s"
 msgstr "write error: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr "error setting terminal attributes: %s"
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr "error getting terminal attributes: %s"
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: error retrieving current directory: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: ambiguous job spec"
@@ -313,7 +323,7 @@ msgstr "can only be used in a function"
 msgid "cannot use `-f' to make functions"
 msgstr "cannot use ‘\e[1m-f\e[0m’ to make functions"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: readonly function"
@@ -352,7 +362,7 @@ msgstr "%s: not dynamically loaded"
 msgid "%s: cannot delete: %s"
 msgstr "%s: cannot delete: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -368,7 +378,7 @@ msgstr "%s: not a regular file"
 msgid "%s: file is too large"
 msgstr "%s: file is too large"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: cannot execute binary file"
@@ -519,36 +529,36 @@ msgstr "Unknown error"
 msgid "expression expected"
 msgstr "expression expected"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: invalid file descriptor specification"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: invalid file descriptor: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: invalid line count"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: invalid array origin"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: invalid callback quantum"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr "empty array variable name"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr "array variable support required"
 
@@ -899,31 +909,31 @@ msgstr "\atimed out waiting for input: auto-logout\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "cannot redirect standard input from /dev/null: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: ‘\e[1m%c\e[0m’: invalid format character"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 msgid "pipe error"
 msgstr "pipe error"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restricted: cannot specify ‘\e[1m/\e[0m’ in command names"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: command not found"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: bad interpreter"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "cannot duplicate fd %d to fd %d"
@@ -1017,140 +1027,140 @@ msgstr "save_bash_input: buffer already exists for new fd %d"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "forked pid %d appears in running job %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "deleting stopped job %d with process group %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: process %5ld (%s) in the_pipeline"
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) marked as still alive"
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: no such pid"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Done"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Stopped"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stopped(%s)"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Running"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Done(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Exit %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Unknown status"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dumped) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "child setpgid (%ld to %ld)"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld is not a child of this shell"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: No record of process %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: job %d is stopped"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: job has terminated"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: job %d already in background"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: line %d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dumped)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd now: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp failed"
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: line discipline"
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "cannot set terminal process group (%d)"
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "no job control in this shell"
 
@@ -1379,7 +1389,7 @@ msgstr "Use “\e[1m%s\e[0m” to leave the shell.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "unexpected EOF while looking for matching ‘\e[1m)\e[0m’"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: function ‘\e[1m%s\e[0m’ not found"
@@ -1389,12 +1399,12 @@ msgstr "completion: function ‘\e[1m%s\e[0m’ not found"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: bad connector ‘\e[1m%d\e[0m’"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: ‘\e[1m%c\e[0m’: invalid format character"
@@ -1736,12 +1746,12 @@ msgstr "%s: bad substitution"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: cannot assign in this way"
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "bad substitution: no closing “\e[1m`\e[0m” in %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "no match: %s"
@@ -2171,50 +2181,54 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until COMMANDS; do COMMANDS; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr "coproc [NAME] command [redirections]"
+
+#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function name { COMMANDS ; } or name () { COMMANDS ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 msgid "{ COMMANDS ; }"
 msgstr "{ COMMANDS ; }"
 
-#: builtins.c:202
+#: builtins.c:204
 msgid "job_spec [&]"
 msgstr "job_spec [&]"
 
-#: builtins.c:204
+#: builtins.c:206
 msgid "(( expression ))"
 msgstr "(( expression ))"
 
-#: builtins.c:206
+#: builtins.c:208
 msgid "[[ expression ]]"
 msgstr "[[ expression ]]"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr "variables - Names and meanings of some shell variables"
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | dir]"
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [optname ...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] format [arguments]"
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
@@ -2224,7 +2238,7 @@ msgstr ""
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
@@ -2232,11 +2246,11 @@ msgstr ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "compopt [-o|+o option] [name ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
@@ -2244,7 +2258,15 @@ msgstr ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2281,7 +2303,7 @@ msgstr ""
 "been\n"
 "    defined."
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2297,7 +2319,7 @@ msgstr ""
 "    \n"
 "    Return success unless a NAME is not an existing alias."
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2371,7 +2393,7 @@ msgstr ""
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2389,7 +2411,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2407,7 +2429,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2431,7 +2453,7 @@ msgstr ""
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
 "    not a shell builtin.."
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2460,7 +2482,7 @@ msgstr ""
 "    Returns 0 unless the shell is not executing a shell function or EXPR\n"
 "    is invalid."
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2523,7 +2545,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed; non-zero otherwise."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2551,7 +2573,7 @@ msgstr ""
 "    Returns 0 unless an invalid option is given or the current directory\n"
 "    cannot be read."
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2567,7 +2589,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2579,7 +2601,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2591,7 +2613,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always fails."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2626,7 +2648,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2695,7 +2717,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2705,7 +2727,7 @@ msgstr ""
 "    \n"
 "    Obsolete.  See ‘\e[1mhelp declare\e[0m’."
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2731,7 +2753,7 @@ msgstr ""
 "    Returns success unless an invalid option is supplied, an error occurs,\n"
 "    or the shell is not executing a function."
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2789,7 +2811,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2811,7 +2833,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2861,7 +2883,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2881,7 +2903,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns exit status of command or success if command is null."
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2962,7 +2984,7 @@ msgstr ""
 "    Returns success if an option is found; fails if the end of options is\n"
 "    encountered or an error occurs."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3004,7 +3026,7 @@ msgstr ""
 "    Returns success unless COMMAND is not found or a redirection error "
 "occurs."
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3016,7 +3038,7 @@ msgstr ""
 "    Exits the shell with a status of N.  If N is omitted, the exit status\n"
 "    is that of the last command executed."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3030,7 +3052,7 @@ msgstr ""
 "executed\n"
 "    in a login shell."
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3088,7 +3110,7 @@ msgstr ""
 "    Returns success or status of executed command; non-zero if an error "
 "occurs."
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3108,7 +3130,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Status of command placed in foreground, or failure if an error occurs."
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3132,7 +3154,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3176,7 +3198,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not found or an invalid option is given."
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3216,7 +3238,7 @@ msgstr ""
 "    Returns success unless PATTERN is not found or an invalid option is "
 "given."
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3281,7 +3303,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3325,7 +3347,7 @@ msgstr ""
 "    Returns success unless an invalid option is given or an error occurs.\n"
 "    If -x is used, returns the exit status of COMMAND."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3355,7 +3377,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option or JOBSPEC is given."
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3395,7 +3417,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3481,7 +3503,7 @@ msgstr ""
 "    Exit Status:\n"
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3565,7 +3587,7 @@ msgstr ""
 "out,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3585,7 +3607,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns N, or failure if the shell is not executing a function or script."
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3745,7 +3767,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3781,7 +3803,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a NAME is read-only."
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3815,7 +3837,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3851,7 +3873,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3869,7 +3891,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless N is negative or greater than $#."
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3893,7 +3915,7 @@ msgstr ""
 "    Returns the status of the last command executed in FILENAME; fails if\n"
 "    FILENAME cannot be read."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3917,7 +3939,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4067,7 +4089,7 @@ msgstr ""
 "    Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
 "    false or an invalid argument is given."
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4080,7 +4102,7 @@ msgstr ""
 "must\n"
 "    be a literal ‘\e[1m]\e[0m’, to match the opening ‘\e[1m[\e[0m’."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4100,7 +4122,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4169,7 +4191,7 @@ msgstr ""
 "    Returns success unless a SIGSPEC is invalid or an invalid option is "
 "given."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4227,7 +4249,7 @@ msgstr ""
 "    Returns success if all of the NAMEs are found; fails if any are not "
 "found."
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4312,7 +4334,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4344,7 +4366,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless MODE is invalid or an invalid option is given."
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -4374,7 +4396,7 @@ msgstr ""
 "is\n"
 "    given."
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4398,7 +4420,7 @@ msgstr ""
 "is\n"
 "    given."
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4422,7 +4444,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4452,7 +4474,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4489,7 +4511,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4517,7 +4539,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The return status is the return status of PIPELINE."
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4535,7 +4557,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4573,7 +4595,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4591,7 +4613,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4609,7 +4631,29 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is “\e[1mCOPROC\e[0m”.\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4633,7 +4677,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is readonly."
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4651,7 +4695,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4676,7 +4720,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the resumed job."
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4694,7 +4738,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4748,7 +4792,7 @@ msgstr ""
 "    Exit Status:\n"
 "    0 or 1 depending on value of EXPRESSION."
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4852,7 +4896,7 @@ msgstr ""
 "    HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
 "    \t\tcommands should be saved on the history list.\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4910,7 +4954,7 @@ msgstr ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4962,7 +5006,7 @@ msgstr ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5017,7 +5061,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5055,7 +5099,7 @@ msgstr ""
 "    Returns success if OPTNAME is enabled; fails if an invalid option is\n"
 "    given or OPTNAME is disabled."
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5111,7 +5155,7 @@ msgstr ""
 "assignment\n"
 "    error occurs."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5151,7 +5195,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5173,7 +5217,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -5228,9 +5272,9 @@ msgstr ""
 "    Returns success unless an invalid option is supplied or NAME does not\n"
 "    have a completion specification defined."
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -5254,7 +5298,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -5263,7 +5309,7 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -5287,7 +5333,9 @@ msgstr ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -5295,3 +5343,13 @@ msgstr ""
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or ARRAY is readonly."
+
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for ‘\e[1mmapfile\e[0m’."
index 0d9f13d638abf172ef29bc1d3877a036c04dda9c..64e513ecc80c3eba3a3b2bc38c6d15a1f65d943f 100644 (file)
Binary files a/po/en@quot.gmo and b/po/en@quot.gmo differ
index 3ff764e110643e388872f3e88229de01dde42d19..7da25b2cae7a0fb6bba62445ebe6da3306ce4c7c 100644 (file)
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU bash 4.0-rc1\n"
+"Project-Id-Version: GNU bash 4.0-release\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
-"PO-Revision-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
+"PO-Revision-Date: 2009-02-19 14:53-0500\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
@@ -62,7 +62,7 @@ msgstr "%s: cannot assign to non-numeric index"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: must use subscript when assigning associative array"
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: cannot create: %s"
@@ -269,12 +269,22 @@ msgstr "%s: not a shell builtin"
 msgid "write error: %s"
 msgstr "write error: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr "error setting terminal attributes: %s"
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr "error getting terminal attributes: %s"
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: error retrieving current directory: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: ambiguous job spec"
@@ -310,7 +320,7 @@ msgstr "can only be used in a function"
 msgid "cannot use `-f' to make functions"
 msgstr "cannot use ‘-f’ to make functions"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: readonly function"
@@ -349,7 +359,7 @@ msgstr "%s: not dynamically loaded"
 msgid "%s: cannot delete: %s"
 msgstr "%s: cannot delete: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -365,7 +375,7 @@ msgstr "%s: not a regular file"
 msgid "%s: file is too large"
 msgstr "%s: file is too large"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: cannot execute binary file"
@@ -513,36 +523,36 @@ msgstr "Unknown error"
 msgid "expression expected"
 msgstr "expression expected"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: invalid file descriptor specification"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: invalid file descriptor: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: invalid line count"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: invalid array origin"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: invalid callback quantum"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr "empty array variable name"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr "array variable support required"
 
@@ -890,31 +900,31 @@ msgstr "\atimed out waiting for input: auto-logout\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "cannot redirect standard input from /dev/null: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: ‘%c’: invalid format character"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 msgid "pipe error"
 msgstr "pipe error"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restricted: cannot specify ‘/’ in command names"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: command not found"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: bad interpreter"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "cannot duplicate fd %d to fd %d"
@@ -1008,140 +1018,140 @@ msgstr "save_bash_input: buffer already exists for new fd %d"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "forked pid %d appears in running job %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "deleting stopped job %d with process group %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: process %5ld (%s) in the_pipeline"
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) marked as still alive"
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: no such pid"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Done"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Stopped"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stopped(%s)"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Running"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Done(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Exit %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Unknown status"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dumped) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "child setpgid (%ld to %ld)"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld is not a child of this shell"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: No record of process %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: job %d is stopped"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: job has terminated"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: job %d already in background"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: line %d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dumped)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd now: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp failed"
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: line discipline"
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "cannot set terminal process group (%d)"
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "no job control in this shell"
 
@@ -1370,7 +1380,7 @@ msgstr "Use “%s” to leave the shell.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "unexpected EOF while looking for matching ‘)’"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: function ‘%s’ not found"
@@ -1380,12 +1390,12 @@ msgstr "completion: function ‘%s’ not found"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: bad connector ‘%d’"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: ‘%c’: invalid format character"
@@ -1724,12 +1734,12 @@ msgstr "%s: bad substitution"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: cannot assign in this way"
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "bad substitution: no closing “`” in %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "no match: %s"
@@ -2159,50 +2169,54 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until COMMANDS; do COMMANDS; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr "coproc [NAME] command [redirections]"
+
+#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function name { COMMANDS ; } or name () { COMMANDS ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 msgid "{ COMMANDS ; }"
 msgstr "{ COMMANDS ; }"
 
-#: builtins.c:202
+#: builtins.c:204
 msgid "job_spec [&]"
 msgstr "job_spec [&]"
 
-#: builtins.c:204
+#: builtins.c:206
 msgid "(( expression ))"
 msgstr "(( expression ))"
 
-#: builtins.c:206
+#: builtins.c:208
 msgid "[[ expression ]]"
 msgstr "[[ expression ]]"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr "variables - Names and meanings of some shell variables"
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | dir]"
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [optname ...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] format [arguments]"
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
@@ -2212,7 +2226,7 @@ msgstr ""
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
@@ -2220,11 +2234,11 @@ msgstr ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "compopt [-o|+o option] [name ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
@@ -2232,7 +2246,15 @@ msgstr ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2268,7 +2290,7 @@ msgstr ""
 "been\n"
 "    defined."
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2284,7 +2306,7 @@ msgstr ""
 "    \n"
 "    Return success unless a NAME is not an existing alias."
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2358,7 +2380,7 @@ msgstr ""
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2376,7 +2398,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2394,7 +2416,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2418,7 +2440,7 @@ msgstr ""
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
 "    not a shell builtin.."
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2446,7 +2468,7 @@ msgstr ""
 "    Returns 0 unless the shell is not executing a shell function or EXPR\n"
 "    is invalid."
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2508,7 +2530,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed; non-zero otherwise."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2536,7 +2558,7 @@ msgstr ""
 "    Returns 0 unless an invalid option is given or the current directory\n"
 "    cannot be read."
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2552,7 +2574,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2564,7 +2586,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2576,7 +2598,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always fails."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2610,7 +2632,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2678,7 +2700,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2688,7 +2710,7 @@ msgstr ""
 "    \n"
 "    Obsolete.  See ‘help declare’."
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2714,7 +2736,7 @@ msgstr ""
 "    Returns success unless an invalid option is supplied, an error occurs,\n"
 "    or the shell is not executing a function."
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2772,7 +2794,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2794,7 +2816,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2844,7 +2866,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2864,7 +2886,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns exit status of command or success if command is null."
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2942,7 +2964,7 @@ msgstr ""
 "    Returns success if an option is found; fails if the end of options is\n"
 "    encountered or an error occurs."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2984,7 +3006,7 @@ msgstr ""
 "    Returns success unless COMMAND is not found or a redirection error "
 "occurs."
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2996,7 +3018,7 @@ msgstr ""
 "    Exits the shell with a status of N.  If N is omitted, the exit status\n"
 "    is that of the last command executed."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3010,7 +3032,7 @@ msgstr ""
 "executed\n"
 "    in a login shell."
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3066,7 +3088,7 @@ msgstr ""
 "    Returns success or status of executed command; non-zero if an error "
 "occurs."
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3086,7 +3108,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Status of command placed in foreground, or failure if an error occurs."
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3110,7 +3132,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3154,7 +3176,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not found or an invalid option is given."
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3194,7 +3216,7 @@ msgstr ""
 "    Returns success unless PATTERN is not found or an invalid option is "
 "given."
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3258,7 +3280,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3302,7 +3324,7 @@ msgstr ""
 "    Returns success unless an invalid option is given or an error occurs.\n"
 "    If -x is used, returns the exit status of COMMAND."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3332,7 +3354,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option or JOBSPEC is given."
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3372,7 +3394,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3458,7 +3480,7 @@ msgstr ""
 "    Exit Status:\n"
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3542,7 +3564,7 @@ msgstr ""
 "out,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3562,7 +3584,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns N, or failure if the shell is not executing a function or script."
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3722,7 +3744,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3758,7 +3780,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a NAME is read-only."
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3792,7 +3814,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3828,7 +3850,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3846,7 +3868,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless N is negative or greater than $#."
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3870,7 +3892,7 @@ msgstr ""
 "    Returns the status of the last command executed in FILENAME; fails if\n"
 "    FILENAME cannot be read."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3894,7 +3916,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4044,7 +4066,7 @@ msgstr ""
 "    Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
 "    false or an invalid argument is given."
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4056,7 +4078,7 @@ msgstr ""
 "    This is a synonym for the “test” builtin, but the last argument must\n"
 "    be a literal ‘]’, to match the opening ‘[’."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4076,7 +4098,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4144,7 +4166,7 @@ msgstr ""
 "    Returns success unless a SIGSPEC is invalid or an invalid option is "
 "given."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4200,7 +4222,7 @@ msgstr ""
 "    Returns success if all of the NAMEs are found; fails if any are not "
 "found."
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4284,7 +4306,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4316,7 +4338,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless MODE is invalid or an invalid option is given."
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -4346,7 +4368,7 @@ msgstr ""
 "is\n"
 "    given."
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4370,7 +4392,7 @@ msgstr ""
 "is\n"
 "    given."
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4392,7 +4414,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4422,7 +4444,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4458,7 +4480,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4486,7 +4508,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The return status is the return status of PIPELINE."
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4504,7 +4526,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4542,7 +4564,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4560,7 +4582,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4578,7 +4600,29 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is “COPROC”.\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4602,7 +4646,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is readonly."
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4620,7 +4664,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4644,7 +4688,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the resumed job."
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4662,7 +4706,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4714,7 +4758,7 @@ msgstr ""
 "    Exit Status:\n"
 "    0 or 1 depending on value of EXPRESSION."
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4818,7 +4862,7 @@ msgstr ""
 "    HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
 "    \t\tcommands should be saved on the history list.\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4876,7 +4920,7 @@ msgstr ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4926,7 +4970,7 @@ msgstr ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4980,7 +5024,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5018,7 +5062,7 @@ msgstr ""
 "    Returns success if OPTNAME is enabled; fails if an invalid option is\n"
 "    given or OPTNAME is disabled."
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5074,7 +5118,7 @@ msgstr ""
 "assignment\n"
 "    error occurs."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5114,7 +5158,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5136,7 +5180,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -5190,9 +5234,9 @@ msgstr ""
 "    Returns success unless an invalid option is supplied or NAME does not\n"
 "    have a completion specification defined."
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -5216,7 +5260,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -5225,7 +5271,7 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -5249,7 +5295,9 @@ msgstr ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -5257,3 +5305,13 @@ msgstr ""
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or ARRAY is readonly."
+
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for ‘mapfile’."
index 525d3624fefcfec75fe17b3ad45148867f3599dc..1761a6ec8d8115b79cd52e1f2d5f3f0d446f8188 100644 (file)
Binary files a/po/eo.gmo and b/po/eo.gmo differ
index 65476c3bbb320688a6ac485a8e2333591968df91..9e898a983eae2825645f57c24d54a0454412c869 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU bash 3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2006-11-24 09:19+0600\n"
 "Last-Translator: Sergio Pokrovskij <sergio.pokrovskij@gmail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -38,7 +38,7 @@ msgstr "%s: Valorizato havu nombran indicon"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: Ne prosperis krei: %s"
@@ -246,12 +246,22 @@ msgstr "„%s‟ ne estas primitiva komando ŝela"
 msgid "write error: %s"
 msgstr "Eraro ĉe skribo: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: Eraro ĉe provo determini la kurantan dosierujon: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: Ambigua laborindiko"
@@ -287,7 +297,7 @@ msgstr "Uzeblas nur ene de funkcio"
 msgid "cannot use `-f' to make functions"
 msgstr "„-f‟ ne estas uzebla por fari funkciojn"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: Nurlega funkcio"
@@ -326,7 +336,7 @@ msgstr "%s: Ne ŝargita dinamike"
 msgid "%s: cannot delete: %s"
 msgstr "%s: Ne eblas forigi: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -342,7 +352,7 @@ msgstr "%s: Ne ordinara dosiero"
 msgid "%s: file is too large"
 msgstr "%s: Tro granda dosiero"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: Neplenumebla duuma dosiero"
@@ -492,37 +502,37 @@ msgstr "Nekonata eraro"
 msgid "expression expected"
 msgstr "Mankas esprimo"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: Misa indiko de dosiernumero"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "„%d‟: Misa dosiernumero: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s: Misa opcio"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: Misa opcio"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: Misa nomo de ago"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: Ne tabela variablo"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -875,32 +885,32 @@ msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "Fiaskis provo nomumi la disponaĵon «/dev/null» ĉefenigujo: %s"
 
 # XXX: internal error:
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: „%c‟: Misa formatsigno"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "Eraro ĉe skribo: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: Malpermesitas uzi „/‟ en komandonomoj"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: Komando ne trovita"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: Misa interpretilo"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "Ne eblas kunnomumi al dosiernumero %d la dosiernumeron %d"
@@ -994,140 +1004,140 @@ msgstr "save_bash_input: La nova dosiernumero (fd %d) jam havas bufron"
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "Forke farita proceznumero %d aperas en rulata laboro %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "Haltigita laboro %d kun procezgrupo %ld estas forigata"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: Ne estas tia proceznumero (%ld)!"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: La procezo %ld ne estas ido de ĉi tiu ŝelo"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Malestas informoj pri procezo %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: La laboro %d estas haltigita"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: La laboro finiĝis"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: La laboro %d jam estas fona"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: Averto: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "Ĉi tiu ŝelo ne disponigas laborregadon"
 
@@ -1376,7 +1386,7 @@ msgid "unexpected EOF while looking for matching `)'"
 msgstr "Neatendita dosierfino dum serĉo de responda „)‟"
 
 # XXX: internal_error
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "Kompletigo: Funkcio „%s‟ ne trovita"
@@ -1387,13 +1397,13 @@ msgstr "Kompletigo: Funkcio „%s‟ ne trovita"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: Misa stir-operacio „%d‟"
 
 # XXX: programming_error
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: „%c‟: Misa formatsigno"
@@ -1741,12 +1751,12 @@ msgstr "%s: Misa anstataŭigo"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: ĉi tiel ne valorizebla"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "Misa anstataŭigo: Mankas ferma „%s‟ en %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "Nenio kongrua: %s"
@@ -2183,75 +2193,85 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr ""
 
 #: builtins.c:198
-msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgid "coproc [NAME] command [redirections]"
 msgstr ""
 
 #: builtins.c:200
-msgid "{ COMMANDS ; }"
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:202
-msgid "job_spec [&]"
+msgid "{ COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:204
+msgid "job_spec [&]"
+msgstr ""
+
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "Mankas esprimo"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "Mankas esprimo"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr ""
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr ""
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr ""
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 #, fuzzy
 msgid ""
 "Define or display aliases.\n"
@@ -2279,7 +2299,7 @@ msgstr ""
 "    „alias‟ liveras „true‟ krom se aperas NOMO ne difinita alinome."
 
 # unalias [-a] name [name ...]
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2292,7 +2312,7 @@ msgstr ""
 "Forigu la nomojn name ... el la listo de difinitaj alinomoj.\n"
 "    Se enestas la opcio „-a‟, ĉiujn alinomojn forigu."
 
-#: builtins.c:285
+#: builtins.c:289
 #, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
@@ -2357,7 +2377,7 @@ msgstr ""
 "    -s                Listigu makroajn klavsekvencojn kaj ilian valoron\n"
 "                      en formo reuzebla por enigo."
 
-#: builtins.c:322
+#: builtins.c:326
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2371,7 +2391,7 @@ msgstr ""
 "Pasu al la sekva iteraciero de  FOR, WHILE aŭ UNTIL. Se N estas\n"
 "donita, pasu je la nivelo de la Na inganta iteraciordono."
 
-#: builtins.c:334
+#: builtins.c:338
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2385,7 +2405,7 @@ msgstr ""
 "Pasu al la sekva iteraciero de  FOR, WHILE aŭ UNTIL. Se N estas\n"
 "donita, pasu je la nivelo de la Na inganta iteraciordono."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2399,7 +2419,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2424,7 +2444,7 @@ msgstr ""
 "    La valoro de EXPR indikas, kiom da vokkadroj retroiri disde la\n"
 "    kuranta; la pinta kadro havas la numeron 0."
 
-#: builtins.c:379
+#: builtins.c:383
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2470,7 +2490,7 @@ msgstr ""
 "    anstataŭ iri laŭ simbolaj ligiloj; la opcio  -L  igas sekvi\n"
 "    simbolajn ligilojn."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2486,7 +2506,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2497,7 +2517,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Senefika: La komando nenion faras. Elirstato 0 estas liverata."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2505,7 +2525,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 #, fuzzy
 msgid ""
 "Return an unsuccessful result.\n"
@@ -2514,7 +2534,7 @@ msgid ""
 "    Always fails."
 msgstr "Liveru malsukcesan rezulton."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2534,7 +2554,7 @@ msgid ""
 msgstr ""
 
 # declare [-afFirtx] [-p] [name[=value] ...]
-#: builtins.c:472
+#: builtins.c:476
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2595,14 +2615,14 @@ msgstr ""
 "    Uzite en funkcio, „declare‟ faras la nomojn name lokaj, samkiel la\n"
 "    komando „local‟."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2617,7 +2637,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 #, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
@@ -2666,7 +2686,7 @@ msgstr ""
 "    La opcio  -E  abolas la supre indikitan signifon de ĉi tiuj specialaj\n"
 "    signoj."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2679,7 +2699,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2706,7 +2726,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2719,7 +2739,7 @@ msgid ""
 msgstr ""
 
 # getopts optstring name [arg]
-#: builtins.c:622
+#: builtins.c:626
 #, fuzzy
 msgid ""
 "Parse option arguments.\n"
@@ -2792,7 +2812,7 @@ msgstr ""
 "    Normale „getopts‟ analizas la poziciajn parametrojn ($0 - $9), sed\n"
 "    se estas pli da argumentoj, „getopts‟ anstataŭe analizas ilin."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2815,7 +2835,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2826,7 +2846,7 @@ msgstr ""
 "Forlasu la ŝelon kun elirstato N.  Se  N  mankas, la elirstato estas\n"
 "    tiu de la plej ĵuse plenumita komando."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2837,7 +2857,7 @@ msgstr ""
 
 # ZZZ: fc [-e ename] [-nlr] [first] [last] or
 #      fc -s [pat=rep] [cmd]
-#: builtins.c:704
+#: builtins.c:708
 #, fuzzy
 msgid ""
 "Display or execute commands from the history list.\n"
@@ -2886,7 +2906,7 @@ msgstr ""
 "    «r» replenumigas la ĵusan komandon."
 
 # fg [job_spec]
-#: builtins.c:734
+#: builtins.c:738
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -2902,7 +2922,7 @@ msgstr ""
 "    malestas, apliku la ŝelan koncepton pri la kuranta laboro."
 
 # bg [job_spec]
-#: builtins.c:749
+#: builtins.c:753
 #, fuzzy
 msgid ""
 "Move jobs to the background.\n"
@@ -2920,7 +2940,7 @@ msgstr ""
 "    kun „&‟.  Se nenia laboro estas indikita, apliku la ŝelan koncepton\n"
 "    pri la kuranta laboro."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2944,7 +2964,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2969,7 +2989,7 @@ msgstr ""
 # ZZZ history [-c] [-d offset] [n] or
 #     history -awrn [filename] or
 #     history -ps arg [arg...]
-#: builtins.c:812
+#: builtins.c:816
 #, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
@@ -3032,7 +3052,7 @@ msgstr ""
 
 # ZZZ jobs [-lnprs] [jobspec ...] or
 #     jobs -x command [args]
-#: builtins.c:848
+#: builtins.c:852
 #, fuzzy
 msgid ""
 "Display status of jobs.\n"
@@ -3070,7 +3090,7 @@ msgstr ""
 "    laborindikojn aperantajn en la argumentoj  args  je la proceznumero\n"
 "    de la ĉefprocezo de la grupo."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3089,7 +3109,7 @@ msgstr ""
 
 # ZZZ: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or
 #      kill -l [sigspec]
-#: builtins.c:894
+#: builtins.c:898
 #, fuzzy
 msgid ""
 "Send a signal to a job.\n"
@@ -3125,7 +3145,7 @@ msgstr ""
 "    kroman procezon por ĉesigi iun alian."
 
 # let arg [arg ...]
-#: builtins.c:917
+#: builtins.c:921
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3209,7 +3229,7 @@ msgstr ""
 
 # read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars]
 #      [-d delim] [name ...]
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3282,7 +3302,7 @@ msgstr ""
 "    renkontiĝas dosierfino, atendolimo estas atingita, aŭ nevalida\n"
 "    dosiernumero estas indikita ĉe -u."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3295,7 +3315,7 @@ msgid ""
 msgstr ""
 
 # set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
-#: builtins.c:1015
+#: builtins.c:1019
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3449,7 +3469,7 @@ msgstr ""
 "    poziciaj, kaj per ili estas valorizataj, respektive, $1, $2 ... $n.\n"
 "    Se nenia  arg  estas donita, ĉiuj ŝelvariabloj estas eligataj."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3469,7 +3489,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3488,7 +3508,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3508,7 +3528,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3520,7 +3540,7 @@ msgid ""
 msgstr ""
 
 # source filename [arguments]
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 #, fuzzy
 msgid ""
 "Execute commands from a file in the current shell.\n"
@@ -3539,7 +3559,7 @@ msgstr ""
 "    la dosierujon de  filename.  La eventualaj argumentoj\n"
 "    arguments iĝas la poziciaj parametroj por plenumo de filename."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3554,7 +3574,7 @@ msgid ""
 msgstr ""
 
 # test [expr]
-#: builtins.c:1216
+#: builtins.c:1220
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3692,7 +3712,7 @@ msgstr ""
 "    plia aŭ egala al arg2."
 
 # [ arg... ]
-#: builtins.c:1292
+#: builtins.c:1296
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3703,7 +3723,7 @@ msgstr ""
 "Ĉi tiu estas sinonimo de la primitivo „test‟; tamen la lasta\n"
 "    argumento devas esti „]‟ fermanta la esprimon komencitan per „[‟."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3717,7 +3737,7 @@ msgstr ""
 
 # ZZZ: trap [arg] [signal_spec ...] or
 #      trap -l
-#: builtins.c:1313
+#: builtins.c:1317
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -3772,7 +3792,7 @@ msgstr ""
 "    Signalon  signalindiko  eblas sendi al la ŝelo per la komando\n"
 "    «kill -signalindiko $$»."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3803,7 +3823,7 @@ msgid ""
 msgstr ""
 
 # ulimit [-SHacdflmnpstuv] [limit]
-#: builtins.c:1376
+#: builtins.c:1380
 #, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
@@ -3880,7 +3900,7 @@ msgstr ""
 "    por -p kiu estas en obloj de 512 bajtoj; kaj por -u, kiu estas\n"
 "    sendimensia nombro de procezoj."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3898,7 +3918,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3916,7 +3936,7 @@ msgid ""
 msgstr ""
 
 # wait [n]
-#: builtins.c:1459
+#: builtins.c:1463
 #, fuzzy
 msgid ""
 "Wait for process completion and return exit status.\n"
@@ -3937,7 +3957,7 @@ msgstr ""
 "    dukto de la laboro."
 
 # for NAME [in WORDS ... ;] do COMMANDS; done
-#: builtins.c:1474
+#: builtins.c:1478
 #, fuzzy
 msgid ""
 "Execute commands for each member in a list.\n"
@@ -3957,7 +3977,7 @@ msgstr ""
 "    estas plenumataj."
 
 # for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done
-#: builtins.c:1488
+#: builtins.c:1492
 #, fuzzy
 msgid ""
 "Arithmetic for loop.\n"
@@ -3984,7 +4004,7 @@ msgstr ""
 "    ili malestas, 1 estas uzata anstataŭe."
 
 # select NAME [in WORDS ... ;] do COMMANDS; done
-#: builtins.c:1506
+#: builtins.c:1510
 #, fuzzy
 msgid ""
 "Select words from a list and execute commands.\n"
@@ -4018,7 +4038,7 @@ msgstr ""
 "    eliro (break)."
 
 # time [-p] PIPELINE
-#: builtins.c:1527
+#: builtins.c:1531
 #, fuzzy
 msgid ""
 "Report time consumed by pipeline's execution.\n"
@@ -4041,7 +4061,7 @@ msgstr ""
 "    La variablo TIMEFORMAT difinas la formaton de la eligaĵo."
 
 # case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac
-#: builtins.c:1544
+#: builtins.c:1548
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -4057,7 +4077,7 @@ msgstr ""
 
 # if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]...
 # [ else COMMANDS; ] fi
-#: builtins.c:1556
+#: builtins.c:1560
 #, fuzzy
 msgid ""
 "Execute commands based on conditional.\n"
@@ -4087,7 +4107,7 @@ msgstr ""
 "    komando plenumita, aŭ 0 se neniu el la kondiĉoj estis vera."
 
 # while COMMANDS; do COMMANDS; done
-#: builtins.c:1573
+#: builtins.c:1577
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -4102,7 +4122,7 @@ msgstr ""
 "    COMMANDS de la „while‟-parto liveras elirstaton 0."
 
 # until COMMANDS; do COMMANDS; done
-#: builtins.c:1585
+#: builtins.c:1589
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -4116,7 +4136,20 @@ msgstr ""
 "Ripete malvolvu kaj plenumu la komandojn dum la lasta el la komandoj\n"
 "    COMMANDS de la „until‟-parto liveras elirstaton alian ol 0."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4131,7 +4164,7 @@ msgid ""
 msgstr ""
 
 # grouping_braces: { COMMANDS ; }
-#: builtins.c:1611
+#: builtins.c:1629
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -4145,7 +4178,7 @@ msgstr ""
 "Plenumu la komandojn grupe.  Tiel eblas apliki alidirektadon al\n"
 "    tuta grupo da komandoj."
 
-#: builtins.c:1623
+#: builtins.c:1641
 #, fuzzy
 msgid ""
 "Resume job in foreground.\n"
@@ -4164,7 +4197,7 @@ msgstr ""
 "    labornumero.  Postmetita „&‟ sendas la laboron en la fonon,\n"
 "    samkiel se la komando „bg‟ estus aplikita al laborindiko."
 
-#: builtins.c:1638
+#: builtins.c:1656
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expression.\n"
@@ -4179,7 +4212,7 @@ msgstr ""
 "    Ekvivalenta al «let EXPRESSION»."
 
 # [[ expression ]]
-#: builtins.c:1650
+#: builtins.c:1668
 #, fuzzy
 msgid ""
 "Execute conditional command.\n"
@@ -4222,7 +4255,7 @@ msgstr ""
 "    sufiĉas por determini la rezulton."
 
 # help var
-#: builtins.c:1676
+#: builtins.c:1694
 #, fuzzy
 msgid ""
 "Common shell variable names and usage.\n"
@@ -4327,7 +4360,7 @@ msgstr ""
 "\t\tkiujn komandojn konservi en la historilisto.\n"
 
 # pushd [dir | +N | -N] [-n]
-#: builtins.c:1733
+#: builtins.c:1751
 #, fuzzy
 msgid ""
 "Add directories to stack.\n"
@@ -4379,7 +4412,7 @@ msgstr ""
 "    Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟."
 
 # popd [+N | -N] [-n]
-#: builtins.c:1767
+#: builtins.c:1785
 #, fuzzy
 msgid ""
 "Remove directories from stack.\n"
@@ -4423,7 +4456,7 @@ msgstr ""
 "    Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟."
 
 # dirs [-clpv] [+N] [-N]
-#: builtins.c:1797
+#: builtins.c:1815
 #, fuzzy
 msgid ""
 "Display directory stack.\n"
@@ -4470,7 +4503,7 @@ msgstr ""
 "    -N\teligu la Nan eron nombrante de dekstre en la listo eligebla\n"
 "\tper „dirs‟ sen opcioj, numerante ekde 0."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -4492,7 +4525,7 @@ msgid ""
 msgstr ""
 
 # printf [-v var] format [arguments]
-#: builtins.c:1847
+#: builtins.c:1865
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -4533,7 +4566,7 @@ msgstr ""
 "    Se ĉeestas la opcio „-v‟, la eligo trafas en ties variablon var kaj\n"
 "    ne en la ĉefeligujon."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4558,7 +4591,7 @@ msgstr ""
 # compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat]
 #      [-W wordlist] [-P prefix] [-S suffix] [-X filterpat]
 #      [-F function] [-C command] [word]
-#: builtins.c:1897
+#: builtins.c:1915
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -4575,7 +4608,7 @@ msgstr ""
 "    por uzo en ŝelfunkcio generanta eblajn kompletigojn.\n"
 "    Se eventuala argumento word estas donita, generu ĝiajn kongruaĵojn."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4604,9 +4637,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -4630,7 +4663,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -4640,6 +4675,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid " "
 #~ msgstr " "
 
index 1696e1825f671fa91dc02dae612c7a28965cd825..a9c9aee33a0da5e22614eec7f717ea58d9b79ddf 100644 (file)
Binary files a/po/es.gmo and b/po/es.gmo differ
index e0d65c47f255367d9acac4db62cf2e147257bed4..63b5f25176e1f977ea44614aa59d91c5dbe58a75 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU bash 3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2006-10-31 23:36-0600\n"
 "Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -38,7 +38,7 @@ msgstr "%s: no se puede asignar a un 
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: no se puede crear: %s"
@@ -248,12 +248,22 @@ msgstr "%s: no es una orden interna del shell"
 msgid "write error: %s"
 msgstr "error de escritura: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: error al obtener el directorio actual: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: especificación de trabajo ambigua"
@@ -291,7 +301,7 @@ msgstr "s
 msgid "cannot use `-f' to make functions"
 msgstr "no se puede usar `-f' para hacer funciones"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: función de sólo lectura"
@@ -330,7 +340,7 @@ msgstr "%s: no se carg
 msgid "%s: cannot delete: %s"
 msgstr "%s: no se puede borrar: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -348,7 +358,7 @@ msgstr "%s: el fichero es demasiado grande"
 
 # file=fichero. archive=archivo. Si no, es imposible traducir tar. sv
 # De acuerdo. Corregido en todo el fichero. cfuga
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: no se puede ejecutar el fichero binario"
@@ -500,37 +510,37 @@ msgstr "Error desconocido"
 msgid "expression expected"
 msgstr "se esperaba una expresión"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: especificación de descriptor de fichero inválida"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: descriptor de fichero inválido: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s: opción inválida"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: opción inválida"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: nombre de acción inválido"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: no es una variable de matriz"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -881,32 +891,32 @@ msgstr "\aha expirado mientras esperaba alguna entrada: auto-logout\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "no se puede redirigir la salida estándard de /dev/null: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': carácter de formato inválido"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "error de escritura: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restringido: no se puede especificar `/' en nombres de órdenes"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: no se encontró la orden"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: intérprete erróneo"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "no se puede duplicar el df %d al df %d"
@@ -1012,144 +1022,144 @@ msgstr ""
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "el pid `forked' %d aparece en el trabajo en ejecución %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "borrando el trabajo detenido %d con grupo de proceso %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
 # Cambiaría 'hay' por 'existe' em+
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: no existe tal pid"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "Señal Desconocida #%d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Hecho"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Detenido"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Detenido"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Ejecutando"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Hecho(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Salida %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Estado desconocido"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(`core' generado) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, fuzzy, c-format
 msgid "  (wd: %s)"
 msgstr "(dir ahora: %s)\n"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, fuzzy, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "error en la ejecución de setpgid (%d a %d) en el proceso hijo %d: %s\n"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld no es un proceso hijo de este shell"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: No hay un registro del proceso %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: el trabajo %d está detenido"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: el trabajo ha terminado"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: el trabajo %d ya está en segundo plano"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: aviso: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (`core' generado)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(dir ahora: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: falló getpgrp: %s"
 
-#: jobs.c:3618
+#: jobs.c:3623
 #, fuzzy
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs: disciplina de línea: %s"
 
-#: jobs.c:3628
+#: jobs.c:3633
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs: falló getpgrp: %s"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "no hay control de trabajos en este shell"
 
@@ -1392,7 +1402,7 @@ msgstr "Use \"%s\" para dejar el shell.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "EOF inesperado mientras se buscaba un `)' coincidente"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: no se encuentra la función `%s'"
@@ -1402,12 +1412,12 @@ msgstr "completion: no se encuentra la funci
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: COMPSPEC nulo"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: conector erróneo `%d'"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': carácter de formato inválido"
@@ -1770,12 +1780,12 @@ msgstr "%s: sustituci
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: no se puede asignar de esta forma"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "sustitución errónea: no hay un `%s' que cierre en %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "no hay coincidencia: %s"
@@ -2250,88 +2260,98 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until ÓRDENES; do ÓRDENES; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 #, fuzzy
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function NOMBRE { ÓRDENES ; } o NOMBRE () { ÓRDENES ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 #, fuzzy
 msgid "{ COMMANDS ; }"
 msgstr "{ ÓRDENES }"
 
-#: builtins.c:202
+#: builtins.c:204
 #, fuzzy
 msgid "job_spec [&]"
 msgstr "fg [id_trabajo]"
 
-#: builtins.c:204
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "se esperaba una expresión"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "se esperaba una expresión"
 
-#: builtins.c:208
+#: builtins.c:210
 #, fuzzy
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 "Se permiten las variables de shell como operandos.  Se reemplaza el nombre"
 
-#: builtins.c:211
+#: builtins.c:213
 #, fuzzy
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [dir | +N | -N] [-n]"
 
-#: builtins.c:215
+#: builtins.c:217
 #, fuzzy
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [+N | -N] [-n]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 #, fuzzy
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o opción-larga] nombre_opción [nombre_opción...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 #, fuzzy
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "type [-apt] nombre [nombre ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
 # Más en español sería: se define un alias por cada NOMBRE cuyo VALOR se da. sv
 # Lo mismo de antes: el alias es expandido -> el alias se expande. sv
 # no alias -> ningún alias. sv
 # De acuerdo. cfuga
-#: builtins.c:250
+#: builtins.c:254
 #, fuzzy
 msgid ""
 "Define or display aliases.\n"
@@ -2360,7 +2380,7 @@ msgstr ""
 "    verdadero a menos que se de un NAME para el cual no se haya definido\n"
 "    ningún alias."
 
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2375,7 +2395,7 @@ msgstr ""
 
 # lee 'la'... em+
 # Corregido. Además, es plural: lee las asignaciones... cfuga
-#: builtins.c:285
+#: builtins.c:289
 #, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
@@ -2452,7 +2472,7 @@ msgstr ""
 "como\n"
 "                         entrada."
 
-#: builtins.c:322
+#: builtins.c:326
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2466,7 +2486,7 @@ msgstr ""
 "Retoma la siguiente iteración del ciclo FOR, WHILE o UNTIL incluido.\n"
 "    Si se especifica N, retoma en el N-ésimo ciclo incluido."
 
-#: builtins.c:334
+#: builtins.c:338
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2480,7 +2500,7 @@ msgstr ""
 "Retoma la siguiente iteración del ciclo FOR, WHILE o UNTIL incluido.\n"
 "    Si se especifica N, retoma en el N-ésimo ciclo incluido."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2494,7 +2514,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2522,7 +2542,7 @@ msgstr ""
 # Slash lo venimos traduciendo por barra inclinada , y backslash
 # por barra invertida em++
 # Corregido en toda la traducción. cfuga
-#: builtins.c:379
+#: builtins.c:383
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2568,7 +2588,7 @@ msgstr ""
 "    usar la estructura física de directorios en lugar de seguir los enlaces\n"
 "    simbólicos; la opción -L fuerza que se sigan los enlaces simbólicos."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2584,7 +2604,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2595,7 +2615,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Sin efecto; la orden no hace nada. Devuelve un código de estado cero."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2603,7 +2623,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 #, fuzzy
 msgid ""
 "Return an unsuccessful result.\n"
@@ -2612,7 +2632,7 @@ msgid ""
 "    Always fails."
 msgstr "Devuelve un resultado sin éxito."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2633,7 +2653,7 @@ msgstr ""
 
 # apaga -> desactiva em+
 # Corregido en toda la traducción. cfuga
-#: builtins.c:472
+#: builtins.c:476
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2695,14 +2715,14 @@ msgstr ""
 "    usa en una función, hace a los NAMEs locales, como sucede con la\n"
 "    orden `local'."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2717,7 +2737,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 #, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
@@ -2768,7 +2788,7 @@ msgstr ""
 "    Puede desactivar explícitamente la interpretación de los caracteres\n"
 "    arriba mencionados con la opción -E."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2781,7 +2801,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2808,7 +2828,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2825,7 +2845,7 @@ msgstr ""
 # en una de dos formas -> en una de las dos formas siguientes em+
 # dar argumentos -> especificar em+
 # De acuerdo. cfuga
-#: builtins.c:622
+#: builtins.c:626
 #, fuzzy
 msgid ""
 "Parse option arguments.\n"
@@ -2901,7 +2921,7 @@ msgstr ""
 "    pero si se especifican más argumentos, éstos se comparan en lugar\n"
 "    de los primeros."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2924,7 +2944,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2935,7 +2955,7 @@ msgstr ""
 "Termina el shell con un estado de N.  Si se omite N, el estado de salida\n"
 "    es el mismo de la última orden ejecutada."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2944,7 +2964,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 #, fuzzy
 msgid ""
 "Display or execute commands from the history list.\n"
@@ -2995,7 +3015,7 @@ msgstr ""
 "    `r cc' ejecuta la última orden que comience con `cc' y al teclear\n"
 "    `r' re-ejecuta la última orden."
 
-#: builtins.c:734
+#: builtins.c:738
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -3011,7 +3031,7 @@ msgstr ""
 "    JOB_SPEC no está presente, se usa la noción del shell del trabajo\n"
 "    actual."
 
-#: builtins.c:749
+#: builtins.c:753
 #, fuzzy
 msgid ""
 "Move jobs to the background.\n"
@@ -3029,7 +3049,7 @@ msgstr ""
 "    `&'.  Si JOB_SPEC no está presente, se usa la noción del shell del\n"
 "    trabajo actual."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3053,7 +3073,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3075,7 +3095,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 #, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
@@ -3132,7 +3152,7 @@ msgstr ""
 "    tiempo asociada con cada entrada de historia mostrada.  No se muestra\n"
 "    ninguna marca de tiempo de otra forma."
 
-#: builtins.c:848
+#: builtins.c:852
 #, fuzzy
 msgid ""
 "Display status of jobs.\n"
@@ -3168,7 +3188,7 @@ msgstr ""
 "    especificaciones de trabajo que aparecen en ARGS se han reemplazado\n"
 "    con el ID de proceso del líder del grupo de procesos de dicho trabajo."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3185,7 +3205,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 #, fuzzy
 msgid ""
 "Send a signal to a job.\n"
@@ -3224,7 +3244,7 @@ msgstr ""
 # No sé si existe precedencia en español, pero me suena fatal.
 # Yo pondría simplemente "prioridad". sv
 # Creo que si existe, pero tu sugerencia es mejor. cfuga
-#: builtins.c:917
+#: builtins.c:921
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3310,7 +3330,7 @@ msgstr ""
 "    Si el último ARG se evalúa como 0, let devuelve 1; si no se\n"
 "    devuelve 0."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3386,7 +3406,7 @@ msgstr ""
 "    cero, a menos que se encuentre un final de línea, read expire, o se\n"
 "    proporcione un descriptor de fichero inválido como el argumento de -u."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3398,7 +3418,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3567,7 +3587,7 @@ msgstr ""
 "no\n"
 "    se proporciona ningún ARG, se muestran todas las variables del shell."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3587,7 +3607,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3606,7 +3626,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3626,7 +3646,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3637,7 +3657,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 #, fuzzy
 msgid ""
 "Execute commands from a file in the current shell.\n"
@@ -3656,7 +3676,7 @@ msgstr ""
 "    Si se proporciona cualquier ARGUMENTS, se convierten en los parámetros\n"
 "    posicionales cuando se ejecuta FILENAME."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3670,7 +3690,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3823,7 +3843,7 @@ msgstr ""
 "    Los operadores binarios aritméticos devuelven verdadero si ARG1 es\n"
 "    igual, no igual, menor, menor o igual, mayor, mayor o igual que ARG2."
 
-#: builtins.c:1292
+#: builtins.c:1296
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3834,7 +3854,7 @@ msgstr ""
 "Este es un sinónimo para la orden interna \"test\", pero el último\n"
 "    argumento debe ser un `]' literal, que coincida con el `[' inicial."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3846,7 +3866,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -3900,7 +3920,7 @@ msgstr ""
 "con\n"
 "    \"kill -signal $$\"."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3930,7 +3950,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 #, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
@@ -4008,7 +4028,7 @@ msgstr ""
 "    -t, el cual es en segundos, -p, el cual es en incrementos de 512 bytes,\n"
 "    y -u, el cual es un número de procesos sin escala."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4026,7 +4046,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -4043,7 +4063,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 #, fuzzy
 msgid ""
 "Wait for process completion and return exit status.\n"
@@ -4064,7 +4084,7 @@ msgstr ""
 "    de trabajo, se espera a todos los procesos en la línea de ejecución\n"
 "    del trabajo."
 
-#: builtins.c:1474
+#: builtins.c:1478
 #, fuzzy
 msgid ""
 "Execute commands for each member in a list.\n"
@@ -4082,7 +4102,7 @@ msgstr ""
 "    se asume `in \"$@\"'.  Para cada elemento en WORDS, se define NAME\n"
 "    como ese elemento, y se ejecutan COMMANDS."
 
-#: builtins.c:1488
+#: builtins.c:1492
 #, fuzzy
 msgid ""
 "Arithmetic for loop.\n"
@@ -4108,7 +4128,7 @@ msgstr ""
 "    EXP1, EXP2, y EXP3 son expresiones aritméticas.  Si se omite\n"
 "    cualquier expresión, se comporta como si se evaluara a 1."
 
-#: builtins.c:1506
+#: builtins.c:1510
 #, fuzzy
 msgid ""
 "Select words from a list and execute commands.\n"
@@ -4142,7 +4162,7 @@ msgstr ""
 "    COMMANDS después de cada selección hasta que se ejecuta\n"
 "    una orden break."
 
-#: builtins.c:1527
+#: builtins.c:1531
 #, fuzzy
 msgid ""
 "Report time consumed by pipeline's execution.\n"
@@ -4165,7 +4185,7 @@ msgstr ""
 "    el resumen de tiempos en un formato ligeramente diferente, usando\n"
 "    el valor de la variable TIMEFORMAT como el formato de salida."
 
-#: builtins.c:1544
+#: builtins.c:1548
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -4179,7 +4199,7 @@ msgstr ""
 "Ejecuta ÓRDENES selectivamente basado en coincidencias de la PALABRA con\n"
 "    el PATRÓN. Se utiliza `|' para separar patrones múltiples."
 
-#: builtins.c:1556
+#: builtins.c:1560
 #, fuzzy
 msgid ""
 "Execute commands based on conditional.\n"
@@ -4212,7 +4232,7 @@ msgstr ""
 "resultó\n"
 "    verdadera."
 
-#: builtins.c:1573
+#: builtins.c:1577
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -4226,7 +4246,7 @@ msgstr ""
 "Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n"
 "    `while' tenga un estado de salida de cero."
 
-#: builtins.c:1585
+#: builtins.c:1589
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -4240,7 +4260,20 @@ msgstr ""
 "Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n"
 "    `until' tengan un estado de salida que no sea cero."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4254,7 +4287,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -4268,7 +4301,7 @@ msgstr ""
 "Corre un conjunto de órdenes en un grupo.  Esta es una forma de redirigir\n"
 "    un conjunto completo de órdenes."
 
-#: builtins.c:1623
+#: builtins.c:1641
 #, fuzzy
 msgid ""
 "Resume job in foreground.\n"
@@ -4289,7 +4322,7 @@ msgstr ""
 "    especificación del trabajo se hubiera proporcionado como\n"
 "    un argumento de `bg'."
 
-#: builtins.c:1638
+#: builtins.c:1656
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expression.\n"
@@ -4303,7 +4336,7 @@ msgstr ""
 "Se evalua EXPRESSION de acuerdo a las reglas de evaluación\n"
 "    aritmética.  Equivalente a \"let EXPRESSION\"."
 
-#: builtins.c:1650
+#: builtins.c:1668
 #, fuzzy
 msgid ""
 "Execute conditional command.\n"
@@ -4349,7 +4382,7 @@ msgstr ""
 "    patrón.  Los operadores && y || no evalúan EXPR2 si EXPR1 es\n"
 "    suficiente para determinar el valor de una expresión."
 
-#: builtins.c:1676
+#: builtins.c:1694
 #, fuzzy
 msgid ""
 "Common shell variable names and usage.\n"
@@ -4463,7 +4496,7 @@ msgstr ""
 "    \t\tpara decidir cuáles órdenes se deben guardar en la lista de\n"
 "    \t\thistoria.\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 #, fuzzy
 msgid ""
 "Add directories to stack.\n"
@@ -4514,7 +4547,7 @@ msgstr ""
 "    \n"
 "    Puede ver la pila de directorios con la orden `dirs'."
 
-#: builtins.c:1767
+#: builtins.c:1785
 #, fuzzy
 msgid ""
 "Remove directories from stack.\n"
@@ -4560,7 +4593,7 @@ msgstr ""
 "    \n"
 "    Puede ver la pila de directorios con la orden `dirs'."
 
-#: builtins.c:1797
+#: builtins.c:1815
 #, fuzzy
 msgid ""
 "Display directory stack.\n"
@@ -4608,7 +4641,7 @@ msgstr ""
 "    -N\tmuestra la N-ésima entrada contando desde la derecha de la lista\n"
 "    mostrada por dirs cuando se invoca sin opciones, empezando de cero."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -4629,7 +4662,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -4672,7 +4705,7 @@ msgstr ""
 "    -v, la salida se coloca en el valor de la variable de shell VAR\n"
 "    en lugar de enviarla a la salida estándard."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4694,7 +4727,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -4714,7 +4747,7 @@ msgstr ""
 "coincidencias\n"
 "    contra WORD."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4743,9 +4776,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -4769,7 +4802,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -4779,6 +4814,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid " "
 #~ msgstr " "
 
index 131eeaf1647c939465ec8cdfedf3dc07935a2643..0f19bee6661b5bcba8cfff6c10f6abf754e82a2c 100644 (file)
Binary files a/po/et.gmo and b/po/et.gmo differ
index 208dd57fdc2a28a5439b20caf56ca0ebe15fb7f8..37a016cb6c24b8bb8796aadd9317b836482f3888 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2006-11-11 16:38+0200\n"
 "Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
 "Language-Team: Estonian <et@li.org>\n"
@@ -38,7 +38,7 @@ msgstr "%s: mitte-numbrilisele indeksile ei saa omistada"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: ei saa luua: %s"
@@ -245,12 +245,22 @@ msgstr "%s: ei ole sisek
 msgid "write error: %s"
 msgstr "kirjutamise viga: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr ""
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: segane töö"
@@ -286,7 +296,7 @@ msgstr "saab kasutada ainult funktsioonis"
 msgid "cannot use `-f' to make functions"
 msgstr "võtit `-f' ei saa funktsiooni loomiseks kasutada"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funktsioon ei ole muudetav"
@@ -325,7 +335,7 @@ msgstr "%s: pole d
 msgid "%s: cannot delete: %s"
 msgstr "%s: ei saa kustutada: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -341,7 +351,7 @@ msgstr "%s: ei ole tavaline fail"
 msgid "%s: file is too large"
 msgstr "%s: fail on liiga suur"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: kahendfaili ei õnnestu käivitada"
@@ -481,37 +491,37 @@ msgstr "Tundmatu viga"
 msgid "expression expected"
 msgstr "oodati avaldist"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s: vigane võti"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: vigane võti"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: vigane tegevuse nimi"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: pole massiiv"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -801,32 +811,32 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "kirjutamise viga: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: piiratud: käskudes ei saa kasutada sümboleid `/'"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: käsku ei ole"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: halb interpretaator"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
@@ -920,140 +930,140 @@ msgstr ""
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: pid puudub"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: töö %d on peatatud"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: töö on lõpetatud"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: töö %d on juba taustal"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: hoiatus: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr ""
 
@@ -1281,7 +1291,7 @@ msgstr "K
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1291,12 +1301,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1637,12 +1647,12 @@ msgstr "%s: halb asendus"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: sedasi ei saa omistada"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "sulgev `%c' puudub %s sees"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "ei leitud: %s"
@@ -2063,75 +2073,85 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr ""
 
 #: builtins.c:198
-msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgid "coproc [NAME] command [redirections]"
 msgstr ""
 
 #: builtins.c:200
-msgid "{ COMMANDS ; }"
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:202
-msgid "job_spec [&]"
+msgid "{ COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:204
+msgid "job_spec [&]"
+msgstr ""
+
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "oodati avaldist"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "oodati avaldist"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr ""
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr ""
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr ""
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2151,7 +2171,7 @@ msgid ""
 "    defined."
 msgstr ""
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2161,7 +2181,7 @@ msgid ""
 "    Return success unless a NAME is not an existing alias."
 msgstr ""
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2200,7 +2220,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2211,7 +2231,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2222,7 +2242,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2236,7 +2256,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2252,7 +2272,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2285,7 +2305,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2301,7 +2321,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2311,7 +2331,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2319,7 +2339,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2327,7 +2347,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2346,7 +2366,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2382,14 +2402,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2404,7 +2424,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2435,7 +2455,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2448,7 +2468,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2475,7 +2495,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2487,7 +2507,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2528,7 +2548,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2551,7 +2571,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2559,7 +2579,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2568,7 +2588,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2598,7 +2618,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2610,7 +2630,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2624,7 +2644,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2648,7 +2668,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2670,7 +2690,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2704,7 +2724,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2728,7 +2748,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2745,7 +2765,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2767,7 +2787,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2812,7 +2832,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2856,7 +2876,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2868,7 +2888,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -2950,7 +2970,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -2970,7 +2990,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -2989,7 +3009,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3009,7 +3029,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3020,7 +3040,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3034,7 +3054,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3048,7 +3068,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3125,7 +3145,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3133,7 +3153,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3145,7 +3165,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3181,7 +3201,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3211,7 +3231,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3255,7 +3275,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3273,7 +3293,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3290,7 +3310,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3304,7 +3324,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3317,7 +3337,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3334,7 +3354,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3354,7 +3374,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3370,7 +3390,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3381,7 +3401,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3402,7 +3422,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3413,7 +3433,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3424,7 +3444,20 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3438,7 +3471,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3449,7 +3482,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3463,7 +3496,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3474,7 +3507,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3502,7 +3535,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3556,7 +3589,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3587,7 +3620,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3614,7 +3647,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3643,7 +3676,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3664,7 +3697,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3694,7 +3727,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3716,7 +3749,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3729,7 +3762,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3758,9 +3791,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3784,7 +3817,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3794,6 +3829,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid " "
 #~ msgstr " "
 
index aec132c02e10d3a3e3eaa1b868c34bef3b0f1549..8f347576c01214d5c972dc0f4f869974f6040861 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 43d5d4ffef41291331e5a5ebafe379b5f8829d93..9205af67d7aa14a44deb7139d58f2b7c3b1b291c 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2008-03-13 13:10+0100\n"
 "Last-Translator: Christophe Combelles <ccomb@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -40,7 +40,7 @@ msgstr "%s : impossible d'assigner à un index non numérique"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s : impossible de créer : %s"
@@ -250,12 +250,22 @@ msgstr "%s : ceci n'est pas une primitive du shell"
 msgid "write error: %s"
 msgstr "erreur d'écriture : %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s : erreur de détermination du répertoire actuel : %s : %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s : spécification de tâche ambiguë"
@@ -295,7 +305,7 @@ msgstr "utilisable seulement dans une fonction"
 msgid "cannot use `-f' to make functions"
 msgstr "« -f » ne peut pas être utilisé pour fabriquer des fonctions"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s : fonction en lecture seule"
@@ -334,7 +344,7 @@ msgstr "%s : non chargé dynamiquement"
 msgid "%s: cannot delete: %s"
 msgstr "%s : impossible d'effacer : %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -350,7 +360,7 @@ msgstr "%s : ceci n'est pas un fichier régulier"
 msgid "%s: file is too large"
 msgstr "%s : le fichier est trop grand"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s : fichier binaire impossible à lancer"
@@ -502,37 +512,37 @@ msgstr "Erreur inconnue"
 msgid "expression expected"
 msgstr "une expression est attendue"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s : spécification de descripteur de fichier non valable"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d : descripteur de fichier non valable : %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s : option non valable"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s : option non valable"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s : nom d'action non valable"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s : n'est pas une variable tableau"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -889,33 +899,33 @@ msgstr "\aattente de données expirée : déconnexion automatique\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "l'entrée standard ne peut pas être redirigée depuis /dev/null : %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT : « %c » : caractère de format non valable"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "erreur d'écriture : %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 "%s : restriction : « / » ne peut pas être spécifié dans un nom de commande"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s : commande introuvable"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s : %s : mauvais interpréteur"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "Impossible de dupliquer le fd %d vers le fd %d"
@@ -1011,140 +1021,140 @@ msgstr "save_bash_input : le tampon existe déjà pour le nouveau fd %d"
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "le processus cloné n°%d apparaît dans la tâche en fonctionnement %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "suppression de la tâche stoppée %d avec le groupe de processus %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid : %ld : n° de processus inexistant"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait : le processus n°%ld n'est pas un fils de ce shell."
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for : aucun enregistrement du processus n°%ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job : la tâche %d est stoppée"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s : la tâche s'est terminée"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s : la tâche %d est déjà en arrière plan"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s : avertissement :"
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "pas de contrôle de tâche dans ce shell"
 
@@ -1382,7 +1392,7 @@ msgstr ""
 "Caractère de fin de fichier (EOF) prématuré lors de la recherche d'un « ) » "
 "correspondant"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "complètement : fonction « %s » non trouvée"
@@ -1392,12 +1402,12 @@ msgstr "complètement : fonction « %s » non trouvée"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert : %s : NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command : mauvais connecteur « %d »"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf : « %c » : caractère de format invalide"
@@ -1743,12 +1753,12 @@ msgstr "%s : mauvaise substitution"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s : affectation impossible de cette façon"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "Mauvaise substitution : pas de « %s » de fermeture dans %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "Pas de correspondance : %s"
@@ -2180,75 +2190,85 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr ""
 
 #: builtins.c:198
-msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgid "coproc [NAME] command [redirections]"
 msgstr ""
 
 #: builtins.c:200
-msgid "{ COMMANDS ; }"
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:202
-msgid "job_spec [&]"
+msgid "{ COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:204
+msgid "job_spec [&]"
+msgstr ""
+
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "une expression est attendue"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "une expression est attendue"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr ""
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr ""
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr ""
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 #, fuzzy
 msgid ""
 "Define or display aliases.\n"
@@ -2276,7 +2296,7 @@ msgstr ""
 "    lorsque l'alias est étendu. « alias » renvoie « true » à moins qu'un NAME\n"
 "    ne soit fourni pour lequel aucun alias n'a été défini."
 
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2290,7 +2310,7 @@ msgstr ""
 "fournie,\n"
 "alors toutes les définitions d'alias sont enlevées."
 
-#: builtins.c:285
+#: builtins.c:289
 #, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
@@ -2367,7 +2387,7 @@ msgstr ""
 "                         et leurs valeurs sous une forme qui peut être "
 "utilisée comme entrée."
 
-#: builtins.c:322
+#: builtins.c:326
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2382,7 +2402,7 @@ msgstr ""
 "supérieur.\n"
 "    Si N est précisé, reprend à N-ième boucle supérieure."
 
-#: builtins.c:334
+#: builtins.c:338
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2397,7 +2417,7 @@ msgstr ""
 "supérieur.\n"
 "    Si N est précisé, reprend à N-ième boucle supérieure."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2411,7 +2431,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2438,7 +2458,7 @@ msgstr ""
 "revenir en arrière\n"
 "    avant le cadre actuel ; le cadre supérieur est le cadre 0."
 
-#: builtins.c:379
+#: builtins.c:383
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2491,7 +2511,7 @@ msgstr ""
 "    les liens symboliques ; l'option « -L » force le suivi des liens "
 "symboliques."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2507,7 +2527,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2519,7 +2539,7 @@ msgid ""
 msgstr ""
 "Sans effet : la commande ne fait rien. Le code de sortie zéro est renvoyé."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2527,7 +2547,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 #, fuzzy
 msgid ""
 "Return an unsuccessful result.\n"
@@ -2536,7 +2556,7 @@ msgid ""
 "    Always fails."
 msgstr "Renvoie un résultat d'échec"
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2555,7 +2575,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2619,14 +2639,14 @@ msgstr ""
 "    fonction, ceci a pour effet de rendre les NAME locaux, comme avec la "
 "commande «local »."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2641,7 +2661,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 #, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
@@ -2695,7 +2715,7 @@ msgstr ""
 "caractères ci-dessus\n"
 "    avec l'option « -E »."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2708,7 +2728,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2735,7 +2755,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2747,7 +2767,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 #, fuzzy
 msgid ""
 "Parse option arguments.\n"
@@ -2836,7 +2856,7 @@ msgstr ""
 "mais\n"
 "    si plus d'argument sont données, ils sont analysés à la place."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2859,7 +2879,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2870,7 +2890,7 @@ msgstr ""
 "Terminer le shell avec le code de retour « N ».  Si N est omis, le code\n"
 " de retour est celui de la dernière commande exécutée."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2879,7 +2899,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 #, fuzzy
 msgid ""
 "Display or execute commands from the history list.\n"
@@ -2931,7 +2951,7 @@ msgstr ""
 "la\n"
 "    dernière commande est ré-exécutée."
 
-#: builtins.c:734
+#: builtins.c:738
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -2947,7 +2967,7 @@ msgstr ""
 "    JOB_SPEC n'est pas fourni, le shell utilise sa propre notion\n"
 "    de tâche actuelle."
 
-#: builtins.c:749
+#: builtins.c:753
 #, fuzzy
 msgid ""
 "Move jobs to the background.\n"
@@ -2966,7 +2986,7 @@ msgstr ""
 "    Si JOB_SPEC n'est pas fourni, le shell utilise sa propre notion\n"
 "    de tâche actuelle."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2990,7 +3010,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3012,7 +3032,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 #, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
@@ -3079,7 +3099,7 @@ msgstr ""
 "    valeurs de temps associées à chaque élément de l'historique. Sinon,\n"
 "    aucun valeur de temps n'est affichée."
 
-#: builtins.c:848
+#: builtins.c:852
 #, fuzzy
 msgid ""
 "Display status of jobs.\n"
@@ -3118,7 +3138,7 @@ msgstr ""
 "    par le numéro de processus du leader du groupe de processus pour cette "
 "tâche."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3135,7 +3155,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 #, fuzzy
 msgid ""
 "Send a signal to a job.\n"
@@ -3168,7 +3188,7 @@ msgstr ""
 "    processus que vous pouvez créer, vous n'avez pas besoin de générer un\n"
 "    nouveau processus pour en tuer un autre."
 
-#: builtins.c:917
+#: builtins.c:921
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3255,7 +3275,7 @@ msgstr ""
 "    \n"
 "    Si le dernier ARG est évalué à 0, « let » renvoie 1, sinon 0 est renvoyé."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3340,7 +3360,7 @@ msgstr ""
 "ne soit\n"
 "    fourni pour l'argument « -u »."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3352,7 +3372,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3525,7 +3545,7 @@ msgstr ""
 "variables du shell\n"
 "    sont affichées."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3545,7 +3565,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3564,7 +3584,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3584,7 +3604,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3595,7 +3615,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 #, fuzzy
 msgid ""
 "Execute commands from a file in the current shell.\n"
@@ -3616,7 +3636,7 @@ msgstr ""
 "position\n"
 "    lorsque FILENAME est exécuté."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3630,7 +3650,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3778,7 +3798,7 @@ msgstr ""
 "    non-égal, inférieur, inférieur ou égal, supérieur, supérieur ou égal à "
 "ARG2."
 
-#: builtins.c:1292
+#: builtins.c:1296
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3789,7 +3809,7 @@ msgstr ""
 "Ceci est un synonyme de la primitive « test », mais le dernier argument\n"
 "    doit être le caractère « ] », pour fermer le « [ » correspondant."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3801,7 +3821,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -3860,7 +3880,7 @@ msgstr ""
 "au\n"
 "    shell avec « kill -signal $$ »."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3890,7 +3910,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 #, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
@@ -3972,7 +3992,7 @@ msgstr ""
 "    « -p » qui prend un multiple de 512 octets et « -u » qui prend un nombre\n"
 "    sans unité."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3990,7 +4010,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -4007,7 +4027,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 #, fuzzy
 msgid ""
 "Wait for process completion and return exit status.\n"
@@ -4027,7 +4047,7 @@ msgstr ""
 "    spécificateur de tâche. Si c'est un spécificateur de tâche, tous les\n"
 "    processus présents dans le tube de la tâche sont attendus."
 
-#: builtins.c:1474
+#: builtins.c:1478
 #, fuzzy
 msgid ""
 "Execute commands for each member in a list.\n"
@@ -4045,7 +4065,7 @@ msgstr ""
 "    utilisé. Pour chaque élément dans WORDS, NAME est défini à cet élément,\n"
 "    et les COMMANDS sont exécutées."
 
-#: builtins.c:1488
+#: builtins.c:1492
 #, fuzzy
 msgid ""
 "Arithmetic for loop.\n"
@@ -4072,7 +4092,7 @@ msgstr ""
 "expression\n"
 "    omise, elle se comporte comme si elle s'évaluait à 1."
 
-#: builtins.c:1506
+#: builtins.c:1510
 #, fuzzy
 msgid ""
 "Select words from a list and execute commands.\n"
@@ -4104,7 +4124,7 @@ msgstr ""
 "    Les COMMANDS sont exécutées après chaque sélection jusqu'à ce qu'une\n"
 "    commande « break » soit exécutée."
 
-#: builtins.c:1527
+#: builtins.c:1531
 #, fuzzy
 msgid ""
 "Report time consumed by pipeline's execution.\n"
@@ -4126,7 +4146,7 @@ msgstr ""
 "    L'option « -p » affiche le résumé dans un format légèrement différent.\n"
 "    Elle utilise la valeur de la variable TIMEFORMAT comme format de sortie."
 
-#: builtins.c:1544
+#: builtins.c:1548
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -4141,7 +4161,7 @@ msgstr ""
 "    motif PATTERN de correspondance des mots WORDS. Le caractère\n"
 "    « | » est utilisé pour séparer les différents motifs."
 
-#: builtins.c:1556
+#: builtins.c:1560
 #, fuzzy
 msgid ""
 "Execute commands based on conditional.\n"
@@ -4175,7 +4195,7 @@ msgstr ""
 "exécutée\n"
 "    ou zéro si aucune condition n'était vraie.    "
 
-#: builtins.c:1573
+#: builtins.c:1577
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -4190,7 +4210,7 @@ msgstr ""
 "    que la commande finale parmi celles de « while » se termine avec un\n"
 "    code de retour de zéro."
 
-#: builtins.c:1585
+#: builtins.c:1589
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -4205,7 +4225,20 @@ msgstr ""
 "    que les commandes de « until » se terminent avec un code de retour\n"
 "    différent de zéro."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4219,7 +4252,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -4233,7 +4266,7 @@ msgstr ""
 "Lance un ensemble de commandes d'un groupe. Ceci est une façon de\n"
 "    rediriger tout un ensemble de commandes."
 
-#: builtins.c:1623
+#: builtins.c:1641
 #, fuzzy
 msgid ""
 "Resume job in foreground.\n"
@@ -4254,7 +4287,7 @@ msgstr ""
 "avait\n"
 "    été fournie comme argument de « bg »."
 
-#: builtins.c:1638
+#: builtins.c:1656
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expression.\n"
@@ -4268,7 +4301,7 @@ msgstr ""
 "L'EXPRESSION est évaluée selon les règles de l'évaluation arithmétique.\n"
 "    C'est équivalent à « let EXPRESSION »."
 
-#: builtins.c:1650
+#: builtins.c:1668
 #, fuzzy
 msgid ""
 "Execute conditional command.\n"
@@ -4314,7 +4347,7 @@ msgstr ""
 "    est effectuée. Les opérateurs « && » et « || » n'évaluent pas EXPR2 si\n"
 "    EXPR1 est suffisant pour déterminer la valeur de l'expression."
 
-#: builtins.c:1676
+#: builtins.c:1694
 #, fuzzy
 msgid ""
 "Common shell variable names and usage.\n"
@@ -4437,7 +4470,7 @@ msgstr ""
 "    \t\tdécider quelles commandes doivent être conservées dans la liste "
 "d'historique.\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 #, fuzzy
 msgid ""
 "Add directories to stack.\n"
@@ -4487,7 +4520,7 @@ msgstr ""
 "    \n"
 "    Vous pouvez voir la pile des répertoires avec la commande « dirs »."
 
-#: builtins.c:1767
+#: builtins.c:1785
 #, fuzzy
 msgid ""
 "Remove directories from stack.\n"
@@ -4531,7 +4564,7 @@ msgstr ""
 "    \n"
 "    Vous pouvez voir la pile des répertoires avec la commande « dirs »."
 
-#: builtins.c:1797
+#: builtins.c:1815
 #, fuzzy
 msgid ""
 "Display directory stack.\n"
@@ -4584,7 +4617,7 @@ msgstr ""
 "la\n"
 "    liste affichée par « dirs » lorsque celle-ci est appelée sans option."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -4605,7 +4638,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -4655,7 +4688,7 @@ msgstr ""
 "placée dans\n"
 "    la variable VAR plutôt que d'être envoyée vers la sortie standard."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4677,7 +4710,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -4698,7 +4731,7 @@ msgstr ""
 "»\n"
 "    sont générées."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4727,9 +4760,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -4753,7 +4786,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -4763,6 +4798,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid " "
 #~ msgstr " "
 
index 80de311b2b35c290d727e2113be0170f3e81f2f6..9ca0535a4f8f2581c69f7af03fe21cc41b453ca5 100644 (file)
Binary files a/po/hu.gmo and b/po/hu.gmo differ
index 9a99e6d66b55d7d765d1ebc35f02262c3790679a..a66ba7aeb917b29876c55c9baf3af104e6f15936 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2002-06-14 09:49GMT\n"
 "Last-Translator: Gábor István <stive@mezobereny.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -39,7 +39,7 @@ msgstr "%s: nem lehet hozz
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nem lehet létrehozni: %s"
@@ -250,12 +250,22 @@ msgstr ""
 msgid "write error: %s"
 msgstr "Csõ (pipe)hiba %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr ""
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, fuzzy, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: Nem egyértelmû átirányítás"
@@ -292,7 +302,7 @@ msgstr "A local-t csak funkci
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s Csak olvasható funkció"
@@ -331,7 +341,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: nem lehet létrehozni: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -347,7 +357,7 @@ msgstr "%s: nem futtathat
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: nem futtatható bináris fájl"
@@ -489,37 +499,37 @@ msgstr "Ismeretlen hiba %d"
 msgid "expression expected"
 msgstr "várható kifejezés"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%c%c: rossz opció"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%c%c: rossz opció"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "rossz jel(signal) szám"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s felszabadított változó"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -821,32 +831,32 @@ msgstr "%c t
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "Csõ (pipe)hiba %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: fenntartva: parancs nem tartalmazhat '/' karaktert"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: parancs nem található"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: egy könyvtár"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "nem másolható a  fd %d  fd 0: %s-re"
@@ -945,143 +955,143 @@ msgstr "check_bash_input: puffer m
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: Nem létezõ pid (%d)!\n"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "Ismeretlen #%d Szignál"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Kész"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Megállítva"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Megállítva"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Futó"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Kész (%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Kilépés %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Ismeretlen állapot"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(memória kiírás)"
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, fuzzy, c-format
 msgid "  (wd: %s)"
 msgstr "(wd most: %s)\n"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, fuzzy, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "gyermek-folyamat setpgid (%d -ról %d-ra) hiba %d: %s\n"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, fuzzy, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "várjon:a %d nem utóda ennek a parancsértelmezõnek"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: munkafolyamat megszakadt"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "foglalat %3d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr "(memória kiírás)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd most: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp sikertelen: %s"
 
-#: jobs.c:3618
+#: jobs.c:3623
 #, fuzzy
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs: sor fegyelem %s"
 
-#: jobs.c:3628
+#: jobs.c:3633
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs: getpgrp sikertelen: %s"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "nincs munkafolyamat ellenõrzés ezen a parancsértelmezõn"
 
@@ -1316,7 +1326,7 @@ msgstr "Haszn
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "váratlan EOF amíg vizsgáltam a  `%c'-t"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1326,12 +1336,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: rossz csatlakozás `%d'"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1684,12 +1694,12 @@ msgstr "%s rossz behelyettes
 msgid "$%s: cannot assign in this way"
 msgstr "$%s így nem lehet hozzárendelni"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "rossz behelyettesítés: ne a %s be a %s-t"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -2146,84 +2156,94 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until PARANCSOK; do PARANCSOK; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 #, fuzzy
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function NÉV { PARANCSOK ; } vagy NÉV () { PARANCSOK ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 #, fuzzy
 msgid "{ COMMANDS ; }"
 msgstr "{ PARANCSOK }"
 
-#: builtins.c:202
+#: builtins.c:204
 #, fuzzy
 msgid "job_spec [&]"
 msgstr "fg [munka_folyamat]"
 
-#: builtins.c:204
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "várható kifejezés"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "várható kifejezés"
 
-#: builtins.c:208
+#: builtins.c:210
 #, fuzzy
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 "A parancsértelmezõ változói felhasználhatók operandusként. A változó neve"
 
-#: builtins.c:211
+#: builtins.c:213
 #, fuzzy
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [könyvtár | +N | -N] [-n]"
 
-#: builtins.c:215
+#: builtins.c:217
 #, fuzzy
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [+N | -N] [-n]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 #, fuzzy
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o hosszú opciók] optnév [optnév...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 #, fuzzy
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "type [-apt] név [név ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2243,7 +2263,7 @@ msgid ""
 "    defined."
 msgstr ""
 
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2254,7 +2274,7 @@ msgid ""
 "    Return success unless a NAME is not an existing alias."
 msgstr "NÉV eltávolítása a meghatározott aliasok listájából. A -a opció"
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2293,7 +2313,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2307,7 +2327,7 @@ msgstr ""
 "Folytatja a következõ egy szinttel magasabban elhelyezkedõ FOR, WHILE vagy "
 "UNTIL hurokkal."
 
-#: builtins.c:334
+#: builtins.c:338
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2321,7 +2341,7 @@ msgstr ""
 "Folytatja a következõ egy szinttel magasabban elhelyezkedõ FOR, WHILE vagy "
 "UNTIL hurokkal."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2335,7 +2355,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2351,7 +2371,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2384,7 +2404,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2400,7 +2420,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2411,7 +2431,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Nem csinál semmit ez a parancs. A visszatérési értéke 0."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2419,7 +2439,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2427,7 +2447,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2446,7 +2466,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2482,14 +2502,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2504,7 +2524,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2535,7 +2555,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2548,7 +2568,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2575,7 +2595,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2587,7 +2607,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2628,7 +2648,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2651,7 +2671,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2660,7 +2680,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr "Kilép a parancsértelmezõbõl N státusszal. Ha az N-t kihagyja akkor a "
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2669,7 +2689,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2699,7 +2719,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -2714,7 +2734,7 @@ msgstr ""
 "A munka_folyamat-ot az elõtérbe helyezi és jelenlegi folyamatot csinál "
 "belõle."
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2728,7 +2748,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2752,7 +2772,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2774,7 +2794,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2808,7 +2828,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2832,7 +2852,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2849,7 +2869,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2871,7 +2891,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2916,7 +2936,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2960,7 +2980,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2972,7 +2992,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3054,7 +3074,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3074,7 +3094,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3093,7 +3113,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3113,7 +3133,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3124,7 +3144,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3138,7 +3158,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3152,7 +3172,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3229,7 +3249,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3239,7 +3259,7 @@ msgid ""
 msgstr ""
 "egy ']' szövegkonstansnak kell lennie, hogy párban legyen a nyitó '['-val."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3251,7 +3271,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3287,7 +3307,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3317,7 +3337,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3361,7 +3381,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3379,7 +3399,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3396,7 +3416,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3410,7 +3430,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3423,7 +3443,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3440,7 +3460,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3460,7 +3480,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3476,7 +3496,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -3488,7 +3508,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Feltételesen futtatja a PARANCSOT ha a SZÓ megegyezik a MINTÁVAL. A"
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3509,7 +3529,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -3521,7 +3541,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Kibontja és végrehajtja a PARANCSOT amíg az utolsó parancs a "
 
-#: builtins.c:1585
+#: builtins.c:1589
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -3533,7 +3553,20 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Kibontja és végrehajtja a PARANCSOT amíg az utolsó parancs a "
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3547,7 +3580,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -3559,7 +3592,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Parancsok halmazát futtatja egy csoportban. Ez az egyik módja az"
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3573,7 +3606,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3584,7 +3617,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3612,7 +3645,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3666,7 +3699,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3697,7 +3730,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3724,7 +3757,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3753,7 +3786,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3774,7 +3807,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3804,7 +3837,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3826,7 +3859,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3839,7 +3872,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3868,9 +3901,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3894,7 +3927,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3904,6 +3939,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid "Display the list of currently remembered directories.  Directories"
 #~ msgstr "Megjeleníti a jelenleg feljegyzett könyvtárakat. Könyvtárak"
 
index e7e9bea271f2a3352d50cdabb786f4622092b7b7..1b7447fe408d33fe471412e5d47fe16401ede1b5 100644 (file)
Binary files a/po/id.gmo and b/po/id.gmo differ
index 56dc120b0cdb28fd0ca43847a2de86074f4fbf6c..610709821e05dcf8eae3ab837101838375b8a680 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2008-09-06 17:41+0700\n"
 "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -40,7 +40,7 @@ msgstr "%s: tidak dapat mengassign ke index tidak-numeric"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: harus menggunakan subscript ketika memberikan assosiasi array"
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: tidak dapat membuat: %s"
@@ -245,12 +245,22 @@ msgstr "%s: bukan sebuah builtin shell"
 msgid "write error: %s"
 msgstr "gagal menulis: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: error mengambil direktori saat ini: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: spesifikasi pekerjaan ambigu"
@@ -286,7 +296,7 @@ msgstr "hanya dapat digunakan dalam sebuah fungsi"
 msgid "cannot use `-f' to make functions"
 msgstr "tidak dapat menggunakan `-f' untuk membuat fungsi"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: fungsi baca-saja"
@@ -325,7 +335,7 @@ msgstr "%s: bukan dinamically loaded"
 msgid "%s: cannot delete: %s"
 msgstr "%s: tidak dapat menghapus: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -341,7 +351,7 @@ msgstr "%s: bukan sebuah file umum"
 msgid "%s: file is too large"
 msgstr "%s: file terlalu besar"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: tidak dapat menjalankan berkas binary"
@@ -494,36 +504,36 @@ msgstr "Kesalahan tidak diketahui"
 msgid "expression expected"
 msgstr "diduga sebuah ekspresi"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: spesifikasi file deskripsi tidak valid"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: file deskriptor %s tidak valid"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: jumlah baris tidak valid"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: asal array tidak valid"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: nama aksi tidak valid"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr "nama variabel array kosong"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr "bantuan array variabel dibutuhkan"
 
@@ -871,32 +881,32 @@ msgstr "kehabisan waktu menunggu masukan: otomatis-keluar\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "tidak dapat menyalurkan masukan standar dari /dev/null: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': karakter format tidak valid"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 msgid "pipe error"
 msgstr "pipe error"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 "%s: dibatasi: tidak dapat menspesifikasikan '/' dalam nama nama perintah"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: perintah tidak ditemukan"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: interpreter buruk"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "tidak dapat menduplikasikan fd %d ke fd %d"
@@ -992,140 +1002,140 @@ msgstr "simpan bash_input: buffer telah ada untuk fd %d baru"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "forked pid %d terlihat dalam pekerjaan yang sedang berjalan %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "menghapus pekerjaan yang terhenti %d dengan proses grup %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: process %5ld (%s) dalam the_pipeline"
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) ditandai dengan tetap hidup"
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: tidak ada pid seperti itu"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr "sinyal %d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Selesai"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Terhenti"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Terhenti(%s)"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Berjalan"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Selesai(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Keluar %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Status tidak diketahui"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(core didump) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "anak setpgid (%ld ke %ld)"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld bukan sebuah anak dari shell ini"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Tidak ada catatan untuk proses %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: pekerjaan %d terhenti"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: pekerjaan telah selesai"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: pekerjaan %d sudah berjalan di belakang (background)"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: baris %d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (core didump)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd sekarang: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp gagal"
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: baris disiplin"
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "tidak dapat menset terminal proses grup (%d)"
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "tidak ada pengontrol pekerjaan dalam shell ini"
 
@@ -1356,7 +1366,7 @@ msgstr "Gunakan \"%s\" untuk meninggalkan shell.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "EOF tidak terduga ketika mencari untuk pencocokan ')'"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: fungsi `%s' tidak ditemukan"
@@ -1366,12 +1376,12 @@ msgstr "completion: fungsi `%s' tidak ditemukan"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: konektor buruk `%d'"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: '%c': format karakter tidak valid"
@@ -1714,12 +1724,12 @@ msgstr "%s: substitusi buruk"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: tidak dapat meng-assign dengan cara ini"
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "substitusi buruk: tidak ada penutupan \"\" dalam %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "tidak cocok: %s"
@@ -2161,50 +2171,54 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until PERINTAH; do PERINTAH; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function name { PERINTAH; } atau name () { PERINTAH ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 msgid "{ COMMANDS ; }"
 msgstr "{ PERINTAH ; }"
 
-#: builtins.c:202
+#: builtins.c:204
 msgid "job_spec [&]"
 msgstr "job_spec [&]"
 
-#: builtins.c:204
+#: builtins.c:206
 msgid "(( expression ))"
 msgstr "(( expressi ))"
 
-#: builtins.c:206
+#: builtins.c:208
 msgid "[[ expression ]]"
 msgstr "[[ expressi ]]"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr "variabel - Nama dan arti dari beberapa shell variabel"
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | dir]"
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [optname ...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] format [argumen]"
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
@@ -2214,7 +2228,7 @@ msgstr ""
 "kata] [-F fungsi] [-C perintah] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
@@ -2222,11 +2236,11 @@ msgstr ""
 "compgen [-abcdefgjksuv] [-o opsi] [-A aksi] [-G globpat] [-W wordlist] [-F "
 "fungsi] [-C perintah] [-X filterpat] [-P prefix] [-S suffix] [word]"
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "compopt [-o|+o opsi] [nama ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
@@ -2234,7 +2248,16 @@ msgstr ""
 "mapfile [-n jumlah] [-O asal] [-s jumlah] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 
-#: builtins.c:250
+#: builtins.c:242
+#, fuzzy
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n jumlah] [-O asal] [-s jumlah] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2273,7 +2296,7 @@ msgstr ""
 "ada alias yang\n"
 "    terdefinisi."
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2289,7 +2312,7 @@ msgstr ""
 "    \n"
 "    Mengembalikan sukses kecuali sebuah NAMA bukan alias yang sudah ada."
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2370,7 +2393,7 @@ msgstr ""
 "      bind memberikan kembalian 0 kecuali sebuah opsi tidak dikenal "
 "diberikan atau sebuah error terjadi."
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2389,7 +2412,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Status keluar adalah 0 kecuali N tidak lebih besar atau sama dengan 1."
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2408,7 +2431,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Status keluar adalah 0 kecuali N tidak lebih besar atau sama dengan 1."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2435,7 +2458,7 @@ msgstr ""
 "BUILTIN adalah\n"
 "    bukan sebuah shell builtin.."
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2464,7 +2487,7 @@ msgstr ""
 "shell atau EXPR\n"
 "    tidak valid."
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2524,7 +2547,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan 0 jika direktori berubah; bukan nol jika tidak."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2553,7 +2576,7 @@ msgstr ""
 "direktori sekarang\n"
 "    tidak bisa dibaca."
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2569,7 +2592,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Selalu sukses."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2581,7 +2604,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Selalu sukses."
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2593,7 +2616,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Selalu gagal."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2631,7 +2654,7 @@ msgstr ""
 "    Mengembalikan status keluar dari PERINTAH, atau gagal jika PERINTAH "
 "tidak ditemukan."
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2700,7 +2723,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2710,7 +2733,7 @@ msgstr ""
 "    \n"
 "    Kadaluarsa. Lihat `help declare'."
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2738,7 +2761,7 @@ msgstr ""
 "error terjadi.\n"
 "    atau shell tidak menjalankan sebuah fungsi."
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2796,7 +2819,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan sukses kecuali sebuah penulisan error terjadi."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2818,7 +2841,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan sukses kecuali sebuah penulisan error terjadi."
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2874,7 +2897,7 @@ msgstr ""
 "   Mengembalikan sukses kecuali NAMA bukan sebuah shell builtin atau sebuah "
 "error terjadi."
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2895,7 +2918,7 @@ msgstr ""
 "    Mengembalikan status keluar dari perintah atau sukses jika perintah "
 "adalah kosong."
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2979,7 +3002,7 @@ msgstr ""
 "opsi\n"
 "    ditemui atau sebuah error terjadi."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3022,7 +3045,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali PERINTAH tidak ditemukan atau sebuah "
 "redireksi error terjadi."
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3035,7 +3058,7 @@ msgstr ""
 "keluaran\n"
 "    adalah status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3049,7 +3072,7 @@ msgstr ""
 "error jika tidak dijalankan\n"
 "    dalam sebuah login shell."
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3108,7 +3131,7 @@ msgstr ""
 "    Mengembalikan sukses atau status dari perintah yang dijalankan; tidak-"
 "nol jika sebuah error terjadi."
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3129,7 +3152,7 @@ msgstr ""
 "    Status dari perintah yang ditempatkan di foreground, atau gagal jika "
 "sebuah error terjadi."
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3153,7 +3176,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali pengontrol pekerjaan tidak aktif atau "
 "sebuah error terjadi."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3199,7 +3222,7 @@ msgstr ""
 "   Mengembalikan sukses kecuali NAMA tidak ditemukan atau sebuah opsi tidak "
 "valid telah diberikan."
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3240,7 +3263,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali POLA tidak ditemukan atau opsi tidak valid "
 "diberikan."
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3315,7 +3338,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3363,7 +3386,7 @@ msgstr ""
 "sebuah error terjadi.\n"
 "    Jika -x digunakan, mengembalikan status keluar dari PERINTAH."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3395,7 +3418,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali ada sebuah opsi tidak valid atau JOBSPEC "
 "diberikan."
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3438,7 +3461,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3526,7 +3549,7 @@ msgstr ""
 "    Jika ARG terakhir dievaluasi ke 0, membiarkan kembali ke 1; 0 "
 "dikembalikan Jika tidak."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3616,7 +3639,7 @@ msgstr ""
 "kehabisan waktu,\n"
 "    atau sebuah berkas deskripsi disupply sebagai sebuah argumen ke opsi -u."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3638,7 +3661,7 @@ msgstr ""
 "    Mengembalikan N, atau gagal jika shell tidak menjalan sebuah fungsi atau "
 "script."
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3810,7 +3833,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3847,7 +3870,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau "
 "sebuah NAMA adalah baca-saja."
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3882,7 +3905,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau NAMA "
 "tidak valid."
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3921,7 +3944,7 @@ msgstr ""
 "    Mengembalikan sukses kecual sebuah opsi tidak valid diberikan atau NAMA "
 "tidak valid."
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3939,7 +3962,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan sukses kecuali N adalah negatif atau lebih besar dari $#."
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3965,7 +3988,7 @@ msgstr ""
 "BERKAS; gagal jika\n"
 "    NAMA BERKAS tidak dapat dibaca."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3991,7 +4014,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali pengontrol pekerjaan tidak aktif atau "
 "sebuah error terjadi."
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4151,7 +4174,7 @@ msgstr ""
 "EXPR mengevaluasi ke\n"
 "       salah atau sebuah argumen tidak valid diberikan."
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4163,7 +4186,7 @@ msgstr ""
 "    Ini sinonim untuk \"test\" builtin, tetapi argumen terakhir\n"
 "    harus berupa sebuah literal `]', untuk mencocokan dengan pembukaan `['."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4183,7 +4206,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Selalu sukses."
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4256,7 +4279,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah SIGSPEC adalah tidak valid atau "
 "sebuah opsi tidak valid diberikan."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4318,7 +4341,7 @@ msgstr ""
 "    Mengembalikan sukses jika seluruh dari NAMA ditemukan; gagal jika ada "
 "yang tidak ditemukan."
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4406,7 +4429,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4444,7 +4467,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali MODE tidak valid atau sebuah opsi tidak "
 "valid diberikan."
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -4476,7 +4499,7 @@ msgstr ""
 "tidak\n"
 "    valid diberikan."
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4501,7 +4524,7 @@ msgstr ""
 "tidak valid\n"
 "    diberikan."
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4525,7 +4548,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4555,7 +4578,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4592,7 +4615,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4620,7 +4643,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Status kembali adalah status kembali dari PIPELINE."
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4638,7 +4661,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan setatus dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4676,7 +4699,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4694,7 +4717,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4711,7 +4734,20 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4736,7 +4772,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan sukses kecuali NAMA adalah baca-saja."
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4755,7 +4791,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dieksekusi."
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4782,7 +4818,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari pekerjaan yang dilanjutkan."
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4800,7 +4836,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan 1 jika EXPRESI dievaluasi ke 0; mengembalikan 0 jika tidak."
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4857,7 +4893,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    0 atau 1 tergantun dari nilai dari EKSPRESI."
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4971,7 +5007,7 @@ msgstr ""
 "digunakan untuk menentukan dimana\n"
 "    \t\tperintah seharusnya disimpan dalam daftar sejarah.\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5031,7 +5067,7 @@ msgstr ""
 "atau pemindahan\n"
 "    direktori gagal."
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5086,7 +5122,7 @@ msgstr ""
 "atau pemindahan\n"
 "    direktori gagal."
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5142,7 +5178,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali ada sebuah opsi tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5180,7 +5216,7 @@ msgstr ""
 "tidak valid diberikan\n"
 "    atau OPTNAME dinonaktifkan."
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5235,7 +5271,7 @@ msgstr ""
 "sebuah penulisan atau penempatan\n"
 "    error terjadi."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5278,7 +5314,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5301,7 +5337,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -5359,10 +5395,10 @@ msgstr ""
 "tidak memiliki\n"
 "    spesifikasi penyelesaian yang terdefinisi."
 
-#: builtins.c:1940
+#: builtins.c:1958
 #, fuzzy
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -5386,7 +5422,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -5428,6 +5466,13 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau "
 "ARRAY adalah baca-saja."
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid " "
 #~ msgstr " "
 
index ad8cdf55e63ea049f2a9579bd22d23bb72993847..6b29febe507d522710d8a525fa9ab5dcf442fff6 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index 6d4ac6bcc24faf22640e81f846c225373adfb0ef..15543c04201b1a086dc351b961df8c283bc87516 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU bash 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2000-03-21 19:30+0900\n"
 "Last-Translator: Kyoichi Ozaki <k@afromania.org>\n"
 "Language-Team: Japanese <ja@li.org>\n"
@@ -38,7 +38,7 @@ msgstr ""
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó"
@@ -249,12 +249,22 @@ msgstr ""
 msgid "write error: %s"
 msgstr "¥Ñ¥¤¥×¥¨¥é¡¼: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr ""
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, fuzzy, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: ¤¢¤¤¤Þ¤¤¤Ê¥ê¥À¥¤¥ì¥¯¥È"
@@ -290,7 +300,7 @@ msgstr ""
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: Æɤ߹þ¤ß¤Î¤ß¤Î´Ø¿ô"
@@ -329,7 +339,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -345,7 +355,7 @@ msgstr "%s: 
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: ¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó"
@@ -487,37 +497,37 @@ msgstr "̤
 msgid "expression expected"
 msgstr "ɽ¸½¤ò´üÂÔ¤·¤Æ¤Þ¤¹"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: Å¸³«¤µ¤ì¤Æ¤¤¤Ê¤¤ÊÑ¿ô"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -816,32 +826,32 @@ msgstr "%c
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "¥Ñ¥¤¥×¥¨¥é¡¼: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: À©¸Â:  `/' ¤ò¥³¥Þ¥ó¥É̾¤Ëµ­½Ò¤Ç¤­¤Þ¤»¤ó"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "fd %d ¤ò fd 0 ¤ËÊ£À½¤Ç¤­¤Þ¤»¤ó: %s"
@@ -939,143 +949,143 @@ msgstr "check_bash_input: fd %d 
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: ¥×¥í¥»¥¹ID(%d)¤Ï¸ºß¤·¤Þ¤»¤ó!\n"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "̤ÃΤΥ·¥°¥Ê¥ë #%d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "½ªÎ»"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Ää»ß"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Ää»ß"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "¼Â¹ÔÃæ"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "½ªÎ»(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "½ªÎ» %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "̤ÃΤΥ¹¥Æ¡¼¥¿¥¹"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(¥³¥¢¥À¥ó¥×) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, fuzzy, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "ÂÔµ¡: pid %d ¤³¤Î¥·¥§¥ë¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: ¥¸¥ç¥Ö¤Ï½ªÎ»¤·¤Þ¤·¤¿"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "¥¹¥í¥Ã¥È %3d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (¥³¥¢¥À¥ó¥×)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp ¼ºÇÔ: %s"
 
-#: jobs.c:3618
+#: jobs.c:3623
 #, fuzzy
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs: ¥é¥¤¥ó discipline: %s"
 
-#: jobs.c:3628
+#: jobs.c:3633
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs: getpgrp ¼ºÇÔ: %s"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "¤³¤Î¥·¥§¥ë¤Ë¤Ï¥¸¥ç¥ÖÀ©¸æ¤¬¤¢¤ê¤Þ¤»¤ó"
 
@@ -1309,7 +1319,7 @@ msgstr "
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»(EOF)¤¬`%c'¤ò¸«ÉÕ¤±¤ë¤Þ¤¨¤ËȯÀ¸"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1319,12 +1329,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: °­¤¤Àܳ `%d'"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1671,12 +1681,12 @@ msgstr "%s: 
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: ¤³¤Î¤è¤¦¤Ë»ØÄê¤Ç¤­¤Þ¤»¤ó"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "°­¤¤ÂåÆþ: `%s' ¤¬ %s ¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -2129,81 +2139,91 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until ¥³¥Þ¥ó¥É·²; do ¥³¥Þ¥ó¥É·²; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 #, fuzzy
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function Ì¾Á° { ¥³¥Þ¥ó¥É·² ; } or Ì¾Á° () { ¥³¥Þ¥ó¥É·² ; } "
 
-#: builtins.c:200
+#: builtins.c:202
 #, fuzzy
 msgid "{ COMMANDS ; }"
 msgstr "{ ¥³¥Þ¥ó¥É·² }"
 
-#: builtins.c:202
+#: builtins.c:204
 msgid "job_spec [&]"
 msgstr ""
 
-#: builtins.c:204
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "ɽ¸½¤ò´üÂÔ¤·¤Æ¤Þ¤¹"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "ɽ¸½¤ò´üÂÔ¤·¤Æ¤Þ¤¹"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 #, fuzzy
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [¥Ç¥£¥ì¥¯¥È¥ê | +N | -N ] [-n]"
 
-#: builtins.c:215
+#: builtins.c:217
 #, fuzzy
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [+N | -N] [-n]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 #, fuzzy
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o Ä¹¤¤¥ª¥×¥·¥ç¥ó] optname [optname...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 #, fuzzy
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "type [-apt] Ì¾Á° [̾Á° ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2223,7 +2243,7 @@ msgid ""
 "    defined."
 msgstr ""
 
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2236,7 +2256,7 @@ msgstr ""
 "[̾Á°]¤òÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¨¥¤¥ê¥¢¥¹¤«¤éºï½ü¤·¤Ê¤µ¤¤¡£¤â¤·¡¢-a ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ"
 "¤¿¤Ê¤é¡¢"
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2275,7 +2295,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2286,7 +2306,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2297,7 +2317,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2311,7 +2331,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2327,7 +2347,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2360,7 +2380,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2376,7 +2396,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2386,7 +2406,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2394,7 +2414,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2402,7 +2422,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2421,7 +2441,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2457,14 +2477,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2479,7 +2499,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2510,7 +2530,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2523,7 +2543,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2550,7 +2570,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2562,7 +2582,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2603,7 +2623,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2626,7 +2646,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2634,7 +2654,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2643,7 +2663,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2673,7 +2693,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2685,7 +2705,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2699,7 +2719,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2723,7 +2743,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2745,7 +2765,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2779,7 +2799,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2803,7 +2823,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2820,7 +2840,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2842,7 +2862,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2887,7 +2907,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2931,7 +2951,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2943,7 +2963,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3025,7 +3045,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3045,7 +3065,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3064,7 +3084,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3084,7 +3104,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3095,7 +3115,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3109,7 +3129,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3123,7 +3143,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3200,7 +3220,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3208,7 +3228,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3220,7 +3240,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3256,7 +3276,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3286,7 +3306,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3330,7 +3350,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3348,7 +3368,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3365,7 +3385,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3379,7 +3399,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3392,7 +3412,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3409,7 +3429,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3429,7 +3449,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3445,7 +3465,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3456,7 +3476,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3477,7 +3497,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3488,7 +3508,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3499,7 +3519,20 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3513,7 +3546,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3524,7 +3557,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3538,7 +3571,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3549,7 +3582,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3577,7 +3610,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3631,7 +3664,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3662,7 +3695,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3689,7 +3722,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3718,7 +3751,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3739,7 +3772,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3769,7 +3802,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3791,7 +3824,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3804,7 +3837,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3833,9 +3866,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3859,7 +3892,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3869,6 +3904,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid "Missing `}'"
 #~ msgstr "`}'¤¬¤¢¤ê¤Þ¤»¤ó"
 
index 7b04f8fe245a5c92ee4e734c1d28d72272f3138a..3b3360c2fc3a0bd4c2727f81e4f2bc2fc1a5b610 100644 (file)
Binary files a/po/lt.gmo and b/po/lt.gmo differ
index 3b0a3c129aac42382f7409310307d04e3af47101..b783b81efefb1a95e0cc7dc4fd25a0cc5b98bb0e 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -1,14 +1,14 @@
-# translation of bash-3.2.po to Lithuanian
+# translation of bash-4.0-pre1.po to Lithuanian
 # Copyright (C) 2008 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
 #
 # Gintautas Miliauskas <gintas@akl.lt>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: bash-3.2\n"
+"Project-Id-Version: bash-4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
-"PO-Revision-Date: 2008-07-28 03:07-0400\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
+"PO-Revision-Date: 2009-02-13 16:28+0200\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
 "MIME-Version: 1.0\n"
@@ -42,7 +42,7 @@ msgstr "%s: nepavyko priskirti prie neskaitinio indekso"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nepavyko sukurti: %s"
@@ -130,14 +130,14 @@ msgid "line %d: "
 msgstr ""
 
 #: builtins/common.c:139 error.c:260
-#, fuzzy, c-format
+#, c-format
 msgid "warning: "
-msgstr "%s: įspėjimas: "
+msgstr "įspėjimas: "
 
 #: builtins/common.c:153
-#, fuzzy, c-format
+#, c-format
 msgid "%s: usage: "
-msgstr "%s: įspėjimas: "
+msgstr "%s: naudojimas: "
 
 #: builtins/common.c:166 test.c:822
 msgid "too many arguments"
@@ -161,7 +161,7 @@ msgstr "%s: nerasta"
 #: builtins/common.c:214 shell.c:787
 #, c-format
 msgid "%s: invalid option"
-msgstr "%s: nesamas parametras"
+msgstr "%s: negalimas parametras"
 
 #: builtins/common.c:221
 #, c-format
@@ -174,14 +174,12 @@ msgid "`%s': not a valid identifier"
 msgstr "`%s': netaisyklingas identifikatorius"
 
 #: builtins/common.c:238
-#, fuzzy
 msgid "invalid octal number"
-msgstr "netaisyklingas signalo numeris"
+msgstr "netaisyklingas aštuonetainis skaičius"
 
 #: builtins/common.c:240
-#, fuzzy
 msgid "invalid hex number"
-msgstr "netaisyklingas skaičius"
+msgstr "netaisyklingas šešioliktainis skaičius"
 
 #: builtins/common.c:242 expr.c:1255
 msgid "invalid number"
@@ -249,12 +247,22 @@ msgstr "%s: ne vidinė aplinkos komanda"
 msgid "write error: %s"
 msgstr "rašymo klaida: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: klaida skaitant esamą aplanką: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: dviprasmis darbo aprašymas"
@@ -290,7 +298,7 @@ msgstr "galima naudoti tik funkcijoje"
 msgid "cannot use `-f' to make functions"
 msgstr "negalima naudoti „-f“ funkcijoms kurti"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkcija tik skaitymui"
@@ -329,7 +337,7 @@ msgstr "%s: nedinamiškai įkrauta"
 msgid "%s: cannot delete: %s"
 msgstr "%s: nepavyko ištrinti: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -345,7 +353,7 @@ msgstr "%s: ne paprastas failas"
 msgid "%s: file is too large"
 msgstr "%s: failas per didelis"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: negalima vykdyti dvejetainių failų"
@@ -370,9 +378,9 @@ msgid "There are stopped jobs.\n"
 msgstr "Yra sustabdytų darbų.\n"
 
 #: builtins/exit.def:122
-#, fuzzy, c-format
+#, c-format
 msgid "There are running jobs.\n"
-msgstr "Yra sustabdytų darbų.\n"
+msgstr "Yra veikiančių darbų.\n"
 
 #: builtins/fc.def:261
 msgid "no command found"
@@ -497,37 +505,37 @@ msgstr "Nežinoma klaida"
 msgid "expression expected"
 msgstr "tikėtasi išraiškos"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: netaisyklinga failo deskriptoriaus specifikacija"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: netaisyklingas failo deskriptorius: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s: nesamas parametras"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: nesamas parametras"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: netaisyklingas veiksmo pavadinimas"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: ne masyvo kintamasis"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -542,9 +550,9 @@ msgid "`%c': invalid format character"
 msgstr "„%c“: netaisyklingas formato simbolis"
 
 #: builtins/printf.def:571
-#, fuzzy, c-format
+#, c-format
 msgid "warning: %s: %s"
-msgstr "%s: įspėjimas: "
+msgstr "įspėjimas: %s: %s"
 
 #: builtins/printf.def:750
 msgid "missing hex digit for \\x"
@@ -757,7 +765,7 @@ msgstr ""
 #: builtins/ulimit.def:465 builtins/ulimit.def:765
 #, c-format
 msgid "%s: cannot modify limit: %s"
-msgstr "%s: nepayko pakeisti limito: %s"
+msgstr "%s: nepavyko pakeisti limito: %s"
 
 #: builtins/umask.def:118
 msgid "octal number"
@@ -818,32 +826,32 @@ msgstr "\alaukiant įvedimo baigėsi laikas: automatiškai atsijungta\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "nepavyko peradresuoti standartinio įvedimo iš /dev/null: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: „%c“: netaisyklingas formato simbolis"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "rašymo klaida: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: apribota: negalima naudoti „/“ komandų pavadinimuose"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: komanda nerasta"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: blogas interpretatorius"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "nepavyko dublikuoti fd %d į fd %d"
@@ -878,7 +886,7 @@ msgstr "sąlygos išraiškoje tikėtasi „:“"
 
 #: expr.c:781
 msgid "exponent less than 0"
-msgstr "eksponentas mažesnis už 0"
+msgstr "eksponentė mažesnis už 0"
 
 #: expr.c:826
 msgid "identifier expected after pre-increment or pre-decrement"
@@ -938,140 +946,140 @@ msgstr "save_bash_input: naujam fd %d buferis jau egzistuoja"
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "trinamas sustabdytas darbas %d procesų grupėje %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: tokio pid nėra"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld nėra šios aplinkos dukterinis procesas"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: nėra proceso %ld įrašo"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: darbas %d yra sustabdytas"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: darbas užsibaigė"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: darbas %d jau fone"
 
-#: jobs.c:3487
-#, fuzzy, c-format
+#: jobs.c:3492
+#, c-format
 msgid "%s: line %d: "
-msgstr "%s: įspėjimas: "
+msgstr "%s: %d eilutė: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "šioje aplinkoje nėra darbų valdymo"
 
@@ -1090,9 +1098,8 @@ msgstr ""
 "malloc: %s:%d: prielaida pažeista\r\n"
 
 #: lib/malloc/malloc.c:313
-#, fuzzy
 msgid "unknown"
-msgstr "%s: adresas nežinomas"
+msgstr "nežinoma"
 
 #: lib/malloc/malloc.c:797
 msgid "malloc: block on free list clobbered"
@@ -1301,7 +1308,7 @@ msgstr "Naudokite „%s“, jei norite išeiti iš ap.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "netikėta failo pabaiga ieškant atitinkamo „)“"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: funkcija „%s“ nerasta"
@@ -1311,12 +1318,12 @@ msgstr "completion: funkcija „%s“ nerasta"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: blogas jungtukas  „%d“"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: „%c“: netaisyklingas formato simbolis"
@@ -1347,7 +1354,7 @@ msgstr "nepavyko sukurti laikino failo „here“ dokumentui: %s"
 
 #: redir.c:517
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
-msgstr "/dev/(tcp|udp)/komp/prievadas nepalaikoma be tinklo"
+msgstr "/dev/(tcp|udp)/serveris/prievadas nepalaikoma be tinklo"
 
 #: redir.c:1023
 msgid "redirection error: cannot duplicate fd"
@@ -1450,7 +1457,7 @@ msgstr ""
 
 #: siglist.c:74
 msgid "ABORT instruction"
-msgstr ""
+msgstr "ABORT instrukcija"
 
 #: siglist.c:78
 msgid "EMT instruction"
@@ -1458,7 +1465,7 @@ msgstr ""
 
 #: siglist.c:82
 msgid "Floating point exception"
-msgstr ""
+msgstr "Slankaus kablelio klaida"
 
 #: siglist.c:86
 msgid "Killed"
@@ -1471,7 +1478,7 @@ msgstr "sintaksės klaida"
 
 #: siglist.c:94
 msgid "Segmentation fault"
-msgstr ""
+msgstr "Segmentacijos klaida"
 
 #: siglist.c:98
 msgid "Bad system call"
@@ -1483,12 +1490,11 @@ msgstr ""
 
 #: siglist.c:106
 msgid "Alarm clock"
-msgstr ""
+msgstr "Žadintuvas"
 
 #: siglist.c:110
-#, fuzzy
 msgid "Terminated"
-msgstr "apribota"
+msgstr "Nutraukta"
 
 #: siglist.c:114
 msgid "Urgent IO condition"
@@ -1496,7 +1502,7 @@ msgstr ""
 
 #: siglist.c:118
 msgid "Stopped (signal)"
-msgstr ""
+msgstr "Sustabdyta (signalas)"
 
 #: siglist.c:126
 msgid "Continue"
@@ -1508,11 +1514,11 @@ msgstr ""
 
 #: siglist.c:138
 msgid "Stopped (tty input)"
-msgstr ""
+msgstr "Sustabdyta (tty įvedimas)"
 
 #: siglist.c:142
 msgid "Stopped (tty output)"
-msgstr ""
+msgstr "Sustabdyta (tty išvedimas)"
 
 #: siglist.c:146
 msgid "I/O ready"
@@ -1520,11 +1526,11 @@ msgstr ""
 
 #: siglist.c:150
 msgid "CPU limit"
-msgstr ""
+msgstr "CPU riba"
 
 #: siglist.c:154
 msgid "File limit"
-msgstr ""
+msgstr "Failų riba"
 
 #: siglist.c:158
 msgid "Alarm (virtual)"
@@ -1536,7 +1542,7 @@ msgstr ""
 
 #: siglist.c:166
 msgid "Window changed"
-msgstr ""
+msgstr "Langas pakeistas"
 
 #: siglist.c:170
 msgid "Record lock"
@@ -1564,7 +1570,7 @@ msgstr ""
 
 #: siglist.c:194
 msgid "migrate process to another CPU"
-msgstr ""
+msgstr "proceso migravimas į kitą CPU"
 
 #: siglist.c:198
 msgid "programming error"
@@ -1660,12 +1666,12 @@ msgstr "%s: blogas keitinys"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: negalima tokiu būdu priskirti"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "blogas keitinys: trūksta „%s“ %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "nėra atitikmenų: %s"
@@ -1765,7 +1771,7 @@ msgstr ""
 #: version.c:46
 #, fuzzy
 msgid "Copyright (C) 2009 Free Software Foundation, Inc."
-msgstr "Autorinės teisės (C) 2006 Free Software Foundation, Inc.\n"
+msgstr "Autorinės teisės (C) 2008 Free Software Foundation, Inc."
 
 #: version.c:47
 msgid ""
@@ -2086,75 +2092,83 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr ""
 
 #: builtins.c:198
-msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgid "coproc [NAME] command [redirections]"
 msgstr ""
 
 #: builtins.c:200
-msgid "{ COMMANDS ; }"
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:202
-msgid "job_spec [&]"
+msgid "{ COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:204
-#, fuzzy
-msgid "(( expression ))"
-msgstr "tikėtasi išraiškos"
+msgid "job_spec [&]"
+msgstr ""
 
 #: builtins.c:206
-#, fuzzy
-msgid "[[ expression ]]"
-msgstr "tikėtasi išraiškos"
+msgid "(( expression ))"
+msgstr "(( išraiška ))"
 
 #: builtins.c:208
+msgid "[[ expression ]]"
+msgstr "[[ išraiška ]]"
+
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr ""
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr ""
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr ""
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 #, fuzzy
 msgid ""
 "Define or display aliases.\n"
@@ -2183,7 +2197,7 @@ msgstr ""
 "    išskleidžiamas.  „alias“ grąžina „true“, nebent duotas VARDAS, kuriam\n"
 "    neaprašytas joks alternatyvusis vardas."
 
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2196,7 +2210,7 @@ msgstr ""
 "Pašalinti VARDUS iš aprašytų alternatyviųjų vardų sąrašo.  Jei nurodyta\n"
 "    nuostata -a, pašalinti visus alternatyviuosius vardus."
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2235,7 +2249,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2246,7 +2260,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:334
+#: builtins.c:338
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2260,7 +2274,7 @@ msgstr ""
 "Tęsti kitą FOR, WHILE arba UNTIL ciklo iteraciją.\n"
 "    Jei N nurodytas, tęsti ciklą, esantį N lygmenų virš esamo."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2274,7 +2288,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2299,7 +2313,7 @@ msgstr ""
 "    IŠRAIŠKOS reikšmė nurodo, per kiek kvietimo freimų grįžti nuo\n"
 "    esamo; viršutinis freimas yra 0."
 
-#: builtins.c:379
+#: builtins.c:383
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2344,7 +2358,7 @@ msgstr ""
 "    užuot sekus simbolines nuorodas; parametras -L nurodo, kad turi būti\n"
 "    sekama simbolinėmis nuorodomis."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2360,7 +2374,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2371,7 +2385,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Jokio efekto; komanda nieko nedaro.  Grąžinamas klaidos kodas 0."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2379,7 +2393,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 #, fuzzy
 msgid ""
 "Return an unsuccessful result.\n"
@@ -2388,7 +2402,7 @@ msgid ""
 "    Always fails."
 msgstr "Grąžinti nesėkmingą rezultatą."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2407,7 +2421,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2443,14 +2457,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2465,7 +2479,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2496,7 +2510,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2509,7 +2523,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2536,7 +2550,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2548,7 +2562,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2589,7 +2603,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2612,7 +2626,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2624,7 +2638,7 @@ msgstr ""
 "nustatomas\n"
 "    paskutinės vykdytos komandos klaidos kodas."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2633,7 +2647,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2663,7 +2677,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2675,7 +2689,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2689,7 +2703,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2713,7 +2727,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2735,7 +2749,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2769,7 +2783,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2793,7 +2807,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2810,7 +2824,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2832,7 +2846,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2877,7 +2891,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2921,7 +2935,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2933,7 +2947,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3015,7 +3029,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3035,7 +3049,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3054,7 +3068,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3074,7 +3088,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3085,7 +3099,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 #, fuzzy
 msgid ""
 "Execute commands from a file in the current shell.\n"
@@ -3104,7 +3118,7 @@ msgstr ""
 "    Jei nurodyta ARGUMENTŲ, jie tampa poziciniais parametrais iškvietus\n"
 "    FAILĄ."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3118,7 +3132,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3195,7 +3209,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3203,7 +3217,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3215,7 +3229,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3251,7 +3265,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3281,7 +3295,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3325,7 +3339,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3343,7 +3357,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3360,7 +3374,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3374,7 +3388,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3387,7 +3401,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3404,7 +3418,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3424,7 +3438,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3440,7 +3454,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3451,7 +3465,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3472,7 +3486,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -3486,7 +3500,7 @@ msgstr ""
 "Išskleisti ir vykdyti KOMANDAS tol, kol galutinė komanda iš\n"
 "    „while“ komandų grąžina klaidos kodą 0."
 
-#: builtins.c:1585
+#: builtins.c:1589
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -3500,7 +3514,20 @@ msgstr ""
 "Išskleisti ir vykdyti KOMANDAS tol, kol galutinė komanda iš\n"
 "    „until“ komandų grąžina klaidos kodą, nelygų 0."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3514,7 +3541,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -3528,7 +3555,7 @@ msgstr ""
 "Vykdyti eilę komandų grupėje.  Tai yra vienas iš būdų nukreipti\n"
 "    visos eilės komandų įvedimą/išvedimą."
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3542,7 +3569,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3553,7 +3580,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3581,7 +3608,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3635,7 +3662,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3666,7 +3693,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3693,7 +3720,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3722,7 +3749,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3743,7 +3770,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -3785,7 +3812,7 @@ msgstr ""
 "    Jei pateiktas parametras -v, išvedimas įrašomas į aplinkos kintamąjį\n"
 "    KINT, užuot spausdinus į standartinį išvedimą."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3807,7 +3834,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -3825,7 +3852,7 @@ msgstr ""
 "    Jei pateiktas nebūtinasis ŽODŽIO argumentas, išvedami įrašai,\n"
 "    atitinkantys ŽODĮ."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3854,9 +3881,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3880,7 +3907,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3890,6 +3919,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid " "
 #~ msgstr " "
 
index b6d2501cd43aa8e97c8c49a88e0b4c1c68237106..c56b4761b2a998376de843fba04c8e8a338b6312 100644 (file)
Binary files a/po/nl.gmo and b/po/nl.gmo differ
index 3d4e0ace7cd80d22b6d5c868480de25027672733..6c396064e2c9d3ba442cb3c188ab92019dc89398 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -24,7 +24,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2008-09-21 19:58+0200\n"
 "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -58,7 +58,7 @@ msgstr "%s: niet-numerieke index is niet mogelijk"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: een index is nodig bij toekenning aan associatief array"
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "Kan %s niet aanmaken: %s"
@@ -264,12 +264,22 @@ msgstr "%s: is geen ingebouwde opdracht van de shell"
 msgid "write error: %s"
 msgstr "schrijffout: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: fout tijdens bepalen van huidige map: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: taakaanduiding is niet eenduidig"
@@ -305,7 +315,7 @@ msgstr "kan alleen worden gebruikt binnen een functie"
 msgid "cannot use `-f' to make functions"
 msgstr "'-f' kan niet gebruikt worden om een functie te definiëren"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: is een alleen-lezen functie"
@@ -344,7 +354,7 @@ msgstr "%s: is niet dynamisch geladen"
 msgid "%s: cannot delete: %s"
 msgstr "Kan %s niet verwijderen: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -360,7 +370,7 @@ msgstr "%s: is geen normaal bestand"
 msgid "%s: file is too large"
 msgstr "%s: bestand is te groot"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: kan een binair bestand niet uitvoeren"
@@ -512,38 +522,38 @@ msgstr "Onbekende fout"
 msgid "expression expected"
 msgstr "uitdrukking werd verwacht"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: ongeldige aanduiding van bestandsdescriptor"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: ongeldige bestandsdescriptor: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: ongeldig regelaantal"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: ongeldig array-begin"
 
 # Quantum is een hoeveelheid regels, een getal.
 # Callback is de aan te roepen functie, maar onnodig in de vertaling.
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: ongeldige hoeveelheid"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr "lege naam van array-variabele"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr "ondersteuning van arrayvariabelen is vereist"
 
@@ -885,31 +895,31 @@ msgstr "\awachten op invoer duurde te lang -- automatisch afgemeld\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "kan standaardinvoer niet omleiden vanaf /dev/null: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: '%c': ongeldig opmaakteken"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 msgid "pipe error"
 msgstr "pijpfout"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: beperkte modus: '/' in opdrachtnamen is niet toegestaan"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: opdracht niet gevonden"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: ongeldige interpreter"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "kan bestandsdescriptor %d niet dupliceren naar bestandsdescriptor %d"
@@ -1006,140 +1016,140 @@ msgstr ""
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline(): procesgroep van pijp"
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "afgesplitst PID %d hoort bij draaiende taak %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "verwijderen van gepauzeerde taak %d met procesgroep %ld..."
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process(): proces %5ld (%s) in de pijplijn"
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process(): PID %5ld (%s) staat gemarkeerd als nog actief"
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid(): PID %ld bestaat niet"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr "Signaal %d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Klaar"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Gepauzeerd"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Gepauzeerd(%s)"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Wordt uitgevoerd"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Klaar(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Exit %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Onbekende afsluitwaarde"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(geheugendump gemaakt) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (werkmap: %s)"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "instellen van procesgroep %2$ld van dochter %1$ld"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait(): PID %ld is geen dochterproces van deze shell"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for(): proces %ld is nergens geregistreerd"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job(): taak %d is gepauzeerd"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: taak is afgesloten"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: taak %d draait al op de achtergrond"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: regel %d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (geheugendump gemaakt)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(werkmap is nu: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp() is mislukt"
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: lijnprotocol"
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid()"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "kan procesgroep (%d) van terminal niet instellen"
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "er is geen taakbesturing in deze shell"
 
@@ -1371,7 +1381,7 @@ msgstr "Gebruik \"%s\" om de shell te verlaten.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "onverwacht bestandseinde tijdens zoeken naar bijpassende ')'"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion(): functie '%s' niet gevonden"
@@ -1381,12 +1391,12 @@ msgstr "completion(): functie '%s' niet gevonden"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert(): %s: lege COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command(): ongeldige verbinder '%d'"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf(): '%c': ongeldig opmaakteken"
@@ -1729,12 +1739,12 @@ msgstr "%s: ongeldige vervanging"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: kan niet op deze manier toewijzen"
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "ongeldige vervanging: geen afsluitende '`' in %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "geen overeenkomst: %s"
@@ -2180,50 +2190,54 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until OPDRACHTEN; do OPDRACHTEN; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function NAAM { OPDRACHTEN ; }   of   NAAM () { OPDRACHTEN ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 msgid "{ COMMANDS ; }"
 msgstr "{ OPDRACHTEN ; }"
 
-#: builtins.c:202
+#: builtins.c:204
 msgid "job_spec [&]"
 msgstr "TAAKAANDUIDING [&]"
 
-#: builtins.c:204
+#: builtins.c:206
 msgid "(( expression ))"
 msgstr "(( EXPRESSIE ))"
 
-#: builtins.c:206
+#: builtins.c:208
 msgid "[[ expression ]]"
 msgstr "[[ EXPRESSIE ]]"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr "variables - enkele shell-variabelen"
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | MAP]"
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [OPTIENAAM...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v VARIABELE] OPMAAK [ARGUMENTEN]"
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
@@ -2233,7 +2247,7 @@ msgstr ""
 "                   [-W WOORDENLIJST] [-F FUNCTIE] [-C OPDRACHT]\n"
 "                   [-X FILTERPATROON] [-P PREFIX] [-S SUFFIX]  [NAAM...]"
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
@@ -2242,11 +2256,11 @@ msgstr ""
 "                 [-W WOORDENLIJST] [-F FUNCTIE] [-C OPDRACHT]\n"
 "                 [-X FILTERPATROON] [-P PREFIX] [-S SUFFIX]  [WOORD]"
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "compopt [-o|+o OPTIE] [NAAM...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
@@ -2254,7 +2268,16 @@ msgstr ""
 "mapfile [-n AANTAL] [-O BEGIN] [-s AANTAL] [-t] [-u BESTANDSDESCRIPTOR]\n"
 "                 [-C FUNCTIE] [-c HOEVEELHEID] [ARRAY]"
 
-#: builtins.c:250
+#: builtins.c:242
+#, fuzzy
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n AANTAL] [-O BEGIN] [-s AANTAL] [-t] [-u BESTANDSDESCRIPTOR]\n"
+"                 [-C FUNCTIE] [-c HOEVEELHEID] [ARRAY]"
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2286,7 +2309,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij er een NAAM zonder VERVANGING gegeven is."
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2301,7 +2324,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij NAAM geen bestaande alias is."
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2377,7 +2400,7 @@ msgstr ""
 "fout\n"
 "    optrad."
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2391,7 +2414,7 @@ msgstr ""
 "    Als N gegeven is, dan worden N niveaus van lussen beëindigd.\n"
 "    De afsluitwaarde is 0, tenzij N kleiner dan 1 is."
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2405,7 +2428,7 @@ msgstr ""
 "    Als N gegeven is, dan wordt N niveaus hoger doorgegaan.    De "
 "afsluitwaarde is 0, tenzij N kleiner dan 1 is."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2429,7 +2452,7 @@ msgstr ""
 "    De afsluitwaarde is die van de uitgevoerde shell-functie, of 1\n"
 "    of 1 als INGEBOUWDE_SHELLFUNCTIE geen ingebouwde shell-functie is."
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2455,7 +2478,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij de shell momenteel geen functie uitvoert\n"
 "    of EXPRESSIE ongeldig is."
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2509,7 +2532,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0 als de gewenste map ingesteld kon worden, anders 1."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2536,7 +2559,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd\n"
 "    of de huidige map niet bepaald kon worden."
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2546,7 +2569,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Doet niets; de opdracht heeft geen effect; de afsluitwaarde is 0."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2554,7 +2577,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Geeft afsluitwaarde 0, horend bij \"gelukt\"."
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2562,7 +2585,7 @@ msgid ""
 "    Always fails."
 msgstr "Geeft afsluitwaarde 1, horend bij \"mislukt\"."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2596,7 +2619,7 @@ msgstr ""
 "    De afsluitwaarde is die van de uitgevoerde OPDRACHT,\n"
 "    of 1 als de OPDRACHT niet gevonden is."
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2666,7 +2689,7 @@ msgstr ""
 "een\n"
 "    fout optreedt."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2675,7 +2698,7 @@ msgstr ""
 "Waarden en attributen van variabelen instellen.\n"
 "    Verouderd.  Zie 'help declare'."
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2700,7 +2723,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd, er een\n"
 "    fout optrad, of de shell geen functie aan het uitvoeren is."
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2752,7 +2775,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij een schrijffout optreedt."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2771,7 +2794,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij een schrijffout optreedt."
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2827,7 +2850,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij NAAM geen ingebouwde shell-opdracht is of\n"
 "    een fout optreedt."
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2848,7 +2871,7 @@ msgstr ""
 "opdracht\n"
 "    leeg is."
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2924,7 +2947,7 @@ msgstr ""
 "    Normaliter ontleedt 'getopts' de positionele parameters: $0...$9.\n"
 "    Maar als er argumenten gegeven worden, dan worden deze ontleed."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2965,7 +2988,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij OPDRACHT niet gevonden wordt of er een\n"
 "    omleidingsfout optreedt."
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2977,7 +3000,7 @@ msgstr ""
 "    Beëindigt de shell met een afsluitwaarde van N.  Zonder N is de\n"
 "    afsluitwaarde die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2990,7 +3013,7 @@ msgstr ""
 "    Beëindigt een login-shell met een afsluitwaarde van N.  Geeft een\n"
 "    foutmelding als de huidige shell geen login-shell is."
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3045,7 +3068,7 @@ msgstr ""
 "    De afsluitwaarde die van de uitgevoerde opdracht, of 0, of niet-nul als\n"
 "    er een fout optreedt."
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3068,7 +3091,7 @@ msgstr ""
 "er\n"
 "    een fout optreedt."
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3092,7 +3115,7 @@ msgstr ""
 "    De afsluitwaarde is 0 tenzij taakbeheer uitgeschakeld is of er een fout\n"
 "    optreedt."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3134,7 +3157,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij NAAM niet gevonden wordt of een ongeldige\n"
 "    optie gegeven werd."
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3171,7 +3194,7 @@ msgstr ""
 "ongeldige\n"
 "    optie gegeven werd."
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3237,7 +3260,7 @@ msgstr ""
 "een\n"
 "    fout optreedt."
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3282,7 +3305,7 @@ msgstr ""
 "    fout optreedt.  Als '-x' gebruikt is, dan is de afsluitwaarde die van\n"
 "    OPDRACHT."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3314,7 +3337,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldige optie of TAAKAANDUIDING\n"
 "    gegeven werd."
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3359,7 +3382,7 @@ msgstr ""
 "een\n"
 "    fout optreedt."
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3448,7 +3471,7 @@ msgstr ""
 "    Als het laatste ARGUMENT evalueert tot 0, dan is de afsluitwaarde van\n"
 "    'let' 1; anders 0."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3532,7 +3555,7 @@ msgstr ""
 "    de tijdslimiet overschreden werd, of een ongeldige bestandsdescriptor\n"
 "    als argument van '-u' gegeven werd."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3553,7 +3576,7 @@ msgstr ""
 "    uitvoeren is."
 
 # Voor de duidelijkheid is de tejstvolgorde veranderd.
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3733,7 +3756,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3767,7 +3790,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of een\n"
 "    NAAM alleen-lezen is."
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3800,7 +3823,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij een ongeldige optie of NAAM gegeven werd."
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3836,7 +3859,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij een ongeldige optie of NAAM gegeven werd."
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3853,7 +3876,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0 tenzij N negatief is of groter dan $#."
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3878,7 +3901,7 @@ msgstr ""
 "gegeven\n"
 "    bestand, of 1 als dit bestand niet gelezen kan worden."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3903,7 +3926,7 @@ msgstr ""
 "    De afsluitwaarde is 0 tenzij taakbeheer uitgeschakeld is of er een fout\n"
 "    optreedt."
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4042,7 +4065,7 @@ msgstr ""
 "    De afsluitwaarde is 0 als EXPRESSIE waar is, 1 als EXPRESSIE onwaar is,\n"
 "    en 2 als een ongeldig argument gegeven werd."
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4054,7 +4077,7 @@ msgstr ""
 "    Dit is een synoniem voor de ingebouwde functie 'test', behalve dat\n"
 "    het laatste argument een ']' moet zijn, horend bij de begin-'['."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4073,7 +4096,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is altijd 0."
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4153,7 +4176,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldige optie of SIGNAALAANDUIDING\n"
 "    gegeven werd."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4205,7 +4228,7 @@ msgstr ""
 "            als de naam onbekend is\\ \n"
 "    De afsluitwaarde is 0 als elke NAAM gevonden werd, anders 1."
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4292,7 +4315,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of een\n"
 "    fout optreedt."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4328,7 +4351,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij MODUS ongeldig is of een ongeldige optie\n"
 "    gegeven werd."
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -4357,7 +4380,7 @@ msgstr ""
 "    De afsluitwaarde is die van ID, 1 als ID ongeldig si, of 2 als een\n"
 "    ongeldige optie gegeven werd."
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4381,7 +4404,7 @@ msgstr ""
 "    De afsluitwaarde is die van ID, 1 als ID ongeldig si, of 2 als een\n"
 "    ongeldige optie gegeven werd."
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4401,7 +4424,7 @@ msgstr ""
 "    dat element en worden de OPDRACHTEN uitgevoerd. \n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4428,7 +4451,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4465,7 +4488,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4492,7 +4515,7 @@ msgstr ""
 "    overdraagbare standaardopmaak.\n"
 "    De afsluitwaarde is die van de PIJPLIJN."
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4510,7 +4533,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4545,7 +4568,7 @@ msgstr ""
 "uitgevoerde\n"
 "    deelopdracht, of nul als geen enkele 'if' of 'elif' nul opleverde."
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4562,7 +4585,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4579,7 +4602,20 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4601,7 +4637,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij NAAM onveranderbaar is."
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4618,7 +4654,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4642,7 +4678,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de hervatte taak."
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4659,7 +4695,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 1 als de EXPRESSIE tot 0 evalueert; anders 0."
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4715,7 +4751,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0 of 1, afhankelijk van EXPRESSIE."
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4829,7 +4865,7 @@ msgstr ""
 "het\n"
 "                    geschiedeniscommentaarteken, gewoonlijk '#'\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4883,7 +4919,7 @@ msgstr ""
 "    mapwijziging mislukte.    De opdracht 'dirs' geeft de huidige "
 "mappenstapel weer."
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4932,7 +4968,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldig argument gegeven werd of de\n"
 "    mapwijziging mislukte."
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4983,7 +5019,7 @@ msgstr ""
 "een\n"
 "    fout optreedt."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5026,7 +5062,7 @@ msgstr ""
 "optie\n"
 "    gegeven werd."
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5078,7 +5114,7 @@ msgstr ""
 "een\n"
 "    fout optreedt."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5118,7 +5154,7 @@ msgstr ""
 "een\n"
 "    fout optreedt."
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5140,7 +5176,7 @@ msgstr ""
 "een\n"
 "    fout optreedt."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -5192,10 +5228,10 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of voor\n"
 "    NAAM is geen completeringsvoorschrift gedefinieerd."
 
-#: builtins.c:1940
+#: builtins.c:1958
 #, fuzzy
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -5219,7 +5255,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -5255,6 +5293,13 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij ARRAY alleen-lezen is of een ongeldige\n"
 "    optie gegeven werd."
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid "%s: invalid number"
 #~ msgstr "%s: ongeldig getal"
 
index 1c6c90fe9fba4bee1710237130bb88b05e714115..64edb447bb5936b8818183684c6de0f33f95fa5d 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index c67bbf14305e6bf77140e20caf0120668869eb94..8a88ff311200826b74d7b7f16a301c9ccbf2e12f 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2007-11-30 08:49+0100\n"
 "Last-Translator: Andrzej M. Krzysztofowicz <ankry@mif.pg.gda.pl>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -39,7 +39,7 @@ msgstr "%s: nie mo
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nie mo¿na utworzyæ: %s"
@@ -251,12 +251,22 @@ msgstr "%s: nie jest to polecenie pow
 msgid "write error: %s"
 msgstr "b³±d zapisu: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: b³±d przy okre¶laniu katalogu bie¿±cego: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: niejednoznaczne okre¶lenie zadania"
@@ -292,7 +302,7 @@ msgstr "mo
 msgid "cannot use `-f' to make functions"
 msgstr "nie mo¿na u¿ywaæ `-f' do tworzenia funkcji"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkcja tylko do odczytu"
@@ -331,7 +341,7 @@ msgstr "%s: nie jest 
 msgid "%s: cannot delete: %s"
 msgstr "%s: nie mo¿na usun±æ: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -347,7 +357,7 @@ msgstr "%s: nie jest zwyk
 msgid "%s: file is too large"
 msgstr "%s: plik jest za du¿y"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: nie mo¿na uruchomiæ pliku binarnego"
@@ -499,37 +509,37 @@ msgstr "Nieznany b
 msgid "expression expected"
 msgstr "spodziewano siê wyra¿enia"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: nieprawid³owo okre¶lony deskryptor pliku"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: nieprawid³owy deskryptor pliku: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s: nieprawid³owa opcja"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: nieprawid³owa opcja"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: nieprawid³owa nazwa akcji"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: nie jest zmienn± tablicow±"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -878,32 +888,32 @@ msgstr "\aprzekroczony czas oczekiwania na dane wej
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "nie mo¿na przekierowaæ standardowego wej¶cia z /dev/null: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': nieprawid³owy znak formatuj±cy"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "b³±d zapisu: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: ograniczony: nie mo¿na podawaæ `/' w nazwach poleceñ"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: nie znaleziono polecenia"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: z³y interpreter"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "nie mo¿na skopiowaæ deskryptora pliku %d do %d"
@@ -1000,140 +1010,140 @@ msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
 # ???
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "proces o PID %d wystêpuje w dzia³aj±cym zadaniu %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "usuwanie zatrzymanego zadania %d z grup± procesów %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: brak takiego PID-u"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: PID %ld nie jest potomkiem tej pow³oki"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Brak rekordu dla procesu %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: zadanie %d jest zatrzymane"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: zadanie zosta³o przerwane"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: zadanie %d ju¿ pracuje w tle"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: uwaga: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "w tej pow³oce nie ma kontroli zadañ"
 
@@ -1364,7 +1374,7 @@ msgstr "U
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "nieoczekiwany EOF podczas poszukiwania pasuj±cego `)'"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "uzupe³nienie: nie znaleziono funkcji `%s'"
@@ -1374,12 +1384,12 @@ msgstr "uzupe
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: z³y ³±cznik `%d'"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': nieprawid³owy znak formatuj±cy"
@@ -1724,12 +1734,12 @@ msgstr "%s: z
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: nie mo¿na przypisywaæ w ten sposób"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "z³e podstawienie: brak zamykaj±cego `%s' w %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "brak pasuj±cego: %s"
@@ -2154,75 +2164,85 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr ""
 
 #: builtins.c:198
-msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgid "coproc [NAME] command [redirections]"
 msgstr ""
 
 #: builtins.c:200
-msgid "{ COMMANDS ; }"
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:202
-msgid "job_spec [&]"
+msgid "{ COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:204
+msgid "job_spec [&]"
+msgstr ""
+
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "spodziewano siê wyra¿enia"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "spodziewano siê wyra¿enia"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr ""
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr ""
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr ""
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 #, fuzzy
 msgid ""
 "Define or display aliases.\n"
@@ -2250,7 +2270,7 @@ msgstr ""
 "    s³owa. Polecenie alias zwraca prawdê, chyba ¿e poda siê NAME, dla\n"
 "    którego nie zdefiniowano aliasu."
 
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2263,7 +2283,7 @@ msgstr ""
 "Usuwa wszystkie NAME z listy zdefiniowanych aliasów. Je¶li podano opcjê -a,\n"
 "    usuwane s± wszystkie definicje aliasów."
 
-#: builtins.c:285
+#: builtins.c:289
 #, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
@@ -2339,7 +2359,7 @@ msgstr ""
 "jako\n"
 "                         dane wej¶ciowe."
 
-#: builtins.c:322
+#: builtins.c:326
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2353,7 +2373,7 @@ msgstr ""
 "Rozpoczêcie nastêpnej iteracji pêtli FOR, WHILE lub UNTIL zawier±jacej\n"
 "    polecenie. Je¶li podano N, iteracja dotyczy pêtli N-tego poziomu."
 
-#: builtins.c:334
+#: builtins.c:338
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2367,7 +2387,7 @@ msgstr ""
 "Rozpoczêcie nastêpnej iteracji pêtli FOR, WHILE lub UNTIL zawier±jacej\n"
 "    polecenie. Je¶li podano N, iteracja dotyczy pêtli N-tego poziomu."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2381,7 +2401,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2406,7 +2426,7 @@ msgstr ""
 "    Warto¶æ EXPR okre¶la o ile ramek wywo³añ wzglêdem bie¿±cej ramki\n"
 "    nale¿y siê cofn±æ; numer najwy¿szej ramki to 0."
 
-#: builtins.c:379
+#: builtins.c:383
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2452,7 +2472,7 @@ msgstr ""
 "    katalogów zamiast ¶ledzenia dowi±zañ symbolicznych; opcja -L wymusza\n"
 "    ¶ledzenie dowi±zañ symbolicznych."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2468,7 +2488,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2481,7 +2501,7 @@ msgstr ""
 "¯adnego efektu; polecenie nic nie robi. Jako kod zakoñczenia\n"
 "    zwracane jest zero."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2489,7 +2509,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 #, fuzzy
 msgid ""
 "Return an unsuccessful result.\n"
@@ -2498,7 +2518,7 @@ msgid ""
 "    Always fails."
 msgstr "Zwracany jest niepomy¶lny wynik zakoñczenia."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2517,7 +2537,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2579,14 +2599,14 @@ msgstr ""
 "    U¿ycie `+' zamiast `-' powoduje wy³±czenie danego atrybutu. U¿yte\n"
 "    w funkcji czyni wszystkie NAME lokalnymi, podobnie jak polecenie `local'."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2601,7 +2621,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 #, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
@@ -2651,7 +2671,7 @@ msgstr ""
 "    \n"
 "    Za pomoc± opcji -E mo¿na jawnie wy³±czyæ interpretacjê powy¿szych znaków."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2664,7 +2684,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2691,7 +2711,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2703,7 +2723,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2744,7 +2764,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2767,7 +2787,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2778,7 +2798,7 @@ msgstr ""
 "Opuszczenie pow³oki z kodem zakoñczenia N. Je¶li N pominiêto, kodem\n"
 "    zakoñczenia bêdzie kod zakoñczenia ostatniego wykonanego polecenia."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2787,7 +2807,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 #, fuzzy
 msgid ""
 "Display or execute commands from the history list.\n"
@@ -2839,7 +2859,7 @@ msgstr ""
 "    `r cc' uruchamia ostatnie polecenie zaczynaj±ce siê od `cc' a napisanie\n"
 "    `r' uruchamia ponownie ostatnie polecenie."
 
-#: builtins.c:734
+#: builtins.c:738
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -2855,7 +2875,7 @@ msgstr ""
 "    zadaniem. Je¶li nie podano JOB_SPEC, u¿yte zostanie zadanie bie¿±ce\n"
 "    w rozumieniu pow³oki"
 
-#: builtins.c:749
+#: builtins.c:753
 #, fuzzy
 msgid ""
 "Move jobs to the background.\n"
@@ -2873,7 +2893,7 @@ msgstr ""
 "    z `&'. Je¶li nie podano JOB_SPEC, u¿yte zostanie zadanie bie¿±ce\n"
 "    w rozumieniu pow³oki"
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2897,7 +2917,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2919,7 +2939,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2953,7 +2973,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 #, fuzzy
 msgid ""
 "Display status of jobs.\n"
@@ -2990,7 +3010,7 @@ msgstr ""
 "    ka¿dej z wystêpuj±cych w ARGS specyfikacji zadañ numerem PID procesu\n"
 "    wiod±cego danego zadania."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3007,7 +3027,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 #, fuzzy
 msgid ""
 "Send a signal to a job.\n"
@@ -3038,7 +3058,7 @@ msgstr ""
 "    oraz, w przypadku osi±gniêcia ograniczenia na liczbê procesów, nie\n"
 "    powoduje potrzeby uruchamiania dodatkowego procesu, aby jaki¶ ubiæ."
 
-#: builtins.c:917
+#: builtins.c:921
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3124,7 +3144,7 @@ msgstr ""
 "    Je¶li warto¶ci± ostatniego argumentu jest 0, let zwraca 1;\n"
 "    w pozosta³ych przypadkach zwracane jest 0."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3193,7 +3213,7 @@ msgstr ""
 "deskryptor\n"
 "    pliku."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3205,7 +3225,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3373,7 +3393,7 @@ msgstr ""
 "    pozycyjnymi i s± one przypisane, kolejno, do $1, $2, .. $n. Gdy nie\n"
 "    zostan± podane ¿adne argumenty, wypisywane s± wszystkie zmienne pow³oki."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3393,7 +3413,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3412,7 +3432,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3432,7 +3452,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3443,7 +3463,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 #, fuzzy
 msgid ""
 "Execute commands from a file in the current shell.\n"
@@ -3462,7 +3482,7 @@ msgstr ""
 "    w $PATH. Je¶li podane zostan± jakiekolwiek ARGUMENTS, staj± siê\n"
 "    parametrami pozycyjnymi podczas uruchomienia FILENAME."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3476,7 +3496,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3631,7 +3651,7 @@ msgstr ""
 "    równy, nierówny, mniejszy ni¿, mniejszy lub równy, wiêkszy ni¿ lub\n"
 "    wiêkszy lub równy arg2."
 
-#: builtins.c:1292
+#: builtins.c:1296
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3642,7 +3662,7 @@ msgstr ""
 "Jest to synonim dla wbudowanego polecenia \"test\", ale wymagaj±cy, by\n"
 "    ostatnim argumentem by³ `]' pasuj±cy do pocz±tkowego `['."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3654,7 +3674,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -3710,7 +3730,7 @@ msgstr ""
 "    nazw sygna³ów wraz z odpowiadaj±cymi im numerami. Nale¿y zauwa¿yæ, ¿e\n"
 "    sygna³ mo¿na wys³aæ do pow³oki poleceniem \"kill -signal $$\"."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3740,7 +3760,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 #, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
@@ -3821,7 +3841,7 @@ msgstr ""
 "    -p, które jest w jednostkach 512-bajtowych oraz -u, które jest\n"
 "    bezwymiarow± liczb± procesów."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3839,7 +3859,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3856,7 +3876,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 #, fuzzy
 msgid ""
 "Wait for process completion and return exit status.\n"
@@ -3876,7 +3896,7 @@ msgstr ""
 "    procesu lub specyfikacj± zadania; gdy jest specyfikacj± zadania,\n"
 "    oczekiwanie dotyczy wszystkich procesów w potoku zadania."
 
-#: builtins.c:1474
+#: builtins.c:1478
 #, fuzzy
 msgid ""
 "Execute commands for each member in a list.\n"
@@ -3895,7 +3915,7 @@ msgstr ""
 "    Dla ka¿dego elementu WORDS, NAME jest ustawiane na ten element\n"
 "    i uruchamiane s± COMMANDS."
 
-#: builtins.c:1488
+#: builtins.c:1492
 #, fuzzy
 msgid ""
 "Arithmetic for loop.\n"
@@ -3921,7 +3941,7 @@ msgstr ""
 "    EXP1, EXP2 i EXP3 s± wyra¿eniami arytmetycznymi. Je¶li które¶ z wyra¿eñ\n"
 "    zostanie pominiête, zachowanie jest takie, jaby mia³o ono warto¶æ 1."
 
-#: builtins.c:1506
+#: builtins.c:1510
 #, fuzzy
 msgid ""
 "Select words from a list and execute commands.\n"
@@ -3954,7 +3974,7 @@ msgstr ""
 "    wiersz jest zachowywany w zmiennej REPLY. Po ka¿dym wyborze uruchamiane\n"
 "    s± polecenia COMMANDS a¿ do polecenia break."
 
-#: builtins.c:1527
+#: builtins.c:1531
 #, fuzzy
 msgid ""
 "Report time consumed by pipeline's execution.\n"
@@ -3981,7 +4001,7 @@ msgstr ""
 "    podsumowania czasów w nieco innej postaci. U¿ywana jest wtedy warto¶æ\n"
 "    zmiennej TIMEFORMAT jako format danych wyj¶ciowych."
 
-#: builtins.c:1544
+#: builtins.c:1548
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -3996,7 +4016,7 @@ msgstr ""
 "pasuje\n"
 "    do wzorca PATTERN. Znak `|' s³u¿y do rozdzielania wielu wzorców."
 
-#: builtins.c:1556
+#: builtins.c:1560
 #, fuzzy
 msgid ""
 "Execute commands based on conditional.\n"
@@ -4027,7 +4047,7 @@ msgstr ""
 "    uruchomionego polecenia lub zero, gdy ¿aden ze sprawdzanych warunków\n"
 "    nie by³ prawdziwy."
 
-#: builtins.c:1573
+#: builtins.c:1577
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -4041,7 +4061,7 @@ msgstr ""
 "Rozwijanie i uruchamianie poleceñ COMMANDS tak d³ugo, dopóki ostatnie\n"
 "    polecenie w `while' COMMANDS koñczy siê z kodem zero."
 
-#: builtins.c:1585
+#: builtins.c:1589
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -4055,7 +4075,20 @@ msgstr ""
 "Rozwijanie i uruchamianie poleceñ COMMANDS tak d³ugo, dopóki ostatnie\n"
 "    polecenie w `until' COMMANDS koñczy siê z kodem niezerowym."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4069,7 +4102,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -4083,7 +4116,7 @@ msgstr ""
 "Uruchomienie zbioru poleceñ jako grupy. W ten sposób mo¿na przekierowaæ\n"
 "    ca³y zbiór poleceñ."
 
-#: builtins.c:1623
+#: builtins.c:1641
 #, fuzzy
 msgid ""
 "Resume job in foreground.\n"
@@ -4104,7 +4137,7 @@ msgstr ""
 "dla\n"
 "    `bg'."
 
-#: builtins.c:1638
+#: builtins.c:1656
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expression.\n"
@@ -4118,7 +4151,7 @@ msgstr ""
 "Obliczenie wyra¿enia EXPRESSION zgodnie z zasadami obliczania wyra¿eñ\n"
 "    arytmetycznych. Równowa¿ne \"let EXPRESSION\"."
 
-#: builtins.c:1650
+#: builtins.c:1668
 #, fuzzy
 msgid ""
 "Execute conditional command.\n"
@@ -4167,7 +4200,7 @@ msgstr ""
 "    wzorca. Operatory && i || nie opliczaj± EXPR2, je¶li obliczenie EXPR1\n"
 "    wystarcza do okre¶lenia warto¶ci wyra¿enia."
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4221,7 +4254,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 #, fuzzy
 msgid ""
 "Add directories to stack.\n"
@@ -4270,7 +4303,7 @@ msgstr ""
 "    \n"
 "    Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'."
 
-#: builtins.c:1767
+#: builtins.c:1785
 #, fuzzy
 msgid ""
 "Remove directories from stack.\n"
@@ -4314,7 +4347,7 @@ msgstr ""
 "    \n"
 "    Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'."
 
-#: builtins.c:1797
+#: builtins.c:1815
 #, fuzzy
 msgid ""
 "Display directory stack.\n"
@@ -4363,7 +4396,7 @@ msgstr ""
 "    -N\tWypisanie N-tej pozycji licz±c od prawej strony listy wypisywanej\n"
 "    \tprzez dirs wywo³ane bez opcji, pocz±wszy od zera."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -4384,7 +4417,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4414,7 +4447,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4436,7 +4469,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -4454,7 +4487,7 @@ msgstr ""
 "    Gdy podany jest opcjonalny argument WORD, generowane s± uzupe³nienia\n"
 "    pasuj±ce do WORD."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4483,9 +4516,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -4509,7 +4542,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -4519,6 +4554,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid " "
 #~ msgstr " "
 
index d9d25b04033c05fac2bfeed4e7f8dc6561efee11..7f7ceea7bcde9134a673b35ab2e4a22ce450f7df 100644 (file)
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
index 45a30d18d26e088d276a90b15136b221ef9d1a79..b7ff3cf1fd962e9459bf346b6b43b55e37bac017 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2002-05-08 13:50GMT -3\n"
 "Last-Translator: Halley Pacheco de Oliveira <halleypo@ig.com.br>\n"
 "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -39,7 +39,7 @@ msgstr "%s: imposs
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: impossível criar: %s"
@@ -250,12 +250,22 @@ msgstr ""
 msgid "write error: %s"
 msgstr "erro de `pipe': %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr ""
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, fuzzy, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: Redirecionamento ambíguo"
@@ -292,7 +302,7 @@ msgstr "somente pode ser usado dentro de fun
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: função somente para leitura"
@@ -331,7 +341,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: impossível criar: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -347,7 +357,7 @@ msgstr "%s: imposs
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: impossível executar o arquivo binário"
@@ -489,37 +499,37 @@ msgstr "Erro desconhecido %d"
 msgid "expression expected"
 msgstr "esperado uma expressão"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%c%c: opção incorreta"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%c%c: opção incorreta"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "número do sinal incorreto"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: variável não vinculada"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -823,32 +833,32 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "erro de `pipe': %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restrição: não é permitido especificar `/' em nomes de comandos"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: comando não encontrado"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: é um diretório"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "impossível duplicar fd (descritor de arquivo) %d para fd 0: %s"
@@ -950,143 +960,143 @@ msgstr ""
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: o identificador do processo (pid) não existe (%d)!\n"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "Sinal desconhecido #%d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Concluído"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Parado"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Parado"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Executando"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Concluído(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Fim da execução com status %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Status desconhecido"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(imagem do núcleo gravada)"
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, fuzzy, c-format
 msgid "  (wd: %s)"
 msgstr "(wd agora: %s)\n"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, fuzzy, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "`setpgid' filho (%d para %d) erro %d: %s\n"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, fuzzy, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: o pid %d não é um filho deste `shell'"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: o trabalho terminou"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "encaixe (slot) %3d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (imagem do núcleo gravada)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd agora: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp falhou: %s"
 
-#: jobs.c:3618
+#: jobs.c:3623
 #, fuzzy
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs: disciplina da linha: %s"
 
-#: jobs.c:3628
+#: jobs.c:3633
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs: getpgrp falhou: %s"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "nenhum controle de trabalho nesta `shell'"
 
@@ -1321,7 +1331,7 @@ msgstr "Use \"%s\" para sair da `shell'.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "encontrado EOF não esperado enquanto procurava por `%c'"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1331,12 +1341,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: conector incorreto `%d'"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1691,12 +1701,12 @@ msgstr "%s: substitui
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: impossível atribuir desta maneira"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "substituição incorreta: nenhum `%s' em %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -2153,83 +2163,93 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until COMANDOS; do COMANDOS; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 #, fuzzy
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function NOME { COMANDOS ; } ou NOME () { COMANDOS ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 #, fuzzy
 msgid "{ COMMANDS ; }"
 msgstr "{ COMANDOS }"
 
-#: builtins.c:202
+#: builtins.c:204
 #, fuzzy
 msgid "job_spec [&]"
 msgstr "fg [JOB-ESPECIFICADO]"
 
-#: builtins.c:204
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "esperado uma expressão"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "esperado uma expressão"
 
-#: builtins.c:208
+#: builtins.c:210
 #, fuzzy
 msgid "variables - Names and meanings of some shell variables"
 msgstr "As variáveis da `shell' podem ser operandos.  O nome da variável é"
 
-#: builtins.c:211
+#: builtins.c:213
 #, fuzzy
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [DIR | +N | -N] [-n]"
 
-#: builtins.c:215
+#: builtins.c:217
 #, fuzzy
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [+N | -N] [-n]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 #, fuzzy
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o OPÇÃO-LONGA] NOME-OPÇÃO [NOME-OPÇÃO...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 #, fuzzy
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "type [-apt] NOME [NOME ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2249,7 +2269,7 @@ msgid ""
 "    defined."
 msgstr ""
 
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2261,7 +2281,7 @@ msgid ""
 msgstr ""
 "Remove NOMEs da lista de aliases definidos. Se a opção -a for fornecida,"
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2300,7 +2320,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2312,7 +2332,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr "Prossegue no próximo ciclo do laço FOR, WHILE ou UNTIL envolvente."
 
-#: builtins.c:334
+#: builtins.c:338
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2324,7 +2344,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr "Prossegue no próximo ciclo do laço FOR, WHILE ou UNTIL envolvente."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2338,7 +2358,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2354,7 +2374,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2387,7 +2407,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2403,7 +2423,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2415,7 +2435,7 @@ msgid ""
 msgstr ""
 "Nenhum efeito; o comando não faz nada.  Retorna zero no código de saída."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2423,7 +2443,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2431,7 +2451,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2450,7 +2470,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2486,14 +2506,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2508,7 +2528,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2539,7 +2559,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2552,7 +2572,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2579,7 +2599,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2591,7 +2611,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2632,7 +2652,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2655,7 +2675,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2664,7 +2684,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr "Sair da `shell' com status igual a N.  Se N for omitido, o status"
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2673,7 +2693,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2703,7 +2723,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -2717,7 +2737,7 @@ msgid ""
 msgstr ""
 "Colocar JOB-ESPECIFICADO no primeiro plano, e torná-lo o trabalho atual."
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2731,7 +2751,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2755,7 +2775,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2777,7 +2797,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2811,7 +2831,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2835,7 +2855,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2852,7 +2872,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2874,7 +2894,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2919,7 +2939,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2963,7 +2983,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2975,7 +2995,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3057,7 +3077,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3077,7 +3097,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3096,7 +3116,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3116,7 +3136,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3127,7 +3147,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3141,7 +3161,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3155,7 +3175,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3232,7 +3252,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3241,7 +3261,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr "argumento deve ser o literal `]', para fechar o `[' de abertura."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3253,7 +3273,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3289,7 +3309,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3319,7 +3339,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3363,7 +3383,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3381,7 +3401,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3398,7 +3418,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3412,7 +3432,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3425,7 +3445,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3442,7 +3462,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3462,7 +3482,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3478,7 +3498,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -3491,7 +3511,7 @@ msgid ""
 msgstr ""
 "Executar seletivamente COMANDOS tomando por base a correspondência entre"
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3512,7 +3532,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -3524,7 +3544,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Expande e executa COMANDOS enquanto o comando final nos"
 
-#: builtins.c:1585
+#: builtins.c:1589
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -3536,7 +3556,20 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Expande e executa COMANDOS enquanto o comando final nos"
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3550,7 +3583,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -3562,7 +3595,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Executa um conjunto de comandos agrupando-os.  Esta é uma forma de"
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3576,7 +3609,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3587,7 +3620,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3615,7 +3648,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3669,7 +3702,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3700,7 +3733,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3727,7 +3760,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3756,7 +3789,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3777,7 +3810,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3807,7 +3840,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3829,7 +3862,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3842,7 +3875,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3871,9 +3904,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3897,7 +3930,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3907,6 +3942,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid "Display the list of currently remembered directories.  Directories"
 #~ msgstr "Exibe a lista atual de diretórios memorizados. Os diretórios são"
 
index 456ebc489ff31d8bdcfcaaa8c618c8672384ba5e..4bbf6459d06f824417fd8fc65a18f733604c44cd 100644 (file)
Binary files a/po/ro.gmo and b/po/ro.gmo differ
index 5638bd8cc2c9c6c43e61eb05ddc0c390a169d98f..28235003f86160c9fe40e7fa769a06c4751b95cf 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 1997-08-17 18:42+0300\n"
 "Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -38,7 +38,7 @@ msgstr "%s: nu se poate atribui c
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nu s-a putut crea: %s"
@@ -249,12 +249,22 @@ msgstr ""
 msgid "write error: %s"
 msgstr "eroare de legãturã (pipe): %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr ""
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, fuzzy, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: Redirectare ambiguã"
@@ -291,7 +301,7 @@ msgstr "poate fi folosit doar 
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funcþie doar în citire (readonly)"
@@ -330,7 +340,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: nu s-a putut crea: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -346,7 +356,7 @@ msgstr "%s: nu se poate executa fi
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: nu se poate executa fiºierul binar"
@@ -488,37 +498,37 @@ msgstr "Eroare necunoscut
 msgid "expression expected"
 msgstr "se aºteaptã expresie"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%c%c: opþiune invalidã"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%c%c: opþiune invalidã"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "numãr de semnal invalid"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: variabilã fãrã limitã"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -819,32 +829,32 @@ msgstr "%ca expirat a
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "eroare de legãturã (pipe): %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: limitat: nu se poate specifica `/' în numele comenzilor"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: comandã negãsitã"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: este director"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "nu se poate duplica fd %d în fd 0: %s"
@@ -943,143 +953,143 @@ msgstr "check_bash_input: buffer deja existent pentru fd nou %d"
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: Nu existã pid-ul (%d)!\n"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "Semnal Necunoscut #%d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Finalizat"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Stopat"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Stopat"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "În rulare"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Finalizat(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Ieºire %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Stare necunoscutã"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dumped) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, fuzzy, c-format
 msgid "  (wd: %s)"
 msgstr "(wd actual: %s)\n"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, fuzzy, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid copil (de la %d la %d) a întâlnit o eroare %d: %s\n"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, fuzzy, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "aºteptaþi: pid-ul %d nu este rezultat(child) al acestui shell"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: jobul a fost terminat"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "slot %3d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dumped)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd actual: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp eºuat: %s"
 
-#: jobs.c:3618
+#: jobs.c:3623
 #, fuzzy
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs: disciplinã linie: %s"
 
-#: jobs.c:3628
+#: jobs.c:3633
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs: getpgrp eºuat: %s"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "nici un control de job în acest shell"
 
@@ -1313,7 +1323,7 @@ msgstr "Folosi
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "EOF brusc în cãutare dupã `%c'"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1323,12 +1333,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: conector greºitr `%d'"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1678,12 +1688,12 @@ msgstr "%s: substitu
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: nu se poate asigna în acest mod"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "substituþie invalidã: nu existã ')' de final în %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -2138,83 +2148,93 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until COMENZI; do COMENZI; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 #, fuzzy
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function NUME { COMENZI ; } sau NUME () { COMENZI ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 #, fuzzy
 msgid "{ COMMANDS ; }"
 msgstr "{ COMENZI }"
 
-#: builtins.c:202
+#: builtins.c:204
 #, fuzzy
 msgid "job_spec [&]"
 msgstr "fg [job_spec]"
 
-#: builtins.c:204
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "se aºteaptã expresie"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "se aºteaptã expresie"
 
-#: builtins.c:208
+#: builtins.c:210
 #, fuzzy
 msgid "variables - Names and meanings of some shell variables"
 msgstr "Variabilele shell-ului sunt admise ca operanzi.  Numele variabilei"
 
-#: builtins.c:211
+#: builtins.c:213
 #, fuzzy
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [dir | +N | -N] [-n]"
 
-#: builtins.c:215
+#: builtins.c:217
 #, fuzzy
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [+N | -N] [-n]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 #, fuzzy
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o opþiune lungã] nume_opt [nume_opt...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 #, fuzzy
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "type [-apt] nume [nume ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2234,7 +2254,7 @@ msgid ""
 "    defined."
 msgstr ""
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2244,7 +2264,7 @@ msgid ""
 "    Return success unless a NAME is not an existing alias."
 msgstr ""
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2283,7 +2303,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2294,7 +2314,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2305,7 +2325,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2319,7 +2339,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2335,7 +2355,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2368,7 +2388,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2384,7 +2404,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2396,7 +2416,7 @@ msgid ""
 msgstr ""
 "Nici un efect, comanda nu face nimic.  Un cod de ieºire zero este returnat."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2404,7 +2424,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2412,7 +2432,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2431,7 +2451,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2467,14 +2487,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2489,7 +2509,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2520,7 +2540,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2533,7 +2553,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2560,7 +2580,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2572,7 +2592,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2613,7 +2633,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2636,7 +2656,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2645,7 +2665,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr "Iese din shell cu starea lui N. Dacã N este omis, starea de ieºire"
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2654,7 +2674,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2684,7 +2704,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2696,7 +2716,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2710,7 +2730,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2734,7 +2754,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2756,7 +2776,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2790,7 +2810,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2814,7 +2834,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2831,7 +2851,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2853,7 +2873,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2898,7 +2918,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2942,7 +2962,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2954,7 +2974,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3036,7 +3056,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3056,7 +3076,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3075,7 +3095,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3095,7 +3115,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3106,7 +3126,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3120,7 +3140,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3134,7 +3154,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3211,7 +3231,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3219,7 +3239,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3231,7 +3251,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3267,7 +3287,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3297,7 +3317,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3341,7 +3361,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3359,7 +3379,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3376,7 +3396,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3390,7 +3410,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3403,7 +3423,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3420,7 +3440,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3440,7 +3460,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3456,7 +3476,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3467,7 +3487,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3488,7 +3508,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3499,7 +3519,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3510,7 +3530,20 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3524,7 +3557,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3535,7 +3568,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3549,7 +3582,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3560,7 +3593,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3588,7 +3621,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3642,7 +3675,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3673,7 +3706,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3700,7 +3733,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3729,7 +3762,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3750,7 +3783,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3780,7 +3813,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3802,7 +3835,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3815,7 +3848,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3844,9 +3877,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3870,7 +3903,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3880,6 +3915,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid "Missing `}'"
 #~ msgstr "`}' lipsã"
 
index 45d4cd1d3772bd16d69e9602c25b9d94ac4abadd..50ea7e2f5fb9f541b230952ccc3a55ff4d1cdea3 100644 (file)
Binary files a/po/ru.gmo and b/po/ru.gmo differ
index 5e7b8bc2ddc3a20a989e426b97d127dcb1db5350..04e8d29c605f31ee8a36b53f3d1c15657f5f5d3b 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU bash 3.1-release\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2006-01-05 21:28+0300\n"
 "Last-Translator: Evgeniy Dushistov <dushistov@mail.ru>\n"
 "Language-Team: Russian <ru@li.org>\n"
@@ -42,7 +42,7 @@ msgstr "%s; 
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: ÎÅ ÍÏÇÕ ÓÏÚÄÁÔØ: %s"
@@ -248,12 +248,22 @@ msgstr "%s: 
 msgid "write error: %s"
 msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: ÏÛÉÂËÁ ÐÏÌÕÞÅÎÉÑ ÔÅËÕÝÅÊ ÄÉÒÅËÔÏÒÉÉ: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr ""
@@ -289,7 +299,7 @@ msgstr "
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÆÕÎËÃÉÑ"
@@ -328,7 +338,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ:  %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -344,7 +354,7 @@ msgstr "%s: 
 msgid "%s: file is too large"
 msgstr "%s: ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÆÁÊÌ"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: ÎÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ ÂÉÎÁÒÎÙÊ ÆÁÊÌ"
@@ -486,37 +496,37 @@ msgstr "
 msgid "expression expected"
 msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÏÐÉÓÁÎÉÅ ÆÁÊÌÏ×ÏÇÏ ÄÅÓËÒÉÐÔÏÒÁ"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -806,32 +816,32 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: ËÏÍÁÎÄÁ ÎÅ ÎÁÊÄÅÎÁ"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: ÐÌÏÈÏÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd %d × fd %d"
@@ -925,140 +935,140 @@ msgstr ""
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr ""
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr ""
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:"
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr ""
 
@@ -1286,7 +1296,7 @@ msgstr "
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1296,12 +1306,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1642,12 +1652,12 @@ msgstr ""
 msgid "$%s: cannot assign in this way"
 msgstr ""
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÇÏ `%c' × %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "ÎÅÔ ÓÏ×ÐÁÄÅÎÉÑ Ó: %s"
@@ -2066,75 +2076,85 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr ""
 
 #: builtins.c:198
-msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgid "coproc [NAME] command [redirections]"
 msgstr ""
 
 #: builtins.c:200
-msgid "{ COMMANDS ; }"
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:202
-msgid "job_spec [&]"
+msgid "{ COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:204
+msgid "job_spec [&]"
+msgstr ""
+
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr ""
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr ""
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr ""
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2154,7 +2174,7 @@ msgid ""
 "    defined."
 msgstr ""
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2164,7 +2184,7 @@ msgid ""
 "    Return success unless a NAME is not an existing alias."
 msgstr ""
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2203,7 +2223,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2214,7 +2234,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2225,7 +2245,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2239,7 +2259,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2255,7 +2275,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2288,7 +2308,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2304,7 +2324,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2317,7 +2337,7 @@ msgstr ""
 " îÅÔ ËÁËÏÇÏ-ÌÉÂÏ ÜÆÆÅËÔÁ; ËÏÍÁÎÄÁ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔ. îÕÌØ ×ÏÚ×ÒÁÝÁÅÔÓÑ × "
 "ËÁÞÅÓÔ×Å ÒÅÚÕÌØÔÁÔÁ."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2325,7 +2345,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 #, fuzzy
 msgid ""
 "Return an unsuccessful result.\n"
@@ -2334,7 +2354,7 @@ msgid ""
 "    Always fails."
 msgstr "÷ÏÚ×ÒÁÝÁÅÔ ÒÅÚÕÌØÔÁÔ: ÎÅÕÄÁÞÁ."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2353,7 +2373,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2389,14 +2409,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2411,7 +2431,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2442,7 +2462,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2455,7 +2475,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2482,7 +2502,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2494,7 +2514,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2535,7 +2555,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2558,7 +2578,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2566,7 +2586,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2575,7 +2595,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2605,7 +2625,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2617,7 +2637,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2631,7 +2651,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2655,7 +2675,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2677,7 +2697,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2711,7 +2731,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2735,7 +2755,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2752,7 +2772,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2774,7 +2794,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2819,7 +2839,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2863,7 +2883,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2875,7 +2895,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -2957,7 +2977,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -2977,7 +2997,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -2996,7 +3016,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3016,7 +3036,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3027,7 +3047,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3041,7 +3061,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3055,7 +3075,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3132,7 +3152,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3140,7 +3160,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3152,7 +3172,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3188,7 +3208,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3218,7 +3238,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3262,7 +3282,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3280,7 +3300,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3297,7 +3317,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3311,7 +3331,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3324,7 +3344,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3341,7 +3361,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3361,7 +3381,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3377,7 +3397,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3388,7 +3408,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3409,7 +3429,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3420,7 +3440,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3431,7 +3451,20 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3445,7 +3478,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3456,7 +3489,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3470,7 +3503,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3481,7 +3514,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3509,7 +3542,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3563,7 +3596,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3594,7 +3627,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3621,7 +3654,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3650,7 +3683,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3671,7 +3704,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3701,7 +3734,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3723,7 +3756,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -3742,7 +3775,7 @@ msgstr ""
 "    åÓÌÉ ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÁÒÇÕÍÅÎÔ óìï÷ï ÂÙÌ ÉÓÐÏÌØÚÏ×ÁÎ, ÔÏ ÂÕÄÕÔ "
 "ÓÇÅÎÅÒÉÒÏ×ÁÎÙ ÔÏÌØËÏ ÓÏ×ÐÁÄÅÎÉÑ Ó óìï÷ï."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3771,9 +3804,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3797,7 +3830,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3807,6 +3842,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid "Without EXPR, returns returns \"$line $filename\".  With EXPR,"
 #~ msgstr "âÅÚ ÷ùòáö ×ÏÚ×ÒÁÝÁÅÔ \"$ÓÔÒÏËÁ $ÉÍÑÆÁÊÌÁ\". ó ÷ùòáö,"
 
index 228e3f9c54cdefadb5c4aaf66fff3ee560d57403..7c8efd2bb27f44f4d095e789120e673592a95678 100644 (file)
Binary files a/po/sk.gmo and b/po/sk.gmo differ
index 3890fbef45a6fd9dc378b28ed24e768790cc5b10..ff72a8792255db55f1762667fac33206a011234f 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -1,14 +1,14 @@
-# Translation of the bash package to Slovak 
+# Slovak translation for bash.
 # Copyright (C) 2006 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
-# Ivan Masár <helix84@centrum.sk>, 2007, 2008.
+# Ivan Masár <helix84@centrum.sk>, 2007, 2008, 2009.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
-"PO-Revision-Date: 2008-10-25 20:42+0100\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
+"PO-Revision-Date: 2009-02-07 15:11+0100\n"
 "Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
 "MIME-Version: 1.0\n"
@@ -40,14 +40,15 @@ msgstr "%s: nie je možné priradiť nenumerickému indexu"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: pri priraďovaní asociatívnemu poľu je potrebné použiť index"
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
-msgstr "%s: nedá sa vytvoriť: %s"
+msgstr "%s: nie je možné vytvoriť: %s"
 
 #: bashline.c:3413
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: nedá sa nájsť klávesová mapa pre príkaz"
+msgstr ""
+"bash_execute_unix_command: nie je možné nájsť klávesovú mapu pre príkaz"
 
 #: bashline.c:3491
 #, c-format
@@ -76,12 +77,12 @@ msgstr "„%s“: neplatný názov klávesovej mapy"
 #: builtins/bind.def:245
 #, c-format
 msgid "%s: cannot read: %s"
-msgstr "%s: nedá sa čítať: %s"
+msgstr "%s: nie je možné prečítať: %s"
 
 #: builtins/bind.def:260
 #, c-format
 msgid "`%s': cannot unbind"
-msgstr "„%s“: nedá sa zrušiť väzba (unbind)"
+msgstr "„%s“: nie je možné zrušiť väzbu (unbind)"
 
 #: builtins/bind.def:295 builtins/bind.def:325
 #, c-format
@@ -245,12 +246,22 @@ msgstr "%s: nie je vstavaný príkaz (builtin) shellu"
 msgid "write error: %s"
 msgstr "chyba zapisovania: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: chyba pri zisťovaní aktuálneho adresára: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: nejednoznačné určenie úlohy"
@@ -286,7 +297,7 @@ msgstr "je možné použiť iba vo funkcii"
 msgid "cannot use `-f' to make functions"
 msgstr "nie je možné použiť „-f“ pre tvorbu funkcií"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkcia iba na čítanie"
@@ -308,7 +319,7 @@ msgstr "dynamické načítavanie nie je dostupné"
 #: builtins/enable.def:312
 #, c-format
 msgid "cannot open shared object %s: %s"
-msgstr "nedá sa otvoriť zdieľaný objekt %s: %s"
+msgstr "nie je možné otvoriť zdieľaný objekt %s: %s"
 
 #: builtins/enable.def:335
 #, c-format
@@ -323,9 +334,9 @@ msgstr "%s: nie je dynamicky načítané"
 #: builtins/enable.def:474
 #, c-format
 msgid "%s: cannot delete: %s"
-msgstr "%s: nedá sa zmazať: %s"
+msgstr "%s: nie je možné zmazať: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -341,7 +352,7 @@ msgstr "%s: nie je obyčajný súbor"
 msgid "%s: file is too large"
 msgstr "%s: súbor je príliš veľký"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: nie je možné vykonať binárny súbor"
@@ -349,7 +360,7 @@ msgstr "%s: nie je možné vykonať binárny súbor"
 #: builtins/exec.def:212
 #, c-format
 msgid "%s: cannot execute: %s"
-msgstr "%s: nedá sa spustiť: %s"
+msgstr "%s: nie je možné spustiť: %s"
 
 #: builtins/exit.def:65
 #, c-format
@@ -381,7 +392,7 @@ msgstr "špecifikácia histórie"
 #: builtins/fc.def:362
 #, c-format
 msgid "%s: cannot open temp file: %s"
-msgstr "%s: nedá sa otvoriť odkladací súbor: %s"
+msgstr "%s: nie je možné otvoriť odkladací súbor: %s"
 
 #: builtins/fg_bg.def:149 builtins/jobs.def:282
 msgid "current"
@@ -414,7 +425,7 @@ msgstr "%s: hašovacia tabuľka je prázdna\n"
 #: builtins/hash.def:244
 #, c-format
 msgid "hits\tcommand\n"
-msgstr ""
+msgstr "použití\tpríkaz\n"
 
 #: builtins/help.def:130
 #, c-format
@@ -429,13 +440,13 @@ msgstr[2] "Príkazy shellu zodpovedajúce kľúčovým slovám „"
 msgid ""
 "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
 msgstr ""
-"pre „%s“ neboli nájdené zodpovedajúce témy pomocníka.  Skúste „help help“ "
-"alebo „man -k %s“ alebo „info %s“."
+"pre „%s“ neboli nájdené zodpovedajúce témy pomocníka.\n"
+"Skúste „help help“ alebo „man -k %s“ alebo „info %s“."
 
 #: builtins/help.def:185
 #, c-format
 msgid "%s: cannot open: %s"
-msgstr "%s: nedá sa otvoriť: %s"
+msgstr "%s: nie je možné otvoriť: %s"
 
 #: builtins/help.def:337
 #, c-format
@@ -493,36 +504,36 @@ msgstr "Neznáma chyba"
 msgid "expression expected"
 msgstr "očakával sa výraz"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: neplatná špecifikácia popisovača súboru"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: neplatný popisovač súboru: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: neplatný počet riadkov"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: neplatný začiatok poľa"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: neplatné kvantum spätného volania"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr "názov prázdnej premennej poľa"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr "vyžaduje sa podpora premennej poľa"
 
@@ -562,7 +573,6 @@ msgid "directory stack index"
 msgstr "index zásobníka adresárov"
 
 #: builtins/pushd.def:683
-#, fuzzy
 msgid ""
 "Display the list of currently remembered directories.  Directories\n"
 "    find their way onto the list with the `pushd' command; you can get\n"
@@ -589,14 +599,15 @@ msgstr ""
 "    sa do zoznamu dostávajú príkazom „pushd“; zo zoznamu ich môžete\n"
 "    vyberať postupne príkazom „popd“.\n"
 "    \n"
-"    Voľba -l určuje, že „dirs“ nemá vypisovať skrátené verzie adresárov\n"
-"    relatívne vzhľadom na váš domovský adresár. To znamená, že\n"
-"    „~/bin“ sa môže zobraziť ako „/homes/bfox/bin“.  Voľba -v spôsobí,\n"
-"    že „dirs“ vypíše zásobník adresárov vo formáte jedna položka na,\n"
-"    riadok a pred adresár vypíše jej pozíciu v zásobníku. Voľba -p robí\n"
-"    to sité, ale nepripája pozíciu v zásobníku.\n"
-"    Voľba -c vyprázdni zásobník adresárov zmazaním všetkých položiek.\n"
-"    \n"
+"    Voľby:\n"
+"      -c\tvyprázdni zásobník adresárov zmazaním všetkých položiek\n"
+"      -l\tnevypisovať skrátené verzie adresárov relatívne vzhľadom\n"
+"    \tna váš domovský adresár\n"
+"      -p\tvypíše zásobník adresárov vo formáte jedna položka na riadok\n"
+"      -v\tvypíše zásobník adresárov vo formáte jedna položka na riadok\n"
+"    \ta pred ňu vypíše jej pozíciu na zásobníku\n"
+"    \n"
+"    Argumenty:\n"
 "    +N\tzobrazuje N-tú položku počítajúc zľava zoznamu, ktorý zobrazuje\n"
 "    \tdirs vyvolaný bez volieb, počínajúc nulou.\n"
 "    \n"
@@ -604,7 +615,6 @@ msgstr ""
 "    \tdirs vyvolaný bez volieb, počínajúc nulou."
 
 #: builtins/pushd.def:705
-#, fuzzy
 msgid ""
 "Adds a directory to the top of the directory stack, or rotates\n"
 "    the stack, making the new top of the stack the current working\n"
@@ -632,22 +642,23 @@ msgstr ""
 "    nový vrchol zásobníka sa stane aktuálnym pracovným adresárom.\n"
 "    Bez argumentov vymení vrchné dva adresáre.\n"
 "    \n"
+"    Voľby:\n"
+"    -n\tPotlačí normálnu zmenu adresára pri odstraňovaní položiek\n"
+"    \tzo zásobníka, takže sa zmení iba zásobník.\n"
+"    \n"
+"    Argumenty:\n"
 "    +N\tOtočí zásobník tak, že N-tý adresár (počítajúc zľava zoznamu,\n"
 "    \tktorý zobrazuje „dirs“, počínajúc nulou) je na vrchu.\n"
 "    \n"
 "    -N\tOtočí zásobník tak, že N-tý adresár (počítajúc sprava zoznamu,\n"
 "    \tktorý zobrazuje „dirs“, počínajúc nulou) je na vrchu.\n"
 "    \n"
-"    -n\tpotlačí normálnu zmenu adresára pri odstraňovaní položiek\n"
-"    \tzo zásobníka, takže sa zmení iba zásobník.\n"
-"    \n"
-"    adr\tpridá ADR na vrchol zásobníka adresárov, čím sa tento stane\n"
+"    adr\tPridá ADR na vrchol zásobníka adresárov, čím sa tento stane\n"
 "    \tnovým aktuálnym pracovným adresárom.\n"
 "    \n"
-"    Zásobník adresárov môžete zobraziť príkazom „dirs“."
+"    Zásobník adresárov môžete zobraziť vstavaným príkazom „dirs“."
 
 #: builtins/pushd.def:730
-#, fuzzy
 msgid ""
 "Removes entries from the directory stack.  With no arguments, removes\n"
 "    the top directory from the stack, and changes to the new top directory.\n"
@@ -671,6 +682,11 @@ msgstr ""
 "    vrchnú položku zo zásobníka a zmení adresár na adresár, ktorý\n"
 "    sa následne nachádza na vrchu zásobníka.\n"
 "    \n"
+"    Voľby:\n"
+"    -n\tpotlačí normálnu zmenu adresára pri odstraňovaní položiek\n"
+"    \tzo zásobníka, takže sa zmení iba zásobník.\n"
+"    \n"
+"    Argumenty:\n"
 "    +N\todstráni N-tú položku položku počítajúc zľava zoznamu,\n"
 "    \tktorý zobrazuje „dirs“, počínajúc nulou. Napríklad: „popd +0“\n"
 "    \todstráni prvý adresár, „popd +1“ druhý.\n"
@@ -679,10 +695,7 @@ msgstr ""
 "    \tktorý zobrazuje „dirs“, počínajúc nulou. Napríklad: „popd -0“\n"
 "    \todstráni posledný adresár, „popd -1“ predposledný.\n"
 "    \n"
-"    -n\tpotlačí normálnu zmenu adresára pri odstraňovaní položiek\n"
-"    \tzo zásobníka, takže sa zmení iba zásobník.\n"
-"    \n"
-"    Zásobník adresárov môžete zobraziť príkazom „dirs“."
+"    Zásobník adresárov môžete zobraziť vstavaným príkazom „dirs“."
 
 #: builtins/read.def:248
 #, c-format
@@ -797,7 +810,7 @@ msgstr "„%c“: chybný príkaz"
 #: builtins/ulimit.def:427
 #, c-format
 msgid "%s: cannot get limit: %s"
-msgstr "%s: nedá sa zistiť limit: %s"
+msgstr "%s: nie je možné zistiť limit: %s"
 
 #: builtins/ulimit.def:453
 msgid "limit"
@@ -806,7 +819,7 @@ msgstr "obmedzenie"
 #: builtins/ulimit.def:465 builtins/ulimit.def:765
 #, c-format
 msgid "%s: cannot modify limit: %s"
-msgstr "%s: nedá sa zmeniť limit: %s"
+msgstr "%s: nie je možné zmeniť limit: %s"
 
 #: builtins/umask.def:118
 msgid "octal number"
@@ -867,34 +880,34 @@ msgstr "\ačas vypršal pri čakaní na vstup: automatické odhlásenie\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "nie je možné presmerovať štandardný vstup z /dev/null: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: „%c“: neplatný formátovácí znak"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 msgid "pipe error"
 msgstr "chyba rúry"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: obmedzené: nie jemožné uviesť „/“ v názvoch príkazov"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: príkaz nenájdený"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: chybný interpreter"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
-msgstr "nie je možné duplokovať fd %d na fd %d"
+msgstr "nie je možné duplikovať fd %d na fd %d"
 
 #: expr.c:241
 msgid "expression recursion level exceeded"
@@ -974,7 +987,7 @@ msgstr "nie j emožné resetovať nodelay režim fd %d"
 #: input.c:258
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr "nedá sa alokovať nový popisovač súboru pre vstup bashu z fd %d"
+msgstr "nie je možné alokovať nový popisovač súboru pre vstup bashu z fd %d"
 
 #: input.c:266
 #, c-format
@@ -985,140 +998,140 @@ msgstr "save_bash_input: bufer už existuje pre nový fd %d"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp rúra"
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "pid %d získaný pomocou fork sa vyskytuje v bežiacej úlohe %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "mažem zastavenú úlohu %d so skupinou procesu %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: proces %5ld (%s) v the_pipeline"
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) je stále označený ako živý"
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: taký pid neexistuje"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr "Signál %d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Hotovo"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Zastavené"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Zastavené(%s)"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Beží"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Hotovo(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Ukončenie %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Neznámy stav"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
-msgstr ""
+msgstr "(bol uložený výpis pamäte) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid detského procesu (%ld to %ld)"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld nie je dieťa tohto shellu"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Neexistuje záznam o procese %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: úloha %d je zastavená"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: úloha skončila"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: úloha %d už je v pozadí"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: riadok %d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
-msgstr ""
+msgstr " (bol uložený výpis pamäte)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd teraz: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: funkcia getpgrp zlyhala"
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
-msgstr ""
+msgstr "initialize_job_control: riadkový systém"
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
-msgstr ""
+msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "nie je možné nastaviť skupinu procesu terminálu (%d)"
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "v tomto shelli nie je riadenie úloh"
 
@@ -1204,7 +1217,7 @@ msgstr "%s: neplatná služba"
 #: lib/sh/netopen.c:306
 #, c-format
 msgid "%s: bad network path specification"
-msgstr "%s: zlá špecifikácia sieťovej cesty"
+msgstr "%s: chybná špecifikácia sieťovej cesty"
 
 #: lib/sh/netopen.c:346
 msgid "network operations not supported"
@@ -1212,16 +1225,16 @@ msgstr "sieťové operácie nie sú podporované"
 
 #: mailcheck.c:433
 msgid "You have mail in $_"
-msgstr "Máte poštu v $_"
+msgstr "Máte poštu v súbore $_"
 
 #: mailcheck.c:458
 msgid "You have new mail in $_"
-msgstr "Máte novú poštu v $_"
+msgstr "Máte novú poštu v súbore $_"
 
 #: mailcheck.c:474
 #, c-format
 msgid "The mail in %s has been read\n"
-msgstr "Pošta v %s bola prečítaná\n"
+msgstr "Pošta v súbore %s bola prečítaná\n"
 
 #: make_cmd.c:322
 msgid "syntax error: arithmetic expression required"
@@ -1229,7 +1242,7 @@ msgstr "chyba syntaxe: vyžaduje sa aritmetický výraz"
 
 #: make_cmd.c:324
 msgid "syntax error: `;' unexpected"
-msgstr "chyba syntaxe: neoÄ\8dakávaný â\80\9e\80\9c unexpected"
+msgstr "chyba syntaxe: neoÄ\8dakávaná â\80\9e\80\9c"
 
 #: make_cmd.c:325
 #, c-format
@@ -1348,7 +1361,7 @@ msgstr "Na opustenie shellu použite „%s“.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "neočakávaný koniec súboru počas hľadania zodpovedajúceho „)“"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "dokončovanie: funkcia „%s“ nebola nájdená"
@@ -1358,12 +1371,12 @@ msgstr "dokončovanie: funkcia „%s“ nebola nájdená"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: chybný konektor `%d'"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: „%c“: neplatný formátovací znak"
@@ -1380,7 +1393,7 @@ msgstr "%s: nejednoznačné presmerovanie"
 #: redir.c:152
 #, c-format
 msgid "%s: cannot overwrite existing file"
-msgstr "%s: nedá sa prepísať existujúci súbor"
+msgstr "%s: nie je možné prepísať existujúci súbor"
 
 #: redir.c:157
 #, c-format
@@ -1390,7 +1403,7 @@ msgstr "%s: ombedzené: nie je možné presmerovať výstup"
 #: redir.c:162
 #, c-format
 msgid "cannot create temp file for here-document: %s"
-msgstr "nedá sa vytvoriť odkladací súbor pre here-document: %s"
+msgstr "nie je možné vytvoriť odkladací súbor pre here-document: %s"
 
 #: redir.c:517
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
@@ -1398,7 +1411,7 @@ msgstr "/dev/(tcp|udp)/host/port nie je podporovaný bez podpory sietí"
 
 #: redir.c:1023
 msgid "redirection error: cannot duplicate fd"
-msgstr "chyba presmerovania: nedá sa duplikovať fd"
+msgstr "chyba presmerovania: nie je možné duplikovať fd"
 
 #: shell.c:328
 msgid "could not find /tmp, please create!"
@@ -1652,38 +1665,38 @@ msgstr "%s: nie je možné priradiť zoznam položke poľa"
 
 #: subst.c:4456 subst.c:4472
 msgid "cannot make pipe for process substitution"
-msgstr "nedá sa vytvoriť rúra pre substitúciu procesov"
+msgstr "nie je možné vytvoriť rúru pre substitúciu procesov"
 
 #: subst.c:4504
 msgid "cannot make child for process substitution"
-msgstr "nedá sa vytvoriť dieťa pre substitúciu procesov"
+msgstr "nie je možné vytvoriť potomka pre substitúciu procesov"
 
 #: subst.c:4549
 #, c-format
 msgid "cannot open named pipe %s for reading"
-msgstr "nedá sa otvoriť pomenovaná rúra %s na čítanie"
+msgstr "nie je možné otvoriť pomenovanú rúru %s na čítanie"
 
 #: subst.c:4551
 #, c-format
 msgid "cannot open named pipe %s for writing"
-msgstr "nedá sa otvoriť pomenovaná rúra %s na zápis"
+msgstr "nie je možné otvoriť pomenovanú rúru %s na zápis"
 
 #: subst.c:4569
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
-msgstr "nedá sa duplikovať pomenovaná rúra %s ako fd %d"
+msgstr "nie je možné duplikovať pomenovanú rúru %s ako fd %d"
 
 #: subst.c:4765
 msgid "cannot make pipe for command substitution"
-msgstr "nedá sa vytvoriť rúra pre substitúciu príkazov"
+msgstr "nie je možné vytvoriť rúru pre substitúciu príkazov"
 
 #: subst.c:4799
 msgid "cannot make child for command substitution"
-msgstr "nedá sa vytvoriť dieťa pre substitúciu príkazov"
+msgstr "nie je možné vytvoriť potomka pre substitúciu príkazov"
 
 #: subst.c:4816
 msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr "command_substitute: nedá sa duplikovať rúra ako fd 1"
+msgstr "command_substitute: nie je možné duplikovať rúru ako fd 1"
 
 #: subst.c:5318
 #, c-format
@@ -1705,12 +1718,12 @@ msgstr "%s: chybná substitúcia"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: nie je možné vykonať priradenie takýmto spôsobom"
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "chybná substitúcia: : v reťazci %s chýba uzatvárajúci „`”"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "bez zhody: %s"
@@ -1818,8 +1831,8 @@ msgid ""
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
 "html>\n"
 msgstr ""
-"Licencia GPLv3+: GNU GPL verzie 3 alebo novšia <http://gnu.org/licenses/gpl."
-"html>\n"
+"Licencia GPLv3+: GNU GPL verzie 3 alebo novšia http://gnu.org/licenses/gpl."
+"html\n"
 
 #: version.c:86
 #, c-format
@@ -1829,53 +1842,56 @@ msgstr "GNU bash, verzia %s (%s)\n"
 #: version.c:91
 #, c-format
 msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr ""
+msgstr "Toto je slobodný softvér; môžete ho slobodne meniť a šíriť.\n"
 
 #: version.c:92
 #, c-format
 msgid "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
+"Nie sú poskytované ŽIADNE ZÁRUKY v rozsahu aký povoľuje\n"
+"aplikovateľné právo.\n"
 
 #: xmalloc.c:92
 #, c-format
 msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "xmalloc: nedá sa alokovať %lu bajtov (%lu bajtov alokovaných)"
+msgstr "xmalloc: nie je možné alokovať %lu bajtov (%lu bajtov alokovaných)"
 
 #: xmalloc.c:94
 #, c-format
 msgid "xmalloc: cannot allocate %lu bytes"
-msgstr "xmalloc: nedá sa alokovať %lu bajtov"
+msgstr "xmalloc: nie je možné alokovať %lu bajtov"
 
 #: xmalloc.c:114
 #, c-format
 msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
-msgstr "xrealloc: nedá sa realokovať %lu bajtov (%lu bajtov alokovaných)"
+msgstr "xrealloc: nie je možné realokovať %lu bajtov (%lu bajtov alokovaných)"
 
 #: xmalloc.c:116
 #, c-format
 msgid "xrealloc: cannot allocate %lu bytes"
-msgstr "xrealloc: nedá sa alokovať %lu bajtov"
+msgstr "xrealloc: nie je možné alokovať %lu bajtov"
 
 #: xmalloc.c:150
 #, c-format
 msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "xmalloc: %s:%d: nedá sa alokovať %lu bajtov (%lu bajtov alokovaných)"
+msgstr ""
+"xmalloc: %s:%d: nie je možné alokovať %lu bajtov (%lu bajtov alokovaných)"
 
 #: xmalloc.c:152
 #, c-format
 msgid "xmalloc: %s:%d: cannot allocate %lu bytes"
-msgstr "xmalloc: %s:%d: nedá sa alokovať %lu bajtov"
+msgstr "xmalloc: %s:%d: nie je možné alokovať %lu bajtov"
 
 #: xmalloc.c:174
 #, c-format
 msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
 msgstr ""
-"xrealloc: %s:%d: nedá sa realokovať %lu bajtov (%lu bajtov alokovaných)"
+"xrealloc: %s:%d: nie je možné realokovať %lu bajtov (%lu bajtov alokovaných)"
 
 #: xmalloc.c:176
 #, c-format
 msgid "xrealloc: %s:%d: cannot allocate %lu bytes"
-msgstr "xrealloc: %s:%d: nedá sa alokovať %lu bajtov"
+msgstr "xrealloc: %s:%d: nie je možné alokovať %lu bajtov"
 
 #: builtins.c:43
 msgid "alias [-p] [name[=value] ... ]"
@@ -2144,51 +2160,55 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until PRÍKAZY; do PRÍKAZY; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 "function názov_funkcie { PRÍKAZY ; } alebo názov_funkcie () { PRÍKAZY ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 msgid "{ COMMANDS ; }"
 msgstr "{ PRÍKAZY ; }"
 
-#: builtins.c:202
+#: builtins.c:204
 msgid "job_spec [&]"
 msgstr "špec_úlohy [&]"
 
-#: builtins.c:204
+#: builtins.c:206
 msgid "(( expression ))"
 msgstr "(( výraz ))"
 
-#: builtins.c:206
+#: builtins.c:208
 msgid "[[ expression ]]"
 msgstr "[[ výraz ]]"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr "premenné - Názvy a významy niektorých premenných shellu"
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | adr]"
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [názov_voľby ...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] formát [argumenty]"
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
@@ -2198,7 +2218,7 @@ msgstr ""
 "zoznam_slov]  [-F funkcia] [-C príkaz] [-X vzor_filtra] [-P predpona] [-S "
 "prípona] [názov ...]"
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
@@ -2207,11 +2227,11 @@ msgstr ""
 "zoznam_slov]  [-F funkcia] [-C príkaz] [-X vzor_filtra] [-P predpona] [-S "
 "prípona] [slovo]"
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "compopt [-o|+o voľba] [názov ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
@@ -2219,9 +2239,17 @@ msgstr ""
 "mapfile [-n počet] [-O začiatok] [-s počet] [-t] [-u fd] [-C spätné_volanie] "
 "[-c kvantum] [pole]"
 
-#: builtins.c:250
+#: builtins.c:242
 #, fuzzy
 msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n počet] [-O začiatok] [-s počet] [-t] [-u fd] [-C spätné_volanie] "
+"[-c kvantum] [pole]"
+
+#: builtins.c:254
+msgid ""
 "Define or display aliases.\n"
 "    \n"
 "    Without arguments, `alias' prints the list of aliases in the reusable\n"
@@ -2239,15 +2267,24 @@ msgid ""
 "been\n"
 "    defined."
 msgstr ""
-"„alias“ bez argumentov alebo s voľbou -p vypíše na štandardný\n"
-"    výstup zoznam aliasov v tvare NÁZOV=HODNOTA.\n"
-"    Inak je alias definovaný pre každý NÁZOV, ktorého HODNOTA je zadaná.\n"
+"Definovať alebo zobraziť aliasy.\n"
+"    \n"
+"    Bez argumentov vypíše všetky definované aliasy vo formáte, ktorý je\n"
+"    možné znova použiť v tvare NÁZOV=HODNOTA na štandardný výstup.\n"
+"    \n"
+"    Inak definuje alias pre každý NÁZOV, ktorého HODNOTA je zadaná.\n"
 "    Medzera na konci HODNOTY spôsobí, že sa v ďalšom slove\n"
-"    skontroluje substitúcia aliasu pri expanzii aliasu. Alias vracia\n"
-"    true ak nie je zadaný NÁZOV, pre ktorý nebol definovaný žiadny alias."
+"    skontroluje substitúcia aliasu pri expanzii aliasu.\n"
+"    \n"
+"    Voľby:\n"
+"      -p\tVypíše všetky definované aliasy vo formáte, ktorý je možné\n"
+"        \tznova použiť\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti vždy pravdu ak nebol zadaný NÁZOV, pre ktorý nie je definovaný "
+"alias."
 
-#: builtins.c:272
-#, fuzzy
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2256,11 +2293,15 @@ msgid ""
 "    \n"
 "    Return success unless a NAME is not an existing alias."
 msgstr ""
-"Odstráni NÁZVY zo zoznamu definovaných aliasov. Ak je uvedená voľba -a,\n"
-"    odstráni všetky definície aliasov."
+"Odstrániť NÁZVY zo zoznamu definovaných aliasov.\n"
+"    \n"
+"    Voľby:\n"
+"      -a\todstráni všetky definície aliasov.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebol zadaný NÁZOV, pre ktorý nie je definovaný alias."
 
-#: builtins.c:285
-#, fuzzy
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2298,11 +2339,14 @@ msgid ""
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
-"Naviaže sekvenciu klávesov na funkciu alebo makro Readline alebo\n"
+"Nastaviť klávesové väzby a premenné Readline.\n"
+"    \n"
+"    Naviaže sekvenciu klávesov na funkciu alebo makro Readline alebo\n"
 "    nastaviť premennú Readline. Syntax argumentu je rovnaká ako tá\n"
 "    v ~/.inputrc, ale musí sa podať ako jediný argument:\n"
 "    bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
-"    bind akceptuje nasledovné voľby:\n"
+"    \n"
+"    Voľby:\n"
 "      -m  klávmap        Použije „klávmap“ ako mapu klávesov počas trvania\n"
 "                         tohto príkazu. Prijateľné názvy klávesových máp sú\n"
 "                         emacs emacs-standard, emacs-meta, emacs-ctlx, vi,\n"
@@ -2311,24 +2355,29 @@ msgstr ""
 "      -P                 Vypíše názvy funkcií a väzby.\n"
 "      -p                 Vypíše názvy funkcií a väzby v tvare, ktorý je\n"
 "                         možné znova použiť ako vstup.\n"
-"      -r  kláv_sek         Odstráni väzbu pre kláv_sek.\n"
-"      -x  kláv_sek:príkaz_shellu\tSpôsobí vykonanie PRÍKAZU_SHELLU po\n"
-"    \t\t\t\tzadaní KLÁV_SEK.\n"
-"      -f  súboru         Načíta klávesové väzby z SÚBORU.\n"
-"      -q  názov-funkcie  Zistí, ktoré klávesy vyvolávajú túto funkciu.\n"
-"      -u  názov-funkcie  Zruší väzby všetkých kláves naviazaných na túto "
-"funkciu.\n"
+"      -S                 Vypíše klávesové sekvencie, ktoré vyvolávajú makrá "
+"a\n"
+"                         ich hodnoty\n"
+"      -s                 Vypíše klávesové sekvencie, ktoré vyvolávajú makrá "
+"a\n"
+"                         ich hodnoty\n"
+"                         v tvare, ktorý je možné znova použiť ako vstup.\n"
 "      -V                 Vypíše názvy premenných a hodnoty\n"
 "      -v                 Vypíše názvy premenných a hodnoty v tvare, ktorý "
 "je\n"
+"      -q  názov-funkcie  Zistí, ktoré klávesy vyvolávajú túto funkciu.\n"
+"      -u  názov-funkcie  Zruší väzby všetkých kláves naviazaných na túto "
+"funkciu\n"
 "                         možné znova použiť ako vstup.\n"
-"      -S                 Vypíše klávesové sekvencie, ktoré vyvolávajú makrá "
-"a ich hodnoty\n"
-"      -s                 Vypíše klávesové sekvencie, ktoré vyvolávajú makrá "
-"a ich hodnoty\n"
-"                         v tvare, ktorý je možné znova použiť ako vstup."
+"      -r  kláv_sek       Odstráni väzbu pre kláv_sek.\n"
+"      -f  súboru         Načíta klávesové väzby z SÚBORU.\n"
+"      -x  kláv_sek:príkaz_shellu\tSpôsobí vykonanie PRÍKAZU_SHELLU po\n"
+"    \t\t\t\tzadaní KLÁV_SEK.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2343,11 +2392,10 @@ msgstr ""
 "    Ukončiť cyklus FOR, WHILE alebo UNTIL. Ak je zadané N, ukončiť N\n"
 "    nadradených vnorených cyklov.\n"
 "    \n"
-"    Návratový kód:\n"
-"    Návratový kód je 0 ak N nie je väčšie alebo rovné 1."
+"    Návratová hodnota:\n"
+"    Návratová hodnota je 0 ak N nie je väčšie alebo rovné 1."
 
-#: builtins.c:334
-#, fuzzy
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2357,10 +2405,15 @@ msgid ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
-"Pokračuje v nasledujúcej iterácii cyklu FOR, WHILE alebo UNTIL.\n"
-"Ak je uvedené N, pokračovať v ďalšej iterácii cyklu o N úrovní vyššej."
+"Pokračovať v cykle for, while alebo until\n"
+"    \n"
+"    Pokračuje v nasledujúcej iterácii cyklu FOR, WHILE alebo UNTIL.\n"
+"    Ak je uvedené N, pokračovať v ďalšej iterácii cyklu o N úrovní vyššej.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak N nie je väčšie alebo rovné 1."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2381,13 +2434,12 @@ msgstr ""
 "volať\n"
 "    v rámci vašej funkcie.\n"
 "    \n"
-"    Návratový kód:\n"
+"    Návratová hodnota:\n"
 "    Vracia návratový kód vstavanej funkcie shellu alebo 0 ak argument nie "
 "je\n"
 "    vstavaná funkcia shellu."
 
-#: builtins.c:361
-#, fuzzy
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2402,16 +2454,19 @@ msgid ""
 "    Returns 0 unless the shell is not executing a shell function or EXPR\n"
 "    is invalid."
 msgstr ""
-"Vracia kontext aktuálneho volania podprocedúry.\n"
-"\n"
+"Vrátiť kontext aktuálneho volania podprocedúry.\n"
+"    \n"
 "    Bez VÝR, vráti „$line $filename“.  S VÝR,\n"
 "    vráti „$line $subroutine $filename“; túto informáciu\n"
-"    je možné využiť pre trasovanie zásobníka.    \n"
+"    je možné využiť pre trasovanie zásobníka.\n"
+"    \n"
 "    Hodnota VÝR určuje o koľko rámcov volania sa vrátiť\n"
-"    pred aktuálny; najvyšší rámec má číslo 0."
+"    pred aktuálny; najvyšší rámec má číslo 0.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak shell nevykonáva funkciu shellu a EXPR nie je neplatný."
 
-#: builtins.c:379
-#, fuzzy
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2443,19 +2498,32 @@ msgid ""
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
-"Zmení aktuálny adresár na ADR. Premenná $HOME je štandardný\n"
-"    ADR. Premenná CDPATH definuje cesty, v ktorých sa hľadá adresár\n"
-"    obsahujúci ADR. Alternatívne názvy adresárov vCDPATH sú\n"
-"    oddelené dvojbodkou (:). Prázdny (null) názov adresára zodpovedá\n"
-"    aktuálnemu adresáru, t.j. „.“. Ak ADR začína lomkou (/), CDPATH\n"
-"    sa nepoužije. Ak adresár nebol nájdený a je nastavená voľba shellu\n"
-"    „cdable_vars“ skúste toto slovo ako názov premennej. Ak táto\n"
-"    premenná má hodnotu, vykoná cd na hodnotu premennej.\n"
-"    Voľba -P vraví, že sa má použiť fyzická štruktúra adresárov a nie\n"
-"    nasledovať symbolické odkazy; voľba -L vynúti nasledovanie\n"
-"    symbolických odkazov."
-
-#: builtins.c:407
+"Zmeniť aktuálny adresár.\n"
+"    \n"
+"    Zmení aktuálny adresár na ADR. Premenná $HOME je štandardný ADR.\n"
+"    \n"
+"    Premenná CDPATH definuje cesty, v ktorých sa hľadá adresár obsahujúci "
+"ADR.\n"
+"    Alternatívne názvy adresárov v CDPATH sú oddelené dvojbodkou (:).\n"
+"    Prázdny (null) názov adresára zodpovedá aktuálnemu adresáru, t.j. „.“.\n"
+"    Ak ADR začína lomkou (/), CDPATH sa nepoužije.\n"
+"    \n"
+"    Ak adresár nebol nájdený a je nastavená voľba shellu „cdable_vars“,\n"
+"    predpokladá sa, že toto slovo je názov premennej.\n"
+"    Ak táto premenná má hodnotu, vykoná cd na hodnotu premennej.\n"
+"    \n"
+"    Voľby:\n"
+"        -L\tvynúti nasledovanie symbolických odkazov\n"
+"        -P\tpoužije sa fyzická štruktúra adresárov a nie nasledovať\n"
+"    \t\tsymbolické odkazy.\n"
+"    \n"
+"    Štandardne sa budú nasledovať symbolické odkazy ako keby bola\n"
+"    zadaná voľba „-L“.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak bol aktuálny adresár zmenený, inak nenulovú hodnotu."
+
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2479,12 +2547,11 @@ msgstr ""
 "    \n"
 "    Štandardne sa „pwd“ správa ako keby bolo uvedené „-L“.\n"
 "    \n"
-"    Návratový kód:\n"
+"    Návratová hodnota:\n"
 "    Vracia 0 ak nie je zadaná neplatná voľba alebo nie je možné\n"
 "    prečítať aktuálny adresár."
 
-#: builtins.c:424
-#, fuzzy
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2492,9 +2559,15 @@ msgid ""
 "    \n"
 "    Exit Status:\n"
 "    Always succeeds."
-msgstr "Bez účinku; príkaz nič nerobí. Vráti návratový kód nula."
+msgstr ""
+"Prázdny príkaz.\n"
+"    \n"
+"    Bez účinku; príkaz nič nerobí.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vždy vráti pravda."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2503,19 +2576,24 @@ msgid ""
 msgstr ""
 "Vráti úspešný výsledok\n"
 "    \n"
-"    Návratový kód:\n"
+"    Návratová hodnota:\n"
 "    Vždy vráti 0."
 
-#: builtins.c:444
-#, fuzzy
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
 "    Exit Status:\n"
 "    Always fails."
-msgstr "Vráti neúspešný výsledok."
+msgstr ""
+"Prázdny príkaz.\n"
+"    \n"
+"    Vráti neúspešný výsledok.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vždy vráti nepravda."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2533,8 +2611,22 @@ msgid ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
+"Vykonať jednoduchý príkaz alebo zobraziť informácie o príkazoch.\n"
+"    \n"
+"    Spustí PRÍKAZ s ARG potlačiac vyhľadanie funkcie shellu alebo\n"
+"    zobrazí informácie o uvedených PRÍKAZoch. Možno použiť na\n"
+"    vyvolanie externých príkazov ak existuje funkcia s rovnakým názvom.\n"
+"    \n"
+"    Voľby:\n"
+"      -p\tpoužiť štandardnú hodnotu PATH, ktorá zaručene nájde všetky\n"
+"    \t\tštandardné nástroje\n"
+"      -v\tvypísať popis PRÍKAZu podobný zabudovanému príkazu „type“\n"
+"      -v\tvypísať podrobnejší popis každého PRÍKAZu\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu PRÍKAZu alebo zlyhá ak nenájde PRÍKAZ."
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2569,15 +2661,49 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
+"Nastaviť hodnoty a atribúty premennných.\n"
+"    \n"
+"    Deklaruje premenné a ich atribúty. Ak nie sú zadané NÁZVY,\n"
+"    zobrazí atribúty a hodnoty všetkých premenných.\n"
+"    \n"
+"    Voľby:\n"
+"      -f\tobmedzí operáciu alebo výpis na názvy funkcií a definície\n"
+"      -F\tobmedzí výpis iba na názvy funkcií (plus číslo riadka a\n"
+"    \t\tzdrojový súbor pri ladení)\n"
+"      -p\tzobrazí atribúty a hodnotu každého NÁZVU\n"
+"    \n"
+"    Voľby, ktoré nastavujú atribúty:\n"
+"      -a\turobí z NÁZVU indexované polia (ak sú podporované)\n"
+"      -A\turobí z NÁZVOV asociatívne polia (ak sú podporované)\n"
+"      -i\tdá NÁZVU atribút „celé číslo“\n"
+"      -l\tprevedie NÁZVY pri priradení na malé písmená\n"
+"      -r\tnastaví NÁZVY iba na čítanie\n"
+"      -t\tdá NÁZVU atribút „trace“\n"
+"      -u\tprevedie NÁZVY pri priradení na veľké písmená\n"
+"      -x\tprevedie NÁZVY na export\n"
+"    \n"
+"    Pomocou „+“ namiesto „-“ vypnete uvedený atribút.\n"
+"    \n"
+"    Premenné s atribútom „celé číslo“ vykonávajú aritmetické vyhodnocovanie\n"
+"    (pozri príkaz „let“), keď je im  priradená hodnota.\n"
+"    \n"
+"    Keď sa „declare“ použije vo funkcii, NÁZVY budú lokálne ako pri príkaze\n"
+"    „local“.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
+"Nastaviť hodnoty a atribúty premenných.\n"
+"    \n"
+"    Zastaralé. Pozri „help declare“."
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2591,9 +2717,19 @@ msgid ""
 "    Returns success unless an invalid option is supplied, an error occurs,\n"
 "    or the shell is not executing a function."
 msgstr ""
+"Definovať lokálne premenné.\n"
+"    \n"
+"    Vytvorí lokálnu premennú s názvom NÁZOV a priradí jej HODNOTU.\n"
+"    VOĽBA je ľubovoľná voľba, ktorú prijme „declare“\n"
+"    \n"
+"    Lokálne premenné možno použiť iba v rámci funkcie; sú viditeľné\n"
+"    iba v rámci funkcie, kde sú definované a v jej potomkoch.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba, nevyskytla sa chyba a\n"
+"    shell práve nevykonáva funkciu."
 
-#: builtins.c:533
-#, fuzzy
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2623,13 +2759,20 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 msgstr ""
-"Vypíše ARGumenty. S voľbou -n bude posledný znak nového\n"
-"    riadka potlačený. S voľbou -e sa zapne interpretácia\n"
-"    nasledovných znakov začínajúcich spätnou lomkou:\n"
+"Vypísať argumenty na štandardný výstup.\n"
+"    \n"
+"    Vypíše ARGumenty na štandardný výstup ukončené znakom\n"
+"    nového riadka.\n"
+"    Voľby:\n"
+"      -n\tpotlačí znak nového riadka na konci.\n"
+"      -e\tzapne interpretáciu nasledovných únikových klauzúl\n"
+"      -E\tvypne interpretáciu nasledovných únikových klauzúl\n"
+"    \n"
+"    „echo“ interpretuje nasledovné únikové klauzuly:\n"
 "    \t\\a\tvýstraha (zvonček)\n"
 "    \t\\b\tbackspace\n"
 "    \t\\c\tptlačiť posledný znak nového riadka\n"
-"    \t\\E\tvykonať escape znaku\n"
+"    \t\\e\tescape znaku\n"
 "    \t\\f\tform feed\n"
 "    \t\\n\tnový riadok\n"
 "    \t\\r\tnávrat vozíka\n"
@@ -2638,11 +2781,13 @@ msgstr ""
 "    \t\\\\\tspätná lomka\n"
 "    \t\\0nnn\tznak s ASCII kódom NNN (osmičkový). NNN môže mať\n"
 "    \t\t0 až 3 osmičkové číslice\n"
+"      \\xHH\tosembitový znak, ktorého hodnota je HH (hexadecimálne).\n"
+"    \tHH môže mať jednu alebo dve hexadecimálne číslice.\n"
 "    \n"
-"    Voľbou -E môžete explicitne vypnuť interpretáciu vyššie \n"
-"    uvedených znakov."
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nevyskytla sa chyba pri zápise."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2654,8 +2799,17 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 msgstr ""
+"Vypísať argumenty na štandardný výstup.\n"
+"    \n"
+"    Vypíše ARGumenty na štandardný výstup ukončené znakom\n"
+"    nového riadka.\n"
+"    Voľby:\n"
+"      -n\tpotlačí znak nového riadka na konci.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nevyskytla sa chyba pri zápise."
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2681,8 +2835,35 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
+"Zapnúť a vypnúť vstavané funkcie shellu.\n"
+"    \n"
+"    Zapína a vypína vstavané funkcie shellu. Vypnutie vám umožní\n"
+"    vykonať externý príkaz s rovnakým názvom ako vstavaná funkcia\n"
+"    shellu bez toho, aby ste museli použiť úplnú cestu k nemu.\n"
+"    \n"
+"    Voľby:\n"
+"      -a\tvypíše zoznam vstavaných funkcií a zobrazí pi každej\n"
+"         \tči je zapnutá\n"
+"      -n\tvypne každý NÁZOV alebo zobrazí zoznam vypnutých\n"
+"         \tvstavaných funkcií\n"
+"      -p\tvypíše zoznam vstavaných funkcií v tvare, ktorý je\n"
+"         \tmožné znova použiť ako vstup\n"
+"      -s\tvypísať iba názvy Posixových „špeciálnych“\n"
+"         \tvstavaných funkcií\n"
+"    \n"
+"    Voľby riadiace dynamické načítanie:\n"
+"      -f\tNačítať vstavanú funkciu NÁZOV zo zdieľaného objektu SÚBOR\n"
+"      -d\todstrániť vstavanú funkciu načítanú voľbou -f\n"
+"    \n"
+"    Bez volieb zapne každý NÁZOV.\n"
+"    \n"
+"    Ak chcete použiť „test“, ktorý sa nachádza v ceste $PATH namiesto\n"
+"    vstavanej funkcie shellu, napíšte „enable -n test“.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak NÁZOV nie je vstavaná funkcia shellu a nevyskytla sa chyba."
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2693,9 +2874,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns exit status of command or success if command is null."
 msgstr ""
+"Vykonať argumenty ako príkaz shellu.\n"
+"    \n"
+"    Skombinovať ARGumenty do jediného reťazca a použiť výsledok\n"
+"    ako vstup shellu a vykonať tieto príkazy.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu príkazu alebo 0 ak je príkaz prázdny."
 
-#: builtins.c:622
-#, fuzzy
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2735,7 +2922,9 @@ msgid ""
 "    Returns success if an option is found; fails if the end of options is\n"
 "    encountered or an error occurs."
 msgstr ""
-"Getopts používajú procedúry shellu na analýzu pozičných parametrov.\n"
+"Syntaktická analýza volieb.\n"
+"    \n"
+"    Getopts používajú procedúry shellu na analýzu pozičných parametrov.\n"
 "    \n"
 "    OPTSTRING obsahuje písmená volieb, ktoré pozná; ak po písmene\n"
 "    nasleduje dvojbodka, po voľbe sa očakáva argument, ktorý by mal\n"
@@ -2763,9 +2952,13 @@ msgstr ""
 "    OPTERR má štandardne hodnotu 1.\n"
 "    \n"
 "    Getopts normálne spracúva pozičné parametre ($0 - $9), ale ak je\n"
-"    zadaných viac argumentov, spracuje tieto."
+"    zadaných viac argumentov, spracuje tieto.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak je voľba nájdená; zlyhá po dosiahnutí konca reťazca volieb\n"
+"    alebo ak sa vyskytne chyba."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2787,19 +2980,37 @@ msgid ""
 "    Returns success unless COMMAND is not found or a redirection error "
 "occurs."
 msgstr ""
+"Nahradiť shell zadaným príkazom.\n"
+"    \n"
+"    Vykonať PRÍKAZ, pričom sa nahradí tento shell určeným programom.\n"
+"    ARGUMENTy dostane PRÍKAZ ako argumenty.  Ak nie je zadaný PRÍKAZ,\n"
+"    všetky presmerovania sa uskutočnia v aktuálnom shelli.\n"
+"    \n"
+"    Voľby:\n"
+"      -a názov\tpošle NÁZOV ako nultý argument PRÍKAZU\n"
+"      -c\tvykoná PRÍKAZ s prázdnym prostredím\n"
+"      -l\tdá pomlčku na nultý argument PRÍKAZu\n"
+"    \n"
+"    Ak príkaz nemožno vykonať, neinteraktívny shell sa ukončí ak nie je\n"
+"    nastavená voľba shellu „execfail“.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestane, že PRÍKAZ nebol nájdený a nevyskytne sa chyba\n"
+"    presmerovania."
 
-#: builtins.c:685
-#, fuzzy
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
 "    Exits the shell with a status of N.  If N is omitted, the exit status\n"
 "    is that of the last command executed."
 msgstr ""
-"Ukončiť shell so stavom N. Ak sa N vynechá, stav sa nastaví\n"
-"    podľa stavu posledného vykonaného príkazu."
+"Ukončiť shell\n"
+"    \n"
+"    Ukončí shell s návratovou hodnotou N. Ak sa N vynechá, návratová\n"
+"    hodnota  sa nastaví podľa stavu posledného vykonaného príkazu."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2807,9 +3018,12 @@ msgid ""
 "executed\n"
 "    in a login shell."
 msgstr ""
+"Ukončiť login shell.\n"
+"    \n"
+"    Ukončí login shell s návratovou hodnotou N. Vráti chybu ak nie je\n"
+"    spustený v login shelli."
 
-#: builtins.c:704
-#, fuzzy
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2838,18 +3052,19 @@ msgid ""
 "    Returns success or status of executed command; non-zero if an error "
 "occurs."
 msgstr ""
-"fc sa používa na vypísanie alebo úpravu a opätovné vykonanie príkazov.\n"
-"    z histórie\n"
+"Zobraziť alebo vykonať príkazy z histórie.\n"
+"    \n"
+"    fc sa používa na vypísanie alebo úpravu a opätovné vykonanie príkazov.\n"
+"    z histórie.\n"
 "    PRVÝ a POSLEDNÝ môžu byť čísla udávajúce rozsah alebo PRVÝ môže byť\n"
 "    reťazec, ktorý znamená najnedávnejší príkaz začínajúci týmto reťazcom.\n"
 "    \n"
-"       -e ENAME zvolí editor, ktorý sa má použiť. Štandardne je to FCEDIT, "
-"potom EDITOR,\n"
-"          potom vi.\n"
+"       -e ENAME zvolí editor, ktorý sa má použiť. Štandardne je to FCEDIT,\n"
+"    \t\tpotom EDITOR, potom vi.\n"
 "    \n"
 "       -l znamená vypísať riadky namiesto úpravy.\n"
 "       -n znamená nevypisovať čísla riadkov.\n"
-"       -r  znamená  obrátiť poradie riadkov (najnovšie budú vypísané prvé).\n"
+"       -r znamená obrátiť poradie riadkov (najnovšie budú vypísané prvé).\n"
 "    \n"
 "    S formátom „fc -s [pat=rep ...] [príkaz]“ sa znova vykoná uvedený\n"
 "    príkaz po vykonaní náhrady OLD=NEW.\n"
@@ -2858,10 +3073,13 @@ msgstr ""
 "napísaním\n"
 "    „r cc“ spustíte posledný príkaz začínajúci „cc“ a napísaním „r“ "
 "opätovne\n"
-"    vykonáte posledný príkaz."
+"    vykonáte posledný príkaz.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 alebo stav vykonaného príkazu; nenulovú hodnotu ak sa vyskytne\n"
+"    chyba."
 
-#: builtins.c:734
-#, fuzzy
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2872,11 +3090,16 @@ msgid ""
 "    Exit Status:\n"
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
-"Dá JOB_SPEC do popredia a urobí ju aktuálnou úlohou. Ak JOB_SPEC\n"
-"    nie je prítomná, použije sa aktuálna úloha shellu."
+"Presunúť úlohu do popredia.\n"
+"    \n"
+"    Umiestni JOB_SPEC do popredia a urobí ju aktuálnou úlohou. Ak JOB_SPEC\n"
+"    nie je prítomná, použije sa aktuálna úloha shellu.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Stav príkazu umiestneného do popredia; nenulovú hodnotu ak sa vyskytne\n"
+"    chyba."
 
-#: builtins.c:749
-#, fuzzy
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2889,10 +3112,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
-"Dá každú JOB_SPEC do pozadia, ako keby bola spustená s „&“. Ak\n"
-"    JOB_SPEC nie je prítomná, použije sa aktuálna úloha shellu."
+"Presunúť úlohu do popredia.\n"
+"    \n"
+"    Umiestni každú JOB_SPEC do pozadia, ako keby bola spustená s „&“. Ak\n"
+"    JOB_SPEC nie je prítomná, použije sa aktuálna úloha shellu.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nie je riadenie úloh vypnuté a nevyskytne sa chyba."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2915,8 +3143,31 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
-
-#: builtins.c:788
+"Vyvolať alebo zobraziť umiestnenia programu.\n"
+"    \n"
+"    Určiť a zapamätať si úplnú cestu ku každému PRÍKAZu. Ak nie sú\n"
+"    uvedené žiadne argumenty, zobrazia sa informácie o zapamätaných\n"
+"    príkazoch.\n"
+"    \n"
+"    Voľby:\n"
+"      -d\tzabudnúť zapamätanné umiestnenia každého NÁZVU\n"
+"      -l\tzobraziť vo formáte, ktoré je možné znova použiť ako      \t"
+"\tvstup\n"
+"      -p cesta\tpoužiť CESTU ako plnú cestu k NÁZVU\n"
+"      -r\tzabudnúť všetky zapamätané umiestnenia\n"
+"      -t\tvypísať zapamätané umiestnenia každého NÁZVU, pred\n"
+"        \tne vypísať zodpovedajúci NÁZOV ak sú zadané viaceré\n"
+"        \tNÁZVY\n"
+"    \n"
+"    Argumenty:\n"
+"      NÁZOV\tKaždý NÁZOV sa vyhľadá v $PATH a pridá\n"
+"    \t\tsa do zoznnamu zapamätaných príkazov.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestalo, že NÁZOV nebol nájdený a nebola zadaná\n"
+"    neplatná voľba."
+
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2937,9 +3188,26 @@ msgid ""
 "    Returns success unless PATTERN is not found or an invalid option is "
 "given."
 msgstr ""
+"Zobraziť informácie o vstavaných príkazoch.\n"
+"    \n"
+"    Zobrazí stručné zhrnutia vstavaných príkazov. Ak je zadaný VZOR,\n"
+"    uvedie podrobnosti o všetkých príkazoch zodpovedajúcich VZORu,\n"
+"    inak vypíše zoznam tém pomocníka.\n"
+"    \n"
+"    Voľby:\n"
+"      -d\tvypíše krátky popis každej z tém\n"
+"      -m\tvypíše použitie vo formáte podobnom manuálovej stránke\n"
+"      -s\tvypíše iba krátku syntax použitia každej z tém zodpovedajúcich\n"
+"        \tVZORu\n"
+"    \n"
+"    Argumenty:\n"
+"      VZOR\tVzor určujúci tému pomocníka\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestalo, že VZOR nebol nájdený a nebola zadaná\n"
+"    neplatná voľba."
 
-#: builtins.c:812
-#, fuzzy
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2972,29 +3240,37 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
-"Zobrazí históriu s číslami riadkov. Riadky s „*“ boli zmenené.\n"
-"    Argument N znamená zobraziť iba posledných N riadkov. Voľba\n"
-"    „-c“ spôsobí vyčistenie histórie vymazaním všetkých jej položiek.\n"
-"    Voľba „-d“ zmaže položku histórie na ofsete OFSET. Voľba „-w“\n"
-"    vypíše aktuálnu históriu do súbora histórie; „-r“ znamená prečítať\n"
-"    súbor a pridať jeho obsah do zoznamu histórie. „-a“ znamená\n"
-"    pridať riadky histórie z aktuálnej relácie do súbory s históriou.\n"
-"    Argument „-n“ znamená prečítať všetky zatiaľ neprečítané riadky\n"
-"    zo súboru histórie a pridať ich do zoznamu histórie.\n"
-"    \n"
-"    If FILENAME is given, then that is used as the history file else\n"
-"    if $HISTFILE has a value, that is used, else ~/.bash_history.\n"
-"    If the -s option is supplied, the non-option ARGs are appended to\n"
-"    the history list as a single entry.  The -p option means to perform\n"
-"    history expansion on each ARG and display the result, without storing\n"
-"    anything in the history list.\n"
+"Zobraziť alebo zmeniť históriu.\n"
 "    \n"
-"    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
-"    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise."
+"    Zobrazí históriu s číslami riadkov. Riadky s „*“ boli zmenené.\n"
+"    Argument N znamená zobraziť iba posledných N riadkov.\n"
+"    \n"
+"    Voľby:\n"
+"     -c\tvyčistenie histórie vymazaním všetkých jej položiek.\n"
+"     -d\tzmaže položku histórie na pozícii OFSET\n"
+"    \n"
+"     -a\tpridať riadky histórie z aktuálnej relácie do súbory s históriou.\n"
+"     -n\tprečítať všetky zatiaľ neprečítané riadky\n"
+"     -r\tprečítať súbor a pridať jeho obsah do zoznamu histórie\n"
+"       \tzo súboru histórie a pridať ich do zoznamu histórie.\n"
+"     -w\tvypíše aktuálnu históriu do súboru histórie.\n"
+"    \n"
+"     -p\tvykoná expanziu histórie každého ARG a zobrazí výsledok\n"
+"       \tbez toho aby ukladal čokoľvek do histórie.\n"
+"     -s\tpridá ARG, ktoré nie sú voľbami do histórie ako jednu položku.\n"
+"    \n"
+"    Ak je uvedený SÚBOR, použije sa ako súbor histórie, inak sa použije\n"
+"    $HISTFILE ak má nastavenú hodnotu, inak ~/.bash_history.\n"
+"    \n"
+"    Ak je premenná $HISTTIMEFORMAT nastavená a neprázdna, jej hodnota\n"
+"    sa použije ako formátovací reťazec strftime(3) na tlač príslušných\n"
+"    časových známok zobrazených pri každej položke histórie.\n"
+"    V opačnom prípade sa nebudú tlačiť časové známky.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:848
-#, fuzzy
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3017,16 +3293,27 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs.\n"
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
-"Vypíše aktívne úlohy. Voľba „-l“ vypíše naviac aj ID procesov.\n"
-"    Voľba „-p“ vypíše iba ID procesov. Ak je uvedená voľba „-n“,\n"
-"    vypíšu sa iba procesy, ktorých stav sa zmenil od poslednej kontroly.\n"
-"    JOBSPEC vypíše iba úlohu s daným JOBSPEC. Voľby „-r“ a „-s“\n"
-"    obmedzia výstup iba na bežiace a zastavené úlohy. Bez volieb sa\n"
-"    vypíše stav všetkých aktívnych úloh. S voľbou „-x“ sa spustí PRÍKAZ\n"
-"    po tom, ako každá zo špecifikácií úloh, ktoré sú uvedené v ARGS,\n"
-"    boli nahradené ID procesu lídra skupiny procesov danej úlohy."
-
-#: builtins.c:875
+"Zobraziť stav úloh.\n"
+"    \n"
+"    Vypíše aktívne úlohy. JOBSPEC vypíše iba úlohu s daným JOBSPEC.\n"
+"    Bez volieb sa vypíše stav všetkých aktívnych úloh.\n"
+"    \n"
+"    Voľby:\n"
+"     -l\tvypíše okrem bežných informácií aj ID procesov\n"
+"     -n\tvypíše iba procesy, ktorých stav sa zmenil od poslednej kontroly.\n"
+"     -p\tvypíše iba ID procesov\n"
+"     -r\tobmedzí výstup iba na bežiace úlohy\n"
+"     -s\tobmedzí výstup iba na zastavené úlohy\n"
+"    \n"
+"    Ak je zadaná voľba „-x“ PRÍKAZ sa spustí po tom, ako každá\n"
+"    zo špecifikácií úloh, ktoré sú uvedené v ARGS, boli nahradené\n"
+"    ID procesu lídra skupiny procesov danej úlohy.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba.\n"
+"    Ak je použitá voľba -x, vráti sa návratová hodnota PRÍKAZu."
+
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3042,9 +3329,21 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
+"Odstrániť úlohy z aktuálneho shellu.\n"
+"    \n"
+"    Odstráni každý argument JOBSPEC z tabuľky aktívnych úloh. Bez uvedenia\n"
+"    akýchkoľvek JOBSPEC, shell použije svoj pojem aktuálnej úlohy.\n"
+"    \n"
+"    Voľby:\n"
+"      -a\todstráni všetky úlohy ak nie sú uvedené JOBSPEC\n"
+"      -h\toznačí každú JOBSPEC tak, že sa jej nepošle SIGHUP ak shell\n"
+"    \t\tdostane SIGHUP\n"
+"      -r\todstráni iba bežiace úlohy\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná JOBSPEC."
 
-#: builtins.c:894
-#, fuzzy
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3065,16 +3364,26 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
-"Pošle procesom s uvedeným PID (alebo JOBSPEC) signál SIGSPEC.  Ak\n"
-"    nie je SIGSPEC uvedená, predpokladá sa SIGTERM. Argument „-l“\n"
-"    vypíše názvy signálov; ak sú argumenty uvedené po „-l“, predpokladá\n"
-"    sa, že sú to čísla signálov ktorých názvy sa majú zobraziť. Kill je\n"
-"    vstavaný (builtin) príkaz shellu z dvoch dôvodov: umožňuje použitie\n"
-"    ID úlohy okrem ID procesu a ak dosiahnete limi tprocesov, ktoré\n"
-"    môžete vytvoriť, nemusíte spúšťať proces na ukončenie iného."
-
-#: builtins.c:917
-#, fuzzy
+"Poslať úlohe signál.\n"
+"    \n"
+"    Pošle procesom s uvedeným PID (alebo JOBSPEC) signál SIGSPEC.  Ak\n"
+"    nie je SIGSPEC uvedená, predpokladá sa SIGTERM.\n"
+"    \n"
+"    Voľby:\n"
+"      -s sig\tSIG je názov signálu\n"
+"      -n sig\tSIG je číslo signálu\n"
+"      -l\tvypíše názvy signálov; ak sú argumenty uvedené po „-l“,\n"
+"        \tpredpokladá sa, že sú to čísla signálov ktorých názvy sa majú\n"
+"        \tzobraziť.\n"
+"    \n"
+"    Kill je vstavaný (builtin) príkaz shellu z dvoch dôvodov: umožňuje\n"
+"    použitie ID úlohy okrem ID procesu a ak dosiahnete limit procesov, \n"
+"    ktoré môžete vytvoriť, nemusíte spúšťať proces na ukončenie iného.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
+
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3118,7 +3427,9 @@ msgid ""
 "    Exit Status:\n"
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
-"Každý ARG je aritmetický výraz, ktorý sa má vyhodnotiť. Vyhodnocuje\n"
+"Vyhodnotiť aritmetické výrazy.\n"
+"    \n"
+"    Každý ARG je aritmetický výraz, ktorý sa má vyhodnotiť. Vyhodnocuje\n"
 "    sa v celých číslach bez kontroly pretečenia, hoci delenie nulou sa\n"
 "    detekuje a označí ako chyba. Nasledujúci zoznam operátorov je\n"
 "    zoskupený do úrovní s rovnakou precedenciou operátorov.\n"
@@ -3154,9 +3465,10 @@ msgstr ""
 "    v zátvorkách sa vyhodnocujú ako prvé a majú prednosť pred\n"
 "    hore uvedenými pravidlami precedencie.\n"
 "    \n"
-"    Ak sa posledný ARG vuhodnotí na 0, let vráti 1; 0 inak sa vráti 0."
+"    Návratová hodnota:\n"
+"    Ak sa posledný ARG vyhodnotí na 0, let vráti 1; 0 inak sa vráti 0."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3200,37 +3512,42 @@ msgid ""
 "out,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
-"Zo štandardného vstupu alebo, ak je daná voľba -u, z popisovača FD\n"
-"    sa načíta jeden riadok a prvé slovo sa priradí prvému NÁZVU, druhé\n"
+"Načítať riadok zo štandardného vstupu a rozdeliť ho do polí.\n"
+"    \n"
+"    Zo štandardného vstupu sa načíta jeden riadok. Riadok sa rozdelí do\n"
+"    polí ako pri delení na slová a prvé slovo sa priradí prvému NÁZVU, "
+"druhé\n"
 "    slovo druhému NÁZVU atď. až zvyšné slová sa priradia poslednému\n"
 "    NÁZVU. Iba znaky, ktoré sa nachádzajú v $IFS sa považujú za\n"
-"    oddeľovače slov. Ak nie sú uvedené žiadne NÁZVY, načítaný riadok sa\n"
-"    uloží do premennej REPLY. Ak je zadaná voľba -r, značí to "
-"„nespracovaný“\n"
-"    vstup a zápis únikových klauzúl pomocou spätnej lomky je vypnutý. Voľba\n"
-"    -d spôsobí pokračovanie čítania až kým sa nevyskytne prvý znak znak "
-"DELIM\n"
-"    namiesto znaku nového riadka. Ak je zadaná voľba -p, pred pokusom o\n"
-"    čítanie sa vypíše reťazec PROMPT bez koncového znaku nového riadka.\n"
-"    Ak je zadaná voľba -a a shell je interaktívny, všetky načítané slová sa\n"
-"    priradia postupne indexom poľa ARRAY, počínajúc nulou. Ak je zadaná\n"
-"    voľba -e a shell je interaktívny, na načítanie riadka sa použije "
-"readline.\n"
-"    Ak je zadaná voľba -n s nenulovým argumentom NCHARS, čítanie vstupu\n"
-"    skončí po načítaní NCHARS znakov. Voľba -s spôsobí, že sa vstup "
-"načítaný\n"
-"    z terminálu nebude vypisovať.\n"
-"    \n"
-"    Voľba -t spôsobí ukončenie čítania po vypršaní časového intervalu a ak "
-"sa do\n"
-"    intervalu nenačíta úplný riadok vstupu, vráti chybu. Ak je nastavená "
-"premenná\n"
-"    TMOUT, jej hodnota je štandardný interval expirácie. Návratová hodnota "
-"je\n"
-"    nula ak sa nenarazí na znak konca súboru, čítanie nevyprší alebo sa "
-"ako    argument voľby -u nezadá neplatný popisovač súboru."
-
-#: builtins.c:1002
+"    oddeľovače slov.\n"
+"    \n"
+"    Ak nie sú uvedené žiadne NÁZVY, načítaný riadok sa uloží do premennej\n"
+"    REPLY.\n"
+"    \n"
+"    Voľby:\n"
+"     -a pole\tvšetky načítané slová sa priradia postupne indexom poľa POLE, "
+"počínajúc nulou.\n"
+"     -d\tpokračovanie čítania až kým sa nevyskytne prvý znak znak DELIM\n"
+"    namiesto znaku nového riadka.\n"
+"     -e a shell je interaktívny, na načítanie riadka sa použije readline.\n"
+"     -n znakov\tčítanie vstupu skončí po načítaní ZNAKOV znakov.\n"
+"     -p\tvýzva\tpred pokusom o čítanie vypíše reťazec VÝZVA bez koncového\n"
+"       \tznaku nového riadka.\n"
+"     -r\tzápis únikových klauzúl pomocou spätnej lomky je vypnutý.\n"
+"     -s\tvstup načítaný z terminálu nebude vypisovať (echo).\n"
+"    \n"
+"     -t interval\tukončenie čítania po vypršaní časového INTERVALu a ak\n"
+"    \tsa do intervalu nenačíta úplný riadok vstupu, vráti chybu. Ak je\n"
+"    \tnastavená premenná TMOUT, jej hodnota je štandardný interval\n"
+"    \texpirácie. TMOUT môže byť zlomok. Návratová hodnota je\n"
+"    \tväčšia ako 128 aj sa prekročí INTERVAL.\n"
+"     -u fd\tnamiesto štandardného vstupu čítať z popisovača súboru FD.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nenarazí pri čítaní nakoniec súboru, nevyprší čas na\n"
+"    čítanie a ako argument -u nebol je zadaný neplatný popisovač."
+
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3241,9 +3558,17 @@ msgid ""
 "    Exit Status:\n"
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
+"Návrat z funkcie shellu.\n"
+"    \n"
+"    Spôsobí ukončenie funkcie alebo skriptu vyvolaného pomocou source\n"
+"    s návratovou hodnotou N. Ak sa N vynechá, návratovou hodnotu je\n"
+"    návratová hodnota posledného vykonaného príkazu v tejto funkcii či\n"
+"    skripte.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti N alebo zlyhá ak shell nevykonáva funkciu či skript."
 
-#: builtins.c:1015
-#, fuzzy
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3324,22 +3649,28 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 msgstr ""
-"    -a  Označí premenné, ktoré sú zmenené alebo vytvorené na export.\n"
-"        -b  Okamžite oznámi ukončenie úlohy.\n"
-"        -e  Okamžite sa ukončí, keď sa príkaz ukončí s nenulovou návratovou "
-"hodnotou.\n"
-"        -f  Vypnúť tvorbu názvov súborov (globbing).\n"
-"        -h  Pamätať si, kde sú umiestnené príkazy po ich vyhľadaní.\n"
-"        -k  Všetky argumenty priradenia sa odovzdávajú do prostredia\n"
-"            príkazu, nie len tie, ktoré predchádzajú názvy príkazu.\n"
-"        -m  Riadenie úloh je zapnuté.\n"
-"        -n  Načítať príkazy, ale nevykonávať ich.\n"
-"        -o názov-voľby\n"
+"Nastaviť alebo zrušiť nastavenie volieb shellu a pozičných parametrov.\n"
+"    \n"
+"    Zmení hodnotu atribútov shellu a  pozičných parametrov alebo zobrazí\n"
+"    názvy a hodnoty premenných shellu.\n"
+"    \n"
+"    Voľby:\n"
+"      -a  Označí premenné, ktoré sú zmenené alebo vytvorené na export.\n"
+"      -b  Okamžite oznámi ukončenie úlohy.\n"
+"      -e  Okamžite sa ukončí, keď sa príkaz ukončí s nenulovou návratovou\n"
+"          hodnotou.\n"
+"      -f  Vypnúť tvorbu názvov súborov (globbing).\n"
+"      -h  Pamätať si, kde sú umiestnené príkazy po ich vyhľadaní.\n"
+"      -k  Všetky argumenty priradenia sa odovzdávajú do prostredia\n"
+"          príkazu, nie len tie, ktoré predchádzajú názvy príkazu.\n"
+"      -m  Riadenie úloh je zapnuté.\n"
+"      -n  Načítať príkazy, ale nevykonávať ich.\n"
+"      -o názov-voľby\n"
 "            Nastaví premennú zodpovedajúcu názvu-voľby:\n"
 "                allexport    rovnaké ako -a\n"
 "                braceexpand  rovnaké ako -B\n"
-"                emacs        použiť rozhranie na úpravu príkazového riadka v "
-"štýle emacs\n"
+"                emacs        použiť rozhranie na úpravu príkazového riadka\n"
+"                             v štýle emacs\n"
 "                errexit      rovnaké ako -e\n"
 "                errtrace     rovnaké ako -E\n"
 "                functrace    rovnaké ako -T\n"
@@ -3361,47 +3692,49 @@ msgstr ""
 "                onecmd       rovnaké ako -t\n"
 "                physical     rovnaké ako -P\n"
 "                pipefail     návratová hodnota postupnosti rúr je hodnota\n"
-"                             posledného príkazu, ktorý skončil s nenulovou "
-"hodnotou,\n"
-"                             alebo nula ak žiadny príkaz nevrátil nenulovú "
-"hodnotu\n"
+"                             posledného príkazu, ktorý skončil s nenulovou\n"
+"                             hodnotou, alebo nula ak žiadny príkaz nevrátil\n"
+"                             nenulovú hodnotu\n"
 "                posix        zmeniť správanie bash, kde sa štandardné "
 "správanie\n"
 "                             líši od štandardu 1003.2 tak, aby mu "
 "zodpovedalo\n"
 "                privileged   rovnaké ako -p\n"
 "                verbose      rovnaké ako -v\n"
-"                vi           použiť rozhranie na úpravu príkazového riadka v "
-"štýle vi\n"
+"                vi           použiť rozhranie na úpravu príkazového riadka\n"
+"                           v štýle vi\n"
 "                xtrace       rovnaké ako -x\n"
-"        -p  Zapnuté vždy, keď sa skutočné a účinné ID používateľa "
-"nezhoduje.\n"
-"            Vypína spracúvanie súboru $ENV a importovanie funkcií shellu.\n"
-"            Vypnutie tejto voľby spôsobí, že účinný UID a GID sa nastavia\n"
-"            na skutočný UID a GID.\n"
-"        -t  Ukončiť po načítaní a vykonaní jedného príkazu.\n"
-"        -u  Považovať nenastavené premenné za chybu pri substitúcii.\n"
-"        -v  Vypisovať vstupné riadky shellu postupne ako sa načítavajú.\n"
-"        -x  Vypisovať príkazy a ich argumenty postupne ako sa načítavajú.\n"
-"        -B  shell bude vykonávať expanziu zložených zátvoriek\n"
-"        -C  Ak je voľba nastavená, zamedzí prepísaniu existujúcich súborov\n"
-"            persmerovaním výstupu.\n"
-"        -E  Ak je voľba nastavená, zachytenie ERR zdedia funkcie shellu.\n"
-"        -H  Zapne substitúciu príkazov z histórie pomocou znaku !. Tento\n"
-"            prepínač je štandardne zapnutý, keď je shell interaktívny.\n"
-"        -P  Ak je voľba nastavená, nenasledovať symbolické odkazy pri\n"
-"            vykonávaní príkazov ako cd, ktoré menia aktuálny adresár.\n"
-"        -T  Ak je voľba nastavená, zachytenie DEBUG zdedia funkcie shellu.\n"
-"        -   Odovzdať všetky zostávajúce argumenty pozičným parametrom.\n"
-"            Voľby -x a -v sú vypnuté.\n"
+"    \n"
+"      -p  Zapnuté vždy, keď sa skutočné a účinné ID používateľa nezhoduje.\n"
+"          Vypína spracúvanie súboru $ENV a importovanie funkcií shellu.\n"
+"          Vypnutie tejto voľby spôsobí, že účinný UID a GID sa nastavia\n"
+"          na skutočný UID a GID.\n"
+"      -t  Ukončiť po načítaní a vykonaní jedného príkazu.\n"
+"      -u  Považovať nenastavené premenné za chybu pri substitúcii.\n"
+"      -v  Vypisovať vstupné riadky shellu postupne ako sa načítavajú.\n"
+"      -x  Vypisovať príkazy a ich argumenty postupne ako sa načítavajú.\n"
+"      -B  Shell bude vykonávať expanziu zložených zátvoriek\n"
+"      -C  Ak je voľba nastavená, zamedzí prepísaniu existujúcich súborov\n"
+"          persmerovaním výstupu.\n"
+"      -E  Ak je voľba nastavená, zachytenie ERR zdedia funkcie shellu.\n"
+"      -H  Zapne substitúciu príkazov z histórie pomocou znaku !. Tento\n"
+"          prepínač je štandardne zapnutý, keď je shell interaktívny.\n"
+"      -P  Ak je voľba nastavená, nenasledovať symbolické odkazy pri\n"
+"          vykonávaní príkazov ako cd, ktoré menia aktuálny adresár.\n"
+"      -T  Ak je voľba nastavená, zachytenie DEBUG zdedia funkcie shellu.\n"
+"      -   Odovzdať všetky zostávajúce argumenty pozičným parametrom.\n"
+"          Voľby -x a -v sú vypnuté.\n"
 "    \n"
 "    Použitie + namiesto - spôsobí vypnutie voľby. Voľby je tiež možné\n"
 "    použiť pri vyvolaní shellu. Momentálne nastavené voľby možno nájsť v\n"
 "    $-. Zostávajúcich n ARGumentov je pozičných a priradia sa postupne\n"
 "    premenným $1, $2, .. $n. Ak nie sú zadané žiadne ARGumenty, všetky\n"
-"    premenné shellu sa vypíšu."
+"    premenné shellu sa vypíšu.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3420,8 +3753,25 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
+"Zrušiť nastavenie hodnôt a atribútov premenných shellu a funkcií.\n"
+"    \n"
+"    Pre každý NÁZOV odstráni zodpovedajúcu premennú alebo funkciu.\n"
+"    \n"
+"    Voľby:\n"
+"      -f\tpovažovať každý NÁZOV za funkciu shellu\n"
+"      -v\tpovažovať každý NÁZOV za premennú shellu\n"
+"    \n"
+"    Bez uvedenia volieb sa unset najskôr pokúša zrušiť nastavenie\n"
+"    premennej a ak sa mu to nepodarí, pokúsi sa zrušiť nastavenie\n"
+"    funkcie.\n"
+"    \n"
+"    Nastavenie niektorých premenných nemožno zrušiť; pozri aj „readonly“.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestalo, že je NÁZOV iba na čítanie a nebola zadaná\n"
+"    neplatná voľba."
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3439,8 +3789,24 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
+"Nastaviť atribút export premenným shellu.\n"
+"    \n"
+"    Označí každý NÁZOV na automatický export do prostredia ďalších\n"
+"    spúšťaných príkazov. Ak je zadaná HODNOTA, pred exportovaním priradí\n"
+"    premenej HODNOTU.\n"
+"    \n"
+"    Voľby:\n"
+"      -f\toznačuje funkcie shellu\n"
+"      -n\todoberie z NÁZVU atribút export\n"
+"      -p\tzobrazí zoznam exportovaných premenných a funkcií\n"
+"    \n"
+"    Argument „--“ vypína spracovanie ďalších volieb.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestalo, že je NÁZOV neplatný a nebola zadaná\n"
+"    neplatná voľba."
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3459,8 +3825,26 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
+"Označiť premenné shellu ako nemeniteľné.\n"
+"    \n"
+"    Označí každý NÁZOV ako len na čítanie (atribút readonly); hodnoty "
+"týchto\n"
+"    NÁZVOV nie je možné ďalej meniť priradením. Ak je zadaná HODNOTA,\n"
+"    pred označením ako readonly priradiť premenej HODNOTU.\n"
+"    \n"
+"    Voľby:\n"
+"      -a\todkazuje na premenné indexovaných polí\n"
+"      -A\todkazuje na premenné asociatívnych polí\n"
+"      -f\todkazuje na funkcie shellu\n"
+"      -p\tzobrazí zoznam premenných a funkcií len na čítanie\n"
+"    \n"
+"    Argument „--“ vypína spracovanie ďalších volieb.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestalo, že je NÁZOV neplatný a nebola zadaná\n"
+"    neplatná voľba."
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3470,9 +3854,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
+"Posunúť pozičné parametre.\n"
+"    \n"
+"    Premenovať pozičné parametre $N+1,$N+2 ... to $1,$2 ...  Ak N nie je\n"
+"    zadané, predpokladá sa N=1.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestalo, že je N záporné alebo väčšie ako $#."
 
-#: builtins.c:1169 builtins.c:1184
-#, fuzzy
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3485,11 +3875,18 @@ msgid ""
 "    Returns the status of the last command executed in FILENAME; fails if\n"
 "    FILENAME cannot be read."
 msgstr ""
-"Načítať a vykonať prákazy zo SÚBORu a vrátiť sa. Na nájdenie adresára\n"
-"    obsahujúceho SÚBOR sa použijú cesty z $PATH. Ak sú zadané nejaké\n"
-"    ARGUMENTY, použijú sa ako pozičné argumenty pri vykonaní SÚBORu."
+"Vykonať príkazy zo súboru v aktuálnom shelli.\n"
+"    \n"
+"    Načítať a vykonať príkazy zo SÚBORu v aktuálnom shelli.\n"
+"    Na nájdenie adresára obsahujúceho SÚBOR sa použijú cesty z $PATH.\n"
+"    Ak sú zadané nejaké ARGUMENTY, použijú sa ako pozičné argumenty\n"
+"    pri vykonaní SÚBORu.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu posledného príkazu v SÚBORe; zlyhá ak nie je\n"
+"    možné SÚBOR načítať."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3502,9 +3899,18 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
+"Pozastaviť vykonávanie shellu.\n"
+"    \n"
+"    Pozastaviť vykonávanie shellu pokým nedostane signál SIGCONT.\n"
+"    Ak to nie je vynútené, login shell nie je možné pozastaviť.\n"
+"    \n"
+"    Voľby:\n"
+"      -f\tvynútiť pozastavenie aj v prípade, že shell je login shell\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestalo, že je vypnuté riadenie úloh a nevyskytla sa chyba."
 
-#: builtins.c:1216
-#, fuzzy
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3580,7 +3986,9 @@ msgid ""
 "    Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
 "    false or an invalid argument is given."
 msgstr ""
-"Ukončiť s návratovou hodnotou 0 (pravda) alebo 1 (nepravda)\n"
+"Vyhodnotiť podmienený výraz.\n"
+"    \n"
+"    Skončí s návratovou hodnotou 0 (pravda) alebo 1 (nepravda)\n"
 "    v závislosti na vyhodnotení VÝR.  Výrazy môžu byť unárne alebo\n"
 "    binárne. Unárne výrazy sa často používajú na vyhodnotenie stavu\n"
 "    súboru. Existujú aj operátory pracujúce s reťazcami a na\n"
@@ -3648,20 +4056,25 @@ msgstr ""
 "    \n"
 "    Aritmetické binárne operátory vracajú pravdu, keď sa ARG1 rovná,\n"
 "    nerovná, je menší, menší alebo rovný, väčší, väčší alebo rovný ako\n"
-"    ARG2."
+"    ARG2.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak VÝR vyhodnotí ako pravdivý; zlyhá ako sa VÝR vyhodnotí\n"
+"    ako nepravdivý alebo je zadaný neplatný argument."
 
-#: builtins.c:1292
-#, fuzzy
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
 "    This is a synonym for the \"test\" builtin, but the last argument must\n"
 "    be a literal `]', to match the opening `['."
 msgstr ""
-"Toto je synonymum vsatavanej funkcie „test“, ale posledný\n"
+"Vyhodnotiť podmienený výraz.\n"
+"    \n"
+"    Toto je synonymum vsatavanej funkcie „test“, ale posledný\n"
 "    argument musí byť literál „]“, ktorý uzatvára otvárajúcu „[“."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3672,9 +4085,15 @@ msgid ""
 "    Exit Status:\n"
 "    Always succeeds."
 msgstr ""
+"Zobraziť časy procesov\n"
+"    \n"
+"    Vypíše súhrnné používateľské a systmové časy shellu a všetkých jeho\n"
+"    potomkov.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vždy vráti 0."
 
-#: builtins.c:1313
-#, fuzzy
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3709,22 +4128,38 @@ msgid ""
 "    Returns success unless a SIGSPEC is invalid or an invalid option is "
 "given."
 msgstr ""
-"Príkaz ARG sa načíta a vykoná, keď shell dostane signál(y) SIGNAL_SPEC.\n"
+"Zachytiť signály a iné udalosti.\n"
+"    \n"
+"    Definuje a aktivuje spustenie obsluhy udalosti, keď shell dostane "
+"signál    SIGNAL_SPEC alebo iných podmienok.\n"
+"    \n"
+"    Príkaz ARG sa načíta a vykoná, keď shell dostane signál(y) SIGNAL_SPEC.\n"
 "    Ak ARG chýba (a je uvedený jediný SIGNAL_SPEC) alebo je „-“,\n"
 "    každý uvedený signál sa obnoví na pôvodnú hodnotu. Ak je ARG\n"
 "    prázdny režazec, každý SIGNAL_SPEC shell a príkaz, ktorý vyvolá,\n"
-"    ignoruje. Ak SIGNAL_SPEC je EXIT (0), príkaz ARG sa vykoná pri\n"
+"    ignoruje.\n"
+"    \n"
+"    Ak SIGNAL_SPEC je EXIT (0), príkaz ARG sa vykoná pri\n"
 "    ukončení shellu.  Ak je SIGNAL_SPEC DEBUG, ARG sa vykoná po každom\n"
-"    jednom príkaze. Ak je uvedená voľba „-p“, potom sa zobrazia príkazy\n"
-"    trap asociované s každým SIGNAL_SPEC. Ak nie sú uvedené žiadne\n"
-"    argumenty alebo iba voľba „-p“.  Trap vypíše zoznam príkazov\n"
-"    asociovaných s každým signálom. SIGNAL_SPEC je buď názov signálu\n"
-"    ako v <signal.h> alebo číslo signálu. V názvoch signálov sa nerozlišuje\n"
-"    veľkosť písmen a predpona SIG je nepovinná. „trap -l“ vypíše zoznam\n"
-"    názvov signálov a ich zodpovedajúce čísla. Majte na pamäti, že signál\n"
-"    je možné shellu poslať príkazom „kill -signal $$“."
-
-#: builtins.c:1345
+"    jednom príkaze.\n"
+"    \n"
+"    Ak nie sú uvedené žiadne argumenty, trap vypíše zoznam príkazov\n"
+"    asociovaných s každým signálom.\n"
+"    \n"
+"    Voľby:\n"
+"      -l\tvypíše zoznam názvov signálov a ich zodpovedajúce čísla\n"
+"      -p\tzobrazia sa príkazy trap asociované s každým SIGNAL_SPEC\n"
+"    \n"
+"    Každý SIGNAL_SPEC je buď názov signálu ako v <signal.h> alebo číslo\n"
+"    signálu. V názvoch signálov sa nerozlišuje veľkosť písmen a predpona\n"
+"    SIG je nepovinná. Signál je možné shellu poslať príkazom „kill -signal $"
+"$“.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestalo, že je SIGSPEC neplatný a nebola zadaná\n"
+"    neplatná voľba."
+
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3753,9 +4188,33 @@ msgid ""
 "    Returns success if all of the NAMEs are found; fails if any are not "
 "found."
 msgstr ""
-
-#: builtins.c:1376
-#, fuzzy
+"Zobraziť informácie o type príkazu.\n"
+"    \n"
+"    Pre každý NÁZOV vypíše ako by sa interpretoval keby bol použitý\n"
+"    ako názov príkazu.\n"
+"    \n"
+"    Voľby:\n"
+"      -a\tzobrazí všetky umiestnenia, ktoré obsahujú spustiteľný súbor\n"
+"        \ts názvom NÁZOV; vrátane aliasov, vstavaných funkcií a funkcií\n"
+"        \tak a iba ak nebola použitá voľba „-p“\n"
+"      -f\tpotlačiť hľadanie vo funkciách shellu\n"
+"      -P\tvynútiť pri každom NÁZVE vyhľadanie v CESTE, aj ak je to alias,\n"
+"        \tvstavaná funkcia alebo funkcia a vráti názov súboru na disku,\n"
+"        \tktorý by sa spustil\n"
+"      -p\tvráti buď názov súboru na disku, ktorý by sa spustil, alebo nič\n"
+"        \tak by „type -t NAME“ nevrátilo „file“.\n"
+"      -t\tvypísať jediné slovo, jedno zo slov „alias“, „keyword“,\n"
+"        \t„function“, „builtin“, „file“ alebo „“, ak je názov alias,\n"
+"        \tvyhradené slovo shellu, funkcia shellu, vstavaná funkcia shellu,\n"
+"        \tsúbor na disku alebo NÁZOV nebol nájdený\n"
+"    \n"
+"    Argumenty:\n"
+"      NÁZOV\tNázov príkazu,  ktorý sa má interpretovať.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak boli nájdené všetky NÁZVY; zlyhá ak nie."
+
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3798,7 +4257,9 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
-"Ulimit poskytuje kontrolu nad prostriedkami dostupnými procesu,\n"
+"Zmeniť obmedzenia prostriedkov shellu.\n"
+"    \n"
+"    Poskytuje kontrolu nad prostriedkami dostupnými procesu,\n"
 "    ktorý spustil shell na systémoch, ktoré takúto kontrolu umožňujú.\n"
 "    Ak sú zadané voľby, vyhodnocujú sa nasledovne:\n"
 "    \n"
@@ -3827,11 +4288,17 @@ msgstr ""
 "    znamenajú aktuálny mäkký limit, aktuálny tvrdý limit resp. žiadny "
 "limit.\n"
 "    Inak sa vypíše aktuálna hodnota zadaného prostriedku.\n"
-"    Ak nie je zadaná žiada voľba, predpokladá sa -f. Hodnoty sú v\n"
-"    násobkoch 1024 bajtov okrem -t, ktorý je v sekundách, -p, ktorý je v\n"
-"    násobkoch 512 bajtov a -u, čo znamená neobmedzený počet procesov."
+"    Ak nie je zadaná žiada voľba, predpokladá sa -f.\n"
+"    \n"
+"    Hodnoty sú v násobkoch 1024 bajtov okrem -t, ktorý je v sekundách,\n"
+"    -p, ktorý je v násobkoch 512 bajtov a -u, čo znamená neobmedzený\n"
+"    počet procesov.\n"
+"    \n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3848,8 +4315,24 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
+"Zobraziť alebo nastaviť masku režimu súboru.\n"
+"    \n"
+"    Nastaví masku súborov vytvorených používateľom na REŽIM. Ak sa\n"
+"    REŽIM vynechá, vypíše aktuálnu hodnotu masky.\n"
+"    \n"
+"    Ak REŽIM začína bodkou, interpretuje sa ako osmičkové číslo;\n"
+"    inak je to symbolické označenie režimu aké prijíma chmod(1).\n"
+"    \n"
+"    Voľby:\n"
+"      -p\tak sa REŽIM vynechá, vypíše výstup v tvare, ktorý je možné\n"
+"        \tpoužiť ako vstup\n"
+"      -S\tvýpis v symbolickom tvare; inak osmičkové číslo\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestalo, že je REŽIM neplatný a nebola zadaná\n"
+"    neplatná voľba."
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3865,9 +4348,19 @@ msgid ""
 "is\n"
 "    given."
 msgstr ""
+"Čakať na dokončenie úlohy a vrátiť návratovú hodnotu.\n"
+"    \n"
+"    Počká na proces s identifikátorom ID, čo môže byť PID alebo "
+"špecifikácia\n"
+"    úlohy a oznámi stav jeho ukončenia. Ak nie je ID zadaný, počká na "
+"všetky\n"
+"    momentálne aktívne detské procesy vo fronte úloh.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti stav ID; zlyhá ak je ID neplatný alebo bola zadaná\n"
+"    neplatná voľba."
 
-#: builtins.c:1459
-#, fuzzy
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3880,14 +4373,18 @@ msgid ""
 "is\n"
 "    given."
 msgstr ""
-"Čakať na ukončenie zadaného procesu a vypísať jeho návratovú\n"
-"    hodnotu. Ak nie je N zadané, čaká sa na všetky momentálne\n"
-"    aktívne procesy potomkov a návratová hodnota je nula. N môže\n"
-"    byť ID procesu alebo určenie úlohy; ak je určená úloha, čaká sa\n"
-"    na ukončenie všetkých procesov v rúre úlohy."
+"Čakať na ukončenie zadaného procesu a vypísať jeho návratovú hodnotu.\n"
+"    \n"
+"    Čaká na ukončenie zadaného procesu a oznámi jeho návratovú\n"
+"    hodnotu. Ak nie je PID zadané, čaká sa na všetky momentálne\n"
+"    aktívne procesy potomkov a návratová hodnota je nula.\n"
+"    PID musí byť ID procesu.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti stav ID; zlyhá ak je ID neplatný alebo bola zadaná neplatná\n"
+"    voľba."
 
-#: builtins.c:1474
-#, fuzzy
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3899,13 +4396,17 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Cyklus „for“ vykonáva postupnosť príkazov pre každú položku v zozname.\n"
+"Vykoná množinu príkazov pre každú položku zoznamu.\n"
+"    \n"
+"    Cyklus „for“ vykonáva postupnosť príkazov pre každú položku v zozname.\n"
 "    Ak nie je prítomné „in SLOVÁ ...;“, potom sa predpokladá „in \"$@\"“.\n"
 "    Pre každý prvok v SLOVÁch sa NÁZOV nastaví na hodnotu položky a\n"
-"    vykonajú sa PRÍKAZY."
+"    vykonajú sa PRÍKAZY.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1488
-#, fuzzy
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3921,17 +4422,21 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Ekvivalent\n"
+"Aritmetický cyklus for.\n"
+"    \n"
+"    Ekvivalent\n"
 "    \t(( VÝR1 ))\n"
 "    \twhile (( VÝR2 )); do\n"
 "    \t\tPRÍKAZY\n"
 "    \t\t(( VÝR3 ))\n"
 "    \tdone\n"
 "    VÝR1, VÝR2 a VÝR3 sú aritmetické výrazy. Ak sa vykoná ktorýkoľvek\n"
-"    výraz, chovanie je ako by sa vyhodnotil na 1."
+"    výraz, chovanie je ako by sa vyhodnotil na 1.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1506
-#, fuzzy
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3950,7 +4455,9 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"SLOVÁ sa rozbalia, čím sa vytvorí zoznam slov. Zoznam slov sa\n"
+"Vybrať slová zo zoznamu a vykonať príkazy.\n"
+"    \n"
+"    SLOVÁ sa rozbalia, čím sa vytvorí zoznam slov. Zoznam slov sa\n"
 "    vypíše na štandardný chybový výstup, pred každým z nich číslo.\n"
 "    Ak nie je prítomné „in SLOVÁ“, použije sa „in \"$@\"“. Zobrazí sa\n"
 "    výzva PS3 a načíta sa riadok zo štandardného vstupu. Ak riadok\n"
@@ -3959,10 +4466,12 @@ msgstr ""
 "    výzva sa znova zobrazia. Po načítaní znaku konca súboru príkaz\n"
 "    končí. Načítanie akejkoľvek inej hodnoty spôsobí nastavenie NÁZVU\n"
 "    na NULL. Načítaný riadok sa uloží do premennej ODPOVEĎ. PRÍKAZY\n"
-"    sa vykonajú po každom výbere až kým sa nevykoná príkaz break."
+"    sa vykonajú po každom výbere až kým sa nevykoná príkaz break.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1527
-#, fuzzy
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3977,14 +4486,20 @@ msgid ""
 "    Exit Status:\n"
 "    The return status is the return status of PIPELINE."
 msgstr ""
-"Vykonať RÚRU a po jej skončení vypísať zhrnutie skutočného času,\n"
+"Oznámiť čas využitý vykonávaním rúry.\n"
+"    \n"
+"    Vykonať RÚRU a po jej skončení vypísať zhrnutie skutočného času,\n"
 "    času CPU a systémového času CPU stráveného vykonaním RÚRY.\n"
-"    Návratová hodnota je návratová hodnota RÚRY. Voľba „-p“ vypíše\n"
-"    zhrnutie časov v mierne odlišnom formáte. Ten použuje pre\n"
-"    formátovanie výstupu premennú TIMEFORMAT."
+"    \n"
+"    Voľby:\n"
+"      -p\tvypíše zhrnutie časov v prenosnom formáte Posix.\n"
+"    \n"
+"    Na formátovanie výstupu sa použije hodnota premennej TIMEFORMAT.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Návratová hodnota je návratová hodnota RÚRY."
 
-#: builtins.c:1544
-#, fuzzy
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3994,11 +4509,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Selektívne vykonávať PRÍKAZY na základe toho, či SLOVO zodpovedá VZORu.\n"
-"    „|“ sa použije na oddelenie viacerých vzorov."
+"Vykonať príkazy na základe porovnávania vzorov\n"
+"    \n"
+"    Selektívne vykonávať PRÍKAZY na základe toho, či SLOVO zodpovedá\n"
+"    VZORu.. „|“ sa použije na oddelenie viacerých vzorov.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1556
-#, fuzzy
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4018,7 +4537,10 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Vykoná sa zoznam „if PRÍKAZY“. Ak je jeho návratová hodnota nula, vykoná\n"
+"Vykonať príkazy na základe podmienky.\n"
+"    \n"
+"    Vykoná sa zoznam „if PRÍKAZY“. Ak je jeho návratová hodnota nula, "
+"vykoná\n"
 "    sa zoznam „then PRÍKAZY“. Inak sa postupne vykoná každý zoznam\n"
 "    „elif PRÍKAZY“ a ak je jeho návratová hodnota nula, vykoná sa "
 "zodpovedajúci\n"
@@ -4027,10 +4549,12 @@ msgstr ""
 "    ak je prítomný. Návratová hodnota celej konštrukcie je návratová "
 "hodnota\n"
 "    posledného vykonaného príkazu alebo nula ak sa žiadna podmienka\n"
-"    nevyhodnotila na pravdu."
+"    nevyhodnotila na pravdu.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1573
-#, fuzzy
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4040,11 +4564,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Rozbaliť a vykonávať PRÍKAZY pokým posledný príkaz medzi PRÍKAZMI\n"
-"    „while“ nemá návratovú hodnotu nula."
+"Vykonávať príkazy kým podmienka platí.\n"
+"    \n"
+"    Rozbaliť a vykonávať PRÍKAZY pokým posledný príkaz medzi PRÍKAZMI\n"
+"    „while“ nemá návratovú hodnotu nula.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1585
-#, fuzzy
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4054,10 +4582,28 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Rozbaliť a vykonávať PRÍKAZY pokým posledný príkaz medzi PRÍKAZMI\n"
-"    „until“ nemá nenulovú návratovú hodnotu."
+"Vykonávať príkazy kým podmienka neplatí.\n"
+"    \n"
+"    Rozbaliť a vykonávať PRÍKAZY pokým posledný príkaz medzi PRÍKAZMI\n"
+"    „until“ nemá nenulovú návratovú hodnotu.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu posledného vykonaného príkazu."
+
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
 
-#: builtins.c:1597
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4070,9 +4616,19 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is readonly."
 msgstr ""
+"Definovať funkciu shellu.\n"
+"    \n"
+"    Vytvorí funkciu shellu NÁZOV. Keď sa spustí ako jednoduchý príkaz, "
+"NÁZOV\n"
+"    spustí PRÍKAZy v kontexte vulajúceho shellu. Keď sa spustí v tvare "
+"NÁZOV,\n"
+"    argumenty sa odovzdajú funkcii ako $1...$n a názov funkcie je "
+"$FUNCNAME.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak sa nestalo, že je NÁZOV iba na čítanie."
 
-#: builtins.c:1611
-#, fuzzy
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4082,11 +4638,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Spustiť množinu príkazov v skupine. Toto je jeden zo spôsobov ako\n"
-"    presmerovať celú možinu príkazov."
+"Zoskupiť príkazy do jednotky.\n"
+"    \n"
+"    Spustiť množinu príkazov v skupine. Toto je jeden zo spôsobov ako\n"
+"    presmerovať celú možinu príkazov.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1623
-#, fuzzy
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4099,14 +4659,18 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the resumed job."
 msgstr ""
-"Ekvivalentné argumentu JOB_SPEC príkazu „fg“ Obnoví beh\n"
+"Vyhodnotiť podmienený výraz.\n"
+"    \n"
+"    Ekvivalentné argumentu JOB_SPEC príkazu „fg“ Obnoví beh\n"
 "    zastavenej úlohy alebo úlohyu bežiacej v pozadí. JOB_SPEC môže\n"
 "    určiť buď názov alebo číslo úlohy. Ak po JOB_SPEC nasleduje „&“, úloha\n"
 "    sa umiestni do pozadia, ako keby bola špecifikácia úlohy zadaná ako\n"
-"    argument príkazu „bg“."
+"    argument príkazu „bg“.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti návratovú hodnotu obnovenej úlohy."
 
-#: builtins.c:1638
-#, fuzzy
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4116,11 +4680,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
-"VÝRAZ sa vyhodnotí podľa pravidiel aritmetického vyhodnocovania.\n"
-"    Ekvivalentné s „let VÝRAZ“."
+"Vyhodnotiť aritmetický výraz.\n"
+"    \n"
+"    VÝRAZ sa vyhodnotí podľa pravidiel aritmetického vyhodnocovania.\n"
+"    Ekvivalentné s „let VÝRAZ“.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 1 ak sa VÝRAZ vyhodnotí na 0; inak vráti 0."
 
-#: builtins.c:1650
-#, fuzzy
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4147,7 +4715,9 @@ msgid ""
 "    Exit Status:\n"
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
-"Vráti 0 alebo 1 v závislosti na vyhodnotení výrazu podmienky VÝRAZ.\n"
+"Vykonať podmienený výraz.\n"
+"    \n"
+"    Vráti 0 alebo 1 v závislosti na vyhodnotení výrazu podmienky VÝRAZ.\n"
 "    Výrazy sa skladajú z rovnakých zložiek ako pri vstavanom príkaze\n"
 "    „test“ a je možné ich kombinovať pomocou nasledovných operátorov\n"
 "    \n"
@@ -4161,10 +4731,12 @@ msgstr ""
 "    Ak sú použité operátory „==“ a „!=“, reťazec napravo od operátora\n"
 "    sa použije ako vzor a vykoná sa hľadanie zhody reťazcov. Operátory\n"
 "    && a || nevyhodnocujú VÝR2 ak hodnota VÝR1 postačuje na určenie\n"
-"    hodnoty výrazu."
+"    hodnoty výrazu.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 alebo 1 v závislosti na hodnote VÝRAZu."
 
-#: builtins.c:1676
-#, fuzzy
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4217,7 +4789,9 @@ msgid ""
 "    HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
-"BASH_VERSION\tInformácie o verzii tohto Bash.\n"
+"Bežné názvy premenných shellu a ich použitie\n"
+"    \n"
+"    BASH_VERSION\tInformácie o verzii tohto Bash.\n"
 "    CDPATH\tBodkočiarkami oddelený zoznam adresárov, v ktorých sa budú\n"
 "    \t\thľadať adresáre dané ako argument príkazu „cd“.\n"
 "    GLOBIGNORE\tBodkočiarkami oddelený zoznam vzorov popisujúcich názvy\n"
@@ -4232,7 +4806,7 @@ msgstr ""
 "    IGNOREEOF\tRiadi činnosť shellu po prijatí znaku EOF ako\n"
 "    \t\tjediného na vstupe. Ak je voľba nastavená, jej hodnota je\n"
 "    \t\tpočet znakov EOF, ktoré budú za sebou prijaté na prázdnom\n"
-"    \t\triadku predtým, než sa shell ukončí (štadnardne 10). Ak voľba\n"
+"    \t\triadku predtým, než sa shell ukončí (štandardne 10). Ak voľba\n"
 "    \t\tNie je nastavená, EOF značí koniec vstupu.\n"
 "    MACHTYPE\tReťazec popisujúci systém, na ktorom Bash práve beží.\n"
 "    MAILCHECK\tAko často v sekundách Bash kontroluje novú poštu.\n"
@@ -4249,14 +4823,13 @@ msgstr ""
 "    SHELLOPTS\tBodkočiarkami oddelený zoznam zapnutých volieb shellu.\n"
 "    TERM\tNázov aktuálneho typu terminálu.\n"
 "    TIMEFORMAT\tFormát výstupu štatistiky doby behu, ktorú zobrazuje\n"
-"    \t\trezervované slovo „time“.\n"
-"    auto_resume\tNenulová hodnota značí príkaz, ktorý keď sa vyskytuje na "
-"samostatnom\n"
-"    \t\triadku, vyhľadá sa v zozname momentálne zastavených\n"
-"    \t\túloh. Ak sa je tam nachádza, úloha sa prenesie do popredia.\n"
-"    \t\tHodnota „exact“ znamená, že slovo príkazu sa musí presne\n"
-"    \t\tzhodovať s príkazom v zozname zastavených úloh. Hodnota\n"
-"    \t\t„substring“ znamená, že slovo príkazu sa musí zhodovať s\n"
+"    \t\tvyhradené slovo „time“.\n"
+"    auto_resume\tNenulová hodnota značí príkaz, ktorý keď sa vyskytuje na\n"
+"    \t\tsamostatnom riadku, vyhľadá sa v zozname momentálne\n"
+"    \t\tzastavených úloh. Ak sa je tam nachádza, úloha sa prenesie do\n"
+"    \t\tpopredia. Hodnota „exact“ znamená, že slovo príkazu sa musí\n"
+"    \t\tpresne zhodovať s príkazom v zozname zastavených úloh.\n"
+"    \t\tHodnota „substring“ znamená, že slovo príkazu sa musí zhodovať s\n"
 "    \t\tpodreťazcom úlohy. Akákoľvek iná hodnota znamená, že\n"
 "    \t\tpríkaz musí byť predponou zastavenej úlohy.\n"
 "    histchars\tZnaky riadiace dopĺňanie histórie a rýchle\n"
@@ -4267,8 +4840,7 @@ msgstr ""
 "    HISTIGNORE\tBodkočiarkami oddelený zoznam vzoriek, ktoré\n"
 "    \t\tsa používajú na rozhodovanie, či sa príkaz uloží do histórie.\n"
 
-#: builtins.c:1733
-#, fuzzy
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4298,28 +4870,33 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
-"Pridá adresár na vrchol zásobníka adresárov alebo ho otočí tak, že\n"
+"Pridať adresár na zásobník.\n"
+"    \n"
+"    Pridá adresár na vrchol zásobníka adresárov alebo ho otočí tak, že\n"
 "    nový vrchol zásobníka sa stane aktuálnym pracovným adresárom.\n"
 "    Bez argumentov vymení vrchné dva adresáre.\n"
 "    \n"
-"    +N\tOtočí zásobník tak, že N-tý adresár (počítajúc zľava zoznamu,\n"
-"    \tktorý zobrazuje „dirs“, počínajúc nulou) je na vrchu.\n"
+"    Voľby:\n"
+"      -n\tpotlačí normálnu zmenu adresára pri odstraňovaní položiek\n"
+"        \tzo zásobníka, takže sa zmení iba zásobník.\n"
 "    \n"
-"    -N\tOtočí zásobník tak, že N-tý adresár (počítajúc sprava zoznamu,\n"
-"    \tktorý zobrazuje „dirs“, počínajúc nulou) je na vrchu.\n"
+"    Argumenty:\n"
+"      +N\tOtočí zásobník tak, že N-tý adresár (počítajúc zľava zoznamu,\n"
+"        \tktorý zobrazuje „dirs“, počínajúc nulou) je na vrchu.\n"
 "    \n"
-"    -n\tpotlačí normálnu zmenu adresára pri odstraňovaní položiek\n"
-"    \tzo zásobníka, takže sa zmení iba zásobník.\n"
+"      -N\tOtočí zásobník tak, že N-tý adresár (počítajúc sprava zoznamu,\n"
+"        \tktorý zobrazuje „dirs“, počínajúc nulou) je na vrchu.\n"
 "    \n"
-"    adr\tpridá ADR na vrchol zásobníka adresárov, čím sa tento stane\n"
-"    \tnovým aktuálnym pracovným adresárom.\n"
+"      adr\tpridá ADR na vrchol zásobníka adresárov, čím sa tento stane\n"
+"        \tnovým aktuálnym pracovným adresárom.\n"
+"    \n"
+"    Zásobník adresárov môžete zobraziť vstavaným príkazom „dirs“.\n"
 "    \n"
-"    Zásobník adresárov môžete zobraziť príkazom „dirs“.    \n"
-"    Návratový kód:\n"
+"    Návratová hodnota:\n"
 "    Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa\n"
 "    chyba pri zmene adresára."
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4345,7 +4922,7 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
-"Odstráni položky zo zásobníka adresárov.\n"
+"Odstrániť položky zo zásobníka adresárov.\n"
 "    \n"
 "    Odstráni položky zo zásobníka adresárov. Bez argumentov odstráni\n"
 "    vrchnú položku zo zásobníka a zmení adresár na adresár, ktorý\n"
@@ -4365,11 +4942,11 @@ msgstr ""
 "    \n"
 "    Zásobník adresárov môžete zobraziť príkazom „dirs“.\n"
 "    \n"
-"    Návratový kód:\n"
+"    Návratová hodnota:\n"
 "    Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa\n"
 "    chyba pri zmene adresára."
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4397,7 +4974,7 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
-"Zobrazí zoznam momentálne zapamätaných adresárov.\n"
+"Zobraz zoznam momentálne zapamätaných adresárov.\n"
 "    \n"
 "    Zobrazí zoznam momentálne zapamätaných adresárov. Adresáre\n"
 "    sa do zoznamu dostávajú príkazom „pushd“; zo zoznamu ich môžete\n"
@@ -4406,21 +4983,21 @@ msgstr ""
 "    Voľby:\n"
 "      -c\tvyprázdniť zásobník adresárov zmazaním všetkých položiek.\n"
 "      -l\tnevypisovať skrátené verzie adresárov vzhľadom na domovský\n"
-"    \trelatívne k vášmu domovskému adresáru\n"
+"    \t\trelatívne k vášmu domovskému adresáru\n"
 "      -p\tvypisovať zásobník adresárov vo formáte jedna položka na riadok\n"
 "      -v\tvypisovať zásobník adresárov vo formáte jedna položka na\n"
-"    \triadok a pred adresár vypísať jeho pozíciu v zásobníku.\n"
+"    \t\triadok a pred adresár vypísať jeho pozíciu v zásobníku.\n"
 "    \n"
 "      +N\tzobrazuje N-tú položku počítajúc zľava zoznamu, ktorý zobrazuje\n"
-"    \tdirs vyvolaný bez volieb, počínajúc nulou.\n"
+"    \t\tdirs vyvolaný bez volieb, počínajúc nulou.\n"
 "    \n"
 "      -N\tzobrazuje N-tú položku počítajúc sprava zoznamu, ktorý zobrazuje\n"
-"    \tdirs vyvolaný bez volieb, počínajúc nulou.\n"
+"    \t\tdirs vyvolaný bez volieb, počínajúc nulou.\n"
 "    \n"
-"    Návratový kód:\n"
+"    Návratová hodnota:\n"
 "    Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa chyba."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -4440,8 +5017,25 @@ msgid ""
 "    Returns success if OPTNAME is enabled; fails if an invalid option is\n"
 "    given or OPTNAME is disabled."
 msgstr ""
-
-#: builtins.c:1847
+"Nastaviť a zrušiť nastavenie volieb shellu.\n"
+"    \n"
+"    Zmení nastavenie každej z volieb shellu OPTNAME. Bez akýchkoľvek\n"
+"    argumentov volieb vypíše všetky voľby shellu s označením, či je každá\n"
+"    z nich nastavená alebo nie.\n"
+"    \n"
+"    Voľby:\n"
+"      -o\tobmedzí OPTNAME na tie, ktoré sú definované na použitie\n"
+"      \tso „set -o“\n"
+"      -p\tvypíše každú voľbu shellu s označením jej stavu\n"
+"      -q\tpotlačí výstup\n"
+"      -s\tzapnúť (nastaviť) každú OPTNAME\n"
+"      -u\tvypnúť (zrušiť nastavenie) každú OPTNAME\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak je OPTNAME zapnuté; zlyhá ak bola zadaná\n"
+"    neplatná voľba alebo OPTNAME je vypnuté."
+
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4473,8 +5067,8 @@ msgstr ""
 "printf formátuje a vypisuje ARGUMENTY podľa FORMÁTu.\n"
 "    \n"
 "    FORMÁT je reťazec znakov, ktorý obsahuje tri typy objektov: čisté "
-"znaky,    ktoré sa jednoducho skopírujú na štandardný výstup, únikové "
-"klauzuly,\n"
+"znaky,\n"
+"    ktoré sa jednoducho skopírujú na štandardný výstup, únikové klauzuly,\n"
 "    ktoré sa nahradia zodpovedajúcim výstupom a skopírujú na štandardný\n"
 "    výstup a špecifikácie formátu, z ktorých každá spôsobí vypísanie\n"
 "    nasledovného argumentu.\n"
@@ -4484,13 +5078,13 @@ msgstr ""
 "    \n"
 "      %b\trozšíriť únikové klauzuly backspace v zodpovedajúcom argumente\n"
 "      %q\tdať argument do zátvoriek tak, aby ho bolo možné použiť ako\n"
-"    \tvstup shellu.\n"
+"        \tvstup shellu.\n"
 "    \n"
-"    Návratový kód:\n"
+"    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba pri\n"
 "    zápise či priradení."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4511,8 +5105,25 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
+"Definuje ako má Readline dopĺňať argumenty.\n"
+"    \n"
+"    Pre každý NÁZOV uviesť ako sa majú dopĺňať argumenty. Ak nie sú zadané\n"
+"    žiadne argumenty, vypíšu sa existujúce dopĺňania v takom tvare, ktorý\n"
+"    je možné znova použiť ako vstup.\n"
+"    \n"
+"    Voľby:\n"
+"      -p\tvypísať existujúce špecifikácie dopĺňania v znovapoužiteľnom\n"
+"        \ttvare\n"
+"      -r\todstrániť špecifikáciu dopĺňania každého NÁZVU alebo ak nie je\n"
+"        \tzadaný žiadny NÁZOV, všetky špecifikácie dopĺňania\n"
+"    \n"
+"    Pri pokuse o doplnenie sa operácie použijú v poradí hore uvedených\n"
+"    volieb veľkými písmenami.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -4524,15 +5135,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
-"Zobrazí možné dokončenie v závislosti na voľbách.\n"
+"Zobraz možné dokončenie v závislosti na voľbách.\n"
 "    \n"
 "    Slúži na použitie z shell funkcií tvoriacich možné dokončenia\n"
 "    Ak je daný voliteľný parameter SLOVO, tvoria sa zhody so SLOVOm.\n"
 "    \n"
-"    Návratový kód:\n"
+"    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4560,10 +5171,34 @@ msgid ""
 "    Returns success unless an invalid option is supplied or NAME does not\n"
 "    have a completion specification defined."
 msgstr ""
+"Zmeniť alebo zobraziť voľby dopĺňania.\n"
+"    \n"
+"    Zmení voľby dopĺňania pre každý NÁZOV alebo ak nie je zadaný žiadny\n"
+"    NÁZOV pre momentálne vykonávané dopĺňanie. Ak nie sú zadané žiadne\n"
+"    voľby, vypíše špecifikácie dopĺňania pre každý NÁZOV alebo pre\n"
+"    momentálne vykonávané dopĺňanie.\n"
+"    \n"
+"    Voľby:\n"
+"    \t-o voľba\tNastaví voľbu dopĺňania VOĽBA pre každý NÁZOV\n"
+"    \n"
+"    Použitím „+o“ namiesto „-o“ vypnete určenú voľbu.\n"
+"    \n"
+"    Argumenty:\n"
+"    \n"
+"    Každý NÁZOV odkazuje na príkaz, pre ktorý musela byť vopred definovaná\n"
+"    špecifikácia dopĺňania pomocou vstavaného príkazu „complete“. Ak nie sú\n"
+"    zadané žiadne NÁZVY, compopt musí byť volaný priamo funkciou, ktorá\n"
+"    práve tvorí dopĺňanie a voľby generátora momentálne vykonávaného\n"
+"    dopĺňania sa zmenia.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba a NÁZOV nemá definovanú\n"
+"    špecifikáciu dopĺňania."
 
-#: builtins.c:1940
+#: builtins.c:1958
+#, fuzzy
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -4587,7 +5222,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -4596,6 +5233,42 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
+"Načítať riadky zo súboru do premennej poľa.\n"
+"    \n"
+"    Načíta riadky zo štandardného vstupu do premennej poľa POLE alebo z\n"
+"    popisovača súboru FD ak je zadaná voľba -u. Štandardné pole je premenná\n"
+"    MAPFILE\n"
+"    \n"
+"    Voľby:\n"
+"      -n počet\tSkopírovať najviac POČET riadkov. Ak je POČER 0, všetky "
+"riadky.\n"
+"      -O začiatok\tZačať priraďovanie položiek POĽA na indexe ZAČIATOK.\n"
+"      \t\tPredvolený index je 0.\n"
+"      -s počet\tIgnorovať prvých prečítaných POČET riadkov.\n"
+"      -t\t\tOdstrániť znak nového riadka z konca každého načítaného riadka.\n"
+"      -u fd\t\tNačítať riadky z popisovača FD namiest štandardného vstupu.\n"
+"      -C callback\tVyhodnotiť CALLBACK po prečítaní každých QUANTUM "
+"riadkov.\n"
+"      -c quantum\tUrčuje počet riadkov, ktoré sa majú prečítať pred každým\n"
+"      \t\tvolaním CALLBACK.\n"
+"    \n"
+"    Argumenty:\n"
+"      ARRAY\t\tNázov premennej poľa, kam sa majú uložiť údaje.\n"
+"    \n"
+"    Ak uvediete -C bez -c, predvolená hodnota quantum je 5000.\n"
+"    \n"
+"    Ak nie je zadaný ZAČIATOK explicitne, mapfile POLE vyčistí predtým,\n"
+"    než ho začne plniť.\n"
+"    \n"
+"    Návratová hodnota:\n"
+"    Vráti 0 ak nebola zadaná neplatná voľba a POLE nie je len na čítanie."
+
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
 
 #~ msgid " "
 #~ msgstr " "
index 56a30c5ec41ce146dd26b828ba3bad68e612bd7e..2c003b86afcd44bd6dcd3bbb1f4572b36359d464 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index caf381648238fa666300cd8be2c1dd2ba045e2be..87f40e16e294a3a40826d7142582eb61f46d650d 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2008-09-15 13:09+0200\n"
 "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -42,7 +42,7 @@ msgstr "%s: det går inte att tilldela till ickenumeriska index"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: måste använda index vid tilldelning av associativ vektor"
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: det går inte att skapa: %s"
@@ -248,12 +248,22 @@ msgstr "%s: inte inbyggt i skalet"
 msgid "write error: %s"
 msgstr "skrivfel: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: fel när aktuell katalog hämtades: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: tvetydig jobbspecifikation"
@@ -289,7 +299,7 @@ msgstr "kan endast användas i en funktion"
 msgid "cannot use `-f' to make functions"
 msgstr "det går inte att använda \"-f\" för att göra funktioner"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: endast läsbar funktion"
@@ -328,7 +338,7 @@ msgstr "%s: inte dynamiskt laddad"
 msgid "%s: cannot delete: %s"
 msgstr "%s: kan inte ta bort: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -344,7 +354,7 @@ msgstr "%s: inte en normal fil"
 msgid "%s: file is too large"
 msgstr "%s: filen är för stor"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: det kår inte att köra binär fil"
@@ -494,36 +504,36 @@ msgstr "Okänt fel"
 msgid "expression expected"
 msgstr "uttryck förväntades"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: ogiltig filidentifierarspecifikation"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: ogiltig filbeskrivare: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: ogiltigt radantal"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: ogiltig vektorstart"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: ogiltigt återanropskvanta"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr "tomt vektorvariabelnamn"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr "stöd för vektorvariabler krävs"
 
@@ -870,31 +880,31 @@ msgstr "\atiden gick ut i väntan på indata: automatisk utloggning\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "det går inte att omdiregera standard in från /dev/null: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: \"%c\": ogiltigt formateringstecken"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 msgid "pipe error"
 msgstr "rörfel"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: begränsat: det går inte att ange \"/\" i kommandonamn"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: kommandot finns inte"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: felaktig tolk"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "det går inte att duplicera fb %d till fb %d"
@@ -989,140 +999,140 @@ msgstr "save_bash_input: buffert finns redan för ny fb %d"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp rör"
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "avgrenad pid %d fins i körande jobb %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "tar bort stoppat jobb %d med processgrupp %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: process %5ld (%s) i the_pipeline"
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) markerad som fortfarande vid liv"
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: ingen sådan pid"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Klart"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Stoppat"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stoppat(%s)"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Kör"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Klart(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Avslut %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Okänd status"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(minnesutskrift skapad) "
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (ak: %s)"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "barns setpgid (%ld till %ld)"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld är inte ett barn till detta skal"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Ingen uppgift om process %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: jobb %d är stoppat"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: jobbet har avslutat"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: jobb %d är redan i bakgrunden"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: rad %d: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (minnesutskrift skapad)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(ak nu: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp misslyckades"
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: linjedisciplin"
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "det går inte att sätta terminalprocessgrupp (%d)"
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "ingen jobbstyrning i detta skal"
 
@@ -1352,7 +1362,7 @@ msgstr "Använd \"%s\" fär att lämna skalet.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "oväntat filslut när matchande \")\" söktes"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "komplettering: funktion \"%s\" finns inte"
@@ -1362,12 +1372,12 @@ msgstr "komplettering: funktion \"%s\" finns inte"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: felaktig anslutning \"%d\""
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: \"%c\": ogiltigt formateringstecken"
@@ -1708,12 +1718,12 @@ msgstr "%s: felaktig substitution"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: det går inte att tilldela på detta sätt"
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "felaktig ersättning: ingen avslutande \"`\" i %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "ingen match: %s"
@@ -2150,50 +2160,54 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until KOMMANDON; do KOMMANDON; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function namn { KOMMANDON ; } or namn () { KOMMANDON ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 msgid "{ COMMANDS ; }"
 msgstr "{ KOMMANDON ; }"
 
-#: builtins.c:202
+#: builtins.c:204
 msgid "job_spec [&]"
 msgstr "jobbspec [&]"
 
-#: builtins.c:204
+#: builtins.c:206
 msgid "(( expression ))"
 msgstr "(( uttryck ))"
 
-#: builtins.c:206
+#: builtins.c:208
 msgid "[[ expression ]]"
 msgstr "[[ uttryck ]]"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr "variabler - Namn och betydelse av några skalvariabler"
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | kat]"
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [flgnamn ...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] format [argument]"
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
@@ -2203,7 +2217,7 @@ msgstr ""
 "ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S "
 "suffix] [namn ...]"
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
@@ -2212,11 +2226,11 @@ msgstr ""
 "ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S "
 "suffix] [ord]"
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "compopt [-o|+o flagga] [namn ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
@@ -2224,7 +2238,16 @@ msgstr ""
 "mapfile [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C återanrop] [-c "
 "kvanta] [vektor]"
 
-#: builtins.c:250
+#: builtins.c:242
+#, fuzzy
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C återanrop] [-c "
+"kvanta] [vektor]"
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2260,7 +2283,7 @@ msgstr ""
 "    alias returnerar sant om inte ett NAMN ges för vilket inget alias har\n"
 "    definierats."
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2276,7 +2299,7 @@ msgstr ""
 "    \n"
 "    Returnerar framgång om inte ett NAMN inte är ett existerande alias."
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2356,7 +2379,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    bind returnerar 0 om inte en okänd flagga ges eller ett fel inträffar."
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2374,7 +2397,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returvärdet är 0 förutsatt att N är större eller lika med 1."
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2393,7 +2416,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Slutstatus är 0 förutsatt att N är större eller lika med 1."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2419,7 +2442,7 @@ msgstr ""
 "inte\n"
 "    är inbyggd i skalet."
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2447,7 +2470,7 @@ msgstr ""
 "    Returnerar 0 om inte skalet inte kör en skalfunktion eller UTTR är\n"
 "    ogiltigt."
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2505,7 +2528,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar 0 om katalogen är ändrad; skilt från noll annars."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2534,7 +2557,7 @@ msgstr ""
 "katalogen\n"
 "    inte kan läsas."
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2550,7 +2573,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Lyckas alltid."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2562,7 +2585,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Lyckas alltid."
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2574,7 +2597,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Misslyckas alltid."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2609,7 +2632,7 @@ msgstr ""
 "inte\n"
 "    finns."
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2678,7 +2701,7 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
 "inträffar."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2688,7 +2711,7 @@ msgstr ""
 "    \n"
 "    Föråldrat.  Se \"help declare\"."
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2715,7 +2738,7 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges, ett fel inträffar\n"
 "    eller skalet inte exekverar en funktion."
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2773,7 +2796,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte ett skrivfel inträffar."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2795,7 +2818,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte ett skrivfel inträffar."
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2849,7 +2872,7 @@ msgstr ""
 "    Returnerar framgång om inte NAMN inte är inbyggd i skalet eller ett fel\n"
 "    inträffar."
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2869,7 +2892,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar slutstatus av kommandot eller framgång om kommandot är tomt."
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2946,7 +2969,7 @@ msgstr ""
 "    Returnerar framgång om en flagga hittas, misslyckas om slutet av\n"
 "    flaggorna nås eller ett fel inträffar."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2987,7 +3010,7 @@ msgstr ""
 "    Returnerar framgång om inte KOMMANDO inte finns eller ett fel vid\n"
 "    omdirigering inträffar."
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2999,7 +3022,7 @@ msgstr ""
 "    Avslutar skalet med statusen N.  Om N utelämnas är slutstatusen den\n"
 "    hos det sist körda kommandot."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3012,7 +3035,7 @@ msgstr ""
 "    Avslutar ett inloggningsskal med slutstatus N.  Returnerar ett fel om\n"
 "    det inte körs i ett inloggningsskal."
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3068,7 +3091,7 @@ msgstr ""
 "    Returnerar framgång eller status på exekverat kommando, skilt från noll\n"
 "    om ett fel inträffar."
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3089,7 +3112,7 @@ msgstr ""
 "    Status på kommandot som placerades i förgrunden, eller misslyckande om\n"
 "    ett fel inträffar."
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3115,7 +3138,7 @@ msgstr ""
 "fel\n"
 "    inträffar."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3158,7 +3181,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte NAMN inte hittas eller en ogiltig flagga ges."
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3199,7 +3222,7 @@ msgstr ""
 "    Returnerar framgång om inte MÖNSTER inte finns eller en ogiltig flagga "
 "ges."
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3265,7 +3288,7 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
 "inträffar."
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3309,7 +3332,7 @@ msgstr ""
 "inträffar.\n"
 "    Om -x används returneras slutstatus från KOMMANDO."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3339,7 +3362,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga eller JOBBSPEC ges."
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3383,7 +3406,7 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga angivits eller ett fel\n"
 "    inträffar."
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3471,7 +3494,7 @@ msgstr ""
 "    Om det sista ARG beräknas till 0, returnerar let 1; let returnerar 0 "
 "annars."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3552,7 +3575,7 @@ msgstr ""
 "    Returkoden är noll om inte filslut nås, läsningens tidsgräns överskrids\n"
 "    eller en ogiltig filbeskrivare ges som argument till -u."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3573,7 +3596,7 @@ msgstr ""
 "    Returnerar N, eller misslyckande om skalet inte kör en funktion eller\n"
 "    skript."
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3739,7 +3762,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3775,7 +3798,7 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN endast är\n"
 "    läsbart."
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3808,7 +3831,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN är ogiltigt."
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3844,7 +3867,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN är ogiltigt."
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3863,7 +3886,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte N är negativt eller större än $#."
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3887,7 +3910,7 @@ msgstr ""
 "    Returnerar status på det sista kommandot som körs i FILNAMN, misslyckas\n"
 "    om FILNAMN inte kan läsas."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3913,7 +3936,7 @@ msgstr ""
 "fel\n"
 "    inträffar."
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4061,7 +4084,7 @@ msgstr ""
 "    Returnerar framgång om UTTR beräknas till sant.  Misslyckas ifall UTTR\n"
 "    beräknas till falskt eller ett ogiltigt argument ges."
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4074,7 +4097,7 @@ msgstr ""
 "argumentet\n"
 "    måste vara en bokstavlig \"]\", för att matcha den inledande \"[\"."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4094,7 +4117,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Lyckas alltid."
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4160,7 +4183,7 @@ msgstr ""
 "flagga\n"
 "    ges."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4217,7 +4240,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om alla NAMNen finns, misslyckas om något inte finns."
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4305,7 +4328,7 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga anges eller ett fel "
 "inträffar."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4341,7 +4364,7 @@ msgstr ""
 "flagga\n"
 "    ges."
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -4370,7 +4393,7 @@ msgstr ""
 "ogiltig\n"
 "    flagga ges."
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4396,7 +4419,7 @@ msgstr ""
 "ogiltig\n"
 "    flagga ges."
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4419,7 +4442,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar status för det sist exekverade kommandot."
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4449,7 +4472,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4484,7 +4507,7 @@ msgstr ""
 "    Sluttatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4513,7 +4536,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returstatusen är returstatusen från RÖR."
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4531,7 +4554,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4567,7 +4590,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar status från det sist exekverade kommandot."
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4585,7 +4608,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4603,7 +4626,20 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4626,7 +4662,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte NAMN endast är läsbart."
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4644,7 +4680,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar stutusen från det sist exekverade kommandot."
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4668,7 +4704,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen på det återupptagna jobbet."
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4686,7 +4722,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar 1 om UTTRYCK beräknas till 0, returnerar 0 annars."
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4739,7 +4775,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    0 eller 1 beroende på värdet av UTTRYCK."
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4844,7 +4880,7 @@ msgstr ""
 "    HISTIGNORE\tEn kolonseparerad lista av mönster som används för att\n"
 "    \t\tbestämma vilka kommandon som skall sparas i historielistan.\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4902,7 +4938,7 @@ msgstr ""
 "    Returnerar framgång om inte ett ogiltigt argument ges eller bytet av\n"
 "    katalog misslyckas."
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4952,7 +4988,7 @@ msgstr ""
 "    Returnerar framgång om inte ett ogiltigt argument ges eller bytet av\n"
 "    katalog misslyckas."
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5005,7 +5041,7 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
 "inträffar."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5041,7 +5077,7 @@ msgstr ""
 "    Returnerar framgång om FLGNAMN är aktiverat, misslyckas om en ogiltig\n"
 "    flagga ges eller FLGNAMN är avaktiverat."
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5094,7 +5130,7 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller ett skriv-\n"
 "    eller tilldelningsfel inträffar."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5134,7 +5170,7 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
 "inträffar."
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5156,7 +5192,7 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
 "inträffar."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -5211,10 +5247,10 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN inte har\n"
 "    någon kompletteringsspecifikaation definierad."
 
-#: builtins.c:1940
+#: builtins.c:1958
 #, fuzzy
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -5238,7 +5274,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -5277,3 +5315,10 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges eller VEKTOR är\n"
 "    oföränderlig."
+
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
index 3e8ed1aa224fb9361678b4336b88ba76abcdcf60..7984078bce160e5922b470c90b7182159feab2dc 100644 (file)
Binary files a/po/tr.gmo and b/po/tr.gmo differ
index 1e9b876d4b561cc978335bf365d9b27396ba0802..74bc30dc3d2dabff540472d4a88bfab22e2ebce2 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2006-10-30 20:00+0200\n"
 "Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -40,7 +40,7 @@ msgstr "%s: sayısal olmayan indise atama yapılamaz"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: oluşturulamıyor: %s"
@@ -247,12 +247,22 @@ msgstr "%s: bir kabuk yerleşiği değil"
 msgid "write error: %s"
 msgstr "yazma hatası: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: geçerli dizin alınırken hata: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: iş belirtimi belirsiz"
@@ -288,7 +298,7 @@ msgstr "sadece bir işlevde kullanılabilir"
 msgid "cannot use `-f' to make functions"
 msgstr "işlev yapmak için `-f' kullanılamaz"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: salt okunur işlev"
@@ -327,7 +337,7 @@ msgstr "%s: özdevimli olarak yüklenmemiş"
 msgid "%s: cannot delete: %s"
 msgstr "%s: silinemiyor: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -343,7 +353,7 @@ msgstr "%s: bir dosya değil"
 msgid "%s: file is too large"
 msgstr "%s: dosya çok büyük"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: ikili dosya çalıştırılamıyor"
@@ -493,37 +503,37 @@ msgstr "Bilinmeyen hata"
 msgid "expression expected"
 msgstr "ifade bekleniyordu"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: dosya tanıtıcı belirtimi geçersiz"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: dosya tanıtıcı geçersiz: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s: seçenek geçersiz"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: seçenek geçersiz"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: eylem adı geçersiz"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 #, fuzzy
 msgid "empty array variable name"
 msgstr "%s: bir dizi değişkeni değil"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -866,32 +876,32 @@ msgstr "\agirdi beklerken zamanaşımı: auto-logout\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "/dev/null'dan standart girdiye yönlendirme yapılamaz: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': biçim karakteri geçersiz"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "yazma hatası: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: kısıtlı: komut adında `/' kullanamazsınız"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: komut yok"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: hatalı yorumlayıcı"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "fd %d, fd %d olarak yinelenemiyor"
@@ -986,140 +996,140 @@ msgstr "save_bash_input: yeni fd %d için tampon zaten var"
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "çatallanan pid %d, çalışan iş %d içinde görünüyor"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "durdurulan %2$ld süreç gruplu iş %1$d  siliniyor"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: böyle bir pid yok"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld bu kabuğun bir alt sürecine ait değil"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: süreç %ld için kayıt yok"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: iş %d durdu"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: iş sonlanmış"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: iş %d zaten artalanda"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: uyarı: "
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "bu kabukta iş denetimi yok"
 
@@ -1349,7 +1359,7 @@ msgstr "Kabuğu bırakmak için \"%s\" kullanın.\n"
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "`)' için eşleşme aranırken beklenmedik dosya sonu"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: `%s' işlevi yok"
@@ -1359,12 +1369,12 @@ msgstr "completion: `%s' işlevi yok"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: hatalı bağlayıcı `%d'"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': geçersiz biçim karakteri"
@@ -1710,12 +1720,12 @@ msgstr "%s: hatalı ikame"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: bu yolla atama yapılmaz"
 
-#: subst.c:7479
+#: subst.c:7499
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "hatalı ikame: %2$s içinde kapatan `%1$s' yok"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "eşleşme yok: %s"
@@ -2138,75 +2148,85 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr ""
 
 #: builtins.c:198
-msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgid "coproc [NAME] command [redirections]"
 msgstr ""
 
 #: builtins.c:200
-msgid "{ COMMANDS ; }"
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:202
-msgid "job_spec [&]"
+msgid "{ COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:204
+msgid "job_spec [&]"
+msgstr ""
+
+#: builtins.c:206
 #, fuzzy
 msgid "(( expression ))"
 msgstr "ifade bekleniyordu"
 
-#: builtins.c:206
+#: builtins.c:208
 #, fuzzy
 msgid "[[ expression ]]"
 msgstr "ifade bekleniyordu"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr ""
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr ""
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr ""
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 #, fuzzy
 msgid ""
 "Define or display aliases.\n"
@@ -2234,7 +2254,7 @@ msgstr ""
 "    sonraki sözcüğün takma  ad  ikamesi  için  sınanmasına  sebep  olur.\n"
 "    Hiçbir şeyin rumuzu olmayan bir İSİM verilmedikçe alias doğru döndürür."
 
-#: builtins.c:272
+#: builtins.c:276
 #, fuzzy
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
@@ -2249,7 +2269,7 @@ msgstr ""
 "verilmişse,\n"
 "    tüm rümuz tanımları silinir."
 
-#: builtins.c:285
+#: builtins.c:289
 #, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
@@ -2325,7 +2345,7 @@ msgstr ""
 "      -s                 Makroları çağıran tuş dizilerini ve değerlerini\n"
 "                         girdi olarak kullanılabilir biçimde listeler."
 
-#: builtins.c:322
+#: builtins.c:326
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2340,7 +2360,7 @@ msgstr ""
 "    FOR, WHILE veya UNTIL döngülerinin sonraki yinelemesinden devam edilir.\n"
 "    N verilirse dışa doğru N. döngüden devam edilir. N >= 1 olmalıdır."
 
-#: builtins.c:334
+#: builtins.c:338
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2355,7 +2375,7 @@ msgstr ""
 "    FOR, WHILE veya UNTIL döngülerinin sonraki yinelemesinden devam edilir.\n"
 "    N verilirse dışa doğru N. döngüden devam edilir. N >= 1 olmalıdır."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2369,7 +2389,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2403,7 +2423,7 @@ msgstr ""
 "döneceğini\n"
 "    belirtir; tepe çerçeve 0. çerçevedir."
 
-#: builtins.c:379
+#: builtins.c:383
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2455,7 +2475,7 @@ msgstr ""
 "seçeneği\n"
 "    sembolik bağların mutlaka izlenmesini sağlar."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2471,7 +2491,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2484,7 +2504,7 @@ msgstr ""
 "\r:\n"
 "    Etkisizdir; bu komut birşey yapmaz. Sıfır çıkış kodu döndürülür."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2492,7 +2512,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 #, fuzzy
 msgid ""
 "Return an unsuccessful result.\n"
@@ -2503,7 +2523,7 @@ msgstr ""
 "\rfalse\n"
 "    Başarısız bir sonuç döndürür."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2522,7 +2542,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2585,14 +2605,14 @@ msgstr ""
 "kullanılmış\n"
 "    gibi yerel yapar."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2607,7 +2627,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 #, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
@@ -2660,7 +2680,7 @@ msgstr ""
 "    -E seçeneği ile yukarıdaki karakterlerin yorumlanmasını öntanımlı\n"
 "    olarak etkin olduğu sistemlerde bile kapatabilirsiniz."
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2673,7 +2693,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2700,7 +2720,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2712,7 +2732,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 #, fuzzy
 msgid ""
 "Parse option arguments.\n"
@@ -2804,7 +2824,7 @@ msgstr ""
 "başka\n"
 "    argümanlar verilmişse bunları çözümler."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2827,7 +2847,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2839,7 +2859,7 @@ msgstr ""
 "    N durumu ile dönerek kabuk çıkar. N verilmezse son çalıştırılan komutun\n"
 "    çıkış durumu döner."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2848,7 +2868,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 #, fuzzy
 msgid ""
 "Display or execute commands from the history list.\n"
@@ -2903,7 +2923,7 @@ msgstr ""
 "    Böylece `r cc' yazarak `cc' ile başlayan son komut,\n"
 "    r' yazarak en son komut çalıştırılabilir."
 
-#: builtins.c:734
+#: builtins.c:738
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -2920,7 +2940,7 @@ msgstr ""
 "    Eğer İŞ_BELİRTİMİ belirtilmemişse kabuk iş belirtimi olarak\n"
 "    o an ki işi kullanır."
 
-#: builtins.c:749
+#: builtins.c:753
 #, fuzzy
 msgid ""
 "Move jobs to the background.\n"
@@ -2938,7 +2958,7 @@ msgstr ""
 "    `&' ile başlatılmışçasına İŞ_BELİRTİMİni artalana yerleştirir.\n"
 "    İŞ_BELİRTİMİ verilmemişse, iş belirtimi olarak o an ki iş kullanılır."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2962,7 +2982,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2984,7 +3004,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 #, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
@@ -3042,7 +3062,7 @@ msgstr ""
 "    damgasını basacak olan strftime(3) işlevine biçim girdisi olur; aksi\n"
 "    takdirde hiç zaman damgası basılmaz."
 
-#: builtins.c:848
+#: builtins.c:852
 #, fuzzy
 msgid ""
 "Display status of jobs.\n"
@@ -3079,7 +3099,7 @@ msgstr ""
 "    ARGümanlar  ile  belirtilen tüm iş belirtimleri,  işlerin süreç grup\n"
 "    liderinin süreç grup kimliğine yerleştirilip KOMUT çalıştırılır."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3096,7 +3116,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 #, fuzzy
 msgid ""
 "Send a signal to a job.\n"
@@ -3134,7 +3154,7 @@ msgstr ""
 "    sınırını  aşarsanız  başka  bir  süreci  öldürecek bir süreci başlatmak\n"
 "    zorunda kalmazsınız."
 
-#: builtins.c:917
+#: builtins.c:921
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3219,7 +3239,7 @@ msgstr ""
 "\n"
 "    Son ifade'nin sonucu 0 ise dönüş durumu 1 dir, aksi takdirde 0 dır."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3308,7 +3328,7 @@ msgstr ""
 "    okuma zamanaşımına düşmedikçe ya da -u seçeneği ile sağlanan\n"
 "    DoSYaTaNıTıcı geçersiz olmadıkça dönüş durumu sıfırdır."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3320,7 +3340,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3493,7 +3513,7 @@ msgstr ""
 "    atanır. Özel parametre # ise N'e ayarlanır. Hiç argüman verilmezse,\n"
 "    tüm kabuk değişkenleri basılır."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3513,7 +3533,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3532,7 +3552,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3552,7 +3572,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3563,7 +3583,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 #, fuzzy
 msgid ""
 "Execute commands from a file in the current shell.\n"
@@ -3591,7 +3611,7 @@ msgstr ""
 "parametreler\n"
 "    değiştirilmez."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3605,7 +3625,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3759,7 +3779,7 @@ msgstr ""
 "    küçüklük, büyüklük, küçüklük veya eşitlik, büyüklük veya eşitlik varsa\n"
 "    ifadenin sonucu doğrudur."
 
-#: builtins.c:1292
+#: builtins.c:1296
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3771,7 +3791,7 @@ msgstr ""
 "   test yerleşiği ile aynıdır, fakat son argüman açan `[' ile eşleşen\n"
 "   kapatan `]' olmak zorundadır."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3783,7 +3803,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -3836,7 +3856,7 @@ msgstr ""
 "    numaraları  ile  birlikte  listelemesini  sağlar.  Kabuğa  bir  sinyal\n"
 "    göndermek isterseniz \"kill -SİGNAL $$\" sözdizimini kullanabilirsiniz."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3866,7 +3886,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 #, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
@@ -3943,7 +3963,7 @@ msgstr ""
 "    için 512 baytlık blok sayısı olarak,  -n  ve  -u  için birimsiz,  kalan\n"
 "    seçenekler için 1024 baytlık blok sayısı olarak belirtilmelidir."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3961,7 +3981,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3978,7 +3998,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 #, fuzzy
 msgid ""
 "Wait for process completion and return exit status.\n"
@@ -3999,7 +4019,7 @@ msgstr ""
 "    belirtimi de olabilir; bir iş belirtimi verilirse işin\n"
 "    boruhattındaki tüm süreçler için beklenir."
 
-#: builtins.c:1474
+#: builtins.c:1478
 #, fuzzy
 msgid ""
 "Execute commands for each member in a list.\n"
@@ -4018,7 +4038,7 @@ msgstr ""
 "    yoksa, `in \"$@\"' belirtilmiş gibi kümeyi oluşturan her parametre\n"
 "    için KOMUTlar birer kere çalıştırılır."
 
-#: builtins.c:1488
+#: builtins.c:1492
 #, fuzzy
 msgid ""
 "Arithmetic for loop.\n"
@@ -4045,7 +4065,7 @@ msgstr ""
 "    İFADE1, İFADE2 ve İFADE3 aritmetik ifadelerdir. Verilmeyen her\n"
 "    ifade için 1 verilmiş gibi işlem yapılır."
 
-#: builtins.c:1506
+#: builtins.c:1510
 #, fuzzy
 msgid ""
 "Select words from a list and execute commands.\n"
@@ -4085,7 +4105,7 @@ msgstr ""
 "    değişkeninde tutulur. Her seçimden sonra bir break komutu ile\n"
 "    sonlandırılıncaya kadar komutlar çalıştırılır."
 
-#: builtins.c:1527
+#: builtins.c:1531
 #, fuzzy
 msgid ""
 "Report time consumed by pipeline's execution.\n"
@@ -4109,7 +4129,7 @@ msgstr ""
 "    istatistiklerinin  biraz farklı bir biçimde basılmasını sağlar;  çıktı\n"
 "    biçimi olarak TIMEFORMAT değişkeninin değerini kullanır."
 
-#: builtins.c:1544
+#: builtins.c:1548
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -4124,7 +4144,7 @@ msgstr ""
 "    SÖZcük ile eşleşen ilk KALIP'a karşı düşen KOMUTları çalıştırır.\n"
 "    `|' çok sayıda kalıbı ayırmak için kullanılır."
 
-#: builtins.c:1556
+#: builtins.c:1560
 #, fuzzy
 msgid ""
 "Execute commands based on conditional.\n"
@@ -4159,7 +4179,7 @@ msgstr ""
 "    çıkış durumudur.  Bir komut çalıştırılmamışsa  ve hiçbir koşul\n"
 "    doğru sonuç vermemişse sıfır döner."
 
-#: builtins.c:1573
+#: builtins.c:1577
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -4174,7 +4194,7 @@ msgstr ""
 "    `while KOMUTlar; listesinin çıkış durumu sıfır olduğu sürece\n"
 "    `do KOMUTlar;' listesi çalıştırılır."
 
-#: builtins.c:1585
+#: builtins.c:1589
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -4189,7 +4209,20 @@ msgstr ""
 "    `until KOMUTlar; listesinin çıkış durumu sıfırdan farklı olduğu sürece\n"
 "    `do KOMUTlar;' listesi çalıştırılır."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4203,7 +4236,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -4218,7 +4251,7 @@ msgstr ""
 "    KOMUTlar bir grup olarak çalıştırılır. Bu, bir komut kümesini bir\n"
 "    yönlendirmede kullanmanın tek yoludur."
 
-#: builtins.c:1623
+#: builtins.c:1641
 #, fuzzy
 msgid ""
 "Resume job in foreground.\n"
@@ -4239,7 +4272,7 @@ msgstr ""
 "    İŞ_BELİRTİMİ'nden sonra bir & gelmesi işin `bg' komutununa argüman\n"
 "    olarak kullanılmış gibi artalana yerleştirilmesine sebep olur."
 
-#: builtins.c:1638
+#: builtins.c:1656
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expression.\n"
@@ -4254,7 +4287,7 @@ msgstr ""
 "    Verilen aritmetik İFADE aritmetik değerlendirme kurallarına göre\n"
 "    değerlendirilir. \"let İFADE\" ile eşdeğerdir."
 
-#: builtins.c:1650
+#: builtins.c:1668
 #, fuzzy
 msgid ""
 "Execute conditional command.\n"
@@ -4297,7 +4330,7 @@ msgstr ""
 "   olarak ele alınır ve kalıp eşleştirmesi uygulanır. && ve || işleçleri\n"
 "   eğer ilk ifade sonuç için belirleyici ise ikincisine bakmazlar."
 
-#: builtins.c:1676
+#: builtins.c:1694
 #, fuzzy
 msgid ""
 "Common shell variable names and usage.\n"
@@ -4418,7 +4451,7 @@ msgstr ""
 "                       gerektiğine karar vermek için kullanılan kalıpların\n"
 "                       ikinokta imi ayraçlı listesi.\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 #, fuzzy
 msgid ""
 "Add directories to stack.\n"
@@ -4470,7 +4503,7 @@ msgstr ""
 "\n"
 "    Dizin yığıtını `dirs' komutuyla görebilirsiniz."
 
-#: builtins.c:1767
+#: builtins.c:1785
 #, fuzzy
 msgid ""
 "Remove directories from stack.\n"
@@ -4511,7 +4544,7 @@ msgstr ""
 "          engeller, böylece sadece yığıt değiştirilmiş olur. \n"
 "    Dizin yığıtını `dirs' komutuyla görebilirsiniz."
 
-#: builtins.c:1797
+#: builtins.c:1815
 #, fuzzy
 msgid ""
 "Display directory stack.\n"
@@ -4557,7 +4590,7 @@ msgstr ""
 "    -N   dirs seçeneksiz çağrıldığında gösterdiği listenin sağından\n"
 "         sıfırla başlayarak sayılan N'inci girdiyi gösterir."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -4578,7 +4611,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -4620,7 +4653,7 @@ msgstr ""
 "    biçimde çıktılamasını sağlar. -v seçeneği çıktının standart çıktıya\n"
 "    basılması yerine DEĞİŞKENe atanmasını sağlar. "
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4642,7 +4675,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -4662,7 +4695,7 @@ msgstr ""
 "    amacıyla tasarlanmıştır. İsteğe bağlı SÖZCÜK argümanı sağlandığı\n"
 "    takdirde eşleşmelerden sadece SÖZCÜK ile eşleşenler üretilir."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4691,9 +4724,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -4717,7 +4750,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -4727,6 +4762,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid " "
 #~ msgstr " "
 
index 43096def7072fb85f89376f96c722b24ebd424f8..2411ab4ac3c905d47d8bdc8d2383900a644a9f82 100644 (file)
Binary files a/po/vi.gmo and b/po/vi.gmo differ
index c0b55f423c0c33ab0e332d8bc46854dc393f82c4..6b5fcb1a5f6d32806595058311c305c22b5fb8f8 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2008-09-08 17:26+0930\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -41,7 +41,7 @@ msgstr "%s: không thể cấp phát cho chỉ số không thuộc số"
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: phải sử dụng chữ thấp khi gán mảng kết hợp"
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: không thể tạo %s"
@@ -250,12 +250,22 @@ msgstr "%s: không phải dựng sẵn trình bao"
 msgid "write error: %s"
 msgstr "lỗi ghi: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: gặp lỗi khi lấy thư mục hiện thời: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: đặc tả công việc mơ hồ"
@@ -291,7 +301,7 @@ msgstr "chỉ có thể được dùng trong một hàm"
 msgid "cannot use `-f' to make functions"
 msgstr "không thể dùng « -f » để tạo hàm"
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: hàm chỉ đọc"
@@ -330,7 +340,7 @@ msgstr "%s không phải được nạp động"
 msgid "%s: cannot delete: %s"
 msgstr "%s: không thể xoá: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -346,7 +356,7 @@ msgstr "%s: không phải là tập tin chuẩn"
 msgid "%s: file is too large"
 msgstr "%s: tập tin quá lớn"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: không thể thực hiện tập tin nhị phân"
@@ -497,36 +507,36 @@ msgstr "Lỗi không rõ"
 msgid "expression expected"
 msgstr "đợi biểu thức"
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: sai xác định bộ mô tả tập tin"
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: bộ mô tả tập tin không hợp lệ: %s"
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: sai đếm dòng"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: gốc mảng không hợp lệ"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: lượng gọi ngược không hợp lệ"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr "%s: tên biến mảng vẫn trống"
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr "cần thiết hỗ trợ biến mảng"
 
@@ -878,31 +888,31 @@ msgstr "\tquá hạn trong khi đợi dữ liệu nhập nên tự động đăn
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "không thể chuyển hướng đầu vào tiêu chuẩn từ « /dev/null »: %s"
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "ĐỊNH DẠNG THỜI GIAN: « %c »: ký tự định dạng không hợp lệ"
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 msgid "pipe error"
 msgstr "lỗi ống dẫn"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: bị hạn chế: không thể ghi rõ dấu sổ chéo « / » trong tên câu lệnh"
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: không tìm thấy lệnh"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: bộ thông dịch sai"
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "không thể nhân đôi fd %d tới fd %d"
@@ -997,141 +1007,141 @@ msgstr "save_bash_input: đã có bộ đệm cho fd mới %d"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "tiến trình con đã tạo (PID %d) xuất hiện trong công việc đang chạy %d"
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "đang xoá công việc bị dừng chạy %d với nhóm tiến trình %ld"
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: tiến trình %5ld (%s) trong the_pipeline"
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) được đánh dấu vẫn hoạt động"
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: không có PID (mã số tiến trình) như vậy"
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr "Tín hiệu %d"
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr "Hoàn tất"
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr "Bị dừng"
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Bị dừng(%s)"
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr "Đang chạy"
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr "Hoàn tất(%d)"
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr "Thoát %d"
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr "Không rõ trạng thái"
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr "(lõi bị đổ)"
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid tiến trình con (%ld thành %ld)"
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld không phải là tiến trình con của trình bao này"
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Không có mục ghi về tiến trình %ld"
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: công việc %d bị dừng chạy"
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: công việc bị chấm dứt"
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: công việc %d đã chạy trong nền"
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: dòng %d:"
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr " (lõi bị đổ)"
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd bây giờ: %s)\n"
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp bị lỗi"
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: kỷ luật dòng"
 
 # Nghĩa chữ : dừng dịch
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "không thể đặt nhóm tiến trình cuối cùng (%d)"
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr "không có điều khiển công việc trong trình bao này"
 
@@ -1364,7 +1374,7 @@ msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 "gặp kết thúc tập tin bất thường trong khi tìm dấu ngoặc đóng « ) » tương ứng"
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: không tìm thấy hàm « %s »"
@@ -1374,12 +1384,12 @@ msgstr "completion: không tìm thấy hàm « %s »"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: bộ kết nối sai « %d »"
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: « %c »: ký tự định dạng không hợp lệ"
@@ -1723,12 +1733,12 @@ msgstr "%s: sai thay thế"
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: không thể gán bằng cách này"
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "sai thay thế: không có « ` » đóng trong %s"
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr "không khớp: %s"
@@ -2185,53 +2195,57 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until các_CÂU_LỆNH; do các_CÂU_LỆNH; done"
 
 #: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 "chức_năng tên { các_CÂU_LỆNH ; }\n"
 "\thay\n"
 "tên () { các_CÂU_LỆNH ; }"
 
-#: builtins.c:200
+#: builtins.c:202
 msgid "{ COMMANDS ; }"
 msgstr "{ LỆNH ; }"
 
-#: builtins.c:202
+#: builtins.c:204
 msgid "job_spec [&]"
 msgstr "đặc_tả_công_việc [&]"
 
-#: builtins.c:204
+#: builtins.c:206
 msgid "(( expression ))"
 msgstr "(( biểu_thức ))"
 
-#: builtins.c:206
+#: builtins.c:208
 msgid "[[ expression ]]"
 msgstr "[[ biểu_thức ]]"
 
-#: builtins.c:208
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr "biến — tên và nghĩa của một số biến trình bao"
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | tmục]"
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [tùy_chọn ...]"
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v biến] định_dạng [đối_số]"
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
@@ -2241,7 +2255,7 @@ msgstr ""
 "W danh_sách_từ]  [-F hàm] [-C lệnh] [-X mẫu_lọc] [-P tiền_tố] [-S hậu_tố] "
 "[tên ...]"
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
@@ -2249,11 +2263,11 @@ msgstr ""
 "compgen [-abcdefgjksuv] [-o tùy_chọn]  [-A hành_động] [-G mẫu_glob] [-W "
 "danh_sách_từ]  [-F hàm] [-C lệnh] [-X mẫu_lọc] [-P tiền_tố] [-S hậu_tố] [từ]"
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "compopt [-o|+o tùy_chọn] [tên ...]"
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
@@ -2261,7 +2275,16 @@ msgstr ""
 "mapfile [-n đếm] [-O gốc] [-s đếm] [-t] [-u fd] [-C gọi_ngược] [-c lượng] "
 "[mảng]"
 
-#: builtins.c:250
+#: builtins.c:242
+#, fuzzy
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n đếm] [-O gốc] [-s đếm] [-t] [-u fd] [-C gọi_ngược] [-c lượng] "
+"[mảng]"
+
+#: builtins.c:254
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2297,7 +2320,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tbí danh trả lại Đúng nếu không đưa ra TÊN chưa có bí danh được xác định."
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2313,7 +2336,7 @@ msgstr ""
 "\n"
 "Trả lại thành công nếu không có TÊN là một bí danh không tồn tại."
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2386,7 +2409,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tbind trả lại 0 nếu không đưa ra tùy chọn không nhận ra hay gặp lỗi."
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2404,7 +2427,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrạng thái thoát là 0 nếu N không nhỏ hơn hay bằng 1."
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2423,7 +2446,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrạng thái thoát là 0 nếu N không nhỏ hơn hay bằng 1."
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2449,7 +2472,7 @@ msgstr ""
 "\thoặc sai nếu SHELL-BUILTIN không phải là một\n"
 "\tdựng sẵn trình bao."
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2477,7 +2500,7 @@ msgstr ""
 "\tTrả lại 0 nếu trình bao đang chạy chức năng trình bao,\n"
 "\t\tB_THỨC cũng hợp lệ."
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2533,7 +2556,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại 0 nếu thư mục được chuyển đổi; không thì khác số không."
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2561,7 +2584,7 @@ msgstr ""
 "\t\tTrả lại 0 nếu không đưa ra tùy chọn sai\n"
 "\t\tvà nếu đọc được thư mục hiện thời."
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2577,7 +2600,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tLúc nào cũng thành công."
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2589,7 +2612,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tLúc nào cũng thành công."
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2601,7 +2624,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tLúc nào cũng không thành công."
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2635,7 +2658,7 @@ msgstr ""
 "Trả lại trạng thái thoát của câu LỆNH, hoặc bị lỗi nếu không tìm thấy câu "
 "LỆNH."
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2703,7 +2726,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hoặc gặp lỗi."
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2713,7 +2736,7 @@ msgstr ""
 "\n"
 "\tQuá cũ. Xem « help declare »."
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2740,7 +2763,7 @@ msgstr ""
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi,\n"
 "\tvà nếu trình bao đang chạy chức năng."
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2797,7 +2820,7 @@ msgstr ""
 "\t\t\\v\tkhoảng tab theo chiều dọc\n"
 "\t\t\\\\\tgạch chéo ngược"
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2819,7 +2842,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không gặp lỗi ghi."
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2871,7 +2894,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu TÊN là một dựng sẵn trình bao, và không gặp lỗi."
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2892,7 +2915,7 @@ msgstr ""
 "\tTrả lại trạng thái thoát của câu lệnh,\n"
 "\thay thành công nếu câu lệnh vô giá trị."
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2978,7 +3001,7 @@ msgstr ""
 "\tkhông thành công nếu gặp kết thúc các tùy chọn,\n"
 "\thoặc nếu gặp lỗi."
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3019,7 +3042,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu tìm được câu LỆNH và không gặp lỗi chuyển hướng."
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3032,7 +3055,7 @@ msgstr ""
 "\tKhông đưa ra N thì trạng thái thoát\n"
 "\tlà trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3045,7 +3068,7 @@ msgstr ""
 "\tThoát khỏi một trình bao đăng nhập, với trạng thái thoát N.\n"
 "\tTrả lại lỗi nếu không được thực thi trong trình bao đăng nhập."
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3100,7 +3123,7 @@ msgstr ""
 "\tTrả lại thành công hay trạng thái của câu lệnh được thực thi;\n"
 "\t\tgặp lỗi thì khác số không."
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3122,7 +3145,7 @@ msgstr ""
 "\tTrạng thái của câu lệnh được nâng lên trước;\n"
 "\tgặp lỗi thì không thành công."
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3146,7 +3169,7 @@ msgstr ""
 "\tTrả lại thành công nếu chức năng điều khiển công việc được bật\n"
 "\tvà không gặp lỗi."
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3190,7 +3213,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu tìm được TÊN và không đưa ra tùy chọn sai."
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3231,7 +3254,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu tìm được MẪU và không đưa ra tùy chọn sai."
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3298,7 +3321,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không gặp tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3342,7 +3365,7 @@ msgstr ""
 "\tTrả lại thành công nếu không gặp tùy chọn sai hay gặp lỗi.\n"
 "\tĐưa ra « -x » thì trả lại trạng thái thoát của câu LỆNH."
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3374,7 +3397,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay JOBSPEC sai."
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3416,7 +3439,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3501,7 +3524,7 @@ msgstr ""
 "\tNếu ĐỐI_SỐ cuối cùng được định giá thành 0 thì let trả lại 1;\n"
 "\tkhông thì let trả lại 0."
 
-#: builtins.c:962
+#: builtins.c:966
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3583,7 +3606,7 @@ msgstr ""
 "\tkhông quá thời khi đọc, và không đưa ra bộ mô tả tập tin sai\n"
 "\tlàm đối số tới « -u »."
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3605,7 +3628,7 @@ msgstr ""
 "\tTrả lại N, hoặc bị lỗi nếu trình bao không đang chạy\n"
 "\t\tmột chức năng hay văn lệnh."
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3768,7 +3791,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không gặp tùy chọn sai."
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3801,7 +3824,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai, và TÊN không chỉ đọc."
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3835,7 +3858,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai,"
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3871,7 +3894,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai."
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3889,7 +3912,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu N không âm hay lớn hơn $#."
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3916,7 +3939,7 @@ msgstr ""
 "TÊN_TẬP_TIN;\n"
 "\tkhông thành công nếu không thể đọc TÊN_TẬP_TIN."
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3941,7 +3964,7 @@ msgstr ""
 "\tTrả lại thành công nếu chức năng điều khiển công việc đã được bật, và "
 "không gặp lỗi."
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4096,7 +4119,7 @@ msgstr ""
 "\tTrả lại thành công nếu B_THỨC định giá thành Đúng;\n"
 "\tkhông thành công nếu B_THỨC định giá thành Sai hay đưa ra đối số sai."
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4109,7 +4132,7 @@ msgstr ""
 "\tnhưng đối số cuối cùng phải là một « ] » nghĩa chữ,\n"
 "\tđổ tương ứng với « [ » mở."
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4128,7 +4151,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tLúc nào cũng thành công."
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4198,7 +4221,7 @@ msgstr ""
 "\tTrả lại thành công nếu không đưa ra ĐẶC_TẢ_TÍN_HIỆU sai\n"
 "\thay tùy chọn sai."
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4257,7 +4280,7 @@ msgstr ""
 "\tTráng thái thoát:\n"
 "\tTrả lại thành công nếu tìm thấy tất cả các TÊN; không thì bị lỗi."
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4345,7 +4368,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4380,7 +4403,7 @@ msgstr ""
 "\tTráng thái thoát:\n"
 "\tTrả lại thành công nếu không có CHẾ_ĐỘ sai hay tùy chọn sai."
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -4409,7 +4432,7 @@ msgstr ""
 "\tTrả lại trạng thái của ID; không thành công nếu ID sai\n"
 "\t\thoặc đưa ra tùy chọn sai."
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4436,7 +4459,7 @@ msgstr ""
 "\tkhông thành công nếu ID sai,\n"
 "\thoặc nếu đưa ra tùy chọn sai."
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4460,7 +4483,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4489,7 +4512,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4528,7 +4551,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4559,7 +4582,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrạng thái trả lai là trạng thái trả lại của PIPELINE."
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4578,7 +4601,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4615,7 +4638,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4634,7 +4657,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4653,7 +4676,20 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4677,7 +4713,7 @@ msgstr ""
 "\tTráng thái thoát:\n"
 "\tTrả lại thành công nếu TÊN không phải chỉ đọc."
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4696,7 +4732,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4721,7 +4757,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của công việc đã tiếp tục lại."
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4739,7 +4775,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại 1 nếu BIỂU_THỨC tính là 0; không thì trả lại 0."
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4788,7 +4824,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\t0 hay 1 phụ thuộc vào giá trị của BIỂU_THỨC."
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4894,7 +4930,7 @@ msgstr ""
 "\tđược ùng để quyết định những câu lệnh nào nên được lưu\n"
 "\tvào danh sách lịch sử.\n"
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4948,7 +4984,7 @@ msgstr ""
 "\tTrả lại thành công nếu không đưa ra đối số sai,\n"
 "\tcũng không sai chuyển đổi thư mục."
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5001,7 +5037,7 @@ msgstr ""
 "\tTrả lại thành công nếu không đưa ra đối số sai,\n"
 "\tcũng không sai chuyển đổi thư mục."
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5057,7 +5093,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5094,7 +5130,7 @@ msgstr ""
 "\tTrả lại thành công nếu TÊN_TÙY_CHỌN được bật;\n"
 "\tkhông thành công nếu đưa ra tùy chọn sai hay TÊN_TÙY_CHỌN bị tắt."
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5145,7 +5181,7 @@ msgstr ""
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi kiểu ghi hay "
 "gán."
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5184,7 +5220,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5206,7 +5242,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -5258,10 +5294,10 @@ msgstr ""
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai,\n"
 "\tvà TÊN có một đặc tả điền nốt được xác định."
 
-#: builtins.c:1940
+#: builtins.c:1958
 #, fuzzy
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -5285,7 +5321,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -5321,3 +5359,10 @@ msgstr ""
 "\tTráng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai và MẢNG không phải chỉ "
 "đọc."
+
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
index 22e6a7f20d17f81299e44d9aa683fd3c13592c09..c40fe10bb8fadfbbf121f45e676ce07d505ffc08 100644 (file)
Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ
index ed37dd31d22deba425457923428cbbb0f4720f9f..4144b631c0ed3f7d8ad9284bb7b1ce2275d9d332 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-06 11:56-0500\n"
+"POT-Creation-Date: 2009-02-19 14:53-0500\n"
 "PO-Revision-Date: 2008-08-20 20:12+0800\n"
 "Last-Translator: Zi-You Dai  <ioppooster@gmail.com>\n"
 "Language-Team: Chinese (traditional)  <zh-l10n@linux.org.tw>\n"
@@ -40,7 +40,7 @@ msgstr ""
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:380
+#: bashhist.c:379
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr ""
@@ -246,12 +246,22 @@ msgstr "%s:不是一個內建 shell"
 msgid "write error: %s"
 msgstr "寫入錯誤: %s"
 
-#: builtins/common.c:553
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s:錯誤檢索當前目錄: %s: %s\n"
 
-#: builtins/common.c:619 builtins/common.c:621
+#: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s:含糊的工作規格"
@@ -287,7 +297,7 @@ msgstr "只能用在一個函數"
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:365 execute_cmd.c:4731
+#: builtins/declare.def:365 execute_cmd.c:4818
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s:只讀函數"
@@ -326,7 +336,7 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr ""
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -342,7 +352,7 @@ msgstr ""
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr ""
@@ -481,36 +491,36 @@ msgstr ""
 msgid "expression expected"
 msgstr ""
 
-#: builtins/mapfile.def:215 builtins/read.def:272
+#: builtins/mapfile.def:241 builtins/read.def:272
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:223 builtins/read.def:279
+#: builtins/mapfile.def:249 builtins/read.def:279
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
 
-#: builtins/mapfile.def:232 builtins/mapfile.def:270
+#: builtins/mapfile.def:258 builtins/mapfile.def:296
 #, fuzzy, c-format
 msgid "%s: invalid line count"
 msgstr "%s:無效選項"
 
-#: builtins/mapfile.def:243
+#: builtins/mapfile.def:269
 #, fuzzy, c-format
 msgid "%s: invalid array origin"
 msgstr "%s:無效選項"
 
-#: builtins/mapfile.def:260
+#: builtins/mapfile.def:286
 #, fuzzy, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s:無效的功能名稱"
 
-#: builtins/mapfile.def:292
+#: builtins/mapfile.def:318
 msgid "empty array variable name"
 msgstr ""
 
-#: builtins/mapfile.def:313
+#: builtins/mapfile.def:339
 msgid "array variable support required"
 msgstr ""
 
@@ -800,32 +810,32 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1091
+#: execute_cmd.c:1112
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:1942
+#: execute_cmd.c:2011
 #, fuzzy
 msgid "pipe error"
 msgstr "寫入錯誤: %s"
 
-#: execute_cmd.c:4276
+#: execute_cmd.c:4363
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 
-#: execute_cmd.c:4367
+#: execute_cmd.c:4454
 #, c-format
 msgid "%s: command not found"
 msgstr "%s:命令找不到"
 
-#: execute_cmd.c:4621
+#: execute_cmd.c:4708
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr ""
 
-#: execute_cmd.c:4770
+#: execute_cmd.c:4857
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
@@ -919,140 +929,140 @@ msgstr ""
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:882
+#: jobs.c:887
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1000
+#: jobs.c:1005
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1105
+#: jobs.c:1110
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1108
+#: jobs.c:1113
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1396
+#: jobs.c:1401
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr ""
 
-#: jobs.c:1411
+#: jobs.c:1416
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1425 jobs.c:1450
+#: jobs.c:1430 jobs.c:1455
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1430 siglist.c:122
+#: jobs.c:1435 siglist.c:122
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1434
+#: jobs.c:1439
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1438
+#: jobs.c:1443
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1452
+#: jobs.c:1457
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1454
+#: jobs.c:1459
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1457
+#: jobs.c:1462
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1544
+#: jobs.c:1549
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1563
+#: jobs.c:1568
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1766
+#: jobs.c:1771
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2094 nojobs.c:576
+#: jobs.c:2099 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:2321
+#: jobs.c:2326
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2593
+#: jobs.c:2598
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2815
+#: jobs.c:2820
 #, c-format
 msgid "%s: job has terminated"
 msgstr ""
 
-#: jobs.c:2824
+#: jobs.c:2829
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3487
+#: jobs.c:3492
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s:警告:"
 
-#: jobs.c:3501 nojobs.c:805
+#: jobs.c:3506 nojobs.c:814
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3513 jobs.c:3526
+#: jobs.c:3518 jobs.c:3531
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3558
+#: jobs.c:3563
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3618
+#: jobs.c:3623
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3628
+#: jobs.c:3633
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3656
+#: jobs.c:3661
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3661
+#: jobs.c:3666
 msgid "no job control in this shell"
 msgstr ""
 
@@ -1280,7 +1290,7 @@ msgstr ""
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:1016
+#: pcomplete.c:1018
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1290,12 +1300,12 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:287
+#: print_cmd.c:285
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:1347
+#: print_cmd.c:1348
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1636,12 +1646,12 @@ msgstr ""
 msgid "$%s: cannot assign in this way"
 msgstr ""
 
-#: subst.c:7479
+#: subst.c:7499
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr ""
 
-#: subst.c:8354
+#: subst.c:8375
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -2059,73 +2069,83 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr ""
 
 #: builtins.c:198
-msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgid "coproc [NAME] command [redirections]"
 msgstr ""
 
 #: builtins.c:200
-msgid "{ COMMANDS ; }"
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:202
-msgid "job_spec [&]"
+msgid "{ COMMANDS ; }"
 msgstr ""
 
 #: builtins.c:204
-msgid "(( expression ))"
+msgid "job_spec [&]"
 msgstr ""
 
 #: builtins.c:206
-msgid "[[ expression ]]"
+msgid "(( expression ))"
 msgstr ""
 
 #: builtins.c:208
+msgid "[[ expression ]]"
+msgstr ""
+
+#: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
 msgstr ""
 
-#: builtins.c:211
+#: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr ""
 
-#: builtins.c:215
+#: builtins.c:217
 msgid "popd [-n] [+N | -N]"
 msgstr ""
 
-#: builtins.c:219
+#: builtins.c:221
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr ""
 
-#: builtins.c:222
+#: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr ""
 
-#: builtins.c:224
+#: builtins.c:226
 msgid "printf [-v var] format [arguments]"
 msgstr ""
 
-#: builtins.c:227
+#: builtins.c:229
 msgid ""
 "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
 "wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
 "[name ...]"
 msgstr ""
 
-#: builtins.c:231
+#: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
-#: builtins.c:235
+#: builtins.c:237
 msgid "compopt [-o|+o option] [name ...]"
 msgstr ""
 
-#: builtins.c:238
+#: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
 
-#: builtins.c:250
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
 #, fuzzy
 msgid ""
 "Define or display aliases.\n"
@@ -2152,7 +2172,7 @@ msgstr ""
 "    alias substitution when the alias is expanded.  Alias returns\n"
 "    true unless a NAME is given for which no alias has been defined."
 
-#: builtins.c:272
+#: builtins.c:276
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2162,7 +2182,7 @@ msgid ""
 "    Return success unless a NAME is not an existing alias."
 msgstr ""
 
-#: builtins.c:285
+#: builtins.c:289
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2201,7 +2221,7 @@ msgid ""
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:322
+#: builtins.c:326
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2212,7 +2232,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:334
+#: builtins.c:338
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2223,7 +2243,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:346
+#: builtins.c:350
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2237,7 +2257,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:361
+#: builtins.c:365
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2253,7 +2273,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:379
+#: builtins.c:383
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2286,7 +2306,7 @@ msgid ""
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:407
+#: builtins.c:411
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2302,7 +2322,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:424
+#: builtins.c:428
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2312,7 +2332,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:435
+#: builtins.c:439
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2320,7 +2340,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:444
+#: builtins.c:448
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2328,7 +2348,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:453
+#: builtins.c:457
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2347,7 +2367,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:472
+#: builtins.c:476
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2383,14 +2403,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:508
+#: builtins.c:512
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:516
+#: builtins.c:520
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2405,7 +2425,7 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:533
+#: builtins.c:537
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2436,7 +2456,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:567
+#: builtins.c:571
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2449,7 +2469,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:582
+#: builtins.c:586
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2476,7 +2496,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:610
+#: builtins.c:614
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2488,7 +2508,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:622
+#: builtins.c:626
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2529,7 +2549,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:664
+#: builtins.c:668
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2552,7 +2572,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:685
+#: builtins.c:689
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2560,7 +2580,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:698
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2569,7 +2589,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:704
+#: builtins.c:708
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2599,7 +2619,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:734
+#: builtins.c:738
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2611,7 +2631,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:749
+#: builtins.c:753
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2625,7 +2645,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:763
+#: builtins.c:767
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2649,7 +2669,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:788
+#: builtins.c:792
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2671,7 +2691,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:812
+#: builtins.c:816
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2705,7 +2725,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:848
+#: builtins.c:852
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2729,7 +2749,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:875
+#: builtins.c:879
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2746,7 +2766,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:894
+#: builtins.c:898
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2768,7 +2788,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:917
+#: builtins.c:921
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2813,7 +2833,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
 
-#: builtins.c:962
+#: builtins.c:966
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2857,7 +2877,7 @@ msgid ""
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1002
+#: builtins.c:1006
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2869,7 +2889,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1015
+#: builtins.c:1019
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -2951,7 +2971,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1097
+#: builtins.c:1101
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -2971,7 +2991,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1117
+#: builtins.c:1121
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -2990,7 +3010,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1136
+#: builtins.c:1140
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3010,7 +3030,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1157
+#: builtins.c:1161
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3021,7 +3041,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1169 builtins.c:1184
+#: builtins.c:1173 builtins.c:1188
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3035,7 +3055,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1200
+#: builtins.c:1204
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3049,7 +3069,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1216
+#: builtins.c:1220
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3126,7 +3146,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1292
+#: builtins.c:1296
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3134,7 +3154,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1301
+#: builtins.c:1305
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3146,7 +3166,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1313
+#: builtins.c:1317
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3182,7 +3202,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1345
+#: builtins.c:1349
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3212,7 +3232,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1376
+#: builtins.c:1380
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3256,7 +3276,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1421
+#: builtins.c:1425
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3274,7 +3294,7 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1441
+#: builtins.c:1445
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
@@ -3291,7 +3311,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1459
+#: builtins.c:1463
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3305,7 +3325,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1474
+#: builtins.c:1478
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3318,7 +3338,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1488
+#: builtins.c:1492
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3335,7 +3355,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1506
+#: builtins.c:1510
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3355,7 +3375,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1527
+#: builtins.c:1531
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3371,7 +3391,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1544
+#: builtins.c:1548
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3382,7 +3402,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1556
+#: builtins.c:1560
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3403,7 +3423,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1573
+#: builtins.c:1577
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3414,7 +3434,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1585
+#: builtins.c:1589
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3425,7 +3445,20 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1597
+#: builtins.c:1601
+msgid ""
+"Create a coprocess named NAME.\n"
+"    \n"
+"    Execute COMMAND asynchronously, with the standard output and standard\n"
+"    input of the command connected via a pipe to file descriptors assigned\n"
+"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+"    The default NAME is \"COPROC\".\n"
+"    \n"
+"    Exit Status:\n"
+"    Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1615
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3439,7 +3472,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1611
+#: builtins.c:1629
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3450,7 +3483,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1623
+#: builtins.c:1641
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3464,7 +3497,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1638
+#: builtins.c:1656
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3475,7 +3508,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1650
+#: builtins.c:1668
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3503,7 +3536,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1676
+#: builtins.c:1694
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3557,7 +3590,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1733
+#: builtins.c:1751
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3588,7 +3621,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1767
+#: builtins.c:1785
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3615,7 +3648,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1797
+#: builtins.c:1815
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3644,7 +3677,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1826
+#: builtins.c:1844
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3665,7 +3698,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1847
+#: builtins.c:1865
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3695,7 +3728,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1874
+#: builtins.c:1892
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3717,7 +3750,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1897
+#: builtins.c:1915
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3730,7 +3763,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1912
+#: builtins.c:1930
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3759,9 +3792,9 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1940
+#: builtins.c:1958
 msgid ""
-"Read lines from a file into an array variable.\n"
+"Read lines from the standard input into an array variable.\n"
 "    \n"
 "    Read lines from the standard input into the array variable ARRAY, or "
 "from\n"
@@ -3785,7 +3818,9 @@ msgid ""
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.\n"
+"    If -C is supplied without -c, the default quantum is 5000.  When\n"
+"    CALLBACK is evaluated, it is supplied the index of the next array\n"
+"    element to be assigned as an additional argument.\n"
 "    \n"
 "    If not supplied with an explicit origin, mapfile will clear ARRAY "
 "before\n"
@@ -3795,6 +3830,13 @@ msgid ""
 "    Returns success unless an invalid option is given or ARRAY is readonly."
 msgstr ""
 
+#: builtins.c:1990
+msgid ""
+"Read lines from a file into an array variable.\n"
+"    \n"
+"    A synonym for `mapfile'."
+msgstr ""
+
 #~ msgid "requesting resize"
 #~ msgstr "要求調整"
 
index 50b26a3fae1666cdc264c0c225eeb09b8ad39b8f..285d8fffc8c39d5626ec950529c49a90d6032029 100644 (file)
@@ -150,7 +150,7 @@ static void
 make_command_string_internal (command)
      COMMAND *command;
 {
-  char s[3];
+  char s[3], *op;
 
   if (command == 0)
     cprintf ("");
@@ -261,17 +261,15 @@ make_command_string_internal (command)
              break;
 
            case ';':
-#if 0
-             if (was_heredoc == 0)
-               cprintf (";");
-             else
-               was_heredoc = 0;
-#else
              if (deferred_heredocs == 0)
-               cprintf (";");
+               {
+                 if (was_heredoc == 0)
+                   cprintf (";");
+                 else
+                   was_heredoc = 0;
+               }
              else
-               print_deferred_heredocs (";");
-#endif
+               print_deferred_heredocs (inside_function_def ? "" : ";");
 
              if (inside_function_def)
                cprintf ("\n");
@@ -290,6 +288,8 @@ make_command_string_internal (command)
            }
 
          make_command_string_internal (command->value.Connection->second);
+         if (deferred_heredocs)
+           print_deferred_heredocs ("");
          printing_connection--;                  
          break;
 
@@ -884,9 +884,10 @@ print_deferred_heredocs (cstring)
     }
   if (deferred_heredocs)
     {
-      if (cstring[0] != ';' || cstring[1])
+      if (cstring && cstring[0] && (cstring[0] != ';' || cstring[1]))
        cprintf (" ");  /* make sure there's at least one space */
       dispose_redirects (deferred_heredocs);
+      was_heredoc = 1;
     }
   deferred_heredocs = (REDIRECT *)NULL;
 }
diff --git a/subst.c b/subst.c
index 13e960dde562a167d3cb5afb5f11a8713577da62..62a3d028e45b9831cb7f597bf4a7ea6e4d927c9b 100644 (file)
--- a/subst.c
+++ b/subst.c
@@ -4405,7 +4405,7 @@ make_dev_fd_filename (fd)
 {
   char *ret, intbuf[INT_STRLEN_BOUND (int) + 1], *p;
 
-  ret = (char *)xmalloc (sizeof (DEV_FD_PREFIX) + 4);
+  ret = (char *)xmalloc (sizeof (DEV_FD_PREFIX) + 8);
 
   strcpy (ret, DEV_FD_PREFIX);
   p = inttostr (fd, intbuf, sizeof (intbuf));
@@ -6191,13 +6191,13 @@ parameter_brace_casemod (varname, value, modspec, patspec, quoted)
   if (modspec == '^')
     {
       x = p && p[0] == modspec;
-      modop = x ? CASE_UPPER : CASE_CAPITALIZE;
+      modop = x ? CASE_UPPER : CASE_UPFIRST;
       p += x;
     }
   else if (modspec == ',')
     {
       x = p && p[0] == modspec;
-      modop = x ? CASE_LOWER : CASE_UNCAP;
+      modop = x ? CASE_LOWER : CASE_LOWFIRST;
       p += x;
     }
   else if (modspec == '~')
@@ -7363,7 +7363,12 @@ add_string:
             assignment statements.  We now do tilde expansion on such words
             even in POSIX mode. */     
          if (word->flags & (W_ASSIGNRHS|W_NOTILDE))
-           goto add_character;
+           {
+             if (isexp == 0 && isifs (c))
+               goto add_ifs_character;
+             else
+               goto add_character;
+           }
          /* If we're not in posix mode or forcing assignment-statement tilde
             expansion, note where the `=' appears in the word and prepare to
             do tilde expansion following the first `='. */
@@ -7379,16 +7384,28 @@ add_string:
                   string[sindex+1] == '~')
            word->flags |= W_ITILDE;
 #endif
-         goto add_character;
+         if (isexp == 0 && isifs (c))
+           goto add_ifs_character;
+         else
+           goto add_character;
 
        case ':':
          if (word->flags & W_NOTILDE)
-           goto add_character;
+           {
+             if (isexp == 0 && isifs (c))
+               goto add_ifs_character;
+             else
+               goto add_character;
+           }
 
          if ((word->flags & (W_ASSIGNMENT|W_ASSIGNRHS|W_TILDEEXP)) &&
              string[sindex+1] == '~')
            word->flags |= W_ITILDE;
-         goto add_character;
+
+         if (isexp == 0 && isifs (c))
+           goto add_ifs_character;
+         else
+           goto add_character;
 
        case '~':
          /* If the word isn't supposed to be tilde expanded, or we're not
@@ -7399,7 +7416,10 @@ add_string:
              (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
            {
              word->flags &= ~W_ITILDE;
-             goto add_character;
+             if (isexp == 0 && isifs (c) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
+               goto add_ifs_character;
+             else
+               goto add_character;
            }
 
          if (word->flags & W_ASSIGNRHS)
@@ -7739,6 +7759,7 @@ add_twochars:
 
        default:
          /* This is the fix for " $@ " */
+       add_ifs_character:
          if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (isexp == 0 && isifs (c)))
            {
              if (string[sindex])       /* from old goto dollar_add_string */
index d66fc55f8525b818e9dab175658603c39f33ee08..958b28dc6678995011f74a254cb6d1738bb6c30e 100644 (file)
@@ -27,9 +27,19 @@ acknowledgement oenophile
 ackNowLEdgEmENT oENophiLE
 acknowledgement oenophile
 ackNowLEdgEmENT oENophiLE
-ackNowLEdgEmENT oENophiLE
 acknowledgement oenophile
-ackNowLEdgEmENT oENophiLE
+acknowledgement oenophile
+acknowledgement oenophile
 acknowledgement oenophile
 Acknowledgement Oenophile
 ACKNOWLEDGEMENT OENOPHILE
+BE CONSERVATIVE IN WHAT YOU SEND AND LIBERAL IN WHAT YOU ACCEPT
+be conservative in what you send and liberal in what you accept
+Be conservative in what you send and liberal in what you accept
+Be conservative in what you send and liberal in what you accept
+be Conservative in what you send and Liberal in what you accept
+be conservative in what you send and liberal in what you accept
+Be Conservative in what you send and Liberal in what you accept
+BE CONSERVATIVE IN WHAT YOU SEND AND LIBERAL IN WHAT YOU ACCEPT
+Be conservative in what you send and liberal in what you accept
+BE CONSERVATIVE IN WHAT YOU SEND AND LIBERAL IN WHAT YOU ACCEPT
index e1e3a3ee5d46fdd0da3b6d0afada7267c5be0fc1..3c7ad23feebc8732292358fc45b2f8823274048f 100644 (file)
@@ -70,3 +70,30 @@ echo ${@,,[rstlne]}
 
 echo ${@^?}
 echo ${@^^?}
+
+# make sure that multiple words in the string are handled as other expansions
+TEXT="Be Conservative in what you send and Liberal in what you accept"
+TEXT2="be conservative in what you send and liberal in what you accept"
+
+declare -u foo
+foo=$TEXT
+echo $foo
+
+declare -l bar
+bar=$TEXT
+echo $bar
+
+declare -c qux
+qux=$TEXT
+echo $qux
+qux=$TEXT2
+echo $qux
+
+echo ${TEXT,}
+echo ${TEXT,,}
+
+echo ${TEXT^}
+echo ${TEXT^^}
+
+echo ${TEXT2^}
+echo ${TEXT2^^}
index 8eee6b214f694bad825c8a8e662f94f3a2f711bb..2a7bf6bab3f0eec988481360998722a833af5fa2 100644 (file)
@@ -39,6 +39,25 @@ ENDOFINPUT
 
     aa=1
 }
-./heredoc.tests: line 94: warning: here-document at line 92 delimited by end-of-file (wanted `EOF')
+foo is a function
+foo () 
+{ 
+    echo;
+    cat  <<END
+bar
+END
+
+    cat  <<EOF
+qux
+EOF
+
+}
+
+bar
+qux
+
+bar
+qux
+./heredoc.tests: line 96: warning: here-document at line 94 delimited by end-of-file (wanted `EOF')
 hi
 there
index c07ef642392abbf7b39d0d940bcf4acdcaeb2c14..ac642e0ac123d67d4f82f552152c2ff83e26c091 100644 (file)
@@ -86,6 +86,8 @@ type fff
 export -f fff
 ${THIS_SH} -c 'type fff'
 
+${THIS_SH} ./heredoc1.sub
+
 # check that end of file delimits a here-document
 # THIS MUST BE LAST!
 
diff --git a/tests/heredoc1.sub b/tests/heredoc1.sub
new file mode 100644 (file)
index 0000000..3f85ead
--- /dev/null
@@ -0,0 +1,16 @@
+foo()
+{
+       echo
+       cat <<END
+bar
+END
+       cat <<EOF
+qux
+EOF
+}
+
+type foo
+foo
+
+eval "$(type foo | sed 1d)"
+foo
index ae8fafc22b15d11aa5b90be57c3660e81449b4d3..1e73eb13617fe9f66041270f938ecdfcb1907a00 100644 (file)
@@ -31,6 +31,7 @@ a[0] Abcdefghijklmnop
 [e] abcdefghijklmnOp
 [f] abcdefghijklmnoP
 a
+0
 1
 2
 3
@@ -47,11 +48,11 @@ a
 14
 15
 16
-3
-6
-9
-12
-15
+2
+5
+8
+11
+14
 [0] Abcdefghijklmnop
 [1] aBcdefghijklmnop
 [2] abCdefghijklmnop
@@ -129,3 +130,9 @@ a
 [27] aaa
 [28] aaa
 [29] aaa
+1 2 3 4 5
+foo 0
+foo 1
+foo 2
+foo 3
+foo 4
index 6f26c38dc21df33f1a30191d5831507eb681898e..a9170c13509365c8faf7a0513472f222fa707e89 100644 (file)
@@ -38,3 +38,5 @@ mapfile -O 10 -n 5 -t E < mapfile.data
 for (( i = 0 ; i < ${#E[@]} ; i++ )); do
     echo "${E[${i}]}"
 done
+
+${THIS_SH} ./mapfile1.sub
diff --git a/tests/mapfile1.sub b/tests/mapfile1.sub
new file mode 100644 (file)
index 0000000..b3d77f9
--- /dev/null
@@ -0,0 +1,11 @@
+: ${TMPDIR:=/tmp}
+FILE=$TMPDIR/file
+
+trap 'rm -f $FILE' 0 1 2 3 6 15
+printf "%d\n" {1..20} > $FILE
+
+mapfile -n 5 array < $FILE
+echo ${array[@]}
+
+mapfile -n 5 -c 1 -C "echo foo" array  < $FILE
+mapfile -n 5 -c 1 -C "echo foo" array  < /dev/null
index 34a369235b7333ccc9aa24afe8ebfabf018aa09e..abfe89db23bda1f0402afccd0dd71acf17d78596 100644 (file)
@@ -1,6 +1,6 @@
 # test read with a timeout of 0 -- input polling
-
-echo abcde | { sleep 0.25 ; read -t 0; }
+# sleep with fractional seconds argument is not universal
+echo abcde | { sleep 0.25 2>/dev/null ; read -t 0; }
 echo $?
 
 read -t 0 < $0
index cca61cd400fe8728a57327fbec4f89600ffc8418..3389f118099f2f2cf4e29a7c0203dff9dd986a88 100644 (file)
@@ -1,2 +1,2 @@
-${THIS_SH} ./set-e-test > /tmp/xx
+${THIS_SH} ./set-e.tests > /tmp/xx
 diff /tmp/xx set-e.right && rm -f /tmp/xx
index b9762a40e0b0bcd557105fa048a6075ced317c63..85a598602d1390b93b4c4f1ee7b7233ca5e6eab2 100644 (file)
@@ -33,3 +33,35 @@ b
 after 1
 a
 0
+non-posix foo
+after brace group failure: 1
+A 1
+B 0
+C 0
+D 0
+D 1
+A 1
+B 0
+C 0
+D 0
+D 1
+A 1
+B 0
+C 0
+A 1
+B 1
+C 0
+B 0
+C 0
+after negation 1: 0
+after negation 2: 0
+after negation 3: 1
+after negation 4: 0
+after brace pipeline
+foo
+after failure 1
+after failure 2
+after failure 3
+true || false no exit
+false || true no exit
+false && false no exit
similarity index 96%
rename from tests/set-e-test
rename to tests/set-e.tests
index 1fdf360d982f655a80136d4a68de33e611562add..8c0cfcf48aaef630868c319190801494e22a7b44 100644 (file)
@@ -103,3 +103,8 @@ until . $FN; do echo a; break; done
 echo $?
 
 rm -f $FN
+
+set +e
+
+${THIS_SH} ./set-e1.sub
+${THIS_SH} ./set-e2.sub
diff --git a/tests/set-e1.sub b/tests/set-e1.sub
new file mode 100644 (file)
index 0000000..a800560
--- /dev/null
@@ -0,0 +1,59 @@
+# subshell failure should cause the shell to exit silently
+${THIS_SH} -ce '(exit 17) ; echo "after (exit 17): $?"'
+
+# pipeline failure should cause shell to exit silently
+${THIS_SH} -c 'set -e ; false | echo foo | while read x ; do ( exit 17 ) ; done; echo after pipeline subshell;'
+
+# should be silent in posix mode
+${THIS_SH} -c 'set -o posix; set -e ; z=$(false;echo posix foo) ; echo $z'
+# but echo foo in non-posix
+${THIS_SH} -c 'set -e ; z=$(false;echo non-posix foo) ; echo $z'
+
+${THIS_SH} -ce 'x=$(false) ; echo "x=\$(false) does not exit"'
+
+${THIS_SH} -ce '{ false; echo false in brace group does not exit; }'
+echo after brace group failure: $?
+
+${THIS_SH} -ce '(false ; echo A $?) && echo B $?; echo C $?'; echo D $?
+
+${THIS_SH} -ce '(false ; echo A $?) ; echo B $?; echo C $?'; echo D $?
+
+${THIS_SH} -ce 'f() (false ; echo A $?); f && echo B $?; echo C $?'; echo D $?
+
+${THIS_SH} -ce 'f() (false ; echo A $?) ; f; echo B $?; echo C $?'; echo D $?
+
+${THIS_SH} -ce 'if false; echo A $?; then echo B $?; fi'; echo C $?
+
+${THIS_SH} -ce '! { false; echo A $?; } | cat; echo B $?'; echo C $?
+
+${THIS_SH} -ce '{ false; echo A $?; } | cat ; echo B $?'; echo C $?
+
+set -e
+
+! false
+echo after negation 1: $?
+
+! false | false
+echo after negation 2: $?
+
+! true
+echo after negation 3: $?
+
+! (false)
+echo after negation 4: $?
+
+{ false ; echo foo; } | cat
+echo after brace pipeline
+
+false | echo foo | cat
+echo after failure 1
+
+false | (echo foo; false) | true
+echo after failure 2
+
+false | echo foo | while read x ; do ( exit 17 ) ; done | true
+echo after failure 3
+
+# this pipeline failure should cause the shell to exit
+false | echo foo | false
+echo after failure 4
diff --git a/tests/set-e2.sub b/tests/set-e2.sub
new file mode 100644 (file)
index 0000000..de04e99
--- /dev/null
@@ -0,0 +1,10 @@
+${THIS_SH} -ce 'true || false ; echo "true || false no exit"'
+${THIS_SH} -ce 'false || false ; echo "false || false no exit"'
+${THIS_SH} -ce 'false || true ; echo "false || true no exit"'
+
+${THIS_SH} -ce 'false && false ; echo "false && false no exit"'
+${THIS_SH} -ce 'true && false ; echo "true && false no exit"'
+
+${THIS_SH} -ce 'true && (exit 1) ; echo "true && (exit 1) no exit"'
+${THIS_SH} -ce 'true && true|false ; echo "true && true|false no exit"'
+${THIS_SH} -ce 'true && true|(false) ; echo "true && true|(false) no exit"'
diff --git a/trap.c b/trap.c
index a994539063b4b83438e2f8b83f6f5498288c0671..bfc96e71e088957e4864a444015666c57a34c5a3 100644 (file)
--- a/trap.c
+++ b/trap.c
@@ -332,7 +332,7 @@ run_pending_traps ()
          else
            {
              token_state = save_token_state ();
-             parse_and_execute (savestring (trap_list[sig]), "trap", SEVAL_NONINT|SEVAL_NOHIST);
+             parse_and_execute (savestring (trap_list[sig]), "trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE);
              restore_token_state (token_state);
              free (token_state);
            }
@@ -692,7 +692,7 @@ run_exit_trap ()
       if (code == 0 && function_code == 0)
        {
          reset_parser ();
-         parse_and_execute (trap_command, "exit trap", SEVAL_NONINT|SEVAL_NOHIST);
+         parse_and_execute (trap_command, "exit trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE);
        }
       else if (code == ERREXIT)
        retval = last_command_exit_value;
@@ -726,7 +726,7 @@ _run_trap_internal (sig, tag)
 {
   char *trap_command, *old_trap;
   int trap_exit_value, *token_state;
-  int save_return_catch_flag, function_code;
+  int save_return_catch_flag, function_code, flags;
   procenv_t save_return_catch;
 
   trap_exit_value = function_code = 0;
@@ -754,8 +754,11 @@ _run_trap_internal (sig, tag)
          function_code = setjmp (return_catch);
        }
 
+      flags = SEVAL_NONINT|SEVAL_NOHIST;
+      if (sig != DEBUG_TRAP && sig != RETURN_TRAP)
+       flags |= SEVAL_RESETLINE;
       if (function_code == 0)
-       parse_and_execute (trap_command, tag, SEVAL_NONINT|SEVAL_NOHIST);
+       parse_and_execute (trap_command, tag, flags);
 
       restore_token_state (token_state);
       free (token_state);