diff options
author | Chet Ramey <chet@caleb.ins.cwru.edu> | 2013-02-05 16:43:03 -0500 |
---|---|---|
committer | Chet Ramey <chet@caleb.ins.cwru.edu> | 2013-02-05 16:43:03 -0500 |
commit | ad4aef08318c2ca1a2f7e27fc9fb2a6983918003 (patch) | |
tree | bb9566849ba67d6c215a2307e4a09dead0584311 | |
parent | 1b1fe4677673f18f3e47b2c1125f872280863904 (diff) | |
download | bash-ad4aef08318c2ca1a2f7e27fc9fb2a6983918003.tar.gz |
commit bash-20130111 snapshot
-rw-r--r-- | CWRU/CWRU.chlog | 40 | ||||
-rw-r--r-- | CWRU/CWRU.chlog~ | 39 | ||||
-rw-r--r-- | INSTALL | 19 | ||||
-rw-r--r-- | POSIX | 93 | ||||
-rw-r--r-- | bashline.c | 2 | ||||
-rw-r--r-- | braces.c | 7 | ||||
-rw-r--r-- | builtins/mapfile.def | 2 | ||||
-rw-r--r-- | builtins/mapfile.def~ | 359 | ||||
-rw-r--r-- | doc/bash.0 | 1786 | ||||
-rw-r--r-- | doc/bash.1 | 16 | ||||
-rw-r--r-- | doc/bash.html | 170 | ||||
-rw-r--r-- | doc/bash.pdf | bin | 309571 -> 310335 bytes | |||
-rw-r--r-- | doc/bash.ps | 9924 | ||||
-rw-r--r-- | doc/bashref.aux | 72 | ||||
-rw-r--r-- | doc/bashref.bt | 88 | ||||
-rw-r--r-- | doc/bashref.bts | 88 | ||||
-rw-r--r-- | doc/bashref.cp | 12 | ||||
-rw-r--r-- | doc/bashref.cps | 12 | ||||
-rw-r--r-- | doc/bashref.dvi | bin | 709392 -> 715952 bytes | |||
-rw-r--r-- | doc/bashref.html | 1887 | ||||
-rw-r--r-- | doc/bashref.info | 676 | ||||
-rw-r--r-- | doc/bashref.log | 73 | ||||
-rw-r--r-- | doc/bashref.pdf | bin | 456864 -> 460684 bytes | |||
-rw-r--r-- | doc/bashref.ps | 10825 | ||||
-rw-r--r-- | doc/bashref.texi | 14 | ||||
-rw-r--r-- | doc/bashref.tmp | 7 | ||||
-rw-r--r-- | doc/bashref.toc | 66 | ||||
-rw-r--r-- | doc/bashref.vr | 119 | ||||
-rw-r--r-- | doc/bashref.vrs | 119 | ||||
-rw-r--r-- | doc/builtins.0 | 384 | ||||
-rw-r--r-- | doc/builtins.ps | 1834 | ||||
-rw-r--r-- | doc/rbash.ps | 2 | ||||
-rw-r--r-- | doc/version.texi | 4 | ||||
-rw-r--r-- | execute_cmd.c | 7 | ||||
-rw-r--r-- | execute_cmd.c~ | 10 | ||||
-rw-r--r-- | expr.c | 5 | ||||
-rw-r--r-- | init-termsigs.patch | 11 | ||||
-rw-r--r-- | init-termsigs.patch~ | 123 | ||||
-rw-r--r-- | redir.c | 10 | ||||
-rw-r--r-- | redir.c~ | 1339 | ||||
-rw-r--r-- | subst.c | 16 | ||||
-rw-r--r-- | subst.c~ | 9604 | ||||
-rw-r--r-- | tests/arith.right | 3 | ||||
-rw-r--r-- | tests/arith6.sub | 6 | ||||
-rw-r--r-- | trap.c~ | 8 |
45 files changed, 26025 insertions, 13856 deletions
diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index a6288333..1cd86ae1 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -4303,3 +4303,43 @@ lib/readline/readline.h doc/{bash.1,bashref.texi} - a couple of changes to the descriptions of the ERR trap and its effects based on a message from Rob Nagler <nagler@bivio.biz> + + 1/9 + --- +expr.c + - expassign: invalidate curlval before freeing and NULLing tokstr to + avoid aliasing issues. Fixes bug reported by Eduardo A. Bustamante + López<dualbus@gmail.com> and Dan Douglas <ormaaj@gmail.com> + +braces.c + - array_concat: don't be so aggressive in trying to short-circuit. We + can only short-circuit if we have a single-element array where the + element is an empty string (array[0] == "" array[1] = 0x0). Existing + practice requires us to replicate arrays and prefix or append empty + strings. Fixes bug reported by Eduardo A. Bustamante López + <dualbus@gmail.com> + + 1/11 + ---- +execute_cmd.c + - execute_builtin: since mapfile uses evalstring() to run its callbacks + internally, just like eval, so it needs to handle the case where the + temp environment given to mapfile persists throughout the entire + set of callback commands. This might be a problem with trap also, but + trap isn't run in the same way. Fixes bug reported by Dan Douglas + <ormaaj@gmail.com> + + 1/13 + ---- +redir.c + - redirection_error: before expanding the redirection word (if + expandable_redirection_filename returns true), disable command + substitution during expansion. Fixes bug reported by Dan Douglas + <ormaaj@gmail.com> + +subst.c + - expand_word_internal: case '\\': if the next character is an IFS + character, and the expansion occurs within double quotes, and the + character is not one for which backslash retains its meaning, add + the (escaped) '\' and the (escaped) character. Fixes bug reported + by Dan Douglas <ormaaj@gmail.com> diff --git a/CWRU/CWRU.chlog~ b/CWRU/CWRU.chlog~ index 89c1f37b..3a7e8fa7 100644 --- a/CWRU/CWRU.chlog~ +++ b/CWRU/CWRU.chlog~ @@ -4297,3 +4297,42 @@ bashline.c lib/readline/readline.h - change readline version numbers to 6.3 + + 1/6 + --- +doc/{bash.1,bashref.texi} + - a couple of changes to the descriptions of the ERR trap and its + effects based on a message from Rob Nagler <nagler@bivio.biz> + + 1/9 + --- +expr.c + - expassign: invalidate curlval before freeing and NULLing tokstr to + avoid aliasing issues. Fixes bug reported by Eduardo A. Bustamante + López<dualbus@gmail.com> and Dan Douglas <ormaaj@gmail.com> + +braces.c + - array_concat: don't be so aggressive in trying to short-circuit. We + can only short-circuit if we have a single-element array where the + element is an empty string (array[0] == "" array[1] = 0x0). Existing + practice requires us to replicate arrays and prefix or append empty + strings. Fixes bug reported by Eduardo A. Bustamante López + <dualbus@gmail.com> + + 1/11 + ---- +execute_cmd.c + - execute_builtin: since mapfile uses evalstring() to run its callbacks + internally, just like eval, so it needs to handle the case where the + temp environment given to mapfile persists throughout the entire + set of callback commands. This might be a problem with trap also, but + trap isn't run in the same way. Fixes bug reported by Dan Douglas + <ormaaj@gmail.com> + + 1/13 + ---- +redir.c + - redirection_error: before expanding the redirection word (if + expandable_redirection_filename returns true), disable command + substitution during expansion. Fixes bug reported by Dan Douglas + <ormaaj@gmail.com> @@ -47,8 +47,8 @@ out how `configure' could check whether or not to do them, and mail diffs or instructions to <bash-maintainers@gnu.org> so they can be considered for the next release. -The file `configure.in' is used to create `configure' by a program -called Autoconf. You only need `configure.in' if you want to change it +The file `configure.ac' is used to create `configure' by a program +called Autoconf. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of Autoconf. If you do this, make sure you are using Autoconf version 2.50 or newer. @@ -252,9 +252,9 @@ The `minimal-config' option can be used to disable all of the following options, but it is processed first, so individual options may be enabled using `enable-FEATURE'. -All of the following options except for `disabled-builtins' and -`xpg-echo-default' are enabled by default, unless the operating system -does not provide the necessary support. +All of the following options except for `disabled-builtins', +`directpand-default', and `xpg-echo-default' are enabled by default, +unless the operating system does not provide the necessary support. `--enable-alias' Allow alias expansion and include the `alias' and `unalias' @@ -308,6 +308,11 @@ does not provide the necessary support. `--enable-debugger' Include support for the bash debugger (distributed separately). +`--enable-direxpand-default' + Cause the `direxpand' shell option (*note The Shopt Builtin::) to + be enabled by default when the shell starts. It is normally + disabled by default. + `--enable-directory-stack' Include support for a `csh'-like directory stack and the `pushd', `popd', and `dirs' builtins (*note The Directory Stack::). @@ -363,8 +368,8 @@ does not provide the necessary support. `--enable-prompt-string-decoding' Turn on the interpretation of a number of backslash-escaped characters in the `$PS1', `$PS2', `$PS3', and `$PS4' prompt - strings. See *note Printing a Prompt::, for a complete list of - prompt string escape sequences. + strings. See *note Controlling the Prompt::, for a complete list + of prompt string escape sequences. `--enable-readline' Include support for command-line editing and history with the Bash @@ -40,147 +40,164 @@ The following list is what's changed when `POSIX mode' is in effect: 8. Tilde expansion is only performed on assignments preceding a command name, rather than on all assignment statements on the line. - 9. The default history file is `~/.sh_history' (this is the default + 9. The `command' builtin does not prevent builtins that take + assignment statements as arguments from expanding them as + assignment statements; when not in POSIX mode, assignment builtins + lose their assignment statement expansion properties when preceded + by `command'. + + 10. The default history file is `~/.sh_history' (this is the default value of `$HISTFILE'). - 10. The output of `kill -l' prints all the signal names on a single + 11. The output of `kill -l' prints all the signal names on a single line, separated by spaces, without the `SIG' prefix. - 11. The `kill' builtin does not accept signal names with a `SIG' + 12. The `kill' builtin does not accept signal names with a `SIG' prefix. - 12. Non-interactive shells exit if FILENAME in `.' FILENAME is not + 13. Non-interactive shells exit if FILENAME in `.' FILENAME is not found. - 13. Non-interactive shells exit if a syntax error in an arithmetic + 14. Non-interactive shells exit if a syntax error in an arithmetic expansion results in an invalid expression. - 14. Non-interactive shells exit if there is a syntax error in a script + 15. Non-interactive shells exit if there is a syntax error in a script read with the `.' or `source' builtins, or in a string processed by the `eval' builtin. - 15. Redirection operators do not perform filename expansion on the word + 16. Redirection operators do not perform filename expansion on the word in the redirection unless the shell is interactive. - 16. Redirection operators do not perform word splitting on the word in + 17. Redirection operators do not perform word splitting on the word in the redirection. - 17. Function names must be valid shell `name's. That is, they may not + 18. Function names must be valid shell `name's. That is, they may not contain characters other than letters, digits, and underscores, and may not start with a digit. Declaring a function with an invalid name causes a fatal syntax error in non-interactive shells. - 18. POSIX special builtins are found before shell functions during + 19. Function names may not be the same as one of the POSIX special + builtins. + + 20. POSIX special builtins are found before shell functions during command lookup. - 19. The `time' reserved word may be used by itself as a command. When + 21. The `time' reserved word may be used by itself as a command. When used in this way, it displays timing statistics for the shell and its completed children. The `TIMEFORMAT' variable controls the format of the timing information. - 20. When parsing and expanding a ${...} expansion that appears within + 22. When parsing and expanding a ${...} expansion that appears within double quotes, single quotes are no longer special and cannot be used to quote a closing brace or other special character, unless the operator is one of those defined to perform pattern removal. In this case, they do not have to appear as matched pairs. - 21. The parser does not recognize `time' as a reserved word if the next + 23. The parser does not recognize `time' as a reserved word if the next token begins with a `-'. - 22. If a POSIX special builtin returns an error status, a + 24. If a POSIX special builtin returns an error status, a non-interactive shell exits. The fatal errors are those listed in the POSIX standard, and include things like passing incorrect options, redirection errors, variable assignment errors for assignments preceding the command name, and so on. - 23. A non-interactive shell exits with an error status if a variable + 25. A non-interactive shell exits with an error status if a variable assignment error occurs when no command name follows the assignment statements. A variable assignment error occurs, for example, when trying to assign a value to a readonly variable. - 24. A non-interactive shell exists with an error status if a variable + 26. A non-interactive shell exists with an error status if a variable assignment error occurs in an assignment statement preceding a special builtin, but not with any other simple command. - 25. A non-interactive shell exits with an error status if the iteration + 27. A non-interactive shell exits with an error status if the iteration variable in a `for' statement or the selection variable in a `select' statement is a readonly variable. - 26. Process substitution is not available. + 28. Process substitution is not available. - 27. Assignment statements preceding POSIX special builtins persist in + 29. While variable indirection is available, it may not be applied to + the `#' and `?' special parameters. + + 30. Assignment statements preceding POSIX special builtins persist in the shell environment after the builtin completes. - 28. Assignment statements preceding shell function calls persist in the + 31. 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. - 29. The `export' and `readonly' builtin commands display their output + 32. The `export' and `readonly' builtin commands display their output in the format required by POSIX. - 30. The `trap' builtin displays signal names without the leading `SIG'. + 33. The `trap' builtin displays signal names without the leading `SIG'. - 31. The `trap' builtin doesn't check the first argument for a possible + 34. The `trap' builtin doesn't check the first argument for a possible signal specification and revert the signal handling to the original disposition if it is, unless that argument consists solely of digits and is a valid signal number. If users want to reset the handler for a given signal to the original disposition, they should use `-' as the first argument. - 32. The `.' and `source' builtins do not search the current directory + 35. The `.' and `source' builtins do not search the current directory for the filename argument if it is not found by searching `PATH'. - 33. Subshells spawned to execute command substitutions inherit the + 36. 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. - 34. Alias expansion is always enabled, even in non-interactive shells. + 37. Alias expansion is always enabled, even in non-interactive shells. - 35. When the `alias' builtin displays alias definitions, it does not + 38. When the `alias' builtin displays alias definitions, it does not display them with a leading `alias ' unless the `-p' option is supplied. - 36. When the `set' builtin is invoked without options, it does not + 39. When the `set' builtin is invoked without options, it does not display shell function names and definitions. - 37. When the `set' builtin is invoked without options, it displays + 40. When the `set' builtin is invoked without options, it displays variable values without quotes, unless they contain shell metacharacters, even if the result contains nonprinting characters. - 38. When the `cd' builtin is invoked in LOGICAL mode, and the pathname + 41. When the `cd' builtin is invoked in LOGICAL mode, and the pathname constructed from `$PWD' and the directory name supplied as an argument does not refer to an existing directory, `cd' will fail instead of falling back to PHYSICAL mode. - 39. The `pwd' builtin verifies that the value it prints is the same as + 42. The `pwd' builtin verifies that the value it prints is the same as the current directory, even if it is not asked to check the file system with the `-P' option. - 40. When listing the history, the `fc' builtin does not include an + 43. When listing the history, the `fc' builtin does not include an indication of whether or not a history entry has been modified. - 41. The default editor used by `fc' is `ed'. + 44. The default editor used by `fc' is `ed'. - 42. The `type' and `command' builtins will not report a non-executable + 45. The `type' and `command' builtins will not report a non-executable file as having been found, though the shell will attempt to execute such a file if it is the only so-named file found in `$PATH'. - 43. The `vi' editing mode will invoke the `vi' editor directly when + 46. The `vi' editing mode will invoke the `vi' editor directly when the `v' command is run, instead of checking `$VISUAL' and `$EDITOR'. - 44. When the `xpg_echo' option is enabled, Bash does not attempt to + 47. When the `xpg_echo' option is enabled, Bash does not attempt to interpret any arguments to `echo' as options. Each argument is displayed, after escape characters are converted. - 45. The `ulimit' builtin uses a block size of 512 bytes for the `-c' + 48. The `ulimit' builtin uses a block size of 512 bytes for the `-c' and `-f' options. - 46. The arrival of `SIGCHLD' when a trap is set on `SIGCHLD' does not + 49. The arrival of `SIGCHLD' when a trap is set on `SIGCHLD' does not interrupt the `wait' builtin and cause it to return immediately. The trap command is run once for each child that exits. + 50. The `read' builtin may be interrupted by a signal for which a trap + has been set. If Bash receives a trapped signal while executing + `read', the trap handler executes and `read' returns an exit + status greater than 128. + There is other POSIX behavior that Bash does not implement by default even when in POSIX mode. Specifically: @@ -37,6 +37,8 @@ # include <netdb.h> #endif +#include <signal.h> + #include <stdio.h> #include "chartypes.h" #include "bashansi.h" @@ -700,13 +700,16 @@ array_concat (arr1, arr2) if (arr2 == 0) return (arr1); /* XXX - caller expects us to free arr1 */ - if (degenerate_array (arr1)) + /* We can only short-circuit if the array consists of a single null element; + otherwise we need to replicate the contents of the other array and + prefix (or append, below) an empty element to each one. */ + if (arr1[0] && arr1[0][0] == 0 && arr1[1] == 0) { strvec_dispose (arr1); return (arr2); /* XXX - use flags to see if we can avoid copying here */ } - if (degenerate_array (arr2)) + if (arr2[0] && arr2[0][0] == 0 && arr2[1] == 0) return (arr1); /* XXX - rather than copying and freeing it */ len1 = strvec_len (arr1); diff --git a/builtins/mapfile.def b/builtins/mapfile.def index 8de8a873..2e6a6433 100644 --- a/builtins/mapfile.def +++ b/builtins/mapfile.def @@ -213,6 +213,8 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n zsyncfd (fd); } + /* XXX - bad things can happen if the callback modifies ENTRY, e.g., + unsetting it or changing it to a non-indexed-array type. */ bind_array_element (entry, array_index, line, 0); /* Have we exceeded # of lines to store? */ diff --git a/builtins/mapfile.def~ b/builtins/mapfile.def~ new file mode 100644 index 00000000..8de8a873 --- /dev/null +++ b/builtins/mapfile.def~ @@ -0,0 +1,359 @@ +This file is mapfile.def, from which is created mapfile.c. +It implements the builtin "mapfile" in Bash. + +Copyright (C) 2005-2006 Rocky Bernstein for Free Software Foundation, Inc. +Copyright (C) 2008-2012 Free Software Foundation, Inc. + +This file is part of GNU Bash, the Bourne Again SHell. + +Bash is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Bash is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Bash. If not, see <http://www.gnu.org/licenses/>. + +$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 the standard input into an indexed array variable. + +Read lines from the standard input into the indexed array variable ARRAY, or +from file descriptor FD if the -u option is supplied. The variable MAPFILE +is the default ARRAY. + +Options: + -n count Copy at most COUNT lines. If COUNT is 0, all lines are copied. + -O origin Begin assigning to ARRAY at index ORIGIN. The default index is 0. + -s count Discard the first COUNT lines read. + -t Remove a trailing newline from each line read. + -u fd Read lines from file descriptor FD instead of the standard input. + -C callback Evaluate CALLBACK each time QUANTUM lines are read. + -c quantum Specify the number of lines read between each call to CALLBACK. + +Arguments: + ARRAY Array variable name to use for file data. + +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 and the line to be assigned to that element +as additional arguments. + +If not supplied with an explicit origin, mapfile will clear ARRAY before +assigning to it. + +Exit Status: +Returns success unless an invalid option is given or ARRAY is readonly or +not an indexed array. +$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" +#include "posixstat.h" + +#if defined (HAVE_UNISTD_H) +# include <unistd.h> +#endif + +#include "bashansi.h" +#include "bashintl.h" + +#include <stdio.h> +#include <errno.h> + +#include "../bashintl.h" +#include "../shell.h" +#include "common.h" +#include "bashgetopt.h" + +#if !defined (errno) +extern int errno; +#endif + +#if defined (ARRAY_VARS) + +static int run_callback __P((const char *, unsigned int, const char *)); + +#define DEFAULT_ARRAY_NAME "MAPFILE" +#define DEFAULT_VARIABLE_NAME "MAPLINE" /* not used right now */ + +/* The value specifying how frequently `mapfile' calls the callback. */ +#define DEFAULT_QUANTUM 5000 + +/* Values for FLAGS */ +#define MAPF_CLEARARRAY 0x01 +#define MAPF_CHOP 0x02 + +static int +run_callback (callback, curindex, curline) + const char *callback; + unsigned int curindex; + const char *curline; +{ + unsigned int execlen; + char *execstr, *qline; + int flags; + + qline = sh_single_quote (curline); + execlen = strlen (callback) + strlen (qline) + 10; + /* 1 for each space between %s and %d, + another 1 for the last nul char for C string. */ + execlen += 3; + execstr = xmalloc (execlen); + + flags = SEVAL_NOHIST; +#if 0 + if (interactive) + flags |= SEVAL_INTERACT; +#endif + snprintf (execstr, execlen, "%s %d %s", callback, curindex, qline); + free (qline); + return evalstring (execstr, NULL, flags); +} + +static void +do_chop(line) + char * line; +{ + int length; + + length = strlen (line); + if (length && line[length-1] == '\n') + line[length-1] = '\0'; +} + +static int +mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_name, flags) + int fd; + long line_count_goal, origin, nskip, callback_quantum; + char *callback, *array_name; + int flags; +{ + char *line; + size_t line_length; + unsigned int array_index, line_count; + SHELL_VAR *entry; + int unbuffered_read; + + line = NULL; + line_length = 0; + unbuffered_read = 0; + + /* The following check should be done before reading any lines. Doing it + 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 || readonly_p (entry) || noassign_p (entry)) + { + if (entry && readonly_p (entry)) + err_readonly (array_name); + + return (EXECUTION_FAILURE); + } + else if (array_p (entry) == 0) + { + builtin_error (_("%s: not an indexed array"), array_name); + return (EXECUTION_FAILURE); + } + else if (invisible_p (entry)) + VUNSETATTR (entry, att_invisible); /* no longer invisible */ + + if (flags & MAPF_CLEARARRAY) + array_flush (array_cell (entry)); + +#ifndef __CYGWIN__ + unbuffered_read = (lseek (fd, 0L, SEEK_CUR) < 0) && (errno == ESPIPE); +#else + unbuffered_read = 1; +#endif + + zreset (); + + /* Skip any lines at beginning of file? */ + for (line_count = 0; line_count < nskip; line_count++) + 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 = 1; + zgetline (fd, &line, &line_length, unbuffered_read) != -1; + array_index++) + { + /* Remove trailing newlines? */ + if (flags & MAPF_CHOP) + do_chop (line); + + /* Has a callback been registered and if so is it time to call it? */ + if (callback && line_count && (line_count % callback_quantum) == 0) + { + run_callback (callback, array_index, line); + + /* Reset the buffer for bash own stream. */ + if (unbuffered_read == 0) + zsyncfd (fd); + } + + bind_array_element (entry, array_index, line, 0); + + /* Have we exceeded # of lines to store? */ + line_count++; + if (line_count_goal != 0 && line_count > line_count_goal) + break; + } + + xfree (line); + + if (unbuffered_read == 0) + zsyncfd (fd); + + return EXECUTION_SUCCESS; +} + +int +mapfile_builtin (list) + WORD_LIST *list; +{ + int opt, code, fd, clear_array, flags; + intmax_t intval; + long lines, origin, nskip, callback_quantum; + char *array_name, *callback; + + clear_array = 1; + fd = 0; + lines = origin = nskip = 0; + flags = MAPF_CLEARARRAY; + callback_quantum = DEFAULT_QUANTUM; + callback = 0; + + reset_internal_getopt (); + while ((opt = internal_getopt (list, "u:n:O:tC:c:s:")) != -1) + { + switch (opt) + { + case 'u': + code = legal_number (list_optarg, &intval); + if (code == 0 || intval < 0 || intval != (int)intval) + { + builtin_error (_("%s: invalid file descriptor specification"), list_optarg); + return (EXECUTION_FAILURE); + } + else + fd = intval; + + if (sh_validfd (fd) == 0) + { + builtin_error (_("%d: invalid file descriptor: %s"), fd, strerror (errno)); + return (EXECUTION_FAILURE); + } + break; + + case 'n': + code = legal_number (list_optarg, &intval); + if (code == 0 || intval < 0 || intval != (unsigned)intval) + { + builtin_error (_("%s: invalid line count"), list_optarg); + return (EXECUTION_FAILURE); + } + else + lines = intval; + break; + + case 'O': + code = legal_number (list_optarg, &intval); + if (code == 0 || intval < 0 || intval != (unsigned)intval) + { + builtin_error (_("%s: invalid array origin"), list_optarg); + return (EXECUTION_FAILURE); + } + else + origin = intval; + flags &= ~MAPF_CLEARARRAY; + break; + case 't': + flags |= MAPF_CHOP; + break; + case 'C': + callback = list_optarg; + break; + case 'c': + code = legal_number (list_optarg, &intval); + if (code == 0 || intval <= 0 || intval != (unsigned)intval) + { + builtin_error (_("%s: invalid callback quantum"), list_optarg); + return (EXECUTION_FAILURE); + } + else + callback_quantum = intval; + break; + case 's': + code = legal_number (list_optarg, &intval); + if (code == 0 || intval < 0 || intval != (unsigned)intval) + { + builtin_error (_("%s: invalid line count"), list_optarg); + return (EXECUTION_FAILURE); + } + else + nskip = intval; + break; + default: + builtin_usage (); + return (EX_USAGE); + } + } + list = loptend; + + if (list == 0) + array_name = DEFAULT_ARRAY_NAME; + else if (list->word == 0 || list->word->word == 0) + { + builtin_error ("internal error: getting variable name"); + return (EXECUTION_FAILURE); + } + else if (list->word->word[0] == '\0') + { + builtin_error (_("empty array variable name")); + return (EX_USAGE); + } + else + array_name = list->word->word; + + if (legal_identifier (array_name) == 0 && valid_array_reference (array_name) == 0) + { + sh_invalidid (array_name); + return (EXECUTION_FAILURE); + } + + return mapfile (fd, lines, origin, nskip, callback_quantum, callback, array_name, flags); +} + +#else + +int +mapfile_builtin (list) + WORD_LIST *list; +{ + builtin_error (_("array variable support required")); + return (EXECUTION_FAILURE); +} + +#endif /* ARRAY_VARS */ @@ -9,7 +9,7 @@ SSYYNNOOPPSSIISS bbaasshh [options] [command_string | file] CCOOPPYYRRIIGGHHTT - Bash is Copyright (C) 1989-2012 by the Free Software Foundation, Inc. + Bash is Copyright (C) 1989-2013 by the Free Software Foundation, Inc. DDEESSCCRRIIPPTTIIOONN BBaasshh is an sshh-compatible command language interpreter that executes @@ -360,39 +360,40 @@ SSHHEELLLL GGRRAAMMMMAARR When the ==== and !!== operators are used, the string to the right of the operator is considered a pattern and matched according to - the rules described below under PPaatttteerrnn MMaattcchhiinngg. If the shell - option nnooccaasseemmaattcchh is enabled, the match is performed without - regard to the case of alphabetic characters. The return value - is 0 if the string matches (====) or does not match (!!==) the pat- - tern, and 1 otherwise. Any part of the pattern may be quoted to - force the quoted portion to be matched as a string. - - An additional binary operator, ==~~, is available, with the same - precedence as ==== and !!==. When it is used, the string to the - right of the operator is considered an extended regular expres- + the rules described below under PPaatttteerrnn MMaattcchhiinngg. The == opera- + tor is equivalent to ====. If the shell option nnooccaasseemmaattcchh is + enabled, the match is performed without regard to the case of + alphabetic characters. The return value is 0 if the string + matches (====) or does not match (!!==) the pattern, and 1 other- + wise. Any part of the pattern may be quoted to force the quoted + portion to be matched as a string. + + An additional binary operator, ==~~, is available, with the same + precedence as ==== and !!==. When it is used, the string to the + right of the operator is considered an extended regular expres- sion and matched accordingly (as in _r_e_g_e_x(3)). The return value is 0 if the string matches the pattern, and 1 otherwise. If the - regular expression is syntactically incorrect, the conditional + regular expression is syntactically incorrect, the conditional expression's return value is 2. If the shell option nnooccaasseemmaattcchh is enabled, the match is performed without regard to the case of alphabetic characters. Any part of the pattern may be quoted to - force the quoted portion to be matched as a string. Bracket - expressions in regular expressions must be treated carefully, - since normal quoting characters lose their meanings between + force the quoted portion to be matched as a string. Bracket + expressions in regular expressions must be treated carefully, + since normal quoting characters lose their meanings between brackets. If the pattern is stored in a shell variable, quoting - the variable expansion forces the entire pattern to be matched + the variable expansion forces the entire pattern to be matched as a string. Substrings matched by parenthesized subexpressions - within the regular expression are saved in the array variable - BBAASSHH__RREEMMAATTCCHH. The element of BBAASSHH__RREEMMAATTCCHH with index 0 is the - portion of the string matching the entire regular expression. - The element of BBAASSHH__RREEMMAATTCCHH with index _n is the portion of the + within the regular expression are saved in the array variable + BBAASSHH__RREEMMAATTCCHH. The element of BBAASSHH__RREEMMAATTCCHH with index 0 is the + portion of the string matching the entire regular expression. + The element of BBAASSHH__RREEMMAATTCCHH with index _n is the portion of the string matching the _nth parenthesized subexpression. - Expressions may be combined using the following operators, + Expressions may be combined using the following operators, listed in decreasing order of precedence: (( _e_x_p_r_e_s_s_i_o_n )) - Returns the value of _e_x_p_r_e_s_s_i_o_n. This may be used to + Returns the value of _e_x_p_r_e_s_s_i_o_n. This may be used to override the normal precedence of operators. !! _e_x_p_r_e_s_s_i_o_n True if _e_x_p_r_e_s_s_i_o_n is false. @@ -402,191 +403,193 @@ SSHHEELLLL GGRRAAMMMMAARR True if either _e_x_p_r_e_s_s_i_o_n_1 or _e_x_p_r_e_s_s_i_o_n_2 is true. The &&&& and |||| operators do not evaluate _e_x_p_r_e_s_s_i_o_n_2 if the value - of _e_x_p_r_e_s_s_i_o_n_1 is sufficient to determine the return value of + of _e_x_p_r_e_s_s_i_o_n_1 is sufficient to determine the return value of the entire conditional expression. ffoorr _n_a_m_e [ [ iinn [ _w_o_r_d _._._. ] ] ; ] ddoo _l_i_s_t ; ddoonnee The list of words following iinn is expanded, generating a list of items. The variable _n_a_m_e is set to each element of this list in - turn, and _l_i_s_t is executed each time. If the iinn _w_o_r_d is omit- - ted, the ffoorr command executes _l_i_s_t once for each positional + turn, and _l_i_s_t is executed each time. If the iinn _w_o_r_d is omit- + ted, the ffoorr command executes _l_i_s_t once for each positional parameter that is set (see PPAARRAAMMEETTEERRSS below). The return status - is the exit status of the last command that executes. If the + is the exit status of the last command that executes. If the expansion of the items following iinn results in an empty list, no commands are executed, and the return status is 0. ffoorr (( _e_x_p_r_1 ; _e_x_p_r_2 ; _e_x_p_r_3 )) ; ddoo _l_i_s_t ; ddoonnee First, the arithmetic expression _e_x_p_r_1 is evaluated according to - the rules described below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. The - arithmetic expression _e_x_p_r_2 is then evaluated repeatedly until - it evaluates to zero. Each time _e_x_p_r_2 evaluates to a non-zero - value, _l_i_s_t is executed and the arithmetic expression _e_x_p_r_3 is - evaluated. If any expression is omitted, it behaves as if it + the rules described below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. The + arithmetic expression _e_x_p_r_2 is then evaluated repeatedly until + it evaluates to zero. Each time _e_x_p_r_2 evaluates to a non-zero + value, _l_i_s_t is executed and the arithmetic expression _e_x_p_r_3 is + evaluated. If any expression is omitted, it behaves as if it evaluates to 1. The return value is the exit status of the last command in _l_i_s_t that is executed, or false if any of the expres- sions is invalid. sseelleecctt _n_a_m_e [ iinn _w_o_r_d ] ; ddoo _l_i_s_t ; ddoonnee The list of words following iinn is expanded, generating a list of - items. The set of expanded words is printed on the standard - error, each preceded by a number. If the iinn _w_o_r_d is omitted, - the positional parameters are printed (see PPAARRAAMMEETTEERRSS below). - The PPSS33 prompt is then displayed and a line read from the stan- - dard input. If the line consists of a number corresponding to - one of the displayed words, then the value of _n_a_m_e is set to - that word. If the line is empty, the words and prompt are dis- + items. The set of expanded words is printed on the standard + error, each preceded by a number. If the iinn _w_o_r_d is omitted, + the positional parameters are printed (see PPAARRAAMMEETTEERRSS below). + The PPSS33 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 _n_a_m_e is set to + that word. If the line is empty, the words and prompt are dis- played again. If EOF is read, the command completes. Any other - value read causes _n_a_m_e to be set to null. The line read is - saved in the variable RREEPPLLYY. The _l_i_s_t is executed after each + value read causes _n_a_m_e to be set to null. The line read is + saved in the variable RREEPPLLYY. The _l_i_s_t is executed after each selection until a bbrreeaakk command is executed. The exit status of - sseelleecctt is the exit status of the last command executed in _l_i_s_t, + sseelleecctt is the exit status of the last command executed in _l_i_s_t, or zero if no commands were executed. ccaassee _w_o_r_d iinn [ [(] _p_a_t_t_e_r_n [ || _p_a_t_t_e_r_n ] ... ) _l_i_s_t ;; ] ... eessaacc A ccaassee command first expands _w_o_r_d, and tries to match it against each _p_a_t_t_e_r_n in turn, using the same matching rules as for path- - name expansion (see PPaatthhnnaammee EExxppaannssiioonn below). The _w_o_r_d is - expanded using tilde expansion, parameter and variable expan- - sion, arithmetic substitution, command substitution, process - substitution and quote removal. Each _p_a_t_t_e_r_n examined is + name expansion (see PPaatthhnnaammee EExxppaannssiioonn below). The _w_o_r_d is expanded using tilde expansion, parameter and variable expan- + sion, arithmetic substitution, command substitution, process + substitution and quote removal. Each _p_a_t_t_e_r_n examined is + expanded using tilde expansion, parameter and variable expan- sion, arithmetic substitution, command substitution, and process - substitution. If the shell option nnooccaasseemmaattcchh is enabled, the - match is performed without regard to the case of alphabetic - characters. When a match is found, the corresponding _l_i_s_t is + substitution. If the shell option nnooccaasseemmaattcchh is enabled, the + match is performed without regard to the case of alphabetic + characters. When a match is found, the corresponding _l_i_s_t is executed. If the ;;;; operator is used, no subsequent matches are - attempted after the first pattern match. Using ;;&& in place of - ;;;; causes execution to continue with the _l_i_s_t associated with - the next set of patterns. Using ;;;;&& in place of ;;;; causes the - shell to test the next pattern list in the statement, if any, + attempted after the first pattern match. Using ;;&& in place of + ;;;; causes execution to continue with the _l_i_s_t associated with + the next set of patterns. Using ;;;;&& in place of ;;;; causes the + shell to test the next pattern list in the statement, if any, and execute any associated _l_i_s_t on a successful match. The exit status is zero if no pattern matches. Otherwise, it is the exit status of the last command executed in _l_i_s_t. iiff _l_i_s_t; tthheenn _l_i_s_t_; [ eelliiff _l_i_s_t; tthheenn _l_i_s_t; ] ... [ eellssee _l_i_s_t; ] ffii - The iiff _l_i_s_t is executed. If its exit status is zero, the tthheenn - _l_i_s_t is executed. Otherwise, each eelliiff _l_i_s_t is executed in - turn, and if its exit status is zero, the corresponding tthheenn + The iiff _l_i_s_t is executed. If its exit status is zero, the tthheenn + _l_i_s_t is executed. Otherwise, each eelliiff _l_i_s_t is executed in + turn, and if its exit status is zero, the corresponding tthheenn _l_i_s_t is executed and the command completes. Otherwise, the eellssee - _l_i_s_t is executed, if present. The exit status is the exit sta- + _l_i_s_t is executed, if present. The exit status is the exit sta- tus of the last command executed, or zero if no condition tested true. wwhhiillee _l_i_s_t_-_1; ddoo _l_i_s_t_-_2; ddoonnee uunnttiill _l_i_s_t_-_1; ddoo _l_i_s_t_-_2; ddoonnee - The wwhhiillee command continuously executes the list _l_i_s_t_-_2 as long + The wwhhiillee command continuously executes the list _l_i_s_t_-_2 as long as the last command in the list _l_i_s_t_-_1 returns an exit status of - zero. The uunnttiill command is identical to the wwhhiillee command, - except that the test is negated; _l_i_s_t_-_2 is executed as long as - the last command in _l_i_s_t_-_1 returns a non-zero exit status. The - exit status of the wwhhiillee and uunnttiill commands is the exit status + zero. The uunnttiill command is identical to the wwhhiillee command, + except that the test is negated; _l_i_s_t_-_2 is executed as long as + the last command in _l_i_s_t_-_1 returns a non-zero exit status. The + exit status of the wwhhiillee and uunnttiill commands is the exit status of the last command executed in _l_i_s_t_-_2, or zero if none was exe- cuted. CCoopprroocceesssseess A _c_o_p_r_o_c_e_s_s is a shell command preceded by the ccoopprroocc reserved word. A - coprocess is executed asynchronously in a subshell, as if the command - had been terminated with the && control operator, with a two-way pipe + coprocess is executed asynchronously in a subshell, as if the command + had been terminated with the && control operator, with a two-way pipe established between the executing shell and the coprocess. The format for a coprocess is: ccoopprroocc [_N_A_M_E] _c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n_s] - This creates a coprocess named _N_A_M_E. If _N_A_M_E is not supplied, the + This creates a coprocess named _N_A_M_E. If _N_A_M_E is not supplied, the default name is CCOOPPRROOCC. _N_A_M_E must not be supplied if _c_o_m_m_a_n_d is a _s_i_m_- _p_l_e _c_o_m_m_a_n_d (see above); otherwise, it is interpreted as the first word - of the simple command. When the coprocess is executed, the shell cre- - ates an array variable (see AArrrraayyss below) named _N_A_M_E in the context of + of the simple command. When the coprocess is executed, the shell cre- + ates an array variable (see AArrrraayyss below) named _N_A_M_E in the context of the executing shell. The standard output of _c_o_m_m_a_n_d is connected via a - pipe to a file descriptor in the executing shell, and that file - descriptor is assigned to _N_A_M_E[0]. The standard input of _c_o_m_m_a_n_d is - connected via a pipe to a file descriptor in the executing shell, and - that file descriptor is assigned to _N_A_M_E[1]. This pipe is established - before any redirections specified by the command (see RREEDDIIRREECCTTIIOONN - below). The file descriptors can be utilized as arguments to shell - commands and redirections using standard word expansions. The file - descriptors are not available in subshells. The process ID of the + pipe to a file descriptor in the executing shell, and that file + descriptor is assigned to _N_A_M_E[0]. The standard input of _c_o_m_m_a_n_d is + connected via a pipe to a file descriptor in the executing shell, and + that file descriptor is assigned to _N_A_M_E[1]. This pipe is established + before any redirections specified by the command (see RREEDDIIRREECCTTIIOONN + below). The file descriptors can be utilized as arguments to shell + commands and redirections using standard word expansions. The file + descriptors are not available in subshells. The process ID of the shell spawned to execute the coprocess is available as the value of the - variable _N_A_M_E_PID. The wwaaiitt builtin command may be used to wait for + variable _N_A_M_E_PID. The wwaaiitt builtin command may be used to wait for the coprocess to terminate. - The return status of a coprocess is the exit status of _c_o_m_m_a_n_d. + Since the coprocess is created as an asynchronous command, the ccoopprroocc + command always returns success. The return status of a coprocess is + the exit status of _c_o_m_m_a_n_d. SShheellll FFuunnccttiioonn DDeeffiinniittiioonnss - 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. + 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: _n_a_m_e () _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n] ffuunnccttiioonn _n_a_m_e [()] _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n] - This defines a function named _n_a_m_e. The reserved word ffuunnccttiioonn - is optional. If the ffuunnccttiioonn reserved word is supplied, the - parentheses are optional. The _b_o_d_y of the function is the com- - pound command _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d (see CCoommppoouunndd CCoommmmaannddss above). - That command is usually a _l_i_s_t of commands between { and }, but - may be any command listed under CCoommppoouunndd CCoommmmaannddss above. _c_o_m_- + This defines a function named _n_a_m_e. The reserved word ffuunnccttiioonn + is optional. If the ffuunnccttiioonn reserved word is supplied, the + parentheses are optional. The _b_o_d_y of the function is the com- + pound command _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d (see CCoommppoouunndd CCoommmmaannddss above). + That command is usually a _l_i_s_t of commands between { and }, but + may be any command listed under CCoommppoouunndd CCoommmmaannddss above. _c_o_m_- _p_o_u_n_d_-_c_o_m_m_a_n_d is executed whenever _n_a_m_e is specified as the name - of a simple command. When in _p_o_s_i_x _m_o_d_e, _n_a_m_e may not be the - name of one of the POSIX _s_p_e_c_i_a_l _b_u_i_l_t_i_n_s. Any redirections + of a simple command. When in _p_o_s_i_x _m_o_d_e, _n_a_m_e may not be the + name of one of the POSIX _s_p_e_c_i_a_l _b_u_i_l_t_i_n_s. Any redirections (see RREEDDIIRREECCTTIIOONN below) specified when a function is defined are - performed when the function is executed. The exit status of a - function definition is zero unless a syntax error occurs or a - readonly function with the same name already exists. When exe- - cuted, the exit status of a function is the exit status of the + performed when the function is executed. The exit status of a + function definition is zero unless a syntax error occurs or a + readonly function with the same name already exists. When exe- + cuted, the exit status of a function is the exit status of the last command executed in the body. (See FFUUNNCCTTIIOONNSS below.) CCOOMMMMEENNTTSS In a non-interactive shell, or an interactive shell in which the iinntteerr-- - aaccttiivvee__ccoommmmeennttss option to the sshhoopptt builtin is enabled (see SSHHEELLLL - BBUUIILLTTIINN CCOOMMMMAANNDDSS below), a word beginning with ## causes that word and - all remaining characters on that line to be ignored. An interactive - shell without the iinntteerraaccttiivvee__ccoommmmeennttss option enabled does not allow + aaccttiivvee__ccoommmmeennttss option to the sshhoopptt builtin is enabled (see SSHHEELLLL + BBUUIILLTTIINN CCOOMMMMAANNDDSS below), a word beginning with ## causes that word and + all remaining characters on that line to be ignored. An interactive + shell without the iinntteerraaccttiivvee__ccoommmmeennttss option enabled does not allow comments. The iinntteerraaccttiivvee__ccoommmmeennttss option is on by default in interac- tive shells. QQUUOOTTIINNGG - _Q_u_o_t_i_n_g is used to remove the special meaning of certain characters or - words to the shell. Quoting can be used to disable special treatment + _Q_u_o_t_i_n_g 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 _m_e_t_a_c_h_a_r_a_c_t_e_r_s listed above under DDEEFFIINNIITTIIOONNSS has special + Each of the _m_e_t_a_c_h_a_r_a_c_t_e_r_s listed above under DDEEFFIINNIITTIIOONNSS 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 HHIISS-- + When the command history expansion facilities are being used (see HHIISS-- TTOORRYY EEXXPPAANNSSIIOONN below), the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, usually !!, must be quoted to prevent history expansion. - There are three quoting mechanisms: the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r, single + There are three quoting mechanisms: the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r, single quotes, and double quotes. - A non-quoted backslash (\\) is the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r. It preserves the + A non-quoted backslash (\\) is the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r. It preserves the literal value of the next character that follows, with the exception of - <newline>. If a \\<newline> pair appears, and the backslash is not - itself quoted, the \\<newline> is treated as a line continuation (that + <newline>. If a \\<newline> pair appears, and the backslash is not + itself quoted, the \\<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 + 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 $$, ``, \\, and, - when history expansion is enabled, !!. The characters $$ and `` retain - their special meaning within double quotes. The backslash retains its - special meaning only when followed by one of the following characters: - $$, ``, "", \\, or <<nneewwlliinnee>>. A double quote may be quoted within double + Enclosing characters in double quotes preserves the literal value of + all characters within the quotes, with the exception of $$, ``, \\, and, + when history expansion is enabled, !!. The characters $$ and `` retain + their special meaning within double quotes. The backslash retains its + special meaning only when followed by one of the following characters: + $$, ``, "", \\, or <<nneewwlliinnee>>. A double quote may be quoted within double quotes by preceding it with a backslash. If enabled, history expansion - will be performed unless an !! appearing in double quotes is escaped + will be performed unless an !! appearing in double quotes is escaped using a backslash. The backslash preceding the !! is not removed. - The special parameters ** and @@ have special meaning when in double + The special parameters ** and @@ have special meaning when in double quotes (see PPAARRAAMMEETTEERRSS below). Words of the form $$'_s_t_r_i_n_g' are treated specially. The word expands to - _s_t_r_i_n_g, with backslash-escaped characters replaced as specified by the - ANSI C standard. Backslash escape sequences, if present, are decoded + _s_t_r_i_n_g, with backslash-escaped characters replaced as specified by the + ANSI C standard. Backslash escape sequences, if present, are decoded as follows: \\aa alert (bell) \\bb backspace @@ -600,359 +603,359 @@ QQUUOOTTIINNGG \\\\ backslash \\'' single quote \\"" double quote - \\_n_n_n the eight-bit character whose value is the octal value + \\_n_n_n the eight-bit character whose value is the octal value _n_n_n (one to three digits) - \\xx_H_H the eight-bit character whose value is the hexadecimal + \\xx_H_H the eight-bit character whose value is the hexadecimal value _H_H (one or two hex digits) - \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the + \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value _H_H_H_H (one to four hex digits) \\UU_H_H_H_H_H_H_H_H - the Unicode (ISO/IEC 10646) character whose value is the + the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value _H_H_H_H_H_H_H_H (one to eight hex digits) \\cc_x a control-_x character - The expanded result is single-quoted, as if the dollar sign had not + The expanded result is single-quoted, as if the dollar sign had not been present. A double-quoted string preceded by a dollar sign ($$"_s_t_r_i_n_g") will cause - the string to be translated according to the current locale. If the - current locale is CC or PPOOSSIIXX, the dollar sign is ignored. If the + the string to be translated according to the current locale. If the + current locale is CC or PPOOSSIIXX, the dollar sign is ignored. If the string is translated and replaced, the replacement is double-quoted. PPAARRAAMMEETTEERRSS - A _p_a_r_a_m_e_t_e_r is an entity that stores values. It can be a _n_a_m_e, a num- + A _p_a_r_a_m_e_t_e_r is an entity that stores values. It can be a _n_a_m_e, a num- ber, or one of the special characters listed below under SSppeecciiaall PPaarraamm-- - eetteerrss. A _v_a_r_i_a_b_l_e is a parameter denoted by a _n_a_m_e. A variable has a - _v_a_l_u_e and zero or more _a_t_t_r_i_b_u_t_e_s. Attributes are assigned using the - ddeeccllaarree builtin command (see ddeeccllaarree below in SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS). + eetteerrss. A _v_a_r_i_a_b_l_e is a parameter denoted by a _n_a_m_e. A variable has a + _v_a_l_u_e and zero or more _a_t_t_r_i_b_u_t_e_s. Attributes are assigned using the + ddeeccllaarree builtin command (see ddeeccllaarree below in SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS). A parameter is set if it has been assigned a value. The null string is - a valid value. Once a variable is set, it may be unset only by using + a valid value. Once a variable is set, it may be unset only by using the uunnsseett builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). A _v_a_r_i_a_b_l_e may be assigned to by a statement of the form _n_a_m_e=[_v_a_l_u_e] - If _v_a_l_u_e is not given, the variable is assigned the null string. All - _v_a_l_u_e_s undergo tilde expansion, parameter and variable expansion, com- - mand substitution, arithmetic expansion, and quote removal (see EEXXPPAANN-- + If _v_a_l_u_e is not given, the variable is assigned the null string. All + _v_a_l_u_e_s undergo tilde expansion, parameter and variable expansion, com- + mand substitution, arithmetic expansion, and quote removal (see EEXXPPAANN-- SSIIOONN below). If the variable has its iinntteeggeerr attribute set, then _v_a_l_u_e is evaluated as an arithmetic expression even if the $((...)) expansion - is not used (see AArriitthhmmeettiicc EExxppaannssiioonn below). Word splitting is not - performed, with the exception of ""$$@@"" as explained below under SSppeecciiaall - PPaarraammeetteerrss. Pathname expansion is not performed. Assignment state- - ments may also appear as arguments to the aalliiaass, ddeeccllaarree, ttyyppeesseett, - eexxppoorrtt, rreeaaddoonnllyy, and llooccaall builtin commands. When in _p_o_s_i_x _m_o_d_e, - these builtins may appear in a command after one or more instances of + is not used (see AArriitthhmmeettiicc EExxppaannssiioonn below). Word splitting is not + performed, with the exception of ""$$@@"" as explained below under SSppeecciiaall + PPaarraammeetteerrss. Pathname expansion is not performed. Assignment state- + ments may also appear as arguments to the aalliiaass, ddeeccllaarree, ttyyppeesseett, + eexxppoorrtt, rreeaaddoonnllyy, and llooccaall builtin commands. When in _p_o_s_i_x _m_o_d_e, + these builtins may appear in a command after one or more instances of the ccoommmmaanndd builtin and retain these assignment statement properties. - In the context where an assignment statement is assigning a value to a + 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 _i_n_t_e_g_e_r attribute has been set, _v_a_l_u_e is evaluated - as an arithmetic expression and added to the variable's current value, + able for which the _i_n_t_e_g_e_r attribute has been set, _v_a_l_u_e 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 AArrrraayyss below), the variable's value is not + compound assignment (see AArrrraayyss below), the variable's value is not unset (as it is when using =), and new values are appended to the array - beginning at one greater than the array's maximum index (for indexed + 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, _v_a_l_u_e is expanded and + When applied to a string-valued variable, _v_a_l_u_e is expanded and appended to the variable's value. A variable can be assigned the _n_a_m_e_r_e_f attribute using the --nn option to - the ddeeccllaarree or llooccaall builtin commands (see the descriptions of ddeeccllaarree - and llooccaall below) to create a _n_a_m_e_r_e_f, or a reference to another vari- - able. This allows variables to be manipulated indirectly. Whenever - the nameref variable is referenced or assigned to, the operation is - actually performed on the variable specified by the nameref variable's + the ddeeccllaarree or llooccaall builtin commands (see the descriptions of ddeeccllaarree + and llooccaall below) to create a _n_a_m_e_r_e_f, or a reference to another vari- + able. This allows variables to be manipulated indirectly. Whenever + the nameref variable is referenced or assigned to, the operation is + actually performed on the variable specified by the nameref variable's value. A nameref is commonly used within shell functions to refer to a - variable whose name is passed as an argument to the function. For + variable whose name is passed as an argument to the function. For instance, if a variable name is passed to a shell function as its first argument, running declare -n ref=$1 - inside the function creates a nameref variable rreeff whose value is the + inside the function creates a nameref variable rreeff whose value is the variable name passed as the first argument. References and assignments - to rreeff are treated as references and assignments to the variable whose - name was passed as $$11. If the control variable in a ffoorr loop has the - nameref attribute, the list of words can be a list of shell variables, - and a name reference will be established for each word in the list, in - turn, when the loop is executed. Array variables cannot be given the + to rreeff are treated as references and assignments to the variable whose + name was passed as $$11. If the control variable in a ffoorr loop has the + nameref attribute, the list of words can be a list of shell variables, + and a name reference will be established for each word in the list, in + turn, when the loop is executed. Array variables cannot be given the --nn attribute. However, nameref variables can reference array variables - and subscripted array variables. Namerefs can be unset using the --nn - option to the uunnsseett builtin. Otherwise, if uunnsseett is executed with the - name of a nameref variable as an argument, the variable referenced by + and subscripted array variables. Namerefs can be unset using the --nn + option to the uunnsseett builtin. Otherwise, if uunnsseett is executed with the + name of a nameref variable as an argument, the variable referenced by the nameref variable will be unset. PPoossiittiioonnaall PPaarraammeetteerrss - A _p_o_s_i_t_i_o_n_a_l _p_a_r_a_m_e_t_e_r is a parameter denoted by one or more digits, + A _p_o_s_i_t_i_o_n_a_l _p_a_r_a_m_e_t_e_r is a parameter denoted by one or more digits, other than the single digit 0. Positional parameters are assigned from - the shell's arguments when it is invoked, and may be reassigned using - the sseett builtin command. Positional parameters may not be assigned to - with assignment statements. The positional parameters are temporarily + the shell's arguments when it is invoked, and may be reassigned using + the sseett builtin command. Positional parameters may not be assigned to + with assignment statements. The positional parameters are temporarily replaced when a shell function is executed (see FFUUNNCCTTIIOONNSS below). - When a positional parameter consisting of more than a single digit is + When a positional parameter consisting of more than a single digit is expanded, it must be enclosed in braces (see EEXXPPAANNSSIIOONN below). SSppeecciiaall PPaarraammeetteerrss - The shell treats several parameters specially. These parameters may + The shell treats several parameters specially. These parameters may only be referenced; assignment to them is not allowed. - ** Expands to the positional parameters, starting from one. When - the expansion occurs within double quotes, it expands to a sin- + ** 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 IIFFSS special variable. That is, "$$**" is equiva- lent to "$$11_c$$22_c......", where _c is the first character of the value - of the IIFFSS variable. If IIFFSS is unset, the parameters are sepa- - rated by spaces. If IIFFSS is null, the parameters are joined + of the IIFFSS variable. If IIFFSS is unset, the parameters are sepa- + rated by spaces. If IIFFSS is null, the parameters are joined without intervening separators. - @@ Expands to the positional parameters, starting from one. When + @@ Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, each parameter expands to a separate word. That is, "$$@@" is equivalent to "$$11" - "$$22" ... If the double-quoted expansion occurs within a word, - the expansion of the first parameter is joined with the begin- - ning part of the original word, and the expansion of the last - parameter is joined with the last part of the original word. - When there are no positional parameters, "$$@@" and $$@@ expand to + "$$22" ... If the double-quoted expansion occurs within a word, + the expansion of the first parameter is joined with the begin- + ning part of the original word, and the expansion of the last + parameter is joined with the last part of the original word. + When there are no positional parameters, "$$@@" and $$@@ expand to nothing (i.e., they are removed). ## Expands to the number of positional parameters in decimal. - ?? Expands to the exit status of the most recently executed fore- + ?? Expands to the exit status of the most recently executed fore- ground pipeline. - -- Expands to the current option flags as specified upon invoca- - tion, by the sseett builtin command, or those set by the shell + -- Expands to the current option flags as specified upon invoca- + tion, by the sseett builtin command, or those set by the shell itself (such as the --ii option). - $$ Expands to the process ID of the shell. In a () subshell, it - expands to the process ID of the current shell, not the sub- + $$ Expands to the process ID of the shell. In a () subshell, it + expands to the process ID of the current shell, not the sub- shell. - !! Expands to the process ID of the most recently executed back- + !! Expands to the process ID of the most recently executed back- ground (asynchronous) command. - 00 Expands to the name of the shell or shell script. This is set + 00 Expands to the name of the shell or shell script. This is set at shell initialization. If bbaasshh is invoked with a file of com- - mands, $$00 is set to the name of that file. If bbaasshh is started - with the --cc option, then $$00 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 bbaasshh, as given by argument + mands, $$00 is set to the name of that file. If bbaasshh is started + with the --cc option, then $$00 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 bbaasshh, as given by argument zero. - __ 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 + __ 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- + ing mail, this parameter holds the name of the mail file cur- rently being checked. SShheellll VVaarriiaabblleess The following variables are set by the shell: - BBAASSHH Expands to the full filename used to invoke this instance of + BBAASSHH Expands to the full filename used to invoke this instance of bbaasshh. BBAASSHHOOPPTTSS - A colon-separated list of enabled shell options. Each word in - the list is a valid argument for the --ss option to the sshhoopptt + A colon-separated list of enabled shell options. Each word in + the list is a valid argument for the --ss option to the sshhoopptt builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The options - appearing in BBAASSHHOOPPTTSS are those reported as _o_n by sshhoopptt. If - this variable is in the environment when bbaasshh starts up, each - shell option in the list will be enabled before reading any + appearing in BBAASSHHOOPPTTSS are those reported as _o_n by sshhoopptt. If + this variable is in the environment when bbaasshh starts up, each + shell option in the list will be enabled before reading any startup files. This variable is read-only. BBAASSHHPPIIDD - Expands to the process ID of the current bbaasshh process. This - differs from $$$$ under certain circumstances, such as subshells + Expands to the process ID of the current bbaasshh process. This + differs from $$$$ under certain circumstances, such as subshells that do not require bbaasshh to be re-initialized. BBAASSHH__AALLIIAASSEESS - An associative array variable whose members correspond to the - internal list of aliases as maintained by the aalliiaass builtin. + An associative array variable whose members correspond to the + internal list of aliases as maintained by the aalliiaass builtin. Elements added to this array appear in the alias list; unsetting - array elements cause aliases to be removed from the alias list. + array elements cause aliases to be removed from the alias list. BBAASSHH__AARRGGCC - An array variable whose values are the number of parameters in + An array variable whose values are the number of parameters in each frame of the current bbaasshh execution call stack. The number - of parameters to the current subroutine (shell function or - script executed with .. or ssoouurrccee) is at the top of the stack. - When a subroutine is executed, the number of parameters passed + of parameters to the current subroutine (shell function or + script executed with .. or ssoouurrccee) is at the top of the stack. + When a subroutine is executed, the number of parameters passed is pushed onto BBAASSHH__AARRGGCC. The shell sets BBAASSHH__AARRGGCC only when in - extended debugging mode (see the description of the eexxttddeebbuugg + extended debugging mode (see the description of the eexxttddeebbuugg option to the sshhoopptt builtin below) BBAASSHH__AARRGGVV - An array variable containing all of the parameters in the cur- + An array variable containing all of the parameters in the cur- rent bbaasshh execution call stack. The final parameter of the last - subroutine call is at the top of the stack; the first parameter + 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 BBAASSHH__AARRGGVV. The - shell sets BBAASSHH__AARRGGVV only when in extended debugging mode (see - the description of the eexxttddeebbuugg option to the sshhoopptt builtin + cuted, the parameters supplied are pushed onto BBAASSHH__AARRGGVV. The + shell sets BBAASSHH__AARRGGVV only when in extended debugging mode (see + the description of the eexxttddeebbuugg option to the sshhoopptt builtin below) BBAASSHH__CCMMDDSS - An associative array variable whose members correspond to the - internal hash table of commands as maintained by the hhaasshh + An associative array variable whose members correspond to the + internal hash table of commands as maintained by the hhaasshh builtin. Elements added to this array appear in the hash table; - unsetting array elements cause commands to be removed from the + unsetting array elements cause commands to be removed from the hash table. BBAASSHH__CCOOMMMMAANNDD - The command currently being executed or about to be executed, + 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 + in which case it is the command executing at the time of the trap. BBAASSHH__EEXXEECCUUTTIIOONN__SSTTRRIINNGG The command argument to the --cc invocation option. BBAASSHH__LLIINNEENNOO - An array variable whose members are the line numbers in source - files where each corresponding member of FFUUNNCCNNAAMMEE was invoked. + An array variable whose members are the line numbers in source + files where each corresponding member of FFUUNNCCNNAAMMEE was invoked. $${{BBAASSHH__LLIINNEENNOO[[_$_i]]}} is the line number in the source file ($${{BBAASSHH__SSOOUURRCCEE[[_$_i_+_1]]}}) where $${{FFUUNNCCNNAAMMEE[[_$_i]]}} was called (or - $${{BBAASSHH__LLIINNEENNOO[[_$_i_-_1]]}} if referenced within another shell func- + $${{BBAASSHH__LLIINNEENNOO[[_$_i_-_1]]}} if referenced within another shell func- tion). Use LLIINNEENNOO to obtain the current line number. BBAASSHH__RREEMMAATTCCHH - An array variable whose members are assigned by the ==~~ binary - operator to the [[[[ conditional command. The element with index - 0 is the portion of the string matching the entire regular - expression. The element with index _n is the portion of the + An array variable whose members are assigned by the ==~~ binary + operator to the [[[[ conditional command. The element with index + 0 is the portion of the string matching the entire regular + expression. The element with index _n is the portion of the string matching the _nth parenthesized subexpression. This vari- able is read-only. BBAASSHH__SSOOUURRCCEE - An array variable whose members are the source filenames where - the corresponding shell function names in the FFUUNNCCNNAAMMEE array - variable are defined. The shell function $${{FFUUNNCCNNAAMMEE[[_$_i]]}} is - defined in the file $${{BBAASSHH__SSOOUURRCCEE[[_$_i]]}} and called from + An array variable whose members are the source filenames where + the corresponding shell function names in the FFUUNNCCNNAAMMEE array + variable are defined. The shell function $${{FFUUNNCCNNAAMMEE[[_$_i]]}} is + defined in the file $${{BBAASSHH__SSOOUURRCCEE[[_$_i]]}} and called from $${{BBAASSHH__SSOOUURRCCEE[[_$_i_+_1]]}}. BBAASSHH__SSUUBBSSHHEELLLL - Incremented by one within each subshell or subshell environment - when the shell begins executing in that environment. The ini- + Incremented by one within each subshell or subshell environment + when the shell begins executing in that environment. The ini- tial value is 0. BBAASSHH__VVEERRSSIINNFFOO A readonly array variable whose members hold version information - for this instance of bbaasshh. The values assigned to the array + for this instance of bbaasshh. The values assigned to the array members are as follows: - BBAASSHH__VVEERRSSIINNFFOO[[0]] The major version number (the _r_e_l_e_a_s_e). - BBAASSHH__VVEERRSSIINNFFOO[[1]] The minor version number (the _v_e_r_s_i_o_n). + BBAASSHH__VVEERRSSIINNFFOO[[0]] The major version number (the _r_e_l_e_a_s_e). + BBAASSHH__VVEERRSSIINNFFOO[[1]] The minor version number (the _v_e_r_s_i_o_n). BBAASSHH__VVEERRSSIINNFFOO[[2]] The patch level. BBAASSHH__VVEERRSSIINNFFOO[[3]] The build version. BBAASSHH__VVEERRSSIINNFFOO[[4]] The release status (e.g., _b_e_t_a_1). BBAASSHH__VVEERRSSIINNFFOO[[5]] The value of MMAACCHHTTYYPPEE. BBAASSHH__VVEERRSSIIOONN - Expands to a string describing the version of this instance of + Expands to a string describing the version of this instance of bbaasshh. CCOOMMPP__CCWWOORRDD - An index into $${{CCOOMMPP__WWOORRDDSS}} of the word containing the current + An index into $${{CCOOMMPP__WWOORRDDSS}} of the word containing the current cursor position. This variable is available only in shell func- - tions invoked by the programmable completion facilities (see + tions invoked by the programmable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below). CCOOMMPP__KKEEYY The key (or final key of a key sequence) used to invoke the cur- rent completion function. CCOOMMPP__LLIINNEE - The current command line. This variable is available only in - shell functions and external commands invoked by the pro- - grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn + The current command line. This variable is available only in + shell functions and external commands invoked by the pro- + grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below). CCOOMMPP__PPOOIINNTT - The index of the current cursor position relative to the begin- - ning of the current command. If the current cursor position is + 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 $${{##CCOOMMPP__LLIINNEE}}. This variable is available only in - shell functions and external commands invoked by the pro- - grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn + equal to $${{##CCOOMMPP__LLIINNEE}}. This variable is available only in + shell functions and external commands invoked by the pro- + grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below). CCOOMMPP__TTYYPPEE - Set to an integer value corresponding to the type of completion - attempted that caused a completion function to be called: _T_A_B, - for normal completion, _?, for listing completions after succes- - sive tabs, _!, for listing alternatives on partial word comple- - tion, _@, to list completions if the word is not unmodified, or - _%, for menu completion. This variable is available only in - shell functions and external commands invoked by the pro- - grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn + Set to an integer value corresponding to the type of completion + attempted that caused a completion function to be called: _T_A_B, + for normal completion, _?, for listing completions after succes- + sive tabs, _!, for listing alternatives on partial word comple- + tion, _@, to list completions if the word is not unmodified, or + _%, for menu completion. This variable is available only in + shell functions and external commands invoked by the pro- + grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below). CCOOMMPP__WWOORRDDBBRREEAAKKSS - The set of characters that the rreeaaddlliinnee library treats as word - separators when performing word completion. If CCOOMMPP__WWOORRDDBBRREEAAKKSS - is unset, it loses its special properties, even if it is subse- + The set of characters that the rreeaaddlliinnee library treats as word + separators when performing word completion. If CCOOMMPP__WWOORRDDBBRREEAAKKSS + is unset, it loses its special properties, even if it is subse- quently reset. CCOOMMPP__WWOORRDDSS - An array variable (see AArrrraayyss below) consisting of the individ- - ual words in the current command line. The line is split into - words as rreeaaddlliinnee would split it, using CCOOMMPP__WWOORRDDBBRREEAAKKSS as + An array variable (see AArrrraayyss below) consisting of the individ- + ual words in the current command line. The line is split into + words as rreeaaddlliinnee would split it, using CCOOMMPP__WWOORRDDBBRREEAAKKSS as described above. This variable is available only in shell func- - tions invoked by the programmable completion facilities (see + tions invoked by the programmable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below). - CCOOPPRROOCC An array variable (see AArrrraayyss below) created to hold the file - descriptors for output from and input to an unnamed coprocess + CCOOPPRROOCC An array variable (see AArrrraayyss below) created to hold the file + descriptors for output from and input to an unnamed coprocess (see CCoopprroocceesssseess above). DDIIRRSSTTAACCKK An array variable (see AArrrraayyss below) containing the current con- - tents of the directory stack. Directories appear in the stack - in the order they are displayed by the ddiirrss builtin. Assigning + tents of the directory stack. Directories appear in the stack + in the order they are displayed by the ddiirrss builtin. Assigning to members of this array variable may be used to modify directo- - ries already in the stack, but the ppuusshhdd and ppooppdd builtins must + ries already in the stack, but the ppuusshhdd and ppooppdd builtins must be used to add and remove directories. Assignment to this vari- - able will not change the current directory. If DDIIRRSSTTAACCKK is - unset, it loses its special properties, even if it is subse- + able will not change the current directory. If DDIIRRSSTTAACCKK is + unset, it loses its special properties, even if it is subse- quently reset. - EEUUIIDD Expands to the effective user ID of the current user, initial- + EEUUIIDD Expands to the effective user ID of the current user, initial- ized at shell startup. This variable is readonly. FFUUNNCCNNAAMMEE - An array variable containing the names of all shell functions + 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 (the one with the highest index) is "main". - This variable exists only when a shell function is executing. - Assignments to FFUUNNCCNNAAMMEE have no effect and return an error sta- - tus. If FFUUNNCCNNAAMMEE is unset, it loses its special properties, + tom-most element (the one with the highest index) is "main". + This variable exists only when a shell function is executing. + Assignments to FFUUNNCCNNAAMMEE have no effect and return an error sta- + tus. If FFUUNNCCNNAAMMEE is unset, it loses its special properties, even if it is subsequently reset. - This variable can be used with BBAASSHH__LLIINNEENNOO and BBAASSHH__SSOOUURRCCEE. - Each element of FFUUNNCCNNAAMMEE has corresponding elements in - BBAASSHH__LLIINNEENNOO and BBAASSHH__SSOOUURRCCEE to describe the call stack. For - instance, $${{FFUUNNCCNNAAMMEE[[_$_i]]}} was called from the file - $${{BBAASSHH__SSOOUURRCCEE[[_$_i_+_1]]}} at line number $${{BBAASSHH__LLIINNEENNOO[[_$_i]]}}. The + This variable can be used with BBAASSHH__LLIINNEENNOO and BBAASSHH__SSOOUURRCCEE. + Each element of FFUUNNCCNNAAMMEE has corresponding elements in + BBAASSHH__LLIINNEENNOO and BBAASSHH__SSOOUURRCCEE to describe the call stack. For + instance, $${{FFUUNNCCNNAAMMEE[[_$_i]]}} was called from the file + $${{BBAASSHH__SSOOUURRCCEE[[_$_i_+_1]]}} at line number $${{BBAASSHH__LLIINNEENNOO[[_$_i]]}}. The ccaalllleerr builtin displays the current call stack using this infor- mation. - GGRROOUUPPSS An array variable containing the list of groups of which the - current user is a member. Assignments to GGRROOUUPPSS have no effect - and return an error status. If GGRROOUUPPSS is unset, it loses its + GGRROOUUPPSS An array variable containing the list of groups of which the + current user is a member. Assignments to GGRROOUUPPSS have no effect + and return an error status. If GGRROOUUPPSS is unset, it loses its special properties, even if it is subsequently reset. HHIISSTTCCMMDD The history number, or index in the history list, of the current - command. If HHIISSTTCCMMDD is unset, it loses its special properties, + command. If HHIISSTTCCMMDD is unset, it loses its special properties, even if it is subsequently reset. HHOOSSTTNNAAMMEE Automatically set to the name of the current host. HHOOSSTTTTYYPPEE - Automatically set to a string that uniquely describes the type - of machine on which bbaasshh is executing. The default is system- + Automatically set to a string that uniquely describes the type + of machine on which bbaasshh is executing. The default is system- dependent. - LLIINNEENNOO 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 + LLIINNEENNOO 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 LLIINNEENNOO is unset, it loses its special proper- ties, even if it is subsequently reset. MMAACCHHTTYYPPEE - Automatically set to a string that fully describes the system - type on which bbaasshh is executing, in the standard GNU _c_p_u_-_c_o_m_- + Automatically set to a string that fully describes the system + type on which bbaasshh is executing, in the standard GNU _c_p_u_-_c_o_m_- _p_a_n_y_-_s_y_s_t_e_m format. The default is system-dependent. MMAAPPFFIILLEE - An array variable (see AArrrraayyss below) created to hold the text + An array variable (see AArrrraayyss below) created to hold the text read by the mmaappffiillee builtin when no variable name is supplied. OOLLDDPPWWDD The previous working directory as set by the ccdd command. - OOPPTTAARRGG The value of the last option argument processed by the ggeettooppttss + OOPPTTAARRGG The value of the last option argument processed by the ggeettooppttss builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). - OOPPTTIINNDD The index of the next argument to be processed by the ggeettooppttss + OOPPTTIINNDD The index of the next argument to be processed by the ggeettooppttss builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). - OOSSTTYYPPEE Automatically set to a string that describes the operating sys- - tem on which bbaasshh is executing. The default is system-depen- + OOSSTTYYPPEE Automatically set to a string that describes the operating sys- + tem on which bbaasshh is executing. The default is system-depen- dent. PPIIPPEESSTTAATTUUSS - An array variable (see AArrrraayyss below) containing a list of exit - status values from the processes in the most-recently-executed + An array variable (see AArrrraayyss 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). - PPPPIIDD The process ID of the shell's parent. This variable is read- + PPPPIIDD The process ID of the shell's parent. This variable is read- only. PPWWDD The current working directory as set by the ccdd command. RRAANNDDOOMM 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 RRAANNDDOOMM. If RRAANNDDOOMM is unset, - it loses its special properties, even if it is subsequently + it loses its special properties, even if it is subsequently reset. RREEAADDLLIINNEE__LLIINNEE The contents of the rreeaaddlliinnee line buffer, for use with "bind -x" @@ -960,30 +963,45 @@ PPAARRAAMMEETTEERRSS RREEAADDLLIINNEE__PPOOIINNTT The position of the insertion point in the rreeaaddlliinnee line buffer, for use with "bind -x" (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). - RREEPPLLYY Set to the line of input read by the rreeaadd builtin command when + RREEPPLLYY Set to the line of input read by the rreeaadd builtin command when no arguments are supplied. SSEECCOONNDDSS - Each time this parameter is referenced, the number of seconds - since shell invocation is returned. If a value is assigned to - SSEECCOONNDDSS, the value returned upon subsequent references is the - number of seconds since the assignment plus the value assigned. + Each time this parameter is referenced, the number of seconds + since shell invocation is returned. If a value is assigned to + SSEECCOONNDDSS, the value returned upon subsequent references is the + number of seconds since the assignment plus the value assigned. If SSEECCOONNDDSS is unset, it loses its special properties, even if it is subsequently reset. SSHHEELLLLOOPPTTSS - A colon-separated list of enabled shell options. Each word in - the list is a valid argument for the --oo option to the sseett + A colon-separated list of enabled shell options. Each word in + the list is a valid argument for the --oo option to the sseett builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The options - appearing in SSHHEELLLLOOPPTTSS are those reported as _o_n by sseett --oo. If - this variable is in the environment when bbaasshh starts up, each - shell option in the list will be enabled before reading any + appearing in SSHHEELLLLOOPPTTSS are those reported as _o_n by sseett --oo. If + this variable is in the environment when bbaasshh starts up, each + shell option in the list will be enabled before reading any startup files. This variable is read-only. SSHHLLVVLL Incremented by one each time an instance of bbaasshh is started. UUIIDD 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, bbaasshh + The following variables are used by the shell. In some cases, bbaasshh assigns a default value to a variable; these cases are noted below. + BBAASSHH__CCOOMMPPAATT + The value is used to set the shell's compatibility level. See + the description of the sshhoopptt bbuuiillttiinn bbeellooww uunnddeerr SSHHEELLLL BBUUIILLTTIINN + CCOOMMMMAANNDDSS ffoorr aa ddeessccrriippttiioonn ooff tthhee vvaarriioouuss ccoommppaattiibbiilliittyy lleevveellss + aanndd tthheeiirr eeffffeeccttss.. TThhee vvaalluuee mmaayy bbee aa ddeecciimmaall nnuummbbeerr ((ee..gg..,, + 44..22)) oorr aann iinntteeggeerr ((ee..gg..,, 4422)) ccoorrrreessppoonnddiinngg ttoo tthhee ddeessiirreedd ccoomm-- + ppaattiibbiilliittyy lleevveell.. IIff BBAASSHH__CCOOMMPPAATT iiss uunnsseett oorr sseett ttoo tthhee eemmppttyy + ssttrriinngg,, tthhee ccoommppaattiibbiilliittyy lleevveell iiss sseett ttoo tthhee ddeeffaauulltt ffoorr tthhee + ccuurrrreenntt vveerrssiioonn.. IIff BBAASSHH__CCOOMMPPAATT iiss sseett ttoo aa vvaalluuee tthhaatt iiss nnoott + oonnee ooff tthhee vvaalliidd ccoommppaattiibbiilliittyy lleevveellss,, tthhee sshheellll pprriinnttss aann eerrrroorr + mmeessssaaggee aanndd sseettss tthhee ccoommppaattiibbiilliittyy lleevveell ttoo tthhee ddeeffaauulltt ffoorr tthhee + ccuurrrreenntt vveerrssiioonn.. TThhee vvaalliidd ccoommppaattiibbiilliittyy lleevveellss ccoorrrreessppoonndd ttoo + tthhee ccoommppaattiibbiilliittyy ooppttiioonnss aacccceepptteedd bbyy tthhee sshhoopptt bbuuiillttiinn + ddeessccrriibbeedd bbeellooww ((ffoorr eexxaammppllee,, ccoommppaatt4422 mmeeaannss tthhaatt 44..22 aanndd 4422 aarree + vvaalliidd vvaalluueess)).. TThhee ccuurrrreenntt vveerrssiioonn iiss aallssoo aa vvaalliidd vvaalluuee.. BBAASSHH__EENNVV If this parameter is set when bbaasshh is executing a shell script, its value is interpreted as a filename containing commands to @@ -1004,141 +1022,149 @@ PPAARRAAMMEETTEERRSS list of directories in which the shell looks for destination directories specified by the ccdd command. A sample value is ".:~:/usr". + CCHHIILLDD__MMAAXX + Set the number of exited child status values for the shell to + remember. Bash will not allow this value to be decreased below + a Posix-mandated minimum, and there is a maximum value (cur- + rently 8192) that this may not exceed. The minimum value is + system-dependent. CCOOLLUUMMNNSS Used by the sseelleecctt compound command to determine the terminal - width when printing selection lists. Automatically set in an - interactive shell upon receipt of a SSIIGGWWIINNCCHH. + width when printing selection lists. Automatically set if the + cchheecckkwwiinnssiizzee option is enabled or in an interactive shell upon + receipt of a SSIIGGWWIINNCCHH. CCOOMMPPRREEPPLLYY An array variable from which bbaasshh reads the possible completions - generated by a shell function invoked by the programmable com- - pletion facility (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below). Each + generated by a shell function invoked by the programmable com- + pletion facility (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below). Each array element contains one possible completion. - EEMMAACCSS If bbaasshh finds this variable in the environment when the shell - starts with value "t", it assumes that the shell is running in + EEMMAACCSS If bbaasshh 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. - EENNVV Similar to BBAASSHH__EENNVV; used when the shell is invoked in POSIX + EENNVV Similar to BBAASSHH__EENNVV; used when the shell is invoked in POSIX mode. FFCCEEDDIITT The default editor for the ffcc builtin command. FFIIGGNNOORREE - A colon-separated list of suffixes to ignore when performing + A colon-separated list of suffixes to ignore when performing filename completion (see RREEAADDLLIINNEE below). A filename whose suf- - fix matches one of the entries in FFIIGGNNOORREE is excluded from the + fix matches one of the entries in FFIIGGNNOORREE is excluded from the list of matched filenames. A sample value is ".o:~". FFUUNNCCNNEESSTT - If set to a numeric value greater than 0, defines a maximum - function nesting level. Function invocations that exceed this + If set to a numeric value greater than 0, defines a maximum + function nesting level. Function invocations that exceed this nesting level will cause the current command to abort. GGLLOOBBIIGGNNOORREE 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 + pathname expansion pattern also matches one of the patterns in GGLLOOBBIIGGNNOORREE, it is removed from the list of matches. HHIISSTTCCOONNTTRROOLL - A colon-separated list of values controlling how commands are - saved on the history list. If the list of values includes - _i_g_n_o_r_e_s_p_a_c_e, lines which begin with a ssppaaccee character are not - saved in the history list. A value of _i_g_n_o_r_e_d_u_p_s causes lines + A colon-separated list of values controlling how commands are + saved on the history list. If the list of values includes + _i_g_n_o_r_e_s_p_a_c_e, lines which begin with a ssppaaccee character are not + saved in the history list. A value of _i_g_n_o_r_e_d_u_p_s causes lines matching the previous history entry to not be saved. A value of _i_g_n_o_r_e_b_o_t_h is shorthand for _i_g_n_o_r_e_s_p_a_c_e and _i_g_n_o_r_e_d_u_p_s. A value of _e_r_a_s_e_d_u_p_s 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 HHIISSTTCCOONNTTRROOLL is - unset, or does not include a valid value, all lines read by the + to be removed from the history list before that line is saved. + Any value not in the above list is ignored. If HHIISSTTCCOONNTTRROOLL 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 HHIISSTTIIGGNNOORREE. The second and subsequent lines of a multi-line - compound command are not tested, and are added to the history + of HHIISSTTIIGGNNOORREE. 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 HHIISSTTCCOONNTTRROOLL. HHIISSTTFFIILLEE The name of the file in which command history is saved (see HHIISS-- - TTOORRYY below). The default value is _~_/_._b_a_s_h___h_i_s_t_o_r_y. If unset, + TTOORRYY below). The default value is _~_/_._b_a_s_h___h_i_s_t_o_r_y. If unset, the command history is not saved when a shell exits. HHIISSTTFFIILLEESSIIZZEE 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, to contain no more than that number of - lines by removing the oldest entries. The history file is also - truncated to this size after writing it when a shell exits. If - the value is 0, the history file is truncated to zero size. - Non-numeric values and numeric values less than zero inhibit - truncation. The shell sets the default value to the value of + this variable is assigned a value, the history file is trun- + cated, if necessary, to contain no more than that number of + lines by removing the oldest entries. The history file is also + truncated to this size after writing it when a shell exits. If + the value is 0, the history file is truncated to zero size. + Non-numeric values and numeric values less than zero inhibit + truncation. The shell sets the default value to the value of HHIISSTTSSIIZZEE after reading any startup files. HHIISSTTIIGGNNOORREE - 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 `**' is appended). Each pattern is - tested against the line after the checks specified by HHIISSTTCCOONN-- - TTRROOLL are applied. In addition to the normal shell pattern + 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 `**' is appended). Each pattern is + tested against the line after the checks specified by HHIISSTTCCOONN-- + TTRROOLL are applied. In addition to the normal shell pattern matching characters, `&&' matches the previous history line. `&&' - may be escaped using a backslash; the backslash is removed + 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 HHIISSTTIIGGNNOORREE. HHIISSTTSSIIZZEE - The number of commands to remember in the command history (see - HHIISSTTOORRYY below). If the value is 0, commands are not saved in + The number of commands to remember in the command history (see + HHIISSTTOORRYY below). If the value is 0, commands are not saved in the history list. Numeric values less than zero result in every - command being saved on the history list (there is no limit). - The shell sets the default value to 500 after reading any + command being saved on the history list (there is no limit). + The shell sets the default value to 500 after reading any startup files. HHIISSTTTTIIMMEEFFOORRMMAATT - If this variable is set and not null, its value is used as a + If this variable is set and not null, its value is used as a format string for _s_t_r_f_t_i_m_e(3) to print the time stamp associated - with each history entry displayed by the hhiissttoorryy 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 + with each history entry displayed by the hhiissttoorryy 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. HHOOMMEE The home directory of the current user; the default argument for the ccdd builtin command. The value of this variable is also used when performing tilde expansion. HHOOSSTTFFIILLEE - Contains the name of a file in the same format as _/_e_t_c_/_h_o_s_t_s + Contains the name of a file in the same format as _/_e_t_c_/_h_o_s_t_s 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, bbaasshh adds the contents of - the new file to the existing list. If HHOOSSTTFFIILLEE is set, but has - no value, or does not name a readable file, bbaasshh attempts to - read _/_e_t_c_/_h_o_s_t_s to obtain the list of possible hostname comple- + 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, bbaasshh adds the contents of + the new file to the existing list. If HHOOSSTTFFIILLEE is set, but has + no value, or does not name a readable file, bbaasshh attempts to + read _/_e_t_c_/_h_o_s_t_s to obtain the list of possible hostname comple- tions. When HHOOSSTTFFIILLEE is unset, the hostname list is cleared. - IIFFSS The _I_n_t_e_r_n_a_l _F_i_e_l_d _S_e_p_a_r_a_t_o_r that is used for word splitting - after expansion and to split lines into words with the rreeaadd + IIFFSS The _I_n_t_e_r_n_a_l _F_i_e_l_d _S_e_p_a_r_a_t_o_r that is used for word splitting + after expansion and to split lines into words with the rreeaadd builtin command. The default value is ``<space><tab><new- line>''. IIGGNNOORREEEEOOFF Controls the action of an interactive shell on receipt of an EEOOFF character as the sole input. If set, the value is the number of - consecutive EEOOFF characters which must be typed as the first - characters on an input line before bbaasshh 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, EEOOFF signifies the + consecutive EEOOFF characters which must be typed as the first + characters on an input line before bbaasshh 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, EEOOFF signifies the end of input to the shell. IINNPPUUTTRRCC - The filename for the rreeaaddlliinnee startup file, overriding the + The filename for the rreeaaddlliinnee startup file, overriding the default of _~_/_._i_n_p_u_t_r_c (see RREEAADDLLIINNEE below). - LLAANNGG Used to determine the locale category for any category not + LLAANNGG Used to determine the locale category for any category not specifically selected with a variable starting with LLCC__. - LLCC__AALLLL This variable overrides the value of LLAANNGG and any other LLCC__ + LLCC__AALLLL This variable overrides the value of LLAANNGG and any other LLCC__ variable specifying a locale category. LLCC__CCOOLLLLAATTEE - 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 + 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. LLCC__CCTTYYPPEE - This variable determines the interpretation of characters and - the behavior of character classes within pathname expansion and + This variable determines the interpretation of characters and + the behavior of character classes within pathname expansion and pattern matching. LLCC__MMEESSSSAAGGEESS - This variable determines the locale used to translate double- + This variable determines the locale used to translate double- quoted strings preceded by a $$. LLCC__NNUUMMEERRIICC - This variable determines the locale category used for number + This variable determines the locale category used for number formatting. - LLIINNEESS Used by the sseelleecctt compound command to determine the column - length for printing selection lists. Automatically set by an - interactive shell upon receipt of a SSIIGGWWIINNCCHH. + LLIINNEESS Used by the sseelleecctt compound command to determine the column + length for printing selection lists. Automatically set if the + cchheecckkwwiinnssiizzee option is enabled or in an interactive shell upon + receipt of a SSIIGGWWIINNCCHH. MMAAIILL If this parameter is set to a file or directory name and the MMAAIILLPPAATTHH variable is not set, bbaasshh informs the user of the arrival of mail in the specified file or Maildir-format direc- @@ -1226,7 +1252,7 @@ PPAARRAAMMEETTEERRSS the fraction is included. If this variable is not set, bbaasshh acts as if it had the value - $$''\\nnrreeaall\\tt%%33llRR\\nnuusseerr\\tt%%33llUU\\nnssyyss%%33llSS''. If the value is null, no + $$''\\nnrreeaall\\tt%%33llRR\\nnuusseerr\\tt%%33llUU\\nnssyyss\\%%33llSS''. If the value is null, no timing information is displayed. A trailing newline is added when the format string is displayed. TTMMOOUUTT If set to a value greater than zero, TTMMOOUUTT is treated as the @@ -1304,7 +1330,11 @@ PPAARRAAMMEETTEERRSS This syntax is also accepted by the ddeeccllaarree builtin. Individual array elements may be assigned to using the _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e syntax - introduced above. + introduced above. When assigning to an indexed array, if _n_a_m_e is sub- + scripted by a negative number, that number is interpreted as relative + to one greater than the maximum index of _n_a_m_e, so negative indices + count back from the end of the array, and an index of -1 references the + last element. Any element of an array may be referenced using ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}. The braces are required to avoid conflicts with pathname expansion. If @@ -1324,18 +1354,20 @@ PPAARRAAMMEETTEERRSS ments in the array. Referencing an array variable without a subscript is equivalent to referencing the array with a subscript of 0. If the _s_u_b_s_c_r_i_p_t used to reference an element of an indexed array evaluates to - a number less than zero, it is used as an offset from one greater than - the array's maximum index (so a subcript of -1 refers to the last ele- - ment of the array). + a number less than zero, it is interpreted as relative to one greater + than the maximum index of the array, so negative indices count back + from the end of the array, and an index of -1 references the last ele- + ment. - An array variable is considered set if a subscript has been assigned a + An array variable is considered set if a subscript has been assigned a value. The null string is a valid value. - The uunnsseett builtin is used to destroy arrays. uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t] - destroys the array element at index _s_u_b_s_c_r_i_p_t. Care must be taken to - avoid unwanted side effects caused by pathname expansion. uunnsseett _n_a_m_e, - where _n_a_m_e is an array, or uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t], where _s_u_b_s_c_r_i_p_t is ** - or @@, removes the entire array. + The uunnsseett builtin is used to destroy arrays. uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t] + destroys the array element at index _s_u_b_s_c_r_i_p_t. Negative subscripts to + indexed arrays are interpreted as described above. Care must be taken + to avoid unwanted side effects caused by pathname expansion. uunnsseett + _n_a_m_e, where _n_a_m_e is an array, or uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t], where _s_u_b_s_c_r_i_p_t + is ** or @@, removes the entire array. The ddeeccllaarree, llooccaall, and rreeaaddoonnllyy builtins each accept a --aa option to specify an indexed array and a --AA option to specify an associative @@ -1384,10 +1416,10 @@ EEXXPPAANNSSIIOONN or _y begins with a zero, the shell attempts to force all generated terms to contain the same number of digits, zero-padding where neces- sary. When characters are supplied, the expression expands to each - character lexicographically between _x and _y, inclusive. Note that both - _x and _y must be of the same type. When the increment is supplied, it - is used as the difference between each term. The default increment is - 1 or -1 as appropriate. + character lexicographically between _x and _y, inclusive, using the + default C locale. Note that both _x and _y must be of the same type. + When the increment is supplied, it is used as the difference between + each term. The default increment is 1 or -1 as appropriate. Brace expansion is performed before any other expansions, and any char- acters special to other expansions are preserved in the result. It is @@ -1568,74 +1600,79 @@ EEXXPPAANNSSIIOONN _p_a_r_a_m_e_t_e_r is substituted. If _p_a_r_a_m_e_t_e_r is ** or @@, the value substituted is the number of positional parameters. If _p_a_r_a_m_e_- _t_e_r is an array name subscripted by ** or @@, the value substi- - tuted is the number of elements in the array. + tuted is the number of elements in the array. If _p_a_r_a_m_e_t_e_r is + an indexed array name subscripted by a negative number, that + number is interpreted as relative to one greater than the maxi- + mum index of _p_a_r_a_m_e_t_e_r, so negative indices count back from the + end of the array, and an index of -1 references the last ele- + ment. ${_p_a_r_a_m_e_t_e_r##_w_o_r_d} ${_p_a_r_a_m_e_t_e_r####_w_o_r_d} RReemmoovvee mmaattcchhiinngg pprreeffiixx ppaatttteerrnn. The _w_o_r_d is expanded to produce a pattern just as in pathname expansion. If the pattern matches - the beginning of the value of _p_a_r_a_m_e_t_e_r, then the result of the - expansion is the expanded value of _p_a_r_a_m_e_t_e_r with the shortest - matching pattern (the ``##'' case) or the longest matching pat- - tern (the ``####'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@ or **, the - pattern removal operation is applied to each positional parame- + the beginning of the value of _p_a_r_a_m_e_t_e_r, then the result of the + expansion is the expanded value of _p_a_r_a_m_e_t_e_r with the shortest + matching pattern (the ``##'' case) or the longest matching pat- + tern (the ``####'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@ or **, the + pattern removal operation is applied to each positional parame- ter in turn, and the expansion is the resultant list. If _p_a_r_a_m_- - _e_t_e_r is an array variable subscripted with @@ or **, the pattern - removal operation is applied to each member of the array in + _e_t_e_r is an array variable subscripted with @@ or **, the pattern + removal operation is applied to each member of the array in turn, and the expansion is the resultant list. ${_p_a_r_a_m_e_t_e_r%%_w_o_r_d} ${_p_a_r_a_m_e_t_e_r%%%%_w_o_r_d} RReemmoovvee mmaattcchhiinngg ssuuffffiixx ppaatttteerrnn. The _w_o_r_d is expanded to produce a pattern just as in pathname expansion. If the pattern matches - a trailing portion of the expanded value of _p_a_r_a_m_e_t_e_r, then the - result of the expansion is the expanded value of _p_a_r_a_m_e_t_e_r with - the shortest matching pattern (the ``%%'' case) or the longest - matching pattern (the ``%%%%'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@ - or **, the pattern removal operation is applied to each posi- - tional parameter in turn, and the expansion is the resultant - list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted with @@ or - **, the pattern removal operation is applied to each member of + a trailing portion of the expanded value of _p_a_r_a_m_e_t_e_r, then the + result of the expansion is the expanded value of _p_a_r_a_m_e_t_e_r with + the shortest matching pattern (the ``%%'' case) or the longest + matching pattern (the ``%%%%'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@ + or **, the pattern removal operation is applied to each posi- + tional parameter in turn, and the expansion is the resultant + list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted with @@ or + **, the pattern removal operation is applied to each member of the array in turn, and the expansion is the resultant list. ${_p_a_r_a_m_e_t_e_r//_p_a_t_t_e_r_n//_s_t_r_i_n_g} PPaatttteerrnn ssuubbssttiittuuttiioonn. The _p_a_t_t_e_r_n is expanded to produce a pat- - tern just as in pathname expansion. _P_a_r_a_m_e_t_e_r is expanded and - the longest match of _p_a_t_t_e_r_n against its value is replaced with - _s_t_r_i_n_g. If _p_a_t_t_e_r_n begins with //, all matches of _p_a_t_t_e_r_n are - replaced with _s_t_r_i_n_g. Normally only the first match is + tern just as in pathname expansion. _P_a_r_a_m_e_t_e_r is expanded and + the longest match of _p_a_t_t_e_r_n against its value is replaced with + _s_t_r_i_n_g. If _p_a_t_t_e_r_n begins with //, all matches of _p_a_t_t_e_r_n are + replaced with _s_t_r_i_n_g. Normally only the first match is replaced. If _p_a_t_t_e_r_n begins with ##, it must match at the begin- ning of the expanded value of _p_a_r_a_m_e_t_e_r. If _p_a_t_t_e_r_n begins with - %%, it must match at the end of the expanded value of _p_a_r_a_m_e_t_e_r. + %%, it must match at the end of the expanded value of _p_a_r_a_m_e_t_e_r. If _s_t_r_i_n_g is null, matches of _p_a_t_t_e_r_n are deleted and the // fol- lowing _p_a_t_t_e_r_n may be omitted. If _p_a_r_a_m_e_t_e_r is @@ or **, the sub- - stitution operation is applied to each positional parameter in - turn, and the expansion is the resultant list. If _p_a_r_a_m_e_t_e_r is - an array variable subscripted with @@ or **, the substitution - operation is applied to each member of the array in turn, and + stitution operation is applied to each positional parameter in + turn, and the expansion is the resultant list. If _p_a_r_a_m_e_t_e_r is + an array variable subscripted with @@ or **, the substitution + operation is applied to each member of the array in turn, and the expansion is the resultant list. ${_p_a_r_a_m_e_t_e_r^^_p_a_t_t_e_r_n} ${_p_a_r_a_m_e_t_e_r^^^^_p_a_t_t_e_r_n} ${_p_a_r_a_m_e_t_e_r,,_p_a_t_t_e_r_n} ${_p_a_r_a_m_e_t_e_r,,,,_p_a_t_t_e_r_n} - CCaassee mmooddiiffiiccaattiioonn. This expansion modifies the case of alpha- - betic characters in _p_a_r_a_m_e_t_e_r. The _p_a_t_t_e_r_n is expanded to pro- + CCaassee mmooddiiffiiccaattiioonn. This expansion modifies the case of alpha- + betic characters in _p_a_r_a_m_e_t_e_r. The _p_a_t_t_e_r_n is expanded to pro- duce a pattern just as in pathname expansion. Each character in - the expanded value of _p_a_r_a_m_e_t_e_r is tested against _p_a_t_t_e_r_n, and, - if it matches the pattern, its case is converted. The pattern - should not attempt to match more than one character. The ^^ - operator converts lowercase letters matching _p_a_t_t_e_r_n to upper- + the expanded value of _p_a_r_a_m_e_t_e_r is tested against _p_a_t_t_e_r_n, and, + if it matches the pattern, its case is converted. The pattern + should not attempt to match more than one character. The ^^ + operator converts lowercase letters matching _p_a_t_t_e_r_n to upper- case; the ,, operator converts matching uppercase letters to low- ercase. The ^^^^ and ,,,, expansions convert each matched character - in the expanded value; the ^^ and ,, expansions match and convert - only the first character in the expanded value. If _p_a_t_t_e_r_n is - omitted, it is treated like a ??, which matches every character. - If _p_a_r_a_m_e_t_e_r is @@ or **, the case modification operation is - applied to each positional parameter in turn, and the expansion - is the resultant list. If _p_a_r_a_m_e_t_e_r is an array variable sub- + in the expanded value; the ^^ and ,, expansions match and convert + only the first character in the expanded value. If _p_a_t_t_e_r_n is + omitted, it is treated like a ??, which matches every character. + If _p_a_r_a_m_e_t_e_r is @@ or **, the case modification operation is + applied to each positional parameter in turn, and the expansion + is the resultant list. If _p_a_r_a_m_e_t_e_r is an array variable sub- scripted with @@ or **, the case modification operation is applied - to each member of the array in turn, and the expansion is the + to each member of the array in turn, and the expansion is the resultant list. CCoommmmaanndd SSuubbssttiittuuttiioonn @@ -1647,166 +1684,166 @@ EEXXPPAANNSSIIOONN ``_c_o_m_m_a_n_d`` BBaasshh performs the expansion by executing _c_o_m_m_a_n_d and replacing the com- - mand substitution with the standard output of the command, with any + 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 $$((ccaatt + may be removed during word splitting. The command substitution $$((ccaatt _f_i_l_e)) can be replaced by the equivalent but faster $$((<< _f_i_l_e)). - When the old-style backquote form of substitution is used, backslash - retains its literal meaning except when followed by $$, ``, or \\. The + When the old-style backquote form of substitution is used, backslash + retains its literal meaning except when followed by $$, ``, or \\. The first backquote not preceded by a backslash terminates the command sub- - stitution. When using the $(_c_o_m_m_a_n_d) form, all characters between the + stitution. When using the $(_c_o_m_m_a_n_d) form, all characters between the parentheses make up the command; none are treated specially. Command substitutions may be nested. To nest when using the backquoted form, escape the inner backquotes with backslashes. - If the substitution appears within double quotes, word splitting and + If the substitution appears within double quotes, word splitting and pathname expansion are not performed on the results. AArriitthhmmeettiicc EExxppaannssiioonn - Arithmetic expansion allows the evaluation of an arithmetic expression - and the substitution of the result. The format for arithmetic expan- + Arithmetic expansion allows the evaluation of an arithmetic expression + and the substitution of the result. The format for arithmetic expan- sion is: $$((((_e_x_p_r_e_s_s_i_o_n)))) - The _e_x_p_r_e_s_s_i_o_n is treated as if it were within double quotes, but a - double quote inside the parentheses is not treated specially. All + The _e_x_p_r_e_s_s_i_o_n is treated as if it were within double quotes, but a + double quote inside the parentheses is not treated specially. All tokens in the expression undergo parameter expansion, string expansion, - command substitution, and quote removal. Arithmetic expansions may be + command substitution, and quote removal. Arithmetic expansions may be nested. - The evaluation is performed according to the rules listed below under + The evaluation is performed according to the rules listed below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. If _e_x_p_r_e_s_s_i_o_n is invalid, bbaasshh prints a message indicating failure and no substitution occurs. PPrroocceessss SSuubbssttiittuuttiioonn - _P_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n is supported on systems that support named pipes - (_F_I_F_O_s) or the //ddeevv//ffdd method of naming open files. It takes the form - of <<((_l_i_s_t)) or >>((_l_i_s_t)). The process _l_i_s_t is run with its input or out- + _P_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n is supported on systems that support named pipes + (_F_I_F_O_s) or the //ddeevv//ffdd method of naming open files. It takes the form + of <<((_l_i_s_t)) or >>((_l_i_s_t)). The process _l_i_s_t is run with its input or out- put connected to a _F_I_F_O or some file in //ddeevv//ffdd. The name of this file - is passed as an argument to the current command as the result of the - expansion. If the >>((_l_i_s_t)) form is used, writing to the file will pro- - vide input for _l_i_s_t. If the <<((_l_i_s_t)) form is used, the file passed as + is passed as an argument to the current command as the result of the + expansion. If the >>((_l_i_s_t)) form is used, writing to the file will pro- + vide input for _l_i_s_t. If the <<((_l_i_s_t)) form is used, the file passed as an argument should be read to obtain the output of _l_i_s_t. - When available, process substitution is performed simultaneously with - parameter and variable expansion, command substitution, and arithmetic + When available, process substitution is performed simultaneously with + parameter and variable expansion, command substitution, and arithmetic expansion. WWoorrdd SSpplliittttiinngg - The shell scans the results of parameter expansion, command substitu- - tion, and arithmetic expansion that did not occur within double quotes + The shell scans the results of parameter expansion, command substitu- + tion, and arithmetic expansion that did not occur within double quotes for _w_o_r_d _s_p_l_i_t_t_i_n_g. - The shell treats each character of IIFFSS as a delimiter, and splits the + The shell treats each character of IIFFSS as a delimiter, and splits the results of the other expansions into words on these characters. If IIFFSS - is unset, or its value is exactly <<ssppaaccee>><<ttaabb>><<nneewwlliinnee>>, the default, - then sequences of <<ssppaaccee>>, <<ttaabb>>, and <<nneewwlliinnee>> at the beginning and - end of the results of the previous expansions are ignored, and any - sequence of IIFFSS characters not at the beginning or end serves to - delimit words. If IIFFSS has a value other than the default, then + is unset, or its value is exactly <<ssppaaccee>><<ttaabb>><<nneewwlliinnee>>, the default, + then sequences of <<ssppaaccee>>, <<ttaabb>>, and <<nneewwlliinnee>> at the beginning and + end of the results of the previous expansions are ignored, and any + sequence of IIFFSS characters not at the beginning or end serves to + delimit words. If IIFFSS has a value other than the default, then sequences of the whitespace characters ssppaaccee and ttaabb are ignored at the - beginning and end of the word, as long as the whitespace character is - in the value of IIFFSS (an IIFFSS whitespace character). Any character in - IIFFSS that is not IIFFSS whitespace, along with any adjacent IIFFSS whitespace - characters, delimits a field. A sequence of IIFFSS whitespace characters - is also treated as a delimiter. If the value of IIFFSS is null, no word + beginning and end of the word, as long as the whitespace character is + in the value of IIFFSS (an IIFFSS whitespace character). Any character in + IIFFSS that is not IIFFSS whitespace, along with any adjacent IIFFSS whitespace + characters, delimits a field. A sequence of IIFFSS whitespace characters + is also treated as a delimiter. If the value of IIFFSS is null, no word splitting occurs. - Explicit null arguments ("""" or '''') are retained. Unquoted implicit + Explicit null arguments ("""" or '''') 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 + 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. PPaatthhnnaammee EExxppaannssiioonn - After word splitting, unless the --ff option has been set, bbaasshh scans - each word for the characters **, ??, and [[. If one of these characters - appears, then the word is regarded as a _p_a_t_t_e_r_n, and replaced with an - alphabetically sorted list of filenames matching the pattern (see PPaatt-- - tteerrnn MMaattcchhiinngg below). If no matching filenames are found, and the - shell option nnuullllgglloobb is not enabled, the word is left unchanged. If - the nnuullllgglloobb option is set, and no matches are found, the word is - removed. If the ffaaiillgglloobb shell option is set, and no matches are + After word splitting, unless the --ff option has been set, bbaasshh scans + each word for the characters **, ??, and [[. If one of these characters + appears, then the word is regarded as a _p_a_t_t_e_r_n, and replaced with an + alphabetically sorted list of filenames matching the pattern (see PPaatt-- + tteerrnn MMaattcchhiinngg below). If no matching filenames are found, and the + shell option nnuullllgglloobb is not enabled, the word is left unchanged. If + the nnuullllgglloobb option is set, and no matches are found, the word is + removed. If the ffaaiillgglloobb shell option is set, and no matches are found, an error message is printed and the command is not executed. If - the shell option nnooccaasseegglloobb is enabled, the match is performed without - regard to the case of alphabetic characters. When a pattern is used - for pathname expansion, the character ````..'''' at the start of a name or - immediately following a slash must be matched explicitly, unless the + the shell option nnooccaasseegglloobb is enabled, the match is performed without + regard to the case of alphabetic characters. When a pattern is used + for pathname expansion, the character ````..'''' at the start of a name or + immediately following a slash must be matched explicitly, unless the shell option ddoottgglloobb is set. When matching a pathname, the slash char- - acter must always be matched explicitly. In other cases, the ````..'''' + acter must always be matched explicitly. In other cases, the ````..'''' character is not treated specially. See the description of sshhoopptt below under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS for a description of the nnooccaasseegglloobb, nnuullll-- gglloobb, ffaaiillgglloobb, and ddoottgglloobb shell options. - The GGLLOOBBIIGGNNOORREE shell variable may be used to restrict the set of file- + The GGLLOOBBIIGGNNOORREE shell variable may be used to restrict the set of file- names matching a _p_a_t_t_e_r_n. If GGLLOOBBIIGGNNOORREE is set, each matching filename that also matches one of the patterns in GGLLOOBBIIGGNNOORREE is removed from the - list of matches. The filenames ````..'''' and ````....'''' are always ignored - when GGLLOOBBIIGGNNOORREE is set and not null. However, setting GGLLOOBBIIGGNNOORREE to a - non-null value has the effect of enabling the ddoottgglloobb shell option, so + list of matches. The filenames ````..'''' and ````....'''' are always ignored + when GGLLOOBBIIGGNNOORREE is set and not null. However, setting GGLLOOBBIIGGNNOORREE to a + non-null value has the effect of enabling the ddoottgglloobb shell option, so all other filenames beginning with a ````..'''' will match. To get the old behavior of ignoring filenames beginning with a ````..'''', make ````..**'''' one - of the patterns in GGLLOOBBIIGGNNOORREE. The ddoottgglloobb option is disabled when + of the patterns in GGLLOOBBIIGGNNOORREE. The ddoottgglloobb option is disabled when GGLLOOBBIIGGNNOORREE is unset. PPaatttteerrnn MMaattcchhiinngg 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 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: - ** Matches any string, including the null string. When the - gglloobbssttaarr shell option is enabled, and ** is used in a - pathname expansion context, two adjacent **s used as a - single pattern will match all files and zero or more - directories and subdirectories. If followed by a //, two - adjacent **s will match only directories and subdirecto- + ** Matches any string, including the null string. When the + gglloobbssttaarr shell option is enabled, and ** is used in a + pathname expansion context, two adjacent **s used as a + single pattern will match all files and zero or more + directories and subdirectories. If followed by a //, two + adjacent **s will match only directories and subdirecto- ries. ?? Matches any single character. - [[......]] Matches any one of the enclosed characters. A pair of - characters separated by a hyphen denotes a _r_a_n_g_e _e_x_p_r_e_s_- - _s_i_o_n; any character that sorts between those two charac- - ters, inclusive, using the current locale's collating - sequence and character set, is matched. If the first + [[......]] Matches any one of the enclosed characters. A pair of + characters separated by a hyphen denotes a _r_a_n_g_e _e_x_p_r_e_s_- + _s_i_o_n; any character that falls between those two charac- + ters, inclusive, using the current locale's collating + sequence and character set, is matched. If the first character following the [[ is a !! or a ^^ then any charac- - ter not enclosed is matched. The sorting order of char- - acters in range expressions is determined by the current - locale and the values of the LLCC__CCOOLLLLAATTEE or LLCC__AALLLL shell + ter not enclosed is matched. The sorting order of char- + acters in range expressions is determined by the current + locale and the values of the LLCC__CCOOLLLLAATTEE or LLCC__AALLLL shell variables, if set. To obtain the traditional interpreta- - tion of range expressions, where [[aa--dd]] is equivalent to - [[aabbccdd]], set value of the LLCC__AALLLL shell variable to CC, or - enable the gglloobbaasscciiiirraannggeess shell option. A -- may be + tion of range expressions, where [[aa--dd]] is equivalent to + [[aabbccdd]], set value of the LLCC__AALLLL shell variable to CC, or + enable the gglloobbaasscciiiirraannggeess shell option. A -- may be matched by including it as the first or last character in the set. A ]] may be matched by including it as the first character in the set. - Within [[ and ]], _c_h_a_r_a_c_t_e_r _c_l_a_s_s_e_s can be specified using + Within [[ and ]], _c_h_a_r_a_c_t_e_r _c_l_a_s_s_e_s can be specified using the syntax [[::_c_l_a_s_s::]], where _c_l_a_s_s is one of the following classes defined in the POSIX standard: - aallnnuumm aallpphhaa aasscciiii bbllaannkk ccnnttrrll ddiiggiitt ggrraapphh lloowweerr pprriinntt + aallnnuumm aallpphhaa aasscciiii bbllaannkk ccnnttrrll ddiiggiitt ggrraapphh lloowweerr pprriinntt ppuunncctt ssppaaccee uuppppeerr wwoorrdd xxddiiggiitt A character class matches any character belonging to that class. The wwoorrdd character class matches letters, digits, and the character _. - Within [[ and ]], an _e_q_u_i_v_a_l_e_n_c_e _c_l_a_s_s can be specified + Within [[ and ]], an _e_q_u_i_v_a_l_e_n_c_e _c_l_a_s_s can be specified using the syntax [[==_c==]], which matches all characters with - the same collation weight (as defined by the current + the same collation weight (as defined by the current locale) as the character _c. Within [[ and ]], the syntax [[.._s_y_m_b_o_l..]] matches the collat- ing symbol _s_y_m_b_o_l. If the eexxttgglloobb shell option is enabled using the sshhoopptt builtin, several - extended pattern matching operators are recognized. In the following + extended pattern matching operators are recognized. In the following description, a _p_a_t_t_e_r_n_-_l_i_s_t is a list of one or more patterns separated by a ||. Composite patterns may be formed using one or more of the fol- lowing sub-patterns: @@ -1824,58 +1861,58 @@ EEXXPPAANNSSIIOONN QQuuoottee RReemmoovvaall After the preceding expansions, all unquoted occurrences of the charac- - ters \\, '', and "" that did not result from one of the above expansions + ters \\, '', and "" that did not result from one of the above expansions are removed. RREEDDIIRREECCTTIIOONN - Before a command is executed, its input and output may be _r_e_d_i_r_e_c_t_e_d - using a special notation interpreted by the shell. Redirection allows - commands' file handles to be duplicated, opened, closed, made to refer + Before a command is executed, its input and output may be _r_e_d_i_r_e_c_t_e_d + using a special notation interpreted by the shell. Redirection allows + commands' file handles to be duplicated, opened, closed, made to refer to different files, and can change the files the command reads from and - writes to. Redirection may also be used to modify file handles in the - current shell execution environment. The following redirection opera- + writes to. Redirection may also be used to modify file handles in the + current shell execution environment. The following redirection opera- tors may precede or appear anywhere within a _s_i_m_p_l_e _c_o_m_m_a_n_d or may fol- - low a _c_o_m_m_a_n_d. Redirections are processed in the order they appear, + low a _c_o_m_m_a_n_d. Redirections are processed in the order they appear, from left to right. - Each redirection that may be preceded by a file descriptor number may + Each redirection that may be preceded by a file descriptor number may instead be preceded by a word of the form {_v_a_r_n_a_m_e}. In this case, for each redirection operator except >&- and <&-, the shell will allocate a - file descriptor greater than or equal to 10 and assign it to _v_a_r_n_a_m_e. - If >&- or <&- is preceded by {_v_a_r_n_a_m_e}, the value of _v_a_r_n_a_m_e defines + file descriptor greater than or equal to 10 and assign it to _v_a_r_n_a_m_e. + If >&- or <&- is preceded by {_v_a_r_n_a_m_e}, the value of _v_a_r_n_a_m_e defines the file descriptor to close. - In the following descriptions, if the file descriptor number is omit- - ted, and the first character of the redirection operator is <<, the re- - direction refers to the standard input (file descriptor 0). If the - first character of the redirection operator is >>, the redirection + In the following descriptions, if the file descriptor number is omit- + ted, and the first character of the redirection operator is <<, the re- + direction refers to the standard input (file descriptor 0). If the + first character of the redirection operator is >>, 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 and variable expansion, command substitution, - arithmetic expansion, quote removal, pathname expansion, and word + The word following the redirection operator in the following descrip- + tions, unless otherwise noted, is subjected to brace expansion, tilde + expansion, parameter and variable expansion, command substitution, + arithmetic expansion, quote removal, pathname expansion, and word splitting. If it expands to more than one word, bbaasshh reports an error. - Note that the order of redirections is significant. For example, the + Note that the order of redirections is significant. For example, the command ls >> dirlist 2>>&&1 - directs both standard output and standard error to the file _d_i_r_l_i_s_t, + directs both standard output and standard error to the file _d_i_r_l_i_s_t, while the command ls 2>>&&1 >> dirlist - directs only the standard output to file _d_i_r_l_i_s_t, because the standard - error was duplicated from the standard output before the standard out- + directs only the standard output to file _d_i_r_l_i_s_t, because the standard + error was duplicated from the standard output before the standard out- put was redirected to _d_i_r_l_i_s_t. BBaasshh handles several filenames specially when they are used in redirec- tions, as described in the following table: //ddeevv//ffdd//_f_d - If _f_d is a valid integer, file descriptor _f_d is dupli- + If _f_d is a valid integer, file descriptor _f_d is dupli- cated. //ddeevv//ssttddiinn File descriptor 0 is duplicated. @@ -1885,22 +1922,22 @@ RREEDDIIRREECCTTIIOONN File descriptor 2 is duplicated. //ddeevv//ttccpp//_h_o_s_t//_p_o_r_t If _h_o_s_t is a valid hostname or Internet address, and _p_o_r_t - is an integer port number or service name, bbaasshh attempts + is an integer port number or service name, bbaasshh attempts to open the corresponding TCP socket. //ddeevv//uuddpp//_h_o_s_t//_p_o_r_t If _h_o_s_t is a valid hostname or Internet address, and _p_o_r_t - is an integer port number or service name, bbaasshh attempts + is an integer port number or service name, bbaasshh attempts to open the corresponding UDP 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- + Redirections using file descriptors greater than 9 should be used with + care, as they may conflict with file descriptors the shell uses inter- nally. RReeddiirreeccttiinngg IInnppuutt Redirection of input causes the file whose name results from the expan- - sion of _w_o_r_d to be opened for reading on file descriptor _n, or the + sion of _w_o_r_d to be opened for reading on file descriptor _n, or the standard input (file descriptor 0) if _n is not specified. The general format for redirecting input is: @@ -1908,27 +1945,27 @@ RREEDDIIRREECCTTIIOONN [_n]<<_w_o_r_d RReeddiirreeccttiinngg OOuuttppuutt - Redirection of output causes the file whose name results from the + Redirection of output causes the file whose name results from the expansion of _w_o_r_d to be opened for writing on file descriptor _n, or the standard output (file descriptor 1) if _n is not specified. If the file - does not exist it is created; if it does exist it is truncated to zero + does not exist it is created; if it does exist it is truncated to zero size. The general format for redirecting output is: [_n]>>_w_o_r_d - If the redirection operator is >>, and the nnoocclloobbbbeerr option to the sseett - builtin has been enabled, the redirection will fail if the file whose - name results from the expansion of _w_o_r_d exists and is a regular file. + If the redirection operator is >>, and the nnoocclloobbbbeerr option to the sseett + builtin has been enabled, the redirection will fail if the file whose + name results from the expansion of _w_o_r_d exists and is a regular file. If the redirection operator is >>||, or the redirection operator is >> and the nnoocclloobbbbeerr option to the sseett builtin command is not enabled, the re- direction is attempted even if the file named by _w_o_r_d exists. AAppppeennddiinngg RReeddiirreecctteedd OOuuttppuutt - Redirection of output in this fashion causes the file whose name - results from the expansion of _w_o_r_d to be opened for appending on file - descriptor _n, or the standard output (file descriptor 1) if _n is not + Redirection of output in this fashion causes the file whose name + results from the expansion of _w_o_r_d to be opened for appending on file + descriptor _n, or the standard output (file descriptor 1) if _n is not specified. If the file does not exist it is created. The general format for appending output is: @@ -1937,11 +1974,11 @@ RREEDDIIRREECCTTIIOONN RReeddiirreeccttiinngg SSttaannddaarrdd OOuuttppuutt aanndd SSttaannddaarrdd EErrrroorr - This construct allows both the standard output (file descriptor 1) and - the standard error output (file descriptor 2) to be redirected to the + 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 _w_o_r_d. - There are two formats for redirecting standard output and standard + There are two formats for redirecting standard output and standard error: &&>>_w_o_r_d @@ -1953,13 +1990,13 @@ RREEDDIIRREECCTTIIOONN >>_w_o_r_d 2>>&&1 - When using the second form, _w_o_r_d may not expand to a number or --. If - it does, other redirection operators apply (see DDuupplliiccaattiinngg FFiillee + When using the second form, _w_o_r_d may not expand to a number or --. If + it does, other redirection operators apply (see DDuupplliiccaattiinngg FFiillee DDeessccrriippttoorrss below) for compatibility reasons. AAppppeennddiinngg SSttaannddaarrdd OOuuttppuutt aanndd SSttaannddaarrdd EErrrroorr - This construct allows both the standard output (file descriptor 1) and - the standard error output (file descriptor 2) to be appended to the + 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 _w_o_r_d. The format for appending standard output and standard error is: @@ -1973,9 +2010,9 @@ RREEDDIIRREECCTTIIOONN (see DDuupplliiccaattiinngg FFiillee DDeessccrriippttoorrss below). HHeerree DDooccuummeennttss - This type of redirection instructs the shell to read input from the + This type of redirection instructs the shell to read input from the current source until a line containing only _d_e_l_i_m_i_t_e_r (with no trailing - blanks) is seen. All of the lines read up to that point are then used + 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: @@ -1984,18 +2021,18 @@ RREEDDIIRREECCTTIIOONN _h_e_r_e_-_d_o_c_u_m_e_n_t _d_e_l_i_m_i_t_e_r - No parameter and variable expansion, command substitution, arithmetic - expansion, or pathname expansion is performed on _w_o_r_d. If any charac- - ters in _w_o_r_d are quoted, the _d_e_l_i_m_i_t_e_r is the result of quote removal - on _w_o_r_d, and the lines in the here-document are not expanded. If _w_o_r_d - is unquoted, all lines of the here-document are subjected to parameter - expansion, command substitution, and arithmetic expansion, the charac- - ter sequence \\<<nneewwlliinnee>> is ignored, and \\ must be used to quote the + No parameter and variable expansion, command substitution, arithmetic + expansion, or pathname expansion is performed on _w_o_r_d. If any charac- + ters in _w_o_r_d are quoted, the _d_e_l_i_m_i_t_e_r is the result of quote removal + on _w_o_r_d, and the lines in the here-document are not expanded. If _w_o_r_d + is unquoted, all lines of the here-document are subjected to parameter + expansion, command substitution, and arithmetic expansion, the charac- + ter sequence \\<<nneewwlliinnee>> is ignored, and \\ must be used to quote the characters \\, $$, and ``. If the redirection operator is <<<<--, then all leading tab characters are - stripped from input lines and the line containing _d_e_l_i_m_i_t_e_r. This - allows here-documents within shell scripts to be indented in a natural + stripped from input lines and the line containing _d_e_l_i_m_i_t_e_r. This + allows here-documents within shell scripts to be indented in a natural fashion. HHeerree SSttrriinnggss @@ -2003,10 +2040,10 @@ RREEDDIIRREECCTTIIOONN <<<<<<_w_o_r_d - The _w_o_r_d undergoes brace expansion, tilde expansion, parameter and - variable expansion, command substitution, arithmetic expansion, and - quote removal. Pathname expansion and word splitting are not per- - formed. The result is supplied as a single string to the command on + The _w_o_r_d undergoes brace expansion, tilde expansion, parameter and + variable expansion, command substitution, arithmetic expansion, and + quote removal. Pathname expansion and word splitting are not per- + formed. The result is supplied as a single string to the command on its standard input. DDuupplliiccaattiinngg FFiillee DDeessccrriippttoorrss @@ -2015,22 +2052,22 @@ RREEDDIIRREECCTTIIOONN [_n]<<&&_w_o_r_d is used to duplicate input file descriptors. If _w_o_r_d expands to one or - more digits, the file descriptor denoted by _n is made to be a copy of - that file descriptor. If the digits in _w_o_r_d do not specify a file - descriptor open for input, a redirection error occurs. If _w_o_r_d evalu- - ates to --, file descriptor _n is closed. If _n is not specified, the + more digits, the file descriptor denoted by _n is made to be a copy of + that file descriptor. If the digits in _w_o_r_d do not specify a file + descriptor open for input, a redirection error occurs. If _w_o_r_d evalu- + ates to --, file descriptor _n is closed. If _n is not specified, the standard input (file descriptor 0) is used. The operator [_n]>>&&_w_o_r_d - is used similarly to duplicate output file descriptors. If _n is not - specified, the standard output (file descriptor 1) is used. If the - digits in _w_o_r_d do not specify a file descriptor open for output, a re- - direction error occurs. If _w_o_r_d evaluates to --, file descriptor _n is - closed. As a special case, if _n is omitted, and _w_o_r_d does not expand - to one or more digits or --, the standard output and standard error are + is used similarly to duplicate output file descriptors. If _n is not + specified, the standard output (file descriptor 1) is used. If the + digits in _w_o_r_d do not specify a file descriptor open for output, a re- + direction error occurs. If _w_o_r_d evaluates to --, file descriptor _n is + closed. As a special case, if _n is omitted, and _w_o_r_d does not expand + to one or more digits or --, the standard output and standard error are redirected as described previously. MMoovviinngg FFiillee DDeessccrriippttoorrss @@ -2038,7 +2075,7 @@ RREEDDIIRREECCTTIIOONN [_n]<<&&_d_i_g_i_t-- - moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard + moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard input (file descriptor 0) if _n is not specified. _d_i_g_i_t is closed after being duplicated to _n. @@ -2046,7 +2083,7 @@ RREEDDIIRREECCTTIIOONN [_n]>>&&_d_i_g_i_t-- - moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard + moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard output (file descriptor 1) if _n is not specified. OOppeenniinngg FFiillee DDeessccrriippttoorrss ffoorr RReeaaddiinngg aanndd WWrriittiinngg @@ -2054,117 +2091,117 @@ RREEDDIIRREECCTTIIOONN [_n]<<>>_w_o_r_d - causes the file whose name is the expansion of _w_o_r_d to be opened for - both reading and writing on file descriptor _n, or on file descriptor 0 + causes the file whose name is the expansion of _w_o_r_d to be opened for + both reading and writing on file descriptor _n, or on file descriptor 0 if _n is not specified. If the file does not exist, it is created. AALLIIAASSEESS - _A_l_i_a_s_e_s 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 aalliiaass and uunnaalliiaass builtin - commands (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS 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 //, - $$, ``, and == and any of the shell _m_e_t_a_c_h_a_r_a_c_t_e_r_s or quoting characters + _A_l_i_a_s_e_s 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 aalliiaass and uunnaalliiaass builtin + commands (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS 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 //, + $$, ``, and == and any of the shell _m_e_t_a_c_h_a_r_a_c_t_e_r_s 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 llss to llss --FF, for instance, and - bbaasshh does not try to recursively expand the replacement text. If the - last character of the alias value is a _b_l_a_n_k, then the next command + 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 llss to llss --FF, for instance, and + bbaasshh does not try to recursively expand the replacement text. If the + last character of the alias value is a _b_l_a_n_k, then the next command word following the alias is also checked for alias expansion. Aliases are created and listed with the aalliiaass command, and removed with the uunnaalliiaass command. - There is no mechanism for using arguments in the replacement text. If - arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS + There is no mechanism for using arguments in the replacement text. If + arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS below). - Aliases are not expanded when the shell is not interactive, unless the - eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of + Aliases are not expanded when the shell is not interactive, unless the + eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). - The rules concerning the definition and use of aliases are somewhat - confusing. BBaasshh always reads at least one complete line of input - 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 + The rules concerning the definition and use of aliases are somewhat + confusing. BBaasshh 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- + 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 aalliiaass in com- + available until after that function is executed. To be safe, always + put alias definitions on a separate line, and do not use aalliiaass in com- pound commands. For almost every purpose, aliases are superseded by shell functions. FFUUNNCCTTIIOONNSS - A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR, - stores a series of commands for later execution. When the name of a - shell function is used as a simple command name, the list of commands + A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR, + stores a series of commands for later execution. When the name of a + shell function is used as a simple command name, the list of commands associated with that function name is executed. Functions are executed - in the context of the current shell; no new process is created to - interpret them (contrast this with the execution of a shell script). - When a function is executed, the arguments to the function become the + in the context of the current shell; no new process is created to + 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 ## is - updated to reflect the change. Special parameter 00 is unchanged. The - first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func- + updated to reflect the change. Special parameter 00 is unchanged. The + first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func- tion while the function is executing. - All other aspects of the shell execution environment are identical + All other aspects of the shell execution environment are identical between a function and its caller with these exceptions: the DDEEBBUUGG and - RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL - BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been - given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin - below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett - builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN - traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell + RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL + BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been + given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin + below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett + builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN + traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell option has been enabled. - Variables local to the function may be declared with the llooccaall builtin + Variables local to the function may be declared with the llooccaall builtin command. Ordinarily, variables and their values are shared between the function and its caller. - The FFUUNNCCNNEESSTT variable, if set to a numeric value greater than 0, - defines a maximum function nesting level. Function invocations that + The FFUUNNCCNNEESSTT variable, if set to a numeric value greater than 0, + defines a maximum function nesting level. Function invocations that exceed the limit cause the entire command to abort. - If the builtin command rreettuurrnn 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 RREETTUURRNN trap is executed + If the builtin command rreettuurrnn 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 RREETTUURRNN trap is executed before execution resumes. When a function completes, the values of the - positional parameters and the special parameter ## are restored to the + positional parameters and the special parameter ## are restored to the values they had prior to the function's execution. - Function names and definitions may be listed with the --ff option to the + Function names and definitions may be listed with the --ff option to the ddeeccllaarree or ttyyppeesseett builtin commands. The --FF option to ddeeccllaarree or ttyyppee-- - sseett will list the function names only (and optionally the source file - and line number, if the eexxttddeebbuugg shell option is enabled). Functions - may be exported so that subshells automatically have them defined with - the --ff option to the eexxppoorrtt builtin. A function definition may be - deleted using the --ff option to the uunnsseett builtin. Note that shell + sseett will list the function names only (and optionally the source file + and line number, if the eexxttddeebbuugg shell option is enabled). Functions + may be exported so that subshells automatically have them defined with + the --ff option to the eexxppoorrtt builtin. A function definition may be + deleted using the --ff option to the uunnsseett 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- + 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. The FFUUNNCCNNEESSTT variable may be used to limit - the depth of the function call stack and restrict the number of func- - tion invocations. By default, no limit is imposed on the number of + the depth of the function call stack and restrict the number of func- + tion invocations. By default, no limit is imposed on the number of recursive calls. AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN - The shell allows arithmetic expressions to be evaluated, under certain - circumstances (see the lleett and ddeeccllaarree builtin commands and AArriitthhmmeettiicc - EExxppaannssiioonn). Evaluation is done in fixed-width integers with no check - for overflow, though division by 0 is trapped and flagged as an error. - The operators and their precedence, associativity, and values are the - same as in the C language. The following list of operators is grouped - into levels of equal-precedence operators. The levels are listed in + The shell allows arithmetic expressions to be evaluated, under certain + circumstances (see the lleett and ddeeccllaarree builtin commands and AArriitthhmmeettiicc + EExxppaannssiioonn). Evaluation is done in fixed-width integers with no check + for overflow, though division by 0 is trapped and flagged as an error. + The operators and their precedence, associativity, and values are the + same as in the C language. The following list of operators is grouped + into levels of equal-precedence operators. The levels are listed in order of decreasing precedence. _i_d++++ _i_d---- @@ -2192,46 +2229,46 @@ AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN _e_x_p_r_1 ,, _e_x_p_r_2 comma - Shell variables are allowed as operands; parameter expansion is per- + Shell variables are allowed as operands; parameter expansion is per- formed before the expression is evaluated. Within an expression, shell - variables may also be referenced by name without using the parameter - expansion syntax. A shell variable that is null or unset evaluates to + variables may also be referenced by name without using the parameter + expansion syntax. A shell variable that is null or unset evaluates to 0 when referenced by name without using the parameter expansion syntax. - The value of a variable is evaluated as an arithmetic expression when - it is referenced, or when a variable which has been given the _i_n_t_e_g_e_r + The value of a variable is evaluated as an arithmetic expression when + it is referenced, or when a variable which has been given the _i_n_t_e_g_e_r attribute using ddeeccllaarree --ii is assigned a value. A null value evaluates - to 0. A shell variable need not have its _i_n_t_e_g_e_r attribute turned on + to 0. A shell variable need not have its _i_n_t_e_g_e_r attribute turned on to be used in an expression. Constants with a leading 0 are interpreted as octal numbers. A leading - 0x or 0X denotes hexadecimal. Otherwise, numbers take the form - [_b_a_s_e_#]n, where the optional _b_a_s_e is a decimal number between 2 and 64 - representing the arithmetic base, and _n is a number in that base. If - _b_a_s_e_# is omitted, then base 10 is used. When specifying _n, the digits + 0x or 0X denotes hexadecimal. Otherwise, numbers take the form + [_b_a_s_e_#]n, where the optional _b_a_s_e is a decimal number between 2 and 64 + representing the arithmetic base, and _n is a number in that base. If + _b_a_s_e_# is omitted, then base 10 is used. When specifying _n, the digits greater< than 9 are represented by the lowercase letters, the uppercase letters, @, and _, in that order. If _b_a_s_e is less than or equal to 36, - lowercase and uppercase letters may be used interchangeably to repre- + lowercase and uppercase letters may be used interchangeably to repre- sent 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 + Operators are evaluated in order of precedence. Sub-expressions in + parentheses are evaluated first and may override the precedence rules above. CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS - Conditional expressions are used by the [[[[ compound command and the - tteesstt and [[ builtin commands to test file attributes and perform string - and arithmetic comparisons. Expressions are formed from the following - unary or binary primaries. If any _f_i_l_e argument to one of the pri- + Conditional expressions are used by the [[[[ compound command and the + tteesstt and [[ builtin commands to test file attributes and perform string + and arithmetic comparisons. Expressions are formed from the following + unary or binary primaries. If any _f_i_l_e argument to one of the pri- maries is of the form _/_d_e_v_/_f_d_/_n, then file descriptor _n is checked. If - the _f_i_l_e argument to one of the primaries is one of _/_d_e_v_/_s_t_d_i_n, - _/_d_e_v_/_s_t_d_o_u_t, or _/_d_e_v_/_s_t_d_e_r_r, file descriptor 0, 1, or 2, respectively, + the _f_i_l_e argument to one of the primaries is one of _/_d_e_v_/_s_t_d_i_n, + _/_d_e_v_/_s_t_d_o_u_t, or _/_d_e_v_/_s_t_d_e_r_r, file descriptor 0, 1, or 2, respectively, is checked. Unless otherwise specified, primaries that operate on files follow sym- bolic links and operate on the target of the link, rather than the link itself. - When used with [[[[, the << and >> operators sort lexicographically using + When used with [[[[, the << and >> operators sort lexicographically using the current locale. The tteesstt command sorts using ASCII ordering. --aa _f_i_l_e @@ -2270,28 +2307,31 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS --LL _f_i_l_e True if _f_i_l_e exists and is a symbolic link. --NN _f_i_l_e - True if _f_i_l_e exists and has been modified since it was last + True if _f_i_l_e exists and has been modified since it was last read. --OO _f_i_l_e True if _f_i_l_e exists and is owned by the effective user id. --SS _f_i_l_e True if _f_i_l_e exists and is a socket. _f_i_l_e_1 --eeff _f_i_l_e_2 - True if _f_i_l_e_1 and _f_i_l_e_2 refer to the same device and inode num- + True if _f_i_l_e_1 and _f_i_l_e_2 refer to the same device and inode num- bers. _f_i_l_e_1 -nntt _f_i_l_e_2 - True if _f_i_l_e_1 is newer (according to modification date) than + True if _f_i_l_e_1 is newer (according to modification date) than _f_i_l_e_2, or if _f_i_l_e_1 exists and _f_i_l_e_2 does not. _f_i_l_e_1 -oott _f_i_l_e_2 - True if _f_i_l_e_1 is older than _f_i_l_e_2, or if _f_i_l_e_2 exists and _f_i_l_e_1 + True if _f_i_l_e_1 is older than _f_i_l_e_2, or if _f_i_l_e_2 exists and _f_i_l_e_1 does not. --oo _o_p_t_n_a_m_e - True if the shell option _o_p_t_n_a_m_e is enabled. See the list of - options under the description of the --oo option to the sseett + True if the shell option _o_p_t_n_a_m_e is enabled. See the list of + options under the description of the --oo option to the sseett builtin below. --vv _v_a_r_n_a_m_e - True if the shell variable _v_a_r_n_a_m_e is set (has been assigned a + True if the shell variable _v_a_r_n_a_m_e is set (has been assigned a value). + --RR _v_a_r_n_a_m_e + True if the shell variable _v_a_r_n_a_m_e is set and is a name refer- + ence. --zz _s_t_r_i_n_g True if the length of _s_t_r_i_n_g is zero. _s_t_r_i_n_g @@ -2301,7 +2341,9 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS _s_t_r_i_n_g_1 ==== _s_t_r_i_n_g_2 _s_t_r_i_n_g_1 == _s_t_r_i_n_g_2 True if the strings are equal. == should be used with the tteesstt - command for POSIX conformance. + command for POSIX conformance. When used with the [[[[ command, + this performs pattern matching as described above (CCoommppoouunndd CCoomm-- + mmaannddss). _s_t_r_i_n_g_1 !!== _s_t_r_i_n_g_2 True if the strings are not equal. @@ -2909,8 +2951,10 @@ RREEAADDLLIINNEE ttoorryy or nneexxtt--hhiissttoorryy. hhiissttoorryy--ssiizzee ((00)) 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. + list. If set to zero, any existing history entries are deleted + and no new entries are saved. If set to a value less than zero, + the number of history entries is not limited. By default, the + number of history entries is not limited. hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff)) When set to OOnn, makes readline use a single line for display, scrolling the input horizontally on a single screen line when it @@ -2989,6 +3033,10 @@ RREEAADDLLIINNEE ble partial completion (the possible completions don't share a common prefix) cause the matches to be listed immediately instead of ringing the bell. + sshhooww--mmooddee--iinn--pprroommpptt ((OOffff)) + If set to OOnn, add a character to the beginning of the prompt + indicating the editing mode: emacs (@), vi command (:) or vi + insertion (+). sskkiipp--ccoommpplleetteedd--tteexxtt ((OOffff)) If set to OOnn, this alters the default completion behavior when inserting a single match into the line. It's only active when @@ -4664,67 +4712,70 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS The corresponding _a_r_g_u_m_e_n_t is an integer representing the number of seconds since the epoch. Two special argument values may be used: -1 represents the current time, and - -2 represents the time the shell was invoked. + -2 represents the time the shell was invoked. If no + argument is specified, conversion behaves as if -1 had + been given. This is an exception to the usual pprriinnttff + behavior. - Arguments to non-string format specifiers are treated as C con- + Arguments to non-string format specifiers are treated as C con- stants, except that a leading plus or minus sign is allowed, and - if the leading character is a single or double quote, the value + if the leading character is a single or double quote, the value is the ASCII value of the following character. - The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_- + The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_- _m_e_n_t_s. If the _f_o_r_m_a_t requires more _a_r_g_u_m_e_n_t_s than are supplied, - the extra format specifications behave as if a zero value or - null string, as appropriate, had been supplied. The return + the extra format specifications behave as if a zero value or + null string, as appropriate, had been supplied. The return value is zero on success, non-zero on failure. ppuusshhdd [--nn] [+_n] [-_n] ppuusshhdd [--nn] [_d_i_r] - Adds a directory to the top of the directory stack, or rotates - the stack, making the new top of the stack the current working + 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, + and returns 0, unless the directory stack is empty. Arguments, if supplied, have the following meanings: - --nn Suppresses the normal change of directory when adding - directories to the stack, so that only the stack is + --nn Suppresses the normal change of directory when adding + directories to the stack, so that only the stack is manipulated. - ++_n Rotates the stack so that the _nth directory (counting - from the left of the list shown by ddiirrss, starting with + ++_n Rotates the stack so that the _nth directory (counting + from the left of the list shown by ddiirrss, starting with zero) is at the top. - --_n Rotates the stack so that the _nth directory (counting - from the right of the list shown by ddiirrss, starting with + --_n Rotates the stack so that the _nth directory (counting + from the right of the list shown by ddiirrss, starting with zero) is at the top. _d_i_r Adds _d_i_r to the directory stack at the top, making it the - new current working directory as if it had been supplied + new current working directory as if it had been supplied as the argument to the ccdd builtin. If the ppuusshhdd command is successful, a ddiirrss is performed as well. - If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r - fails. With the second form, ppuusshhdd returns 0 unless the direc- - tory stack is empty, a non-existent directory stack element is - specified, or the directory change to the specified new current + If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r + fails. With the second form, ppuusshhdd returns 0 unless the direc- + tory stack is empty, a non-existent directory stack element is + specified, or the directory change to the specified new current directory fails. ppwwdd [--LLPP] - Print the absolute pathname of the current working directory. + Print the absolute pathname of the current working directory. The pathname printed contains no symbolic links if the --PP option is supplied or the --oo pphhyyssiiccaall option to the sseett builtin command - is enabled. If the --LL option is used, the pathname printed may - contain symbolic links. The return status is 0 unless an error - occurs while reading the name of the current directory or an + is enabled. If the --LL option is used, the pathname printed may + contain symbolic links. The return status is 0 unless an error + occurs while reading the name of the current directory or an invalid option is supplied. rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--NN _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...] - One line is read from the standard input, or from the file - descriptor _f_d supplied as an argument to the --uu option, and the + One line is read from the standard input, or from the file + descriptor _f_d supplied as an argument to the --uu option, and the first word is assigned to the first _n_a_m_e, the second word to the - second _n_a_m_e, and so on, with leftover words and their interven- - ing separators assigned to the last _n_a_m_e. If there are fewer + second _n_a_m_e, and so on, with leftover words and their interven- + ing separators assigned to the last _n_a_m_e. If there are fewer words read from the input stream than names, the remaining names - are assigned empty values. The characters in IIFFSS are used to - split the line into words. The backslash character (\\) may be - used to remove any special meaning for the next character read - and for line continuation. Options, if supplied, have the fol- + are assigned empty values. The characters in IIFFSS are used to + split the line into words. The backslash character (\\) 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: --aa _a_n_a_m_e The words are assigned to sequential indices of the array @@ -4732,133 +4783,138 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS new values are assigned. Other _n_a_m_e arguments are ignored. --dd _d_e_l_i_m - The first character of _d_e_l_i_m is used to terminate the + The first character of _d_e_l_i_m is used to terminate the input line, rather than newline. --ee If the standard input is coming from a terminal, rreeaaddlliinnee - (see RREEAADDLLIINNEE above) is used to obtain the line. Read- - line uses the current (or default, if line editing was + (see RREEAADDLLIINNEE above) is used to obtain the line. Read- + line uses the current (or default, if line editing was not previously active) editing settings. --ii _t_e_x_t - If rreeaaddlliinnee is being used to read the line, _t_e_x_t is + If rreeaaddlliinnee is being used to read the line, _t_e_x_t is placed into the editing buffer before editing begins. --nn _n_c_h_a_r_s - rreeaadd returns after reading _n_c_h_a_r_s characters rather than - waiting for a complete line of input, but honor a delim- - iter if fewer than _n_c_h_a_r_s characters are read before the + rreeaadd returns after reading _n_c_h_a_r_s characters rather than + waiting for a complete line of input, but honor a delim- + iter if fewer than _n_c_h_a_r_s characters are read before the delimiter. --NN _n_c_h_a_r_s - rreeaadd returns after reading exactly _n_c_h_a_r_s characters - rather than waiting for a complete line of input, unless - EOF is encountered or rreeaadd times out. Delimiter charac- - ters encountered in the input are not treated specially - and do not cause rreeaadd to return until _n_c_h_a_r_s characters + rreeaadd returns after reading exactly _n_c_h_a_r_s characters + rather than waiting for a complete line of input, unless + EOF is encountered or rreeaadd times out. Delimiter charac- + ters encountered in the input are not treated specially + and do not cause rreeaadd to return until _n_c_h_a_r_s characters are read. --pp _p_r_o_m_p_t Display _p_r_o_m_p_t 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. --rr Backslash does not act as an escape character. The back- - slash is considered to be part of the line. In particu- - lar, a backslash-newline pair may not be used as a line + slash is considered to be part of the line. In particu- + lar, a backslash-newline pair may not be used as a line continuation. --ss Silent mode. If input is coming from a terminal, charac- ters are not echoed. --tt _t_i_m_e_o_u_t - Cause rreeaadd to time out and return failure if a complete - line of input is not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_- - _o_u_t may be a decimal number with a fractional portion - following the decimal point. This option is only effec- - tive if rreeaadd is reading input from a terminal, pipe, or - other special file; it has no effect when reading from - regular files. If _t_i_m_e_o_u_t is 0, rreeaadd returns immedi- - ately, without trying to read any data. The exit statis - is 0 if input is available on the specified file descrip- - tor, non-zero otherwise. The exit status is greater than - 128 if the timeout is exceeded. + Cause rreeaadd to time out and return failure if a complete + line of input (or a specified number of characters) is + not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_o_u_t may be a deci- + mal number with a fractional portion following the deci- + mal point. This option is only effective if rreeaadd is + reading input from a terminal, pipe, or other special + file; it has no effect when reading from regular files. + If rreeaadd times out, rreeaadd saves any partial input read into + the specified variable _n_a_m_e. If _t_i_m_e_o_u_t is 0, rreeaadd + returns immediately, without trying to read any data. + The exit status is 0 if input is available on the speci- + fied file descriptor, non-zero otherwise. The exit sta- + tus is greater than 128 if the timeout is exceeded. --uu _f_d Read input from file descriptor _f_d. If no _n_a_m_e_s are supplied, the line read is assigned to the vari- - able RREEPPLLYY. The return code is zero, unless end-of-file is - encountered, rreeaadd times out (in which case the return code is - greater than 128), a variable assignment error (such as assign- - ing to a readonly variable) occurs, or an invalid file descrip- + able RREEPPLLYY. The return code is zero, unless end-of-file is + encountered, rreeaadd times out (in which case the return code is + greater than 128), a variable assignment error (such as assign- + ing to a readonly variable) occurs, or an invalid file descrip- tor is supplied as the argument to --uu. rreeaaddoonnllyy [--aaAAff] [--pp] [_n_a_m_e[=_w_o_r_d] ...] - The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s - may not be changed by subsequent assignment. If the --ff option - is supplied, the functions corresponding to the _n_a_m_e_s are so - marked. The --aa option restricts the variables to indexed - arrays; the --AA option restricts the variables to associative - arrays. If both options are supplied, --AA takes precedence. If - no _n_a_m_e arguments are given, or if the --pp option is supplied, a + The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s + may not be changed by subsequent assignment. If the --ff option + is supplied, the functions corresponding to the _n_a_m_e_s are so + marked. The --aa option restricts the variables to indexed + arrays; the --AA option restricts the variables to associative + arrays. If both options are supplied, --AA takes precedence. If + no _n_a_m_e arguments are given, or if the --pp option is supplied, a list of all readonly names is printed. The other options may be - used to restrict the output to a subset of the set of readonly - names. The --pp option causes output to be displayed in a format - that may be reused as input. If a variable name is followed by - =_w_o_r_d, the value of the variable is set to _w_o_r_d. The return - status is 0 unless an invalid option is encountered, one of the + used to restrict the output to a subset of the set of readonly + names. The --pp option causes output to be displayed in a format + that may be reused as input. If a variable name is followed by + =_w_o_r_d, the value of the variable is set to _w_o_r_d. The return + status is 0 unless an invalid option is encountered, one of the _n_a_m_e_s is not a valid shell variable name, or --ff is supplied with a _n_a_m_e that is not a function. rreettuurrnn [_n] - Causes a function to stop executing and return the value speci- - fied by _n to its caller. If _n is omitted, the return status is - that of the last command executed in the function body. If - rreettuurrnn is used outside a function, but during execution of a - script by the .. (ssoouurrccee) command, it causes the shell to stop - executing that script and return either _n or the exit status of - the last command executed within the script as the exit status - of the script. If _n is supplied, the return value is its least - significant 8 bits. The return status is non-zero if rreettuurrnn is - supplied a non-numeric argument, or is used outside a function - and not during execution of a script by .. or ssoouurrccee. Any com- - mand associated with the RREETTUURRNN trap is executed before execu- + Causes a function to stop executing and return the value speci- + fied by _n to its caller. If _n is omitted, the return status is + that of the last command executed in the function body. If + rreettuurrnn is used outside a function, but during execution of a + script by the .. (ssoouurrccee) command, it causes the shell to stop + executing that script and return either _n or the exit status of + the last command executed within the script as the exit status + of the script. If _n is supplied, the return value is its least + significant 8 bits. The return status is non-zero if rreettuurrnn is + supplied a non-numeric argument, or is used outside a function + and not during execution of a script by .. or ssoouurrccee. Any com- + mand associated with the RREETTUURRNN trap is executed before execu- tion resumes after the function or script. sseett [----aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...] sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...] - Without options, the name and value of each shell variable are + Without options, the name and value of each shell variable are displayed in a format that can be reused as input for setting or resetting the currently-set variables. Read-only variables can- - not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. - The output is sorted according to the current locale. When - options are specified, they set or unset shell attributes. Any - arguments remaining after option processing are treated as val- + not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. + The output is sorted according to the current locale. When + 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 - $$11, $$22, ...... $$_n. Options, if specified, have the following + $$11, $$22, ...... $$_n. Options, if specified, have the following meanings: - --aa Automatically mark variables and functions which are - modified or created for export to the environment of + --aa Automatically mark variables and functions which are + modified or created for export to the environment of subsequent commands. - --bb Report the status of terminated background jobs immedi- + --bb Report the status of terminated background jobs immedi- ately, rather than before the next primary prompt. This is effective only when job control is enabled. - --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a - single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _l_i_s_t, or a _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d - (see SSHHEELLLL GGRRAAMMMMAARR above), exits with a non-zero sta- - tus. The shell does not exit if the command that fails - is part of the command list immediately following a - wwhhiillee or uunnttiill keyword, part of the test following the - iiff or eelliiff reserved words, part of any command executed - in a &&&& or |||| list except the command following the - final &&&& or ||||, any command in a pipeline but the last, - or if the command's return value is being inverted with - !!. If a compound command other than a subshell returns - a non-zero status because a command failed while --ee was - being ignored, the shell does not exit. A trap on EERRRR, + --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a + single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _l_i_s_t, or a _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d + (see SSHHEELLLL GGRRAAMMMMAARR above), exits with a non-zero sta- + tus. The shell does not exit if the command that fails + is part of the command list immediately following a + wwhhiillee or uunnttiill keyword, part of the test following the + iiff or eelliiff reserved words, part of any command executed + in a &&&& or |||| list except the command following the + final &&&& or ||||, any command in a pipeline but the last, + or if the command's return value is being inverted with + !!. If a compound command other than a subshell returns + a non-zero status because a command failed while --ee was + being ignored, the shell does not exit. A trap on EERRRR, if set, is executed before the shell exits. This option applies to the shell environment and each subshell envi- - ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT + ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT above), and may cause subshells to exit before executing - all the commands in the subshell. If a shell function - executes in a context where --ee is being ignored, even if - --ee is set, none of the commands executed within the - function body will be affected by the --ee setting. If a - shell function sets --ee while executing in a context - where --ee is ignored, that setting will not have any - effect until the command containing the function call - completes. + all the commands in the subshell. + + If a compound command or shell function executes in a + context where --ee is being ignored, none of the commands + executed within the compound command or function body + will be affected by the --ee setting, even if --ee is set + and a command returns a failure status. If a compound + command or shell function sets --ee while executing in a + context where --ee is ignored, that setting will not have + any effect until the compound command or the command + containing the function call completes. --ff Disable pathname expansion. --hh Remember the location of commands as they are looked up for execution. This is enabled by default. @@ -5096,6 +5152,10 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS considered quoted. This is the behavior of posix mode through version 4.1. The default bash behavior remains as in previous versions. + ccoommppaatt4422 + If set, bbaasshh does not process the replacement string in + the pattern substitution word expansion using quote + removal. ccoommpplleettee__ffuullllqquuoottee If set, bbaasshh quotes all shell metacharacters in file- names and directory names when performing completion. @@ -5371,55 +5431,58 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS function or a script executed with the .. or ssoouurrccee builtins fin- ishes executing. - If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a sim- - ple command has a non-zero exit status, subject to the following - conditions. The EERRRR trap is not executed if the failed command - is part of the command list immediately following a wwhhiillee or - uunnttiill keyword, part of the test in an _i_f statement, part of a - command executed in a &&&& or |||| list, or if the command's return - value is being inverted via !!. These are the same conditions - obeyed by the eerrrreexxiitt option. - - Signals ignored upon entry to the shell cannot be trapped or - reset. Trapped signals that are not being ignored are reset to + If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a a + pipeline (which may consist of a single simple command), a list, + or a compound command returns a non-zero exit status, subject to + the following conditions. The EERRRR trap is not executed if the + failed command is part of the command list immediately following + a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement, + part of a command executed in a &&&& or |||| list except the command + following the final &&&& or ||||, any command in a pipeline but the + last, or if the command's return value is being inverted using + !!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) + option. + + 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 subshell or subshell environment when - one is created. The return status is false if any _s_i_g_s_p_e_c is + one is created. The return status is false if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true. ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...] - With no options, indicate how each _n_a_m_e would be interpreted if + With no options, indicate how each _n_a_m_e would be interpreted if used as a command name. If the --tt option is used, ttyyppee prints a - string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or - _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function, - builtin, or disk file, respectively. If the _n_a_m_e is not found, - then nothing is printed, and an exit status of false is - returned. If the --pp option is used, ttyyppee either returns the + string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or + _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function, + builtin, or disk file, respectively. If the _n_a_m_e is not found, + then nothing is printed, and an exit status of false is + returned. If the --pp option is used, ttyyppee either returns the name of the disk file that would be executed if _n_a_m_e were speci- fied as a command name, or nothing if ``type -t name'' would not - return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e, + return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e, even if ``type -t name'' would not return _f_i_l_e. If a command is hashed, --pp and --PP print the hashed value, which is not necessar- - ily the file that appears first in PPAATTHH. If the --aa option is - used, ttyyppee prints all of the places that contain an executable + ily the file that appears first in PPAATTHH. If the --aa option is + used, ttyyppee prints all of the places that contain an executable named _n_a_m_e. This includes aliases and functions, if and only if the --pp option is not also used. The table of hashed commands is - not consulted when using --aa. The --ff option suppresses shell + not consulted when using --aa. The --ff option suppresses shell function lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if all of the arguments are found, false if any are not found. uulliimmiitt [--HHSSTTaabbccddeeffiillmmnnppqqrrssttuuvvxx [_l_i_m_i_t]] - Provides control over the resources available to the shell and - to processes started by it, on systems that allow such control. + Provides control over the resources available to the shell and + to processes started by it, on systems that allow such control. The --HH and --SS options specify that the hard or soft limit is set - for the given resource. A hard limit cannot be increased by a - non-root user once it is set; a soft limit may be increased up - to the value of the hard limit. If neither --HH nor --SS is speci- + for the given resource. A hard limit cannot be increased by a + non-root user once it is set; a soft limit may be increased up + to the value of the hard limit. If neither --HH nor --SS is speci- fied, both the soft and hard limits are set. The value of _l_i_m_i_t can be a number in the unit specified for the resource or one of the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the - current hard limit, the current soft limit, and no limit, - respectively. If _l_i_m_i_t is omitted, the current value of the - soft limit of the resource is printed, unless the --HH option is + current hard limit, the current soft limit, and no limit, + respectively. If _l_i_m_i_t is omitted, the current value of the + soft limit of the resource is printed, unless the --HH option is given. When more than one resource is specified, the limit name and unit are printed before the value. Other options are inter- preted as follows: @@ -5428,11 +5491,11 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS --cc The maximum size of core files created --dd The maximum size of a process's data segment --ee The maximum scheduling priority ("nice") - --ff The maximum size of files written by the shell and its + --ff The maximum size of files written by the shell and its children --ii The maximum number of pending signals --ll The maximum size that may be locked into memory - --mm The maximum resident set size (many systems do not honor + --mm The maximum resident set size (many systems do not honor this limit) --nn The maximum number of open file descriptors (most systems do not allow this value to be set) @@ -5441,65 +5504,66 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS --rr The maximum real-time scheduling priority --ss The maximum stack size --tt The maximum amount of cpu time in seconds - --uu The maximum number of processes available to a single + --uu The maximum number of processes available to a single user - --vv The maximum amount of virtual memory available to the + --vv The maximum amount of virtual memory available to the shell and, on some systems, to its children --xx The maximum number of file locks --TT The maximum number of threads - If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the - new value of the specified resource. If no option is given, - then --ff is assumed. Values are in 1024-byte increments, except - for --tt, which is in seconds; --pp, which is in units of 512-byte - blocks; and --TT, --bb, --nn, and --uu, which are unscaled values. The - return status is 0 unless an invalid option or argument is sup- + If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the + new value of the specified resource. If no option is given, + then --ff is assumed. Values are in 1024-byte increments, except + for --tt, which is in seconds; --pp, which is in units of 512-byte + blocks; and --TT, --bb, --nn, and --uu, which are unscaled values. The + return status is 0 unless an invalid option or argument is sup- plied, or an error occurs while setting a new limit. uummaasskk [--pp] [--SS] [_m_o_d_e] The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with - a digit, it is interpreted as an octal number; otherwise it is - interpreted as a symbolic mode mask similar to that accepted by - _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is - printed. The --SS option causes the mask to be printed in sym- - bolic form; the default output is an octal number. If the --pp + a digit, it is interpreted as an octal number; otherwise it is + interpreted as a symbolic mode mask similar to that accepted by + _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is + printed. The --SS option causes the mask to be printed in sym- + bolic form; the default output is an octal number. If the --pp option is supplied, and _m_o_d_e is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode - was successfully changed or if no _m_o_d_e argument was supplied, + was successfully changed or if no _m_o_d_e argument was supplied, and false otherwise. uunnaalliiaass [-aa] [_n_a_m_e ...] - Remove each _n_a_m_e from the list of defined aliases. If --aa is - supplied, all alias definitions are removed. The return value + Remove each _n_a_m_e from the list of defined aliases. If --aa is + supplied, all alias definitions are removed. The return value is true unless a supplied _n_a_m_e is not a defined alias. uunnsseett [-ffvv] [-nn] [_n_a_m_e ...] - For each _n_a_m_e, remove the corresponding variable or function. + For each _n_a_m_e, remove the corresponding variable or function. If the --vv option is given, each _n_a_m_e refers to a shell variable, - and that variable is removed. Read-only variables may not be - unset. If --ff is specified, each _n_a_m_e refers to a shell func- - tion, and the function definition is removed. If the --nn option - is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute, - _n_a_m_e will be unset rather than the variable it references. --nn - has no effect if the --ff option is supplied. If no options are - supplied, each _n_a_m_e refers to a variable; if there is no vari- - able by that name, any function with that name is unset. Each - unset variable or function is removed from the environment - passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN-- + and that variable is removed. Read-only variables may not be + unset. If --ff is specified, each _n_a_m_e refers to a shell func- + tion, and the function definition is removed. If the --nn option + is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute, + _n_a_m_e will be unset rather than the variable it references. --nn + has no effect if the --ff option is supplied. If no options are + supplied, each _n_a_m_e refers to a variable; if there is no vari- + able by that name, any function with that name is unset. Each + unset variable or function is removed from the environment + passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN-- DDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they lose their special properties, even if they are sub- sequently reset. The exit status is true unless a _n_a_m_e is read- only. - wwaaiitt [_n _._._.] - Wait for each specified process and return its termination sta- - tus. Each _n 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 _n is not given, all currently active child pro- - cesses are waited for, and the return status is zero. If _n - 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. + wwaaiitt [----nn] [_n _._._.] + Wait for each specified process and return its termination sta- + tus. Each _n 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 _n is not given, all currently active child pro- + cesses are waited for, and the return status is zero. If the + ----nn option is supplied, wwaaiitt waits for any job to terminate and + returns its exit status. If _n 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. RREESSTTRRIICCTTEEDD SSHHEELLLL If bbaasshh is started with the name rrbbaasshh, or the --rr option is supplied at @@ -5629,4 +5693,4 @@ BBUUGGSS -GNU Bash 4.2 2012 July 14 BASH(1) +GNU Bash 4.2 2013 January 8 BASH(1) @@ -5,12 +5,12 @@ .\" Case Western Reserve University .\" chet@po.cwru.edu .\" -.\" Last Change: Sat Jan 5 17:38:02 EST 2013 +.\" Last Change: Tue Jan 8 15:51:04 EST 2013 .\" .\" bash_builtins, strip all but Built-Ins section .if \n(zZ=1 .ig zZ .if \n(zY=1 .ig zY -.TH BASH 1 "2013 January 5" "GNU Bash 4.2" +.TH BASH 1 "2013 January 8" "GNU Bash 4.2" .\" .\" There's some problem with having a `@' .\" in a tagged paragraph with the BSD man macros. @@ -1938,8 +1938,10 @@ The minimum value is system-dependent. .TP .B COLUMNS Used by the \fBselect\fP compound command to determine the terminal width -when printing selection lists. Automatically set in an interactive shell -upon receipt of a +when printing selection lists. +Automatically set if the +.B checkwinsize +option is enabled or in an interactive shell upon receipt of a .SM .BR SIGWINCH . .TP @@ -2180,8 +2182,10 @@ This variable determines the locale category used for number formatting. .TP .B LINES Used by the \fBselect\fP compound command to determine the column length -for printing selection lists. Automatically set by an interactive shell -upon receipt of a +for printing selection lists. +Automatically set if the +.B checkwinsize +option is enabled or in an interactive shell upon receipt of a .SM .BR SIGWINCH . .TP diff --git a/doc/bash.html b/doc/bash.html index 2d841683..e27e0054 100644 --- a/doc/bash.html +++ b/doc/bash.html @@ -3,7 +3,7 @@ </HEAD> <BODY><TABLE WIDTH=100%> <TR> -<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2012 July 14<TH ALIGN=RIGHT width=33%>BASH(1) +<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2013 January 8<TH ALIGN=RIGHT width=33%>BASH(1) </TR> </TABLE> <BR><A HREF="#index">Index</A> @@ -42,7 +42,7 @@ bash - GNU Bourne-Again SHell <H3>COPYRIGHT</H3> -Bash is Copyright © 1989-2012 by the Free Software Foundation, Inc. +Bash is Copyright © 1989-2013 by the Free Software Foundation, Inc. <A NAME="lbAE"> </A> <H3>DESCRIPTION</H3> @@ -928,6 +928,7 @@ lexicographically using the current locale. 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>. +The <B>=</B> operator is equivalent to <B>==</B>. If the shell option <B>nocasematch</B> @@ -1209,6 +1210,8 @@ The <B>wait</B> builtin command may be used to wait for the coprocess to terminate. <P> +Since the coprocess is created as an asynchronous command, +the <B>coproc</B> command always returns success. The return status of a coprocess is the exit status of <I>command</I>. <A NAME="lbAQ"> </A> <H4>Shell Function Definitions</H4> @@ -2383,6 +2386,24 @@ below. <DL COMPACT> +<DT><B>BASH_COMPAT</B> + +<DD> +The value is used to set the shell's compatibility level. +See the description of the <B>shopt builtin below under +SHELL BUILTIN COMMANDS</B> for a description of the various compatibility +levels and their effects. +The value may be a decimal number (e.g., 4.2) or an integer (e.g., 42) +corresponding to the desired compatibility level. +If <B>BASH_COMPAT</B> is unset or set to the empty string, the compatibility +level is set to the default for the current version. +If <B>BASH_COMPAT</B> is set to a value that is not one of the valid +compatibility levels, the shell prints an error message and sets the +compatibility level to the default for the current version. +The valid compatibility levels correspond to the compatibility options +accepted by the <B>shopt</B> builtin described below (for example, +<B>compat42</B> means that 4.2 and 42 are valid values). +The current version is also a valid value. <DT><B>BASH_ENV</B> <DD> @@ -2442,12 +2463,23 @@ command. A sample value is <TT>".:~:/usr"</TT>. +<DT><B>CHILD_MAX</B> + +<DD> +Set the number of exited child status values for the shell to remember. +Bash will not allow this value to be decreased below a Posix-mandated +minimum, and there is a maximum value (currently 8192) that this may +not exceed. +The minimum value is system-dependent. <DT><B>COLUMNS</B> <DD> Used by the <B>select</B> compound command to determine the terminal width -when printing selection lists. Automatically set in an interactive shell -upon receipt of a +when printing selection lists. +Automatically set if the +<B>checkwinsize</B> + +option is enabled or in an interactive shell upon receipt of a <FONT SIZE=-1><B>SIGWINCH</B>. </FONT> @@ -2749,8 +2781,11 @@ This variable determines the locale category used for number formatting. <DD> Used by the <B>select</B> compound command to determine the column length -for printing selection lists. Automatically set by an interactive shell -upon receipt of a +for printing selection lists. +Automatically set if the +<B>checkwinsize</B> + +option is enabled or in an interactive shell upon receipt of a <FONT SIZE=-1><B>SIGWINCH</B>. </FONT> @@ -2974,7 +3009,7 @@ 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>. +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. @@ -3132,6 +3167,13 @@ This syntax is also accepted by the builtin. Individual array elements may be assigned to using the <I>name</I>[<I>subscript</I>]=<I>value</I> syntax introduced above. +When assigning to an indexed array, if +<I>name</I> + +is subscripted by a negative number, that number is +interpreted as relative to one greater than the maximum index of +<I>name</I>, so negative indices count back from the end of the +array, and an index of -1 references the last element. <P> Any element of an array may be referenced using @@ -3166,9 +3208,10 @@ If the <I>subscript</I> used to reference an element of an indexed array -evaluates to a number less than zero, it is used as -an offset from one greater than the array's maximum index (so a subcript -of -1 refers to the last element of the array). +evaluates to a number less than zero, it is +interpreted as relative to one greater than the maximum index of the array, +so negative indices count back from the end of the +array, and an index of -1 references the last element. <P> An array variable is considered set if a subscript has been assigned a @@ -3180,6 +3223,7 @@ The builtin is used to destroy arrays. <B>unset</B> <I>name</I>[<I>subscript</I>] destroys the array element at index <I>subscript</I>. +Negative subscripts to indexed arrays are interpreted as described above. Care must be taken to avoid unwanted side effects caused by pathname expansion. <B>unset</B> <I>name</I>, where <I>name</I> is an array, or @@ -3299,12 +3343,14 @@ 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 +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. +lexicographically between <I>x</I> and <I>y</I>, inclusive, +using the default C locale. +Note that both <I>x</I> and <I>y</I> must be of the same type. When the increment is supplied, it is used as the difference between each term. The default increment is 1 or -1 as appropriate. <P> @@ -3668,6 +3714,13 @@ or <B>@</B>, the value substituted is the number of elements in the array. +If +<I>parameter</I> + +is an indexed array name subscripted by a negative number, that number is +interpreted as relative to one greater than the maximum index of +<I>parameter</I>, so negative indices count back from the end of the +array, and an index of -1 references the last element. <DT>${<I>parameter</I><B>#</B><I>word</I>}<DD> <DT>${<I>parameter</I><B>##</B><I>word</I>}<DD> @@ -4217,7 +4270,7 @@ Matches any single character. 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, +any character that falls 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> @@ -5405,6 +5458,13 @@ True if the shell variable <I>varname</I> is set (has been assigned a value). +<DT><B>-R </B><I>varname</I> + +<DD> +True if the shell variable +<I>varname</I> + +is set and is a name reference. <DT><B>-z </B><I>string</I> <DD> @@ -5425,6 +5485,8 @@ is non-zero. True if the strings are equal. <B>=</B> should be used with the <B>test</B> command for POSIX conformance. +When used with the <B>[[</B> command, this performs pattern matching as +described above (<B>Compound Commands</B>). <DT><I>string1</I> <B>!=</B> <I>string2</I><DD> True if the strings are not equal. <DT><I>string1</I> <B><</B> <I>string2</I><DD> @@ -6842,8 +6904,12 @@ 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. +Set the maximum number of history entries saved in the history list. +If set to zero, any existing history entries are deleted and no new entries +are saved. +If set to a value less than zero, the number of history entries is not +limited. +By default, the number of history entries is not limited. <DT><B>horizontal-scroll-mode (Off)</B> <DD> @@ -6970,6 +7036,12 @@ 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>show-mode-in-prompt (Off)</B> + +<DD> +If set to <B>On</B>, add a character to the beginning of the prompt +indicating the editing mode: emacs (@), vi command (:) or vi +insertion (+). <DT><B>skip-completed-text (Off)</B> <DD> @@ -10679,10 +10751,13 @@ causes <B>printf</B> to output the corresponding <DD> causes <B>printf</B> to output the date-time string resulting from using -<I>datefmt</I> as a format string for <I>strftime</I>(3). The corresponding -<I>argument</I> is an integer representing the number of seconds since the -epoch. Two special argument values may be used: -1 represents the current +<I>datefmt</I> as a format string for <I>strftime</I>(3). +The corresponding <I>argument</I> is an integer representing the number of +seconds since the epoch. +Two special argument values may be used: -1 represents the current time, and -2 represents the time the shell was invoked. +If no argument is specified, conversion behaves as if -1 had been given. +This is an exception to the usual <B>printf</B> behavior. </DL> <P> @@ -10886,14 +10961,17 @@ not echoed. <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. +input (or a specified number of characters) +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 <B>read</B> times out, <B>read</B> saves any partial input read into +the specified variable <I>name</I>. If <I>timeout</I> is 0, <B>read</B> returns immediately, without trying to -read any data. The exit statis is 0 if input is available on +read any data. The exit status is 0 if input is available on the specified file descriptor, non-zero otherwise. The exit status is greater than 128 if the timeout is exceeded. <DT><B>-u </B><I>fd</I> @@ -11085,12 +11163,18 @@ separately (see </FONT> above), and may cause subshells to exit before executing all the commands in the subshell. -If a shell function executes in a context where <B>-e</B> is being ignored, -even if <B>-e</B> is set, none of the commands executed within the function -body will be affected by the <B>-e</B> setting. -If a shell function sets <B>-e</B> while executing in a context where -<B>-e</B> is ignored, that setting will not have any effect until the -command containing the function call completes. +<P> + + +If a compound command or shell function executes in a context +where <B>-e</B> is being ignored, +none of the commands executed within the compound command or function body +will be affected by the <B>-e</B> setting, even if <B>-e</B> is set +and a command returns a failure status. +If a compound command or shell function sets <B>-e</B> while executing in +a context where <B>-e</B> is ignored, that setting will not have any +effect until the compound command or the command containing the function +call completes. <DT><B>-f</B> <DD> @@ -11695,6 +11779,14 @@ parameter expansion as a special character. The single quotes must match (an even number) and the characters between the single quotes are considered quoted. This is the behavior of posix mode through version 4.1. The default bash behavior remains as in previous versions. +<DT><B>compat42</B> + +<DD> +If set, +<B>bash</B> + +does not process the replacement string in the pattern substitution word +expansion using quote removal. <DT><B>complete_fullquote</B> <DD> @@ -12313,7 +12405,10 @@ is the command <I>arg</I> -is executed whenever a simple command has a non-zero exit status, +is executed whenever a +a pipeline (which may consist of a single simple +command), a list, or a compound command returns a +non-zero exit status, subject to the following conditions. The <FONT SIZE=-1><B>ERR</B> @@ -12336,11 +12431,13 @@ statement, part of a command executed in a or <B>||</B> -list, or if the command's return value is -being inverted via +list except the command following the final <B>&&</B> or <B>||</B>, +any command in a pipeline but the last, +or if the command's return value is +being inverted using <B>!</B>. -These are the same conditions obeyed by the <B>errexit</B> option. +These are the same conditions obeyed by the <B>errexit</B> (<B>-e</B>) option. <P> @@ -12708,7 +12805,7 @@ subsequently reset. The exit status is true unless a <I>name</I> is readonly. -<DT><B>wait</B> [<I>n ...</I>]<DD> +<DT><B>wait</B> [<B>--n</B>] [<I>n ...</I>]<DD> Wait for each specified process and return its termination status. Each <I>n</I> @@ -12719,7 +12816,10 @@ 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 +are waited for, and the return status is zero. +If the <B>--n</B> option is supplied, <B>wait</B> waits for any job to +terminate and returns its exit status. +If <I>n</I> specifies a non-existent process or job, the return status is @@ -13011,7 +13111,7 @@ There may be only one active coprocess at a time. <HR> <TABLE WIDTH=100%> <TR> -<TH ALIGN=LEFT width=33%>GNU Bash 4.2<TH ALIGN=CENTER width=33%>2012 July 14<TH ALIGN=RIGHT width=33%>BASH(1) +<TH ALIGN=LEFT width=33%>GNU Bash 4.2<TH ALIGN=CENTER width=33%>2013 January 8<TH ALIGN=RIGHT width=33%>BASH(1) </TR> </TABLE> <HR> @@ -13117,6 +13217,6 @@ There may be only one active coprocess at a time. </DL> <HR> This document was created by man2html from bash.1.<BR> -Time: 16 July 2012 16:12:38 EDT +Time: 11 January 2013 16:34:33 EST </BODY> </HTML> diff --git a/doc/bash.pdf b/doc/bash.pdf Binary files differindex 7cabc2d2..b51955e8 100644 --- a/doc/bash.pdf +++ b/doc/bash.pdf diff --git a/doc/bash.ps b/doc/bash.ps index 0311ac02..7c8dbab8 100644 --- a/doc/bash.ps +++ b/doc/bash.ps @@ -1,13 +1,13 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.19.2 -%%CreationDate: Fri Dec 14 09:30:37 2012 +%%CreationDate: Fri Jan 11 16:34:25 2013 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic %%+ font Courier %%+ font Symbol %%DocumentSuppliedResources: procset grops 1.19 2 -%%Pages: 74 +%%Pages: 75 %%PageOrder: Ascend %%DocumentMedia: Default 595 842 0 () () %%Orientation: Portrait @@ -238,7 +238,7 @@ BP (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] [command_string | \214le])2.5 E F1(COPYRIGHT)72 141.6 Q F0 -(Bash is Cop)108 153.6 Q(yright \251 1989-2012 by the Free Softw)-.1 E +(Bash is Cop)108 153.6 Q(yright \251 1989-2013 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 @@ -328,8 +328,8 @@ F .474(xtended deb)-.15 F(ug-)-.2 E 1.598(instead of the standard personal initialization \214le)4.278 F F3 (~/.bashr)3.599 E(c)-.37 E F0 1.599(if the)4.409 F(shell is interacti) 144 698.4 Q .3 -.15(ve \()-.25 H(see).15 E F4(INV)2.5 E(OCA)-.405 E -(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash 4.2)72 768 Q(2012 No) -136.385 E -.15(ve)-.15 G(mber 24).15 E(1)190.545 E 0 Cg EP +(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(1)198.45 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup BP @@ -447,8 +447,8 @@ F(ariable)-.25 E F3 -.27(BA)108 708 S(SH_ENV).27 E F0 1.011(in the en) 1.01(alue as the)-.25 F(name of a \214le to read and e)108 720 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(GNU Bash 4.2)72 768 Q(2012 No)136.385 -E -.15(ve)-.15 G(mber 24).15 E(2)190.545 E 0 Cg EP +-.25 E -.15(xe)-.15 G(cuted:).15 E(GNU Bash 4.2)72 768 Q(2013 January 8) +144.29 E(2)198.45 E 0 Cg EP %%Page: 3 3 %%BeginPageSetup BP @@ -580,8 +580,7 @@ F .388(wed by)-.25 F F3(blank)2.888 E F0 .388(-separated w)B .388 (simple command)2.676 F F0 .175(is its e)2.676 F .175 (xit status, or 128+)-.15 F F4(n)A F0 .175 (if the command is terminated by signal)3.508 F F4(n)2.675 E F0(.).24 E -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(3) -190.545 E 0 Cg EP +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(3)198.45 E 0 Cg EP %%Page: 4 4 %%BeginPageSetup BP @@ -689,8 +688,7 @@ Q F2 1.054(compound command)3.554 F F0 1.054(is one of the follo)3.554 F -3.553 F 1.026(separated from the rest of the command by one or more ne) 108 698.4 R 1.026(wlines, and may be follo)-.25 F 1.027(wed by a ne)-.25 F 1.027(wline in)-.25 F(place of a semicolon.)108 710.4 Q(GNU Bash 4.2) -72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(4)190.545 E 0 Cg -EP +72 768 Q(2013 January 8)144.29 E(4)198.45 E 0 Cg EP %%Page: 5 5 %%BeginPageSetup BP @@ -820,8 +818,8 @@ E F0(th parenthesized sube)A(xpression.)-.15 E .786 2.52 E F1 -.2(ex)144 704.4 S(pr).2 E(ession1)-.37 E F3(||)2.5 E F1 -.2 (ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 716.4 S(ue if either).35 E F1 -.2(ex)2.5 G(pr).2 E(ession1)-.37 E F0(or)2.5 E F1 -.2(ex)2.5 G(pr) -.2 E(ession2)-.37 E F0(is true.)2.52 E(GNU Bash 4.2)72 768 Q(2012 No) -136.385 E -.15(ve)-.15 G(mber 24).15 E(5)190.545 E 0 Cg EP +.2 E(ession2)-.37 E F0(is true.)2.52 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(5)198.45 E 0 Cg EP %%Page: 6 6 %%BeginPageSetup BP @@ -976,8 +974,8 @@ F .204(The e)5.204 F .204(xit status of the)-.15 F F1(while)2.704 E F0 (and)2.704 E F1(until)2.704 E F0 .205(commands is the e)2.704 F .205 (xit status of the last command)-.15 F -.15(exe)144 700.8 S(cuted in).15 E F2(list-2)2.5 E F0 2.5(,o)C 2.5(rz)-2.5 G(ero if none w)-2.5 E(as e) --.1 E -.15(xe)-.15 G(cuted.).15 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 -E -.15(ve)-.15 G(mber 24).15 E(6)190.545 E 0 Cg EP +-.1 E -.15(xe)-.15 G(cuted.).15 E(GNU Bash 4.2)72 768 Q(2013 January 8) +144.29 E(6)198.45 E 0 Cg EP %%Page: 7 7 %%BeginPageSetup BP @@ -1111,8 +1109,8 @@ F0 1.337(option is on by def)3.837 F 1.337(ault in)-.1 F(interacti)108 -.15(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E (There are three quoting mechanisms: the)108 724.8 Q F2(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(GNU Bash 4.2)72 768 Q(2012 No) -136.385 E -.15(ve)-.15 G(mber 24).15 E(7)190.545 E 0 Cg EP +(ingle quotes, and double quotes.)-2.5 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(7)198.45 E 0 Cg EP %%Page: 8 8 %%BeginPageSetup BP @@ -1215,8 +1213,8 @@ F(may be unset only by using the)108 686.4 Q F1(unset)2.5 E F0 -.2(bu) 2.5 G(iltin command \(see).2 E F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS) -.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 703.2 Q F2(variable)2.79 E F0 (may be assigned to by a statement of the form)2.68 E F2(name)144 720 Q -F0(=[)A F2(value)A F0(])A(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15 -(ve)-.15 G(mber 24).15 E(8)190.545 E 0 Cg EP +F0(=[)A F2(value)A F0(])A(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E +(8)198.45 E 0 Cg EP %%Page: 9 9 %%BeginPageSetup BP @@ -1369,7 +1367,7 @@ F 2.614(ord. That)-.1 F .114(is, ")2.614 F F3($@)A F0 2.614("i)C 2.614 -.15 F .15(with the be)144 720 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(GNU Bash 4.2)72 -768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(9)190.545 E 0 Cg EP +768 Q(2013 January 8)144.29 E(9)198.45 E 0 Cg EP %%Page: 10 10 %%BeginPageSetup BP @@ -1487,8 +1485,7 @@ E F0 1.242(The command currently being e)144 705.6 R -.15(xe)-.15 G (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 717.6 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(10)185.545 E 0 Cg EP +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(10)193.45 E 0 Cg EP %%Page: 11 11 %%BeginPageSetup BP @@ -1595,8 +1592,8 @@ F0 4.052(,f)C 1.552(or menu completion.)-4.052 F 1.552(This v)6.552 F (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.428 E(ogrammable)-.18 E(Completion)144 -714 Q F0(belo)2.5 E(w\).)-.25 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E --.15(ve)-.15 G(mber 24).15 E(11)185.545 E 0 Cg EP +714 Q F0(belo)2.5 E(w\).)-.25 E(GNU Bash 4.2)72 768 Q(2013 January 8) +144.29 E(11)193.45 E 0 Cg EP %%Page: 12 12 %%BeginPageSetup BP @@ -1706,8 +1703,8 @@ G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(MA)108 678 Q es the system type on which)144 690 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 702 Q F4 (cpu-company-system)2.5 E F0 2.5(format. The)2.5 F(def)2.5 E -(ault is system-dependent.)-.1 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E --.15(ve)-.15 G(mber 24).15 E(12)185.545 E 0 Cg EP +(ault is system-dependent.)-.1 E(GNU Bash 4.2)72 768 Q(2013 January 8) +144.29 E(12)193.45 E 0 Cg EP %%Page: 13 13 %%BeginPageSetup BP @@ -1793,4174 +1790,4200 @@ E(.)-.65 E .993(The follo)108 628.8 R .993(wing v)-.25 F .994 (ariables are used by the shell.)-.25 F .994(In some cases,)5.994 F F1 (bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .994 (alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 640.8 -Q -.65(w.)-.25 G F1 -.3(BA)108 657.6 S(SH_ENV).3 E F0 .506 -(If this parameter is set when)144 669.6 R F1(bash)3.006 E F0 .506(is e) -3.006 F -.15(xe)-.15 G .505(cuting a shell script, its v).15 F .505 -(alue is interpreted as a \214lename)-.25 F .354 -(containing commands to initialize the shell, as in)144 681.6 R F5 -(~/.bashr)2.855 E(c)-.37 E F0 5.355(.T).31 G .355(he v)-5.355 F .355 -(alue of)-.25 F F2 -.27(BA)2.855 G(SH_ENV).27 E F0 .355(is subjected) -2.605 F .525(to parameter e)144 693.6 R .525 -(xpansion, command substitution, and arithmetic e)-.15 F .525 -(xpansion before being interpreted)-.15 F(as a \214lename.)144 705.6 Q -F2 -.666(PA)5 G(TH)-.189 E F0 -(is not used to search for the resultant \214lename.)2.25 E -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(13)185.545 E 0 Cg EP +Q -.65(w.)-.25 G F1 -.3(BA)108 657.6 S(SH_COMP).3 E -.95(AT)-.74 G F0 +1.054(The v)144 669.6 R 1.053(alue is used to set the shell')-.25 F +3.553(sc)-.55 G 1.053(ompatibility le)-3.553 F -.15(ve)-.25 G 3.553 +(l. See).15 F 1.053(the description of the)3.553 F F1 1.053(shopt b) +3.553 F(uiltin)-.2 E(belo)144 681.6 Q 2.925(wu)-.1 G .425(nder SHELL B) +-2.925 F(UIL)-.1 E .425(TIN COMMANDS)-.92 F -.25(fo)5.425 G -5.424 2.925 +(ra d).25 H .426(escription of the v)-2.925 F .426(arious compatibility) +-.1 F(le)144 693.6 Q -.1(ve)-.15 G .133(ls and their effects.).1 F .133 +(The v)5.133 F .133(alue may be a decimal number \(e.g)-.1 F .133 +(., 4.2\) or an integer \(e.g)-.15 F .132(., 42\))-.15 F(corr)144 705.6 +Q 1.111(esponding to the desir)-.18 F 1.111(ed compatibility le)-.18 F +-.1(ve)-.15 G 3.611(l. If).1 F -.3(BA)3.612 G(SH_COMP).3 E 3.012 -.95 +(AT i)-.74 H 3.612(su).95 G 1.112(nset or set to the)-3.612 F 3.325 +(empty string, the compatibility le)144 717.6 R -.1(ve)-.15 G 5.825(li) +.1 G 5.825(ss)-5.825 G 3.325(et to the default f)-5.825 F 3.325 +(or the curr)-.25 F 3.325(ent v)-.18 F 5.825(ersion. If)-.1 F -.3(BA)144 +729.6 S(SH_COMP).3 E 2.93 -.95(AT i)-.74 H 3.53(ss).95 G 1.03(et to a v) +-3.53 F 1.031(alue that is not one of the v)-.1 F 1.031 +(alid compatibility le)-.1 F -.1(ve)-.15 G 1.031(ls, the shell).1 F F0 +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(13)193.45 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 -.3(BA)108 84 S(SH_XTRA).3 E(CEFD)-.55 E F0 -.48(If set to an inte)144 96 R .48(ger corresponding to a v)-.15 F .481 -(alid \214le descriptor)-.25 F(,)-.4 E F1(bash)2.981 E F0 .481 -(will write the trace output gener)2.981 F(-)-.2 E 3.114(ated when)144 -108 R/F2 10/Courier@0 SF 3.114(set -x)5.614 F F0 3.114 -(is enabled to that \214le descriptor)5.614 F 8.114(.T)-.55 G 3.114 -(he \214le descriptor is closed when)-8.114 F/F3 9/Times-Bold@0 SF -.27 -(BA)144 120 S(SH_XTRA).27 E(CEFD)-.495 E F0 .138 -(is unset or assigned a ne)2.388 F 2.638(wv)-.25 G 2.638 -(alue. Unsetting)-2.888 F F3 -.27(BA)2.638 G(SH_XTRA).27 E(CEFD)-.495 E -F0 .138(or assigning it)2.388 F 2.531(the empty string causes the trace\ - output to be sent to the standard error)144 132 R 7.53(.N)-.55 G 2.53 -(ote that setting)-7.53 F F3 -.27(BA)144 144 S(SH_XTRA).27 E(CEFD)-.495 -E F0 .74(to 2 \(the standard error \214le descriptor\) and then unsetti\ -ng it will result in the)2.99 F(standard error being closed.)144 156 Q -F1(CDP)108 168 Q -.95(AT)-.74 G(H).95 E F0 1.248 -(The search path for the)144 180 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 192 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 F2(".:~:/usr")144 204 Q F0(.)A F1(CHILD_MAX)108 216 Q F0 -.997(Set the number of e)144 228 R .997(xited child status v)-.15 F .997 +-.35 E/F1 10/Times-Bold@0 SF .06(prints an err)144 84 R .06 +(or message and sets the compatibility le)-.18 F -.1(ve)-.15 G 2.56(lt) +.1 G 2.56(ot)-2.56 G .06(he default f)-2.56 F .06(or the curr)-.25 F .06 +(ent v)-.18 F(ersion.)-.1 E .543(The v)144 96 R .543 +(alid compatibility le)-.1 F -.1(ve)-.15 G .543(ls corr).1 F .543 +(espond to the compatibility options accepted by the shopt)-.18 F -.2 +(bu)144 108 S .138(iltin described belo).2 F 2.638(w\()-.1 G -.25(fo) +-2.638 G 2.638(re).25 G .138(xample, compat42 means that 4.2 and 42 ar) +-2.638 F 2.638(ev)-.18 G .137(alid v)-2.738 F 2.637(alues\). The)-.1 F +(curr)144 120 Q(ent v)-.18 E(ersion is also a v)-.1 E(alid v)-.1 E +(alue.)-.1 E -.3(BA)108 132 S(SH_ENV).3 E F0 .505 +(If this parameter is set when)144 144 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 156 R/F2 10 +/Times-Italic@0 SF(~/.bashr)2.855 E(c)-.37 E F0 5.354(.T).31 G .354 +(he v)-5.354 F .354(alue of)-.25 F/F3 9/Times-Bold@0 SF -.27(BA)2.854 G +(SH_ENV).27 E F0 .354(is subjected)2.604 F .525(to parameter e)144 168 R +.525(xpansion, command substitution, and arithmetic e)-.15 F .525 +(xpansion before being interpreted)-.15 F(as a \214lename.)144 180 Q F3 +-.666(PA)5 G(TH)-.189 E F0 +(is not used to search for the resultant \214lename.)2.25 E F1 -.3(BA) +108 192 S(SH_XTRA).3 E(CEFD)-.55 E F0 .481(If set to an inte)144 204 R +.481(ger corresponding to a v)-.15 F .481(alid \214le descriptor)-.25 F +(,)-.4 E F1(bash)2.98 E F0 .48(will write the trace output gener)2.98 F +(-)-.2 E 3.114(ated when)144 216 R/F4 10/Courier@0 SF 3.114(set -x)5.614 +F F0 3.114(is enabled to that \214le descriptor)5.614 F 8.114(.T)-.55 G +3.114(he \214le descriptor is closed when)-8.114 F F3 -.27(BA)144 228 S +(SH_XTRA).27 E(CEFD)-.495 E F0 .138(is unset or assigned a ne)2.388 F +2.638(wv)-.25 G 2.638(alue. Unsetting)-2.888 F F3 -.27(BA)2.638 G +(SH_XTRA).27 E(CEFD)-.495 E F0 .138(or assigning it)2.388 F 2.531(the e\ +mpty string causes the trace output to be sent to the standard error)144 +240 R 7.531(.N)-.55 G 2.531(ote that setting)-7.531 F F3 -.27(BA)144 252 +S(SH_XTRA).27 E(CEFD)-.495 E F0 .74(to 2 \(the standard error \214le de\ +scriptor\) and then unsetting it will result in the)2.991 F +(standard error being closed.)144 264 Q F1(CDP)108 276 Q -.95(AT)-.74 G +(H).95 E F0 1.247(The search path for the)144 288 R F1(cd)3.747 E F0 +3.747(command. This)3.747 F 1.248 +(is a colon-separated list of directories in which the)3.747 F 3.796 +(shell looks for destination directories speci\214ed by the)144 300 R F1 +(cd)6.295 E F0 6.295(command. A)6.295 F 3.795(sample v)6.295 F 3.795 +(alue is)-.25 F F4(".:~:/usr")144 312 Q F0(.)A F1(CHILD_MAX)108 324 Q F0 +.997(Set the number of e)144 336 R .997(xited child status v)-.15 F .997 (alues for the shell to remember)-.25 F 5.997(.B)-.55 G .997 -(ash will not allo)-5.997 F 3.497(wt)-.25 G(his)-3.497 E -.25(va)144 240 +(ash will not allo)-5.997 F 3.498(wt)-.25 G(his)-3.498 E -.25(va)144 348 S .11(lue to be decreased belo).25 F 2.61(waP)-.25 G .11 (osix-mandated minimum, and there is a maximum v)-2.61 F .11 -(alue \(currently)-.25 F(8192\) that this may not e)144 252 Q 2.5 +(alue \(currently)-.25 F(8192\) that this may not e)144 360 Q 2.5 (xceed. The)-.15 F(minimum v)2.5 E(alue is system-dependent.)-.25 E F1 -(COLUMNS)108 264 Q F0 .829(Used by the)144 276 R F1(select)3.329 E F0 -.828(compound command to determine the terminal width when printing sel\ -ection)3.329 F 2.5(lists. Automatically)144 288 R(set in an interacti) -2.5 E .3 -.15(ve s)-.25 H(hell upon receipt of a).15 E F3(SIGWINCH)2.5 E -/F4 9/Times-Roman@0 SF(.)A F1(COMPREPL)108 300 Q(Y)-.92 E F0 .847 -(An array v)144 312 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 324 Q -.2(vo)-.4 G -.1(ke).2 G 2.785(db).1 G 2.785(yt)-2.785 G +(COLUMNS)108 372 Q F0 .828(Used by the)144 384 R F1(select)3.328 E F0 +.829(compound command to determine the terminal width when printing sel\ +ection)3.328 F 4.507(lists. Automatically)144 396 R 2.007(set if the) +4.507 F F1(checkwinsize)4.507 E F0 2.006 +(option is enabled or in an interacti)4.507 F 2.306 -.15(ve s)-.25 H +2.006(hell upon).15 F(receipt of a)144 408 Q F3(SIGWINCH)2.5 E/F5 9 +/Times-Roman@0 SF(.)A F1(COMPREPL)108 420 Q(Y)-.92 E F0 .847(An array v) +144 432 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 444 Q -.2(vo)-.4 G -.1(ke).2 G 2.785(db).1 G 2.785(yt)-2.785 G .285(he programmable completion f)-2.785 F .285(acility \(see)-.1 F F1 (Pr)2.785 E .285(ogrammable Completion)-.18 F F0(belo)2.785 E 2.785 (w\). Each)-.25 F(array element contains one possible completion.)144 -336 Q F1(EMA)108 348 Q(CS)-.55 E F0(If)144 360 Q F1(bash)2.535 E F0 .035 +456 Q F1(EMA)108 468 Q(CS)-.55 E F0(If)144 480 Q F1(bash)2.535 E F0 .035 (\214nds this v)2.535 F .035(ariable in the en)-.25 F .036 -(vironment when the shell starts with v)-.4 F(alue)-.25 E F2(t)2.536 E +(vironment when the shell starts with v)-.4 F(alue)-.25 E F4(t)2.536 E F0 2.536(,i)C 2.536(ta)-2.536 G .036(ssumes that the)-2.536 F -(shell is running in an Emacs shell b)144 372 Q(uf)-.2 E -(fer and disables line editing.)-.25 E F1(ENV)108 384 Q F0(Similar to) -14.89 E F3 -.27(BA)2.5 G(SH_ENV).27 E F4(;)A F0 +(shell is running in an Emacs shell b)144 492 Q(uf)-.2 E +(fer and disables line editing.)-.25 E F1(ENV)108 504 Q F0(Similar to) +14.89 E F3 -.27(BA)2.5 G(SH_ENV).27 E F5(;)A F0 (used when the shell is in)2.25 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G -2.5(nP)-2.5 G(OSIX mode.)-2.5 E F1(FCEDIT)108 396 Q F0(The def)144 408 Q +2.5(nP)-2.5 G(OSIX mode.)-2.5 E F1(FCEDIT)108 516 Q F0(The def)144 528 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 420 Q F0 2.599(Ac)144 432 S .098 +E F1(FIGNORE)108 540 Q F0 2.599(Ac)144 552 S .098 (olon-separated list of suf)-2.599 F<8c78>-.25 E .098 (es to ignore when performing \214lename completion \(see)-.15 F F3 -(READLINE)2.598 E F0(belo)144 444 Q 2.704(w\). A)-.25 F .204 +(READLINE)2.598 E F0(belo)144 564 Q 2.704(w\). A)-.25 F .204 (\214lename whose suf)2.704 F .205(\214x matches one of the entries in) -.25 F F3(FIGNORE)2.705 E F0 .205(is e)2.455 F .205 -(xcluded from the list)-.15 F(of matched \214lenames.)144 456 Q 2.5(As)5 -G(ample v)-2.5 E(alue is)-.25 E F2(".o:~")2.5 E F0(.)A F1(FUNCNEST)108 -468 Q F0 1.78(If set to a numeric v)144 480 R 1.78 +(xcluded from the list)-.15 F(of matched \214lenames.)144 576 Q 2.5(As)5 +G(ample v)-2.5 E(alue is)-.25 E F4(".o:~")2.5 E F0(.)A F1(FUNCNEST)108 +588 Q F0 1.78(If set to a numeric v)144 600 R 1.78 (alue greater than 0, de\214nes a maximum function nesting le)-.25 F --.15(ve)-.25 G 4.28(l. Function).15 F(in)144 492 Q -.2(vo)-.4 G +-.15(ve)-.25 G 4.28(l. Function).15 F(in)144 612 Q -.2(vo)-.4 G (cations that e).2 E(xceed this nesting le)-.15 E -.15(ve)-.25 G 2.5(lw) .15 G(ill cause the current command to abort.)-2.5 E F1(GLOBIGNORE)108 -504 Q F0 3.118(Ac)144 516 S .618(olon-separated list of patterns de\214\ +624 Q F0 3.118(Ac)144 636 S .618(olon-separated list of patterns de\214\ ning the set of \214lenames to be ignored by pathname e)-3.118 F(xpan-) --.15 E 3.132(sion. If)144 528 R 3.132<618c>3.132 G .632 +-.15 E 3.132(sion. If)144 648 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 540 Q F4(,)A F0(it is remo)2.25 E -.15(ve)-.15 G 2.5(df) -.15 G(rom the list of matches.)-2.5 E F1(HISTCONTR)108 552 Q(OL)-.3 E F0 -2.653(Ac)144 564 S .153(olon-separated list of v)-2.653 F .153 +(GLOBIGNORE)144 660 Q F5(,)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 672 Q(OL)-.3 E F0 +2.653(Ac)144 684 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 576 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 588 R -3.057(Av)5.557 G .557(alue of)-3.307 F F5(ignor)3.067 E(edups)-.37 E F0 -.557(causes lines matching the pre)3.327 F .558 +-2.653 F .154(If the list)5.153 F .491(of v)144 696 R .491 +(alues includes)-.25 F F2(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 708 R 3.057(Av)5.557 G +.557(alue of)-3.307 F F2(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 600 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 612 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 624 Q -.15(ve)-.2 G 2.764(d. An).15 F 2.764(yv)-.15 G .264 -(alue not in the abo)-3.014 F .563 -.15(ve l)-.15 H .263 -(ist is ignored.).15 F(If)5.263 E F3(HISTCONTR)2.763 E(OL)-.27 E F0 .263 -(is unset, or does not include)2.513 F 2.941(av)144 636 S .441(alid v) --3.191 F .441(alue, all lines read by the shell parser are sa)-.25 F --.15(ve)-.2 G 2.942(do).15 G 2.942(nt)-2.942 G .442 -(he history list, subject to the v)-2.942 F .442(alue of)-.25 F F3 -(HISTIGNORE)144 648 Q F4(.)A F0 1.981(The second and subsequent lines o\ -f a multi-line compound command are not)6.482 F -(tested, and are added to the history re)144 660 Q -.05(ga)-.15 G -(rdless of the v).05 E(alue of)-.25 E F3(HISTCONTR)2.5 E(OL)-.27 E F4(.) -A F1(HISTFILE)108 672 Q F0 .181 -(The name of the \214le in which command history is sa)144 684 R -.15 -(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F3(HIST)2.681 E(OR)-.162 E(Y) --.315 E F0(belo)2.431 E 2.682(w\). The)-.25 F(def)2.682 E .182(ault v) --.1 F(alue)-.25 E(is)144 696 Q F5(~/.bash_history)2.5 E F0 5(.I)C 2.5 -(fu)-5 G(nset, the command history is not sa)-2.5 E -.15(ve)-.2 G 2.5 -(dw).15 G(hen a shell e)-2.5 E(xits.)-.15 E(GNU Bash 4.2)72 768 Q -(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(14)185.545 E 0 Cg EP +(Av)144 720 S .459(alue of)-3.209 F F2(ignor)2.969 E(eboth)-.37 E F0 +.459(is shorthand for)3.239 F F2(ignor)2.959 E(espace)-.37 E F0(and) +2.959 E F2(ignor)2.958 E(edups)-.37 E F0 5.458(.A)C -.25(va)-2.5 G .458 +(lue of).25 F F2(er)2.958 E(asedups)-.15 E F0(causes)2.958 E +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(14)193.45 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/Times-Bold@0 SF(HISTFILESIZE)108 84 Q F0 1.623 -(The maximum number of lines contained in the history \214le.)144 96 R +-.35 E .698(all pre)144 84 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 96 Q -.15(ve)-.2 G 2.764(d. An).15 F 2.764(yv)-.15 G .264 +(alue not in the abo)-3.014 F .563 -.15(ve l)-.15 H .263 +(ist is ignored.).15 F(If)5.263 E/F1 9/Times-Bold@0 SF(HISTCONTR)2.763 E +(OL)-.27 E F0 .263(is unset, or does not include)2.513 F 2.941(av)144 +108 S .441(alid v)-3.191 F .441 +(alue, all lines read by the shell parser are sa)-.25 F -.15(ve)-.2 G +2.942(do).15 G 2.942(nt)-2.942 G .442(he history list, subject to the v) +-2.942 F .442(alue of)-.25 F F1(HISTIGNORE)144 120 Q/F2 9/Times-Roman@0 +SF(.)A F0 1.981(The second and subsequent lines of a multi-line compoun\ +d command are not)6.482 F(tested, and are added to the history re)144 +132 Q -.05(ga)-.15 G(rdless of the v).05 E(alue of)-.25 E F1(HISTCONTR) +2.5 E(OL)-.27 E F2(.)A/F3 10/Times-Bold@0 SF(HISTFILE)108 144 Q F0 .181 +(The name of the \214le in which command history is sa)144 156 R -.15 +(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F1(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 168 Q/F4 10/Times-Italic@0 SF(~/.bash_history) +2.5 E F0 5(.I)C 2.5(fu)-5 G(nset, the command history is not sa)-2.5 E +-.15(ve)-.2 G 2.5(dw).15 G(hen a shell e)-2.5 E(xits.)-.15 E F3 +(HISTFILESIZE)108 180 Q F0 1.623 +(The maximum number of lines contained in the history \214le.)144 192 R 1.622(When this v)6.623 F 1.622(ariable is assigned a)-.25 F -.25(va)144 -108 S .931(lue, the history \214le is truncated, if necessary).25 F +204 S .931(lue, the history \214le is truncated, if necessary).25 F 3.432(,t)-.65 G 3.432(oc)-3.432 G .932 -(ontain no more than that number of lines by)-3.432 F(remo)144 120 Q +(ontain no more than that number of lines by)-3.432 F(remo)144 216 Q .871(ving the oldest entries.)-.15 F .87(The history \214le is also tru\ ncated to this size after writing it when a)5.871 F 1.244(shell e)144 -132 R 3.744(xits. If)-.15 F 1.244(the v)3.744 F 1.244 +228 R 3.744(xits. If)-.15 F 1.244(the v)3.744 F 1.244 (alue is 0, the history \214le is truncated to zero size.)-.25 F 1.245 -(Non-numeric v)6.244 F 1.245(alues and)-.25 F 1.022(numeric v)144 144 R +(Non-numeric v)6.244 F 1.245(alues and)-.25 F 1.022(numeric v)144 240 R 1.022(alues less than zero inhibit truncation.)-.25 F 1.022 (The shell sets the def)6.022 F 1.022(ault v)-.1 F 1.022(alue to the v) --.25 F 1.021(alue of)-.25 F F1(HISTSIZE)144 156 Q F0(after reading an) -2.5 E 2.5(ys)-.15 G(tartup \214les.)-2.5 E F1(HISTIGNORE)108 168 Q F0 -2.657(Ac)144 180 S .157(olon-separated list of patterns used to decide \ +-.25 F 1.021(alue of)-.25 F F3(HISTSIZE)144 252 Q F0(after reading an) +2.5 E 2.5(ys)-.15 G(tartup \214les.)-2.5 E F3(HISTIGNORE)108 264 Q F0 +2.657(Ac)144 276 S .157(olon-separated list of patterns used to decide \ which command lines should be sa)-2.657 F -.15(ve)-.2 G 2.658(do).15 G -2.658(nt)-2.658 G .158(he his-)-2.658 F .708(tory list.)144 192 R .708 +2.658(nt)-2.658 G .158(he his-)-2.658 F .708(tory list.)144 288 R .708 (Each pattern is anchored at the be)5.708 F .707 (ginning of the line and must match the complete line)-.15 F .625 -(\(no implicit `)144 204 R F1(*)A F0 3.125('i)C 3.125(sa)-3.125 G 3.125 +(\(no implicit `)144 300 R F3(*)A F0 3.125('i)C 3.125(sa)-3.125 G 3.125 (ppended\). Each)-3.125 F .626(pattern is tested ag)3.125 F .626 -(ainst the line after the checks speci\214ed by)-.05 F/F2 9/Times-Bold@0 -SF(HISTCONTR)144 216 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793 +(ainst the line after the checks speci\214ed by)-.05 F F1(HISTCONTR)144 +312 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793 (In addition to the normal shell pattern matching characters, `)6.793 F -F1(&)A F0(')A 2.514(matches the pre)144 228 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 240 +F3(&)A F0(')A 2.514(matches the pre)144 324 R 2.514(vious history line.) +-.25 F(`)7.514 E F3(&)A F0 5.014('m)C 2.514 +(ay be escaped using a backslash; the backslash is)-5.014 F(remo)144 336 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 252 Q -.05 -(ga)-.15 G(rdless of the v).05 E(alue of)-.25 E F2(HISTIGNORE)2.5 E/F3 9 -/Times-Roman@0 SF(.)A F1(HISTSIZE)108 264 Q F0 1.387 -(The number of commands to remember in the command history \(see)144 276 -R F2(HIST)3.887 E(OR)-.162 E(Y)-.315 E F0(belo)3.637 E 3.887(w\). If) --.25 F(the)3.888 E -.25(va)144 288 S 1.321 +(command 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(HISTIGNORE)2.5 E F2 +(.)A F3(HISTSIZE)108 360 Q F0 1.387 +(The number of commands to remember in the command history \(see)144 372 +R F1(HIST)3.887 E(OR)-.162 E(Y)-.315 E F0(belo)3.637 E 3.887(w\). If) +-.25 F(the)3.888 E -.25(va)144 384 S 1.321 (lue is 0, commands are not sa).25 F -.15(ve)-.2 G 3.821(di).15 G 3.821 (nt)-3.821 G 1.321(he history list.)-3.821 F 1.32(Numeric v)6.32 F 1.32 -(alues less than zero result in)-.25 F -2.15 -.25(ev e)144 300 T .436 +(alues less than zero result in)-.25 F -2.15 -.25(ev e)144 396 T .436 (ry command being sa).25 F -.15(ve)-.2 G 2.936(do).15 G 2.936(nt)-2.936 G .436(he history list \(there is no limit\).)-2.936 F .437 (The shell sets the def)5.437 F .437(ault v)-.1 F(alue)-.25 E -(to 500 after reading an)144 312 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E -F1(HISTTIMEFORMA)108 324 Q(T)-.95 E F0 .952(If this v)144 336 R .952 +(to 500 after reading an)144 408 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E +F3(HISTTIMEFORMA)108 420 Q(T)-.95 E F0 .952(If this v)144 432 R .952 (ariable is set and not null, its v)-.25 F .951 -(alue is used as a format string for)-.25 F/F4 10/Times-Italic@0 SF -(strftime)3.451 E F0 .951(\(3\) to print the)B .672 -(time stamp associated with each history entry displayed by the)144 348 -R F1(history)3.173 E F0 -.2(bu)3.173 G 3.173(iltin. If).2 F .673(this v) +(alue is used as a format string for)-.25 F F4(strftime)3.451 E F0 .951 +(\(3\) to print the)B .672 +(time stamp associated with each history entry displayed by the)144 444 +R F3(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 360 R +(set, time stamps are written to the history \214le so the)144 456 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 372 Q -F1(HOME)108 384 Q F0 1.27 -(The home directory of the current user; the def)144 396 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 408 S(lue of this v).25 E -(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F1 -(HOSTFILE)108 420 Q F0 1.015 -(Contains the name of a \214le in the same format as)144 432 R F4 + character to distinguish timestamps from other history lines.)144 468 Q +F3(HOME)108 480 Q F0 1.27 +(The home directory of the current user; the def)144 492 R 1.27(ault ar) +-.1 F 1.27(gument for the)-.18 F F3(cd)3.77 E F0 -.2(bu)3.77 G 1.27 +(iltin command.).2 F(The)6.27 E -.25(va)144 504 S(lue of this v).25 E +(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F3 +(HOSTFILE)108 516 Q F0 1.015 +(Contains the name of a \214le in the same format as)144 528 R F4 (/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 444 R .551 +.55(needs to complete a hostname.)144 540 R .551 (The list of possible hostname completions may be changed while)5.551 F -1.059(the shell is running; the ne)144 456 R 1.059 +1.059(the shell is running; the ne)144 552 R 1.059 (xt time hostname completion is attempted after the v)-.15 F 1.058 -(alue is changed,)-.25 F F1(bash)144 468 Q F0 .138 +(alue is changed,)-.25 F F3(bash)144 564 Q F0 .138 (adds the contents of the ne)2.638 F 2.638<778c>-.25 G .138(le to the e) --2.638 F .138(xisting list.)-.15 F(If)5.138 E F2(HOSTFILE)2.638 E F0 +-2.638 F .138(xisting list.)-.15 F(If)5.138 E F1(HOSTFILE)2.638 E F0 .138(is set, b)2.388 F .139(ut has no v)-.2 F .139(alue, or)-.25 F .518 -(does not name a readable \214le,)144 480 R F1(bash)3.018 E F0 .518 +(does not name a readable \214le,)144 576 R F3(bash)3.018 E F0 .518 (attempts to read)3.018 F F4(/etc/hosts)4.683 E F0 .517 -(to obtain the list of possible host-)4.683 F(name completions.)144 492 -Q(When)5 E F2(HOSTFILE)2.5 E F0(is unset, the hostname list is cleared.) -2.25 E F1(IFS)108 504 Q F0(The)20.44 E F4 .555(Internal F)3.635 F .555 +(to obtain the list of possible host-)4.683 F(name completions.)144 588 +Q(When)5 E F1(HOSTFILE)2.5 E F0(is unset, the hostname list is cleared.) +2.25 E F3(IFS)108 600 Q F0(The)20.44 E F4 .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 516 S(rds with the).1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2 +F -.1(wo)144 612 S(rds with the).1 E F3 -.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 528 Q -F0 .503(Controls the action of an interacti)144 540 R .803 -.15(ve s) --.25 H .503(hell on receipt of an).15 F F2(EOF)3.003 E F0 .503 +(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E F3(IGNOREEOF)108 624 Q +F0 .503(Controls the action of an interacti)144 636 R .803 -.15(ve s) +-.25 H .503(hell on receipt of an).15 F F1(EOF)3.003 E F0 .503 (character as the sole input.)2.753 F .503(If set,)5.503 F .426(the v) -144 552 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F2 +144 648 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F1 (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 564 R F1(bash)2.802 E F0 -.15(ex)2.802 G +(on an input line before)144 660 R F3(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 576 Q(alue, the def) +(umeric v).15 F .302(alue, or has)-.25 F(no v)144 672 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 588 Q F0 1.435(The \214lename for the)144 600 R F1 -.18(re) +F1(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F3 +(INPUTRC)108 684 Q F0 1.435(The \214lename for the)144 696 R F3 -.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 F4(~/.inputr)5.602 E(c) --.37 E F0(\(see)5.602 E F2(READLINE)3.936 E F0(belo)144 612 Q(w\).)-.25 -E F1(LANG)108 624 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 636 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 648 Q F0 .973 -(This v)144 660 R .973(ariable o)-.25 F -.15(ve)-.15 G .973 -(rrides the v).15 F .973(alue of)-.25 F F2(LANG)3.473 E F0 .973(and an) -3.223 F 3.473(yo)-.15 G(ther)-3.473 E F1(LC_)3.473 E F0 -.25(va)3.473 G -.974(riable specifying a locale cate-).25 F(gory)144 672 Q(.)-.65 E F1 -(LC_COLLA)108 684 Q(TE)-.95 E F0 .412(This v)144 696 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 708 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 -720 Q(xpansion and pattern matching.)-.15 E(GNU Bash 4.2)72 768 Q -(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(15)185.545 E 0 Cg EP +-.37 E F0(\(see)5.602 E F1(READLINE)3.936 E F0(belo)144 708 Q(w\).)-.25 +E(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(15)193.45 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(LC_CTYPE)108 84 Q F0 1.936(This v)144 96 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 108 Q -(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 120 Q(GES)-.55 E -F0(This v)144 132 Q(ariable determines the locale used to translate dou\ +-.35 E/F1 10/Times-Bold@0 SF(LANG)108 84 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 96 Q F1(LC_)2.5 E F0(.)A F1 +(LC_ALL)108 108 Q F0 .973(This v)144 120 R .973(ariable o)-.25 F -.15 +(ve)-.15 G .973(rrides the v).15 F .973(alue of)-.25 F/F2 9/Times-Bold@0 +SF(LANG)3.473 E F0 .973(and an)3.223 F 3.473(yo)-.15 G(ther)-3.473 E F1 +(LC_)3.473 E F0 -.25(va)3.473 G .974(riable specifying a locale cate-) +.25 F(gory)144 132 Q(.)-.65 E F1(LC_COLLA)108 144 Q(TE)-.95 E F0 .412 +(This v)144 156 R .412(ariable determines the collation order used when\ + sorting the results of pathname e)-.25 F(xpansion,)-.15 E 1.464 +(and determines the beha)144 168 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 180 +Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 192 Q F0 1.936 +(This v)144 204 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 216 Q +(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 228 Q(GES)-.55 E +F0(This v)144 240 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 144 Q F0(This v)144 156 Q(ariable determines the locale cate)-.25 E -(gory used for number formatting.)-.15 E F1(LINES)108 168 Q F0 .054 +108 252 Q F0(This v)144 264 Q(ariable determines the locale cate)-.25 E +(gory used for number formatting.)-.15 E F1(LINES)108 276 Q F0 .054 (Used by the)5.99 F F1(select)2.554 E F0 .054(compound command to deter\ -mine the column length for printing selection lists.)2.554 F -(Automatically set by an interacti)144 180 Q .3 -.15(ve s)-.25 H -(hell upon receipt of a).15 E/F2 9/Times-Bold@0 SF(SIGWINCH)2.5 E/F3 9 -/Times-Roman@0 SF(.)A F1(MAIL)108 192 Q F0 1.201 +mine the column length for printing selection lists.)2.554 F .265 +(Automatically set if the)144 288 R F1(checkwinsize)2.765 E F0 .264 +(option is enabled or in an interacti)2.765 F .564 -.15(ve s)-.25 H .264 +(hell upon receipt of a).15 F F2(SIGWINCH)144 300 Q/F3 9/Times-Roman@0 +SF(.)A F1(MAIL)108 312 Q F0 1.201 (If this parameter is set to a \214le or directory name and the)8.78 F -F2(MAILP)3.701 E -.855(AT)-.666 G(H).855 E F0 -.25(va)3.451 G 1.201 -(riable is not set,).25 F F1(bash)3.701 E F0 -(informs the user of the arri)144 204 Q -.25(va)-.25 G 2.5(lo).25 G 2.5 +F2(MAILP)3.701 E -.855(AT)-.666 G(H).855 E F0 -.25(va)3.451 G 1.202 +(riable is not set,).25 F F1(bash)3.702 E F0 +(informs the user of the arri)144 324 Q -.25(va)-.25 G 2.5(lo).25 G 2.5 (fm)-2.5 G(ail in the speci\214ed \214le or Maildir)-2.5 E -(-format directory)-.2 E(.)-.65 E F1(MAILCHECK)108 216 Q F0 .098 -(Speci\214es ho)144 228 R 2.598(wo)-.25 G .098(ften \(in seconds\)) --2.598 F F1(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def) -5.098 F .098(ault is 60 seconds.)-.1 F .099(When it is time)5.099 F .224 +(-format directory)-.2 E(.)-.65 E F1(MAILCHECK)108 336 Q F0 .099 +(Speci\214es ho)144 348 R 2.599(wo)-.25 G .099(ften \(in seconds\)) +-2.599 F F1(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def) +5.098 F .098(ault is 60 seconds.)-.1 F .098(When it is time)5.098 F .223 (to check for mail, the shell does so before displaying the primary pro\ -mpt.)144 240 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F .066 -(or set to a v)144 252 R .066(alue that is not a number greater than or\ +mpt.)144 360 R .224(If this v)5.224 F .224(ariable is unset,)-.25 F .066 +(or set to a v)144 372 R .066(alue that is not a number greater than or\ equal to zero, the shell disables mail checking.)-.25 F F1(MAILP)108 -264 Q -.95(AT)-.74 G(H).95 E F0 2.99(Ac)144 276 S .49 +384 Q -.95(AT)-.74 G(H).95 E F0 2.99(Ac)144 396 S .49 (olon-separated list of \214lenames to be check)-2.99 F .49 (ed for mail.)-.1 F .49(The message to be printed when mail)5.49 F(arri) -144 288 Q -.15(ve)-.25 G 2.62(si).15 G 2.62(nap)-2.62 G .12(articular \ +144 408 Q -.15(ve)-.25 G 2.62(si).15 G 2.62(nap)-2.62 G .12(articular \ \214le may be speci\214ed by separating the \214lename from the message\ - with a `?'.)-2.62 F(When used in the te)144 300 Q(xt of the message,) + with a `?'.)-2.62 F(When used in the te)144 420 Q(xt of the message,) -.15 E F1($_)2.5 E F0 -.15(ex)2.5 G (pands to the name of the current mail\214le.).15 E(Example:)5 E F1 -(MAILP)144 312 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A(ar/mail/bfox?"Y) +(MAILP)144 432 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 324 Q F0 .389 -(supplies a def)2.889 F .389(ault v)-.1 F .389(alue for this v)-.25 F -.389(ariable, b)-.25 F .388 +(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 444 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 336 Q(ar/mail/)-.25 E F1($USER)A F0 -(\).)A F1(OPTERR)108 348 Q F0 .389(If set to the v)144 360 R .389 -(alue 1,)-.25 F F1(bash)2.889 E F0 .389 -(displays error messages generated by the)2.889 F F1(getopts)2.89 E F0 --.2(bu)2.89 G .39(iltin command \(see).2 F F2 .36(SHELL B)144 372 R(UIL) --.09 E .36(TIN COMMANDS)-.828 F F0(belo)2.61 E(w\).)-.25 E F2(OPTERR) -5.36 E F0 .359(is initialized to 1 each time the shell is in)2.61 F -.2 -(vo)-.4 G -.1(ke).2 G(d).1 E(or a shell script is e)144 384 Q -.15(xe) --.15 G(cuted.).15 E F1 -.74(PA)108 396 S(TH)-.21 E F0 .587 -(The search path for commands.)9.91 F .588 +(system dependent \(e.g., /v)144 456 Q(ar/mail/)-.25 E F1($USER)A F0 +(\).)A F1(OPTERR)108 468 Q F0 .39(If set to the v)144 480 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 492 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 504 Q -.15(xe)-.15 G(cuted.) +.15 E F1 -.74(PA)108 516 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.587 F .472(for commands \(see)144 408 R F2 .472(COMMAND EXECUTION) -2.972 F F0(belo)2.722 E 2.972(w\). A)-.25 F .471 -(zero-length \(null\) directory name in the)2.972 F -.25(va)144 420 S -.535(lue of).25 F F2 -.666(PA)3.035 G(TH)-.189 E F0 .535 -(indicates the current directory)2.785 F 5.535(.A)-.65 G .535 -(null directory name may appear as tw)-2.5 F 3.036(oa)-.1 G(djacent) --3.036 E .868(colons, or as an initial or trailing colon.)144 432 R .868 -(The def)5.868 F .867(ault path is system-dependent, and is set by the) --.1 F 26.328(administrator who installs)144 444 R F1(bash)28.828 E F0 -31.329(.A)C 26.329(common v)-2.5 F 26.329(alue is)-.25 F/F4 10/Courier@0 -SF(/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)144 456 -Q F0(.)A F1(POSIXL)108 468 Q(Y_CORRECT)-.92 E F0 .472(If this v)144 480 -R .472(ariable is in the en)-.25 F .471(vironment when)-.4 F F1(bash) -2.971 E F0 .471(starts, the shell enters)2.971 F/F5 10/Times-Italic@0 SF -.471(posix mode)2.971 F F0 .471(before reading)2.971 F .011 -(the startup \214les, as if the)144 492 R F1(\255\255posix)2.511 E F0 +5.588 F .471(for commands \(see)144 528 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 540 S +.536(lue of).25 F F2 -.666(PA)3.036 G(TH)-.189 E F0 .535 +(indicates the current directory)2.786 F 5.535(.A)-.65 G .535 +(null directory name may appear as tw)-2.5 F 3.035(oa)-.1 G(djacent) +-3.035 E .867(colons, or as an initial or trailing colon.)144 552 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 564 R F1(bash)28.829 E F0 +31.329(.A)C 26.328(common v)-2.501 F 26.328(alue is)-.25 F/F4 10 +/Courier@0 SF +(/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)144 576 Q +F0(.)A F1(POSIXL)108 588 Q(Y_CORRECT)-.92 E F0 .471(If this v)144 600 R +.471(ariable is in the en)-.25 F .471(vironment when)-.4 F F1(bash)2.971 +E F0 .471(starts, the shell enters)2.971 F/F5 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 612 R F1(\255\255posix)2.511 E F0 (in)2.511 E -.2(vo)-.4 G .011(cation option had been supplied.).2 F .011 -(If it is set while the shell is)5.011 F(running,)144 504 Q F1(bash)2.5 +(If it is set while the shell is)5.011 F(running,)144 624 Q F1(bash)2.5 E F0(enables)2.5 E F5(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 F4(set -o posix)2.5 E F0(had been e)2.5 E -.15 -(xe)-.15 G(cuted.).15 E F1(PR)108 516 Q(OMPT_COMMAND)-.3 E F0 -(If set, the v)144 528 Q(alue is e)-.25 E -.15(xe)-.15 G +(xe)-.15 G(cuted.).15 E F1(PR)108 636 Q(OMPT_COMMAND)-.3 E F0 +(If set, the v)144 648 Q(alue is e)-.25 E -.15(xe)-.15 G (cuted as a command prior to issuing each primary prompt.).15 E F1(PR) -108 540 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676 -(If set to a number greater than zero, the v)144 552 R .676 +108 660 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676 +(If set to a number greater than zero, the v)144 672 R .676 (alue is used as the number of trailing directory compo-)-.25 F .923 -(nents to retain when e)144 564 R .923(xpanding the)-.15 F F1(\\w)3.423 +(nents to retain when e)144 684 R .923(xpanding the)-.15 F F1(\\w)3.423 E F0(and)3.423 E F1(\\W)3.423 E F0 .923(prompt string escapes \(see) 3.423 F F2(PR)3.423 E(OMPTING)-.27 E F0(belo)3.173 E(w\).)-.25 E -(Characters remo)144 576 Q -.15(ve)-.15 G 2.5(da).15 G -(re replaced with an ellipsis.)-2.5 E F1(PS1)108 588 Q F0 .065(The v) +(Characters remo)144 696 Q -.15(ve)-.15 G 2.5(da).15 G +(re replaced with an ellipsis.)-2.5 E F1(PS1)108 708 Q F0 .064(The v) 19.33 F .065(alue of this parameter is e)-.25 F .065(xpanded \(see)-.15 F F2(PR)2.565 E(OMPTING)-.27 E F0(belo)2.315 E .065 -(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 600 R +(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 720 R (def)2.5 E(ault v)-.1 E(alue is `)-.25 E(`)-.74 E F1(\\s\255\\v\\$)A F0 --.74('')2.5 G(.).74 E F1(PS2)108 612 Q F0 .117(The v)19.33 F .117 -(alue of this parameter is e)-.25 F .117(xpanded as with)-.15 F F2(PS1) -2.617 E F0 .118(and used as the secondary prompt string.)2.368 F(The) -5.118 E(def)144 624 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G -(.).74 E F1(PS3)108 636 Q F0 1.116(The v)19.33 F 1.115 -(alue of this parameter is used as the prompt for the)-.25 F F1(select) -3.615 E F0 1.115(command \(see)3.615 F F2 1.115(SHELL GRAM-)3.615 F(MAR) -144 648 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 660 Q F0 .1 -(The v)19.33 F .1(alue of this parameter is e)-.25 F .1(xpanded as with) --.15 F F2(PS1)2.6 E F0 .101(and the v)2.35 F .101 -(alue is printed before each command)-.25 F F1(bash)144 672 Q F0 .292 -(displays during an e)2.792 F -.15(xe)-.15 G .292(cution trace.).15 F -.292(The \214rst character of)5.292 F F2(PS4)2.792 E F0 .291 -(is replicated multiple times, as)2.542 F(necessary)144 684 Q 2.5(,t) --.65 G 2.5(oi)-2.5 G(ndicate multiple le)-2.5 E -.15(ve)-.25 G -(ls of indirection.).15 E(The def)5 E(ault is `)-.1 E(`)-.74 E F1(+)A F0 --.74('')2.5 G(.).74 E F1(SHELL)108 696 Q F0 .663 -(The full pathname to the shell is k)144 708 R .664(ept in this en)-.1 F -.664(vironment v)-.4 F 3.164(ariable. If)-.25 F .664 -(it is not set when the shell)3.164 F(starts,)144 720 Q F1(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(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve) --.15 G(mber 24).15 E(16)185.545 E 0 Cg EP +-.74('')2.5 G(.).74 E(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(16) +193.45 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/F1 10/Times-Bold@0 SF(TIMEFORMA)108 84 Q(T)-.95 E F0 .827(The v) -144 96 R .826 +-.35 E/F1 10/Times-Bold@0 SF(PS2)108 84 Q F0 .118(The v)19.33 F .118 +(alue of this parameter is e)-.25 F .118(xpanded as with)-.15 F/F2 9 +/Times-Bold@0 SF(PS1)2.617 E F0 .117 +(and used as the secondary prompt string.)2.367 F(The)5.117 E(def)144 96 +Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G(.).74 E F1(PS3)108 +108 Q F0 1.115(The v)19.33 F 1.115 +(alue of this parameter is used as the prompt for the)-.25 F F1(select) +3.615 E F0 1.116(command \(see)3.616 F F2 1.116(SHELL GRAM-)3.616 F(MAR) +144 120 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 132 Q F0 +.101(The v)19.33 F .101(alue of this parameter is e)-.25 F .101 +(xpanded as with)-.15 F F2(PS1)2.6 E F0 .1(and the v)2.35 F .1 +(alue is printed before each command)-.25 F F1(bash)144 144 Q F0 .291 +(displays during an e)2.791 F -.15(xe)-.15 G .292(cution trace.).15 F +.292(The \214rst character of)5.292 F F2(PS4)2.792 E F0 .292 +(is replicated multiple times, as)2.542 F(necessary)144 156 Q 2.5(,t) +-.65 G 2.5(oi)-2.5 G(ndicate multiple le)-2.5 E -.15(ve)-.25 G +(ls of indirection.).15 E(The def)5 E(ault is `)-.1 E(`)-.74 E F1(+)A F0 +-.74('')2.5 G(.).74 E F1(SHELL)108 168 Q F0 .664 +(The full pathname to the shell is k)144 180 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 192 Q F1(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 F1(TIMEFORMA)108 204 Q(T)-.95 E F0 .826(The v)144 +216 R .826 (alue of this parameter is used as a format string specifying ho)-.25 F -3.326(wt)-.25 G .826(he timing information for)-3.326 F .648 -(pipelines pre\214x)144 108 R .648(ed with the)-.15 F F1(time)3.148 E F0 -(reserv)3.148 E .648(ed w)-.15 F .649(ord should be displayed.)-.1 F -(The)5.649 E F1(%)3.149 E F0 .649(character introduces)3.149 F .712 -(an escape sequence that is e)144 120 R .711(xpanded to a time v)-.15 F -.711(alue or other information.)-.25 F .711(The escape sequences)5.711 F -(and their meanings are as follo)144 132 Q -(ws; the braces denote optional portions.)-.25 E F1(%%)144 150 Q F0 2.5 -(Al)30 G(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 162 Q/F2 10 +3.327(wt)-.25 G .827(he timing information for)-3.327 F .649 +(pipelines pre\214x)144 228 R .649(ed with the)-.15 F F1(time)3.149 E F0 +(reserv)3.149 E .649(ed w)-.15 F .648(ord should be displayed.)-.1 F +(The)5.648 E F1(%)3.148 E F0 .648(character introduces)3.148 F .711 +(an escape sequence that is e)144 240 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 252 Q +(ws; the braces denote optional portions.)-.25 E F1(%%)144 270 Q F0 2.5 +(Al)30 G(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 282 Q/F3 10 /Times-Italic@0 SF(p)A F1(][l]R)A F0(The elapsed time in seconds.)11.68 -E F1(%[)144 174 Q F2(p)A F1(][l]U)A F0 -(The number of CPU seconds spent in user mode.)11.68 E F1(%[)144 186 Q -F2(p)A F1(][l]S)A F0(The number of CPU seconds spent in system mode.) -13.34 E F1(%P)144 198 Q F0 +E F1(%[)144 294 Q F3(p)A F1(][l]U)A F0 +(The number of CPU seconds spent in user mode.)11.68 E F1(%[)144 306 Q +F3(p)A F1(][l]S)A F0(The number of CPU seconds spent in system mode.) +13.34 E F1(%P)144 318 Q F0 (The CPU percentage, computed as \(%U + %S\) / %R.)33.89 E .87 -(The optional)144 214.8 R F2(p)3.37 E F0 .87(is a digit specifying the) -3.37 F F2(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87 -(he number of fractional digits after a decimal)-3.37 F 2.526(point. A) -144 226.8 R -.25(va)2.526 G .025 -(lue of 0 causes no decimal point or fraction to be output.).25 F .025 -(At most three places after the)5.025 F .537 -(decimal point may be speci\214ed; v)144 238.8 R .537(alues of)-.25 F F2 -(p)3.037 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.538 E -F2(p)3.038 E F0 .538(is not speci\214ed,)3.038 F(the v)144 250.8 Q -(alue 3 is used.)-.25 E .668(The optional)144 267.6 R F1(l)3.168 E F0 +(The optional)144 334.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 346.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 358.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 370.8 Q +(alue 3 is used.)-.25 E .667(The optional)144 387.6 R F1(l)3.167 E F0 .668(speci\214es a longer format, including minutes, of the form)3.168 F -F2(MM)3.168 E F0(m)A F2(SS)A F0(.)A F2(FF)A F0 3.167(s. The)B -.25(va) -3.167 G(lue).25 E(of)144 279.6 Q F2(p)2.5 E F0 -(determines whether or not the fraction is included.)2.5 E 13.364 -(If this v)144 296.4 R 13.364(ariable is not set,)-.25 F F1(bash)15.865 -E F0 13.365(acts as if it had the v)15.865 F(alue)-.25 E F1($\010\\nr) -144 308.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\%3lS\010)-.18 E F0 7.446(.I) +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 399.6 Q F3(p)2.5 E F0 +(determines whether or not the fraction is included.)2.5 E 13.365 +(If this v)144 416.4 R 13.365(ariable is not set,)-.25 F F1(bash)15.865 +E F0 13.364(acts as if it had the v)15.865 F(alue)-.25 E F1($\010\\nr) +144 428.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\%3lS\010)-.18 E F0 7.446(.I) C 4.946(ft)-7.446 G 2.446(he v)-4.946 F 2.446 (alue is null, no timing information is dis-)-.25 F 2.5(played. A)144 -320.4 R(trailing ne)2.5 E +440.4 R(trailing ne)2.5 E (wline is added when the format string is displayed.)-.25 E F1(TMOUT)108 -332.4 Q F0 .941(If set to a v)144 344.4 R .941(alue greater than zero,) --.25 F/F3 9/Times-Bold@0 SF(TMOUT)3.441 E F0 .941(is treated as the def) -3.191 F .941(ault timeout for the)-.1 F F1 -.18(re)3.441 G(ad).18 E F0 --.2(bu)3.441 G(iltin.).2 E(The)144 356.4 Q F1(select)2.811 E F0 .311 -(command terminates if input does not arri)2.811 F .61 -.15(ve a)-.25 H -(fter).15 E F3(TMOUT)2.81 E F0 .31(seconds when input is com-)2.56 F -.885(ing from a terminal.)144 368.4 R .885(In an interacti)5.885 F 1.185 --.15(ve s)-.25 H .885(hell, the v).15 F .886 -(alue is interpreted as the number of seconds to)-.25 F -.1(wa)144 380.4 +452.4 Q F0 .941(If set to a v)144 464.4 R .941(alue greater than zero,) +-.25 F F2(TMOUT)3.441 E F0 .941(is treated as the def)3.191 F .941 +(ault timeout for the)-.1 F F1 -.18(re)3.441 G(ad).18 E F0 -.2(bu)3.441 +G(iltin.).2 E(The)144 476.4 Q F1(select)2.81 E F0 .31 +(command terminates if input does not arri)2.81 F .611 -.15(ve a)-.25 H +(fter).15 E F2(TMOUT)2.811 E F0 .311(seconds when input is com-)2.561 F +.886(ing from a terminal.)144 488.4 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 500.4 S 1.05(it for a line of input after issuing the primary prompt.).1 F F1 (Bash)6.05 E F0 1.05(terminates after w)3.55 F 1.05(aiting for that)-.1 -F(number of seconds if a complete line of input does not arri)144 392.4 -Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 404.4 Q F0 .39(If set,)144 416.4 -R F1(bash)2.89 E F0 .39(uses its v)2.89 F .39 -(alue as the name of a directory in which)-.25 F F1(bash)2.891 E F0 .391 -(creates temporary \214les for the)2.891 F(shell')144 428.4 Q 2.5(su) --.55 G(se.)-2.5 E F1(auto_r)108 440.4 Q(esume)-.18 E F0 .531(This v)144 -452.4 R .531(ariable controls ho)-.25 F 3.031(wt)-.25 G .531 -(he shell interacts with the user and job control.)-3.031 F .53 -(If this v)5.53 F .53(ariable is set,)-.25 F .538(single w)144 464.4 R +F(number of seconds if a complete line of input does not arri)144 512.4 +Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 524.4 Q F0 .391(If set,)144 536.4 +R F1(bash)2.891 E F0 .391(uses its v)2.891 F .391 +(alue as the name of a directory in which)-.25 F F1(bash)2.89 E F0 .39 +(creates temporary \214les for the)2.89 F(shell')144 548.4 Q 2.5(su)-.55 +G(se.)-2.5 E F1(auto_r)108 560.4 Q(esume)-.18 E F0 .53(This v)144 572.4 +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 584.4 R .538(ord simple commands without redirections are treated as candidates\ - for resumption of an)-.1 F -.15(ex)144 476.4 S .367(isting stopped job) -.15 F 5.367(.T)-.4 G .366(here is no ambiguity allo)-5.367 F .366 -(wed; if there is more than one job be)-.25 F .366(ginning with)-.15 F -1.124(the string typed, the job most recently accessed is selected.)144 -488.4 R(The)6.125 E F2(name)3.985 E F0 1.125(of a stopped job, in this) -3.805 F(conte)144 500.4 Q 1.133 + for resumption of an)-.1 F -.15(ex)144 596.4 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 +608.4 R(The)6.125 E F3(name)3.985 E F0 1.124(of a stopped job, in this) +3.805 F(conte)144 620.4 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.632(,t).68 G 1.132 -(he string supplied must)-3.632 F .624 -(match the name of a stopped job e)144 512.4 R .624(xactly; if set to) --.15 F F2(substring)3.125 E F0 3.125(,t).22 G .625 -(he string supplied needs to match a)-3.125 F .885 -(substring of the name of a stopped job)144 524.4 R 5.884(.T)-.4 G(he) --5.884 E F2(substring)3.724 E F0 -.25(va)3.604 G .884(lue pro).25 F .884 -(vides functionality analogous to)-.15 F(the)144 536.4 Q F1(%?)3.333 E -F0 .833(job identi\214er \(see)5.833 F F3 .834(JOB CONTR)3.334 F(OL)-.27 +6.133 F(alue)-.25 E F3 -.2(ex)3.633 G(act).2 E F0 3.633(,t).68 G 1.133 +(he string supplied must)-3.633 F .625 +(match the name of a stopped job e)144 632.4 R .624(xactly; if set to) +-.15 F F3(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 644.4 R 5.884(.T)-.4 G(he) +-5.884 E F3(substring)3.724 E F0 -.25(va)3.604 G .885(lue pro).25 F .885 +(vides functionality analogous to)-.15 F(the)144 656.4 Q F1(%?)3.334 E +F0 .834(job identi\214er \(see)5.834 F F2 .834(JOB CONTR)3.334 F(OL)-.27 E F0(belo)3.084 E 3.334(w\). If)-.25 F .834(set to an)3.334 F 3.334(yo) --.15 G .834(ther v)-3.334 F .834(alue, the supplied string)-.25 F .316 -(must be a pre\214x of a stopped job')144 548.4 R 2.816(sn)-.55 G .316 -(ame; this pro)-2.816 F .315(vides functionality analogous to the)-.15 F -F1(%)2.815 E F2(string)A F0(job)2.815 E(identi\214er)144 560.4 Q(.)-.55 -E F1(histchars)108 572.4 Q F0 2.069(The tw)144 584.4 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.57 E -(OR)-.162 E(Y)-.315 E(EXP)144 596.4 Q(ANSION)-.666 E F0(belo)3.466 E -3.716(w\). The)-.25 F 1.216(\214rst character is the)3.716 F F2 1.215 -(history e)3.715 F(xpansion)-.2 E F0(character)3.715 E 3.715(,t)-.4 G -1.215(he character which)-3.715 F .798(signals the start of a history e) -144 608.4 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 620.4 Q F0(character)2.74 E 2.74(,w)-.4 G -.239(hich is used as shorthand for re-running the pre)-2.74 F .239 -(vious command entered, substitut-)-.25 F .575 -(ing one string for another in the command.)144 632.4 R .575(The def) -5.575 F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .576 -(optional third character is the)3.076 F .223(character which indicates\ - that the remainder of the line is a comment when found as the \214rst \ -char)144 644.4 R(-)-.2 E 1.293(acter of a w)144 656.4 R 1.293 -(ord, normally `)-.1 F F1(#)A F0 3.793('. The)B 1.294 -(history comment character causes history substitution to be)3.794 F .38 -(skipped for the remaining w)144 668.4 R .38(ords on the line.)-.1 F -.379(It does not necessarily cause the shell parser to treat)5.379 F -(the rest of the line as a comment.)144 680.4 Q F1(Arrays)87 697.2 Q -(Bash)108 709.2 Q F0(pro)3.39 E .89(vides one-dimensional inde)-.15 F --.15(xe)-.15 G 3.39(da).15 G .891(nd associati)-3.39 F 1.191 -.15(ve a) --.25 H .891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G .891 -(ariable may be used as an)-3.641 F(inde)108 721.2 Q -.15(xe)-.15 G -2.574(da).15 G .074(rray; the)-2.574 F F1(declar)2.574 E(e)-.18 E F0 -.2 -(bu)2.574 G .074(iltin will e).2 F .073(xplicitly declare an array)-.15 -F 5.073(.T)-.65 G .073(here is no maximum limit on the size of)-5.073 F -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(17)185.545 E 0 Cg EP +-.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 668.4 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 F3(string)A F0(job)2.816 E(identi\214er)144 680.4 Q(.)-.55 +E F1(histchars)108 692.4 Q F0 2.07(The tw)144 704.4 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 F2(HIST)4.569 E(OR) +-.162 E(Y)-.315 E(EXP)144 716.4 Q(ANSION)-.666 E F0(belo)3.465 E 3.715 +(w\). The)-.25 F 1.215(\214rst character is the)3.715 F F3 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 3.495 +(signals the start of a history e)144 728.4 R 3.494 +(xpansion, normally `)-.15 F F1(!)A F0 5.994('. The)B 3.494 +(second character is the)5.994 F F3(quic)5.994 E(k)-.2 E F0 +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(17)193.45 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 .328(an array)108 84 R 2.828(,n)-.65 G .328(or an)-2.828 F 2.828 -(yr)-.15 G .329(equirement that members be inde)-2.828 F -.15(xe)-.15 G -2.829(do).15 G 2.829(ra)-2.829 G .329(ssigned contiguously)-2.829 F -5.329(.I)-.65 G(nde)-5.329 E -.15(xe)-.15 G 2.829(da).15 G .329 -(rrays are refer)-2.829 F(-)-.2 E 1.387(enced using inte)108 96 R 1.387 -(gers \(including arithmetic e)-.15 F 3.887(xpressions\) and)-.15 F -1.387(are zero-based; associati)3.887 F 1.686 -.15(ve a)-.25 H 1.386 -(rrays are refer).15 F(-)-.2 E .219(enced using arbitrary strings.)108 -108 R .219(Unless otherwise noted, inde)5.219 F -.15(xe)-.15 G 2.719(da) -.15 G .219(rray indices must be non-ne)-2.719 F -.05(ga)-.15 G(ti).05 E -.52 -.15(ve i)-.25 H(nte).15 E(gers.)-.15 E 2.463(An inde)108 124.8 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/F1 10/Times-Italic@0 SF(name)4.962 E F0([)A F1(sub-)A(script) -108 136.8 Q F0(]=)A F1(value)A F0 6.548(.T)C(he)-6.548 E F1(subscript) -4.388 E F0 1.549(is treated as an arithmetic e)4.728 F 1.549 -(xpression that must e)-.15 F -.25(va)-.25 G 1.549(luate to a number).25 -F 6.549(.T)-.55 G(o)-7.349 E -.15(ex)108 148.8 S 1.98 -(plicitly declare an inde).15 F -.15(xe)-.15 G 4.48(da).15 G(rray)-4.48 -E 4.48(,u)-.65 G(se)-4.48 E/F2 10/Times-Bold@0 SF(declar)4.48 E 4.48 -<65ad>-.18 G(a)-4.48 E F1(name)4.48 E F0(\(see)4.48 E/F3 9/Times-Bold@0 -SF 1.979(SHELL B)4.479 F(UIL)-.09 E 1.979(TIN COMMANDS)-.828 F F0(belo) -4.229 E(w\).)-.25 E F2(declar)108 160.8 Q 2.5<65ad>-.18 G(a)-2.5 E F1 -(name)2.5 E F2([)A F1(subscript)A F2(])A F0(is also accepted; the)2.5 E -F1(subscript)2.5 E F0(is ignored.)2.5 E(Associati)108 177.6 Q .3 -.15 +-.35 E/F1 10/Times-Italic@0 SF(substitution)144 84 Q F0(character)3.476 +E 3.476(,w)-.4 G .977(hich is used as shorthand for re-running the pre) +-3.476 F .977(vious command entered,)-.25 F .466 +(substituting one string for another in the command.)144 96 R .466 +(The def)5.466 F .466(ault is `)-.1 F/F2 10/Times-Bold@0 SF(^)A F0 2.966 +('. The)B .466(optional third charac-)2.966 F .431(ter is the character\ + which indicates that the remainder of the line is a comment when found\ + as the)144 108 R .39(\214rst character of a w)144 120 R .389 +(ord, normally `)-.1 F F2(#)A F0 2.889('. The)B .389 +(history comment character causes history substitution)2.889 F .25 +(to be skipped for the remaining w)144 132 R .25(ords on the line.)-.1 F +.25(It does not necessarily cause the shell parser to)5.25 F +(treat the rest of the line as a comment.)144 144 Q F2(Arrays)87 160.8 Q +(Bash)108 172.8 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 184.8 Q -.15(xe)-.15 G +2.573(da).15 G .073(rray; the)-2.573 F F2(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 196.8 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 208.8 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 .22(enced using arbitrary strings.)108 +220.8 R .219(Unless otherwise noted, inde)5.219 F -.15(xe)-.15 G 2.719 +(da).15 G .219(rray indices must be non-ne)-2.719 F -.05(ga)-.15 G(ti) +.05 E .519 -.15(ve i)-.25 H(nte).15 E(gers.)-.15 E 2.462(An inde)108 +237.6 R -.15(xe)-.15 G 4.962(da).15 G 2.462 +(rray is created automatically if an)-4.962 F 4.963(yv)-.15 G 2.463 +(ariable is assigned to using the syntax)-5.213 F F1(name)4.963 E F0([)A +F1(sub-)A(script)108 249.6 Q F0(]=)A F1(value)A F0 6.549(.T)C(he)-6.549 +E F1(subscript)4.389 E F0 1.549(is treated as an arithmetic e)4.729 F +1.549(xpression that must e)-.15 F -.25(va)-.25 G 1.548 +(luate to a number).25 F 6.548(.T)-.55 G(o)-7.348 E -.15(ex)108 261.6 S +1.979(plicitly declare an inde).15 F -.15(xe)-.15 G 4.479(da).15 G(rray) +-4.479 E 4.48(,u)-.65 G(se)-4.48 E F2(declar)4.48 E 4.48<65ad>-.18 G(a) +-4.48 E F1(name)4.48 E F0(\(see)4.48 E/F3 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 +(w\).)-.25 E F2(declar)108 273.6 Q 2.5<65ad>-.18 G(a)-2.5 E F1(name)2.5 +E F2([)A F1(subscript)A F2(])A F0(is also accepted; the)2.5 E F1 +(subscript)2.5 E F0(is ignored.)2.5 E(Associati)108 290.4 Q .3 -.15 (ve a)-.25 H(rrays are created using).15 E F2(declar)2.5 E 2.5<65ad>-.18 -G(A)-2.5 E F1(name)2.5 E F0(.)A(Attrib)108 194.4 Q .94 +G(A)-2.5 E F1(name)2.5 E F0(.)A(Attrib)108 307.2 Q .941 (utes may be speci\214ed for an array v)-.2 F .941(ariable using the) --.25 F F2(declar)3.441 E(e)-.18 E F0(and)3.441 E F2 -.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 206.4 Q(.)-.65 E 1.647 -(Arrays are assigned to using compound assignments of the form)108 223.2 -R F1(name)4.147 E F0(=)A F2(\()A F0 -.25(va)C(lue).25 E F1(1)A F0 1.647 -(... v)4.147 F(alue)-.25 E F1(n)A F2(\))A F0 4.147(,w)C 1.647(here each) --4.147 F F1(value)108 235.2 Q F0 1.833(is of the form [)4.332 F F1 +-.25 F F2(declar)3.441 E(e)-.18 E F0(and)3.44 E F2 -.18(re)3.44 G +(adonly).18 E F0 -.2(bu)3.44 G 3.44(iltins. Each).2 F(attrib)3.44 E(ute) +-.2 E(applies to all members of an array)108 319.2 Q(.)-.65 E 1.647 +(Arrays are assigned to using compound assignments of the form)108 336 R +F1(name)4.147 E F0(=)A F2(\()A F0 -.25(va)C(lue).25 E F1(1)A F0 1.647 +(... v)4.147 F(alue)-.25 E F1(n)A F2(\))A F0 4.148(,w)C 1.648(here each) +-4.148 F F1(value)108 348 Q F0 1.833(is of the form [)4.333 F F1 (subscript)A F0(]=)A F1(string)A F0 6.833(.I)C(nde)-6.833 E -.15(xe)-.15 -G 4.333(da).15 G 1.833(rray assignments do not require an)-4.333 F 1.833 -(ything b)-.15 F(ut)-.2 E F1(string)4.333 E F0(.)A .164 -(When assigning to inde)108 247.2 R -.15(xe)-.15 G 2.663(da).15 G .163 +G 4.333(da).15 G 1.833(rray assignments do not require an)-4.333 F 1.832 +(ything b)-.15 F(ut)-.2 E F1(string)4.332 E F0(.)A .163 +(When assigning to inde)108 360 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 259.2 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 271.2 Q -(xing starts at zero.)-.15 E(When assigning to an associati)108 288 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 304.8 R F2(declar)2.74 E -(e)-.18 E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .239 +(ets and subscript are supplied, that inde)-.1 F 2.664(xi)-.15 G 2.664 +(sa)-2.664 G(ssigned)-2.664 E 1.411(to; otherwise the inde)108 372 R +3.911(xo)-.15 G 3.911(ft)-3.911 G 1.411 +(he element assigned is the last inde)-3.911 F 3.91(xa)-.15 G 1.41 +(ssigned to by the statement plus one.)-3.91 F(Inde)108 384 Q +(xing starts at zero.)-.15 E(When assigning to an associati)108 400.8 Q +.3 -.15(ve a)-.25 H(rray).15 E 2.5(,t)-.65 G(he subscript is required.) +-2.5 E .239(This syntax is also accepted by the)108 417.6 R F2(declar) +2.739 E(e)-.18 E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .24 (vidual array elements may be assigned to using the)-.25 F F1(name)108 -316.8 Q F0([)A F1(subscript)A F0(]=)A F1(value)A F0 1.917 -(syntax introduced abo)4.416 F -.15(ve)-.15 G 6.917(.W).15 G 1.917 +429.6 Q F0([)A F1(subscript)A F0(]=)A F1(value)A F0 1.917 +(syntax introduced abo)4.417 F -.15(ve)-.15 G 6.917(.W).15 G 1.917 (hen assigning to an inde)-6.917 F -.15(xe)-.15 G 4.417(da).15 G(rray) --4.417 E 4.417(,i)-.65 G(f)-4.417 E F1(name)4.777 E F0 1.917(is sub-) -4.597 F .116(scripted by a ne)108 328.8 R -.05(ga)-.15 G(ti).05 E .416 --.15(ve n)-.25 H(umber).15 E 2.616(,t)-.4 G .115 -(hat number is interpreted as relati)-2.616 F .415 -.15(ve t)-.25 H -2.615(oo).15 G .115(ne greater than the maximum inde)-2.615 F(x)-.15 E -(of)108 340.8 Q F1(name)3.338 E F0 3.338(,s)C 3.338(on)-3.338 G -2.25 +-4.417 E 4.417(,i)-.65 G(f)-4.417 E F1(name)4.777 E F0 1.916(is sub-) +4.597 F .115(scripted by a ne)108 441.6 R -.05(ga)-.15 G(ti).05 E .415 +-.15(ve n)-.25 H(umber).15 E 2.615(,t)-.4 G .115 +(hat number is interpreted as relati)-2.615 F .415 -.15(ve t)-.25 H +2.615(oo).15 G .116(ne greater than the maximum inde)-2.615 F(x)-.15 E +(of)108 453.6 Q F1(name)3.338 E F0 3.338(,s)C 3.338(on)-3.338 G -2.25 -.15(eg a)-3.338 H(ti).15 E 1.138 -.15(ve i)-.25 H .838 (ndices count back from the end of the array).15 F 3.338(,a)-.65 G .838 (nd an inde)-3.338 F 3.338(xo)-.15 G 3.338<66ad>-3.338 G 3.338(1r)-3.338 -G .838(eferences the last)-3.338 F(element.)108 352.8 Q(An)108 369.6 Q -3.576(ye)-.15 G 1.076(lement of an array may be referenced using ${) --3.576 F F1(name)A F0([)A F1(subscript)A F0 3.575(]}. The)B 1.075 -(braces are required to a)3.575 F -.2(vo)-.2 G(id).2 E 1.541 -(con\215icts with pathname e)108 381.6 R 4.041(xpansion. If)-.15 F F1 +G .838(eferences the last)-3.338 F(element.)108 465.6 Q(An)108 482.4 Q +3.575(ye)-.15 G 1.075(lement of an array may be referenced using ${) +-3.575 F F1(name)A F0([)A F1(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 494.4 R 4.041(xpansion. If)-.15 F F1 (subscript)4.041 E F0(is)4.041 E F2(@)4.041 E F0(or)4.041 E F2(*)4.041 E F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)-.1 F 1.541 -(xpands to all members of)-.15 F F1(name)4.042 E F0(.)A 1.057 -(These subscripts dif)108 393.6 R 1.057(fer only when the w)-.25 F 1.057 -(ord appears within double quotes.)-.1 F 1.056(If the w)6.056 F 1.056 -(ord is double-quoted,)-.1 F(${)108 405.6 Q F1(name)A F0 .52([*]} e)B -.52(xpands to a single w)-.15 F .52(ord with the v)-.1 F .521 +(xpands to all members of)-.15 F F1(name)4.041 E F0(.)A 1.056 +(These subscripts dif)108 506.4 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 518.4 Q F1(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.375(of the)108 417.6 R F3(IFS)3.875 E F0 1.375(special v)3.625 F 1.375 +1.374(of the)108 530.4 R F3(IFS)3.874 E F0 1.374(special v)3.624 F 1.375 (ariable, and ${)-.25 F F1(name)A F0 1.375([@]} e)B 1.375 -(xpands each element of)-.15 F F1(name)3.875 E F0 1.374(to a separate w) -3.875 F 3.874(ord. When)-.1 F 2.027(there are no array members, ${)108 -429.6 R F1(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F -2.028(If the double-quoted e)7.028 F 2.028(xpansion occurs)-.15 F .759 -(within a w)108 441.6 R .759(ord, the e)-.1 F .759 +(xpands each element of)-.15 F F1(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 +542.4 R F1(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 554.4 R .759(ord, the e)-.1 F .759 (xpansion of the \214rst parameter is joined with the be)-.15 F .759 -(ginning part of the original w)-.15 F(ord,)-.1 E .515(and the e)108 -453.6 R .516(xpansion of the last parameter is joined with the last par\ -t of the original w)-.15 F 3.016(ord. This)-.1 F .516(is analogous)3.016 -F .228(to the e)108 465.6 R .228(xpansion of the special parameters)-.15 +(ginning part of the original w)-.15 F(ord,)-.1 E .516(and the e)108 +566.4 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 578.4 R .228(xpansion of the special parameters)-.15 F F2(*)2.728 E F0(and)2.728 E F2(@)2.728 E F0(\(see)2.728 E F2 .228 -(Special P)2.728 F(arameters)-.1 E F0(abo)2.727 E -.15(ve)-.15 G 2.727 -(\). ${#).15 F F1(name)A F0([)A F1(subscript)A F0(]})A -.15(ex)108 477.6 +(Special P)2.728 F(arameters)-.1 E F0(abo)2.728 E -.15(ve)-.15 G 2.728 +(\). ${#).15 F F1(name)A F0([)A F1(subscript)A F0(]})A -.15(ex)108 590.4 S .886(pands to the length of ${).15 F F1(name)A F0([)A F1(subscript)A F0 3.386(]}. If)B F1(subscript)3.386 E F0(is)3.386 E F2(*)3.386 E F0(or) 3.386 E F2(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886 -(xpansion is the number of ele-)-.15 F .463(ments in the array)108 489.6 -R 5.463(.R)-.65 G .463(eferencing an array v)-5.463 F .462 -(ariable without a subscript is equi)-.25 F -.25(va)-.25 G .462 +(xpansion is the number of ele-)-.15 F .462(ments in the array)108 602.4 +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 .233(with a subscript of 0.)108 -501.6 R .233(If the)5.233 F F1(subscript)3.073 E F0 .233 +614.4 R .233(If the)5.233 F F1(subscript)3.073 E F0 .233 (used to reference an element of an inde)3.413 F -.15(xe)-.15 G 2.733 (da).15 G .233(rray e)-2.733 F -.25(va)-.25 G .233(luates to a num-).25 -F .617(ber less than zero, it is interpreted as relati)108 513.6 R .917 --.15(ve t)-.25 H 3.117(oo).15 G .616(ne greater than the maximum inde) --3.117 F 3.116(xo)-.15 G 3.116(ft)-3.116 G .616(he array)-3.116 F 3.116 -(,s)-.65 G 3.116(on)-3.116 G -.15(eg)-3.116 G(-).15 E(ati)108 525.6 Q .3 +F .616(ber less than zero, it is interpreted as relati)108 626.4 R .916 +-.15(ve t)-.25 H 3.116(oo).15 G .617(ne greater than the maximum inde) +-3.116 F 3.117(xo)-.15 G 3.117(ft)-3.117 G .617(he array)-3.117 F 3.117 +(,s)-.65 G 3.117(on)-3.117 G -.15(eg)-3.117 G(-).15 E(ati)108 638.4 Q .3 -.15(ve i)-.25 H(ndices count back from the end of the array).15 E 2.5 (,a)-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G -(eferences the last element.)-2.5 E .168(An array v)108 542.4 R .168 +(eferences the last element.)-2.5 E .168(An array v)108 655.2 R .168 (ariable is considered set if a subscript has been assigned a v)-.25 F 2.668(alue. The)-.25 F .168(null string is a v)2.668 F .168(alid v)-.25 -F(alue.)-.25 E(The)108 559.2 Q F2(unset)2.767 E F0 -.2(bu)2.767 G .267 +F(alue.)-.25 E(The)108 672 Q F2(unset)2.766 E F0 -.2(bu)2.766 G .267 (iltin is used to destro).2 F 2.767(ya)-.1 G(rrays.)-2.767 E F2(unset) 5.267 E F1(name)2.767 E F0([)A F1(subscript)A F0 2.767(]d)C(estro)-2.767 -E .267(ys the array element at inde)-.1 F(x)-.15 E F1(sub-)2.766 E -(script)108 571.2 Q F0 6.318(.N)C -2.25 -.15(eg a)-6.318 H(ti).15 E -1.618 -.15(ve s)-.25 H 1.318(ubscripts to inde).15 F -.15(xe)-.15 G -3.818(da).15 G 1.319(rrays are interpreted as described abo)-3.818 F --.15(ve)-.15 G 6.319(.C).15 G 1.319(are must be tak)-6.319 F 1.319 -(en to)-.1 F -.2(avo)108 583.2 S .298(id unw).2 F .298(anted side ef)-.1 -F .298(fects caused by pathname e)-.25 F(xpansion.)-.15 E F2(unset)5.298 -E F1(name)2.797 E F0 2.797(,w)C(here)-2.797 E F1(name)2.797 E F0 .297 -(is an array)2.797 F 2.797(,o)-.65 G(r)-2.797 E F2(unset)2.797 E F1 -(name)108 595.2 Q F0([)A F1(subscript)A F0(], where)A F1(subscript)2.5 E +E .267(ys the array element at inde)-.1 F(x)-.15 E F1(sub-)2.767 E +(script)108 684 Q F0 6.319(.N)C -2.25 -.15(eg a)-6.319 H(ti).15 E 1.619 +-.15(ve s)-.25 H 1.319(ubscripts to inde).15 F -.15(xe)-.15 G 3.819(da) +.15 G 1.319(rrays are interpreted as described abo)-3.819 F -.15(ve)-.15 +G 6.318(.C).15 G 1.318(are must be tak)-6.318 F 1.318(en to)-.1 F -.2 +(avo)108 696 S .297(id unw).2 F .297(anted side ef)-.1 F .297 +(fects caused by pathname e)-.25 F(xpansion.)-.15 E F2(unset)5.297 E F1 +(name)2.798 E F0 2.798(,w)C(here)-2.798 E F1(name)2.798 E F0 .298 +(is an array)2.798 F 2.798(,o)-.65 G(r)-2.798 E F2(unset)2.798 E F1 +(name)108 708 Q 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 612 -Q F2(declar)3.573 E(e)-.18 E F0(,)A F2(local)3.573 E F0 3.573(,a)C(nd) --3.573 E F2 -.18(re)3.573 G(adonly).18 E F0 -.2(bu)3.573 G 1.073 +-.15(ve)-.15 G 2.5(st).15 G(he entire array)-2.5 E(.)-.65 E(The)108 +724.8 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.574(da).15 G 1.074 -(rray and a)-3.574 F F2<ad41>3.574 E F0 .339 -(option to specify an associati)108 624 R .638 -.15(ve a)-.25 H(rray).15 -E 5.338(.I)-.65 G 2.838(fb)-5.338 G .338(oth options are supplied,) --2.838 F F2<ad41>2.838 E F0(tak)2.838 E .338(es precedence.)-.1 F(The) -5.338 E F2 -.18(re)2.838 G(ad).18 E F0 -.2(bu)2.838 G(iltin).2 E .44 -(accepts a)108 636 R F2<ad61>2.941 E F0 .441 -(option to assign a list of w)2.941 F .441 -(ords read from the standard input to an array)-.1 F 5.441(.T)-.65 G(he) --5.441 E F2(set)2.941 E F0(and)2.941 E F2(declar)2.941 E(e)-.18 E F0 -.2 -(bu)108 648 S(iltins display array v).2 E(alues in a w)-.25 E -(ay that allo)-.1 E(ws them to be reused as assignments.)-.25 E/F4 10.95 -/Times-Bold@0 SF(EXP)72 664.8 Q(ANSION)-.81 E F0 .76(Expansion is perfo\ -rmed on the command line after it has been split into w)108 676.8 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 688.8 S .369(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 .37 -(command sub-)2.869 F(stitution)108 700.8 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 .471(The order of e)108 717.6 R .471(xpansions is: brace e)-.15 F .471 -(xpansion, tilde e)-.15 F .471(xpansion, parameter)-.15 F 2.971(,v)-.4 G -.47(ariable and arithmetic e)-3.221 F(xpansion)-.15 E -(and command substitution \(done in a left-to-right f)108 729.6 Q -(ashion\), w)-.1 E(ord splitting, and pathname e)-.1 E(xpansion.)-.15 E -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(18)185.545 E 0 Cg EP +(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(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(18)193.45 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(On systems that can support it, there is an additional e)108 84 Q -(xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E/F1 10/Times-Italic@0 SF -(pr)2.5 E(ocess substitution)-.45 E F0(.)A 1.486(Only brace e)108 100.8 -R 1.486(xpansion, w)-.15 F 1.486(ord splitting, and pathname e)-.1 F -1.487(xpansion can change the number of w)-.15 F 1.487(ords of the)-.1 F --.15(ex)108 112.8 S 1.165(pansion; other e).15 F 1.165(xpansions e)-.15 -F 1.165(xpand a single w)-.15 F 1.165(ord to a single w)-.1 F 3.665 -(ord. The)-.1 F 1.164(only e)3.665 F 1.164(xceptions to this are the) --.15 F -.15(ex)108 124.8 S(pansions of ").15 E/F2 10/Times-Bold@0 SF($@) -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/F3 9 -/Times-Bold@0 SF -.666(PA)2.5 G(RAMETERS).666 E/F4 9/Times-Roman@0 SF -(\).)A F2(Brace Expansion)87 141.6 Q F1(Br)108.58 153.6 Q .606(ace e) --.15 F(xpansion)-.2 E F0 .606 +-.35 E .338(option to specify an associati)108 84 R .638 -.15(ve a)-.25 +H(rray).15 E 5.338(.I)-.65 G 2.838(fb)-5.338 G .338 +(oth options are supplied,)-2.838 F/F1 10/Times-Bold@0 SF<ad41>2.838 E +F0(tak)2.838 E .338(es precedence.)-.1 F(The)5.338 E F1 -.18(re)2.839 G +(ad).18 E F0 -.2(bu)2.839 G(iltin).2 E .441(accepts a)108 96 R F1<ad61> +2.941 E F0 .441(option to assign a list of w)2.941 F .441 +(ords read from the standard input to an array)-.1 F 5.441(.T)-.65 G(he) +-5.441 E F1(set)2.941 E F0(and)2.941 E F1(declar)2.94 E(e)-.18 E F0 -.2 +(bu)108 108 S(iltins display array v).2 E(alues in a w)-.25 E +(ay that allo)-.1 E(ws them to be reused as assignments.)-.25 E/F2 10.95 +/Times-Bold@0 SF(EXP)72 124.8 Q(ANSION)-.81 E F0 .76(Expansion is perfo\ +rmed on the command line after it has been split into w)108 136.8 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 148.8 S .37(pansion performed:).15 F/F3 10 +/Times-Italic@0 SF(br)2.869 E .369(ace e)-.15 F(xpansion)-.2 E F0(,).24 +E F3 .369(tilde e)2.869 F(xpansion)-.2 E F0(,).24 E F3(par)2.869 E .369 +(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F3 .369 +(command sub-)2.869 F(stitution)108 160.8 Q F0(,).24 E F3(arithmetic e) +2.5 E(xpansion)-.2 E F0(,).24 E F3(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 +E F0 2.5(,a).22 G(nd)-2.5 E F3(pathname e)2.5 E(xpansion)-.2 E F0(.).24 +E .47(The order of e)108 177.6 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 189.6 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 206.4 Q +(xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E F3(pr)2.5 E +(ocess substitution)-.45 E F0(.)A 1.487(Only brace e)108 223.2 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 235.2 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 247.2 S(pansions of ").15 E F1($@)A F0 2.5("a)C(nd ") +-2.5 E F1(${)A F3(name)A F1([@]})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 F1 +(Brace Expansion)87 264 Q F3(Br)108.58 276 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 165.6 Q F1 .415 -(pathname e)2.915 F(xpansion)-.2 E F0 2.915(,b)C .415 +.606(This mechanism is similar)5.606 F(to)108 288 Q F3 .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 .151(form of an optional)108 177.6 R F1(pr)2.651 E(eamble) +(he)-2.915 E .152(form of an optional)108 300 R F3(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 189.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 201.6 R .659(xpanding left to)-.15 F(right.) -108 213.6 Q .719(Brace e)108 230.4 R .719(xpansions may be nested.)-.15 -F .719(The results of each e)5.719 F .719 +F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 312 R .563 +(wed by an optional)-.25 F F3(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(co\ +ntained within the braces, and the postscript is then appended to each \ +resulting string, e)108 324 R .658(xpanding left to)-.15 F(right.)108 +336 Q .718(Brace e)108 352.8 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 242.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.242(As) -108 259.2 S .742(equence e)-3.242 F .742(xpression tak)-.15 F .742 -(es the form)-.1 F F2({)3.242 E F1(x)A F2(..)A F1(y)A F2([..)A F1(incr)A -F2(]})A F0 3.242(,w)C(here)-3.242 E F1(x)3.242 E F0(and)3.243 E F1(y) -3.243 E F0 .743(are either inte)3.243 F .743(gers or single characters,) --.15 F(and)108 271.2 Q F1(incr)3.032 E F0 3.032(,a)C 3.032(no)-3.032 G +108 364.8 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F1({)A F0 +(d,c,b)A F1(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.243(As) +108 381.6 S .743(equence e)-3.243 F .743(xpression tak)-.15 F .743 +(es the form)-.1 F F1({)3.243 E F3(x)A F1(..)A F3(y)A F1([..)A F3(incr)A +F1(]})A F0 3.243(,w)C(here)-3.243 E F3(x)3.243 E F0(and)3.242 E F3(y) +3.242 E F0 .742(are either inte)3.242 F .742(gers or single characters,) +-.15 F(and)108 393.6 Q F3(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 .531(xpands to each)-.15 F .077(number between)108 -283.2 R F1(x)2.577 E F0(and)2.577 E F1(y)2.577 E F0 2.577(,i)C(nclusi) --2.577 E -.15(ve)-.25 G 5.077(.S).15 G .077(upplied inte)-5.077 F .077 -(gers may be pre\214x)-.15 F .077(ed with)-.15 F F1(0)2.577 E F0 .078 -(to force each term to ha)2.578 F .378 -.15(ve t)-.2 H(he).15 E .015 -(same width.)108 295.2 R .015(When either)5.015 F F1(x)2.515 E F0(or) -2.515 E F1(y)2.515 E F0(be)2.515 E .014(gins with a zero, the shell att\ +(xpression e)-.15 F .532(xpands to each)-.15 F .078(number between)108 +405.6 R F3(x)2.578 E F0(and)2.578 E F3(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 F3(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 417.6 R .014(When either)5.014 F F3(x)2.514 E F0(or) +2.514 E F3(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 307.2 R +(the same number of digits, zero-padding where necessary)108 429.6 R 6.143(.W)-.65 G 1.143(hen characters are supplied, the e)-6.143 F -(xpression)-.15 E -.15(ex)108 319.2 S 1.064(pands to each character le) -.15 F 1.064(xicographically between)-.15 F F1(x)3.564 E F0(and)3.564 E -F1(y)3.564 E F0 3.564(,i)C(nclusi)-3.564 E -.15(ve)-.25 G 3.564(,u).15 G -1.064(sing the def)-3.564 F 1.064(ault C locale.)-.1 F(Note)6.064 E .983 -(that both)108 331.2 R F1(x)3.483 E F0(and)3.483 E F1(y)3.483 E F0 .983 -(must be of the same type.)3.483 F .984 +(xpression)-.15 E -.15(ex)108 441.6 S 1.064(pands to each character le) +.15 F 1.064(xicographically between)-.15 F F3(x)3.564 E F0(and)3.564 E +F3(y)3.564 E F0 3.564(,i)C(nclusi)-3.564 E -.15(ve)-.25 G 3.564(,u).15 G +1.064(sing the def)-3.564 F 1.064(ault C locale.)-.1 F(Note)6.064 E .984 +(that both)108 453.6 R F3(x)3.484 E F0(and)3.484 E F3(y)3.484 E F0 .983 +(must be of the same type.)3.484 F .983 (When the increment is supplied, it is used as the dif)5.983 F(ference) --.25 E(between each term.)108 343.2 Q(The def)5 E -(ault increment is 1 or -1 as appropriate.)-.1 E .582(Brace e)108 360 R -.582(xpansion is performed before an)-.15 F 3.082(yo)-.15 G .581(ther e) --3.082 F .581(xpansions, and an)-.15 F 3.081(yc)-.15 G .581 -(haracters special to other e)-3.081 F(xpansions)-.15 E .015 -(are preserv)108 372 R .015(ed in the result.)-.15 F .015 -(It is strictly te)5.015 F(xtual.)-.15 E F2(Bash)5.016 E F0 .016 -(does not apply an)2.516 F 2.516(ys)-.15 G .016 -(yntactic interpretation to the con-)-2.516 F(te)108 384 Q(xt of the e) --.15 E(xpansion or the te)-.15 E(xt between the braces.)-.15 E 3.633(Ac) -108 400.8 S 1.133(orrectly-formed brace e)-3.633 F 1.132(xpansion must \ -contain unquoted opening and closing braces, and at least one)-.15 F -3.44(unquoted comma or a v)108 412.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.441(xpansion is left)-.15 F 2.755 -(unchanged. A)108 424.8 R F2({)2.755 E F0(or)2.755 E F2(,)2.755 E F0 +-.25 E(between each term.)108 465.6 Q(The def)5 E +(ault increment is 1 or -1 as appropriate.)-.1 E .581(Brace e)108 482.4 +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 494.4 R .016(ed in the result.)-.15 F .016 +(It is strictly te)5.016 F(xtual.)-.15 E F1(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 506.4 Q +(xt of the e)-.15 E(xpansion or the te)-.15 E(xt between the braces.) +-.15 E 3.632(Ac)108 523.2 S 1.132(orrectly-formed brace e)-3.632 F 1.132 +(xpansion must contain unquoted opening and closing braces, and at leas\ +t one)-.15 F 3.441(unquoted comma or a v)108 535.2 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 547.2 R F1({)2.755 E F0(or)2.755 E F1(,)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.91 -(sion. T)108 436.8 R 2.91(oa)-.8 G -.2(vo)-3.11 G .41 +(nt its being considered part of a brace e).15 F(xpres-)-.15 E 2.911 +(sion. T)108 559.2 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 .411(is not considered eligible for brace e)2.911 F -(xpan-)-.15 E(sion.)108 448.8 Q 1.476(This construct is typically used \ +F1(${)2.911 E F0 .41(is not considered eligible for brace e)2.911 F +(xpan-)-.15 E(sion.)108 571.2 Q 1.476(This construct is typically used \ as shorthand when the common pre\214x of the strings to be generated is) -108 465.6 R(longer than in the abo)108 477.6 Q .3 -.15(ve ex)-.15 H -(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 494.4 Q -.65(w,)-.25 -G(dist,b).65 E(ugs})-.2 E(or)108 506.4 Q(cho)144 518.4 Q +108 588 R(longer than in the abo)108 600 Q .3 -.15(ve ex)-.15 H(ample:) +.15 E(mkdir /usr/local/src/bash/{old,ne)144 616.8 Q -.65(w,)-.25 G +(dist,b).65 E(ugs})-.2 E(or)108 628.8 Q(cho)144 640.8 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 535.2 R .618 +-.25 E(x}})-.15 E .618(Brace e)108 657.6 R .618 (xpansion introduces a slight incompatibility with historical v)-.15 F -.618(ersions of)-.15 F F2(sh)3.118 E F0(.)A F2(sh)5.618 E F0 .618 -(does not treat open-)3.118 F .248 -(ing or closing braces specially when the)108 547.2 R 2.748(ya)-.15 G -.247(ppear as part of a w)-2.748 F .247(ord, and preserv)-.1 F .247 -(es them in the output.)-.15 F F2(Bash)5.247 E F0(remo)108 559.2 Q -.15 +.618(ersions of)-.15 F F1(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 669.6 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 681.6 Q -.15 (ve)-.15 G 3.53(sb).15 G 1.03(races from w)-3.53 F 1.03 (ords as a consequence of brace e)-.1 F 3.53(xpansion. F)-.15 F 1.03 -(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F2(sh) -3.53 E F0(as)3.53 E F1(\214le{1,2})108 571.2 Q F0 .515 -(appears identically in the output.)3.015 F .515(The same w)5.515 F .515 -(ord is output as)-.1 F F1 .514(\214le1 \214le2)4.925 F F0 .514(after e) -3.034 F .514(xpansion by)-.15 F F2(bash)3.014 E F0(.)A .436 -(If strict compatibility with)108 583.2 R F2(sh)2.936 E F0 .436 -(is desired, start)2.936 F F2(bash)2.936 E F0 .436(with the)2.936 F F2 -(+B)2.936 E F0 .436(option or disable brace e)2.936 F .437 -(xpansion with the)-.15 F F2(+B)108 595.2 Q F0(option to the)2.5 E F2 -(set)2.5 E F0(command \(see)2.5 E F3(SHELL B)2.5 E(UIL)-.09 E -(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F2 -.18(Ti)87 612 S -(lde Expansion).18 E F0 1.087(If a w)108 624 R 1.087(ord be)-.1 F 1.087 -(gins with an unquoted tilde character \(`)-.15 F F2(~)A F0 1.086 -('\), all of the characters preceding the \214rst unquoted)B .185(slash\ - \(or all characters, if there is no unquoted slash\) are considered a) -108 636 R F1(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685(fn) --5.185 G .185(one of the characters)-2.685 F .726(in the tilde-pre\214x\ - are quoted, the characters in the tilde-pre\214x follo)108 648 R .725 -(wing the tilde are treated as a possible)-.25 F F1(lo)108 660 Q .522 -(gin name)-.1 F F0 5.522(.I)C 3.022(ft)-5.522 G .522 -(his login name is the null string, the tilde is replaced with the v) --3.022 F .523(alue of the shell parameter)-.25 F F3(HOME)108 672 Q F4(.) -A F0(If)4.787 E F3(HOME)2.787 E F0 .287 -(is unset, the home directory of the user e)2.537 F -.15(xe)-.15 G .286 -(cuting the shell is substituted instead.).15 F(Other)5.286 E(-)-.2 E(w\ -ise, the tilde-pre\214x is replaced with the home directory associated \ -with the speci\214ed login name.)108 684 Q .092 -(If the tilde-pre\214x is a `~+', the v)108 700.8 R .092 -(alue of the shell v)-.25 F(ariable)-.25 E F3(PWD)2.592 E F0 .092 -(replaces the tilde-pre\214x.)2.342 F .093(If the tilde-pre\214x is) -5.093 F 3.404(a`)108 712.8 S .904(~\255', the v)-3.404 F .904 -(alue of the shell v)-.25 F(ariable)-.25 E F3(OLDPWD)3.404 E F4(,)A F0 -.904(if it is set, is substituted.)3.154 F .903(If the characters follo) -5.903 F .903(wing the)-.25 F 1.641 -(tilde in the tilde-pre\214x consist of a number)108 724.8 R F1(N)4.141 -E F0 4.142(,o)C 1.642(ptionally pre\214x)-4.142 F 1.642 -(ed by a `+' or a `\255', the tilde-pre\214x is)-.15 F(GNU Bash 4.2)72 -768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(19)185.545 E 0 Cg -EP +(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 F3(\214le{1,2})108 693.6 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 F3 .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 705.6 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 717.6 Q F0(option to the)2.5 E F1 +(set)2.5 E F0(command \(see)2.5 E F4(SHELL B)2.5 E(UIL)-.09 E +(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(19)193.45 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 1.438(replaced with the corresponding element from the directory\ - stack, as it w)108 84 R 1.437(ould be displayed by the)-.1 F/F1 10 -/Times-Bold@0 SF(dirs)3.937 E F0 -.2(bu)108 96 S .454(iltin in).2 F -.2 -(vo)-.4 G -.1(ke).2 G 2.954(dw).1 G .454 -(ith the tilde-pre\214x as an ar)-2.954 F 2.954(gument. If)-.18 F .454 -(the characters follo)2.954 F .455(wing the tilde in the tilde-pre\214x) --.25 F +-.35 E/F1 10/Times-Bold@0 SF -.18(Ti)87 84 S(lde Expansion).18 E F0 +1.086(If a w)108 96 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 considered a) +108 108 R/F2 10/Times-Italic@0 SF(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(i\ +n the tilde-pre\214x are quoted, the characters in the tilde-pre\214x f\ +ollo)108 120 R .726(wing the tilde are treated as a possible)-.25 F F2 +(lo)108 132 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 9/Times-Bold@0 SF +(HOME)108 144 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(wise, the tilde-pre\214x is replaced with the home directory asso\ +ciated with the speci\214ed login name.)108 156 Q .093 +(If the tilde-pre\214x is a `~+', the v)108 172.8 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 184.8 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 196.8 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 +208.8 R 1.438(ould be displayed by the)-.1 F F1(dirs)3.938 E F0 -.2(bu) +108 220.8 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 108 Q(If the login name is in)108 124.8 Q -.25(va)-.4 G +108 232.8 Q(If the login name is in)108 249.6 Q -.25(va)-.4 G (lid, or the tilde e).25 E(xpansion f)-.15 E(ails, the w)-.1 E -(ord is unchanged.)-.1 E .167(Each v)108 141.6 R .167 +(ord is unchanged.)-.1 E .166(Each v)108 266.4 R .167 (ariable assignment is check)-.25 F .167(ed for unquoted tilde-pre\214x) -.1 F .167(es immediately follo)-.15 F .167(wing a)-.25 F F1(:)2.667 E -F0 .167(or the \214rst)2.667 F F1(=)2.666 E F0 5.166(.I)C(n)-5.166 E -.467(these cases, tilde e)108 153.6 R .467(xpansion is also performed.) --.15 F(Consequently)5.467 E 2.967(,o)-.65 G .468 +F0 .167(or the \214rst)2.667 F F1(=)2.667 E F0 5.167(.I)C(n)-5.167 E +.468(these cases, tilde e)108 278.4 R .468(xpansion is also performed.) +-.15 F(Consequently)5.467 E 2.967(,o)-.65 G .467 (ne may use \214lenames with tildes in assign-)-2.967 F(ments to)108 -165.6 Q/F2 9/Times-Bold@0 SF -.666(PA)2.5 G(TH)-.189 E/F3 9 -/Times-Roman@0 SF(,)A F2(MAILP)2.25 E -.855(AT)-.666 G(H).855 E F3(,)A -F0(and)2.25 E F2(CDP)2.5 E -.855(AT)-.666 G(H).855 E F3(,)A F0 -(and the shell assigns the e)2.25 E(xpanded v)-.15 E(alue.)-.25 E F1 -.1 -(Pa)87 182.4 S(rameter Expansion).1 E F0 1.606(The `)108 194.4 R F1($)A -F0 4.106('c)C 1.606(haracter introduces parameter e)-4.106 F 1.605 -(xpansion, command substitution, or arithmetic e)-.15 F 4.105 -(xpansion. The)-.15 F .406(parameter name or symbol to be e)108 206.4 R -.407(xpanded may be enclosed in braces, which are optional b)-.15 F .407 -(ut serv)-.2 F 2.907(et)-.15 G 2.907(op)-2.907 G(ro-)-2.907 E .033 -(tect the v)108 218.4 R .033(ariable to be e)-.25 F .033 -(xpanded from characters immediately follo)-.15 F .032 +290.4 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 307.2 S(rameter Expansion).1 E F0 1.605 +(The `)108 319.2 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 331.2 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 343.2 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 -230.4 Q 1.189 +355.2 Q 1.19 (When braces are used, the matching ending brace is the \214rst `)108 -247.2 R F1(})A F0 3.69('n)C 1.19(ot escaped by a backslash or within a) --3.69 F 2.15(quoted string, and not within an embedded arithmetic e)108 -259.2 R 2.15(xpansion, command substitution, or parameter)-.15 F -.15 -(ex)108 271.2 S(pansion.).15 E(${)108 288 Q/F4 10/Times-Italic@0 SF(par) -A(ameter)-.15 E F0(})A 1.204(The v)144 300 R 1.204(alue of)-.25 F F4 -(par)3.704 E(ameter)-.15 E F0 1.204(is substituted.)3.704 F 1.204 -(The braces are required when)6.204 F F4(par)4.955 E(ameter)-.15 E F0 -1.205(is a positional)4.435 F .264 -(parameter with more than one digit, or when)144 312 R F4(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 2.676 -(be interpreted as part of its name.)144 324 R(The)7.677 E F4(par)5.177 -E(ameter)-.15 E F0 2.677(is a shell parameter as described abo)5.177 F --.15(ve)-.15 G F1 -.74(PA)144 336 S(RAMETERS).74 E F0 2.5(\)o)C 2.5(ra) --2.5 G 2.5(na)-2.5 G(rray reference \()-2.5 E F1(Arrays)A F0(\).)A .816 -(If the \214rst character of)108 352.8 R F4(par)3.316 E(ameter)-.15 E F0 -.816(is an e)3.316 F .816(xclamation point \()-.15 F F1(!)A F0 .816 -(\), it introduces a le)B -.15(ve)-.25 G 3.316(lo).15 G 3.315(fv)-3.316 -G .815(ariable indirection.)-3.565 F F1(Bash)108 364.8 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 F4(par)2.606 E(ameter)-.15 E F0 +372 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 +384 R 2.15(xpansion, command substitution, or parameter)-.15 F -.15(ex) +108 396 S(pansion.).15 E(${)108 412.8 Q F2(par)A(ameter)-.15 E F0(})A +1.205(The v)144 424.8 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 436.8 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 2.677 +(be interpreted as part of its name.)144 448.8 R(The)7.677 E F2(par) +5.177 E(ameter)-.15 E F0 2.676(is a shell parameter as described abo) +5.177 F -.15(ve)-.15 G F1 -.74(PA)144 460.8 S(RAMETERS).74 E F0 2.5(\)o) +C 2.5(ra)-2.5 G 2.5(na)-2.5 G(rray reference \()-2.5 E F1(Arrays)A F0 +(\).)A .815(If the \214rst character of)108 477.6 R F2(par)3.316 E +(ameter)-.15 E F0 .816(is an e)3.316 F .816(xclamation point \()-.15 F +F1(!)A F0 .816(\), it introduces a le)B -.15(ve)-.25 G 3.316(lo).15 G +3.316(fv)-3.316 G .816(ariable indirection.)-3.566 F F1(Bash)108 489.6 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 376.8 R .352(xpanded and that v)-.15 F .351 +E .351(able is then e)108 501.6 R .351(xpanded and that v)-.15 F .352 (alue is used in the rest of the substitution, rather than the v)-.25 F -.351(alue of)-.25 F F4(par)2.851 E(ame-)-.15 E(ter)108 388.8 Q F0 2.519 -(itself. This)2.519 F .019(is kno)2.519 F .019(wn as)-.25 F F4(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 F1 -(!)A F4(pr)A(e\214x)-.37 E F1(*)A F0 2.52(}a)C(nd)-2.52 E(${)108 400.8 Q -F1(!)A F4(name)A F0([)A F4(@)A F0 .763(]} described belo)B 4.563 -.65 +.352(alue of)-.25 F F2(par)2.852 E(ame-)-.15 E(ter)108 513.6 Q F0 2.52 +(itself. This)2.52 F .02(is kno)2.52 F .02(wn as)-.25 F F2(indir)2.52 E +.02(ect e)-.37 F(xpansion)-.2 E F0 5.019(.T)C .019(he e)-5.019 F .019 +(xceptions to this are the e)-.15 F .019(xpansions of ${)-.15 F F1(!)A +F2(pr)A(e\214x)-.37 E F1(*)A F0 2.519(}a)C(nd)-2.519 E(${)108 525.6 Q F1 +(!)A F2(name)A F0([)A F2(@)A F0 .762(]} 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 412.8 Q -.334(In each of the cases belo)108 429.6 R -.65(w,)-.25 G F4(wor)3.484 E +(he left brace in order to)-3.263 F(introduce indirection.)108 537.6 Q +.334(In each of the cases belo)108 554.4 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 441.6 Q(xpansion.)-.15 E 1.09 -(When not performing substring e)108 458.4 R 1.089 +F(and arithmetic e)108 566.4 Q(xpansion.)-.15 E 1.089 +(When not performing substring e)108 583.2 R 1.089 (xpansion, using the forms documented belo)-.15 F 3.589(w\()-.25 G -(e.g.,)-3.589 E F1(:-)3.589 E F0(\),)A F1(bash)3.589 E F0 1.089 -(tests for a)3.589 F(parameter that is unset or null.)108 470.4 Q(Omitt\ -ing the colon results in a test only for a parameter that is unset.)5 E -(${)108 487.2 Q F4(par)A(ameter)-.15 E F1<3aad>A F4(wor)A(d)-.37 E F0(}) -A F1 .722(Use Default V)144 499.2 R(alues)-.92 E F0 5.722(.I)C(f)-5.722 -E F4(par)4.472 E(ameter)-.15 E F0 .723(is unset or null, the e)3.952 F -.723(xpansion of)-.15 F F4(wor)3.563 E(d)-.37 E F0 .723(is substituted.) -3.993 F(Other)5.723 E(-)-.2 E(wise, the v)144 511.2 Q(alue of)-.25 E F4 -(par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E(${)108 523.2 Q F4 -(par)A(ameter)-.15 E F1(:=)A F4(wor)A(d)-.37 E F0(})A F1 2.005 -(Assign Default V)144 535.2 R(alues)-.92 E F0 7.005(.I)C(f)-7.005 E F4 -(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 F4(wor)4.844 E(d)-.37 E F0 2.004 -(is assigned to)5.274 F F4(par)144 547.2 Q(ameter)-.15 E F0 5.278(.T).73 -G .278(he v)-5.278 F .278(alue of)-.25 F F4(par)4.028 E(ameter)-.15 E F0 -.278(is then substituted.)3.508 F .279 +(e.g.,)-3.589 E F1(:-)3.59 E F0(\),)A F1(bash)3.59 E F0 1.09 +(tests for a)3.59 F(parameter that is unset or null.)108 595.2 Q(Omitti\ +ng the colon results in a test only for a parameter that is unset.)5 E +(${)108 612 Q F2(par)A(ameter)-.15 E F1<3aad>A F2(wor)A(d)-.37 E F0(})A +F1 .723(Use Default V)144 624 R(alues)-.92 E F0 5.723(.I)C(f)-5.723 E F2 +(par)4.473 E(ameter)-.15 E F0 .723(is unset or null, the e)3.953 F .722 +(xpansion of)-.15 F F2(wor)3.562 E(d)-.37 E F0 .722(is substituted.) +3.992 F(Other)5.722 E(-)-.2 E(wise, the v)144 636 Q(alue of)-.25 E F2 +(par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E(${)108 648 Q F2(par) +A(ameter)-.15 E F1(:=)A F2(wor)A(d)-.37 E F0(})A F1 2.004 +(Assign Default V)144 660 R(alues)-.92 E F0 7.004(.I)C(f)-7.004 E F2 +(par)5.754 E(ameter)-.15 E F0 2.005(is unset or null, the e)5.234 F +2.005(xpansion of)-.15 F F2(wor)4.845 E(d)-.37 E F0 2.005 +(is assigned to)5.275 F F2(par)144 672 Q(ameter)-.15 E F0 5.279(.T).73 G +.279(he v)-5.279 F .279(alue of)-.25 F F2(par)4.029 E(ameter)-.15 E F0 +.278(is then substituted.)3.508 F .278 (Positional parameters and special param-)5.278 F -(eters may not be assigned to in this w)144 559.2 Q(ay)-.1 E(.)-.65 E -(${)108 571.2 Q F4(par)A(ameter)-.15 E F1(:?)A F4(wor)A(d)-.37 E F0(})A -F1 .535(Display Err)144 583.2 R .535(or if Null or Unset)-.18 F F0 5.535 -(.I)C(f)-5.535 E F4(par)4.285 E(ameter)-.15 E F0 .535 -(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F4(wor)3.035 E -(d)-.37 E F0 .535(\(or a mes-)3.035 F .661(sage to that ef)144 595.2 R -.661(fect if)-.25 F F4(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 607.2 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 F4(par)2.5 E(ameter)-.15 E F0 -(is substituted.)2.5 E(${)108 619.2 Q F4(par)A(ameter)-.15 E F1(:+)A F4 -(wor)A(d)-.37 E F0(})A F1 .745(Use Alter)144 631.2 R .745(nate V)-.15 F -(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F4(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 643.2 Q F4(wor)2.84 E(d)-.37 E F0 -(is substituted.)3.27 E(${)108 655.2 Q F4(par)A(ameter)-.15 E F1(:)A F4 -(of)A(fset)-.18 E F0(})A(${)108 667.2 Q F4(par)A(ameter)-.15 E F1(:)A F4 -(of)A(fset)-.18 E F1(:)A F4(length)A F0(})A F1 .002(Substring Expansion) -144 679.2 R F0 5.002(.E)C .002(xpands to up to)-5.002 F F4(length)2.502 -E F0 .002(characters of the v)2.502 F .002(alue of)-.25 F F4(par)2.502 E -(ameter)-.15 E F0 .002(starting at the)2.502 F 1.082 -(character speci\214ed by)144 691.2 R F4(of)3.582 E(fset)-.18 E F0 6.082 -(.I)C(f)-6.082 E F4(par)3.582 E(ameter)-.15 E F0(is)3.582 E F1(@)3.582 E -F0 3.582(,a)C 3.582(ni)-3.582 G(nde)-3.582 E -.15(xe)-.15 G 3.582(da).15 -G 1.082(rray subscripted by)-3.582 F F1(@)3.582 E F0(or)3.581 E F1(*) -3.581 E F0 3.581(,o)C 3.581(ra)-3.581 G(n)-3.581 E(associati)144 703.2 Q -1.022 -.15(ve a)-.25 H .722(rray name, the results dif).15 F .722 -(fer as described belo)-.25 F 4.522 -.65(w. I)-.25 H(f).65 E F4(length) -3.222 E F0 .722(is omitted, e)3.222 F .722(xpands to the)-.15 F .043 -(substring of the v)144 715.2 R .043(alue of)-.25 F F4(par)2.543 E -(ameter)-.15 E F0 .042(starting at the character speci\214ed by)2.543 F -F4(of)2.542 E(fset)-.18 E F0 .042(and e)2.542 F .042(xtending to the) --.15 F .846(end of the v)144 727.2 R(alue.)-.25 E F4(length)5.846 E F0 -(and)3.346 E F4(of)3.346 E(fset)-.18 E F0 .846(are arithmetic e)3.346 F -.847(xpressions \(see)-.15 F F2 .847(ARITHMETIC EV)3.347 F(ALU)-1.215 E --.855(AT)-.54 G(ION).855 E F0(GNU Bash 4.2)72 768 Q(2012 No)136.385 E --.15(ve)-.15 G(mber 24).15 E(20)185.545 E 0 Cg EP +(eters may not be assigned to in this w)144 684 Q(ay)-.1 E(.)-.65 E(${) +108 696 Q F2(par)A(ameter)-.15 E F1(:?)A F2(wor)A(d)-.37 E F0(})A F1 +.535(Display Err)144 708 R .535(or if Null or Unset)-.18 F F0 5.535(.I)C +(f)-5.535 E F2(par)4.285 E(ameter)-.15 E F0 .535 +(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F2(wor)3.035 E +(d)-.37 E F0 .535(\(or a mes-)3.035 F .662(sage to that ef)144 720 R +.662(fect if)-.25 F F2(wor)3.502 E(d)-.37 E F0 .661(is not present\) is\ + written to the standard error and the shell, if it is not)3.932 F +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(20)193.45 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(belo)144 84 Q(w\).)-.25 E(If)144 108 Q/F1 10/Times-Italic@0 SF -(of)3.029 E(fset)-.18 E F0 -.25(eva)3.029 G .529 +-.35 E(interacti)144 84 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 10 +/Times-Italic@0 SF(par)2.5 E(ameter)-.15 E F0(is substituted.)2.5 E(${) +108 96 Q F1(par)A(ameter)-.15 E/F2 10/Times-Bold@0 SF(:+)A F1(wor)A(d) +-.37 E F0(})A F2 .745(Use Alter)144 108 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 120 Q F1(wor)2.84 E(d)-.37 E F0 +(is substituted.)3.27 E(${)108 132 Q F1(par)A(ameter)-.15 E F2(:)A F1 +(of)A(fset)-.18 E F0(})A(${)108 144 Q F1(par)A(ameter)-.15 E F2(:)A F1 +(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .002(Substring Expansion) +144 156 R F0 5.002(.E)C .002(xpands to up to)-5.002 F F1(length)2.502 E +F0 .002(characters of the v)2.502 F .002(alue of)-.25 F F1(par)2.502 E +(ameter)-.15 E F0 .002(starting at the)2.502 F 1.081 +(character speci\214ed by)144 168 R F1(of)3.581 E(fset)-.18 E F0 6.081 +(.I)C(f)-6.081 E F1(par)3.582 E(ameter)-.15 E F0(is)3.582 E F2(@)3.582 E +F0 3.582(,a)C 3.582(ni)-3.582 G(nde)-3.582 E -.15(xe)-.15 G 3.582(da).15 +G 1.082(rray subscripted by)-3.582 F F2(@)3.582 E F0(or)3.582 E F2(*) +3.582 E F0 3.582(,o)C 3.582(ra)-3.582 G(n)-3.582 E(associati)144 180 Q +1.022 -.15(ve a)-.25 H .722(rray name, the results dif).15 F .722 +(fer as described belo)-.25 F 4.522 -.65(w. I)-.25 H(f).65 E F1(length) +3.222 E F0 .722(is omitted, e)3.222 F .722(xpands to the)-.15 F .042 +(substring of the v)144 192 R .042(alue of)-.25 F F1(par)2.542 E(ameter) +-.15 E F0 .043(starting at the character speci\214ed by)2.542 F F1(of) +2.543 E(fset)-.18 E F0 .043(and e)2.543 F .043(xtending to the)-.15 F +.847(end of the v)144 204 R(alue.)-.25 E F1(length)5.846 E F0(and)3.346 +E F1(of)3.346 E(fset)-.18 E F0 .846(are arithmetic e)3.346 F .846 +(xpressions \(see)-.15 F/F3 9/Times-Bold@0 SF .846(ARITHMETIC EV)3.346 F +(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(belo)144 216 Q(w\).)-.25 E +(If)144 240 Q F1(of)3.028 E(fset)-.18 E F0 -.25(eva)3.029 G .529 (luates to a number less than zero, the v).25 F .529 (alue is used as an of)-.25 F .529(fset in characters from the)-.25 F -.045(end of the v)144 120 R .045(alue of)-.25 F F1(par)2.546 E(ameter) +.046(end of the v)144 252 R .046(alue of)-.25 F F1(par)2.546 E(ameter) -.15 E F0 5.046(.I)C(f)-5.046 E F1(length)2.546 E F0 -.25(eva)2.546 G .046(luates to a number less than zero, it is interpreted as an).25 F -(of)144 132 Q .203(fset in characters from the end of the v)-.25 F .202 -(alue of)-.25 F F1(par)2.702 E(ameter)-.15 E F0 .202 -(rather than a number of characters, and)2.702 F .557(the e)144 144 R -.557(xpansion is the characters between)-.15 F F1(of)3.057 E(fset)-.18 E -F0 .557(and that result.)3.057 F .558(Note that a ne)5.558 F -.05(ga) --.15 G(ti).05 E .858 -.15(ve o)-.25 H -.25(ff).15 G .558(set must be).25 -F(separated from the colon by at least one space to a)144 156 Q -.2(vo) --.2 G(id being confused with the).2 E/F2 10/Times-Bold@0 SF(:-)2.5 E F0 --.15(ex)2.5 G(pansion.).15 E(If)144 180 Q F1(par)2.959 E(ameter)-.15 E -F0(is)2.959 E F2(@)2.959 E F0 2.959(,t)C .459(he result is)-2.959 F F1 -(length)2.959 E F0 .459(positional parameters be)2.959 F .458 -(ginning at)-.15 F F1(of)2.958 E(fset)-.18 E F0 5.458(.A)C(ne)-2.5 E --.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F1(of)3.108 E(fset)-.18 E F0 .095 -(is tak)144 192 R .095(en relati)-.1 F .396 -.15(ve t)-.25 H 2.596(oo) -.15 G .096(ne greater than the greatest positional parameter)-2.596 F -2.596(,s)-.4 G 2.596(oa)-2.596 G 2.596(no)-2.596 G -.25(ff)-2.596 G .096 -(set of -1 e).25 F -.25(va)-.25 G .096(luates to).25 F 1.322 -(the last positional parameter)144 204 R 6.322(.I)-.55 G 3.822(ti)-6.322 +(of)144 264 Q .202(fset in characters from the end of the v)-.25 F .202 +(alue of)-.25 F F1(par)2.702 E(ameter)-.15 E F0 .203 +(rather than a number of characters, and)2.702 F .558(the e)144 276 R +.558(xpansion is the characters between)-.15 F F1(of)3.058 E(fset)-.18 E +F0 .558(and that result.)3.058 F .557(Note that a ne)5.557 F -.05(ga) +-.15 G(ti).05 E .857 -.15(ve o)-.25 H -.25(ff).15 G .557(set must be).25 +F(separated from the colon by at least one space to a)144 288 Q -.2(vo) +-.2 G(id being confused with the).2 E F2(:-)2.5 E F0 -.15(ex)2.5 G +(pansion.).15 E(If)144 312 Q F1(par)2.958 E(ameter)-.15 E F0(is)2.958 E +F2(@)2.958 E F0 2.958(,t)C .458(he result is)-2.958 F F1(length)2.959 E +F0 .459(positional parameters be)2.959 F .459(ginning at)-.15 F F1(of) +2.959 E(fset)-.18 E F0 5.459(.A)C(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15 +(ve)-.25 G F1(of)3.109 E(fset)-.18 E F0 .096(is tak)144 324 R .096 +(en relati)-.1 F .396 -.15(ve t)-.25 H 2.596(oo).15 G .096 +(ne greater than the greatest positional parameter)-2.596 F 2.596(,s)-.4 +G 2.596(oa)-2.596 G 2.596(no)-2.596 G -.25(ff)-2.596 G .096(set of -1 e) +.25 F -.25(va)-.25 G .095(luates to).25 F 1.321 +(the last positional parameter)144 336 R 6.322(.I)-.55 G 3.822(ti)-6.322 G 3.822(sa)-3.822 G 3.822(ne)-3.822 G 1.322(xpansion error if)-3.972 F F1(length)3.822 E F0 -.25(eva)3.822 G 1.322 -(luates to a number less than).25 F(zero.)144 216 Q(If)144 240 Q F1(par) -3.013 E(ameter)-.15 E F0 .514(is an inde)3.013 F -.15(xe)-.15 G 3.014 +(luates to a number less than).25 F(zero.)144 348 Q(If)144 372 Q F1(par) +3.014 E(ameter)-.15 E F0 .514(is an inde)3.014 F -.15(xe)-.15 G 3.014 (da).15 G .514(rray name subscripted by @ or *, the result is the)-3.014 -F F1(length)3.014 E F0 .514(members of)3.014 F 1.082(the array be)144 -252 R 1.082(ginning with ${)-.15 F F1(par)A(ameter)-.15 E F0([)A F1(of)A -(fset)-.18 E F0 3.582(]}. A)B(ne)3.582 E -.05(ga)-.15 G(ti).05 E -.15 -(ve)-.25 G F1(of)3.732 E(fset)-.18 E F0 1.081(is tak)3.581 F 1.081 -(en relati)-.1 F 1.381 -.15(ve t)-.25 H 3.581(oo).15 G 1.081(ne greater) --3.581 F 1.079(than the maximum inde)144 264 R 3.579(xo)-.15 G 3.579(ft) --3.579 G 1.079(he speci\214ed array)-3.579 F 6.079(.I)-.65 G 3.579(ti) --6.079 G 3.579(sa)-3.579 G 3.58(ne)-3.579 G 1.08(xpansion error if)-3.73 -F F1(length)3.58 E F0 -.25(eva)3.58 G 1.08(luates to a).25 F -(number less than zero.)144 276 Q(Substring e)144 300 Q +F F1(length)3.014 E F0 .513(members of)3.013 F 1.081(the array be)144 +384 R 1.081(ginning with ${)-.15 F F1(par)A(ameter)-.15 E F0([)A F1(of)A +(fset)-.18 E F0 3.581(]}. A)B(ne)3.581 E -.05(ga)-.15 G(ti).05 E -.15 +(ve)-.25 G F1(of)3.732 E(fset)-.18 E F0 1.082(is tak)3.582 F 1.082 +(en relati)-.1 F 1.382 -.15(ve t)-.25 H 3.582(oo).15 G 1.082(ne greater) +-3.582 F 1.08(than the maximum inde)144 396 R 3.58(xo)-.15 G 3.58(ft) +-3.58 G 1.08(he speci\214ed array)-3.58 F 6.079(.I)-.65 G 3.579(ti) +-6.079 G 3.579(sa)-3.579 G 3.579(ne)-3.579 G 1.079(xpansion error if) +-3.729 F F1(length)3.579 E F0 -.25(eva)3.579 G 1.079(luates to a).25 F +(number less than zero.)144 408 Q(Substring e)144 432 Q (xpansion applied to an associati)-.15 E .3 -.15(ve a)-.25 H -(rray produces unde\214ned results.).15 E 1.931(Substring inde)144 324 R +(rray produces unde\214ned results.).15 E 1.93(Substring inde)144 456 R 1.931(xing is zero-based unless the positional parameters are used, in \ -which case the)-.15 F(inde)144 336 Q .306(xing starts at 1 by def)-.15 F -2.806(ault. If)-.1 F F1(of)2.807 E(fset)-.18 E F0 .307 -(is 0, and the positional parameters are used,)2.807 F F2($0)2.807 E F0 -.307(is pre\214x)2.807 F(ed)-.15 E(to the list.)144 348 Q(${)108 364.8 Q -F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A F0(})A(${)108 376.8 Q F2(!)A F1(pr)A -(e\214x)-.37 E F2(@)A F0(})A F2 .085(Names matching pr)144 388.8 R -(e\214x)-.18 E F0 5.085(.E)C .084(xpands to the names of v)-5.085 F .084 -(ariables whose names be)-.25 F .084(gin with)-.15 F F1(pr)2.584 E -(e\214x)-.37 E F0 2.584(,s)C(epa-)-2.584 E .257 -(rated by the \214rst character of the)144 400.8 R/F3 9/Times-Bold@0 SF -(IFS)2.757 E F0 .257(special v)2.507 F 2.757(ariable. When)-.25 F F1(@) -2.758 E F0 .258(is used and the e)2.758 F .258(xpansion appears)-.15 F -(within double quotes, each v)144 412.8 Q(ariable name e)-.25 E -(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 429.6 Q F2(!)A F1(name) -A F0([)A F1(@)A F0(]})A(${)108 441.6 Q F2(!)A F1(name)A F0([)A F1(*)A F0 -(]})A F2 2.036(List of array k)144 453.6 R(eys)-.1 E F0 7.036(.I)C(f) +which case the)-.15 F(inde)144 468 Q .307(xing starts at 1 by def)-.15 F +2.807(ault. If)-.1 F F1(of)2.807 E(fset)-.18 E F0 .307 +(is 0, and the positional parameters are used,)2.807 F F2($0)2.806 E F0 +.306(is pre\214x)2.806 F(ed)-.15 E(to the list.)144 480 Q(${)108 496.8 Q +F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A F0(})A(${)108 508.8 Q F2(!)A F1(pr)A +(e\214x)-.37 E F2(@)A F0(})A F2 .084(Names matching pr)144 520.8 R +(e\214x)-.18 E F0 5.084(.E)C .084(xpands to the names of v)-5.084 F .084 +(ariables whose names be)-.25 F .085(gin with)-.15 F F1(pr)2.585 E +(e\214x)-.37 E F0 2.585(,s)C(epa-)-2.585 E .258 +(rated by the \214rst character of the)144 532.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 544.8 Q(ariable name e)-.25 E +(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 561.6 Q F2(!)A F1(name) +A F0([)A F1(@)A F0(]})A(${)108 573.6 Q F2(!)A F1(name)A F0([)A F1(*)A F0 +(]})A F2 2.035(List of array k)144 585.6 R(eys)-.1 E F0 7.036(.I)C(f) -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 .595(assigned in)144 465.6 R F1(name)3.095 E F0 -5.595(.I)C(f)-5.595 E F1(name)3.095 E F0 .595(is not an array)3.095 F -3.095(,e)-.65 G .595(xpands to 0 if)-3.245 F F1(name)3.095 E F0 .596 -(is set and null otherwise.)3.095 F(When)5.596 E F1(@)144 477.6 Q F0 +-.15(ey)-.1 G(s\)).15 E .596(assigned in)144 597.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 609.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 -494.4 Q F2(#)A F1(par)A(ameter)-.15 E F0(})A F2 -.1(Pa)144 506.4 S .471 -(rameter length).1 F F0 5.471(.T)C .471 -(he length in characters of the v)-5.471 F .471(alue of)-.25 F F1(par) -2.971 E(ameter)-.15 E F0 .47(is substituted.)2.97 F(If)5.47 E F1(par) -4.22 E(ame-)-.15 E(ter)144 518.4 Q F0(is)4.438 E F2(*)3.708 E F0(or) -3.708 E F2(@)3.708 E F0 3.708(,t)C 1.208(he v)-3.708 F 1.208 +626.4 Q F2(#)A F1(par)A(ameter)-.15 E F0(})A F2 -.1(Pa)144 638.4 S .47 +(rameter length).1 F F0 5.47(.T)C .471(he length in characters of the v) +-5.47 F .471(alue of)-.25 F F1(par)2.971 E(ameter)-.15 E F0 .471 +(is substituted.)2.971 F(If)5.471 E F1(par)4.221 E(ame-)-.15 E(ter)144 +650.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.209 E F1(par)4.959 E(ameter)-.15 E F0 1.209(is an)4.439 F .349 -(array name subscripted by)144 530.4 R F2(*)2.849 E F0(or)2.849 E F2(@) +6.208 E F1(par)4.958 E(ameter)-.15 E F0 1.208(is an)4.438 F .348 +(array name subscripted by)144 662.4 R F2(*)2.849 E F0(or)2.849 E F2(@) 2.849 E F0 2.849(,t)C .349(he v)-2.849 F .349 -(alue substituted is the number of elements in the array)-.25 F 5.348 -(.I)-.65 G(f)-5.348 E F1(par)145.25 542.4 Q(ameter)-.15 E F0 .455 -(is an inde)3.685 F -.15(xe)-.15 G 2.955(da).15 G .456 -(rray name subscripted by a ne)-2.955 F -.05(ga)-.15 G(ti).05 E .756 --.15(ve n)-.25 H(umber).15 E 2.956(,t)-.4 G .456 -(hat number is interpreted)-2.956 F .973(as relati)144 554.4 R 1.273 --.15(ve t)-.25 H 3.473(oo).15 G .973(ne greater than the maximum inde) --3.473 F 3.473(xo)-.15 G(f)-3.473 E F1(par)3.473 E(ameter)-.15 E F0 -3.472(,s)C 3.472(on)-3.472 G -2.25 -.15(eg a)-3.472 H(ti).15 E 1.272 --.15(ve i)-.25 H .972(ndices count back).15 F(from the end of the array) -144 566.4 Q 2.5(,a)-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 -G 2.5(1r)-2.5 G(eferences the last element.)-2.5 E(${)108 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 6.196(.T)C(he)-6.196 E F1(wor)4.036 E(d)-.37 E F0 1.196 -(is e)4.466 F 1.196(xpanded to produce a pattern just as in path-)-.15 F -.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.2)72 768 Q(2012 No) -136.385 E -.15(ve)-.15 G(mber 24).15 E(21)185.545 E 0 Cg EP +(alue substituted is the number of elements in the array)-.25 F 5.349 +(.I)-.65 G(f)-5.349 E F1(par)145.25 674.4 Q(ameter)-.15 E F0 .456 +(is an inde)3.686 F -.15(xe)-.15 G 2.956(da).15 G .456 +(rray name subscripted by a ne)-2.956 F -.05(ga)-.15 G(ti).05 E .756 +-.15(ve n)-.25 H(umber).15 E 2.955(,t)-.4 G .455 +(hat number is interpreted)-2.955 F .972(as relati)144 686.4 R 1.272 +-.15(ve t)-.25 H 3.472(oo).15 G .973(ne greater than the maximum inde) +-3.472 F 3.473(xo)-.15 G(f)-3.473 E F1(par)3.473 E(ameter)-.15 E F0 +3.473(,s)C 3.473(on)-3.473 G -2.25 -.15(eg a)-3.473 H(ti).15 E 1.273 +-.15(ve i)-.25 H .973(ndices count back).15 F(from the end of the array) +144 698.4 Q 2.5(,a)-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 +G 2.5(1r)-2.5 G(eferences the last element.)-2.5 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(21)193.45 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(${)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 5.146(.T)C(he) --5.146 E F1(wor)2.646 E(d)-.37 E F0 .147(is e)2.647 F .147 -(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144 108 -S 3.088(pansion. If).15 F .588 +/Times-Bold@0 SF(#)A F1(wor)A(d)-.37 E F0(})A(${)108 96 Q F1(par)A +(ameter)-.15 E F2(##)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 108 Q 1.396 +-.1(ve m)-.1 H 1.196(atching pr).1 F 1.196(e\214x patter)-.18 F(n)-.15 E +F0 6.196(.T)C(he)-6.196 E F1(wor)4.036 E(d)-.37 E F0 1.196(is e)4.466 F +1.196(xpanded to produce a pattern just as in path-)-.15 F .151(name e) +144 120 R 2.651(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 .152(hen the result of)-2.652 F 1.4 +(the e)144 132 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 144 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.782 E F0 2.782(,t)C .282(he pattern)-2.782 F(remo)144 156 +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 .401(tant list.)144 168 R +(If)5.401 E F1(par)4.151 E(ameter)-.15 E F0 .401(is an array v)3.631 F +.401(ariable subscripted with)-.25 F F2(@)2.901 E F0(or)2.901 E F2(*) +2.901 E F0 2.902(,t)C .402(he pattern remo)-2.902 F -.25(va)-.15 G 2.902 +(lo).25 G(peration)-2.902 E +(is applied to each member of the array in turn, and the e)144 180 Q +(xpansion is the resultant list.)-.15 E(${)108 196.8 Q F1(par)A(ameter) +-.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(${)108 208.8 Q F1(par)A(ameter) +-.15 E F2(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 220.8 Q .347 -.1 +(ve m)-.1 H .147(atching suf\214x patter).1 F(n)-.15 E F0 5.147(.T)C(he) +-5.147 E F1(wor)2.647 E(d)-.37 E F0 .147(is e)2.647 F .146 +(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144 +232.8 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 +G .588(hen the)-3.088 F .226(result of the e)144 244.8 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 +(with the shortest matching pattern \(the)3.456 F -.74(``)144 256.8 S F2 +(%).74 E F0 1.521 -.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 +(ameter)-.15 E F0(is)3.272 E F2(@)2.542 E F0(or)2.542 E F2(*)2.542 E F0 +2.542(,t)C(he)-2.542 E .441(pattern remo)144 268.8 R -.25(va)-.15 G +2.941(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 6.106(.T)C(he)-6.106 -E F1(pattern)3.606 E F0 1.106(is e)3.606 F 1.107 +-2.941 F .44(xpansion is the)-.15 F .24(resultant list.)144 280.8 R(If) +5.24 E F1(par)3.99 E(ameter)-.15 E F0 .24(is an array v)3.47 F .241 +(ariable subscripted with)-.25 F F2(@)2.741 E F0(or)2.741 E F2(*)2.741 E +F0 2.741(,t)C .241(he pattern remo)-2.741 F -.25(va)-.15 G 2.741(lo).25 +G(per)-2.741 E(-)-.2 E +(ation is applied to each member of the array in turn, and the e)144 +292.8 Q(xpansion is the resultant list.)-.15 E(${)108 309.6 Q F1(par)A +(ameter)-.15 E F2(/)A F1(pattern)A F2(/)A F1(string)A F0(})A F2 -.1(Pa) +144 321.6 S(tter).1 E 3.607(ns)-.15 G(ubstitution)-3.607 E F0 6.107(.T)C +(he)-6.107 E F1(pattern)3.607 E F0 1.107(is e)3.607 F 1.106 (xpanded to produce a pattern just as in pathname e)-.15 F(xpan-)-.15 E -(sion.)144 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) +(sion.)144 333.6 Q F1 -.8(Pa)6.033 G -.15(ra).8 G(meter).15 E F0 1.033 +(is e)3.533 F 1.033(xpanded and the longest match of)-.15 F F1(pattern) +3.533 E F0(ag)3.533 E 1.034(ainst its v)-.05 F 1.034 +(alue is replaced with)-.25 F F1(string)144 345.6 Q F0 5.161(.I)C(f) +-5.161 E F1(pattern)2.661 E F0(be)2.661 E .161(gins with)-.15 F F2(/) +2.661 E F0 2.661(,a)C .161(ll matches of)-2.661 F F1(pattern)2.661 E F0 +.16(are replaced with)2.661 F F1(string)2.66 E F0 5.16(.N)C .16 +(ormally only the)-5.16 F .806(\214rst match is replaced.)144 357.6 R +(If)5.806 E F1(pattern)3.306 E F0(be)3.306 E .806(gins with)-.15 F F2(#) +3.306 E F0 3.306(,i)C 3.307(tm)-3.306 G .807(ust match at the be)-3.307 +F .807(ginning of the e)-.15 F(xpanded)-.15 E -.25(va)144 369.6 S .621 +(lue of).25 F F1(par)3.121 E(ameter)-.15 E F0 5.621(.I)C(f)-5.621 E F1 +(pattern)3.121 E F0(be)3.121 E .621(gins with)-.15 F F2(%)3.121 E F0 +3.121(,i)C 3.121(tm)-3.121 G .62(ust match at the end of the e)-3.121 F +.62(xpanded v)-.15 F .62(alue of)-.25 F F1(par)144 381.6 Q(ameter)-.15 E +F0 6.253(.I)C(f)-6.253 E F1(string)3.753 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 +3.753 E F0(follo)3.753 E(wing)-.25 E F1(pattern)3.753 E F0 1.254(may be) +3.754 F 2.679(omitted. If)144 393.6 R F1(par)3.929 E(ameter)-.15 E F0 +(is)3.409 E F2(@)2.679 E F0(or)2.679 E F2(*)2.679 E F0 2.679(,t)C .178 (he substitution operation is applied to each positional parameter) --2.679 F .619(in turn, and the e)144 280.8 R .619 +-2.679 F .618(in turn, and the e)144 405.6 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 5.438(.T)C -.438(his e)-5.438 F .437 +(ameter)-.15 E F0 .619(is an array v)3.849 F .619 +(ariable subscripted with)-.25 F F2(@)144 417.6 Q F0(or)3.224 E F2(*) +3.224 E F0 3.224(,t)C .723(he substitution operation is applied to each\ + member of the array in turn, and the e)-3.224 F(xpan-)-.15 E +(sion is the resultant list.)144 429.6 Q(${)108 446.4 Q F1(par)A(ameter) +-.15 E F2(^)A F1(pattern)A F0(})A(${)108 458.4 Q F1(par)A(ameter)-.15 E +F2(^^)A F1(pattern)A F0(})A(${)108 470.4 Q F1(par)A(ameter)-.15 E F2(,)A +F1(pattern)A F0(})A(${)108 482.4 Q F1(par)A(ameter)-.15 E F2(,,)A F1 +(pattern)A F0(})A F2 .437(Case modi\214cation)144 494.4 R F0 5.437(.T)C +.437(his e)-5.437 F .438 (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 1.406(is e)3.906 F 1.407 -(xpanded to produce a pattern just as in pathname e)-.15 F 3.907 -(xpansion. Each)-.15 F 1.407(character in the)3.907 F -.15(ex)144 393.6 -S 1.232(panded v).15 F 1.232(alue of)-.25 F F1(par)3.732 E(ameter)-.15 E +2.938 E(ameter)-.15 E F0 5.438(.T)C(he)-5.438 E F1(pattern)144 506.4 Q +F0 1.407(is e)3.907 F 1.407 +(xpanded to produce a pattern just as in pathname e)-.15 F 3.906 +(xpansion. Each)-.15 F 1.406(character in the)3.906 F -.15(ex)144 518.4 +S 1.231(panded v).15 F 1.231(alue of)-.25 F F1(par)3.732 E(ameter)-.15 E F0 1.232(is tested ag)3.732 F(ainst)-.05 E F1(pattern)3.732 E F0 3.732 (,a)C 1.232(nd, if it matches the pattern, its case is)-3.732 F(con)144 -405.6 Q -.15(ve)-.4 G 2.924(rted. The).15 F .424 +530.4 Q -.15(ve)-.4 G 2.924(rted. The).15 F .424 (pattern should not attempt to match more than one character)2.924 F 5.424(.T)-.55 G(he)-5.424 E F2(^)2.924 E F0 .424(operator con-)2.924 F --.15(ve)144 417.6 S .61(rts lo).15 F .61(wercase letters matching)-.25 F +-.15(ve)144 542.4 S .61(rts lo).15 F .61(wercase letters matching)-.25 F F1(pattern)3.11 E F0 .61(to uppercase; the)3.11 F F2(,)3.11 E F0 .61 (operator con)3.11 F -.15(ve)-.4 G .61(rts matching uppercase).15 F -1.547(letters to lo)144 429.6 R 4.047(wercase. The)-.25 F F2(^^)4.047 E +1.548(letters to lo)144 554.4 R 4.047(wercase. The)-.25 F F2(^^)4.047 E F0(and)4.047 E F2(,,)4.047 E F0 -.15(ex)4.047 G 1.547(pansions con).15 F -.15(ve)-.4 G 1.547(rt each matched character in the e).15 F(xpanded) --.15 E -.25(va)144 441.6 S .634(lue; the).25 F F2(^)3.134 E F0(and)3.134 -E F2(,)3.134 E F0 -.15(ex)3.134 G .634(pansions match and con).15 F -.15 -(ve)-.4 G .633(rt only the \214rst character in the e).15 F .633 -(xpanded v)-.15 F 3.133(alue. If)-.25 F F1(pattern)144 453.6 Q F0 .78 +-.15 E -.25(va)144 566.4 S .633(lue; the).25 F F2(^)3.133 E F0(and)3.133 +E F2(,)3.133 E F0 -.15(ex)3.133 G .633(pansions match and con).15 F -.15 +(ve)-.4 G .634(rt only the \214rst character in the e).15 F .634 +(xpanded v)-.15 F 3.134(alue. If)-.25 F F1(pattern)144 578.4 Q F0 .78 (is omitted, it is treated lik)3.28 F 3.28(ea)-.1 G F2(?)A F0 3.28(,w)C .78(hich matches e)-3.28 F -.15(ve)-.25 G .78(ry character).15 F 5.78 (.I)-.55 G(f)-5.78 E F1(par)4.53 E(ameter)-.15 E F0(is)4.01 E F2(@)3.28 E F0(or)3.28 E F2(*)3.28 E F0(,)A .582(the case modi\214cation operatio\ -n is applied to each positional parameter in turn, and the e)144 465.6 R -(xpansion)-.15 E .468(is the resultant list.)144 477.6 R(If)5.468 E F1 +n is applied to each positional parameter in turn, and the e)144 590.4 R +(xpansion)-.15 E .469(is the resultant list.)144 602.4 R(If)5.469 E F1 (par)4.218 E(ameter)-.15 E F0 .468(is an array v)3.698 F .468 -(ariable subscripted with)-.25 F F2(@)2.968 E F0(or)2.968 E F2(*)2.969 E -F0 2.969(,t)C .469(he case modi\214ca-)-2.969 F .005(tion operation is \ -applied to each member of the array in turn, and the e)144 489.6 R .005 -(xpansion is the resultant list.)-.15 F F2(Command Substitution)87 506.4 -Q F1 1.697(Command substitution)108 518.4 R F0(allo)4.197 E 1.697 -(ws the output of a command to replace the command name.)-.25 F 1.698 -(There are tw)6.698 F(o)-.1 E(forms:)108 530.4 Q F2($\()144 547.2 Q F1 -(command)A F2(\))1.666 E F0(or)108 559.2 Q F2<92>144 571.2 Q F1(command) -A F2<92>A(Bash)108 588 Q F0 .02(performs the e)2.52 F .02(xpansion by e) --.15 F -.15(xe)-.15 G(cuting).15 E F1(command)2.519 E F0 .019 -(and replacing the command substitution with the stan-)2.519 F .768 -(dard output of the command, with an)108 600 R 3.268(yt)-.15 G .768 +(ariable subscripted with)-.25 F F2(@)2.968 E F0(or)2.968 E F2(*)2.968 E +F0 2.968(,t)C .468(he case modi\214ca-)-2.968 F .005(tion operation is \ +applied to each member of the array in turn, and the e)144 614.4 R .005 +(xpansion is the resultant list.)-.15 F F2(Command Substitution)87 631.2 +Q F1 1.698(Command substitution)108 643.2 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 655.2 Q F2($\()144 672 Q F1 +(command)A F2(\))1.666 E F0(or)108 684 Q F2<92>144 696 Q F1(command)A F2 +<92>A(Bash)108 712.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 724.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 612 Q 3.219(ym) --.15 G .719(ay be remo)-3.219 F -.15(ve)-.15 G 3.219(dd).15 G .719 -(uring w)-3.219 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 .718(can be replaced by the)3.219 F(equi)108 624 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 640.8 R(xcept)-.15 E -.315(when follo)108 652.8 R .315(wed by)-.25 F F2($)2.815 E F0(,)A F2 -<92>2.815 E F0 2.815(,o)C(r)-2.815 E F2(\\)2.815 E F0 5.315(.T)C .314(h\ -e \214rst backquote not preceded by a backslash terminates the command \ -sub-)-5.315 F 3.886(stitution. When)108 664.8 R 1.386(using the $\() -3.886 F F1(command).833 E F0 3.886(\)f)1.666 G 1.387 -(orm, all characters between the parentheses mak)-3.886 F 3.887(eu)-.1 G -3.887(pt)-3.887 G 1.387(he com-)-3.887 F -(mand; none are treated specially)108 676.8 Q(.)-.65 E .894 -(Command substitutions may be nested.)108 693.6 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 705.6 Q .422 -(If the substitution appears within double quotes, w)108 722.4 R .422 -(ord splitting and pathname e)-.1 F .423(xpansion are not performed)-.15 -F(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(22)185.545 E 0 Cg EP +F .768(wlines are not deleted, b)-.25 F(ut)-.2 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(22)193.45 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(on the results.)108 84 Q/F1 10/Times-Bold@0 SF -(Arithmetic Expansion)87 100.8 Q F0 1.035(Arithmetic e)108 112.8 R 1.035 -(xpansion allo)-.15 F 1.035(ws the e)-.25 F -.25(va)-.25 G 1.034 -(luation of an arithmetic e).25 F 1.034 -(xpression and the substitution of the result.)-.15 F -(The format for arithmetic e)108 124.8 Q(xpansion is:)-.15 E F1($\(\() -144 141.6 Q/F2 10/Times-Italic@0 SF -.2(ex)C(pr).2 E(ession)-.37 E F1 -(\)\))A F0(The)108 158.4 Q F2 -.2(ex)2.665 G(pr).2 E(ession)-.37 E F0 -.165(is treated as if it were within double quotes, b)2.905 F .166 -(ut a double quote inside the parentheses is not)-.2 F 1.075 -(treated specially)108 170.4 R 6.075(.A)-.65 G 1.074(ll tok)-6.075 F +-.35 E(the)108 84 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/F1 10/Times-Bold@0 SF($\(cat)3.219 +E/F2 10/Times-Italic@0 SF(\214le)3.219 E F1(\))A F0 .719 +(can be replaced by the)3.219 F(equi)108 96 Q -.25(va)-.25 G(lent b).25 +E(ut f)-.2 E(aster)-.1 E F1($\(<)2.5 E F2(\214le)2.5 E F1(\))A F0(.)A +1.724(When the old-style backquote form of substitution is used, backsl\ +ash retains its literal meaning e)108 112.8 R(xcept)-.15 E .314 +(when follo)108 124.8 R .314(wed by)-.25 F F1($)2.814 E F0(,)A F1<92> +2.814 E F0 2.814(,o)C(r)-2.814 E F1(\\)2.814 E F0 5.314(.T)C .315(he \ +\214rst backquote not preceded by a backslash terminates the command su\ +b-)-5.314 F 3.887(stitution. When)108 136.8 R 1.387(using the $\()3.887 +F F2(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 148.8 Q(.)-.65 E .894 +(Command substitutions may be nested.)108 165.6 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 177.6 Q .422 +(If the substitution appears within double quotes, w)108 194.4 R .422 +(ord splitting and pathname e)-.1 F .422(xpansion are not performed)-.15 +F(on the results.)108 206.4 Q F1(Arithmetic Expansion)87 223.2 Q F0 +1.034(Arithmetic e)108 235.2 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 247.2 Q(xpansion is:)-.15 E F1($\(\() +144 264 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A F0(The)108 280.8 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 292.8 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.074 -(xpansion, command)-.15 F(substitution, and quote remo)108 182.4 Q -.25 +(go parameter e)-.18 F 1.074(xpansion, string e)-.15 F 1.075 +(xpansion, command)-.15 F(substitution, and quote remo)108 304.8 Q -.25 (va)-.15 G 2.5(l. Arithmetic).25 F -.15(ex)2.5 G -(pansions may be nested.).15 E 1.378(The e)108 199.2 R -.25(va)-.25 G +(pansions may be nested.).15 E 1.379(The e)108 321.6 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.879 E F2 -.2(ex)108 211.2 S(pr).2 E(ession)-.37 E F0(is in) +A F0(If)5.878 E F2 -.2(ex)108 333.6 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 228 Q(ocess Substitution)-.18 E F2(Pr)108 240 Q .971 +-.1 E F1(Pr)87 350.4 Q(ocess Substitution)-.18 E F2(Pr)108 362.4 Q .97 (ocess substitution)-.45 F F0 .971 -(is supported on systems that support named pipes \()3.471 F F2(FIFOs)A -F0 3.47(\)o)C 3.47(rt)-3.47 G(he)-3.47 E F1(/de)3.47 E(v/fd)-.15 E F0 -.97(method of)3.47 F .021(naming open \214les.)108 252 R .021(It tak) -5.021 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 .059(nected to a)108 264 R -F2(FIFO)2.559 E F0 .058(or some \214le in)2.559 F F1(/de)2.558 E(v/fd) +(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 374.4 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 386.4 +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 .058(gument to the current com-)-.18 F .13 -(mand as the result of the e)108 276 R 2.63(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 .131 -(vide input for)-.15 F F2(list)2.631 E F0(.)A(If the)108 288 Q F1(<\() -2.5 E F2(list)A F1(\)).833 E F0 -(form is used, the \214le passed as an ar)2.5 E +-5.058 F .059(gument to the current com-)-.18 F .131 +(mand as the result of the e)108 398.4 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 410.4 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 .897(When a)108 304.8 R -.25(va)-.2 G .896(ilable, process substit\ -ution is performed simultaneously with parameter and v).25 F .896 +(.)A .896(When a)108 427.2 R -.25(va)-.2 G .896(ilable, process substit\ +ution is performed simultaneously with parameter and v).25 F .897 (ariable e)-.25 F(xpansion,)-.15 E -(command substitution, and arithmetic e)108 316.8 Q(xpansion.)-.15 E F1 --.75(Wo)87 333.6 S(rd Splitting).75 E F0 1.142 -(The shell scans the results of parameter e)108 345.6 R 1.143 -(xpansion, command substitution, and arithmetic e)-.15 F 1.143 -(xpansion that)-.15 F(did not occur within double quotes for)108 357.6 Q +(command substitution, and arithmetic e)108 439.2 Q(xpansion.)-.15 E F1 +-.75(Wo)87 456 S(rd Splitting).75 E F0 1.143 +(The shell scans the results of parameter e)108 468 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 480 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 374.4 R F3(IFS)2.563 E F0 .063 +(The shell treats each character of)108 496.8 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.788(on these characters.)108 386.4 R(If)6.788 E F3 -(IFS)4.288 E F0 1.788(is unset, or its v)4.038 F 1.789(alue is e)-.25 F -(xactly)-.15 E F1(<space><tab><newline>)4.289 E F0 4.289(,t)C 1.789 -(he def)-4.289 F 1.789(ault, then)-.1 F .022(sequences of)108 398.4 R F1 -(<space>)2.522 E F0(,)A F1(<tab>)2.522 E F0 2.521(,a)C(nd)-2.521 E F1 +-.15 F(ords)-.1 E 1.789(on these characters.)108 508.8 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 520.8 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 .021(vious e)-.25 F -(xpan-)-.15 E .585(sions are ignored, and an)108 410.4 R 3.086(ys)-.15 G +(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 532.8 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 .586 -(es to delimit w)-.15 F(ords.)-.1 E(If)108 422.4 Q F3(IFS)3.617 E F0 +(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 544.8 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 434.4 R .315(ginning and end of the w)-.15 F .315 +108 556.8 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.566 E F3(IFS)108 446.4 Q F0 -1.054(whitespace character\).)3.304 F(An)6.054 E 3.554(yc)-.15 G 1.054 -(haracter in)-3.554 F F3(IFS)3.554 E F0 1.053(that is not)3.303 F F3 -(IFS)3.553 E F0 1.053(whitespace, along with an)3.303 F 3.553(ya)-.15 G -(djacent)-3.553 E F3(IFS)3.553 E F0 .331 -(whitespace characters, delimits a \214eld.)108 458.4 R 2.831(As)5.331 G -.332(equence of)-2.831 F F3(IFS)2.832 E F0 .332 +(alue of)-.25 F F3(IFS)2.815 E F0(\(an)2.565 E F3(IFS)108 568.8 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 580.8 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 -470.4 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.879 -(Explicit null ar)108 487.2 R 1.879(guments \()-.18 F F1 .833("").833 G +592.8 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 609.6 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.878 -(guments, resulting from the)-.18 F -.15(ex)108 499.2 S .176 -(pansion of parameters that ha).15 F .476 -.15(ve n)-.2 H 2.676(ov).15 G -.176(alues, are remo)-2.926 F -.15(ve)-.15 G 2.676(d. If).15 F 2.677(ap) -2.677 G .177(arameter with no v)-2.677 F .177(alue is e)-.25 F .177 -(xpanded within)-.15 F(double quotes, a null ar)108 511.2 Q -(gument results and is retained.)-.18 E(Note that if no e)108 528 Q -(xpansion occurs, no splitting is performed.)-.15 E F1 -.1(Pa)87 544.8 S -(thname Expansion).1 E F0 .371(After w)108 556.8 R .371 -(ord splitting, unless the)-.1 F F1<ad66>2.871 E F0 .371 -(option has been set,)2.871 F F1(bash)2.871 E F0 .37(scans each w)2.87 F -.37(ord for the characters)-.1 F F1(*)2.87 E F0(,)A F1(?)2.87 E F0 2.87 -(,a)C(nd)-2.87 E F1([)2.87 E F0(.)A .677 -(If one of these characters appears, then the w)108 568.8 R .677 +-4.378 F 1.878(Unquoted implicit null ar)6.878 F 1.879 +(guments, resulting from the)-.18 F -.15(ex)108 621.6 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 633.6 Q +(gument results and is retained.)-.18 E(Note that if no e)108 650.4 Q +(xpansion occurs, no splitting is performed.)-.15 E F1 -.1(Pa)87 667.2 S +(thname Expansion).1 E F0 .37(After w)108 679.2 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 691.2 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 .678(nd replaced with an alphabeti-)-3.177 F .562 -(cally sorted list of \214lenames matching the pattern \(see)108 580.8 R +F0 3.177(,a).24 G .677(nd replaced with an alphabeti-)-3.177 F .562 +(cally sorted list of \214lenames matching the pattern \(see)108 703.2 R F3 -.09(Pa)3.062 G(tter).09 E 2.812(nM)-.135 G(atching)-2.812 E F0(belo) -2.812 E 3.062(w\). If)-.25 F .561(no matching \214lenames)3.061 F .008 -(are found, and the shell option)108 592.8 R F1(nullglob)2.508 E F0 .008 -(is not enabled, the w)2.508 F .009(ord is left unchanged.)-.1 F .009 -(If the)5.009 F F1(nullglob)2.509 E F0 .009(option is)2.509 F .443 -(set, and no matches are found, the w)108 604.8 R .443(ord is remo)-.1 F --.15(ve)-.15 G 2.943(d. If).15 F(the)2.942 E F1(failglob)2.942 E F0 .442 -(shell option is set, and no matches are)2.942 F 1.38 -(found, an error message is printed and the command is not e)108 616.8 R --.15(xe)-.15 G 3.88(cuted. If).15 F 1.38(the shell option)3.88 F F1 -(nocaseglob)3.88 E F0(is)3.88 E .104 -(enabled, the match is performed without re)108 628.8 R -.05(ga)-.15 G -.104(rd to the case of alphabetic characters.).05 F .103 -(When a pattern is used)5.103 F .377(for pathname e)108 640.8 R .377 -(xpansion, the character)-.15 F F1 -.63(``)2.878 G -.55(.').63 G(')-.08 -E F0 .378(at the start of a name or immediately follo)5.378 F .378 -(wing a slash must be)-.25 F .579(matched e)108 652.8 R(xplicitly)-.15 E -3.079(,u)-.65 G .579(nless the shell option)-3.079 F F1(dotglob)3.079 E -F0 .579(is set.)3.079 F .578 -(When matching a pathname, the slash character)5.579 F 1.788(must al)108 -664.8 R -.1(wa)-.1 G 1.788(ys be matched e).1 F(xplicitly)-.15 E 6.788 -(.I)-.65 G 4.288(no)-6.788 G 1.788(ther cases, the)-4.288 F F1 -.63(``) -4.288 G -.55(.').63 G(')-.08 E F0 1.788 -(character is not treated specially)6.788 F 6.789(.S)-.65 G 1.789 -(ee the)-6.789 F .166(description of)108 676.8 R F1(shopt)2.666 E F0 -(belo)2.666 E 2.666(wu)-.25 G(nder)-2.666 E F3 .166(SHELL B)2.666 F(UIL) --.09 E .165(TIN COMMANDS)-.828 F F0 .165(for a description of the)2.415 -F F1(nocaseglob)2.665 E F0(,)A F1(null-)2.665 E(glob)108 688.8 Q F0(,)A -F1(failglob)2.5 E F0 2.5(,a)C(nd)-2.5 E F1(dotglob)2.5 E F0 -(shell options.)2.5 E(The)108 705.6 Q F3(GLOBIGNORE)2.785 E F0 .285 -(shell v)2.535 F .285 -(ariable may be used to restrict the set of \214lenames matching a)-.25 -F F2(pattern)2.786 E F0 5.286(.I).24 G(f)-5.286 E F3(GLO-)2.786 E -(BIGNORE)108 717.6 Q F0 2.316(is set, each matching \214lename that als\ -o matches one of the patterns in)4.566 F F3(GLOBIGNORE)4.816 E F0(is) -4.565 E(remo)108 729.6 Q -.15(ve)-.15 G 2.659(df).15 G .159 -(rom the list of matches.)-2.659 F .16(The \214lenames)5.16 F F1 -.63 -(``)2.66 G -.55(.').63 G(')-.08 E F0(and)5.16 E F1 -.63(``)2.66 G(..).63 -E -.63('')-.55 G F0 .16(are al)5.79 F -.1(wa)-.1 G .16(ys ignored when) -.1 F F3(GLOBIGNORE)2.66 E F0(is)2.41 E(GNU Bash 4.2)72 768 Q(2012 No) -136.385 E -.15(ve)-.15 G(mber 24).15 E(23)185.545 E 0 Cg EP +2.812 E 3.062(w\). If)-.25 F .562(no matching \214lenames)3.062 F .009 +(are found, and the shell option)108 715.2 R F1(nullglob)2.509 E F0 .008 +(is not enabled, the w)2.509 F .008(ord is left unchanged.)-.1 F .008 +(If the)5.008 F F1(nullglob)2.508 E F0 .008(option is)2.508 F .442 +(set, and no matches are found, the w)108 727.2 R .442(ord is remo)-.1 F +-.15(ve)-.15 G 2.942(d. If).15 F(the)2.943 E F1(failglob)2.943 E F0 .443 +(shell option is set, and no matches are)2.943 F(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(23)193.45 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 .046(set and not null.)108 84 R(Ho)5.046 E(we)-.25 E -.15(ve)-.25 -G .846 -.4(r, s).15 H(etting).4 E/F1 9/Times-Bold@0 SF(GLOBIGNORE)2.546 -E F0 .046(to a non-null v)2.296 F .045(alue has the ef)-.25 F .045 -(fect of enabling the)-.25 F/F2 10/Times-Bold@0 SF(dotglob)2.545 E F0 -.786(shell option, so all other \214lenames be)108 96 R .787 -(ginning with a)-.15 F F2 -.63(``)3.287 G -.55(.').63 G(')-.08 E F0 .787 -(will match.)5.787 F 2.387 -.8(To g)5.787 H .787(et the old beha).8 F -.787(vior of ignoring)-.2 F .642(\214lenames be)108 108 R .642 -(ginning with a)-.15 F F2 -.63(``)3.142 G -.55(.').63 G(')-.08 E F0 -3.142(,m)C(ak)-3.142 E(e)-.1 E F2 -.63(``)3.142 G(.*').63 E(')-.63 E F0 -.642(one of the patterns in)5.642 F F1(GLOBIGNORE)3.141 E/F3 9 -/Times-Roman@0 SF(.)A F0(The)5.141 E F2(dotglob)3.141 E F0 .641 -(option is)3.141 F(disabled when)108 120 Q F1(GLOBIGNORE)2.5 E F0 -(is unset.)2.25 E F2 -.1(Pa)108 136.8 S(tter).1 E 2.5(nM)-.15 G(atching) --2.5 E F0(An)108 153.6 Q 3.138(yc)-.15 G .638(haracter that appears in \ +-.35 E 1.38(found, an error message is printed and the command is not e) +108 84 R -.15(xe)-.15 G 3.88(cuted. If).15 F 1.38(the shell option)3.88 +F/F1 10/Times-Bold@0 SF(nocaseglob)3.88 E F0(is)3.88 E .103 +(enabled, the match is performed without re)108 96 R -.05(ga)-.15 G .104 +(rd to the case of alphabetic characters.).05 F .104 +(When a pattern is used)5.104 F .378(for pathname e)108 108 R .378 +(xpansion, the character)-.15 F F1 -.63(``)2.878 G -.55(.').63 G(')-.08 +E F0 .378(at the start of a name or immediately follo)5.378 F .377 +(wing a slash must be)-.25 F .578(matched e)108 120 R(xplicitly)-.15 E +3.078(,u)-.65 G .578(nless the shell option)-3.078 F F1(dotglob)3.079 E +F0 .579(is set.)3.079 F .579 +(When matching a pathname, the slash character)5.579 F 1.789(must al)108 +132 R -.1(wa)-.1 G 1.788(ys be matched e).1 F(xplicitly)-.15 E 6.788(.I) +-.65 G 4.288(no)-6.788 G 1.788(ther cases, the)-4.288 F F1 -.63(``)4.288 +G -.55(.').63 G(')-.08 E F0 1.788(character is not treated specially) +6.788 F 6.788(.S)-.65 G 1.788(ee the)-6.788 F .165(description of)108 +144 R F1(shopt)2.665 E F0(belo)2.665 E 2.665(wu)-.25 G(nder)-2.665 E/F2 +9/Times-Bold@0 SF .165(SHELL B)2.665 F(UIL)-.09 E .165(TIN COMMANDS) +-.828 F F0 .166(for a description of the)2.415 F F1(nocaseglob)2.666 E +F0(,)A F1(null-)2.666 E(glob)108 156 Q F0(,)A F1(failglob)2.5 E F0 2.5 +(,a)C(nd)-2.5 E F1(dotglob)2.5 E F0(shell options.)2.5 E(The)108 172.8 Q +F2(GLOBIGNORE)2.786 E F0 .286(shell v)2.536 F .285 +(ariable may be used to restrict the set of \214lenames matching a)-.25 +F/F3 10/Times-Italic@0 SF(pattern)2.785 E F0 5.285(.I).24 G(f)-5.285 E +F2(GLO-)2.785 E(BIGNORE)108 184.8 Q F0 2.316(is set, each matching \214\ +lename that also matches one of the patterns in)4.565 F F2(GLOBIGNORE) +4.816 E F0(is)4.566 E(remo)108 196.8 Q -.15(ve)-.15 G 2.66(df).15 G .16 +(rom the list of matches.)-2.66 F .16(The \214lenames)5.16 F F1 -.63(``) +2.66 G -.55(.').63 G(')-.08 E F0(and)5.16 E F1 -.63(``)2.66 G(..).63 E +-.63('')-.55 G F0 .16(are al)5.79 F -.1(wa)-.1 G .159(ys ignored when).1 +F F2(GLOBIGNORE)2.659 E F0(is)2.409 E .045(set and not null.)108 208.8 R +(Ho)5.045 E(we)-.25 E -.15(ve)-.25 G .845 -.4(r, s).15 H(etting).4 E F2 +(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 .787(shell option, so all other \214lenames be)108 220.8 R +.787(ginning with a)-.15 F F1 -.63(``)3.287 G -.55(.').63 G(')-.08 E F0 +.787(will match.)5.787 F 2.386 -.8(To g)5.787 H .786(et the old beha).8 +F .786(vior of ignoring)-.2 F .641(\214lenames be)108 232.8 R .641 +(ginning with a)-.15 F F1 -.63(``)3.141 G -.55(.').63 G(')-.08 E F0 +3.141(,m)C(ak)-3.141 E(e)-.1 E F1 -.63(``)3.141 G(.*').63 E(')-.63 E F0 +.642(one of the patterns in)5.642 F F2(GLOBIGNORE)3.142 E/F4 9 +/Times-Roman@0 SF(.)A F0(The)5.142 E F1(dotglob)3.142 E F0 .642 +(option is)3.142 F(disabled when)108 244.8 Q F2(GLOBIGNORE)2.5 E F0 +(is unset.)2.25 E F1 -.1(Pa)108 261.6 S(tter).1 E 2.5(nM)-.15 G(atching) +-2.5 E F0(An)108 278.4 Q 3.138(yc)-.15 G .638(haracter that appears 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 165.6 +-3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108 290.4 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 177.6 R .576 +.576(escaping backslash is discarded when matching.)108 302.4 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 189.6 Q(.)-.65 E -(The special pattern characters ha)108 206.4 Q .3 -.15(ve t)-.2 H -(he follo).15 E(wing meanings:)-.25 E F2(*)144 223.2 Q F0 .377 -(Matches an)31 F 2.877(ys)-.15 G .376(tring, including the null string.) --2.877 F .376(When the)5.376 F F2(globstar)2.876 E F0 .376 -(shell option is enabled,)2.876 F(and)180 235.2 Q F2(*)3.275 E F0 .775 +-.15 G(re)-3.076 E(to be matched literally)108 314.4 Q(.)-.65 E +(The special pattern characters ha)108 331.2 Q .3 -.15(ve t)-.2 H +(he follo).15 E(wing meanings:)-.25 E F1(*)144 348 Q F0 .376(Matches an) +31 F 2.876(ys)-.15 G .376(tring, including the null string.)-2.876 F +.376(When the)5.376 F F1(globstar)2.876 E F0 .377 +(shell option is enabled,)2.876 F(and)180 360 Q F1(*)3.275 E F0 .775 (is used in a pathname e)3.275 F .775(xpansion conte)-.15 F .775(xt, tw) --.15 F 3.275(oa)-.1 G(djacent)-3.275 E F2(*)3.275 E F0 3.275(su)C .775 +-.15 F 3.275(oa)-.1 G(djacent)-3.275 E F1(*)3.275 E F0 3.275(su)C .775 (sed as a single pattern)-3.275 F 1.058(will match all \214les and zero\ - or more directories and subdirectories.)180 247.2 R 1.058(If follo) -6.058 F 1.058(wed by a)-.25 F F2(/)3.558 E F0(,)A(tw)180 259.2 Q 2.5(oa) --.1 G(djacent)-2.5 E F2(*)2.5 E F0 2.5(sw)C -(ill match only directories and subdirectories.)-2.5 E F2(?)144 271.2 Q -F0(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 E F2 -([...])144 283.2 Q F0 .578(Matches an)21.84 F 3.078(yo)-.15 G .578 -(ne of the enclosed characters.)-3.078 F 3.079(Ap)5.579 G .579 -(air of characters separated by a h)-3.079 F(yphen)-.05 E .685 -(denotes a)180 295.2 R/F4 10/Times-Italic@0 SF -.15(ra)3.185 G(ng).15 E -3.184(ee)-.1 G(xpr)-3.384 E(ession)-.37 E F0 3.184(;a)C .984 -.15(ny c) --3.184 H .684(haracter that f).15 F .684(alls between those tw)-.1 F -3.184(oc)-.1 G .684(haracters, inclu-)-3.184 F(si)180 307.2 Q -.15(ve) --.25 G 3.712(,u).15 G 1.212(sing the current locale')-3.712 F 3.712(sc) --.55 G 1.212(ollating sequence and character set, is matched.)-3.712 F -1.213(If the)6.213 F 1.124(\214rst character follo)180 319.2 R 1.124 -(wing the)-.25 F F2([)3.624 E F0 1.124(is a)3.624 F F2(!)3.624 E F0 -1.124(or a)6.124 F F2(^)3.623 E F0 1.123(then an)3.623 F 3.623(yc)-.15 G -1.123(haracter not enclosed is matched.)-3.623 F .894 -(The sorting order of characters in range e)180 331.2 R .895 -(xpressions is determined by the current locale)-.15 F .376(and the v) -180 343.2 R .376(alues of the)-.25 F F1(LC_COLLA)2.875 E(TE)-.855 E F0 -(or)2.625 E F1(LC_ALL)2.875 E F0 .375(shell v)2.625 F .375 -(ariables, if set.)-.25 F 1.975 -.8(To o)5.375 H .375(btain the tra-).8 -F .067(ditional interpretation of range e)180 355.2 R .067 -(xpressions, where)-.15 F F2([a\255d])2.567 E F0 .068(is equi)2.568 F --.25(va)-.25 G .068(lent to).25 F F2([abcd])2.568 E F0 2.568(,s)C .068 -(et v)-2.568 F(alue)-.25 E .157(of the)180 367.2 R F2(LC_ALL)2.657 E F0 -.157(shell v)2.657 F .157(ariable to)-.25 F F2(C)2.657 E F0 2.657(,o)C -2.657(re)-2.657 G .157(nable the)-2.657 F F2(globasciiranges)2.657 E F0 -.156(shell option.)2.656 F(A)5.156 E F2<ad>2.656 E F0(may)2.656 E .193(\ + or more directories and subdirectories.)180 372 R 1.058(If follo)6.058 +F 1.058(wed by a)-.25 F F1(/)3.558 E F0(,)A(tw)180 384 Q 2.5(oa)-.1 G +(djacent)-2.5 E F1(*)2.5 E F0 2.5(sw)C +(ill match only directories and subdirectories.)-2.5 E F1(?)144 396 Q F0 +(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 E F1([...]) +144 408 Q F0 .579(Matches an)21.84 F 3.079(yo)-.15 G .579 +(ne of the enclosed characters.)-3.079 F 3.079(Ap)5.579 G .578 +(air of characters separated by a h)-3.079 F(yphen)-.05 E .684 +(denotes a)180 420 R F3 -.15(ra)3.184 G(ng).15 E 3.184(ee)-.1 G(xpr) +-3.384 E(ession)-.37 E F0 3.184(;a)C .984 -.15(ny c)-3.184 H .684 +(haracter that f).15 F .684(alls between those tw)-.1 F 3.185(oc)-.1 G +.685(haracters, inclu-)-3.185 F(si)180 432 Q -.15(ve)-.25 G 3.713(,u).15 +G 1.213(sing the current locale')-3.713 F 3.712(sc)-.55 G 1.212 +(ollating sequence and character set, is matched.)-3.712 F 1.212(If the) +6.212 F 1.123(\214rst character follo)180 444 R 1.123(wing the)-.25 F F1 +([)3.623 E F0 1.123(is a)3.623 F F1(!)3.623 E F0 1.124(or a)6.123 F F1 +(^)3.624 E F0 1.124(then an)3.624 F 3.624(yc)-.15 G 1.124 +(haracter not enclosed is matched.)-3.624 F .895 +(The sorting order of characters in range e)180 456 R .894 +(xpressions is determined by the current locale)-.15 F .375(and the v) +180 468 R .375(alues of the)-.25 F F2(LC_COLLA)2.875 E(TE)-.855 E F0(or) +2.625 E F2(LC_ALL)2.875 E F0 .375(shell v)2.625 F .375 +(ariables, if set.)-.25 F 1.976 -.8(To o)5.376 H .376(btain the tra-).8 +F .068(ditional interpretation of range e)180 480 R .068 +(xpressions, where)-.15 F F1([a\255d])2.568 E F0 .067(is equi)2.567 F +-.25(va)-.25 G .067(lent to).25 F F1([abcd])2.567 E F0 2.567(,s)C .067 +(et v)-2.567 F(alue)-.25 E .156(of the)180 492 R F1(LC_ALL)2.656 E F0 +.156(shell v)2.656 F .156(ariable to)-.25 F F1(C)2.657 E F0 2.657(,o)C +2.657(re)-2.657 G .157(nable the)-2.657 F F1(globasciiranges)2.657 E F0 +.157(shell option.)2.657 F(A)5.157 E F1<ad>2.657 E F0(may)2.657 E .193(\ be matched by including it as the \214rst or last character in the set.) -180 379.2 R(A)5.193 E F2(])2.693 E F0 .194(may be matched by)2.693 F -(including it as the \214rst character in the set.)180 391.2 Q -.4(Wi) -180 409.2 S(thin).4 E F2([)3.071 E F0(and)3.071 E F2(])3.071 E F0(,)A F4 --.15(ch)3.071 G(ar).15 E .571(acter classes)-.15 F F0 .571 -(can be speci\214ed using the syntax)3.071 F F2([:)3.07 E F4(class)A F2 -(:])A F0 3.07(,w)C(here)-3.07 E F4(class)3.07 E F0(is one of the follo) -180 421.2 Q(wing classes de\214ned in the POSIX standard:)-.25 E F2 -8.173(alnum alpha ascii blank cntrl digit graph lo)180 433.2 R 8.173 -(wer print punct space)-.1 F 5(upper w)180 445.2 R 5(ord xdigit)-.1 F F0 -4.29(Ac)180 457.2 S 1.789(haracter class matches an)-4.29 F 4.289(yc) --.15 G 1.789(haracter belonging to that class.)-4.289 F(The)6.789 E F2 --.1(wo)4.289 G(rd).1 E F0(character)4.289 E -(class matches letters, digits, and the character _.)180 469.2 Q -.4(Wi) -180 487.2 S(thin).4 E F2([)4.536 E F0(and)4.536 E F2(])4.536 E F0 4.536 -(,a)C(n)-4.536 E F4 2.036(equivalence class)4.536 F F0 2.037 -(can be speci\214ed using the syntax)4.536 F F2([=)4.537 E F4(c)A F2(=]) -A F0 4.537(,w)C(hich)-4.537 E .125(matches all characters with the same\ - collation weight \(as de\214ned by the current locale\) as)180 499.2 R -(the character)180 511.2 Q F4(c)2.5 E F0(.)A -.4(Wi)180 529.2 S(thin).4 -E F2([)2.5 E F0(and)2.5 E F2(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F2([.) -2.5 E F4(symbol)A F2(.])A F0(matches the collating symbol)2.5 E F4 -(symbol)2.5 E F0(.)A .704(If the)108 546 R F2(extglob)3.204 E F0 .705 -(shell option is enabled using the)3.204 F F2(shopt)3.205 E F0 -.2(bu) -3.205 G .705(iltin, se).2 F -.15(ve)-.25 G .705(ral e).15 F .705 -(xtended pattern matching operators)-.15 F .256(are recognized.)108 558 -R .256(In the follo)5.256 F .256(wing description, a)-.25 F F4 +180 504 R(A)5.193 E F1(])2.693 E F0 .193(may be matched by)2.693 F +(including it as the \214rst character in the set.)180 516 Q -.4(Wi)180 +534 S(thin).4 E F1([)3.07 E F0(and)3.07 E F1(])3.07 E F0(,)A F3 -.15(ch) +3.07 G(ar).15 E .571(acter classes)-.15 F F0 .571 +(can be speci\214ed using the syntax)3.071 F F1([:)3.071 E F3(class)A F1 +(:])A F0 3.071(,w)C(here)-3.071 E F3(class)3.071 E F0 +(is one of the follo)180 546 Q +(wing classes de\214ned in the POSIX standard:)-.25 E F1 8.173 +(alnum alpha ascii blank cntrl digit graph lo)180 558 R 8.173 +(wer print punct space)-.1 F 5(upper w)180 570 R 5(ord xdigit)-.1 F F0 +4.289(Ac)180 582 S 1.789(haracter class matches an)-4.289 F 4.289(yc) +-.15 G 1.789(haracter belonging to that class.)-4.289 F(The)6.789 E F1 +-.1(wo)4.29 G(rd).1 E F0(character)4.29 E +(class matches letters, digits, and the character _.)180 594 Q -.4(Wi) +180 612 S(thin).4 E F1([)4.537 E F0(and)4.537 E F1(])4.537 E F0 4.537 +(,a)C(n)-4.537 E F3 2.037(equivalence class)4.537 F F0 2.036 +(can be speci\214ed using the syntax)4.536 F F1([=)4.536 E F3(c)A F1(=]) +A F0 4.536(,w)C(hich)-4.536 E .125(matches all characters with the same\ + collation weight \(as de\214ned by the current locale\) as)180 624 R +(the character)180 636 Q F3(c)2.5 E F0(.)A -.4(Wi)180 654 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 F3(symbol)A F1(.])A F0(matches the collating symbol)2.5 E F3(symbol) +2.5 E F0(.)A .705(If the)108 670.8 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 +682.8 R .255(In the follo)5.255 F .255(wing description, a)-.25 F F3 (pattern-list)2.755 E F0 .255 -(is a list of one or more patterns separated by a)2.755 F F2(|)2.755 E +(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 570 Q(wing sub-patterns:)-.25 E F2(?\()144 594 Q F4(pattern-list) -.833 E F2(\)).833 E F0(Matches zero or one occurrence of the gi)180 606 -Q -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F2(*\()144 618 Q F4 -(pattern-list).833 E F2(\)).833 E F0 -(Matches zero or more occurrences of the gi)180 630 Q -.15(ve)-.25 G 2.5 -(np).15 G(atterns)-2.5 E F2(+\()144 642 Q F4(pattern-list).833 E F2(\)) -.833 E F0(Matches one or more occurrences of the gi)180 654 Q -.15(ve) --.25 G 2.5(np).15 G(atterns)-2.5 E F2(@\()144 666 Q F4(pattern-list).833 -E F2(\)).833 E F0(Matches one of the gi)180 678 Q -.15(ve)-.25 G 2.5(np) -.15 G(atterns)-2.5 E F2(!\()144 690 Q F4(pattern-list).833 E F2(\)).833 -E F0(Matches an)180 702 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(GNU Bash 4.2)72 768 Q -(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(24)185.545 E 0 Cg EP +108 694.8 Q(wing sub-patterns:)-.25 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(24)193.45 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(Quote Remo)87 84 Q -.1(va)-.1 G(l).1 E F0 -1.112(After the preceding e)108 96 R 1.112 +-.35 E/F1 10/Times-Bold@0 SF(?\()144 84 Q/F2 10/Times-Italic@0 SF +(pattern-list).833 E F1(\)).833 E F0 +(Matches zero or one occurrence of the gi)180 96 Q -.15(ve)-.25 G 2.5 +(np).15 G(atterns)-2.5 E F1(*\()144 108 Q F2(pattern-list).833 E F1(\)) +.833 E F0(Matches zero or more occurrences of the gi)180 120 Q -.15(ve) +-.25 G 2.5(np).15 G(atterns)-2.5 E F1(+\()144 132 Q F2(pattern-list).833 +E F1(\)).833 E F0(Matches one or more occurrences of the gi)180 144 Q +-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(@\()144 156 Q F2 +(pattern-list).833 E F1(\)).833 E F0(Matches one of the gi)180 168 Q +-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(!\()144 180 Q F2 +(pattern-list).833 E F1(\)).833 E F0(Matches an)180 192 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 208.8 Q -.1(va)-.1 G(l).1 E F0 1.113 +(After the preceding e)108 220.8 R 1.113 (xpansions, all unquoted occurrences of the characters)-.15 F F1(\\) -3.613 E F0(,)A F1<08>3.613 E F0 3.613(,a)C(nd)-3.613 E F1(")4.446 E F0 -1.113(that did not result)4.446 F(from one of the abo)108 108 Q .3 -.15 -(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F2 10.95 -/Times-Bold@0 SF(REDIRECTION)72 124.8 Q F0 .545(Before a command is e) -108 136.8 R -.15(xe)-.15 G .545(cuted, its input and output may be).15 F -/F3 10/Times-Italic@0 SF -.37(re)3.045 G(dir).37 E(ected)-.37 E F0 .545 -(using a special notation interpreted)3.815 F .405(by the shell.)108 -148.8 R .405(Redirection allo)5.405 F .405(ws commands' \214le handles \ -to be duplicated, opened, closed, made to refer to)-.25 F(dif)108 160.8 -Q 1.02(ferent \214les, and can change the \214les the command reads fro\ -m and writes to.)-.25 F 1.019(Redirection may also be)6.019 F .215 -(used to modify \214le handles in the current shell e)108 172.8 R -.15 +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 232.8 Q .3 +-.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F3 +10.95/Times-Bold@0 SF(REDIRECTION)72 249.6 Q F0 .545 +(Before a command is e)108 261.6 R -.15(xe)-.15 G .545 +(cuted, its input and output may be).15 F F2 -.37(re)3.045 G(dir).37 E +(ected)-.37 E F0 .545(using a special notation interpreted)3.815 F .405 +(by the shell.)108 273.6 R .405(Redirection allo)5.405 F .405(ws comman\ +ds' \214le handles to be duplicated, opened, closed, made to refer to) +-.25 F(dif)108 285.6 Q 1.019(ferent \214les, and can change the \214les\ + the command reads from and writes to.)-.25 F 1.02 +(Redirection may also be)6.02 F .215 +(used to modify \214le handles in the current shell e)108 297.6 R -.15 (xe)-.15 G .215(cution en).15 F 2.715(vironment. The)-.4 F(follo)2.715 E -.215(wing redirection operators)-.25 F .876(may precede or appear an)108 -184.8 R .876(ywhere within a)-.15 F F3 .875(simple command)3.715 F F0 -.875(or may follo)4.145 F 3.375(wa)-.25 G F3(command)A F0 5.875(.R).77 G -.875(edirections are)-5.875 F(processed in the order the)108 196.8 Q 2.5 +.215(wing redirection operators)-.25 F .875(may precede or appear an)108 +309.6 R .875(ywhere within a)-.15 F F2 .875(simple command)3.715 F F0 +.875(or may follo)4.145 F 3.376(wa)-.25 G F2(command)A F0 5.876(.R).77 G +.876(edirections are)-5.876 F(processed in the order the)108 321.6 Q 2.5 (ya)-.15 G(ppear)-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .771(Eac\ h redirection that may be preceded by a \214le descriptor number may in\ -stead be preceded by a w)108 213.6 R .772(ord of)-.1 F .293(the form {) -108 225.6 R F3(varname)A F0 2.793(}. In)B .293 +stead be preceded by a w)108 338.4 R .771(ord of)-.1 F .292(the form {) +108 350.4 R F2(varname)A F0 2.793(}. In)B .293 (this case, for each redirection operator e)2.793 F .293 -(xcept >&- and <&-, the shell will allocate)-.15 F 3.179<618c>108 237.6 -S .679(le descriptor greater than or equal to 10 and assign it to)-3.179 -F F3(varname)3.179 E F0 5.679(.I)C 3.179(f>)-5.679 G .679 -(&- or <&- is preceded by {)-3.179 F F3(var)A(-)-.2 E(name)108 249.6 Q -F0(}, the v)A(alue of)-.25 E F3(varname)2.5 E F0 -(de\214nes the \214le descriptor to close.)2.5 E .284(In the follo)108 -266.4 R .283(wing descriptions, if the \214le descriptor number is omit\ -ted, and the \214rst character of the redirect-)-.25 F .512 -(ion operator is)108 278.4 R F1(<)3.012 E F0 3.012(,t)C .512 +(xcept >&- and <&-, the shell will allocate)-.15 F 3.18<618c>108 362.4 S +.679(le descriptor greater than or equal to 10 and assign it to)-3.18 F +F2(varname)3.179 E F0 5.679(.I)C 3.179(f>)-5.679 G .679 +(&- or <&- is preceded by {)-3.179 F F2(var)A(-)-.2 E(name)108 374.4 Q +F0(}, the v)A(alue of)-.25 E F2(varname)2.5 E F0 +(de\214nes the \214le descriptor to close.)2.5 E .283(In the follo)108 +391.2 R .284(wing descriptions, if the \214le descriptor number is omit\ +ted, and the \214rst character of the redirect-)-.25 F .513 +(ion operator is)108 403.2 R F1(<)3.012 E F0 3.012(,t)C .512 (he redirection refers to the standard input \(\214le descriptor 0\).) -3.012 F .512(If the \214rst character of the)5.512 F -(redirection operator is)108 290.4 Q F1(>)2.5 E F0 2.5(,t)C +(redirection operator is)108 415.2 Q F1(>)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 307.2 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 .462 -(jected to brace e)108 319.2 R .462(xpansion, tilde e)-.15 F .463 -(xpansion, parameter and v)-.15 F .463(ariable e)-.25 F .463 -(xpansion, command substitution, arith-)-.15 F .867(metic e)108 331.2 R -.867(xpansion, quote remo)-.15 F -.25(va)-.15 G .867(l, pathname e).25 F +-2.5 E .824(The w)108 432 R .824(ord follo)-.1 F .824 +(wing the redirection operator in the follo)-.25 F .825 +(wing descriptions, unless otherwise noted, is sub-)-.25 F .463 +(jected to brace e)108 444 R .463(xpansion, tilde e)-.15 F .462 +(xpansion, parameter and v)-.15 F .462(ariable e)-.25 F .462 +(xpansion, command substitution, arith-)-.15 F .866(metic e)108 456 R +.866(xpansion, quote remo)-.15 F -.25(va)-.15 G .866(l, pathname e).25 F .867(xpansion, and w)-.15 F .867(ord splitting.)-.1 F .867(If it e)5.867 -F .866(xpands to more than one)-.15 F -.1(wo)108 343.2 S(rd,).1 E F1 -(bash)2.5 E F0(reports an error)2.5 E(.)-.55 E -(Note that the order of redirections is signi\214cant.)108 360 Q -.15 -(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 376.8 Q F1(>)2.5 +F .867(xpands to more than one)-.15 F -.1(wo)108 468 S(rd,).1 E F1(bash) +2.5 E F0(reports an error)2.5 E(.)-.55 E +(Note that the order of redirections is signi\214cant.)108 484.8 Q -.15 +(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 501.6 Q F1(>)2.5 E F0(dirlist 2)2.5 E F1(>&)A F0(1)A -(directs both standard output and standard error to the \214le)108 393.6 -Q F3(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144 -410.4 Q F1(>&)A F0(1)A F1(>)2.5 E F0(dirlist)2.5 E .527 -(directs only the standard output to \214le)108 427.2 R F3(dirlist)3.027 -E F0 3.027(,b).68 G .527(ecause the standard error w)-3.027 F .527 +(directs both standard output and standard error to the \214le)108 518.4 +Q F2(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144 +535.2 Q F1(>&)A F0(1)A F1(>)2.5 E F0(dirlist)2.5 E .527 +(directs only the standard output to \214le)108 552 R F2(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 439.2 Q(as redirected to)-.1 E -F3(dirlist)2.5 E F0(.).68 E F1(Bash)108 456 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 468 Q F1(/de)144 484.8 Q(v/fd/)-.15 E F3(fd)A F0 -(If)180 496.8 Q F3(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15 E -2.5<2c8c>-.4 G(le descriptor)-2.5 E F3(fd)2.5 E F0(is duplicated.)2.5 E -F1(/de)144 508.8 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.) -180 520.8 Q F1(/de)144 532.8 Q(v/stdout)-.15 E F0 -(File descriptor 1 is duplicated.)180 544.8 Q F1(/de)144 556.8 Q -(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 568.8 Q F1(/de) -144 580.8 Q(v/tcp/)-.15 E F3(host)A F1(/)A F3(port)A F0(If)180 592.8 Q -F3(host)2.996 E F0 .496(is a v)2.996 F .496 -(alid hostname or Internet address, and)-.25 F F3(port)2.997 E F0 .497 -(is an inte)2.997 F .497(ger port number or ser)-.15 F(-)-.2 E -(vice name,)180 604.8 Q F1(bash)2.5 E F0 -(attempts to open the corresponding TCP sock)2.5 E(et.)-.1 E F1(/de)144 -616.8 Q(v/udp/)-.15 E F3(host)A F1(/)A F3(port)A F0(If)180 628.8 Q F3 -(host)2.997 E F0 .497(is a v)2.997 F .497 -(alid hostname or Internet address, and)-.25 F F3(port)2.996 E F0 .496 +(output before the standard output w)108 564 Q(as redirected to)-.1 E F2 +(dirlist)2.5 E F0(.).68 E F1(Bash)108 580.8 Q F0 .598(handles se)3.098 F +-.15(ve)-.25 G .598(ral \214lenames specially when the).15 F 3.099(ya) +-.15 G .599(re used in redirections, as described in the follo)-3.099 F +(wing)-.25 E(table:)108 592.8 Q F1(/de)144 609.6 Q(v/fd/)-.15 E F2(fd)A +F0(If)180 621.6 Q F2(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15 +E 2.5<2c8c>-.4 G(le descriptor)-2.5 E F2(fd)2.5 E F0(is duplicated.)2.5 +E F1(/de)144 633.6 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.) +180 645.6 Q F1(/de)144 657.6 Q(v/stdout)-.15 E F0 +(File descriptor 1 is duplicated.)180 669.6 Q F1(/de)144 681.6 Q +(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 693.6 Q F1(/de) +144 705.6 Q(v/tcp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)180 717.6 Q +F2(host)2.997 E F0 .497(is a v)2.997 F .497 +(alid hostname or Internet address, and)-.25 F F2(port)2.996 E F0 .496 (is an inte)2.996 F .496(ger port number or ser)-.15 F(-)-.2 E -(vice name,)180 640.8 Q F1(bash)2.5 E F0 -(attempts to open the corresponding UDP sock)2.5 E(et.)-.1 E 2.5(Af)108 -657.6 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 th\ -an 9 should be used with care, as the)108 674.4 R 3.447(ym)-.15 G .947 -(ay con\215ict with \214le)-3.447 F -(descriptors the shell uses internally)108 686.4 Q(.)-.65 E F1(Redir)87 -703.2 Q(ecting Input)-.18 E F0 .391 -(Redirection of input causes the \214le whose name results from the e) -108 715.2 R .391(xpansion of)-.15 F F3(wor)3.231 E(d)-.37 E F0 .391 -(to be opened for read-)3.661 F(ing on \214le descriptor)108 727.2 Q F3 -(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 F3(n)2.86 E F0 -(is not speci\214ed.)2.74 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15 -(ve)-.15 G(mber 24).15 E(25)185.545 E 0 Cg EP +(vice name,)180 729.6 Q F1(bash)2.5 E F0 +(attempts to open the corresponding TCP sock)2.5 E(et.)-.1 E +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(25)193.45 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(The general format for redirecting input is:)108 84 Q([)144 100.8 -Q/F1 10/Times-Italic@0 SF(n)A F0(])A/F2 10/Times-Bold@0 SF(<)A F1(wor)A -(d)-.37 E F2(Redir)87 117.6 Q(ecting Output)-.18 E F0 .174 +-.35 E/F1 10/Times-Bold@0 SF(/de)144 84 Q(v/udp/)-.15 E/F2 10 +/Times-Italic@0 SF(host)A F1(/)A F2(port)A F0(If)180 96 Q F2(host)2.996 +E F0 .496(is a v)2.996 F .496(alid hostname or Internet address, and) +-.25 F F2(port)2.997 E F0 .497(is an inte)2.997 F .497 +(ger port number or ser)-.15 F(-)-.2 E(vice name,)180 108 Q F1(bash)2.5 +E F0(attempts to open the corresponding UDP sock)2.5 E(et.)-.1 E 2.5(Af) +108 124.8 S +(ailure to open or create a \214le causes the redirection to f)-2.6 E +(ail.)-.1 E .947(Redirections using \214le descriptors greater than 9 s\ +hould be used with care, as the)108 141.6 R 3.446(ym)-.15 G .946 +(ay con\215ict with \214le)-3.446 F +(descriptors the shell uses internally)108 153.6 Q(.)-.65 E F1(Redir)87 +170.4 Q(ecting Input)-.18 E F0 .391 +(Redirection of input causes the \214le whose name results from the e) +108 182.4 R .391(xpansion of)-.15 F F2(wor)3.231 E(d)-.37 E F0 .391 +(to be opened for read-)3.661 F(ing on \214le descriptor)108 194.4 Q F2 +(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 F2(n)2.86 E F0 +(is not speci\214ed.)2.74 E +(The general format for redirecting input is:)108 211.2 Q([)144 228 Q F2 +(n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 244.8 Q(ecting Output) +-.18 E F0 .175 (Redirection of output causes the \214le whose name results from the e) -108 129.6 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 141.6 -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 153.6 S(ist it is created; if it does e).15 E +108 256.8 R .174(xpansion of)-.15 F F2(wor)3.014 E(d)-.37 E F0 .174 +(to be opened for writ-)3.444 F .824(ing on \214le descriptor)108 268.8 +R F2(n)3.324 E F0 3.324(,o).24 G 3.324(rt)-3.324 G .824 +(he standard output \(\214le descriptor 1\) if)-3.324 F F2(n)3.684 E F0 +.824(is not speci\214ed.)3.564 F .825(If the \214le does not)5.825 F +-.15(ex)108 280.8 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 170.4 Q([)144 187.2 Q -F1(n)A F0(])A F2(>)A F1(wor)A(d)-.37 E F0 .154 -(If the redirection operator is)108 204 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 .658(will f)108 216 R .658 -(ail if the \214le whose name results from the e)-.1 F .658(xpansion of) --.15 F F1(wor)3.158 E(d)-.37 E F0 -.15(ex)3.158 G .657(ists and is a re) -.15 F .657(gular \214le.)-.15 F .657(If the redi-)5.657 F .408 -(rection operator is)108 228 R F2(>|)2.909 E F0 2.909(,o)C 2.909(rt) --2.909 G .409(he redirection operator is)-2.909 F F2(>)2.909 E F0 .409 -(and the)2.909 F F2(noclob)2.909 E(ber)-.1 E F0 .409(option to the)2.909 -F F2(set)2.909 E F0 -.2(bu)2.909 G .409(iltin command).2 F -(is not enabled, the redirection is attempted e)108 240 Q -.15(ve)-.25 G -2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)-2.5 E F1(wor)2.5 E(d)-.37 -E F0 -.15(ex)2.5 G(ists.).15 E F2 -.25(Ap)87 256.8 S(pending Redir).25 E -(ected Output)-.18 E F0 .642(Redirection of output in this f)108 268.8 R -.642(ashion causes the \214le whose name results from the e)-.1 F .641 -(xpansion of)-.15 F F1(wor)3.481 E(d)-.37 E F0 .641(to be)3.911 F .473 -(opened for appending on \214le descriptor)108 280.8 R F1(n)2.973 E F0 +(The general format for redirecting output is:)108 297.6 Q([)144 314.4 Q +F2(n)A F0(])A F1(>)A F2(wor)A(d)-.37 E F0 .155 +(If the redirection operator is)108 331.2 R F1(>)2.655 E F0 2.655(,a)C +.155(nd the)-2.655 F F1(noclob)2.655 E(ber)-.1 E F0 .154(option to the) +2.654 F F1(set)2.654 E F0 -.2(bu)2.654 G .154 +(iltin has been enabled, the redirection).2 F .657(will f)108 343.2 R +.657(ail if the \214le whose name results from the e)-.1 F .658 +(xpansion of)-.15 F F2(wor)3.158 E(d)-.37 E F0 -.15(ex)3.158 G .658 +(ists and is a re).15 F .658(gular \214le.)-.15 F .658(If the redi-) +5.658 F .409(rection operator is)108 355.2 R F1(>|)2.909 E F0 2.909(,o)C +2.909(rt)-2.909 G .409(he redirection operator is)-2.909 F F1(>)2.909 E +F0 .409(and the)2.909 F F1(noclob)2.909 E(ber)-.1 E F0 .409 +(option to the)2.909 F F1(set)2.909 E F0 -.2(bu)2.908 G .408 +(iltin command).2 F(is not enabled, the redirection is attempted e)108 +367.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by) +-2.5 E F2(wor)2.5 E(d)-.37 E F0 -.15(ex)2.5 G(ists.).15 E F1 -.25(Ap)87 +384 S(pending Redir).25 E(ected Output)-.18 E F0 .641 +(Redirection of output in this f)108 396 R .642 +(ashion causes the \214le whose name results from the e)-.1 F .642 +(xpansion of)-.15 F F2(wor)3.482 E(d)-.37 E F0 .642(to be)3.912 F .474 +(opened for appending on \214le descriptor)108 408 R F2(n)2.974 E F0 2.974(,o).24 G 2.974(rt)-2.974 G .474 -(he standard output \(\214le descriptor 1\) if)-2.974 F F1(n)3.334 E F0 -.474(is not speci\214ed.)3.214 F(If)5.474 E(the \214le does not e)108 -292.8 Q(xist it is created.)-.15 E -(The general format for appending output is:)108 309.6 Q([)144 326.4 Q -F1(n)A F0(])A F2(>>)A F1(wor)A(d)-.37 E F2(Redir)87 348 Q -(ecting Standard Output and Standard Err)-.18 E(or)-.18 E F0 .249 -(This construct allo)108 360 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 372 Q -(xpansion of)-.15 E F1(wor)2.5 E(d)-.37 E F0(.).77 E(There are tw)108 -388.8 Q 2.5(of)-.1 G -(ormats for redirecting standard output and standard error:)-2.5 E F2 -(&>)144 405.6 Q F1(wor)A(d)-.37 E F0(and)108 417.6 Q F2(>&)144 429.6 Q -F1(wor)A(d)-.37 E F0(Of the tw)108 446.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 F2(>)144 463.2 Q F1(wor)A(d)-.37 E F0(2)2.5 -E F2(>&)A F0(1)A .114(When using the second form,)108 480 R F1(wor)2.614 -E(d)-.37 E F0 .114(may not e)2.614 F .114(xpand to a number or)-.15 F F2 -<ad>2.614 E F0 5.114(.I)C 2.614(fi)-5.114 G 2.615(td)-2.614 G .115 -(oes, other redirection operators)-2.615 F(apply \(see)108 492 Q F2 -(Duplicating File Descriptors)2.5 E F0(belo)2.5 E -(w\) for compatibility reasons.)-.25 E F2 -.25(Ap)87 508.8 S -(pending Standard Output and Standard Err).25 E(or)-.18 E F0 .249 -(This construct allo)108 520.8 R .249(ws both the standard output \(\ +(he standard output \(\214le descriptor 1\) if)-2.974 F F2(n)3.333 E F0 +.473(is not speci\214ed.)3.213 F(If)5.473 E(the \214le does not e)108 +420 Q(xist it is created.)-.15 E +(The general format for appending output is:)108 436.8 Q([)144 453.6 Q +F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 475.2 Q +(ecting Standard Output and Standard Err)-.18 E(or)-.18 E F0 .248 +(This construct allo)108 487.2 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 -532.8 Q(xpansion of)-.15 E F1(wor)2.5 E(d)-.37 E F0(.).77 E +-.25 F(tor 2\) to be redirected to the \214le whose name is the e)108 +499.2 Q(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E +(There are tw)108 516 Q 2.5(of)-.1 G +(ormats for redirecting standard output and standard error:)-2.5 E F1 +(&>)144 532.8 Q F2(wor)A(d)-.37 E F0(and)108 544.8 Q F1(>&)144 556.8 Q +F2(wor)A(d)-.37 E F0(Of the tw)108 573.6 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 590.4 Q F2(wor)A(d)-.37 E F0(2)2.5 +E F1(>&)A F0(1)A .115(When using the second form,)108 607.2 R F2(wor) +2.614 E(d)-.37 E F0 .114(may not e)2.614 F .114(xpand to a number or) +-.15 F F1<ad>2.614 E F0 5.114(.I)C 2.614(fi)-5.114 G 2.614(td)-2.614 G +.114(oes, other redirection operators)-2.614 F(apply \(see)108 619.2 Q +F1(Duplicating File Descriptors)2.5 E F0(belo)2.5 E +(w\) for compatibility reasons.)-.25 E F1 -.25(Ap)87 636 S +(pending Standard Output and Standard Err).25 E(or)-.18 E F0 .248 +(This construct allo)108 648 R .249(ws both the standard output \(\214l\ +e 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 660 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 -549.6 Q F2(&>>)144 566.4 Q F1(wor)A(d)-.37 E F0 -(This is semantically equi)108 583.2 Q -.25(va)-.25 G(lent to).25 E F2 -(>>)144 600 Q F1(wor)A(d)-.37 E F0(2)2.5 E F2(>&)A F0(1)A(\(see)108 -616.8 Q F2(Duplicating File Descriptors)2.5 E F0(belo)2.5 E(w\).)-.25 E -F2(Her)87 633.6 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33(This type of red\ -irection instructs the shell to read input from the current source unti\ -l a line containing only)108 645.6 R F1(delimiter)108.35 657.6 Q F0 .615 -(\(with no trailing blanks\) is seen.)3.845 F .615 -(All of the lines read up to that point are then used as the stan-)5.615 -F(dard input for a command.)108 669.6 Q -(The format of here-documents is:)108 686.4 Q F2(<<)144 703.2 Q F0([)A -F2<ad>A F0(])A F1(wor)A(d)-.37 E(her)164 715.2 Q(e-document)-.37 E -(delimiter)144 727.2 Q F0(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15 -(ve)-.15 G(mber 24).15 E(26)185.545 E 0 Cg EP +676.8 Q F1(&>>)144 693.6 Q F2(wor)A(d)-.37 E F0 +(This is semantically equi)108 710.4 Q -.25(va)-.25 G(lent to).25 E F1 +(>>)144 727.2 Q F2(wor)A(d)-.37 E F0(2)2.5 E F1(>&)A F0(1)A +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(26)193.45 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 .301(No parameter and v)108 84 R .302(ariable e)-.25 F .302 -(xpansion, command substitution, arithmetic e)-.15 F .302 -(xpansion, or pathname e)-.15 F(xpansion)-.15 E .226(is performed on)108 -96 R/F1 10/Times-Italic@0 SF(wor)2.726 E(d)-.37 E F0 5.226(.I).77 G -2.726(fa)-5.226 G .526 -.15(ny c)-2.726 H .226(haracters in).15 F F1 -(wor)3.066 E(d)-.37 E F0 .226(are quoted, the)3.496 F F1(delimiter)3.076 -E F0 .225(is the result of quote remo)3.456 F -.25(va)-.15 G 2.725(lo) -.25 G(n)-2.725 E F1(wor)108 108 Q(d)-.37 E F0 2.714(,a).77 G .214 -(nd the lines in the here-document are not e)-2.714 F 2.714(xpanded. If) --.15 F F1(wor)2.715 E(d)-.37 E F0 .215 -(is unquoted, all lines of the here-docu-)2.715 F .499 -(ment are subjected to parameter e)108 120 R .499 -(xpansion, command substitution, and arithmetic e)-.15 F .499 -(xpansion, the character)-.15 F(sequence)108 132 Q/F2 10/Times-Bold@0 SF -(\\<newline>)2.5 E F0(is ignored, and)2.5 E F2(\\)2.5 E F0 -(must be used to quote the characters)2.5 E F2(\\)2.5 E F0(,)A F2($)2.5 -E F0 2.5(,a)C(nd)-2.5 E F2<92>2.5 E F0(.)A .601 -(If the redirection operator is)108 148.8 R F2(<<\255)3.101 E F0 3.101 -(,t)C .601(hen all leading tab characters are stripped from input lines\ - and the line)-3.101 F(containing)108 160.8 Q F1(delimiter)2.5 E F0 5 -(.T).73 G(his allo)-5 E +-.35 E(\(see)108 84 Q/F1 10/Times-Bold@0 SF +(Duplicating File Descriptors)2.5 E F0(belo)2.5 E(w\).)-.25 E F1(Her)87 +100.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 112.8 R/F2 10/Times-Italic@0 SF(delimiter)108.35 +124.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 136.8 Q +(The format of here-documents is:)108 153.6 Q F1(<<)144 170.4 Q F0([)A +F1<ad>A F0(])A F2(wor)A(d)-.37 E(her)164 182.4 Q(e-document)-.37 E +(delimiter)144 194.4 Q F0 .302(No parameter and v)108 211.2 R .302 +(ariable e)-.25 F .302(xpansion, command substitution, arithmetic e)-.15 +F .301(xpansion, or pathname e)-.15 F(xpansion)-.15 E .225 +(is performed on)108 223.2 R F2(wor)2.725 E(d)-.37 E F0 5.225(.I).77 G +2.726(fa)-5.225 G .526 -.15(ny c)-2.726 H .226(haracters in).15 F F2 +(wor)3.066 E(d)-.37 E F0 .226(are quoted, the)3.496 F F2(delimiter)3.076 +E F0 .226(is the result of quote remo)3.456 F -.25(va)-.15 G 2.726(lo) +.25 G(n)-2.726 E F2(wor)108 235.2 Q(d)-.37 E F0 2.715(,a).77 G .215 +(nd the lines in the here-document are not e)-2.715 F 2.714(xpanded. If) +-.15 F F2(wor)2.714 E(d)-.37 E F0 .214 +(is unquoted, all lines of the here-docu-)2.714 F .499 +(ment are subjected to parameter e)108 247.2 R .499 +(xpansion, command substitution, and arithmetic e)-.15 F .5 +(xpansion, the character)-.15 F(sequence)108 259.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 276 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 288 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 F2(Her)87 177.6 Q 2.5(eS)-.18 G(trings)-2.5 E F0 -2.5(Av)108 189.6 S(ariant of here documents, the format is:)-2.75 E F2 -(<<<)144 206.4 Q F1(wor)A(d)-.37 E F0(The)108 223.2 Q F1(wor)2.894 E(d) --.37 E F0(under)2.894 E .394(goes brace e)-.18 F .393(xpansion, tilde e) --.15 F .393(xpansion, parameter and v)-.15 F .393(ariable e)-.25 F .393 -(xpansion, command substi-)-.15 F 2.147(tution, arithmetic e)108 235.2 R -2.147(xpansion, and quote remo)-.15 F -.25(va)-.15 G 4.648(l. P).25 F -2.148(athname e)-.15 F 2.148(xpansion and w)-.15 F 2.148 -(ord splitting are not per)-.1 F(-)-.2 E 2.5(formed. The)108 247.2 R(re\ +-.25 E(ashion.)-.1 E F1(Her)87 304.8 Q 2.5(eS)-.18 G(trings)-2.5 E F0 +2.5(Av)108 316.8 S(ariant of here documents, the format is:)-2.75 E F1 +(<<<)144 333.6 Q F2(wor)A(d)-.37 E F0(The)108 350.4 Q F2(wor)2.893 E(d) +-.37 E F0(under)2.893 E .393(goes brace e)-.18 F .393(xpansion, tilde e) +-.15 F .393(xpansion, parameter and v)-.15 F .394(ariable e)-.25 F .394 +(xpansion, command substi-)-.15 F 2.148(tution, arithmetic e)108 362.4 R +2.148(xpansion, and quote remo)-.15 F -.25(va)-.15 G 4.648(l. P).25 F +2.148(athname e)-.15 F 2.148(xpansion and w)-.15 F 2.147 +(ord splitting are not per)-.1 F(-)-.2 E 2.5(formed. The)108 374.4 R(re\ sult is supplied as a single string to the command on its standard inpu\ -t.)2.5 E F2(Duplicating File Descriptors)87 264 Q F0 -(The redirection operator)108 276 Q([)144 292.8 Q F1(n)A F0(])A F2(<&)A -F1(wor)A(d)-.37 E F0 .127 -(is used to duplicate input \214le descriptors.)108 309.6 R(If)5.127 E -F1(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .126 +t.)2.5 E F1(Duplicating File Descriptors)87 391.2 Q F0 +(The redirection operator)108 403.2 Q([)144 420 Q F2(n)A F0(])A F1(<&)A +F2(wor)A(d)-.37 E F0 .126 +(is used to duplicate input \214le descriptors.)108 436.8 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 -321.6 Q F1(n)3.317 E F0 .457(is made to be a cop)3.197 F 2.957(yo)-.1 G -2.957(ft)-2.957 G .457(hat \214le descriptor)-2.957 F 5.457(.I)-.55 G -2.957(ft)-5.457 G .457(he digits in)-2.957 F F1(wor)3.298 E(d)-.37 E F0 -.458(do not specify a \214le descriptor open)3.728 F .15 -(for input, a redirection error occurs.)108 333.6 R(If)5.15 E F1(wor) -2.99 E(d)-.37 E F0 -.25(eva)3.42 G .15(luates to).25 F F2<ad>2.65 E F0 -2.649<2c8c>C .149(le descriptor)-2.649 F F1(n)3.009 E F0 .149 -(is closed.)2.889 F(If)5.149 E F1(n)3.009 E F0 .149(is not speci\214ed,) -2.889 F(the standard input \(\214le descriptor 0\) is used.)108 345.6 Q -(The operator)108 362.4 Q([)144 379.2 Q F1(n)A F0(])A F2(>&)A F1(wor)A -(d)-.37 E F0 .443 -(is used similarly to duplicate output \214le descriptors.)108 396 R(If) -5.443 E F1(n)3.304 E F0 .444 -(is not speci\214ed, the standard output \(\214le descrip-)3.184 F 1.358 -(tor 1\) is used.)108 408 R 1.358(If the digits in)6.358 F F1(wor)4.198 -E(d)-.37 E F0 1.357(do not specify a \214le descriptor open for output,\ - a redirection error)4.628 F 2.753(occurs. If)108 420 R F1(wor)3.093 E -(d)-.37 E F0 -.25(eva)3.523 G .253(luates to).25 F F2<ad>2.754 E F0 -2.754<2c8c>C .254(le descriptor)-2.754 F F1(n)3.114 E F0 .254 -(is closed.)2.994 F .254(As a special case, if)5.254 F F1(n)2.754 E F0 -.254(is omitted, and)2.754 F F1(wor)2.754 E(d)-.37 E F0(does)2.754 E -.966(not e)108 432 R .966(xpand to one or more digits or)-.15 F F2<ad> -3.466 E F0 3.466(,t)C .965 +448.8 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 460.8 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 472.8 Q +(The operator)108 489.6 Q([)144 506.4 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 523.2 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 535.2 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 o\ +utput, a redirection error)4.627 F 2.754(occurs. If)108 547.2 R F2(wor) +3.094 E(d)-.37 E F0 -.25(eva)3.524 G .254(luates to).25 F F1<ad>2.754 E +F0 2.754<2c8c>C .254(le descriptor)-2.754 F F2(n)3.114 E F0 .254 +(is closed.)2.994 F .254(As a special case, if)5.254 F F2(n)2.754 E F0 +.253(is omitted, and)2.754 F F2(wor)2.753 E(d)-.37 E F0(does)2.753 E +.965(not e)108 559.2 R .965(xpand to one or more digits or)-.15 F F1<ad> +3.465 E F0 3.466(,t)C .966 (he standard output and standard error are redirected as described) --3.466 F(pre)108 444 Q(viously)-.25 E(.)-.65 E F2(Mo)87 460.8 Q -(ving File Descriptors)-.1 E F0(The redirection operator)108 472.8 Q([) -144 489.6 Q F1(n)A F0(])A F2(<&)A F1(digit)A F2<ad>A F0(mo)108 506.4 Q --.15(ve)-.15 G 3.035(st).15 G .535(he \214le descriptor)-3.035 F F1 -(digit)3.035 E F0 .535(to \214le descriptor)3.035 F F1(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 F1(n)3.036 E F0 -.536(is not speci-)3.036 F(\214ed.)108 518.4 Q F1(digit)5 E F0 -(is closed after being duplicated to)2.5 E F1(n)2.5 E F0(.)A(Similarly) -108 535.2 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)144 552 Q F1 -(n)A F0(])A F2(>&)A F1(digit)A F2<ad>A F0(mo)108 568.8 Q -.15(ve)-.15 G -2.786(st).15 G .286(he \214le descriptor)-2.786 F F1(digit)2.786 E F0 -.286(to \214le descriptor)2.786 F F1(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 -F1(n)2.785 E F0 .285(is not speci-)2.785 F(\214ed.)108 580.8 Q F2 -(Opening File Descriptors f)87 597.6 Q(or Reading and Writing)-.25 E F0 -(The redirection operator)108 609.6 Q([)144 626.4 Q F1(n)A F0(])A F2(<>) -A F1(wor)A(d)-.37 E F0 1.349(causes the \214le whose name is the e)108 -643.2 R 1.349(xpansion of)-.15 F F1(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 655.2 Q F1(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 F1(n)2.86 E F0(is not speci\214ed.)2.74 E -(If the \214le does not e)5 E(xist, it is created.)-.15 E/F3 10.95 -/Times-Bold@0 SF(ALIASES)72 672 Q F1(Aliases)108 684 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 696 R F2(alias)2.894 E F0 -(and)2.894 E F2(unalias)2.894 E F0 -.2(bu)2.894 G .394(iltin commands).2 -F(\(see)108 708 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 720 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 F2(/)2.973 E F0(,)A -F2($)2.973 E F0(,)A F2<92>2.973 E F0(,)A(GNU Bash 4.2)72 768 Q(2012 No) -136.385 E -.15(ve)-.15 G(mber 24).15 E(27)185.545 E 0 Cg EP +-3.466 F(pre)108 571.2 Q(viously)-.25 E(.)-.65 E F1(Mo)87 588 Q +(ving File Descriptors)-.1 E F0(The redirection operator)108 600 Q([)144 +616.8 Q F2(n)A F0(])A F1(<&)A F2(digit)A F1<ad>A F0(mo)108 633.6 Q -.15 +(ve)-.15 G 3.036(st).15 G .536(he \214le descriptor)-3.036 F F2(digit) +3.036 E F0 .536(to \214le descriptor)3.036 F F2(n)3.036 E F0 3.036(,o) +.24 G 3.036(rt)-3.036 G .535 +(he standard input \(\214le descriptor 0\) if)-3.036 F F2(n)3.035 E F0 +.535(is not speci-)3.035 F(\214ed.)108 645.6 Q F2(digit)5 E F0 +(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A(Similarly) +108 662.4 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)144 679.2 Q +F2(n)A F0(])A F1(>&)A F2(digit)A F1<ad>A F0(mo)108 696 Q -.15(ve)-.15 G +2.785(st).15 G .285(he \214le descriptor)-2.785 F F2(digit)2.785 E F0 +.285(to \214le descriptor)2.785 F F2(n)2.785 E F0 2.785(,o).24 G 2.785 +(rt)-2.785 G .286(he standard output \(\214le descriptor 1\) if)-2.785 F +F2(n)2.786 E F0 .286(is not speci-)2.786 F(\214ed.)108 708 Q +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(27)193.45 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(and)108 84 Q/F1 10/Times-Bold@0 SF(=)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 10 -/Times-Italic@0 SF(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 96 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 108 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 120 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 132 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 144 Q(ord follo)-.1 E +-.35 E/F1 10/Times-Bold@0 SF(Opening File Descriptors f)87 84 Q +(or Reading and Writing)-.25 E F0(The redirection operator)108 96 Q([) +144 112.8 Q/F2 10/Times-Italic@0 SF(n)A F0(])A F1(<>)A F2(wor)A(d)-.37 E +F0 1.349(causes the \214le whose name is the e)108 129.6 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 141.6 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 158.4 Q F2(Aliases)108 170.4 Q F0(allo)3.173 +E 3.173(was)-.25 G .674(tring to be substituted for a w)-3.173 F .674 +(ord when it is used as the \214rst w)-.1 F .674 +(ord of a simple command.)-.1 F .394(The shell maintains a list of alia\ +ses that may be set and unset with the)108 182.4 R F1(alias)2.893 E F0 +(and)2.893 E F1(unalias)2.893 E F0 -.2(bu)2.893 G .393(iltin commands).2 +F(\(see)108 194.4 Q/F4 9/Times-Bold@0 SF 1.979(SHELL B)4.479 F(UIL)-.09 +E 1.979(TIN COMMANDS)-.828 F F0(belo)4.229 E 4.48(w\). The)-.25 F 1.98 +(\214rst w)4.48 F 1.98(ord of each simple command, if unquoted, is)-.1 F +(check)108 206.4 Q .473(ed to see if it has an alias.)-.1 F .473 +(If so, that w)5.473 F .472(ord is replaced by the te)-.1 F .472 +(xt of the alias.)-.15 F .472(The characters)5.472 F F1(/)2.972 E F0(,)A +F1($)2.972 E F0(,)A F1<92>2.972 E F0(,)A(and)108 218.4 Q F1(=)3.611 E F0 +1.111(and an)3.611 F 3.611(yo)-.15 G 3.611(ft)-3.611 G 1.111(he shell) +-3.611 F F2(metac)3.612 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112 +(or quoting characters listed abo)3.612 F 1.412 -.15(ve m)-.15 H 1.112 +(ay not appear in an alias).15 F 3.62(name. The)108 230.4 R 1.12 +(replacement te)3.62 F 1.119(xt may contain an)-.15 F 3.619(yv)-.15 G +1.119(alid shell input, including shell metacharacters.)-3.869 F 1.119 +(The \214rst)6.119 F -.1(wo)108 242.4 S .513(rd of the replacement te).1 +F .513(xt is tested for aliases, b)-.15 F .513(ut a w)-.2 F .514 +(ord that is identical to an alias being e)-.1 F .514(xpanded is)-.15 F +.296(not e)108 254.4 R .296(xpanded a second time.)-.15 F .296 +(This means that one may alias)5.296 F F1(ls)2.796 E F0(to)2.796 E F1 +.296(ls \255F)2.796 F F0 2.796(,f)C .295(or instance, and)-2.796 F F1 +(bash)2.795 E F0 .295(does not try)2.795 F .542(to recursi)108 266.4 R +-.15(ve)-.25 G .542(ly e).15 F .542(xpand the replacement te)-.15 F +3.042(xt. If)-.15 F .543(the last character of the alias v)3.042 F .543 +(alue is a)-.25 F F2(blank)3.043 E F0 3.043(,t).67 G .543(hen the ne) +-3.043 F(xt)-.15 E(command w)108 278.4 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 160.8 Q F1(alias)2.5 E F0 +E(Aliases are created and listed with the)108 295.2 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 177.6 R .284 +(There is no mechanism for using ar)108 312 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 189.6 Q/F3 9/Times-Bold@0 SF(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).) --.25 E 1.22(Aliases are not e)108 206.4 R 1.22 +108 324 Q F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.22 +(Aliases are not e)108 340.8 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 218.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 F3 +(shell option is set)3.72 F(using)108 352.8 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 +E .436 (The rules concerning the de\214nition and use of aliases are some)108 -235.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 247.2 R -.15(xe)-.15 G .338 +369.6 R .435(what confusing.)-.25 F F1(Bash)5.435 E F0(al)2.935 E -.1 +(wa)-.1 G .435(ys reads at least).1 F .337 +(one complete line of input before e)108 381.6 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 259.2 S .904 -(ommand is read, not when it is e)-3.403 F -.15(xe)-.15 G 3.404 +(he commands on that line.)-2.838 F .338(Aliases are e)5.338 F .338 +(xpanded when)-.15 F 3.404(ac)108 393.6 S .904 +(ommand is read, not when it is e)-3.404 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 271.2 R 3.662(ee)-.1 G -.25(ff)-3.662 +(an alias de\214nition appearing on the same line as)3.404 F 1.161 +(another command does not tak)108 405.6 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 .277 -(alias de\214nition on that line are not af)108 283.2 R .277 +1.162(The commands follo)6.162 F 1.162(wing the)-.25 F .277 +(alias de\214nition on that line are not af)108 417.6 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 -295.2 R -.15(xe)-.15 G 3.199(cuted. Aliases).15 F .699(are e)3.199 F +2.777 E .277(vior is also an issue when functions)-.2 F .698(are e)108 +429.6 R -.15(xe)-.15 G 3.198(cuted. Aliases).15 F .698(are e)3.198 F .699(xpanded when a function de\214nition is read, not when the functio\ -n is e)-.15 F -.15(xe)-.15 G(cuted,).15 E .494 -(because a function de\214nition is itself a compound command.)108 307.2 -R .495(As a consequence, aliases de\214ned in a func-)5.494 F .085 -(tion are not a)108 319.2 R -.25(va)-.2 G .084 +n is e)-.15 F -.15(xe)-.15 G(cuted,).15 E .495 +(because a function de\214nition is itself a compound command.)108 441.6 +R .494(As a consequence, aliases de\214ned in a func-)5.494 F .084 +(tion are not a)108 453.6 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 331.2 Q F1(alias)2.5 E F0 -(in compound commands.)2.5 E -.15(Fo)108 348 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/F4 10.95/Times-Bold@0 SF(FUNCTIONS)72 364.8 Q F0 3.467(As)108 -376.8 S .967(hell function, de\214ned as described abo)-3.467 F 1.267 --.15(ve u)-.15 H(nder).15 E F3 .967(SHELL GRAMMAR)3.467 F/F5 9 -/Times-Roman@0 SF(,)A F0 .968(stores a series of commands for)3.217 F -1.002(later e)108 388.8 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 -400.8 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 412.8 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 424.8 R -.15(xe)-.15 G .639(cuted, the ar).15 F +-.1(wa)-.1 G .085(ys put alias de\214nitions on a sepa-).1 F +(rate line, and do not use)108 465.6 Q F1(alias)2.5 E F0 +(in compound commands.)2.5 E -.15(Fo)108 482.4 S 2.5(ra).15 G(lmost e) +-2.5 E -.15(ve)-.25 G +(ry purpose, aliases are superseded by shell functions.).15 E F3 +(FUNCTIONS)72 499.2 Q F0 3.468(As)108 511.2 S .968 +(hell function, de\214ned as described abo)-3.468 F 1.267 -.15(ve u)-.15 +H(nder).15 E F4 .967(SHELL GRAMMAR)3.467 F/F5 9/Times-Roman@0 SF(,)A F0 +.967(stores a series of commands for)3.217 F 1.001(later e)108 523.2 R +-.15(xe)-.15 G 3.501(cution. When).15 F 1.002(the name of a shell funct\ +ion is used as a simple command name, the list of com-)3.501 F .316 +(mands associated with that function name is e)108 535.2 R -.15(xe)-.15 +G 2.816(cuted. Functions).15 F .316(are e)2.816 F -.15(xe)-.15 G .315 +(cuted in the conte).15 F .315(xt of the current)-.15 F .035 +(shell; no ne)108 547.2 R 2.535(wp)-.25 G .036 +(rocess is created to interpret them \(contrast this with the e)-2.535 F +-.15(xe)-.15 G .036(cution of a shell script\).).15 F .036(When a)5.036 +F .64(function is e)108 559.2 R -.15(xe)-.15 G .64(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 436.8 -R F1(#)3.033 E F0 .532(is updated to re\215ect the change.)3.033 F .532 -(Special parameter)5.532 F F1(0)3.032 E F0 .532(is unchanged.)3.032 F -.532(The \214rst ele-)5.532 F(ment of the)108 448.8 Q F3(FUNCN)2.5 E +-.18 F -.15(xe)-.15 G(cution.).15 E .532(The special parameter)108 571.2 +R F1(#)3.032 E F0 .532(is updated to re\215ect the change.)3.032 F .532 +(Special parameter)5.532 F F1(0)3.033 E F0 .533(is unchanged.)3.033 F +.533(The \214rst ele-)5.533 F(ment of the)108 583.2 Q F4(FUNCN)2.5 E (AME)-.18 E F0 -.25(va)2.25 G (riable is set to the name of the function while the function is e).25 E -.15(xe)-.15 G(cuting.).15 E 1.25(All other aspects of the shell e)108 -465.6 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25 +600 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25 (vironment are identical between a function and its caller with)-.4 F -1.049(these e)108 477.6 R 3.548(xceptions: the)-.15 F F3(DEB)3.548 E(UG) +1.048(these e)108 612 R 3.548(xceptions: the)-.15 F F4(DEB)3.548 E(UG) -.09 E F0(and)3.298 E F1(RETURN)3.548 E F0 1.048 (traps \(see the description of the)3.548 F F1(trap)3.548 E F0 -.2(bu) -3.548 G 1.048(iltin under).2 F F3(SHELL)3.548 E -.09(BU)108 489.6 S(IL) -.09 E .478(TIN COMMANDS)-.828 F F0(belo)2.728 E .479 +3.548 G 1.048(iltin under).2 F F4(SHELL)3.549 E -.09(BU)108 624 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.979(nt).15 G(he)-2.979 E F1(trace)2.979 E F0(attrib)2.979 E -.479(ute \(see)-.2 F .421(the description of the)108 501.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.92 E F0 -.2(bu) -108 513.6 S .071(iltin \(in which case all functions inherit the).2 F F1 +-.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 636 R F4(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 648 S .072(iltin \(in which case all functions inherit the).2 F F1 (DEB)2.572 E(UG)-.1 E F0(and)2.572 E F1(RETURN)2.572 E F0 .072 -(traps\), and the)2.572 F F3(ERR)2.572 E F0 .072(trap is not inher)2.322 -F(-)-.2 E(ited unless the)108 525.6 Q F1(\255o errtrace)2.5 E F0 -(shell option has been enabled.)2.5 E -1.11(Va)108 542.4 S .656 +(traps\), and the)2.572 F F4(ERR)2.571 E F0 .071(trap is not inher)2.321 +F(-)-.2 E(ited unless the)108 660 Q F1(\255o errtrace)2.5 E F0 +(shell option has been enabled.)2.5 E -1.11(Va)108 676.8 S .655 (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 554.4 Q +3.155 E F0 -.2(bu)3.156 G .656(iltin command.).2 F(Ordinarily)5.656 E +3.156(,v)-.65 G .656(ariables and)-3.406 F(their v)108 688.8 Q (alues are shared between the function and its caller)-.25 E(.)-.55 E -(The)108 571.2 Q F1(FUNCNEST)3.528 E F0 -.25(va)3.528 G 1.028 +(The)108 705.6 Q F1(FUNCNEST)3.529 E F0 -.25(va)3.529 G 1.028 (riable, if set to a numeric v).25 F 1.028 (alue greater than 0, de\214nes a maximum function nesting)-.25 F(le)108 -583.2 Q -.15(ve)-.25 G 2.5(l. Function).15 F(in)2.5 E -.2(vo)-.4 G +717.6 Q -.15(ve)-.25 G 2.5(l. Function).15 F(in)2.5 E -.2(vo)-.4 G (cations that e).2 E(xceed the limit cause the entire command to abort.) --.15 E .044(If the b)108 600 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 -.043(cution resumes with).15 F 1.011(the ne)108 612 R 1.011 -(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.512 E F0 1.012 -(trap is e)3.512 F -.15(xe)-.15 G(cuted).15 E .214(before e)108 624 R --.15(xe)-.15 G .214(cution resumes.).15 F .213 -(When a function completes, the v)5.214 F .213 -(alues of the positional parameters and the spe-)-.25 F(cial parameter) -108 636 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.358 -(Function names and de\214nitions may be listed with the)108 652.8 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.859 E F1(typeset)3.859 E F0 -.2(bu)3.859 G 1.359(iltin com-).2 F -3.39(mands. The)108 664.8 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 -.326(\214le and line number)108 676.8 R 2.826(,i)-.4 G 2.826(ft)-2.826 G -(he)-2.826 E F1(extdeb)2.826 E(ug)-.2 E F0 .326 -(shell option is enabled\).)2.826 F .327(Functions may be e)5.327 F .327 -(xported so that subshells)-.15 F 1.298(automatically ha)108 688.8 R -1.598 -.15(ve t)-.2 H 1.298(hem de\214ned with the).15 F F1<ad66>3.798 E -F0 1.298(option to the)3.798 F F1(export)3.797 E F0 -.2(bu)3.797 G 3.797 -(iltin. A).2 F 1.297(function de\214nition may be)3.797 F .16 -(deleted using the)108 700.8 R F1<ad66>2.66 E F0 .16(option to the)2.66 -F F1(unset)2.66 E F0 -.2(bu)2.66 G 2.661(iltin. Note).2 F .161 -(that shell functions and v)2.661 F .161(ariables with the same name) --.25 F 1.325(may result in multiple identically-named entries in the en) -108 712.8 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 724.8 Q -(en in cases where this may cause a problem.)-.1 E(GNU Bash 4.2)72 768 Q -(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(28)185.545 E 0 Cg EP +-.15 E(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(28)193.45 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 .371(Functions may be recursi)108 84 R -.15(ve)-.25 G 5.371(.T) -.15 G(he)-5.371 E/F1 10/Times-Bold@0 SF(FUNCNEST)2.871 E F0 -.25(va) -2.871 G .371(riable may be used to limit the depth of the function call) -.25 F 1.141(stack and restrict the number of function in)108 96 R -.2 -(vo)-.4 G 3.641(cations. By).2 F(def)3.641 E 1.141 -(ault, no limit is imposed on the number of)-.1 F(recursi)108 108 Q .3 +-.35 E .043(If the b)108 84 R .043(uiltin command)-.2 F/F1 10 +/Times-Bold@0 SF -.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 96 +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 108 +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 120 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 136.8 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 148.8 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 160.8 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 172.8 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 184.8 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 +196.8 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 208.8 Q +(en in cases where this may cause a problem.)-.1 E .372 +(Functions may be recursi)108 225.6 R -.15(ve)-.25 G 5.371(.T).15 G(he) +-5.371 E F1(FUNCNEST)2.871 E F0 -.25(va)2.871 G .371 +(riable may be used to limit the depth of the function call).25 F 1.141 +(stack and restrict the number of function in)108 237.6 R -.2(vo)-.4 G +3.641(cations. By).2 F(def)3.641 E 1.141 +(ault, no limit is imposed on the number of)-.1 F(recursi)108 249.6 Q .3 -.15(ve c)-.25 H(alls.).15 E/F2 10.95/Times-Bold@0 SF(ARITHMETIC EV)72 -124.8 Q(ALU)-1.478 E -1.04(AT)-.657 G(ION)1.04 E F0 2.297 -(The shell allo)108 136.8 R 2.297(ws arithmetic e)-.25 F 2.297 +266.4 Q(ALU)-1.478 E -1.04(AT)-.657 G(ION)1.04 E F0 2.298 +(The shell allo)108 278.4 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.798 E F0 -(and)4.798 E F1(declar)108 148.8 Q(e)-.18 E F0 -.2(bu)2.706 G .206 -(iltin commands and).2 F F1 .206(Arithmetic Expansion)2.706 F F0 2.705 -(\). Ev)B .205(aluation is done in \214x)-.25 F .205(ed-width inte)-.15 -F .205(gers with no)-.15 F .428(check for o)108 160.8 R -.15(ve)-.15 G -(r\215o).15 E 1.728 -.65(w, t)-.25 H .428(hough di).65 F .428 -(vision by 0 is trapped and \215agged as an error)-.25 F 5.429(.T)-.55 G -.429(he operators and their prece-)-5.429 F 1.92(dence, associati)108 -172.8 R(vity)-.25 E 4.42(,a)-.65 G 1.92(nd v)-4.42 F 1.92 -(alues are the same as in the C language.)-.25 F 1.919(The follo)6.919 F -1.919(wing list of operators is)-.25 F(grouped into le)108 184.8 Q -.15 +(luated, under certain circumstances \(see the).25 F F1(let)4.797 E F0 +(and)4.797 E F1(declar)108 290.4 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 302.4 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 +314.4 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 326.4 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/F3 10 -/Times-Italic@0 SF(id)108 201.6 Q F1(++)A F3(id)2.5 E F1<adad>A F0 -.25 -(va)144 213.6 S(riable post-increment and post-decrement).25 E F1(++)108 -225.6 Q F3(id)A F1<adad>2.5 E F3(id)A F0 -.25(va)144 237.6 S -(riable pre-increment and pre-decrement).25 E F1 2.5<ad2b>108 249.6 S F0 -(unary minus and plus)19.6 E F1 2.5(!~)108 261.6 S F0 +/Times-Italic@0 SF(id)108 343.2 Q F1(++)A F3(id)2.5 E F1<adad>A F0 -.25 +(va)144 355.2 S(riable post-increment and post-decrement).25 E F1(++)108 +367.2 Q F3(id)A F1<adad>2.5 E F3(id)A F0 -.25(va)144 379.2 S +(riable pre-increment and pre-decrement).25 E F1 2.5<ad2b>108 391.2 S F0 +(unary minus and plus)19.6 E F1 2.5(!~)108 403.2 S F0 (logical and bitwise ne)24.34 E -.05(ga)-.15 G(tion).05 E F1(**)108 -273.6 Q F0 -.15(ex)26 G(ponentiation).15 E F1 2.5(*/%)108 285.6 S F0 +415.2 Q F0 -.15(ex)26 G(ponentiation).15 E F1 2.5(*/%)108 427.2 S F0 (multiplication, di)10.72 E(vision, remainder)-.25 E F1 2.5<2bad>108 -297.6 S F0(addition, subtraction)19.6 E F1(<< >>)108 309.6 Q F0 -(left and right bitwise shifts)10.7 E F1(<= >= < >)108 321.6 Q F0 -(comparison)144 333.6 Q F1(== !=)108 345.6 Q F0(equality and inequality) -13.07 E F1(&)108 357.6 Q F0(bitwise AND)27.67 E F1(^)108 369.6 Q F0 +439.2 S F0(addition, subtraction)19.6 E F1(<< >>)108 451.2 Q F0 +(left and right bitwise shifts)10.7 E F1(<= >= < >)108 463.2 Q F0 +(comparison)144 475.2 Q F1(== !=)108 487.2 Q F0(equality and inequality) +13.07 E F1(&)108 499.2 Q F0(bitwise AND)27.67 E F1(^)108 511.2 Q F0 (bitwise e)32.67 E(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F1(|)108 -381.6 Q F0(bitwise OR)33.8 E F1(&&)108 393.6 Q F0(logical AND)19.34 E F1 -(||)108 405.6 Q F0(logical OR)31.6 E F3 -.2(ex)108 417.6 S(pr).2 E F1(?) +523.2 Q F0(bitwise OR)33.8 E F1(&&)108 535.2 Q F0(logical AND)19.34 E F1 +(||)108 547.2 Q F0(logical OR)31.6 E F3 -.2(ex)108 559.2 S(pr).2 E F1(?) A F3 -.2(ex)C(pr).2 E F1(:)A F3 -.2(ex)C(pr).2 E F0 -(conditional operator)144 429.6 Q F1 2.5(=*)108 441.6 S 2.5(=/)-2.5 G +(conditional operator)144 571.2 Q F1 2.5(=*)108 583.2 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 453.6 Q F3 -.2(ex)108 465.6 S -(pr1).2 E F1(,)2.5 E F3 -.2(ex)2.5 G(pr2).2 E F0(comma)144 477.6 Q .68 -(Shell v)108 494.4 R .68(ariables are allo)-.25 F .68 +(<= >>= &= ^= |=)-2.5 E F0(assignment)144 595.2 Q F3 -.2(ex)108 607.2 S +(pr1).2 E F1(,)2.5 E F3 -.2(ex)2.5 G(pr2).2 E F0(comma)144 619.2 Q .68 +(Shell v)108 636 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.508(ated. W)108 506.4 R 1.008(ithin an e)-.4 -F 1.008(xpression, shell v)-.15 F 1.007 +-.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 648 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 518.4 S 1.04(pansion syntax.).15 F 3.54(As)6.04 G -1.04(hell v)-3.54 F 1.04(ariable that is null or unset e)-.25 F -.25(va) --.25 G 1.041(luates to 0 when referenced by name without).25 F 1.467 -(using the parameter e)108 530.4 R 1.467(xpansion syntax.)-.15 F 1.467 -(The v)6.467 F 1.467(alue of a v)-.25 F 1.467(ariable is e)-.25 F -.25 -(va)-.25 G 1.466(luated as an arithmetic e).25 F(xpression)-.15 E 1.389 -(when it is referenced, or when a v)108 542.4 R 1.389 -(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.89(nt).15 G(he)-3.89 -E F3(inte)3.89 E -.1(ge)-.4 G(r).1 E F0(attrib)3.89 E 1.39(ute using)-.2 -F F1(declar)3.89 E 3.89(e-)-.18 G(i)-3.89 E F0(is)3.89 E .333 -(assigned a v)108 554.4 R 2.832(alue. A)-.25 F .332(null v)2.832 F .332 -(alue e)-.25 F -.25(va)-.25 G .332(luates to 0.).25 F 2.832(As)5.332 G -.332(hell v)-2.832 F .332(ariable need not ha)-.25 F .632 -.15(ve i)-.2 -H(ts).15 E F3(inte)2.832 E -.1(ge)-.4 G(r).1 E F0(attrib)2.832 E .332 -(ute turned on)-.2 F(to be used in an e)108 566.4 Q(xpression.)-.15 E -1.406(Constants with a leading 0 are interpreted as octal numbers.)108 -583.2 R 3.906(Al)6.406 G 1.407(eading 0x or 0X denotes he)-3.906 F -(xadecimal.)-.15 E .113(Otherwise, numbers tak)108 595.2 R 2.613(et)-.1 -G .113(he form [)-2.613 F F3(base#)A F0 .112(]n, where the optional)B F3 -(base)2.612 E F0 .112(is a decimal number between 2 and 64)2.612 F .533 -(representing the arithmetic base, and)108 607.2 R F3(n)3.033 E F0 .533 -(is a number in that base.)3.033 F(If)5.534 E F3(base#)3.034 E F0 .534 -(is omitted, then base 10 is used.)3.034 F .16(When specifying)108 619.2 -R F3(n)2.66 E F0 2.66(,t)C .16 -(he digits greater< than 9 are represented by the lo)-2.66 F .16 -(wercase letters, the uppercase letters,)-.25 F .942 -(@, and _, in that order)108 631.2 R 5.942(.I)-.55 G(f)-5.942 E F3(base) -3.442 E F0 .942(is less than or equal to 36, lo)3.442 F .943 -(wercase and uppercase letters may be used)-.25 F -(interchangeably to represent numbers between 10 and 35.)108 643.2 Q -.235(Operators are e)108 660 R -.25(va)-.25 G .235 -(luated in order of precedence.).25 F(Sub-e)5.234 E .234 -(xpressions in parentheses are e)-.15 F -.25(va)-.25 G .234 -(luated \214rst and may).25 F -.15(ove)108 672 S -(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E F2 -(CONDITION)72 688.8 Q(AL EXPRESSIONS)-.219 E F0 .255(Conditional e)108 -700.8 R .255(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.756 E F0 -.2(bu)2.756 G .256(iltin commands to test).2 F .77 -(\214le attrib)108 712.8 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.04 -(unary or binary primaries.)108 724.8 R 1.04(If an)6.04 F(y)-.15 E F3 -(\214le)3.54 E F0(ar)3.54 E 1.041 -(gument to one of the primaries is of the form)-.18 F F3(/de)3.541 E -(v/fd/n)-.15 E F0 3.541(,t)C 1.041(hen \214le)-3.541 F(GNU Bash 4.2)72 -768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(29)185.545 E 0 Cg -EP +-.25 F -.15(ex)108 660 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 672 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 684 R 1.389 +(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.889(nt).15 G(he) +-3.889 E F3(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 .332(assigned a v)108 696 R 2.832(alue. A)-.25 F .332(null v) +2.832 F .332(alue e)-.25 F -.25(va)-.25 G .332(luates to 0.).25 F 2.832 +(As)5.332 G .332(hell v)-2.832 F .332(ariable need not ha)-.25 F .632 +-.15(ve i)-.2 H(ts).15 E F3(inte)2.832 E -.1(ge)-.4 G(r).1 E F0(attrib) +2.832 E .333(ute turned on)-.2 F(to be used in an e)108 708 Q +(xpression.)-.15 E 1.406 +(Constants with a leading 0 are interpreted as octal numbers.)108 724.8 +R 3.906(Al)6.406 G 1.406(eading 0x or 0X denotes he)-3.906 F(xadecimal.) +-.15 E(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(29)193.45 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(descriptor)108 84 Q/F1 10/Times-Italic@0 SF(n)3.789 E F0 1.289 -(is check)3.789 F 3.789(ed. If)-.1 F(the)3.789 E F1(\214le)3.789 E F0 -(ar)3.789 E 1.289(gument to one of the primaries is one of)-.18 F F1 -(/de)3.789 E(v/stdin)-.15 E F0(,)A F1(/de)3.788 E(v/stdout)-.15 E F0 -3.788(,o)C(r)-3.788 E F1(/de)108 96 Q(v/stderr)-.15 E F0 2.5<2c8c>C +-.35 E .112(Otherwise, numbers tak)108 84 R 2.612(et)-.1 G .112 +(he form [)-2.612 F/F1 10/Times-Italic@0 SF(base#)A F0 .112 +(]n, where the optional)B F1(base)2.612 E F0 .113 +(is a decimal number between 2 and 64)2.612 F .534 +(representing the arithmetic base, and)108 96 R F1(n)3.034 E F0 .534 +(is a number in that base.)3.034 F(If)5.533 E F1(base#)3.033 E F0 .533 +(is omitted, then base 10 is used.)3.033 F .16(When specifying)108 108 R +F1(n)2.66 E F0 2.66(,t)C .16 +(he digits greater< than 9 are represented by the lo)-2.66 F .16 +(wercase letters, the uppercase letters,)-.25 F .943 +(@, and _, in that order)108 120 R 5.943(.I)-.55 G(f)-5.943 E F1(base) +3.443 E F0 .942(is less than or equal to 36, lo)3.443 F .942 +(wercase and uppercase letters may be used)-.25 F +(interchangeably to represent numbers between 10 and 35.)108 132 Q .234 +(Operators are e)108 148.8 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 160.8 S +(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F2 10.95 +/Times-Bold@0 SF(CONDITION)72 177.6 Q(AL EXPRESSIONS)-.219 E F0 .256 +(Conditional e)108 189.6 R .256(xpressions are used by the)-.15 F/F3 10 +/Times-Bold@0 SF([[)2.755 E F0 .255(compound command and the)2.755 F F3 +(test)2.755 E F0(and)2.755 E F3([)2.755 E F0 -.2(bu)2.755 G .255 +(iltin commands to test).2 F .77(\214le attrib)108 201.6 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 213.6 R 1.041(If an)6.041 F(y)-.15 E F1 +(\214le)3.541 E F0(ar)3.541 E 1.04 +(gument to one of the primaries is of the form)-.18 F F1(/de)3.54 E +(v/fd/n)-.15 E F0 3.54(,t)C 1.04(hen \214le)-3.54 F(descriptor)108 225.6 +Q F1(n)3.788 E F0 1.289(is check)3.788 F 3.789(ed. If)-.1 F(the)3.789 E +F1(\214le)3.789 E F0(ar)3.789 E 1.289 +(gument to one of the primaries is one of)-.18 F F1(/de)3.789 E(v/stdin) +-.15 E F0(,)A F1(/de)3.789 E(v/stdout)-.15 E F0 3.789(,o)C(r)-3.789 E F1 +(/de)108 237.6 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 .721 +(,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 112.8 R 3.221(ws)-.25 G .722(ymbolic links and operate on the tar) --3.221 F(get)-.18 E(of the link, rather than the link itself.)108 124.8 -Q 1.096(When used with)108 142.8 R/F2 10/Times-Bold@0 SF([[)3.596 E F0 -3.596(,t)C(he)-3.596 E F2(<)3.596 E F0(and)3.595 E F2(>)3.595 E F0 1.095 -(operators sort le)3.595 F 1.095 -(xicographically using the current locale.)-.15 F(The)6.095 E F2(test) -3.595 E F0(com-)3.595 E(mand sorts using ASCII ordering.)108 154.8 Q F2 -<ad61>108 178.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F1 -(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F2<ad62>108 190.8 Q F1 +108 254.4 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 266.4 +Q 1.095(When used with)108 284.4 R F3([[)3.595 E F0 3.595(,t)C(he)-3.595 +E F3(<)3.595 E F0(and)3.595 E F3(>)3.595 E F0 1.095(operators sort le) +3.595 F 1.095(xicographically using the current locale.)-.15 F(The)6.096 +E F3(test)3.596 E F0(com-)3.596 E(mand sorts using ASCII ordering.)108 +296.4 Q F3<ad61>108 320.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 +E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F3<ad62>108 332.4 Q F1 (\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex) -2.5 G(ists and is a block special \214le.).15 E F2<ad63>108 202.8 Q F1 +2.5 G(ists and is a block special \214le.).15 E F3<ad63>108 344.4 Q F1 (\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex) -2.5 G(ists and is a character special \214le.).15 E F2<ad64>108 214.8 Q +2.5 G(ists and is a character special \214le.).15 E F3<ad64>108 356.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15 -(ex)2.5 G(ists and is a directory).15 E(.)-.65 E F2<ad65>108 226.8 Q F1 +(ex)2.5 G(ists and is a directory).15 E(.)-.65 E F3<ad65>108 368.4 Q F1 (\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex) -2.5 G(ists.).15 E F2<ad66>108 238.8 Q F1(\214le)2.5 E F0 -.35(Tr)12.25 G +2.5 G(ists.).15 E F3<ad66>108 380.4 Q F1(\214le)2.5 E F0 -.35(Tr)12.25 G (ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a re).15 E -(gular \214le.)-.15 E F2<ad67>108 250.8 Q F1(\214le)2.5 E F0 -.35(Tr) +(gular \214le.)-.15 E F3<ad67>108 392.4 Q F1(\214le)2.5 E F0 -.35(Tr) 10.58 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G -(ists and is set-group-id.).15 E F2<ad68>108 262.8 Q F1(\214le)2.5 E F0 +(ists and is set-group-id.).15 E F3<ad68>108 404.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G -(ists and is a symbolic link.).15 E F2<ad6b>108 274.8 Q F1(\214le)2.5 E +(ists and is a symbolic link.).15 E F3<ad6b>108 416.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G (ists and its `).15 E(`stick)-.74 E(y')-.15 E 2.5('b)-.74 G(it is set.) --2.5 E F2<ad70>108 286.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 +-2.5 E F3<ad70>108 428.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a named pipe \(FIFO\).) -.15 E F2<ad72>108 298.8 Q F1(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E -F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is readable.).15 E F2<ad73>108 -310.8 Q F1(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F1(\214le)2.5 E -F0 -.15(ex)2.5 G(ists and has a size greater than zero.).15 E F2<ad74> -108 322.8 Q F1(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E -F1(fd)4.47 E F0(is open and refers to a terminal.)3.27 E F2<ad75>108 -334.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E -F0 -.15(ex)2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F2 -<ad77>108 346.8 Q F1(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F1 -(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is writable.).15 E F2<ad78>108 -358.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F1(\214le)2.5 E -F0 -.15(ex)2.5 G(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F2 -<ad47>108 370.8 Q F1(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F1 +.15 E F3<ad72>108 440.4 Q F1(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E +F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is readable.).15 E F3<ad73>108 +452.4 Q F1(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F1(\214le)2.5 E +F0 -.15(ex)2.5 G(ists and has a size greater than zero.).15 E F3<ad74> +108 464.4 Q F1(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E +F1(fd)4.47 E F0(is open and refers to a terminal.)3.27 E F3<ad75>108 +476.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E +F0 -.15(ex)2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F3 +<ad77>108 488.4 Q F1(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F1 +(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is writable.).15 E F3<ad78>108 +500.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F1(\214le)2.5 E +F0 -.15(ex)2.5 G(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F3 +<ad47>108 512.4 Q F1(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F1 (\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 F2<ad4c>108 382.8 Q F1 +(fecti)-.25 E .3 -.15(ve g)-.25 H(roup id.).15 E F3<ad4c>108 524.4 Q F1 (\214le)2.5 E F0 -.35(Tr)8.91 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex) -2.5 G(ists and is a symbolic link.).15 E F2<ad4e>108 394.8 Q F1(\214le) +2.5 G(ists and is a symbolic link.).15 E F3<ad4e>108 536.4 Q F1(\214le) 2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F1(\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 -<ad4f>108 406.8 Q F1(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F1 +(ists and has been modi\214ed since it w).15 E(as last read.)-.1 E F3 +<ad4f>108 548.4 Q F1(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F1 (\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 F2<ad53>108 418.8 Q F1 +(fecti)-.25 E .3 -.15(ve u)-.25 H(ser id.).15 E F3<ad53>108 560.4 Q F1 (\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex) -2.5 G(ists and is a sock).15 E(et.)-.1 E F1(\214le1)108 430.8 Q F2 -(\255ef)2.5 E F1(\214le2)2.5 E F0 -.35(Tr)144 442.8 S(ue if).35 E F1 +2.5 G(ists and is a sock).15 E(et.)-.1 E F1(\214le1)108 572.4 Q F3 +(\255ef)2.5 E F1(\214le2)2.5 E F0 -.35(Tr)144 584.4 S(ue if).35 E F1 (\214le1)2.5 E F0(and)2.5 E F1(\214le2)2.5 E F0(refer to the same de)2.5 -E(vice and inode numbers.)-.25 E F1(\214le1)108 454.8 Q F0<ad>2.5 E F2 -(nt)A F1(\214le2)2.5 E F0 -.35(Tr)144 466.8 S .038(ue if).35 F F1 -(\214le1)2.538 E F0 .039(is ne)2.539 F .039 +E(vice and inode numbers.)-.25 E F1(\214le1)108 596.4 Q F0<ad>2.5 E F3 +(nt)A F1(\214le2)2.5 E F0 -.35(Tr)144 608.4 S .039(ue if).35 F F1 +(\214le1)2.539 E F0 .039(is ne)2.539 F .039 (wer \(according to modi\214cation date\) than)-.25 F F1(\214le2)2.539 E F0 2.539(,o)C 2.539(ri)-2.539 G(f)-2.539 E F1(\214le1)2.539 E F0 -.15 -(ex)2.539 G .039(ists and).15 F F1(\214le2)2.539 E F0 .039(does not.) -2.539 F F1(\214le1)108 478.8 Q F0<ad>2.5 E F2(ot)A F1(\214le2)2.5 E F0 --.35(Tr)144 490.8 S(ue if).35 E F1(\214le1)2.5 E F0(is older than)2.5 E +(ex)2.539 G .039(ists and).15 F F1(\214le2)2.539 E F0 .038(does not.) +2.538 F F1(\214le1)108 620.4 Q F0<ad>2.5 E F3(ot)A F1(\214le2)2.5 E F0 +-.35(Tr)144 632.4 S(ue if).35 E F1(\214le1)2.5 E F0(is older than)2.5 E F1(\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F1(\214le2)2.5 E F0 --.15(ex)2.5 G(ists and).15 E F1(\214le1)2.5 E F0(does not.)2.5 E F2 -<ad6f>108 502.8 Q F1(optname)2.5 E F0 -.35(Tr)144 514.8 S .263 +-.15(ex)2.5 G(ists and).15 E F1(\214le1)2.5 E F0(does not.)2.5 E F3 +<ad6f>108 644.4 Q F1(optname)2.5 E F0 -.35(Tr)144 656.4 S .262 (ue if the shell option).35 F F1(optname)2.992 E F0 .262(is enabled.) 2.942 F .262(See the list of options under the description of the)5.262 -F F2<ad6f>2.762 E F0(option to the)144 526.8 Q F2(set)2.5 E F0 -.2(bu) -2.5 G(iltin belo).2 E -.65(w.)-.25 G F2<ad76>108 538.8 Q F1(varname)2.5 -E F0 -.35(Tr)144 550.8 S(ue if the shell v).35 E(ariable)-.25 E F1 +F F3<ad6f>2.763 E F0(option to the)144 668.4 Q F3(set)2.5 E F0 -.2(bu) +2.5 G(iltin belo).2 E -.65(w.)-.25 G F3<ad76>108 680.4 Q F1(varname)2.5 +E F0 -.35(Tr)144 692.4 S(ue if the shell v).35 E(ariable)-.25 E F1 (varname)2.79 E F0(is set \(has been assigned a v)2.68 E(alue\).)-.25 E -F2<ad52>108 562.8 Q F1(varname)2.5 E F0 -.35(Tr)144 574.8 S +F3<ad52>108 704.4 Q F1(varname)2.5 E F0 -.35(Tr)144 716.4 S (ue if the shell v).35 E(ariable)-.25 E F1(varname)2.79 E F0 -(is set and is a name reference.)2.68 E F2<ad7a>108 586.8 Q F1(string) -2.5 E F0 -.35(Tr)144 598.8 S(ue if the length of).35 E F1(string)2.5 E -F0(is zero.)2.5 E F1(string)108 610.8 Q F2<ad6e>108 622.8 Q F1(string) -2.5 E F0 -.35(Tr)144 634.8 S(ue if the length of).35 E F1(string)2.84 E -F0(is non-zero.)2.72 E F1(string1)108 651.6 Q F2(==)2.5 E F1(string2)2.5 -E(string1)108 663.6 Q F2(=)2.5 E F1(string2)2.5 E F0 -.35(Tr)144 675.6 S -.861(ue if the strings are equal.).35 F F2(=)5.861 E F0 .861 -(should be used with the)3.361 F F2(test)3.361 E F0 .862 -(command for POSIX conformance.)3.362 F .447(When used with the)144 -687.6 R F2([[)2.946 E F0 .446 -(command, this performs pattern matching as described abo)2.946 F .746 --.15(ve \()-.15 H F2(Compound).15 E(Commands)144 699.6 Q F0(\).)A -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(30)185.545 E 0 Cg EP +(is set and is a name reference.)2.68 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(30)193.45 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/F1 10/Times-Italic@0 SF(string1)108 84 Q/F2 10/Times-Bold@0 SF -(!=)2.5 E F1(string2)2.5 E F0 -.35(Tr)144 96 S -(ue if the strings are not equal.).35 E F1(string1)108 112.8 Q F2(<)2.5 -E F1(string2)2.5 E F0 -.35(Tr)144 124.8 S(ue if).35 E F1(string1)2.5 E -F0(sorts before)2.5 E F1(string2)2.5 E F0(le)2.5 E(xicographically)-.15 -E(.)-.65 E F1(string1)108 141.6 Q F2(>)2.5 E F1(string2)2.5 E F0 -.35 -(Tr)144 153.6 S(ue if).35 E F1(string1)2.5 E F0(sorts after)2.5 E F1 -(string2)2.5 E F0(le)2.5 E(xicographically)-.15 E(.)-.65 E F1(ar)108.33 -170.4 Q(g1)-.37 E F2(OP)2.5 E F1(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF -(OP)144 182.4 Q F0 .385(is one of)2.634 F F2(\255eq)2.885 E F0(,)A F2 -(\255ne)2.885 E F0(,)A F2(\255lt)2.885 E F0(,)A F2(\255le)2.885 E F0(,)A -F2(\255gt)2.885 E F0 2.885(,o)C(r)-2.885 E F2(\255ge)2.885 E F0 5.385 -(.T)C .385(hese arithmetic binary operators return true if)-5.385 F F1 -(ar)2.885 E(g1)-.37 E F0 .845(is equal to, not equal to, less than, les\ -s than or equal to, greater than, or greater than or equal to)144 194.4 -R F1(ar)144 206.4 Q(g2)-.37 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G -(ly).15 E(.)-.65 E F1(Ar)6.01 E(g1)-.37 E F0(and)2.5 E F1(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 223.2 Q(ANSION)-.81 E F0 -.613(When a simple command is e)108 235.2 R -.15(xe)-.15 G .614 -(cuted, the shell performs the follo).15 F .614(wing e)-.25 F .614 +-.35 E/F1 10/Times-Bold@0 SF<ad7a>108 84 Q/F2 10/Times-Italic@0 SF +(string)2.5 E F0 -.35(Tr)144 96 S(ue if the length of).35 E F2(string) +2.5 E F0(is zero.)2.5 E F2(string)108 108 Q F1<ad6e>108 120 Q F2(string) +2.5 E F0 -.35(Tr)144 132 S(ue if the length of).35 E F2(string)2.84 E F0 +(is non-zero.)2.72 E F2(string1)108 148.8 Q F1(==)2.5 E F2(string2)2.5 E +(string1)108 160.8 Q F1(=)2.5 E F2(string2)2.5 E F0 -.35(Tr)144 172.8 S +.862(ue if the strings are equal.).35 F F1(=)5.861 E F0 .861 +(should be used with the)3.361 F F1(test)3.361 E F0 .861 +(command for POSIX conformance.)3.361 F .446(When used with the)144 +184.8 R F1([[)2.946 E F0 .446 +(command, this performs pattern matching as described abo)2.946 F .747 +-.15(ve \()-.15 H F1(Compound).15 E(Commands)144 196.8 Q F0(\).)A F2 +(string1)108 213.6 Q F1(!=)2.5 E F2(string2)2.5 E F0 -.35(Tr)144 225.6 S +(ue if the strings are not equal.).35 E F2(string1)108 242.4 Q F1(<)2.5 +E F2(string2)2.5 E F0 -.35(Tr)144 254.4 S(ue if).35 E F2(string1)2.5 E +F0(sorts before)2.5 E F2(string2)2.5 E F0(le)2.5 E(xicographically)-.15 +E(.)-.65 E F2(string1)108 271.2 Q F1(>)2.5 E F2(string2)2.5 E F0 -.35 +(Tr)144 283.2 S(ue if).35 E F2(string1)2.5 E F0(sorts after)2.5 E F2 +(string2)2.5 E F0(le)2.5 E(xicographically)-.15 E(.)-.65 E F2(ar)108.33 +300 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 312 Q F0 .385(is one of)2.635 F F1(\255eq)2.885 E F0(,)A F1 +(\255ne)2.885 E F0(,)A F1(\255lt)2.885 E F0(,)A F1(\255le)2.885 E F0(,)A +F1(\255gt)2.885 E F0 2.885(,o)C(r)-2.885 E F1(\255ge)2.885 E F0 5.385 +(.T)C .385(hese arithmetic binary operators return true if)-5.385 F F2 +(ar)2.884 E(g1)-.37 E F0 .845(is equal to, not equal to, less than, les\ +s than or equal to, greater than, or greater than or equal to)144 324 R +F2(ar)144 336 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 352.8 Q(ANSION)-.81 E F0 +.614(When a simple command is e)108 364.8 R -.15(xe)-.15 G .614 +(cuted, the shell performs the follo).15 F .613(wing e)-.25 F .613 (xpansions, assignments, and redi-)-.15 F(rections, from left to right.) -108 247.2 Q 26(1. The)108 264 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 +108 376.8 Q 26(1. The)108 393.6 R -.1(wo)4.348 G 1.848 +(rds that the parser has mark).1 F 1.848(ed as v)-.1 F 1.849 (ariable assignments \(those preceding the command)-.25 F -(name\) and redirections are sa)144 276 Q -.15(ve)-.2 G 2.5(df).15 G -(or later processing.)-2.5 E 26(2. The)108 292.8 R -.1(wo)3.663 G 1.163 +(name\) and redirections are sa)144 405.6 Q -.15(ve)-.2 G 2.5(df).15 G +(or later processing.)-2.5 E 26(2. The)108 422.4 R -.1(wo)3.664 G 1.164 (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 -304.8 R .776(xpansion, the \214rst w)-.15 F .776(ord is tak)-.1 F .775 +(ariable assignments or redirections are e)-.25 F 3.663(xpanded. If)-.15 +F(an)3.663 E 3.663(yw)-.15 G 1.163(ords remain)-3.763 F .775(after e)144 +434.4 R .775(xpansion, the \214rst w)-.15 F .775(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 316.8 Q(guments.)-.18 E 26(3. Redirections)108 333.6 R +(are the ar)144 446.4 Q(guments.)-.18 E 26(3. Redirections)108 463.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 350.4 R -(te)3.216 E .717(xt after the)-.15 F F2(=)3.217 E F0 .717(in each v) -3.217 F .717(ariable assignment under)-.25 F .717(goes tilde e)-.18 F -.717(xpansion, parameter e)-.15 F(xpansion,)-.15 E .34 -(command substitution, arithmetic e)144 362.4 R .339 +(REDIRECTION)2.5 E/F5 9/Times-Roman@0 SF(.)A F0 26(4. The)108 480 R(te) +3.217 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 .339 +(command substitution, arithmetic e)144 492 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 374.4 Q -.332(If no command name results, the v)108 391.2 R .332 +(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 504 Q .332 +(If no command name results, the v)108 520.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 403.2 S .757 +2.832(vironment. Otherwise,)-.4 F(the)2.832 E -.25(va)108 532.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 415.2 -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 427.2 Q(xits with a non-zero status.)-.15 E .15 -(If no command name results, redirections are performed, b)108 444 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 456 Q -(xit with a non-zero status.)-.15 E 1.064 -(If there is a command name left after e)108 472.8 R 1.064(xpansion, e) +(fect the current shell en)-.25 F(vi-)-.4 E 3.177(ronment. If)108 544.8 +R(an)3.177 E 3.177(yo)-.15 G 3.177(ft)-3.177 G .677 +(he assignments attempts to assign a v)-3.177 F .677 +(alue to a readonly v)-.25 F .676(ariable, an error occurs, and)-.25 F +(the command e)108 556.8 Q(xits with a non-zero status.)-.15 E .149 +(If no command name results, redirections are performed, b)108 573.6 R +.149(ut do not af)-.2 F .15(fect the current shell en)-.25 F 2.65 +(vironment. A)-.4 F(redirection error causes the command to e)108 585.6 +Q(xit with a non-zero status.)-.15 E 1.064 +(If there is a command name left after e)108 602.4 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 -484.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 496.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 508.8 -Q(xits with a status of zero.)-.15 E F4(COMMAND EXECUTION)72 525.6 Q F0 -.547(After a command has been split into w)108 537.6 R .546 +4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .068(command e)108 +614.4 R 2.568(xits. If)-.15 F .069(one of the e)2.568 F .069 +(xpansions contained a command substitution, the e)-.15 F .069 +(xit status of the command)-.15 F .467(is the e)108 626.4 R .466 +(xit status of the last command substitution performed.)-.15 F .466 +(If there were no command substitutions, the)5.466 F(command e)108 638.4 +Q(xits with a status of zero.)-.15 E F4(COMMAND EXECUTION)72 655.2 Q F0 +.546(After a command has been split into w)108 667.2 R .547 (ords, if it results in a simple command and an optional list of ar)-.1 -F(gu-)-.18 E(ments, the follo)108 549.6 Q(wing actions are tak)-.25 E +F(gu-)-.18 E(ments, the follo)108 679.2 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 566.4 R .379(If there e)5.379 F .379 +mpts to locate it.)108 696 R .379(If there e)5.379 F .379 (xists a shell function by)-.15 F .246(that name, that function is in) -108 578.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 F3(FUNCTIONS) -2.746 E F5(.)A F0 .246(If the name does not match a func-)4.746 F -(tion, the shell searches for it in the list of shell b)108 590.4 Q 2.5 +108 708 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G .246 +(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E F3(FUNCTIONS)2.746 +E F5(.)A F0 .246(If the name does not match a func-)4.746 F +(tion, the shell searches for it in the list of shell b)108 720 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 607.2 R .31 -(uiltin, and contains no slashes,)-.2 F F2(bash)2.81 E F0 .31 -(searches each element of)2.81 F(the)108 619.2 Q F3 -.666(PA)3.163 G(TH) --.189 E F0 .662(for a directory containing an e)2.913 F -.15(xe)-.15 G -.662(cutable \214le by that name.).15 F F2(Bash)5.662 E F0 .662 -(uses a hash table to remember)3.162 F 1.914(the full pathnames of e)108 -631.2 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F2(hash)4.415 E -F0(under)4.415 E F3 1.915(SHELL B)4.415 F(UIL)-.09 E 1.915(TIN COMMANDS) --.828 F F0(belo)4.165 E 4.415(w\). A)-.25 F(full)4.415 E .72 -(search of the directories in)108 643.2 R F3 -.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 655.2 R F2(command_not_f)3.456 E -(ound_han-)-.25 E(dle)108 667.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 679.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 691.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 708 R -.15 -(xe)-.15 G 1.089(cutes the).15 F 2.31(named program in a separate e)108 -720 R -.15(xe)-.15 G 2.31(cution en).15 F 4.81(vironment. Ar)-.4 F 2.31 -(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G 2.31(n, and the) -.15 F(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 -E(31)185.545 E 0 Cg EP +(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E(GNU Bash 4.2)72 768 +Q(2013 January 8)144.29 E(31)193.45 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(remaining ar)108 84 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 100.8 R -.15(xe)-.15 G 1.809(cution f).15 F 1.809 +-.35 E .31(If the name is neither a shell function nor a b)108 84 R .309 +(uiltin, and contains no slashes,)-.2 F/F1 10/Times-Bold@0 SF(bash)2.809 +E F0 .309(searches each element of)2.809 F(the)108 96 Q/F2 9 +/Times-Bold@0 SF -.666(PA)3.162 G(TH)-.189 E F0 .662 +(for a directory containing an e)2.912 F -.15(xe)-.15 G .662 +(cutable \214le by that name.).15 F F1(Bash)5.662 E F0 .663 +(uses a hash table to remember)3.162 F 1.915(the full pathnames of e)108 +108 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F1(hash)4.415 E +F0(under)4.415 E F2 1.915(SHELL B)4.415 F(UIL)-.09 E 1.914(TIN COMMANDS) +-.828 F F0(belo)4.164 E 4.414(w\). A)-.25 F(full)4.414 E .719 +(search of the directories in)108 120 R F2 -.666(PA)3.219 G(TH)-.189 E +F0 .72(is performed only if the command is not found in the hash table.) +2.969 F .72(If the)5.72 F .956(search is unsuccessful, the shell search\ +es for a de\214ned shell function named)108 132 R F1(command_not_f)3.455 +E(ound_han-)-.25 E(dle)108 144 Q F0 5.277(.I)C 2.777(ft)-5.277 G .277 +(hat function e)-2.777 F .277(xists, it is in)-.15 F -.2(vo)-.4 G -.1 +(ke).2 G 2.777(dw).1 G .278 +(ith the original command and the original command')-2.777 F 2.778(sa) +-.55 G -.18(rg)-2.778 G(uments).18 E .776(as its ar)108 156 R .776 +(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 +.775(If that function is not)5.775 F +(de\214ned, the shell prints an error message and returns an e)108 168 Q +(xit status of 127.)-.15 E 1.089(If the search is successful, or if the\ + command name contains one or more slashes, the shell e)108 184.8 R -.15 +(xe)-.15 G 1.09(cutes the).15 F .198(named program in a separate e)108 +196.8 R -.15(xe)-.15 G .198(cution en).15 F 2.698(vironment. Ar)-.4 F +.198(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .197 +(n, and the remain-).15 F(ing ar)108 208.8 Q +(guments to the command are set to the ar)-.18 E(guments gi)-.18 E -.15 +(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.809(If this e)108 225.6 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 112.8 R/F1 10 -/Times-Italic@0 SF .678(shell script)3.177 F F0 3.178(,a\214)C .678 +4.309(ti)-4.309 G(s)-4.309 E .678(assumed to be a)108 237.6 R/F3 10 +/Times-Italic@0 SF .678(shell script)3.178 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 124.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 136.8 R 1.219 +(ubshell is spa)-3.178 F .677(wned to e)-.15 F -.15(xe)-.15 G .677 +(cute it.).15 F(This)5.677 E .329 +(subshell reinitializes itself, so that the ef)108 249.6 R .329 +(fect is as if a ne)-.25 F 2.83(ws)-.25 G .33(hell had been in)-2.83 F +-.2(vo)-.4 G -.1(ke).2 G 2.83(dt).1 G 2.83(oh)-2.83 G .33 +(andle the script, with)-2.83 F 1.219(the e)108 261.6 R 1.219 (xception that the locations of commands remembered by the parent \(see) --.15 F/F2 10/Times-Bold@0 SF(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25 -G(nder)-3.719 E/F3 9/Times-Bold@0 SF(SHELL)3.719 E -.09(BU)108 148.8 S -(IL).09 E(TIN COMMANDS)-.828 E/F4 9/Times-Roman@0 SF(\))A F0 -(are retained by the child.)2.25 E .348(If the program is a \214le be) -108 165.6 R .348(ginning with)-.15 F F2(#!)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 177.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 189.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 201.6 R -1.131(wed by the name of the program, follo)-.25 F 1.131(wed by the)-.25 -F(command ar)108 213.6 Q(guments, if an)-.18 E -.65(y.)-.15 G/F5 10.95 -/Times-Bold@0 SF(COMMAND EXECUTION ENVIR)72 230.4 Q(ONMENT)-.329 E F0 -(The shell has an)108 242.4 Q F1 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E +-.15 F F1(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 273.6 S(IL).09 E(TIN COMMANDS)-.828 E/F4 9 +/Times-Roman@0 SF(\))A F0(are retained by the child.)2.25 E .347 +(If the program is a \214le be)108 290.4 R .347(ginning with)-.15 F F1 +(#!)2.847 E F0 2.847(,t)C .348(he remainder of the \214rst line speci\ +\214es an interpreter for the pro-)-2.847 F 3.178(gram. The)108 302.4 R +.678(shell e)3.178 F -.15(xe)-.15 G .678(cutes the speci\214ed interpre\ +ter on operating systems that do not handle this e).15 F -.15(xe)-.15 G +(cutable).15 E 1.192(format themselv)108 314.4 R 3.692(es. The)-.15 F +(ar)3.693 E 1.193 +(guments to the interpreter consist of a single optional ar)-.18 F 1.193 +(gument follo)-.18 F 1.193(wing the)-.25 F 1.131 +(interpreter name on the \214rst line of the program, follo)108 326.4 R +1.13(wed by the name of the program, follo)-.25 F 1.13(wed by the)-.25 F +(command ar)108 338.4 Q(guments, if an)-.18 E -.65(y.)-.15 G/F5 10.95 +/Times-Bold@0 SF(COMMAND EXECUTION ENVIR)72 355.2 Q(ONMENT)-.329 E F0 +(The shell has an)108 367.2 Q F3 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E (onment)-.45 E F0 2.5(,w)C(hich consists of the follo)-2.5 E(wing:)-.25 -E 32.5<836f>108 259.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 F2(exec) -3.905 E F0 -.2(bu)144 271.2 S(iltin).2 E 32.5<8374>108 288 S -(he current w)-32.5 E(orking directory as set by)-.1 E F2(cd)2.5 E F0(,) -A F2(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F2(popd)2.5 E F0 2.5(,o)C 2.5(ri) +E 32.5<836f>108 384 S 1.405(pen \214les inherited by the shell at in) +-32.5 F -.2(vo)-.4 G 1.406 +(cation, as modi\214ed by redirections supplied to the).2 F F1(exec) +3.906 E F0 -.2(bu)144 396 S(iltin).2 E 32.5<8374>108 412.8 S +(he current w)-32.5 E(orking directory as set by)-.1 E F1(cd)2.5 E F0(,) +A F1(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F1(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 304.8 S(he \214le creation mode mask as set by)-32.5 E F2 +<8374>108 429.6 S(he \214le creation mode mask as set by)-32.5 E F1 (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 321.6 S(urrent traps set by)-32.5 E F2(trap)2.5 E -F0 32.5<8373>108 338.4 S .256(hell parameters that are set by v)-32.5 F -.256(ariable assignment or with)-.25 F F2(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 350.4 Q(vironment)-.4 E 32.5<8373>108 367.2 S +-2.5 E 32.5<8363>108 446.4 S(urrent traps set by)-32.5 E F1(trap)2.5 E +F0 32.5<8373>108 463.2 S .257(hell parameters that are set by v)-32.5 F +.256(ariable assignment or with)-.25 F F1(set)2.756 E F0 .256 +(or inherited from the shell')2.756 F 2.756(sp)-.55 G(arent)-2.756 E +(in the en)144 475.2 Q(vironment)-.4 E 32.5<8373>108 492 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 384 S +(arent in the en)-2.5 E(vironment)-.4 E 32.5<836f>108 508.8 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 F2(set)2.5 E -F0 32.5<836f>108 400.8 S(ptions enabled by)-32.5 E F2(shopt)2.5 E F0 -32.5<8373>108 417.6 S(hell aliases de\214ned with)-32.5 E F2(alias)2.5 E -F0 32.5<8376>108 434.4 S +(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F1(set)2.5 E +F0 32.5<836f>108 525.6 S(ptions enabled by)-32.5 E F1(shopt)2.5 E F0 +32.5<8373>108 542.4 S(hell aliases de\214ned with)-32.5 E F1(alias)2.5 E +F0 32.5<8376>108 559.2 S (arious process IDs, including those of background jobs, the v)-32.75 E -(alue of)-.25 E F2($$)2.5 E F0 2.5(,a)C(nd the v)-2.5 E(alue of)-.25 E -F3(PPID)2.5 E F0 .427(When a simple command other than a b)108 451.2 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 463.2 S .133(cution en).15 F .133 +(alue of)-.25 E F1($$)2.5 E F0 2.5(,a)C(nd the v)-2.5 E(alue of)-.25 E +F2(PPID)2.5 E F0 .426(When a simple command other than a b)108 576 R +.427(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .427 +(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.927(di).1 G 2.927(nas) +-2.927 G(eparate)-2.927 E -.15(exe)108 588 S .134(cution en).15 F .134 (vironment that consists of the follo)-.4 F 2.634(wing. Unless)-.25 F -.134(otherwise noted, the v)2.634 F .134(alues are inherited from)-.25 F -(the shell.)108 475.2 Q 32.5<8374>108 492 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 +.133(otherwise noted, the v)2.634 F .133(alues are inherited from)-.25 F +(the shell.)108 600 Q 32.5<8374>108 616.8 S 1.055(he shell')-32.5 F +3.555(so)-.55 G 1.055(pen \214les, plus an)-3.555 F 3.556(ym)-.15 G 1.056 (odi\214cations and additions speci\214ed by redirections to the com-) --3.556 F(mand)144 504 Q 32.5<8374>108 520.8 S(he current w)-32.5 E -(orking directory)-.1 E 32.5<8374>108 537.6 S -(he \214le creation mode mask)-32.5 E 32.5<8373>108 554.4 S .856(hell v) +-3.556 F(mand)144 628.8 Q 32.5<8374>108 645.6 S(he current w)-32.5 E +(orking directory)-.1 E 32.5<8374>108 662.4 S +(he \214le creation mode mask)-32.5 E 32.5<8373>108 679.2 S .857(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 566.4 Q(vironment) --.4 E 32.5<8374>108 583.2 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 595.2 Q -2.5(Ac)108 612 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 628.8 R -.2(vo)-.4 G -.1 -(ke).2 G 3.078(di).1 G(n)-3.078 E 2.745(as)108 640.8 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 652.8 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 664.8 -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 676.8 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 -693.6 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 -F2<ad65>3.877 E F0 1.377(option from the parent)3.877 F 2.5(shell. When) -108 705.6 R(not in)2.5 E F1(posix)2.5 E F0(mode,)2.5 E F2(bash)2.5 E F0 -(clears the)2.5 E F2<ad65>2.5 E F0(option in such subshells.)2.5 E .405 -(If a command is follo)108 722.4 R .405(wed by a)-.25 F F2(&)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 -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(32)185.545 E 0 Cg EP +(xported for the command,)-.15 F(passed in the en)144 691.2 Q(vironment) +-.4 E 32.5<8374>108 708 S .306 +(raps caught by the shell are reset to the v)-32.5 F .307 +(alues inherited from the shell')-.25 F 2.807(sp)-.55 G .307 +(arent, and traps ignored)-2.807 F(by the shell are ignored)144 720 Q +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(32)193.45 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 .197(is the empty \214le)108 84 R/F1 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 96 Q/F2 10.95/Times-Bold@0 SF(ENVIR) -72 112.8 Q(ONMENT)-.329 E F0 2.354(When a program is in)108 124.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 F1(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 F1(name)108 136.8 Q -F0<ad>A F1(value)A F0(pairs, of the form)2.5 E F1(name)2.5 E F0(=)A F1 -(value)A F0(.).18 E 1.485(The shell pro)108 153.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 165.6 Q .144(viron\ -ment and creates a parameter for each name found, automatically marking\ - it for)-.4 F F1 -.2(ex)2.643 G(port).2 E F0 .143(to child pro-)3.323 F -2.703(cesses. Ex)108 177.6 R .203(ecuted commands inherit the en)-.15 F -2.703(vironment. The)-.4 F/F3 10/Times-Bold@0 SF(export)2.703 E F0(and) -2.703 E F3(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 189.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 201.6 Q .64 +-.35 E 2.5(Ac)108 84 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 100.8 R -.2(vo)-.4 G -.1 +(ke).2 G 3.077(di).1 G(n)-3.077 E 2.744(as)108 112.8 S .244(ubshell en) +-2.744 F .244(vironment that is a duplicate of the shell en)-.4 F .245 +(vironment, e)-.4 F .245(xcept that traps caught by the shell are)-.15 F +.359(reset to the v)108 124.8 R .358 +(alues that the shell inherited from its parent at in)-.25 F -.2(vo)-.4 +G 2.858(cation. Builtin).2 F .358(commands that are in)2.858 F -.2(vo) +-.4 G -.1(ke).2 G(d).1 E .856(as part of a pipeline are also e)108 136.8 +R -.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.357 +(vironment. Changes)-.4 F .857(made to the subshell en)3.357 F(viron-) +-.4 E(ment cannot af)108 148.8 Q(fect the shell')-.25 E 2.5(se)-.55 G +-.15(xe)-2.65 G(cution en).15 E(vironment.)-.4 E 1.377(Subshells spa)108 +165.6 R 1.377(wned to e)-.15 F -.15(xe)-.15 G 1.377 +(cute command substitutions inherit the v).15 F 1.377(alue of the)-.25 F +/F1 10/Times-Bold@0 SF<ad65>3.876 E F0 1.376(option from the parent) +3.876 F 2.5(shell. When)108 177.6 R(not in)2.5 E/F2 10/Times-Italic@0 SF +(posix)2.5 E F0(mode,)2.5 E F1(bash)2.5 E F0(clears the)2.5 E F1<ad65> +2.5 E F0(option in such subshells.)2.5 E .404(If a command is follo)108 +194.4 R .404(wed by a)-.25 F F1(&)2.904 E F0 .405 +(and job control is not acti)2.904 F -.15(ve)-.25 G 2.905(,t).15 G .405 +(he def)-2.905 F .405(ault standard input for the command)-.1 F .198 +(is the empty \214le)108 206.4 R F2(/de)2.698 E(v/null)-.15 E F0 5.198 +(.O)C .198(therwise, the in)-5.198 F -.2(vo)-.4 G -.1(ke).2 G 2.698(dc) +.1 G .197(ommand inherits the \214le descriptors of the calling shell) +-2.698 F(as modi\214ed by redirections.)108 218.4 Q/F3 10.95 +/Times-Bold@0 SF(ENVIR)72 235.2 Q(ONMENT)-.329 E F0 2.353 +(When a program is in)108 247.2 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.354 +(his is a list of)-7.353 F F2(name)108 259.2 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.486(The shell pro)108 276 R 1.486(vides se)-.15 F -.15(ve)-.25 G 1.486 +(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.485(cation, the shell scans its o).2 F +(wn)-.25 E(en)108 288 Q .144(vironment and creates a parameter for each\ + name found, automatically marking it for)-.4 F F2 -.2(ex)2.644 G(port) +.2 E F0 .144(to child pro-)3.324 F 2.704(cesses. Ex)108 300 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.703(wp)-.25 G(aram-)-2.703 E +1.153(eters and functions to be added to and deleted from the en)108 312 +R 3.653(vironment. If)-.4 F 1.153(the v)3.653 F 1.154 +(alue of a parameter in the)-.25 F(en)108 324 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 213.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 225.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 F3(unset)2.801 E F0 .301(command, plus an)2.801 F 2.801(ya)-.15 G .301 -(dditions via the)-2.801 F F3(export)2.801 E F0(and)2.801 E F3(declar) -108 237.6 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E .563(The en)108 -254.4 R .563(vironment for an)-.4 F(y)-.15 E F1 .563(simple command) -3.403 F F0 .562 +-.4 F .64(The en)5.64 F(viron-)-.4 E .58(ment inherited by an)108 336 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 .301(modi\214ed in the shell, less an)108 348 R +2.801(yp)-.15 G .301(airs remo)-2.801 F -.15(ve)-.15 G 2.801(db).15 G +2.801(yt)-2.801 G(he)-2.801 E F1(unset)2.801 E F0 .3(command, plus an) +2.8 F 2.8(ya)-.15 G .3(dditions via the)-2.8 F F1(export)2.8 E F0(and) +2.8 E F1(declar)108 360 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E +.562(The en)108 376.8 R .562(vironment for an)-.4 F(y)-.15 E F2 .562 +(simple command)3.402 F F0 .563 (or function may be augmented temporarily by pre\214xing it with)3.833 F -.202(parameter assignments, as described abo)108 266.4 R .502 -.15(ve i) +.203(parameter assignments, as described abo)108 388.8 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 278.4 Q -(vironment seen by that command.)-.4 E .81(If the)108 295.2 R F3<ad6b> -3.31 E F0 .81(option is set \(see the)3.31 F F3(set)3.31 E F0 -.2(bu) -3.31 G .81(iltin command belo).2 F .81(w\), then)-.25 F F1(all)3.64 E F0 -.81(parameter assignments are placed in)3.82 F(the en)108 307.2 Q +.202(fect only the)-.25 F(en)108 400.8 Q +(vironment seen by that command.)-.4 E .81(If the)108 417.6 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 429.6 Q (vironment for a command, not just those that precede the command name.) --.4 E(When)108 324 Q F3(bash)3.585 E F0(in)3.585 E -.2(vo)-.4 G -.1(ke) -.2 G 3.585(sa).1 G 3.585(ne)-3.585 G 1.085(xternal command, the v)-3.735 -F(ariable)-.25 E F3(_)3.585 E F0 1.086 +-.4 E(When)108 446.4 Q F1(bash)3.586 E F0(in)3.586 E -.2(vo)-.4 G -.1 +(ke).2 G 3.586(sa).1 G 3.586(ne)-3.586 G 1.086(xternal command, the v) +-3.736 F(ariable)-.25 E F1(_)3.586 E F0 1.085 (is set to the full \214lename of the command and)3.586 F -(passed to that command in its en)108 336 Q(vironment.)-.4 E F2(EXIT ST) -72 352.8 Q -1.04(AT)-.986 G(US)1.04 E F0 .151(The e)108 364.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 F1(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 376.8 R .347(statuses f)2.847 F .347 +(passed to that command in its en)108 458.4 Q(vironment.)-.4 E F3 +(EXIT ST)72 475.2 Q -1.04(AT)-.986 G(US)1.04 E F0 .15(The e)108 487.2 R +.15(xit status of an e)-.15 F -.15(xe)-.15 G .15(cuted command is the v) +.15 F .151(alue returned by the)-.25 F F2(waitpid)2.651 E F0 .151 +(system call or equi)2.651 F -.25(va)-.25 G .151(lent func-).25 F 2.848 +(tion. Exit)108 499.2 R .348(statuses f)2.848 F .347 (all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F -1.647 -.65(w, t)-.25 H .347(he shell may use v).65 F .348(alues abo)-.25 -F .648 -.15(ve 1)-.15 H(25).15 E(specially)108 388.8 Q 5.674(.E)-.65 G -.674(xit statuses from shell b)-5.674 F .673 +1.647 -.65(w, t)-.25 H .347(he shell may use v).65 F .347(alues abo)-.25 +F .647 -.15(ve 1)-.15 H(25).15 E(specially)108 511.2 Q 5.673(.E)-.65 G +.673(xit statuses from shell b)-5.673 F .673 (uiltins and compound commands are also limited to this range. Under)-.2 -F(certain circumstances, the shell will use special v)108 400.8 Q +F(certain circumstances, the shell will use special v)108 523.2 Q (alues to indicate speci\214c f)-.25 E(ailure modes.)-.1 E -.15(Fo)108 -417.6 S 3.372(rt).15 G .872(he shell')-3.372 F 3.372(sp)-.55 G .873 -(urposes, a command which e)-3.372 F .873(xits with a zero e)-.15 F .873 -(xit status has succeeded.)-.15 F .873(An e)5.873 F .873(xit status of) --.15 F .049(zero indicates success.)108 429.6 R 2.549(An)5.049 G .049 -(on-zero e)-2.549 F .049(xit status indicates f)-.15 F 2.549 -(ailure. When)-.1 F 2.549(ac)2.549 G .048(ommand terminates on a f) --2.549 F .048(atal sig-)-.1 F(nal)108 441.6 Q F1(N)2.5 E F0(,)A F3(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 458.4 R --.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .405 -(If a command is)5.405 F(found b)108 470.4 Q(ut is not e)-.2 E -.15(xe) --.15 G(cutable, the return status is 126.).15 E(If a command f)108 487.2 +540 S 3.373(rt).15 G .873(he shell')-3.373 F 3.373(sp)-.55 G .873 +(urposes, a command which e)-3.373 F .873(xits with a zero e)-.15 F .873 +(xit status has succeeded.)-.15 F .872(An e)5.872 F .872(xit status of) +-.15 F .048(zero indicates success.)108 552 R 2.548(An)5.048 G .049 +(on-zero e)-2.548 F .049(xit status indicates f)-.15 F 2.549 +(ailure. When)-.1 F 2.549(ac)2.549 G .049(ommand terminates on a f) +-2.549 F .049(atal sig-)-.1 F(nal)108 564 Q F2(N)2.5 E F0(,)A F1(bash) +2.5 E F0(uses the v)2.5 E(alue of 128+)-.25 E F2(N)A F0(as the e)2.5 E +(xit status.)-.15 E .405 +(If a command is not found, the child process created to e)108 580.8 R +-.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .404 +(If a command is)5.404 F(found b)108 592.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 609.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 504 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 516 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 F3(Bash)108 532.8 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 544.8 -Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F3 -(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F2 -(SIGN)72 561.6 Q(ALS)-.219 E F0(When)108 573.6 Q F3(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(SIGTERM)3.183 E F0 .682(\(so that)2.933 F F3 .682(kill 0) -3.182 F F0 .682(does not kill an)3.182 F(interacti)108 585.6 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 F3(wait)2.958 E F0 -.2(bu) -2.958 G .458(iltin is interruptible\).).2 F .458(In all cases,)5.458 F -F3(bash)108 597.6 Q F0(ignores)2.5 E F4(SIGQ)2.5 E(UIT)-.09 E F5(.)A F0 -(If job control is in ef)4.5 E(fect,)-.25 E F3(bash)2.5 E F0(ignores)2.5 +-.15 E .08(Shell b)108 626.4 R .08 +(uiltin commands return a status of 0 \()-.2 F F2(true)A F0 2.581(\)i)C +2.581(fs)-2.581 G .081(uccessful, and non-zero \()-2.581 F F2(false)A F0 +2.581(\)i)C 2.581(fa)-2.581 G 2.581(ne)-2.581 G .081(rror occurs while) +-2.581 F(the)108 638.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 F1(Bash)108 655.2 Q +F0 .202(itself returns the e)2.702 F .202 +(xit status of the last command e)-.15 F -.15(xe)-.15 G .201 +(cuted, unless a syntax error occurs, in which case).15 F(it e)108 667.2 +Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F1 +(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F3 +(SIGN)72 684 Q(ALS)-.219 E F0(When)108 696 Q F1(bash)3.182 E F0 .682 +(is interacti)3.182 F -.15(ve)-.25 G 3.182(,i).15 G 3.182(nt)-3.182 G +.682(he absence of an)-3.182 F 3.183(yt)-.15 G .683(raps, it ignores) +-3.183 F F4(SIGTERM)3.183 E F0 .683(\(so that)2.933 F F1 .683(kill 0) +3.183 F F0 .683(does not kill an)3.183 F(interacti)108 708 Q .758 -.15 +(ve s)-.25 H .458(hell\), and).15 F F4(SIGINT)2.958 E F0 .458 +(is caught and handled \(so that the)2.708 F F1(wait)2.958 E F0 -.2(bu) +2.958 G .457(iltin is interruptible\).).2 F .457(In all cases,)5.457 F +F1(bash)108 720 Q F0(ignores)2.5 E F4(SIGQ)2.5 E(UIT)-.09 E F5(.)A F0 +(If job control is in ef)4.5 E(fect,)-.25 E F1(bash)2.5 E F0(ignores)2.5 E F4(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25 -E F4(SIGTSTP)2.5 E F5(.)A F0(Non-b)108 614.4 Q 1.065 -(uiltin commands run by)-.2 F F3(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 -626.4 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 638.4 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 650.4 Q F4 -(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25 E F4 -(SIGTSTP)2.5 E F5(.)A F0 2.045(The shell e)108 667.2 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 679.2 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 691.2 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 703.2 R F3(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 715.2 Q F0(using)2.25 E F3(diso)2.5 E(wn \255h)-.1 E F0(.)A -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(33)185.545 E 0 Cg EP +E F4(SIGTSTP)2.5 E F5(.)A F0(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 +E(33)193.45 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 .166(If the)108 84 R/F1 10/Times-Bold@0 SF(huponexit)2.666 E F0 -.166(shell option has been set with)2.666 F F1(shopt)2.666 E F0(,)A F1 -(bash)2.666 E F0 .166(sends a)2.666 F/F2 9/Times-Bold@0 SF(SIGHUP)2.666 -E F0 .166(to all jobs when an interacti)2.416 F -.15(ve)-.25 G -(login shell e)108 96 Q(xits.)-.15 E(If)108 112.8 Q F1(bash)3.047 E F0 -.547(is w)3.047 F .546(aiting for a command to complete and recei)-.1 F --.15(ve)-.25 G 3.046(sas).15 G .546 -(ignal for which a trap has been set, the trap)-3.046 F .662 -(will not be e)108 124.8 R -.15(xe)-.15 G .662 +-.35 E(Non-b)108 84 Q 1.064(uiltin commands run by)-.2 F/F1 10 +/Times-Bold@0 SF(bash)3.564 E F0(ha)3.564 E 1.365 -.15(ve s)-.2 H 1.065 +(ignal handlers set to the v).15 F 1.065 +(alues inherited by the shell from its)-.25 F 3.248(parent. When)108 96 +R .748(job control is not in ef)3.248 F .747 +(fect, asynchronous commands ignore)-.25 F/F2 9/Times-Bold@0 SF(SIGINT) +3.247 E F0(and)2.997 E F2(SIGQ)3.247 E(UIT)-.09 E F0 .747(in addi-)2.997 +F .652(tion to these inherited handlers.)108 108 R .653 +(Commands run as a result of command substitution ignore the k)5.652 F +-.15(ey)-.1 G(board-).15 E(generated job control signals)108 120 Q F2 +(SIGTTIN)2.5 E/F3 9/Times-Roman@0 SF(,)A F2(SIGTT)2.25 E(OU)-.162 E F3 +(,)A F0(and)2.25 E F2(SIGTSTP)2.5 E F3(.)A F0 2.046(The shell e)108 +136.8 R 2.046(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F2 +(SIGHUP)4.545 E F3(.)A F0 2.045(Before e)6.545 F 2.045 +(xiting, an interacti)-.15 F 2.345 -.15(ve s)-.25 H 2.045 +(hell resends the).15 F F2(SIGHUP)108 148.8 Q F0 1.004 +(to all jobs, running or stopped.)3.254 F 1.004(Stopped jobs are sent) +6.004 F F2(SIGCONT)3.505 E F0 1.005(to ensure that the)3.255 F 3.505(yr) +-.15 G(ecei)-3.505 E 1.305 -.15(ve t)-.25 H(he).15 E F2(SIGHUP)108 160.8 +Q F3(.)A F0 2.53 -.8(To p)5.43 H(re).8 E -.15(ve)-.25 G .93(nt the shel\ +l from sending the signal to a particular job, it should be remo).15 F +-.15(ve)-.15 G 3.429(df).15 G .929(rom the)-3.429 F 1.356 +(jobs table with the)108 172.8 R F1(diso)3.856 E(wn)-.1 E F0 -.2(bu) +3.856 G 1.356(iltin \(see).2 F F2 1.356(SHELL B)3.856 F(UIL)-.09 E 1.356 +(TIN COMMANDS)-.828 F F0(belo)3.607 E 1.357(w\) or mark)-.25 F 1.357 +(ed to not recei)-.1 F -.15(ve)-.25 G F2(SIGHUP)108 184.8 Q F0(using) +2.25 E F1(diso)2.5 E(wn \255h)-.1 E F0(.)A .166(If the)108 201.6 R F1 +(huponexit)2.666 E F0 .166(shell option has been set with)2.666 F F1 +(shopt)2.666 E F0(,)A F1(bash)2.666 E F0 .166(sends a)2.666 F F2(SIGHUP) +2.666 E F0 .166(to all jobs when an interacti)2.416 F -.15(ve)-.25 G +(login shell e)108 213.6 Q(xits.)-.15 E(If)108 230.4 Q F1(bash)3.046 E +F0 .546(is w)3.046 F .546(aiting for a command to complete and recei)-.1 +F -.15(ve)-.25 G 3.046(sas).15 G .546 +(ignal for which a trap has been set, the trap)-3.046 F .663 +(will not be e)108 242.4 R -.15(xe)-.15 G .663 (cuted until the command completes.).15 F(When)5.663 E F1(bash)3.163 E -F0 .663(is w)3.163 F .663(aiting for an asynchronous command)-.1 F .99 -(via the)108 136.8 R F1(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin, the rec\ +F0 .662(is w)3.163 F .662(aiting for an asynchronous command)-.1 F .99 +(via the)108 254.4 R F1(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 F1 (wait)3.49 E F0 -.2(bu)3.49 G .99(iltin to).2 F -(return immediately with an e)108 148.8 Q +(return immediately with an e)108 266.4 Q (xit status greater than 128, immediately after which the trap is e)-.15 -E -.15(xe)-.15 G(cuted.).15 E/F3 10.95/Times-Bold@0 SF(JOB CONTR)72 -165.6 Q(OL)-.329 E/F4 10/Times-Italic@0 SF -.25(Jo)108 177.6 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 F4(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 189.6 Q F4 -.37(re)C -(sume).37 E F0 3.202(\)t)C .702(heir e)-3.202 F -.15(xe)-.15 G .702 +E -.15(xe)-.15 G(cuted.).15 E/F4 10.95/Times-Bold@0 SF(JOB CONTR)72 +283.2 Q(OL)-.329 E/F5 10/Times-Italic@0 SF -.25(Jo)108 295.2 S 4.568(bc) +.25 G(ontr)-4.568 E(ol)-.45 E F0 2.068(refers to the ability to selecti) +5.078 F -.15(ve)-.25 G 2.067(ly stop \().15 F F5(suspend)A F0 4.567(\)t) +C 2.067(he e)-4.567 F -.15(xe)-.15 G 2.067 +(cution of processes and continue).15 F(\()108 307.2 Q F5 -.37(re)C +(sume).37 E F0 3.201(\)t)C .701(heir e)-3.201 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 operating system k)108 201.6 Q(ernel')-.1 +(acility via an interacti)-.1 F 1.002 -.15(ve i)-.25 H(nterf).15 E(ace) +-.1 E(supplied jointly by the operating system k)108 319.2 Q(ernel')-.1 E 2.5(st)-.55 G(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15 G(nd)-2.5 E -F1(bash)2.5 E F0(.)A .784(The shell associates a)108 218.4 R F4(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 230.4 R F1 -(jobs)2.841 E F0 2.841(command. When)2.841 F F1(bash)2.841 E F0 .341 -(starts a job asynchronously \(in the)2.841 F F4(bac)2.84 E(kgr)-.2 E -(ound)-.45 E F0 .34(\), it prints a line).77 F(that looks lik)108 242.4 -Q(e:)-.1 E([1] 25647)144 259.2 Q .241(indicating that this job is job n\ -umber 1 and that the process ID of the last process in the pipeline ass\ -ociated)108 276 R .733(with this job is 25647.)108 288 R .732 +F1(bash)2.5 E F0(.)A .785(The shell associates a)108 336 R F5(job)5.025 +E F0 .785(with each pipeline.)3.515 F .784(It k)5.785 F .784 +(eeps a table of currently e)-.1 F -.15(xe)-.15 G .784 +(cuting jobs, which may be).15 F .34(listed with the)108 348 R F1(jobs) +2.84 E F0 2.84(command. When)2.84 F F1(bash)2.84 E F0 .341 +(starts a job asynchronously \(in the)2.84 F F5(bac)2.841 E(kgr)-.2 E +(ound)-.45 E F0 .341(\), it prints a line).77 F(that looks lik)108 360 Q +(e:)-.1 E([1] 25647)144 376.8 Q .241(indicating that this job is job nu\ +mber 1 and that the process ID of the last process in the pipeline asso\ +ciated)108 393.6 R .732(with this job is 25647.)108 405.6 R .733 (All of the processes in a single pipeline are members of the same job) -5.733 F(.)-.4 E F1(Bash)5.732 E F0(uses)3.232 E(the)108 300 Q F4(job) -4.24 E F0(abstraction as the basis for job control.)2.73 E 3.062 -.8 -(To f)108 316.8 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 328.8 R F4(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 +5.732 F(.)-.4 E F1(Bash)5.733 E F0(uses)3.233 E(the)108 417.6 Q F5(job) +4.24 E F0(abstraction as the basis for job control.)2.73 E 3.063 -.8 +(To f)108 434.4 T 1.463(acilitate the implementation of the user interf) +.7 F 1.462(ace to job control, the operating system maintains the)-.1 F +.87(notion of a)108 446.4 R F5(curr)3.37 E .87(ent terminal pr)-.37 F +.871(ocess gr)-.45 F .871(oup ID)-.45 F F0 5.871(.M)C .871 (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 -340.8 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023 -(board-generated signals such as).15 F F2(SIG-)2.523 E(INT)108 352.8 Q -/F5 9/Times-Roman@0 SF(.)A F0 1.347 -(These processes are said to be in the)5.847 F F4(for)3.846 E -.4(eg) --.37 G -.45(ro).4 G(und).45 E F0(.).77 E F4(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 364.8 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 .16 -(ground processes are allo)108 376.8 R .16(wed to read from or)-.25 F +458.4 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023 +(board-generated signals such as).15 F F2(SIG-)2.522 E(INT)108 470.4 Q +F3(.)A F0 1.346(These processes are said to be in the)5.846 F F5(for) +3.847 E -.4(eg)-.37 G -.45(ro).4 G(und).45 E F0(.).77 E F5(Bac)6.927 E +(kgr)-.2 E(ound)-.45 E F0 1.347(processes are those whose process)4.617 +F .146(group ID dif)108 482.4 R .146(fers from the terminal')-.25 F .146 +(s; such processes are immune to k)-.55 F -.15(ey)-.1 G .145 +(board-generated signals.).15 F .145(Only fore-)5.145 F .16 +(ground processes are allo)108 494.4 R .16(wed to read from or)-.25 F 2.66(,i)-.4 G 2.66(ft)-2.66 G .16(he user so speci\214es with)-2.66 F/F6 10/Courier@0 SF .16(stty tostop)2.66 F F0 2.66(,w)C .16(rite to the ter) --2.66 F(-)-.2 E 3.051(minal. Background)108 388.8 R .551 -(processes which attempt to read from \(write to when)3.051 F F6 .551 -(stty tostop)3.051 F F0 .552(is in ef)3.052 F .552(fect\) the)-.25 F -.718(terminal are sent a)108 400.8 R F2 .718(SIGTTIN \(SIGTT)3.218 F -(OU\))-.162 E F0 .718(signal by the k)2.968 F(ernel')-.1 E 3.217(st)-.55 -G .717(erminal dri)-3.217 F -.15(ve)-.25 G 1.517 -.4(r, w).15 H .717 -(hich, unless caught, sus-).4 F(pends the process.)108 412.8 Q 1.087 -(If the operating system on which)108 429.6 R F1(bash)3.587 E F0 1.088 -(is running supports job control,)3.588 F F1(bash)3.588 E F0 1.088 -(contains f)3.588 F 1.088(acilities to use it.)-.1 F -.8(Ty)108 441.6 S -.302(ping the).8 F F4(suspend)3.142 E F0 .302(character \(typically) -3.572 F F1(^Z)2.801 E F0 2.801(,C)C .301 +-2.66 F(-)-.2 E 3.052(minal. Background)108 506.4 R .551 +(processes which attempt to read from \(write to when)3.052 F F6 .551 +(stty tostop)3.051 F F0 .551(is in ef)3.051 F .551(fect\) the)-.25 F +.717(terminal are sent a)108 518.4 R F2 .717(SIGTTIN \(SIGTT)3.217 F +(OU\))-.162 E F0 .718(signal by the k)2.967 F(ernel')-.1 E 3.218(st)-.55 +G .718(erminal dri)-3.218 F -.15(ve)-.25 G 1.518 -.4(r, w).15 H .718 +(hich, unless caught, sus-).4 F(pends the process.)108 530.4 Q 1.088 +(If the operating system on which)108 547.2 R F1(bash)3.588 E F0 1.088 +(is running supports job control,)3.588 F F1(bash)3.587 E F0 1.087 +(contains f)3.587 F 1.087(acilities to use it.)-.1 F -.8(Ty)108 559.2 S +.301(ping the).8 F F5(suspend)3.141 E F0 .301(character \(typically) +3.571 F F1(^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.142(stopped and returns control to)108 453.6 R F1(bash)4.642 E F0 -7.142(.T)C 2.142(yping the)-7.942 F F4 2.142(delayed suspend)4.992 F F0 -2.143(character \(typically)5.413 F F1(^Y)4.643 E F0 4.643(,C)C -(ontrol-Y\))-4.643 E .021(causes the process to be stopped when it atte\ +F 2.143(stopped and returns control to)108 571.2 R F1(bash)4.642 E F0 +7.142(.T)C 2.142(yping the)-7.942 F F5 2.142(delayed suspend)4.992 F F0 +2.142(character \(typically)5.412 F F1(^Y)4.642 E F0 4.642(,C)C +(ontrol-Y\))-4.642 E .021(causes the process to be stopped when it atte\ mpts to read input from the terminal, and control to be returned)108 -465.6 R(to)108 477.6 Q F1(bash)3.392 E F0 5.892(.T)C .892 +583.2 R(to)108 595.2 Q F1(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 -F1(bg)3.392 E F0 .892(command to continue it in the)3.392 F .895 -(background, the)108 489.6 R F1(fg)3.395 E F0 .895 -(command to continue it in the fore)3.395 F .895(ground, or the)-.15 F -F1(kill)3.395 E F0 .894(command to kill it.)3.395 F(A)5.894 E F1(^Z) -3.394 E F0(tak)3.394 E(es)-.1 E(ef)108 501.6 Q .948(fect immediately) --.25 F 3.448(,a)-.65 G .948(nd has the additional side ef)-3.448 F .948 +F1(bg)3.392 E F0 .892(command to continue it in the)3.392 F .894 +(background, the)108 607.2 R F1(fg)3.394 E F0 .895 +(command to continue it in the fore)3.394 F .895(ground, or the)-.15 F +F1(kill)3.395 E F0 .895(command to kill it.)3.395 F(A)5.895 E F1(^Z) +3.395 E F0(tak)3.395 E(es)-.1 E(ef)108 619.2 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 513.6 Q .777(There are a number of w)108 530.4 R .777 +108 631.2 Q .777(There are a number of w)108 648 R .777 (ays to refer to a job in the shell.)-.1 F .777(The character)5.777 F F1 -(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 542.4 -Q F4(jobspec)A F0 3.457(\). Job)B(number)3.457 E F4(n)3.817 E F0 .957 +(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 660 Q +F5(jobspec)A F0 3.458(\). Job)B(number)3.458 E F5(n)3.818 E F0 .957 (may be referred to as)3.697 F F1(%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 554.4 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F1(%ce)3.09 E -F0 .59(refers to a)3.09 F(stopped)108 566.4 Q F1(ce)3.463 E F0(job)3.463 -E 5.963(.I)-.4 G 3.463(fap)-5.963 G .963 +108 672 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F1(%ce)3.09 E F0 +.59(refers to a)3.09 F(stopped)108 684 Q F1(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 F1(bash)3.463 E F0 .963 (reports an error)3.463 F 5.963(.U)-.55 G(sing)-5.963 E F1(%?ce)3.463 E -F0 3.464(,o)C 3.464(nt)-3.464 G .964(he other)-3.464 F .087 -(hand, refers to an)108 578.4 R 2.587(yj)-.15 G .087 +F0 3.463(,o)C 3.463(nt)-3.463 G .963(he other)-3.463 F .086 +(hand, refers to an)108 696 R 2.587(yj)-.15 G .087 (ob containing the string)-2.587 F F1(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 590.4 Q F1 -(bash)2.518 E F0 .018(reports an error)2.518 F 5.018(.T)-.55 G .018 +(If the substring matches more than one)5.087 F(job,)108 708 Q F1(bash) +2.518 E F0 .018(reports an error)2.518 F 5.018(.T)-.55 G .018 (he symbols)-5.018 F F1(%%)2.518 E F0(and)2.518 E F1(%+)2.518 E F0 .018 (refer to the shell')2.518 F 2.518(sn)-.55 G .018(otion of the)-2.518 F -F4(curr)2.518 E .018(ent job)-.37 F F0 2.518(,w).23 G .018(hich is) --2.518 F .495(the last job stopped while it w)108 602.4 R .495 +F5(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 720 R .495 (as in the fore)-.1 F .495(ground or started in the background.)-.15 F -(The)5.494 E F4(pr)4.244 E -.15(ev)-.37 G .494(ious job).15 F F0 .494 -(may be)3.224 F .787(referenced using)108 614.4 R F1<25ad>3.287 E F0 -5.787(.I)C 3.287(ft)-5.787 G .787(here is only a single job,)-3.287 F F1 -(%+)3.287 E F0(and)3.287 E F1<25ad>3.287 E F0 .788 -(can both be used to refer to that job)3.287 F 5.788(.I)-.4 G(n)-5.788 E -.257(output pertaining to jobs \(e.g., the output of the)108 626.4 R F1 -(jobs)2.756 E F0 .256(command\), the current job is al)2.756 F -.1(wa) --.1 G .256(ys \215agged with a).1 F F1(+)2.756 E F0(,)A .41(and the pre) -108 638.4 R .41(vious job with a)-.25 F F1<ad>2.91 E F0 5.41(.A)C .411 -(single % \(with no accompan)-2.5 F .411 -(ying job speci\214cation\) also refers to the cur)-.15 F(-)-.2 E -(rent job)108 650.4 Q(.)-.4 E .444 -(Simply naming a job can be used to bring it into the fore)108 667.2 R -(ground:)-.15 E F1(%1)2.943 E F0 .443(is a synon)2.943 F .443(ym for) --.15 F F1 -.63(``)2.943 G .443(fg %1').63 F(')-.63 E F0 2.943(,b)C -(ringing)-2.943 E 1.472(job 1 from the background into the fore)108 -679.2 R 3.972(ground. Similarly)-.15 F(,)-.65 E F1 -.63(``)3.973 G 1.473 -(%1 &').63 F(')-.63 E F0 1.473(resumes job 1 in the background,)3.973 F -(equi)108 691.2 Q -.25(va)-.25 G(lent to).25 E F1 -.63(``)2.5 G(bg %1') -.63 E(')-.63 E F0(.)A .131(The shell learns immediately whene)108 708 R --.15(ve)-.25 G 2.631(raj).15 G .131(ob changes state.)-2.631 F(Normally) -5.131 E(,)-.65 E F1(bash)2.631 E F0 -.1(wa)2.63 G .13 -(its until it is about to print a).1 F .157 -(prompt before reporting changes in a job')108 720 R 2.657(ss)-.55 G -.157(tatus so as to not interrupt an)-2.657 F 2.658(yo)-.15 G .158 -(ther output.)-2.658 F .158(If the)5.158 F F1<ad62>2.658 E F0 .158 -(option to)2.658 F(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 -G(mber 24).15 E(34)185.545 E 0 Cg EP +(The)5.495 E F5(pr)4.245 E -.15(ev)-.37 G .495(ious job).15 F F0 .495 +(may be)3.225 F(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(34)193.45 +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(the)108 84 Q/F1 10/Times-Bold@0 SF(set)3.952 E F0 -.2(bu)3.952 G -1.452(iltin command is enabled,).2 F F1(bash)3.952 E F0 1.451 -(reports such changes immediately)3.952 F 6.451(.A)-.65 G 1.751 -.15 -(ny t)-6.451 H 1.451(rap on).15 F/F2 9/Times-Bold@0 SF(SIGCHLD)3.951 E -F0(is)3.701 E -.15(exe)108 96 S(cuted for each child that e).15 E(xits.) --.15 E .032(If an attempt to e)108 112.8 R(xit)-.15 E F1(bash)2.532 E F0 -.032(is made while jobs are stopped \(or)2.532 F 2.533(,i)-.4 G 2.533 -(ft)-2.533 G(he)-2.533 E F1(checkjobs)2.533 E F0 .033 -(shell option has been enabled)2.533 F 2.02(using the)108 124.8 R F1 -(shopt)4.52 E F0 -.2(bu)4.52 G 2.02 -(iltin, running\), the shell prints a w).2 F 2.019 -(arning message, and, if the)-.1 F F1(checkjobs)4.519 E F0 2.019 -(option is)4.519 F .458(enabled, lists the jobs and their statuses.)108 -136.8 R(The)5.458 E F1(jobs)2.958 E F0 .459 -(command may then be used to inspect their status.)2.958 F .459(If a) -5.459 F .604(second attempt to e)108 148.8 R .604 +-.35 E .788(referenced using)108 84 R/F1 10/Times-Bold@0 SF<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 +F1(%+)3.287 E F0(and)3.287 E F1<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 96 R F1 +(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 F1(+)2.757 E F0(,)A .411 +(and the pre)108 108 R .411(vious job with a)-.25 F F1<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 120 Q(.)-.4 E .443 +(Simply naming a job can be used to bring it into the fore)108 136.8 R +(ground:)-.15 E F1(%1)2.944 E F0 .444(is a synon)2.944 F .444(ym for) +-.15 F F1 -.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 +148.8 R 3.973(ground. Similarly)-.15 F(,)-.65 E F1 -.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 160.8 Q -.25(va)-.25 G(lent to).25 E F1 -.63(``)2.5 G(bg %1') +.63 E(')-.63 E F0(.)A .13(The shell learns immediately whene)108 177.6 R +-.15(ve)-.25 G 2.63(raj).15 G .13(ob changes state.)-2.63 F(Normally) +5.131 E(,)-.65 E F1(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 189.6 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 F1<ad62>2.657 E F0 .157 +(option to)2.657 F(the)108 201.6 Q F1(set)3.951 E F0 -.2(bu)3.951 G +1.451(iltin command is enabled,).2 F F1(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/F2 9/Times-Bold@0 SF(SIGCHLD)3.952 E +F0(is)3.702 E -.15(exe)108 213.6 S(cuted for each child that e).15 E +(xits.)-.15 E .033(If an attempt to e)108 230.4 R(xit)-.15 E F1(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 F1(checkjobs)2.532 E F0 .032 +(shell option has been enabled)2.532 F 2.019(using the)108 242.4 R F1 +(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 F1(checkjobs)4.52 E F0 2.02 +(option is)4.52 F .459(enabled, lists the jobs and their statuses.)108 +254.4 R(The)5.459 E F1(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 266.4 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 160.8 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E/F3 -10.95/Times-Bold@0 SF(PR)72 177.6 Q(OMPTING)-.329 E F0 .644(When e)108 -189.6 R -.15(xe)-.15 G .644(cuting interacti).15 F -.15(ve)-.25 G(ly).15 -E(,)-.65 E F1(bash)3.144 E F0 .645(displays the primary prompt)3.145 F -F2(PS1)3.145 E F0 .645(when it is ready to read a command,)2.895 F 1.826 -(and the secondary prompt)108 201.6 R F2(PS2)4.326 E F0 1.825 -(when it needs more input to complete a command.)4.076 F F1(Bash)6.825 E -F0(allo)4.325 E 1.825(ws these)-.25 F 1.499(prompt strings to be custom\ +(and an)108 278.4 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E/F3 +10.95/Times-Bold@0 SF(PR)72 295.2 Q(OMPTING)-.329 E F0 .645(When e)108 +307.2 R -.15(xe)-.15 G .645(cuting interacti).15 F -.15(ve)-.25 G(ly).15 +E(,)-.65 E F1(bash)3.145 E F0 .645(displays the primary prompt)3.145 F +F2(PS1)3.145 E F0 .645(when it is ready to read a command,)2.895 F 1.825 +(and the secondary prompt)108 319.2 R F2(PS2)4.325 E F0 1.825 +(when it needs more input to complete a command.)4.075 F F1(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 213.6 R(decoded as follo)108 225.6 Q(ws:)-.25 E F1(\\a)144 -237.6 Q F0(an ASCII bell character \(07\))28.22 E F1(\\d)144 249.6 Q F0 + are)108 331.2 R(decoded as follo)108 343.2 Q(ws:)-.25 E F1(\\a)144 +355.2 Q F0(an ASCII bell character \(07\))28.22 E F1(\\d)144 367.2 Q F0 (the date in "W)27.66 E(eekday Month Date" format \(e.g., "T)-.8 E -(ue May 26"\))-.45 E F1(\\D{)144 261.6 Q/F4 10/Times-Italic@0 SF(format) -A F1(})A F0(the)180 273.6 Q F4(format)3.927 E F0 1.427(is passed to) -3.927 F F4(strftime)3.927 E F0 1.427 +(ue May 26"\))-.45 E F1(\\D{)144 379.2 Q/F4 10/Times-Italic@0 SF(format) +A F1(})A F0(the)180 391.2 Q F4(format)3.926 E F0 1.426(is passed to) +3.926 F F4(strftime)3.926 E F0 1.427 (\(3\) and the result is inserted into the prompt string; an)B(empty)180 -285.6 Q F4(format)2.5 E F0 +403.2 Q F4(format)2.5 E F0 (results in a locale-speci\214c time representation.)2.5 E -(The braces are required)5 E F1(\\e)144 297.6 Q F0 -(an ASCII escape character \(033\))28.78 E F1(\\h)144 309.6 Q F0 -(the hostname up to the \214rst `.)27.66 E(')-.7 E F1(\\H)144 321.6 Q F0 -(the hostname)25.44 E F1(\\j)144 333.6 Q F0 +(The braces are required)5 E F1(\\e)144 415.2 Q F0 +(an ASCII escape character \(033\))28.78 E F1(\\h)144 427.2 Q F0 +(the hostname up to the \214rst `.)27.66 E(')-.7 E F1(\\H)144 439.2 Q F0 +(the hostname)25.44 E F1(\\j)144 451.2 Q F0 (the number of jobs currently managed by the shell)29.89 E F1(\\l)144 -345.6 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de) --2.5 E(vice name)-.25 E F1(\\n)144 357.6 Q F0(ne)27.66 E(wline)-.25 E F1 -(\\r)144 369.6 Q F0(carriage return)28.78 E F1(\\s)144 381.6 Q F0 +463.2 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de) +-2.5 E(vice name)-.25 E F1(\\n)144 475.2 Q F0(ne)27.66 E(wline)-.25 E F1 +(\\r)144 487.2 Q F0(carriage return)28.78 E F1(\\s)144 499.2 Q F0 (the name of the shell, the basename of)29.33 E F1($0)2.5 E F0 (\(the portion follo)2.5 E(wing the \214nal slash\))-.25 E F1(\\t)144 -393.6 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F1(\\T) -144 405.6 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E F1 -(\\@)144 417.6 Q F0(the current time in 12-hour am/pm format)23.92 E F1 -(\\A)144 429.6 Q F0(the current time in 24-hour HH:MM format)26 E F1 -(\\u)144 441.6 Q F0(the username of the current user)27.66 E F1(\\v)144 -453.6 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 465.6 Q F0(the release of)26 E F1(bash) +511.2 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F1(\\T) +144 523.2 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E F1 +(\\@)144 535.2 Q F0(the current time in 12-hour am/pm format)23.92 E F1 +(\\A)144 547.2 Q F0(the current time in 24-hour HH:MM format)26 E F1 +(\\u)144 559.2 Q F0(the username of the current user)27.66 E F1(\\v)144 +571.2 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 583.2 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 477.6 Q F0 .115(the current w)26 F -.115(orking directory)-.1 F 2.615(,w)-.65 G(ith)-2.615 E F2($HOME)2.615 -E F0(abbre)2.365 E .116(viated with a tilde \(uses the v)-.25 F .116 -(alue of the)-.25 F F2(PR)180 489.6 Q(OMPT_DIR)-.27 E(TRIM)-.36 E F0 --.25(va)2.25 G(riable\)).25 E F1(\\W)144 501.6 Q F0 +(e.g., 2.00.0\))-2.5 E F1(\\w)144 595.2 Q F0 .116(the current w)26 F +.116(orking directory)-.1 F 2.616(,w)-.65 G(ith)-2.616 E F2($HOME)2.616 +E F0(abbre)2.366 E .115(viated with a tilde \(uses the v)-.25 F .115 +(alue of the)-.25 F F2(PR)180 607.2 Q(OMPT_DIR)-.27 E(TRIM)-.36 E F0 +-.25(va)2.25 G(riable\)).25 E F1(\\W)144 619.2 Q F0 (the basename of the current w)23.22 E(orking directory)-.1 E 2.5(,w) -.65 G(ith)-2.5 E F2($HOME)2.5 E F0(abbre)2.25 E(viated with a tilde) --.25 E F1(\\!)144 513.6 Q F0(the history number of this command)29.89 E -F1(\\#)144 525.6 Q F0(the command number of this command)28.22 E F1(\\$) -144 537.6 Q F0(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H +-.25 E F1(\\!)144 631.2 Q F0(the history number of this command)29.89 E +F1(\\#)144 643.2 Q F0(the command number of this command)28.22 E F1(\\$) +144 655.2 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 549.6 Q F4(nnn)A F0 +(\\)144 667.2 Q F4(nnn)A F0 (the character corresponding to the octal number)18.22 E F4(nnn)2.5 E F1 -(\\\\)144 561.6 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F1(\\[)144 573.6 Q +(\\\\)144 679.2 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F1(\\[)144 691.2 Q F0(be)29.89 E 1.257(gin a sequence of non-printing characters, which co\ uld be used to embed a terminal)-.15 F(control sequence into the prompt) -180 585.6 Q F1(\\])144 597.6 Q F0 -(end a sequence of non-printing characters)29.89 E .119 -(The command number and the history number are usually dif)108 614.4 R -.12(ferent: the history number of a command is its)-.25 F 1.585(positio\ -n in the history list, which may include commands restored from the his\ -tory \214le \(see)108 626.4 R F2(HIST)4.084 E(OR)-.162 E(Y)-.315 E F0 -(belo)108 638.4 Q .541(w\), while the command number is the position in\ - the sequence of commands e)-.25 F -.15(xe)-.15 G .541 -(cuted during the cur).15 F(-)-.2 E .546(rent shell session.)108 650.4 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 -.351(tion, arithmetic e)108 662.4 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 .352(shell option \(see the)2.852 -F(description of the)108 674.4 Q F1(shopt)2.5 E F0(command under)2.5 E -F2(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).) --.25 E F3(READLINE)72 691.2 Q F0 .151 -(This is the library that handles reading input when using an interacti) -108 703.2 R .45 -.15(ve s)-.25 H .15(hell, unless the).15 F F1 -(\255\255noediting)2.65 E F0(option)2.65 E 1.208(is gi)108 715.2 R -.15 -(ve)-.25 G 3.708(na).15 G 3.708(ts)-3.708 G 1.208(hell in)-3.708 F -.2 -(vo)-.4 G 3.708(cation. Line).2 F 1.208 -(editing is also used when using the)3.708 F F1<ad65>3.709 E F0 1.209 -(option to the)3.709 F F1 -.18(re)3.709 G(ad).18 E F0 -.2(bu)3.709 G -3.709(iltin. By).2 F(def)108 727.2 Q .851 -(ault, the line editing commands are similar to those of Emacs.)-.1 F -3.351(Av)5.851 G .851(i-style line editing interf)-3.351 F .851 -(ace is also)-.1 F(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 -G(mber 24).15 E(35)185.545 E 0 Cg EP +180 703.2 Q F1(\\])144 715.2 Q F0 +(end a sequence of non-printing characters)29.89 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(35)193.45 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 -.2(av)108 84 S 3.35(ailable. Line)-.05 F .85 +-.35 E .12(The command number and the history number are usually dif)108 +84 R .119(ferent: the history number of a command is its)-.25 F 1.585(p\ +osition in the history list, which may include commands restored from t\ +he history \214le \(see)108 96 R/F1 9/Times-Bold@0 SF(HIST)4.085 E(OR) +-.162 E(Y)-.315 E F0(belo)108 108 Q .541(w\), while the command 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 120 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 132 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/F2 +10/Times-Bold@0 SF(pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .351 +(shell option \(see the)2.852 F(description of the)108 144 Q F2(shopt) +2.5 E F0(command under)2.5 E F1(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS) +-.828 E F0(belo)2.25 E(w\).)-.25 E/F3 10.95/Times-Bold@0 SF(READLINE)72 +160.8 Q F0 .15 +(This is the library that handles reading input when using an interacti) +108 172.8 R .451 -.15(ve s)-.25 H .151(hell, unless the).15 F F2 +(\255\255noediting)2.651 E F0(option)2.651 E 1.209(is gi)108 184.8 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 F2<ad65>3.708 E F0 1.208 +(option to the)3.708 F F2 -.18(re)3.708 G(ad).18 E F0 -.2(bu)3.708 G +3.708(iltin. By).2 F(def)108 196.8 Q .851 +(ault, the line editing commands are similar to those of Emacs.)-.1 F +3.351(Av)5.851 G .851(i-style line editing interf)-3.351 F .852 +(ace is also)-.1 F -.2(av)108 208.8 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 10/Times-Bold@0 SF .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 96 Q/F2 9/Times-Bold@0 SF .763(SHELL B)3.263 -F(UIL)-.09 E .763(TIN COMMANDS)-.828 F F0(belo)3.013 E 3.263(w\). T)-.25 -F 3.263(ot)-.8 G .763(urn of)-3.263 F 3.263(fl)-.25 G .763 -(ine editing after the shell is running, use the)-3.263 F F1(+o)3.262 E -(emacs)108 108 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 124.8 Q +-3.35 F F2 .85(\255o emacs)3.35 F F0(or)3.35 E F2 .85(\255o vi)3.35 F F0 +.85(options to the)3.35 F F2(set)3.35 E F0 -.2(bu)3.35 G(iltin).2 E +(\(see)108 220.8 Q F1 .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 F2(+o)3.263 E +(emacs)108 232.8 Q F0(or)2.5 E F2(+o vi)2.5 E F0(options to the)2.5 E F2 +(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F2(Readline Notation)87 249.6 Q F0 .463(In this section, the Emacs-style notation is used to denote k) -108 136.8 R -.15(ey)-.1 G(strok).15 E 2.963(es. Control)-.1 F -.1(ke) -2.963 G .463(ys are denoted by C\255)-.05 F/F3 10/Times-Italic@0 SF -.1 -(ke)C(y)-.2 E F0(,)A 1.153(e.g., C\255n means Control\255N.)108 148.8 R -(Similarly)6.153 E(,)-.65 E F3(meta)4.033 E F0 -.1(ke)3.913 G 1.153 -(ys are denoted by M\255)-.05 F F3 -.1(ke)C(y)-.2 E F0 3.652(,s)C 3.652 -(oM)-3.652 G 1.152(\255x means Meta\255X.)-3.652 F(\(On)6.152 E -.1(ke) -108 160.8 S .83(yboards without a)-.05 F F3(meta)3.71 E F0 -.1(ke)3.59 G -2.13 -.65(y, M)-.05 H<ad>.65 E F3(x)A F0 .83(means ESC)3.33 F F3(x)3.33 -E F0 3.33(,i)C .831(.e., press the Escape k)-3.33 F 1.131 -.15(ey t)-.1 -H .831(hen the).15 F F3(x)4.101 E F0 -.1(ke)3.861 G 4.631 -.65(y. T)-.05 -H .831(his mak).65 F(es)-.1 E .6(ESC the)108 172.8 R F3 .6(meta pr)3.1 F -(e\214x)-.37 E F0 5.6(.T)C .6(he combination M\255C\255)-5.6 F F3(x)A F0 -.599(means ESC\255Control\255)3.099 F F3(x)A F0 3.099(,o)C 3.099(rp) --3.099 G .599(ress the Escape k)-3.099 F .899 -.15(ey t)-.1 H .599 -(hen hold).15 F(the Control k)108 184.8 Q .3 -.15(ey w)-.1 H -(hile pressing the).15 E F3(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\)) -.65 E .619(Readline commands may be gi)108 201.6 R -.15(ve)-.25 G 3.119 -(nn).15 G(umeric)-3.119 E F3(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.62 E(ho) -108 213.6 Q(we)-.25 E -.15(ve)-.25 G 1.419 -.4(r, i).15 H 3.119(ti).4 G -3.119(st)-3.119 G .619(he sign of the ar)-3.119 F .619 +108 261.6 R -.15(ey)-.1 G(strok).15 E 2.963(es. Control)-.1 F -.1(ke) +2.963 G .463(ys are denoted by C\255)-.05 F/F4 10/Times-Italic@0 SF -.1 +(ke)C(y)-.2 E F0(,)A 1.152(e.g., C\255n means Control\255N.)108 273.6 R +(Similarly)6.152 E(,)-.65 E F4(meta)4.032 E F0 -.1(ke)3.913 G 1.153 +(ys are denoted by M\255)-.05 F F4 -.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 285.6 S .831(yboards without a)-.05 F F4(meta)3.711 E F0 -.1(ke) +3.591 G 2.131 -.65(y, M)-.05 H<ad>.65 E F4(x)A F0 .831(means ESC)3.331 F +F4(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 F4(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 297.6 R F4 .599 +(meta pr)3.099 F(e\214x)-.37 E F0 5.599(.T)C .599 +(he combination M\255C\255)-5.599 F F4(x)A F0 .599 +(means ESC\255Control\255)3.099 F F4(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 309.6 Q .3 -.15(ey w)-.1 H(hile pressing the).15 E F4 +(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\)).65 E .62 +(Readline commands may be gi)108 326.4 R -.15(ve)-.25 G 3.119(nn).15 G +(umeric)-3.119 E F4(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 +338.4 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.018(acts in the forw)108 225.6 R 1.018 -(ard direction \(e.g.,)-.1 F F1(kill\255line)3.518 E F0 3.518(\)c)C -1.018(auses that command to act in a backw)-3.518 F 1.019 -(ard direction.)-.1 F(Com-)6.019 E(mands whose beha)108 237.6 Q +(ument to a command that).18 F 1.019(acts in the forw)108 350.4 R 1.018 +(ard direction \(e.g.,)-.1 F F2(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 362.4 Q (vior with ar)-.2 E(guments de)-.18 E(viates from this are noted belo) --.25 E -.65(w.)-.25 G .812(When a command is described as)108 254.4 R F3 +-.25 E -.65(w.)-.25 G .811(When a command is described as)108 379.2 R F4 (killing)3.311 E F0(te)3.311 E .811(xt, the te)-.15 F .811 -(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .811 -(or possible future retrie)-3.311 F -.25(va)-.25 G 3.311(l\().25 G F3 -(yank-)-3.311 E(ing)108 266.4 Q F0 2.529(\). The)B .029(killed te)2.529 -F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F3 +(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 F4 +(yank-)-3.312 E(ing)108 391.2 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 F4 .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 278.4 R .567(ed all at once.)-.1 F +-.15 F .567(which can be yank)108 403.2 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 290.4 Q F1(Readline Initialization)87 307.2 Q F0 .091(Readline is c\ -ustomized by putting commands in an initialization \214le \(the)108 -319.2 R F3(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591 F .092 -(name of this \214le)2.591 F .197(is tak)108 331.2 R .196(en from the v) --.1 F .196(alue of the)-.25 F F2(INPUTRC)2.696 E F0 -.25(va)2.446 G +108 415.2 Q F2(Readline Initialization)87 432 Q F0 .091(Readline is cus\ +tomized by putting commands in an initialization \214le \(the)108 444 R +F4(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 456 R .196(en from the v) +-.1 F .196(alue of the)-.25 F F1(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 F3(~/.inputr)2.696 -E(c)-.37 E F0 5.196(.W).31 G .196(hen a)-5.196 F 1.034(program which us\ +(ariable is unset, the def)-.25 F .196(ault is)-.1 F F4(~/.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 343.2 R 1.335 -.15(ey b)-.1 H 1.035(indings and).15 F -.25 -(va)108 355.2 S 1.15(riables are set.).25 F 1.15(There are only a fe) -6.15 F 3.649(wb)-.25 G 1.149(asic constructs allo)-3.649 F 1.149 -(wed in the readline initialization \214le.)-.25 F(Blank)6.149 E .736 -(lines are ignored.)108 367.2 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 .737 -(indicate conditional)3.237 F 2.5(constructs. Other)108 379.2 R -(lines denote k)2.5 E .3 -.15(ey b)-.1 H(indings and v).15 E -(ariable settings.)-.25 E .987(The def)108 396 R .987(ault k)-.1 F -.15 -(ey)-.1 G .987(-bindings may be changed with an).15 F F3(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 408 Q -(wn commands and bindings.)-.25 E -.15(Fo)108 424.8 S 2.5(re).15 G -(xample, placing)-2.65 E(M\255Control\255u: uni)144 441.6 Q -.15(ve)-.25 -G(rsal\255ar).15 E(gument)-.18 E(or)108 453.6 Q(C\255Meta\255u: uni)144 -465.6 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 477.6 -Q F3(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 F3 -(univer)2.5 E(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.26(The follo) -108 494.4 R 1.261(wing symbolic character names are recognized:)-.25 F -F3 -.4(RU)3.761 G(BOUT).4 E F0(,)1.27 E F3(DEL)3.761 E F0(,).53 E F3 -(ESC)3.761 E F0(,).72 E F3(LFD)3.761 E F0(,).28 E F3(NEWLINE)3.761 E F0 -(,).73 E F3(RET)3.761 E F0(,)1.27 E F3(RETURN)108 506.4 Q F0(,)1.1 E F3 -(SPC)2.5 E F0(,).72 E F3(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G -(nd)-2.5 E F3 -.5(TA)2.5 G(B).5 E F0(.).27 E .209 -(In addition to command names, readline allo)108 523.2 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 +nd the k)108 468 R 1.334 -.15(ey b)-.1 H 1.034(indings and).15 F -.25 +(va)108 480 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 492 R .737(Lines be)5.737 F .737(ginning with a) +-.15 F F2(#)3.237 E F0 .737(are comments.)3.237 F .737(Lines be)5.737 F +.737(ginning with a)-.15 F F2($)3.237 E F0 .736(indicate conditional) +3.236 F 2.5(constructs. Other)108 504 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 520.8 R .986(ault k)-.1 F -.15(ey)-.1 G .987 +(-bindings may be changed with an).15 F F4(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 532.8 Q(wn commands and bindings.)-.25 E -.15 +(Fo)108 549.6 S 2.5(re).15 G(xample, placing)-2.65 E +(M\255Control\255u: uni)144 566.4 Q -.15(ve)-.25 G(rsal\255ar).15 E +(gument)-.18 E(or)108 578.4 Q(C\255Meta\255u: uni)144 590.4 Q -.15(ve) +-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 602.4 Q F4(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 F4(univer)2.5 E +(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.261(The follo)108 619.2 R +1.261(wing symbolic character names are recognized:)-.25 F F4 -.4(RU) +3.761 G(BOUT).4 E F0(,)1.27 E F4(DEL)3.761 E F0(,).53 E F4(ESC)3.761 E +F0(,).72 E F4(LFD)3.761 E F0(,).28 E F4(NEWLINE)3.76 E F0(,).73 E F4 +(RET)3.76 E F0(,)1.27 E F4(RETURN)108 631.2 Q F0(,)1.1 E F4(SPC)2.5 E F0 +(,).72 E F4(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G(nd)-2.5 E F4 +-.5(TA)2.5 G(B).5 E F0(.).27 E .209 +(In addition to command names, readline allo)108 648 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 535.2 Q F3(macr)2.5 E(o)-.45 E F0(\).)A F1 -(Readline K)87 552 Q(ey Bindings)-.25 E F0 .366 -(The syntax for controlling k)108 564 R .666 -.15(ey b)-.1 H .366 -(indings in the).15 F F3(inputr)2.876 E(c)-.37 E F0 .366 +-.1 H(s).15 E(pressed \(a)108 660 Q F4(macr)2.5 E(o)-.45 E F0(\).)A F2 +(Readline K)87 676.8 Q(ey Bindings)-.25 E F0 .366 +(The syntax for controlling k)108 688.8 R .666 -.15(ey b)-.1 H .366 +(indings in the).15 F F4(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 .383(command or the te)108 576 R .383(xt of a macro and a k)-.15 -F .683 -.15(ey s)-.1 H .383 +5.366 F .382(command or the te)108 700.8 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 588 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 F3 -(Meta\255)3.353 E F0(or)3.353 E F3(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 -600 Q 1.542(When using the form)108 616.8 R F1 -.1(ke)4.042 G(yname).1 E -F0(:)A F3(function\255name).833 E F0(or)4.042 E F3(macr)4.042 E(o)-.45 E -F0(,)A F3 -.1(ke)4.042 G(yname)-.2 E F0 1.542(is the name of a k)4.222 F -1.841 -.15(ey s)-.1 H 1.541(pelled out in).15 F 2.5(English. F)108 628.8 -R(or e)-.15 E(xample:)-.15 E(Control-u: uni)144 652.8 Q -.15(ve)-.25 G -(rsal\255ar).15 E(gument)-.18 E(Meta-Rubout: backw)144 664.8 Q -(ard-kill-w)-.1 E(ord)-.1 E(Control-o: "> output")144 676.8 Q .698 -(In the abo)108 693.6 R .998 -.15(ve ex)-.15 H(ample,).15 E F3(C\255u) -3.038 E F0 .698(is bound to the function)3.448 F F1(uni)3.198 E -.1(ve) --.1 G(rsal\255ar).1 E(gument)-.1 E F0(,)A F3(M\255DEL)3.878 E F0 .698 -(is bound to the func-)3.728 F(tion)108 705.6 Q F1 -(backward\255kill\255w)2.759 E(ord)-.1 E F0 2.759(,a)C(nd)-2.759 E F3 -(C\255o)2.599 E F0 .258(is bound to run the macro e)2.939 F .258 -(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108 -717.6 Q(xt)-.15 E/F4 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0 -(into the line\).)2.5 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve) --.15 G(mber 24).15 E(36)185.545 E 0 Cg EP +(\214ed in one of tw)108 712.8 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 F4(Meta\255)3.353 E F0(or)3.353 E F4(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 724.8 Q(GNU Bash 4.2)72 768 Q(2013 January 8) +144.29 E(36)193.45 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 .055(In the second form,)108 84 R/F1 10/Times-Bold@0 SF("k)2.555 -E(eyseq")-.1 E F0(:)A/F2 10/Times-Italic@0 SF(function\255name).833 E F0 -(or)2.555 E F2(macr)2.555 E(o)-.45 E F0(,)A F1 -.1(ke)2.555 G(yseq).1 E -F0(dif)2.556 E .056(fers from)-.25 F F1 -.1(ke)2.556 G(yname).1 E F0 -(abo)2.556 E .356 -.15(ve i)-.15 H 2.556(nt).15 G .056(hat strings) --2.556 F 1.284(denoting an entire k)108 96 R 1.584 -.15(ey s)-.1 H 1.284 -(equence may be speci\214ed by placing the sequence within double quote\ -s.).15 F(Some)6.284 E .385(GNU Emacs style k)108 108 R .685 -.15(ey e) --.1 H .385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F -.386(xample, b)-.15 F .386(ut the symbolic character names)-.2 F -(are not recognized.)108 120 Q("\\C\255u": uni)144 144 Q -.15(ve)-.25 G -(rsal\255ar).15 E(gument)-.18 E -("\\C\255x\\C\255r": re\255read\255init\255\214le)144 156 Q -("\\e[11~": "Function K)144 168 Q .3 -.15(ey 1)-.25 H(").15 E .315 -(In this e)108 184.8 R(xample,)-.15 E F2(C\255u)2.655 E F0 .315(is ag) -3.065 F .315(ain bound to the function)-.05 F F1(uni)2.815 E -.1(ve)-.1 +-.35 E 1.541(When using the form)108 84 R/F1 10/Times-Bold@0 SF -.1(ke) +4.041 G(yname).1 E F0(:)A/F2 10/Times-Italic@0 SF(function\255name).833 +E F0(or)4.041 E F2(macr)4.042 E(o)-.45 E F0(,)A F2 -.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 96 R(or e)-.15 E(xample:)-.15 E +(Control-u: uni)144 120 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E +(Meta-Rubout: backw)144 132 Q(ard-kill-w)-.1 E(ord)-.1 E +(Control-o: "> output")144 144 Q .699(In the abo)108 160.8 R .998 -.15 +(ve ex)-.15 H(ample,).15 E F2(C\255u)3.038 E F0 .698 +(is bound to the function)3.448 F F1(uni)3.198 E -.1(ve)-.1 G +(rsal\255ar).1 E(gument)-.1 E F0(,)A F2(M\255DEL)3.878 E F0 .698 +(is bound to the func-)3.728 F(tion)108 172.8 Q F1 +(backward\255kill\255w)2.758 E(ord)-.1 E F0 2.758(,a)C(nd)-2.758 E F2 +(C\255o)2.598 E F0 .258(is bound to run the macro e)2.938 F .259 +(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108 +184.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 201.6 R F1("k)2.556 +E(eyseq")-.1 E F0(:)A F2(function\255name).833 E F0(or)2.556 E F2(macr) +2.556 E(o)-.45 E F0(,)A F1 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055 +(fers from)-.25 F F1 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15 +(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284 +(denoting an entire k)108 213.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 225.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 237.6 Q("\\C\255u": uni)144 261.6 Q -.15(ve) +-.25 G(rsal\255ar).15 E(gument)-.18 E +("\\C\255x\\C\255r": re\255read\255init\255\214le)144 273.6 Q +("\\e[11~": "Function K)144 285.6 Q .3 -.15(ey 1)-.25 H(").15 E .314 +(In this e)108 302.4 R(xample,)-.15 E F2(C\255u)2.654 E F0 .314(is ag) +3.064 F .315(ain bound to the function)-.05 F F1(uni)2.815 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(.)A F2 .315(C\255x C\255r)5.155 F F0 -.314(is bound to the func-)3.544 F(tion)108 196.8 Q F1 -.18(re)2.5 G +.315(is bound to the func-)3.545 F(tion)108 314.4 Q F1 -.18(re)2.5 G <ad72>.18 E(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F2 -(ESC [ 1 1 ~)3.01 E F0(is bound to insert the te)3.94 E(xt)-.15 E/F3 10 -/Courier@0 SF(Function Key 1)2.5 E F0(.)A -(The full set of GNU Emacs style escape sequences is)108 213.6 Q F1 -<5c43ad>144 225.6 Q F0(control pre\214x)20.3 E F1<5c4dad>144 237.6 Q F0 -(meta pre\214x)18.08 E F1(\\e)144 249.6 Q F0(an escape character)28.78 E -F1(\\\\)144 261.6 Q F0(backslash)30.44 E F1(\\")144 273.6 Q F0 -(literal ")27.67 E F1<5c08>144 285.6 Q F0(literal \010)30.44 E(In addit\ +(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 331.2 Q F1 +<5c43ad>144 343.2 Q F0(control pre\214x)20.3 E F1<5c4dad>144 355.2 Q F0 +(meta pre\214x)18.08 E F1(\\e)144 367.2 Q F0(an escape character)28.78 E +F1(\\\\)144 379.2 Q F0(backslash)30.44 E F1(\\")144 391.2 Q F0 +(literal ")27.67 E F1<5c08>144 403.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 302.4 Q -.25(va)-.2 G(ilable:).25 E F1(\\a)144 314.4 Q -F0(alert \(bell\))28.22 E F1(\\b)144 326.4 Q F0(backspace)27.66 E F1 -(\\d)144 338.4 Q F0(delete)27.66 E F1(\\f)144 350.4 Q F0(form feed)29.89 -E F1(\\n)144 362.4 Q F0(ne)27.66 E(wline)-.25 E F1(\\r)144 374.4 Q F0 -(carriage return)28.78 E F1(\\t)144 386.4 Q F0(horizontal tab)29.89 E F1 -(\\v)144 398.4 Q F0 -.15(ve)28.22 G(rtical tab).15 E F1(\\)144 410.4 Q -F2(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 422.4 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.141 -(When entering the te)108 439.2 R 1.141(xt of a macro, single or double\ - quotes must be used to indicate a macro de\214nition.)-.15 F .09 -(Unquoted te)108 451.2 R .09(xt is assumed to be a function name.)-.15 F -.089(In the macro body)5.089 F 2.589(,t)-.65 G .089 -(he backslash escapes described abo)-2.589 F -.15(ve)-.15 G(are e)108 -463.2 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G +escapes is a)108 420 Q -.25(va)-.2 G(ilable:).25 E F1(\\a)144 432 Q F0 +(alert \(bell\))28.22 E F1(\\b)144 444 Q F0(backspace)27.66 E F1(\\d)144 +456 Q F0(delete)27.66 E F1(\\f)144 468 Q F0(form feed)29.89 E F1(\\n)144 +480 Q F0(ne)27.66 E(wline)-.25 E F1(\\r)144 492 Q F0(carriage return) +28.78 E F1(\\t)144 504 Q F0(horizontal tab)29.89 E F1(\\v)144 516 Q F0 +-.15(ve)28.22 G(rtical tab).15 E F1(\\)144 528 Q F2(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 +540 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 556.8 R 1.141(xt of a macro, single or double\ + quotes must be used to indicate a macro de\214nition.)-.15 F .089 +(Unquoted te)108 568.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 +580.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 480 Q F0(allo)2.929 E .429(ws the current readline k)-.25 F -.729 -.15(ey b)-.1 H .429 -(indings to be displayed or modi\214ed with the).15 F F1(bind)2.93 E F0 --.2(bu)2.93 G .43(iltin command.).2 F .046 -(The editing mode may be switched during interacti)108 492 R .346 -.15 -(ve u)-.25 H .046(se by using the).15 F F1<ad6f>2.545 E F0 .045 -(option to the)2.545 F F1(set)2.545 E F0 -.2(bu)2.545 G .045 -(iltin command).2 F(\(see)108 504 Q/F4 9/Times-Bold@0 SF(SHELL B)2.5 E +F1(Bash)108 597.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 609.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 621.6 Q/F4 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 520.8 Q(ariables)-.92 E F0 .043(Readline has v)108 532.8 +(Readline V)87 638.4 Q(ariables)-.92 E F0 .044(Readline has v)108 650.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.554 E(tr)108 544.8 Q(c)-.37 E -F0(\214le with a statement of the form)2.81 E F1(set)144 561.6 Q F2 +(riable may be set in the).25 F F2(inpu-)2.553 E(tr)108 662.4 Q(c)-.37 E +F0(\214le with a statement of the form)2.81 E F1(set)144 679.2 Q F2 (variable\255name value)2.5 E F0 .79(Except where noted, readline v)108 -578.4 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 .448(nized v)108 590.4 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 .449(alues, "on" \(case-insensi-) --.25 F(ti)108 602.4 Q -.15(ve)-.25 G .468(\), 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 .467(he v)-5.468 F .467 -(ariables and their def)-.25 F(ault)-.1 E -.25(va)108 614.4 S(lues are:) -.25 E F1(bell\255style \(audible\))108 631.2 Q F0 .01 -(Controls what happens when readline w)144 643.2 R .011 -(ants to ring the terminal bell.)-.1 F .011(If set to)5.011 F F1(none) -2.511 E F0 2.511(,r)C .011(eadline ne)-2.511 F -.15(ve)-.25 G(r).15 E -.94(rings the bell.)144 655.2 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 667.2 Q 2.5(sb)-.55 G -(ell.)-2.5 E F1(bind\255tty\255special\255chars \(On\))108 679.2 Q F0 -.055(If set to)144 691.2 R F1(On)2.555 E F0 2.555(,r)C .056(eadline att\ -empts to bind the control characters treated specially by the k)-2.555 F -(ernel')-.1 E 2.556(st)-.55 G(ermi-)-2.556 E(nal dri)144 703.2 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(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 -G(mber 24).15 E(37)185.545 E 0 Cg EP +696 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 708 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 720 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 +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(37)193.45 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/F1 10/Times-Bold@0 SF(color)108 84 Q(ed\255stats \(Off\))-.18 E -F0 1.58(If set to)144 96 R F1(On)4.08 E F0 4.08(,r)C 1.579 -(eadline displays possible completions using dif)-4.08 F 1.579 -(ferent colors to indicate their \214le)-.25 F 2.5(type. The)144 108 R +-.35 E -.25(va)108 84 S(lues are:).25 E/F1 10/Times-Bold@0 SF +(bell\255style \(audible\))108 100.8 Q F0 .011 +(Controls what happens when readline w)144 112.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 124.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 136.8 Q 2.5(sb)-.55 G(ell.) +-2.5 E F1(bind\255tty\255special\255chars \(On\))108 148.8 Q F0 .056 +(If set to)144 160.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 172.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(color)108 184.8 Q(ed\255stats \(Off\))-.18 E F0 +1.579(If set to)144 196.8 R F1(On)4.079 E F0 4.079(,r)C 1.579 +(eadline displays possible completions using dif)-4.079 F 1.58 +(ferent colors to indicate their \214le)-.25 F 2.5(type. The)144 208.8 R (color de\214nitions are tak)2.5 E(en from the v)-.1 E(alue of the)-.25 E F1(LS_COLORS)2.5 E F0(en)2.5 E(vironment v)-.4 E(ariable.)-.25 E F1 -(comment\255begin \(`)108 120 Q(`#')-.63 E('\))-.63 E F0 .884 -(The string that is inserted when the readline)144 132 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 144 Q F1 +(comment\255begin \(`)108 220.8 Q(`#')-.63 E('\))-.63 E F0 .885 +(The string that is inserted when the readline)144 232.8 R F1 +(insert\255comment)3.385 E F0 .884(command is e)3.384 F -.15(xe)-.15 G +3.384(cuted. This).15 F(com-)3.384 E(mand is bound to)144 244.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 156 Q -(e\255case \(Off\))-.18 E F0(If set to)144 168 Q F1(On)2.5 E F0 2.5(,r)C -(eadline performs \214lename matching and completion in a case\255insen\ -siti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1(completion\255pr)108 -180 Q(e\214x\255display\255length \(0\))-.18 E F0 .829(The length in ch\ -aracters of the common pre\214x of a list of possible completions that \ -is displayed)144 192 R 1.274(without modi\214cation.)144 204 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 216 S(lue are repla\ -ced with an ellipsis when displaying possible completions.).25 E F1 -(completion\255query\255items \(100\))108 228 Q F0 .53 -(This determines when the user is queried about vie)144 240 R .529 -(wing the number of possible completions gen-)-.25 F .56(erated by the) -144 252 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 264 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 276 S .237 +(in vi command mode.)2.5 E F1(completion\255ignor)108 256.8 Q +(e\255case \(Off\))-.18 E F0(If set to)144 268.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 280.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 292.8 R 1.275(without modi\214cation.)144 304.8 R +1.275(When set to a v)6.275 F 1.274 +(alue greater than zero, common pre\214x)-.25 F 1.274 +(es longer than this)-.15 F -.25(va)144 316.8 S(lue are replaced with a\ +n ellipsis when displaying possible completions.).25 E F1 +(completion\255query\255items \(100\))108 328.8 Q F0 .529 +(This determines when the user is queried about vie)144 340.8 R .53 +(wing the number of possible completions gen-)-.25 F .561(erated by the) +144 352.8 R F1(possible\255completions)3.061 E F0 3.061(command. It) +3.061 F .561(may be set to an)3.061 F 3.06(yi)-.15 G(nte)-3.06 E .56 +(ger v)-.15 F .56(alue greater than or)-.25 F .782(equal to zero.)144 +364.8 R .783(If the number of possible completions is greater than or e\ +qual to the v)5.782 F .783(alue of this)-.25 F -.25(va)144 376.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 288 Q F1(con)108 300 -Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)144 312 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 +.237(re simply listed)-2.737 F(on the terminal.)144 388.8 Q F1(con)108 +400.8 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .612(If set to)144 412.8 +R F1(On)3.112 E F0 3.112(,r)C .613(eadline will con)-3.112 F -.15(ve)-.4 +G .613(rt characters with the eighth bit set to an ASCII k).15 F .913 +-.15(ey s)-.1 H .613(equence by).15 F .541 (stripping the eighth bit and pre\214xing an escape character \(in ef) -144 324 R .541(fect, using escape as the)-.25 F/F2 10/Times-Italic@0 SF -.542(meta pr)3.042 F(e-)-.37 E<8c78>144 336 Q F0(\).)A F1 -(disable\255completion \(Off\))108 348 Q F0 .038(If set to)144 360 R F1 -(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)-2.538 F .038 +144 424.8 R .541(fect, using escape as the)-.25 F/F2 10/Times-Italic@0 +SF .541(meta pr)3.041 F(e-)-.37 E<8c78>144 436.8 Q F0(\).)A F1 +(disable\255completion \(Off\))108 448.8 Q F0 .038(If set to)144 460.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 372 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 384 Q F0 .141 -(Controls whether readline be)144 396 R .141(gins with a set of k)-.15 F -.441 -.15(ey b)-.1 H .141(indings similar to).15 F F2(Emacs)2.642 E F0 -(or)2.642 E F2(vi)2.642 E F0(.)A F1(editing\255mode)5.142 E F0 -(can be set to either)144 408 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E -F0(.)A F1(echo\255contr)108 420 Q(ol\255characters \(On\))-.18 E F0 -1.211(When set to)144 432 R F1(On)3.711 E F0 3.711(,o)C 3.711(no)-3.711 -G 1.211(perating systems that indicate the)-3.711 F 3.711(ys)-.15 G 1.21 +144 472.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 484.8 Q F0 .142 +(Controls whether readline be)144 496.8 R .141(gins with a set of k)-.15 +F .441 -.15(ey b)-.1 H .141(indings similar to).15 F F2(Emacs)2.641 E F0 +(or)2.641 E F2(vi)2.641 E F0(.)A F1(editing\255mode)5.141 E F0 +(can be set to either)144 508.8 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E +F0(.)A F1(echo\255contr)108 520.8 Q(ol\255characters \(On\))-.18 E F0 +1.21(When set to)144 532.8 R F1(On)3.71 E F0 3.71(,o)C 3.71(no)-3.71 G +1.211(perating systems that indicate the)-3.71 F 3.711(ys)-.15 G 1.211 (upport it, readline echoes a character)-3.711 F -(corresponding to a signal generated from the k)144 444 Q -.15(ey)-.1 G -(board.).15 E F1(enable\255k)108 456 Q(eypad \(Off\))-.1 E F0 .892 -(When set to)144 468 R F1(On)3.393 E F0 3.393(,r)C .893 +(corresponding to a signal generated from the k)144 544.8 Q -.15(ey)-.1 +G(board.).15 E F1(enable\255k)108 556.8 Q(eypad \(Off\))-.1 E F0 .893 +(When set to)144 568.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 .893(Some sys-)5.893 F -(tems need this to enable the arro)144 480 Q 2.5(wk)-.25 G -.15(ey)-2.6 -G(s.).15 E F1(enable\255meta\255k)108 492 Q(ey \(On\))-.1 E F0 .64 -(When set to)144 504 R F1(On)3.14 E F0 3.14(,r)C .64 +.893(pad when it is called.).15 F .892(Some sys-)5.893 F +(tems need this to enable the arro)144 580.8 Q 2.5(wk)-.25 G -.15(ey) +-2.6 G(s.).15 E F1(enable\255meta\255k)108 592.8 Q(ey \(On\))-.1 E F0 +.64(When set to)144 604.8 R F1(On)3.14 E F0 3.14(,r)C .64 (eadline will try to enable an)-3.14 F 3.14(ym)-.15 G .64 (eta modi\214er k)-3.14 F .94 -.15(ey t)-.1 H .64 -(he terminal claims to support).15 F(when it is called.)144 516 Q +(he terminal claims to support).15 F(when it is called.)144 616.8 Q (On man)5 E 2.5(yt)-.15 G(erminals, the meta k)-2.5 E .3 -.15(ey i)-.1 H 2.5(su).15 G(sed to send eight-bit characters.)-2.5 E F1 -(expand\255tilde \(Off\))108 528 Q F0(If set to)144 540 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 552 Q(eser)-.18 E -.1 -(ve)-.1 G(\255point \(Off\)).1 E F0 1.338(If set to)144 564 R F1(On) -3.838 E F0 3.838(,t)C 1.338(he history code attempts to place point at \ -the same location on each history line)-3.838 F(retrie)144 576 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 588 Q F0 .949 -(Set the maximum number of history entries sa)144 600 R -.15(ve)-.2 G -3.448(di).15 G 3.448(nt)-3.448 G .948(he history list.)-3.448 F .948 -(If set to zero, an)5.948 F 3.448(ye)-.15 G(xisting)-3.598 E .482 -(history entries are deleted and no ne)144 612 R 2.982(we)-.25 G .483 -(ntries are sa)-2.982 F -.15(ve)-.2 G 2.983(d. If).15 F .483(set to a v) -2.983 F .483(alue less than zero, the num-)-.25 F -(ber of history entries is not limited.)144 624 Q(By def)5 E -(ault, the number of history entries is not limited.)-.1 E F1 -(horizontal\255scr)108 636 Q(oll\255mode \(Off\))-.18 E F0 .449 -(When set to)144 648 R F1(On)2.949 E F0 2.949(,m)C(ak)-2.949 E .448 -(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .448 -(crolling the input horizontally on a)-2.948 F 1.194(single screen line\ - when it becomes longer than the screen width rather than wrapping to a\ - ne)144 660 R(w)-.25 E(line.)144 672 Q F1(input\255meta \(Off\))108 684 -Q F0 .228(If set to)144 696 R F1(On)2.728 E F0 2.728(,r)C .227(eadline \ -will enable eight-bit input \(that is, it will not strip the high bit f\ -rom the char)-2.728 F(-)-.2 E .956(acters it reads\), re)144 708 R -.05 -(ga)-.15 G .956(rdless of what the terminal claims it can support.).05 F -.957(The name)5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F -(synon)144 720 Q(ym for this v)-.15 E(ariable.)-.25 E(GNU Bash 4.2)72 -768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(38)185.545 E 0 Cg -EP +(expand\255tilde \(Off\))108 628.8 Q F0(If set to)144 640.8 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 652.8 Q(eser)-.18 E -.1(ve)-.1 G +(\255point \(Off\)).1 E F0 1.339(If set to)144 664.8 R F1(On)3.839 E F0 +3.839(,t)C 1.338(he history code attempts to place point at the same lo\ +cation on each history line)-3.839 F(retrie)144 676.8 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 +688.8 Q F0 .948(Set the maximum number of history entries sa)144 700.8 R +-.15(ve)-.2 G 3.448(di).15 G 3.448(nt)-3.448 G .948(he history list.) +-3.448 F .949(If set to zero, an)5.948 F 3.449(ye)-.15 G(xisting)-3.599 +E .483(history entries are deleted and no ne)144 712.8 R 2.983(we)-.25 G +.483(ntries are sa)-2.983 F -.15(ve)-.2 G 2.983(d. If).15 F .482 +(set to a v)2.983 F .482(alue less than zero, the num-)-.25 F +(ber of history entries is not limited.)144 724.8 Q(By def)5 E +(ault, the number of history entries is not limited.)-.1 E(GNU Bash 4.2) +72 768 Q(2013 January 8)144.29 E(38)193.45 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(isear)108 84 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 without subsequently e)144 96 R --.15(xe)-.15 G(cut-).15 E .934(ing the character as a command.)144 108 R -.935(If this v)5.935 F .935(ariable has not been gi)-.25 F -.15(ve)-.25 -G 3.435(nav).15 G .935(alue, the characters)-3.685 F/F2 10 -/Times-Italic@0 SF(ESC)3.435 E F0(and)144 120 Q F2(C\255J)2.5 E F0 -(will terminate an incremental search.)2.5 E F1 -.1(ke)108 132 S -(ymap \(emacs\)).1 E F0 2.021(Set the current readline k)144 144 R -.15 -(ey)-.1 G 4.521(map. The).15 F 2.021(set of v)4.521 F 2.021(alid k)-.25 -F -.15(ey)-.1 G 2.021(map names is).15 F F2 2.02 -(emacs, emacs\255standar)4.52 F(d,)-.37 E .068 -(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 156 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.569 E F0(;)A F2(emacs)2.569 E F0 1.544(is equi)144 168 R -.25(va)-.25 -G 1.544(lent to).25 F F2(emacs\255standar)4.044 E(d)-.37 E F0 6.544(.T)C +-.35 E/F1 10/Times-Bold@0 SF(horizontal\255scr)108 84 Q +(oll\255mode \(Off\))-.18 E F0 .448(When set to)144 96 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 108 R(w)-.25 E(line.)144 120 Q F1(input\255meta \(Off\))108 132 +Q F0 .227(If set to)144 144 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 156 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 168 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 180 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 192 R -.15(xe)-.15 G(cut-).15 E .935 +(ing the character as a command.)144 204 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 216 Q F2(C\255J)2.5 E F0(will terminate an incremental search.) +2.5 E F1 -.1(ke)108 228 S(ymap \(emacs\)).1 E F0 2.02 +(Set the current readline k)144 240 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 252 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 264 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.043 E F0(also)4.043 E(af)144 180 Q(fects the def)-.25 -E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1 -.1(ke)108 192 S -(yseq\255timeout \(500\)).1 E F0 .367(Speci\214es the duration)144 204 R +(editing\255mode)4.044 E F0(also)4.044 E(af)144 276 Q(fects the def)-.25 +E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1 -.1(ke)108 288 S +(yseq\255timeout \(500\)).1 E F0 .368(Speci\214es the duration)144 300 R F2 -.37(re)2.867 G(adline).37 E F0 .367(will w)2.867 F .367 -(ait for a character when reading an ambiguous k)-.1 F .668 -.15(ey s) --.1 H(equence).15 E 1.356(\(one that can form a complete k)144 216 R +(ait for a character when reading an ambiguous k)-.1 F .667 -.15(ey s) +-.1 H(equence).15 E 1.356(\(one that can form a complete k)144 312 R 1.656 -.15(ey s)-.1 H 1.356(equence using the input read so f).15 F(ar) --.1 E 3.856(,o)-.4 G 3.856(rc)-3.856 G 1.355(an tak)-3.856 F 3.855(ea) --.1 G(dditional)-3.855 E .32(input to complete a longer k)144 228 R .62 +-.1 E 3.856(,o)-.4 G 3.856(rc)-3.856 G 1.356(an tak)-3.856 F 3.856(ea) +-.1 G(dditional)-3.856 E .32(input to complete a longer k)144 324 R .62 -.15(ey s)-.1 H 2.82(equence\). If).15 F .32(no input is recei)2.82 F -.15(ve)-.25 G 2.82(dw).15 G .32(ithin the timeout,)-2.82 F F2 -.37(re) -2.82 G(adline).37 E F0(will)2.82 E .907(use the shorter b)144 240 R .907 +2.82 G(adline).37 E F0(will)2.82 E .906(use the shorter b)144 336 R .907 (ut complete k)-.2 F 1.207 -.15(ey s)-.1 H 3.407(equence. The).15 F -.25 -(va)3.407 G .907(lue is speci\214ed in milliseconds, so a v).25 F .906 -(alue of)-.25 F .05(1000 means that)144 252 R F2 -.37(re)2.55 G(adline) +(va)3.407 G .907(lue is speci\214ed in milliseconds, so a v).25 F .907 +(alue of)-.25 F .05(1000 means that)144 348 R F2 -.37(re)2.55 G(adline) .37 E F0 .05(will w)2.55 F .05(ait one second for additional input.)-.1 F .05(If this v)5.05 F .05(ariable is set to a v)-.25 F(alue)-.25 E .051 -(less than or equal to zero, or to a non-numeric v)144 264 R(alue,)-.25 +(less than or equal to zero, or to a non-numeric v)144 360 R(alue,)-.25 E F2 -.37(re)2.551 G(adline).37 E F0 .051(will w)2.551 F .051 -(ait until another k)-.1 F .351 -.15(ey i)-.1 H 2.551(sp).15 G(ressed) --2.551 E(to decide which k)144 276 Q .3 -.15(ey s)-.1 H -(equence to complete.).15 E F1(mark\255dir)108 288 Q(ectories \(On\)) --.18 E F0(If set to)144 300 Q F1(On)2.5 E F0 2.5(,c)C +(ait until another k)-.1 F .352 -.15(ey i)-.1 H 2.552(sp).15 G(ressed) +-2.552 E(to decide which k)144 372 Q .3 -.15(ey s)-.1 H +(equence to complete.).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 312 Q F0(If set to)144 -324 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b) +.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 336 Q(ed\255dir)-.1 E -(ectories \(Off\))-.18 E F0 .175(If set to)144 348 R F1(On)2.675 E F0 +(*)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 360 +-.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 372 Q F0 .193(This v)144 384 R -.193(ariable, when set to)-.25 F F1(On)2.693 E F0 2.693(,c)C .192 -(auses readline to match \214les whose names be)-2.693 F .192 -(gin with a `.)-.15 F 2.692('\()-.7 G(hidden)-2.692 E .456 -(\214les\) when performing \214lename completion.)144 396 R .456 +(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 .457 +(\214les\) when performing \214lename completion.)144 492 R .456 (If set to)5.456 F F1(Off)2.956 E F0 2.956(,t)C .456(he leading `.) --2.956 F 2.956('m)-.7 G .457(ust be supplied by the)-2.956 F -(user in the \214lename to be completed.)144 408 Q F1 -(menu\255complete\255display\255pr)108 420 Q(e\214x \(Off\))-.18 E F0 -1.586(If set to)144 432 R F1(On)4.086 E F0 4.086(,m)C 1.585(enu complet\ +-2.956 F 2.956('m)-.7 G .456(ust be supplied by the)-2.956 F +(user in the \214lename to be completed.)144 504 Q F1 +(menu\255complete\255display\255pr)108 516 Q(e\214x \(Off\))-.18 E F0 +1.585(If set to)144 528 R F1(On)4.085 E F0 4.085(,m)C 1.585(enu complet\ ion displays the common pre\214x of the list of possible completions) --4.086 F(\(which may be empty\) before c)144 444 Q -(ycling through the list.)-.15 E F1(output\255meta \(Off\))108 456 Q F0 -.506(If set to)144 468 R F1(On)3.006 E F0 3.006(,r)C .507(eadline will \ +-4.085 F(\(which may be empty\) before c)144 540 Q +(ycling through the list.)-.15 E F1(output\255meta \(Off\))108 552 Q F0 +.507(If set to)144 564 R F1(On)3.007 E F0 3.007(,r)C .507(eadline will \ display characters with the eighth bit set directly rather than as a me\ -ta-)-3.006 F(pre\214x)144 480 Q(ed escape sequence.)-.15 E F1 -(page\255completions \(On\))108 492 Q F0 .809(If set to)144 504 R F1(On) +ta-)-3.007 F(pre\214x)144 576 Q(ed escape sequence.)-.15 E F1 +(page\255completions \(On\))108 588 Q F0 .808(If set to)144 600 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 516 Q F1 -(print\255completions\255horizontally \(Off\))108 528 Q F0 1.318 -(If set to)144 540 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 552 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25 -E F1 -2.29 -.18(re v)108 564 T(ert\255all\255at\255newline \(Off\)).08 E -F0 .699(If set to)144 576 R F1(On)3.199 E F0 3.199(,r)C .699 +(tions at a time.)144 612 Q F1 +(print\255completions\255horizontally \(Off\))108 624 Q F0 1.319 +(If set to)144 636 R F1(On)3.819 E F0 3.819(,r)C 1.318(eadline will dis\ +play completions with matches sorted horizontally in alphabetical)-3.819 +F(order)144 648 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25 +E F1 -2.29 -.18(re v)108 660 T(ert\255all\255at\255newline \(Off\)).08 E +F0 .698(If set to)144 672 R F1(On)3.198 E F0 3.198(,r)C .699 (eadline will undo all changes to history lines before returning when) --3.199 F F1(accept\255line)3.198 E F0(is)3.198 E -.15(exe)144 588 S +-3.198 F F1(accept\255line)3.199 E F0(is)3.199 E -.15(exe)144 684 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 600 S(adline) -.18 E F0(.)A F1(sho)108 612 Q(w\255all\255if\255ambiguous \(Off\))-.1 E -F0 .304(This alters the def)144 624 R .304(ault beha)-.1 F .304 -(vior of the completion functions.)-.2 F .304(If set to)5.304 F F1(On) -2.804 E F0 2.803(,w)C .303(ords which ha)-2.903 F .603 -.15(ve m)-.2 H -(ore).15 E 1.264(than one possible completion cause the matches to be l\ -isted immediately instead of ringing the)144 636 R(bell.)144 648 Q F1 -(sho)108 660 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346 -(This alters the def)144 672 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 684 Q(w\255all\255if\255ambiguous)-.1 E F0 6.69(.I)C -4.19(fs)-6.69 G 1.691(et to)-4.19 F F1(On)4.191 E F0 4.191(,w)C 1.691 -(ords which ha)-4.291 F 1.991 -.15(ve m)-.2 H 1.691 -(ore than one possible completion).15 F 1.04(without an)144 696 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 708 Q -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(39)185.545 E 0 Cg EP +(vidual undo lists across calls to)-.25 F F1 -.18(re)144 696 S(adline) +.18 E F0(.)A(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(39)193.45 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(sho)108 84 Q(w\255mode\255in\255pr)-.1 E -(ompt \(Off\))-.18 E F0 1.018(If set to)144 96 R F1(On)3.518 E F0 3.518 -(,a)C 1.018(dd a character to the be)-3.518 F 1.018 +-.35 E/F1 10/Times-Bold@0 SF(sho)108 84 Q +(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .303(This alters the def) +144 96 R .303(ault beha)-.1 F .304(vior of the completion functions.)-.2 +F .304(If set to)5.304 F F1(On)2.804 E F0 2.804(,w)C .304(ords which ha) +-2.904 F .604 -.15(ve m)-.2 H(ore).15 E 1.264(than one possible complet\ +ion cause the matches to be listed immediately instead of ringing the) +144 108 R(bell.)144 120 Q F1(sho)108 132 Q +(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.345 +(This alters the def)144 144 R 5.345(ault beha)-.1 F 5.345 +(vior of the completion functions in a f)-.2 F 5.346(ashion similar to) +-.1 F F1(sho)144 156 Q(w\255all\255if\255ambiguous)-.1 E F0 6.691(.I)C +4.191(fs)-6.691 G 1.691(et to)-4.191 F F1(On)4.191 E F0 4.191(,w)C 1.691 +(ords which ha)-4.291 F 1.991 -.15(ve m)-.2 H 1.691 +(ore than one possible completion).15 F 1.039(without an)144 168 R 3.539 +(yp)-.15 G 1.039 +(ossible partial completion \(the possible completions don')-3.539 F +3.539(ts)-.18 G 1.04(hare a common pre\214x\))-3.539 F(cause the matche\ +s to be listed immediately instead of ringing the bell.)144 180 Q F1 +(sho)108 192 Q(w\255mode\255in\255pr)-.1 E(ompt \(Off\))-.18 E F0 1.019 +(If set to)144 204 R F1(On)3.519 E F0 3.519(,a)C 1.018 +(dd a character to the be)-3.519 F 1.018 (ginning of the prompt indicating the editing mode: emacs)-.15 F -(\(@\), vi command \(:\) or vi insertion \(+\).)144 108 Q F1 -(skip\255completed\255text \(Off\))108 120 Q F0 .095(If set to)144 132 R -F1(On)2.595 E F0 2.595(,t)C .095(his alters the def)-2.595 F .095 -(ault completion beha)-.1 F .094 -(vior when inserting a single match into the line.)-.2 F(It')144 144 Q -2.545(so)-.55 G .045(nly acti)-2.545 F .345 -.15(ve w)-.25 H .046 -(hen performing completion in the middle of a w).15 F 2.546(ord. If)-.1 -F .046(enabled, readline does not)2.546 F 1.394(insert characters from \ -the completion that match characters after point in the w)144 156 R -1.394(ord being com-)-.1 F(pleted, so portions of the w)144 168 Q +(\(@\), vi command \(:\) or vi insertion \(+\).)144 216 Q F1 +(skip\255completed\255text \(Off\))108 228 Q F0 .094(If set to)144 240 R +F1(On)2.594 E F0 2.594(,t)C .095(his alters the def)-2.594 F .095 +(ault completion beha)-.1 F .095 +(vior when inserting a single match into the line.)-.2 F(It')144 252 Q +2.546(so)-.55 G .046(nly acti)-2.546 F .346 -.15(ve w)-.25 H .046 +(hen performing completion in the middle of a w).15 F 2.545(ord. If)-.1 +F .045(enabled, readline does not)2.545 F 1.394(insert characters from \ +the completion that match characters after point in the w)144 264 R +1.395(ord being com-)-.1 F(pleted, so portions of the w)144 276 Q (ord follo)-.1 E(wing the cursor are not duplicated.)-.25 E F1 -(visible\255stats \(Off\))108 180 Q F0 .846(If set to)144 192 R F1(On) +(visible\255stats \(Off\))108 288 Q F0 .847(If set to)144 300 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 204 Q F1 -(Readline Conditional Constructs)87 220.8 Q F0 .05 -(Readline implements a f)108 232.8 R .05(acility similar in spirit to t\ -he conditional compilation features of the C preprocessor)-.1 F .096 -(which allo)108 244.8 R .096(ws k)-.25 F .396 -.15(ey b)-.1 H .096 +(when listing possible completions.)144 312 Q F1 +(Readline Conditional Constructs)87 328.8 Q F0 .05 +(Readline implements a f)108 340.8 R .05(acility similar in spirit to t\ +he conditional compilation features of the C preprocessor)-.1 F .097 +(which allo)108 352.8 R .097(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 256.8 Q -.15(ve)-.25 G 2.5 -(su).15 G(sed.)-2.5 E F1($if)108 273.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 285.6 R .477(The te)5.477 F .477 +(ariable settings to be performed as the result of tests.)-.25 F .096 +(There are four parser)5.096 F(directi)108 364.8 Q -.15(ve)-.25 G 2.5 +(su).15 G(sed.)-2.5 E F1($if)108 381.6 Q F0(The)24.89 E F1($if)2.962 E +F0 .462(construct allo)2.962 F .463(ws bindings to be made based on the\ + editing mode, the terminal being used,)-.25 F .478 +(or the application using readline.)144 393.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 297.6 Q F1(mode)144 314.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 +(are required to isolate it.)144 405.6 Q F1(mode)144 422.4 Q F0(The) +12.67 E F1(mode=)3.711 E F0 1.211(form of the)3.711 F F1($if)3.711 E F0 (directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211 (sed to test whether readline is in emacs or vi)-3.711 F 3.065 -(mode. This)180 326.4 R .565(may be used in conjunction with the)3.065 F +(mode. This)180 434.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 338.4 R F2(emacs\255standar)3.235 E +3.065 F .735(set bindings in the)180 446.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 350.4 -Q F1(term)144 367.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 379.2 R +(ymaps only if readline is starting)-.05 F(out in emacs mode.)180 458.4 +Q F1(term)144 475.2 Q F0(The)15.46 E F1(term=)3.197 E F0 .696 +(form may be used to include terminal-speci\214c k)3.197 F .996 -.15 +(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 487.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 391.2 Q F1(=)3.231 -E F0 .731(is tested ag)3.231 F .732(ainst the both full name of the ter\ +(wo)3.154 G .654(rd on the right side of).1 F(the)180 499.2 Q F1(=)3.232 +E F0 .732(is tested ag)3.232 F .732(ainst the both full name of the ter\ minal and the portion of the terminal)-.05 F(name before the \214rst)180 -403.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0 +511.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 420 Q F0(The)180 432 +2.5(,f).77 G(or instance.)-2.5 E F1(application)144 528 Q F0(The)180 540 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 -444 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 456 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 468 R -.15(Fo)5.396 G 2.896(ri).15 G .396 +552 R F2 .114(application name)2.614 F F0 2.614(,a)C .114 +(nd an initialization \214le can test for a)-2.614 F .5(particular v)180 +564 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15 +(ey s)-.1 H .501(equences to functions useful for a spe-).15 F .397 +(ci\214c program.)180 576 R -.15(Fo)5.397 G 2.896(ri).15 G .396 (nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15 -(ey s)-.1 H .397(equence that quotes the).15 F(current or pre)180 480 Q -(vious w)-.25 E(ord in)-.1 E F1(bash)2.5 E F0(:)A F1($if)180 504 Q F0 -(Bash)2.5 E 2.5(#Q)180 516 S(uote the current or pre)-2.5 E(vious w)-.25 -E(ord)-.1 E("\\C\255xq": "\\eb\\"\\ef\\"")180 528 Q F1($endif)180 540 Q -($endif)108 556.8 Q F0(This command, as seen in the pre)9.33 E(vious e) +(ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 588 Q +(vious w)-.25 E(ord in)-.1 E F1(bash)2.5 E F0(:)A F1($if)180 612 Q F0 +(Bash)2.5 E 2.5(#Q)180 624 S(uote the current or pre)-2.5 E(vious w)-.25 +E(ord)-.1 E("\\C\255xq": "\\eb\\"\\ef\\"")180 636 Q F1($endif)180 648 Q +($endif)108 664.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 573.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 +($else)108 681.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 590.4 Q F0 .357 -(This directi)144 602.4 R .657 -.15(ve t)-.25 H(ak).15 E .357 -(es a single \214lename as an ar)-.1 F .356 +(cuted if the test f).15 E(ails.)-.1 E F1($include)108 698.4 Q F0 .356 +(This directi)144 710.4 R .656 -.15(ve t)-.25 H(ak).15 E .356 +(es a single \214lename as an ar)-.1 F .357 (gument and reads commands and bindings from that)-.18 F 2.5(\214le. F) -144 614.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 638.4 Q F2(/etc/inputr)5.833 E(c)-.37 E F1(Sear)87 655.2 Q -(ching)-.18 E F0 .834(Readline pro)108 667.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 679.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 696 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 708 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 2.101 -(incremental search requires only as man)108 720 R 4.601(yc)-.15 G 2.101 -(haracters as needed to \214nd the desired history entry)-4.601 F 7.1 -(.T)-.65 G(he)-7.1 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve) --.15 G(mber 24).15 E(40)185.545 E 0 Cg EP +144 722.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 +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(40)193.45 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 1.192(characters present in the v)108 84 R 1.192(alue of the)-.25 -F/F1 10/Times-Bold@0 SF(isear)3.692 E(ch-terminators)-.18 E F0 -.25(va) -3.692 G 1.192(riable are used to terminate an incremental).25 F 2.736 -(search. If)108 96 R .236(that v)2.736 F .235 -(ariable has not been assigned a v)-.25 F .235 -(alue the Escape and Control-J characters will terminate an)-.25 F 1.34 -(incremental search.)108 108 R 1.34(Control-G will abort an incremental\ - search and restore the original line.)6.34 F 1.34(When the)6.34 F(sear\ -ch is terminated, the history entry containing the search string become\ -s the current line.)108 120 Q 2.939 -.8(To \214)108 136.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 148.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 160.8 R .475 -.15(ey s)-.1 +-.35 E/F1 10/Times-Bold@0 SF($include)144 84 Q/F2 10/Times-Italic@0 SF +(/etc/inputr)5.833 E(c)-.37 E F1(Sear)87 100.8 Q(ching)-.18 E F0 .835 +(Readline pro)108 112.8 R .835 +(vides commands for searching through the command history \(see)-.15 F +/F3 9/Times-Bold@0 SF(HIST)3.334 E(OR)-.162 E(Y)-.315 E F0(belo)3.084 E +.834(w\) for lines)-.25 F(containing a speci\214ed string.)108 124.8 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 .697(Incremental searches be)108 141.6 R .697 +(gin before the user has \214nished typing the search string.)-.15 F +.698(As each character of the)5.698 F .113 +(search string is typed, readline displays the ne)108 153.6 R .112 +(xt entry from the history matching the string typed so f)-.15 F(ar)-.1 +E 5.112(.A)-.55 G(n)-5.112 E .542 +(incremental search requires only as man)108 165.6 R 3.042(yc)-.15 G +.542(haracters as needed to \214nd the desired history entry)-3.042 F +5.542(.T)-.65 G .542(he char)-5.542 F(-)-.2 E .224 +(acters present in the v)108 177.6 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 189.6 R .66(ariable has not been assigned a v)-.25 F .66 +(alue the Escape and Control-J characters will terminate an incre-)-.25 +F .097(mental search.)108 201.6 R .096(Control-G will abort an incremen\ +tal search and restore the original line.)5.097 F .096 +(When the search is)5.096 F(terminated, the history entry containing th\ +e search string becomes the current line.)108 213.6 Q 2.938 -.8(To \214) +108 230.4 T 1.339(nd other matching entries in the history list, type C\ +ontrol-S or Control-R as appropriate.).8 F 1.339(This will)6.339 F .675 +(search backw)108 242.4 R .675(ard or forw)-.1 F .675 +(ard in the history for the ne)-.1 F .674 +(xt entry matching the search string typed so f)-.15 F(ar)-.1 E 5.674 +(.A)-.55 G -.15(ny)-5.674 G .174(other k)108 254.4 R .474 -.15(ey s)-.1 H .174 (equence bound to a readline command will terminate the search and e).15 -F -.15(xe)-.15 G .174(cute that command.).15 F -.15(Fo)5.174 G(r).15 E -.54(instance, a)108 172.8 R/F2 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 184.8 Q .653(Readline remembers the last incremental search string.) -108 201.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 213.6 Q 2.5(ws)-.25 G +F -.15(xe)-.15 G .175(cute that command.).15 F -.15(Fo)5.175 G(r).15 E +.541(instance, a)108 266.4 R F2(ne)3.041 E(wline)-.15 E F0 .541 +(will terminate the search and accept the line, thereby e)3.041 F -.15 +(xe)-.15 G .54(cuting the command from the).15 F(history list.)108 278.4 +Q .653(Readline remembers the last incremental search string.)108 295.2 +R .653(If tw)5.653 F 3.153(oC)-.1 G .653(ontrol-Rs are typed without an) +-3.153 F 3.153(yi)-.15 G(nterv)-3.153 E(en-)-.15 E +(ing characters de\214ning a ne)108 307.2 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 230.4 R(The searc\ -h string may be typed by the user or be part of the contents of the cur\ -rent line.)108 242.4 Q F1(Readline Command Names)87 259.2 Q F0 1.392 -(The follo)108 271.2 R 1.391 +re starting to search for matching history lines.)108 324 R(The search \ +string may be typed by the user or be part of the contents of the curre\ +nt line.)108 336 Q F1(Readline Command Names)87 352.8 Q F0 1.391 +(The follo)108 364.8 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 283.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 295.2 Q F2(point)3.411 -E F0 .911(refers to the current cursor position, and)3.411 F F2(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 F1(set\255mark)108 307.2 Q F0 2.5 +3.892(ya)-.15 G(re)-3.892 E 2.622(bound. Command)108 376.8 R .122 +(names without an accompan)2.622 F .122(ying k)-.15 F .421 -.15(ey s)-.1 +H .121(equence are unbound by def).15 F 2.621(ault. In)-.1 F .121 +(the follo)2.621 F(wing)-.25 E(descriptions,)108 388.8 Q F2(point)3.41 E +F0 .91(refers to the current cursor position, and)3.41 F F2(mark)3.411 E +F0 .911(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.411(db) +.15 G 3.411(yt)-3.411 G(he)-3.411 E F1(set\255mark)108 400.8 Q F0 2.5 (command. The)2.5 F(te)2.5 E (xt between the point and mark is referred to as the)-.15 E F2 -.37(re) -2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 324 Q(or Mo)-.25 E(ving)-.1 E -(beginning\255of\255line \(C\255a\))108 336 Q F0(Mo)144 348 Q .3 -.15 -(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1 -(end\255of\255line \(C\255e\))108 360 Q F0(Mo)144 372 Q .3 -.15(ve t) --.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 384 S -(rward\255char \(C\255f\)).25 E F0(Mo)144 396 Q .3 -.15(ve f)-.15 H(orw) -.15 E(ard a character)-.1 E(.)-.55 E F1(backward\255char \(C\255b\))108 -408 Q F0(Mo)144 420 Q .3 -.15(ve b)-.15 H(ack a character).15 E(.)-.55 E -F1 -.25(fo)108 432 S(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 444 -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 456 Q F1(backward\255w)108 468 Q(ord \(M\255b\)) --.1 E F0(Mo)144 480 Q 1.71 -.15(ve b)-.15 H 1.41 +2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 417.6 Q(or Mo)-.25 E(ving)-.1 +E(beginning\255of\255line \(C\255a\))108 429.6 Q F0(Mo)144 441.6 Q .3 +-.15(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1 +(end\255of\255line \(C\255e\))108 453.6 Q F0(Mo)144 465.6 Q .3 -.15 +(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 +477.6 S(rward\255char \(C\255f\)).25 E F0(Mo)144 489.6 Q .3 -.15(ve f) +-.15 H(orw).15 E(ard a character)-.1 E(.)-.55 E F1 +(backward\255char \(C\255b\))108 501.6 Q F0(Mo)144 513.6 Q .3 -.15(ve b) +-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 525.6 S(rward\255w) +.25 E(ord \(M\255f\))-.1 E F0(Mo)144 537.6 Q .823 -.15(ve f)-.15 H(orw) +.15 E .523(ard to the end of the ne)-.1 F .523(xt w)-.15 F 3.023(ord. W) +-.1 F .522(ords are composed of alphanumeric characters \(let-)-.8 F +(ters and digits\).)144 549.6 Q F1(backward\255w)108 561.6 Q +(ord \(M\255b\))-.1 E F0(Mo)144 573.6 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 492 Q F1(shell\255f)108 504 Q -(orward\255w)-.25 E(ord)-.1 E F0(Mo)144 516 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 528 Q F1(shell\255backward\255w)108 540 Q(ord)-.1 E F0(Mo)144 -552 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 564 Q -F1(clear\255scr)108 576 Q(een \(C\255l\))-.18 E F0 .993 -(Clear the screen lea)144 588 R .993 +(characters \(letters and digits\).)144 585.6 Q F1(shell\255f)108 597.6 +Q(orward\255w)-.25 E(ord)-.1 E F0(Mo)144 609.6 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 621.6 Q F1(shell\255backward\255w)108 633.6 Q(ord)-.1 E +F0(Mo)144 645.6 Q .908 -.15(ve b)-.15 H .609 +(ack to the start of the current or pre).15 F .609(vious w)-.25 F 3.109 +(ord. W)-.1 F .609(ords are delimited by non-quoted shell)-.8 F +(metacharacters.)144 657.6 Q F1(clear\255scr)108 669.6 Q(een \(C\255l\)) +-.18 E F0 .993(Clear the screen lea)144 681.6 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 600 Q F1 -.18(re)108 612 -S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144 -624 Q F1(Commands f)87 640.8 Q(or Manipulating the History)-.25 E -(accept\255line \(Newline, Retur)108 652.8 Q(n\))-.15 E F0 .159 -(Accept the line re)144 664.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 676.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 688.8 Q F1(pr)108 -700.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0 -(Fetch the pre)144 712.8 Q(vious command from the history list, mo)-.25 -E(ving back in the list.)-.15 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E --.15(ve)-.15 G(mber 24).15 E(41)185.545 E 0 Cg EP +(current line without clearing the screen.)144 693.6 Q F1 -.18(re)108 +705.6 S(draw\255curr).18 E(ent\255line)-.18 E F0 +(Refresh the current line.)144 717.6 Q(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(41)193.45 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(next\255history \(C\255n\))108 84 Q F0 -(Fetch the ne)144 96 Q(xt command from the history list, mo)-.15 E +-.35 E/F1 10/Times-Bold@0 SF(Commands f)87 84 Q +(or Manipulating the History)-.25 E(accept\255line \(Newline, Retur)108 +96 Q(n\))-.15 E F0 .158(Accept the line re)144 108 R -.05(ga)-.15 G .158 +(rdless of where the cursor is.).05 F .158(If this line is non-empty) +5.158 F 2.659(,a)-.65 G .159(dd it to the history list)-2.659 F .699 +(according to the state of the)144 120 R/F2 9/Times-Bold@0 SF(HISTCONTR) +3.199 E(OL)-.27 E F0 -.25(va)2.949 G 3.199(riable. If).25 F .699 +(the line is a modi\214ed history line, then)3.199 F +(restore the history line to its original state.)144 132 Q F1(pr)108 144 +Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0(Fetch the pre)144 +156 Q(vious command from the history list, mo)-.25 E +(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 168 Q +F0(Fetch the ne)144 180 Q(xt command from the history list, mo)-.15 E (ving forw)-.15 E(ard in the list.)-.1 E F1 -(beginning\255of\255history \(M\255<\))108 108 Q F0(Mo)144 120 Q .3 -.15 +(beginning\255of\255history \(M\255<\))108 192 Q F0(Mo)144 204 Q .3 -.15 (ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)-.65 E -F1(end\255of\255history \(M\255>\))108 132 Q F0(Mo)144 144 Q .3 -.15 +F1(end\255of\255history \(M\255>\))108 216 Q F0(Mo)144 228 Q .3 -.15 (ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5(,i)-.65 G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18(re v)108 -156 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.471 -(Search backw)144 168 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 180 Q F1 -.25(fo)108 192 S -(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131 -(Search forw)144 204 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 216 Q F1(non\255incr)108 -228 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H(rse\255sear).15 E -(ch\255history \(M\255p\))-.18 E F0 .165(Search backw)144 240 R .164(ar\ +240 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.47 +(Search backw)144 252 R 1.471(ard starting at the current line and mo) +-.1 F 1.471(ving `up' through the history as necessary)-.15 F(.)-.65 E +(This is an incremental search.)144 264 Q F1 -.25(fo)108 276 S +(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132 +(Search forw)144 288 R 1.132(ard starting at the current line and mo)-.1 +F 1.131(ving `do)-.15 F 1.131(wn' through the history as necessary)-.25 +F(.)-.65 E(This is an incremental search.)144 300 Q F1(non\255incr)108 +312 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H(rse\255sear).15 E +(ch\255history \(M\255p\))-.18 E F0 .164(Search backw)144 324 R .164(ar\ d through the history starting at the current line using a non-incremen\ -tal search for)-.1 F 2.5(as)144 252 S(tring supplied by the user)-2.5 E -(.)-.55 E F1(non\255incr)108 264 Q(emental\255f)-.18 E(orward\255sear) --.25 E(ch\255history \(M\255n\))-.18 E F0 1.353(Search forw)144 276 R +tal search for)-.1 F 2.5(as)144 336 S(tring supplied by the user)-2.5 E +(.)-.55 E F1(non\255incr)108 348 Q(emental\255f)-.18 E(orward\255sear) +-.25 E(ch\255history \(M\255n\))-.18 E F0 1.354(Search forw)144 360 R 1.354(ard through the history using a non-incremental search for a stri\ -ng supplied by the)-.1 F(user)144 288 Q(.)-.55 E F1(history\255sear)108 -300 Q(ch\255f)-.18 E(orward)-.25 E F0 .249(Search forw)144 312 R .249(a\ +ng supplied by the)-.1 F(user)144 372 Q(.)-.55 E F1(history\255sear)108 +384 Q(ch\255f)-.18 E(orward)-.25 E F0 .248(Search forw)144 396 R .249(a\ rd through the history for the string of characters between the start o\ -f the current line)-.1 F(and the point.)144 324 Q -(This is a non-incremental search.)5 E F1(history\255sear)108 336 Q -(ch\255backward)-.18 E F0 .95(Search backw)144 348 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 360 Q(This is a non-incremental search.) -5 E F1(yank\255nth\255ar)108 372 Q 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 -.622(Insert the \214rst ar)144 384 R .622(gument to the pre)-.18 F .622 +f the current line)-.1 F(and the point.)144 408 Q +(This is a non-incremental search.)5 E F1(history\255sear)108 420 Q +(ch\255backward)-.18 E F0 .951(Search backw)144 432 R .951(ard through \ +the history for the string of characters between the start of the curre\ +nt)-.1 F(line and the point.)144 444 Q +(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 456 Q +2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 468 +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 396 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 408 Q .292(vious command be)-.25 F .292 +.622(vious line\))-.25 F .795(at point.)144 480 R -.4(Wi)5.795 G .794 +(th an ar).4 F(gument)-.18 E/F3 10/Times-Italic@0 SF(n)3.294 E F0 3.294 +(,i).24 G .794(nsert the)-3.294 F F3(n)3.294 E F0 .794(th w)B .794 +(ord from the pre)-.1 F .794(vious command \(the w)-.25 F .794 +(ords in the)-.1 F(pre)144 492 Q .291(vious command be)-.25 F .291 (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 420 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 432 Q -(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 444 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 456 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 468 S .203(th a numeric ar).4 -F .203(gument, beha)-.18 F .504 -.15(ve ex)-.2 H .204(actly lik).15 F(e) --.1 E F1(yank\255nth\255ar)2.704 E(g)-.1 E F0 5.204(.S)C(uccessi)-5.204 -E .504 -.15(ve c)-.25 H .204(alls to).15 F F1(yank\255last\255ar)2.704 E -(g)-.1 E F0(mo)144 480 Q .807 -.15(ve b)-.15 H .507 +(ument inserts the).18 F F3(n)2.791 E F0 .291(th w)B .292 +(ord from the end of)-.1 F .282(the pre)144 504 R .282(vious command.) +-.25 F .282(Once the ar)5.282 F(gument)-.18 E F3(n)2.781 E F0 .281 +(is computed, the ar)2.781 F .281(gument is e)-.18 F .281 +(xtracted as if the "!)-.15 F F3(n)A F0(")A(history e)144 516 Q +(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 528 Q +2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.307 +(Insert the last ar)144 540 R 1.307(gument to the pre)-.18 F 1.307 +(vious command \(the last w)-.25 F 1.308(ord of the pre)-.1 F 1.308 +(vious history entry\).)-.25 F -.4(Wi)144 552 S .204(th a numeric ar).4 +F .204(gument, beha)-.18 F .504 -.15(ve ex)-.2 H .204(actly lik).15 F(e) +-.1 E F1(yank\255nth\255ar)2.704 E(g)-.1 E F0 5.203(.S)C(uccessi)-5.203 +E .503 -.15(ve c)-.25 H .203(alls to).15 F F1(yank\255last\255ar)2.703 E +(g)-.1 E F0(mo)144 564 Q .806 -.15(ve b)-.15 H .507 (ack through the history list, inserting the last w).15 F .507 (ord \(or the w)-.1 F .507(ord speci\214ed by the ar)-.1 F(gument)-.18 E -1.396(to the \214rst call\) of each line in turn.)144 492 R(An)6.396 E -3.896(yn)-.15 G 1.396(umeric ar)-3.896 F 1.397 -(gument supplied to these successi)-.18 F 1.697 -.15(ve c)-.25 H(alls) -.15 E .492(determines the direction to mo)144 504 R .792 -.15(ve t)-.15 -H .492(hrough the history).15 F 5.491(.A)-.65 G(ne)-2.5 E -.05(ga)-.15 G -(ti).05 E .791 -.15(ve a)-.25 H -.18(rg).15 G .491 +1.397(to the \214rst call\) of each line in turn.)144 576 R(An)6.396 E +3.896(yn)-.15 G 1.396(umeric ar)-3.896 F 1.396 +(gument supplied to these successi)-.18 F 1.696 -.15(ve c)-.25 H(alls) +.15 E .491(determines the direction to mo)144 588 R .791 -.15(ve t)-.15 +H .491(hrough the history).15 F 5.492(.A)-.65 G(ne)-2.5 E -.05(ga)-.15 G +(ti).05 E .792 -.15(ve a)-.25 H -.18(rg).15 G .492 (ument switches the direction).18 F .494 -(through the history \(back or forw)144 516 R 2.994(ard\). The)-.1 F +(through the history \(back or forw)144 600 R 2.994(ard\). The)-.1 F .494(history e)2.994 F .494(xpansion f)-.15 F .494 -(acilities are used to e)-.1 F .494(xtract the last)-.15 F(ar)144 528 Q +(acilities are used to e)-.1 F .494(xtract the last)-.15 F(ar)144 612 Q (gument, as if the "!$" history e)-.18 E(xpansion had been speci\214ed.) --.15 E F1(shell\255expand\255line \(M\255C\255e\))108 540 Q F0 .623 -(Expand the line as the shell does.)144 552 R .622 -(This performs alias and history e)5.622 F .622 -(xpansion as well as all of the)-.15 F(shell w)144 564 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 +-.15 E F1(shell\255expand\255line \(M\255C\255e\))108 624 Q F0 .622 +(Expand the line as the shell does.)144 636 R .622 +(This performs alias and history e)5.622 F .623 +(xpansion as well as all of the)-.15 F(shell w)144 648 Q(ord e)-.1 E 2.5 +(xpansions. See)-.15 F F2(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 576 Q F0 .938 -(Perform history e)144 588 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 600 Q(xpansion.)-.15 E F1(magic\255space) -108 612 Q F0 1.627(Perform history e)144 624 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 636 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E -(xpansion.)-.15 E F1(alias\255expand\255line)108 648 Q F0 .394 -(Perform alias e)144 660 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 672 Q F1 -(history\255and\255alias\255expand\255line)108 684 Q F0 -(Perform history and alias e)144 696 Q(xpansion on the current line.) --.15 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24) -.15 E(42)185.545 E 0 Cg EP +(history\255expand\255line \(M\255^\))108 660 Q F0 .939 +(Perform history e)144 672 R .939(xpansion on the current line.)-.15 F +(See)5.939 E F2(HIST)3.439 E(OR)-.162 E 3.189(YE)-.315 G(XP)-3.189 E +(ANSION)-.666 E F0(belo)3.189 E 3.438(wf)-.25 G .938(or a descrip-) +-3.438 F(tion of history e)144 684 Q(xpansion.)-.15 E F1(magic\255space) +108 696 Q F0 1.626(Perform history e)144 708 R 1.626 +(xpansion on the current line and insert a space.)-.15 F(See)6.627 E F2 +(HIST)4.127 E(OR)-.162 E 3.877(YE)-.315 G(XP)-3.877 E(ANSION)-.666 E F0 +(belo)144 720 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E +(xpansion.)-.15 E(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(42) +193.45 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(insert\255last\255ar)108 84 Q -(gument \(M\255.)-.1 E 2.5(,M).833 G -1.667(\255_ \))-2.5 F F0 2.5(As) -144 96 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 108 Q F0 .948 -(Accept the current line for e)144 120 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 132 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G +-.35 E/F1 10/Times-Bold@0 SF(alias\255expand\255line)108 84 Q F0 .395 +(Perform alias e)144 96 R .395(xpansion on the current line.)-.15 F(See) +5.395 E/F2 9/Times-Bold@0 SF(ALIASES)2.895 E F0(abo)2.645 E .694 -.15 +(ve f)-.15 H .394(or a description of alias e).15 F(xpan-)-.15 E(sion.) +144 108 Q F1(history\255and\255alias\255expand\255line)108 120 Q F0 +(Perform history and alias e)144 132 Q(xpansion on the current line.) +-.15 E F1(insert\255last\255ar)108 144 Q(gument \(M\255.)-.1 E 2.5(,M) +.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 156 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 168 Q F0 .947 +(Accept the current line for e)144 180 R -.15(xe)-.15 G .948 +(cution and fetch the ne).15 F .948(xt line relati)-.15 F 1.248 -.15 +(ve t)-.25 H 3.448(ot).15 G .948(he current line from the)-3.448 F +(history for editing.)144 192 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G (ument is ignored.).18 E F1 -(edit\255and\255execute\255command \(C\255xC\255e\))108 144 Q F0(In)144 -156 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026 +(edit\255and\255execute\255command \(C\255xC\255e\))108 204 Q F0(In)144 +216 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 168 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 184.8 Q(or Changing T)-.25 E(ext)-.92 E -(delete\255char \(C\255d\))108 196.8 Q F0 .358 -(Delete the character at point.)144 208.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 220.8 Q(as not bound to)-.1 E +(attempts to in)144 228 Q -.2(vo)-.4 G -.1(ke).2 G F2($VISU)2.6 E(AL) +-.54 E/F3 9/Times-Roman@0 SF(,)A F2($EDIT)2.25 E(OR)-.162 E F3(,)A F0 +(and)2.25 E/F4 10/Times-Italic@0 SF(emacs)2.5 E F0(as the editor)2.5 E +2.5(,i)-.4 G 2.5(nt)-2.5 G(hat order)-2.5 E(.)-.55 E F1(Commands f)87 +244.8 Q(or Changing T)-.25 E(ext)-.92 E(delete\255char \(C\255d\))108 +256.8 Q F0 .357(Delete the character at point.)144 268.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 280.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 232.8 Q F0 .552 -(Delete the character behind the cursor)144 244.8 R 5.553(.W)-.55 G .553 +A F1(backward\255delete\255char \(Rubout\))108 292.8 Q F0 .553 +(Delete the character behind the cursor)144 304.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 256.8 Q F1 -.25(fo)108 268.8 S -(rward\255backward\255delete\255char).25 E F0 .474 -(Delete the character under the cursor)144 280.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 292.8 Q F1 -(quoted\255insert \(C\255q, C\255v\))108 304.8 Q F0 .778(Add the ne)144 -316.8 R .779(xt character typed to the line v)-.15 F 3.279 +.552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552(he deleted te).15 F +.552(xt on)-.15 F(the kill ring.)144 316.8 Q F1 -.25(fo)108 328.8 S +(rward\255backward\255delete\255char).25 E F0 .473 +(Delete the character under the cursor)144 340.8 R 2.973(,u)-.4 G .474 +(nless the cursor is at the end of the line, in which case the)-2.973 F +(character behind the cursor is deleted.)144 352.8 Q F1 +(quoted\255insert \(C\255q, C\255v\))108 364.8 Q F0 .779(Add the ne)144 +376.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 328.8 S(ample.).15 E F1 -(tab\255insert \(C\255v T)108 340.8 Q(AB\))-.9 E F0 -(Insert a tab character)144 352.8 Q(.)-.55 E F1 -(self\255insert \(a, b, A, 1, !, ...\))108 364.8 Q F0 -(Insert the character typed.)144 376.8 Q F1 -(transpose\255chars \(C\255t\))108 388.8 Q F0 .322 -(Drag the character before point forw)144 400.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 +G .779(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.278 E F0 3.278 +(,f)C(or)-3.278 E -.15(ex)144 388.8 S(ample.).15 E F1 +(tab\255insert \(C\255v T)108 400.8 Q(AB\))-.9 E F0 +(Insert a tab character)144 412.8 Q(.)-.55 E F1 +(self\255insert \(a, b, A, 1, !, ...\))108 424.8 Q F0 +(Insert the character typed.)144 436.8 Q F1 +(transpose\255chars \(C\255t\))108 448.8 Q F0 .321 +(Drag the character before point forw)144 460.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 .322 +(ving point forw)-.15 F .322(ard as well.)-.1 F 1.182 (If point is at the end of the line, then this transposes the tw)144 -412.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 424.8 Q(guments ha)-.18 E +472.8 R 3.682(oc)-.1 G 1.182(haracters before point.)-3.682 F(Ne)6.182 E +-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 484.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 436.8 Q(ords \(M\255t\))-.1 E F0 .024(Drag the w)144 -448.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 460.8 Q 2.5 -(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 472.8 Q -(ord \(M\255u\))-.1 E F0 1.698(Uppercase the current \(or follo)144 -484.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 496.8 S(rd, b).1 -E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 508.8 Q -(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 520.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 532.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 544.8 Q -(ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144 -556.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 568.8 S(rd, b) +(transpose\255w)108 496.8 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144 +508.8 R .023(ord before point past the w)-.1 F .023(ord after point, mo) +-.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.524(rt).15 G .024(hat w) +-2.524 F .024(ord as well.)-.1 F .024(If point)5.024 F +(is at the end of the line, this transposes the last tw)144 520.8 Q 2.5 +(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 532.8 Q +(ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144 +544.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.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698 +(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 556.8 S(rd, b).1 +E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 568.8 Q +(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 580.8 Q 1.647 +(wercase the current \(or follo)-.25 F 1.647(wing\) w)-.25 F 4.147 +(ord. W)-.1 F 1.648(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.948 -.15 +(ve a)-.25 H -.18(rg).15 G 1.648(ument, lo).18 F 1.648(wercase the pre) +-.25 F(vious)-.25 E -.1(wo)144 592.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 604.8 Q +(ord \(M\255c\))-.1 E F0 1.975(Capitalize the current \(or follo)144 +616.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.974 +(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 628.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 -580.8 S(rwrite\255mode).1 E F0 -.8(To)144 592.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 604.8 S .78(th an e).4 F .781(xplicit non-positi)-.15 F 1.081 +640.8 S(rwrite\255mode).1 E F0 -.8(To)144 652.8 S .437(ggle o).8 F -.15 +(ve)-.15 G .437(rwrite mode.).15 F -.4(Wi)5.437 G .437(th an e).4 F .437 +(xplicit positi)-.15 F .738 -.15(ve n)-.25 H .438(umeric ar).15 F .438 +(gument, switches to o)-.18 F -.15(ve)-.15 G .438(rwrite mode.).15 F -.4 +(Wi)144 664.8 S .781(th an e).4 F .781(xplicit non-positi)-.15 F 1.081 -.15(ve n)-.25 H .781(umeric ar).15 F .781 -(gument, switches to insert mode.)-.18 F .781(This command af)5.781 F -(fects)-.25 E(only)144 616.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 +(gument, switches to insert mode.)-.18 F .78(This command af)5.781 F +(fects)-.25 E(only)144 676.8 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi) +4.394 E F0 1.894(mode does o)4.394 F -.15(ve)-.15 G 1.894(rwrite dif).15 F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F F4 -.37(re) -4.394 G(adline\(\)).37 E F0 1.894(starts in insert)4.394 F 3.968 -(mode. In)144 628.8 R -.15(ove)3.968 G 1.468 +4.395 G(adline\(\)).37 E F0 1.895(starts in insert)4.395 F 3.969 +(mode. In)144 688.8 R -.15(ove)3.969 G 1.469 (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 640.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 652.8 -Q(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87 -669.6 Q(anking)-.85 E(kill\255line \(C\255k\))108 681.6 Q F0 -(Kill the te)144 693.6 Q(xt from point to the end of the line.)-.15 E F1 -(backward\255kill\255line \(C\255x Rubout\))108 705.6 Q F0(Kill backw) -144 717.6 Q(ard to the be)-.1 E(ginning of the line.)-.15 E -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(43)185.545 E 0 Cg EP +1.468(replace the te)3.969 F 1.468(xt at point rather than)-.15 F .957 +(pushing the te)144 700.8 R .957(xt to the right.)-.15 F .958 +(Characters bound to)5.957 F F1(backward\255delete\255char)3.458 E F0 +.958(replace the character)3.458 F(before point with a space.)144 712.8 +Q(By def)5 E(ault, this command is unbound.)-.1 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(43)193.45 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(unix\255line\255discard \(C\255u\))108 84 Q -F0(Kill backw)144 96 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 108 Q F0 +-.35 E/F1 10/Times-Bold@0 SF(Killing and Y)87 84 Q(anking)-.85 E +(kill\255line \(C\255k\))108 96 Q F0(Kill the te)144 108 Q +(xt from point to the end of the line.)-.15 E F1 +(backward\255kill\255line \(C\255x Rubout\))108 120 Q F0(Kill backw)144 +132 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1 +(unix\255line\255discard \(C\255u\))108 144 Q F0(Kill backw)144 156 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 168 Q F0 (Kill all characters on the current line, no matter where point is.)144 -120 Q F1(kill\255w)108 132 Q(ord \(M\255d\))-.1 E F0 .728 -(Kill from point to the end of the current w)144 144 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 156 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 168 Q -(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 180 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 192 Q -(ord \(M\255d\))-.1 E F0 .729 +180 Q F1(kill\255w)108 192 Q(ord \(M\255d\))-.1 E F0 .729 (Kill from point to the end of the current w)144 204 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 216 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 228 Q +(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 240 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 252 Q +(ord \(M\255d\))-.1 E F0 .728 +(Kill from point to the end of the current w)144 264 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 276 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 228 Q(ord \(M\255Rubout\))-.1 E F0 3.025(Kill the w)144 240 R 3.025 +108 288 Q(ord \(M\255Rubout\))-.1 E F0 3.025(Kill the w)144 300 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 252 Q(ord)-.1 E F0(.)A F1(unix\255w)108 264 Q -(ord\255rubout \(C\255w\))-.1 E F0 .365(Kill the w)144 276 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 -288 Q F1(unix\255\214lename\255rubout)108 300 Q F0 .166(Kill the w)144 -312 R .166 +5.525 E(ward\255w)144 312 Q(ord)-.1 E F0(.)A F1(unix\255w)108 324 Q +(ord\255rubout \(C\255w\))-.1 E F0 .364(Kill the w)144 336 R .364 +(ord behind point, using white space as a w)-.1 F .365(ord boundary)-.1 +F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15 +(ve)-.2 G 2.865(do).15 G 2.865(nt)-2.865 G(he)-2.865 E(kill-ring.)144 +348 Q F1(unix\255\214lename\255rubout)108 360 Q F0 .167(Kill the w)144 +372 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 324 Q +-.1 F .166(ord boundaries.)-.1 F(The)5.166 E(killed te)144 384 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 336 Q F0 -(Delete all spaces and tabs around point.)144 348 Q F1(kill\255r)108 360 -Q(egion)-.18 E F0(Kill the te)144 372 Q(xt in the current re)-.15 E -(gion.)-.15 E F1(copy\255r)108 384 Q(egion\255as\255kill)-.18 E F0(Cop) -144 396 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E +-2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 396 Q F0 +(Delete all spaces and tabs around point.)144 408 Q F1(kill\255r)108 420 +Q(egion)-.18 E F0(Kill the te)144 432 Q(xt in the current re)-.15 E +(gion.)-.15 E F1(copy\255r)108 444 Q(egion\255as\255kill)-.18 E F0(Cop) +144 456 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 408 Q(ord)-.1 E F0(Cop)144 420 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 432 Q -(ord)-.1 E F0(.)A F1(copy\255f)108 444 Q(orward\255w)-.25 E(ord)-.1 E F0 -(Cop)144 456 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 468 Q(ord)-.1 E F0(.)A F1 -(yank \(C\255y\))108 480 Q F0 -1(Ya)144 492 S +(copy\255backward\255w)108 468 Q(ord)-.1 E F0(Cop)144 480 Q 4.8(yt)-.1 G +2.3(he w)-4.8 F 2.3(ord before point to the kill b)-.1 F(uf)-.2 E(fer) +-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.301 +(ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144 492 +Q(ord)-.1 E F0(.)A F1(copy\255f)108 504 Q(orward\255w)-.25 E(ord)-.1 E +F0(Cop)144 516 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008(ord follo)-.1 +F 2.008(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.007(.T) +-.55 G 2.007(he w)-7.007 F 2.007(ord boundaries are the same as)-.1 F F1 +-.25(fo)4.507 G -.37(r-).25 G(ward\255w)144 528 Q(ord)-.1 E F0(.)A F1 +(yank \(C\255y\))108 540 Q F0 -1(Ya)144 552 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 504 Q F0 -(Rotate the kill ring, and yank the ne)144 516 Q 2.5(wt)-.25 G 2.5 +E F1(yank\255pop \(M\255y\))108 564 Q F0 +(Rotate the kill ring, and yank the ne)144 576 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 532.8 Q -(guments)-.1 E(digit\255ar)108 544.8 Q -(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .642 -(Add this digit to the ar)144 556.8 R .641 +F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 592.8 Q +(guments)-.1 E(digit\255ar)108 604.8 Q +(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .641 +(Add this digit to the ar)144 616.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 568.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1 -(uni)108 580.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .778 -(This is another w)144 592.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 +(rg)-3.141 G 3.142(ument. M\255\255).18 F .642(starts a ne)3.142 F(g-) +-.15 E(ati)144 628.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1 +(uni)108 640.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779 +(This is another w)144 652.8 R .779(ay to specify an ar)-.1 F 3.279 +(gument. If)-.18 F .779(this command is follo)3.279 F .778 (wed by one or more digits,)-.25 F 1.376 (optionally with a leading minus sign, those digits de\214ne the ar)144 -604.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144 -616.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni) +664.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144 +676.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 628.8 R .898 -(As a special case, if this command is immediately follo)5.899 F .898 +-.2 F(-)-.2 E .898(wise ignored.)144 688.8 R .898 +(As a special case, if this command is immediately follo)5.898 F .898 (wed by a character that is)-.25 F .243 -(neither a digit or minus sign, the ar)144 640.8 R .243 +(neither a digit or minus sign, the ar)144 700.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 652.8 Q .378 +-.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 712.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 664.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 681.6 Q(complete \(T)108 693.6 Q(AB\))-.9 E F0 1.137 -(Attempt to perform completion on the te)144 705.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 717.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 729.6 Q 2.025(xt be)-.15 F 2.025(gins with)-.15 F F1(@)4.525 E F0 -2.025(\), or command \(including aliases and functions\) in turn.)B -2.026(If none of these)7.026 F(GNU Bash 4.2)72 768 Q(2012 No)136.385 E --.15(ve)-.15 G(mber 24).15 E(44)185.545 E 0 Cg EP +.378(gument count)-.18 F(four)144 724.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 +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(44)193.45 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(produces a match, \214lename completion is attempted.)144 84 Q/F1 -10/Times-Bold@0 SF(possible\255completions \(M\255?\))108 96 Q F0 -(List the possible completions of the te)144 108 Q(xt before point.)-.15 -E F1(insert\255completions \(M\255*\))108 120 Q F0 .783 -(Insert all completions of the te)144 132 R .783(xt before point that w) +-.35 E/F1 10/Times-Bold@0 SF(Completing)87 84 Q(complete \(T)108 96 Q +(AB\))-.9 E F0 1.137(Attempt to perform completion on the te)144 108 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 120 Q .532(xt as a v) +-.15 F .532(ariable \(if the te)-.25 F .532(xt be)-.15 F .533(gins with) +-.15 F F1($)3.033 E F0 .533(\), username \(if the te)B .533(xt be)-.15 F +.533(gins with)-.15 F F1(~)3.033 E F0 .533(\), hostname \(if the)B(te) +144 132 Q .702(xt be)-.15 F .702(gins with)-.15 F F1(@)3.202 E F0 .701 +(\), or command \(including aliases and functions\) in turn.)B .701 +(If none of these pro-)5.701 F +(duces a match, \214lename completion is attempted.)144 144 Q F1 +(possible\255completions \(M\255?\))108 156 Q F0 +(List the possible completions of the te)144 168 Q(xt before point.)-.15 +E F1(insert\255completions \(M\255*\))108 180 Q F0 .783 +(Insert all completions of the te)144 192 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 144 Q F0(.)A F1 -(menu\255complete)108 156 Q F0 .928(Similar to)144 168 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 180 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 192 R .828 +.15 F F1(possible\255com-)3.283 E(pletions)144 204 Q F0(.)A F1 +(menu\255complete)108 216 Q F0 .929(Similar to)144 228 R F1(complete) +3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629 F .929 +(ord to be completed with a single match from the list of)-.1 F 1.193 +(possible completions.)144 240 R 1.193(Repeated e)6.193 F -.15(xe)-.15 G +1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194 +(steps through the list of possible)3.694 F .829 +(completions, inserting each match in turn.)144 252 R .828 (At the end of the list of completions, the bell is rung)5.828 F .727 -(\(subject to the setting of)144 204 R F1(bell\255style)3.227 E F0 3.227 +(\(subject to the setting of)144 264 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 216 R 1.73(ard in the list of matches; a ne)-.1 F +F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.228 E F0 1.73 +(positions forw)144 276 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 228 Q(This command is intended to be bound to)5 +E(through the list.)144 288 Q(This command is intended to be bound to)5 E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E(ault.) --.1 E F1(menu\255complete\255backward)108 240 Q F0 .82(Identical to)144 -252 R F1(menu\255complete)3.32 E F0 3.32(,b)C .82(ut mo)-3.52 F -.15(ve) +-.1 E F1(menu\255complete\255backward)108 300 Q F0 .82(Identical to)144 +312 R F1(menu\255complete)3.32 E F0 3.32(,b)C .82(ut mo)-3.52 F -.15(ve) -.15 G 3.32(sb).15 G(ackw)-3.32 E .82 (ard through the list of possible completions, as if)-.1 F F1 -(menu\255complete)144 264 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5(nan) +(menu\255complete)144 324 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5(nan) .15 G -2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve a)-.25 H -.18(rg).15 G 2.5(ument. This).18 F(command is unbound by def)2.5 E(ault.)-.1 E F1 -(delete\255char\255or\255list)108 276 Q F0 .234 -(Deletes the character under the cursor if not at the be)144 288 R .234 -(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete\255char)2.735 -E F0(\).)A .425(If at the end of the line, beha)144 300 R -.15(ve)-.2 G +(delete\255char\255or\255list)108 336 Q F0 .234 +(Deletes the character under the cursor if not at the be)144 348 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 360 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 -312 Q(ault.)-.1 E F1(complete\255\214lename \(M\255/\))108 324 Q F0 -(Attempt \214lename completion on the te)144 336 Q(xt before point.)-.15 -E F1(possible\255\214lename\255completions \(C\255x /\))108 348 Q F0 -(List the possible completions of the te)144 360 Q +372 Q(ault.)-.1 E F1(complete\255\214lename \(M\255/\))108 384 Q F0 +(Attempt \214lename completion on the te)144 396 Q(xt before point.)-.15 +E F1(possible\255\214lename\255completions \(C\255x /\))108 408 Q F0 +(List the possible completions of the te)144 420 Q (xt before point, treating it as a \214lename.)-.15 E F1 -(complete\255user)108 372 Q(name \(M\255~\))-.15 E F0 -(Attempt completion on the te)144 384 Q +(complete\255user)108 432 Q(name \(M\255~\))-.15 E F0 +(Attempt completion on the te)144 444 Q (xt before point, treating it as a username.)-.15 E F1(possible\255user) -108 396 Q(name\255completions \(C\255x ~\))-.15 E F0 -(List the possible completions of the te)144 408 Q +108 456 Q(name\255completions \(C\255x ~\))-.15 E F0 +(List the possible completions of the te)144 468 Q (xt before point, treating it as a username.)-.15 E F1(complete\255v)108 -420 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144 432 Q +480 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144 492 Q (xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1 -(possible\255v)108 444 Q(ariable\255completions \(C\255x $\))-.1 E F0 -(List the possible completions of the te)144 456 Q +(possible\255v)108 504 Q(ariable\255completions \(C\255x $\))-.1 E F0 +(List the possible completions of the te)144 516 Q (xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1 -(complete\255hostname \(M\255@\))108 468 Q F0 -(Attempt completion on the te)144 480 Q +(complete\255hostname \(M\255@\))108 528 Q F0 +(Attempt completion on the te)144 540 Q (xt before point, treating it as a hostname.)-.15 E F1 -(possible\255hostname\255completions \(C\255x @\))108 492 Q F0 -(List the possible completions of the te)144 504 Q +(possible\255hostname\255completions \(C\255x @\))108 552 Q F0 +(List the possible completions of the te)144 564 Q (xt before point, treating it as a hostname.)-.15 E F1 -(complete\255command \(M\255!\))108 516 Q F0 .58 -(Attempt completion on the te)144 528 R .581 -(xt before point, treating it as a command name.)-.15 F .581 -(Command comple-)5.581 F .715(tion attempts to match the te)144 540 R +(complete\255command \(M\255!\))108 576 Q F0 .581 +(Attempt completion on the te)144 588 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 600 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 552 Q -.15(xe)-.15 G +(\214nally e)144 612 Q -.15(xe)-.15 G (cutable \214lenames, in that order).15 E(.)-.55 E F1 -(possible\255command\255completions \(C\255x !\))108 564 Q F0 -(List the possible completions of the te)144 576 Q +(possible\255command\255completions \(C\255x !\))108 624 Q F0 +(List the possible completions of the te)144 636 Q (xt before point, treating it as a command name.)-.15 E F1 -(dynamic\255complete\255history \(M\255T)108 588 Q(AB\))-.9 E F0 .424 -(Attempt completion on the te)144 600 R .425 -(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .425 +(dynamic\255complete\255history \(M\255T)108 648 Q(AB\))-.9 E F0 .425 +(Attempt completion on the te)144 660 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 612 Q F1(dab)108 624 Q(br)-.1 E --.15(ev)-.18 G(\255expand).15 E F0 .611 -(Attempt menu completion on the te)144 636 R .611 -(xt before point, comparing the te)-.15 F .61(xt ag)-.15 F .61 +(for possible completion matches.)144 672 Q F1(dab)108 684 Q(br)-.1 E +-.15(ev)-.18 G(\255expand).15 E F0 .61 +(Attempt menu completion on the te)144 696 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 648 Q F1 -(complete\255into\255braces \(M\255{\))108 660 Q F0 .4(Perform \214lena\ -me completion and insert the list of possible completions enclosed with\ -in braces so)144 672 R(the list is a)144 684 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 700.8 S(yboard Macr).25 E(os)-.18 -E F0(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 -E(45)185.545 E 0 Cg EP +(tory list for possible completion matches.)144 708 Q(GNU Bash 4.2)72 +768 Q(2013 January 8)144.29 E(45)193.45 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/Times-Bold@0 SF(start\255kbd\255macr)108 84 Q 2.5(o\()-.18 -G(C\255x \()-2.5 E(\)).833 E F0(Be)144 96 Q(gin sa)-.15 E +-.35 E/F1 10/Times-Bold@0 SF(complete\255into\255braces \(M\255{\))108 +84 Q F0 .4(Perform \214lename completion and insert the list of possibl\ +e completions enclosed within braces so)144 96 R(the list is a)144 108 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 124.8 S(yboard Macr) +.25 E(os)-.18 E(start\255kbd\255macr)108 136.8 Q 2.5(o\()-.18 G +(C\255x \()-2.5 E(\)).833 E F0(Be)144 148.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 108 Q 2.5(o\()-.18 G -(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 120 Q +(board macro.).15 E F1(end\255kbd\255macr)108 160.8 Q 2.5(o\()-.18 G +(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 172.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 132 Q 2.5(o\()-.18 G(C\255x e\))-2.5 E -F0(Re-e)144 144 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1 G -.999(board macro de\214ned, by making the characters in the macro appea\ -r as if).15 F .662(typed at the k)144 156 R -.15(ey)-.1 G(board.).15 E -F1(print\255last\255kbd\255macr)5.663 E 3.163(o\()-.18 G(\))-3.163 E F0 -.663(Print the last k)3.163 F -.15(ey)-.1 G .663 +(call\255last\255kbd\255macr)108 184.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5 +E F0(Re-e)144 196.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 .663(typed at the k)144 208.8 R -.15(ey)-.1 G +(board.).15 E F1(print\255last\255kbd\255macr)5.663 E 3.163(o\()-.18 G +(\))-3.163 E F0 .663(Print the last k)3.163 F -.15(ey)-.1 G .663 (board macro de\214ned in a for).15 F(-)-.2 E(mat suitable for the)144 -168 Q/F2 10/Times-Italic@0 SF(inputr)2.5 E(c)-.37 E F0(\214le.)2.5 E F1 -(Miscellaneous)87 184.8 Q -.18(re)108 196.8 S<ad72>.18 E -(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777 -(Read in the contents of the)144 208.8 R F2(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 -220.8 Q F1(abort \(C\255g\))108 232.8 Q F0 3.248 -(Abort the current editing command and ring the terminal')144 244.8 R -5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1 -(bell\255style)144 256.8 Q F0(\).)A F1(do\255upper)108 268.8 Q +220.8 Q/F2 10/Times-Italic@0 SF(inputr)2.5 E(c)-.37 E F0(\214le.)2.5 E +F1(Miscellaneous)87 237.6 Q -.18(re)108 249.6 S<ad72>.18 E +(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.776 +(Read in the contents of the)144 261.6 R F2(inputr)4.276 E(c)-.37 E F0 +1.777(\214le, and incorporate an)4.276 F 4.277(yb)-.15 G 1.777 +(indings or v)-4.277 F 1.777(ariable assignments)-.25 F(found there.)144 +273.6 Q F1(abort \(C\255g\))108 285.6 Q F0 3.249 +(Abort the current editing command and ring the terminal')144 297.6 R +5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1 +(bell\255style)144 309.6 Q F0(\).)A F1(do\255upper)108 321.6 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 280.8 R F2(x) -4.256 E F0 1.755(is lo)4.256 F 1.755 +C(..\))-2.5 E F0 1.755(If the meta\214ed character)144 333.6 R F2(x) +4.255 E F0 1.755(is lo)4.255 F 1.756 (wercase, run the command that is bound to the corresponding)-.25 F -(uppercase character)144 292.8 Q(.)-.55 E F1(pr)108 304.8 Q -(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 316.8 Q +(uppercase character)144 345.6 Q(.)-.55 E F1(pr)108 357.6 Q +(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 369.6 Q (xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0 (is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A F1 -(undo \(C\255_, C\255x C\255u\))108 328.8 Q F0 -(Incremental undo, separately remembered for each line.)144 340.8 Q F1 --2.29 -.18(re v)108 352.8 T(ert\255line \(M\255r\)).08 E F0 1.095 -(Undo all changes made to this line.)144 364.8 R 1.095(This is lik)6.095 +(undo \(C\255_, C\255x C\255u\))108 381.6 Q F0 +(Incremental undo, separately remembered for each line.)144 393.6 Q F1 +-2.29 -.18(re v)108 405.6 T(ert\255line \(M\255r\)).08 E F0 1.095 +(Undo all changes made to this line.)144 417.6 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 376.8 Q F1 -(tilde\255expand \(M\255&\))108 388.8 Q F0(Perform tilde e)144 400.8 Q +(return the line to its initial state.)144 429.6 Q F1 +(tilde\255expand \(M\255&\))108 441.6 Q F0(Perform tilde e)144 453.6 Q (xpansion on the current w)-.15 E(ord.)-.1 E F1 -(set\255mark \(C\255@, M\255<space>\))108 412.8 Q F0 -(Set the mark to the point.)144 424.8 Q(If a numeric ar)5 E +(set\255mark \(C\255@, M\255<space>\))108 465.6 Q F0 +(Set the mark to the point.)144 477.6 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 436.8 Q F0(Sw) -144 448.8 Q .283(ap the point with the mark.)-.1 F .283 +(exchange\255point\255and\255mark \(C\255x C\255x\))108 489.6 Q F0(Sw) +144 501.6 Q .282(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 460.8 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 472.8 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144 -484.8 S .535(haracter is read and point is mo)-3.035 F -.15(ve)-.15 G +2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa) +144 513.6 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1 +(character\255sear)108 525.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144 +537.6 S .536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G 3.035(dt).15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535 -(xt occurrence of that character)-.15 F 5.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 496.8 Q(vious occurrences.)-.25 E F1(character\255sear)108 508.8 Q -(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 520.8 S 1.044 -(haracter is read and point is mo)-3.544 F -.15(ve)-.15 G 3.544(dt).15 G +(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05 +(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre) +144 549.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 561.6 Q +(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 573.6 S 1.043 +(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G 3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044 -(vious occurrence of that character)-.25 F 6.043(.A)-.55 G(ne)-2.5 E +(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G -(count searches for subsequent occurrences.)144 532.8 Q F1 -(skip\255csi\255sequence)108 544.8 Q F0 1.826 -(Read enough characters to consume a multi-k)144 556.8 R 2.126 -.15 -(ey s)-.1 H 1.827(equence such as those de\214ned for k).15 F -.15(ey) --.1 G 4.327(sl).15 G(ik)-4.327 E(e)-.1 E .791(Home and End.)144 568.8 R -.791(Such sequences be)5.791 F .791 +(count searches for subsequent occurrences.)144 585.6 Q F1 +(skip\255csi\255sequence)108 597.6 Q F0 1.827 +(Read enough characters to consume a multi-k)144 609.6 R 2.126 -.15 +(ey s)-.1 H 1.826(equence such as those de\214ned for k).15 F -.15(ey) +-.1 G 4.326(sl).15 G(ik)-4.326 E(e)-.1 E .79(Home and End.)144 621.6 R +.791(Such sequences be)5.79 F .791 (gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F -.331(If this sequence is bound to "\\[", k)144 580.8 R -.15(ey)-.1 G -2.831(sp).15 G .331(roducing such sequences will ha)-2.831 F .632 -.15 -(ve n)-.2 H 2.832(oe).15 G -.25(ff)-2.832 G .332(ect unless e).25 F +.332(If this sequence is bound to "\\[", k)144 633.6 R -.15(ey)-.1 G +2.831(sp).15 G .331(roducing such sequences will ha)-2.831 F .631 -.15 +(ve n)-.2 H 2.831(oe).15 G -.25(ff)-2.831 G .331(ect unless e).25 F (xplic-)-.15 E .026(itly bound to a readline command, instead of insert\ -ing stray characters into the editing b)144 592.8 R(uf)-.2 E(fer)-.25 E -5.026(.T)-.55 G(his)-5.026 E(is unbound by def)144 604.8 Q(ault, b)-.1 E +ing stray characters into the editing b)144 645.6 R(uf)-.2 E(fer)-.25 E +5.026(.T)-.55 G(his)-5.026 E(is unbound by def)144 657.6 Q(ault, b)-.1 E (ut usually bound to ESC\255[.)-.2 E F1(insert\255comment \(M\255#\))108 -616.8 Q F0 -.4(Wi)144 628.8 S .48(thout a numeric ar).4 F .48 +669.6 Q F0 -.4(Wi)144 681.6 S .481(thout a numeric ar).4 F .481 (gument, the v)-.18 F .481(alue of the readline)-.25 F F1 -(comment\255begin)2.981 E F0 -.25(va)2.981 G .481 -(riable is inserted at the).25 F(be)144 640.8 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 652.8 R .321 +(comment\255begin)2.981 E F0 -.25(va)2.981 G .48 +(riable is inserted at the).25 F(be)144 693.6 Q .097 +(ginning of the current line.)-.15 F .098(If a numeric ar)5.097 F .098 +(gument is supplied, this command acts as a toggle:)-.18 F(if)5.098 E +.322(the characters at the be)144 705.6 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 664.8 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 676.8 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 688.8 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 700.8 Q --.15(ve)-.15 G(d, the line will be e).15 E -.15(xe)-.15 G -(cuted by the shell.).15 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15 -(ve)-.15 G(mber 24).15 E(46)185.545 E 0 Cg EP +(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is) +-.25 F .831(inserted, otherwise the characters in)144 717.6 R F1 +(comment\255begin)3.331 E F0 .832(are deleted from the be)3.331 F .832 +(ginning of the line.)-.15 F 2.943 +(In either case, the line is accepted as if a ne)144 729.6 R 2.943 +(wline had been typed.)-.25 F 2.943(The def)7.943 F 2.943(ault v)-.1 F +2.942(alue of)-.25 F(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(46) +193.45 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(glob\255complete\255w)108 84 Q -(ord \(M\255g\))-.1 E F0 .791(The w)144 96 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 108 +-.35 E/F1 10/Times-Bold@0 SF(comment\255begin)144 84 Q F0 1.303 +(causes this command to mak)3.802 F 3.803(et)-.1 G 1.303 +(he current line a shell comment.)-3.803 F 1.303(If a numeric)6.303 F +(ar)144 96 Q(gument causes the comment character to be remo)-.18 E -.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 108 Q +(ord \(M\255g\))-.1 E F0 .792(The w)144 120 R .791 +(ord before point is treated as a pattern for pathname e)-.1 F .791 +(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 132 R(pattern is used to generate a list of matching \214lenames for possib\ -le completions.)2.5 E F1(glob\255expand\255w)108 120 Q(ord \(C\255x *\)) --.1 E F0 .176(The w)144 132 R .176 +le completions.)2.5 E F1(glob\255expand\255w)108 144 Q(ord \(C\255x *\)) +-.1 E F0 .175(The w)144 156 R .176 (ord before point is treated as a pattern for pathname e)-.1 F .176 (xpansion, and the list of matching \214le-)-.15 F .516 -(names is inserted, replacing the w)144 144 R 3.016(ord. If)-.1 F 3.016 +(names is inserted, replacing the w)144 168 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 156 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\)) -108 168 Q F0 .923(The list of e)144 180 R .923(xpansions that w)-.15 F +144 180 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\)) +108 192 Q F0 .923(The list of e)144 204 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 192 R 3.372(wn. If)-.15 F 3.372(an)3.372 G +.872(the line is redra)144 216 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 204 S(pansion.).15 E F1(dump\255functions)108 216 Q F0 .627 -(Print all of the functions and their k)144 228 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 240 Q +(ex)144 228 S(pansion.).15 E F1(dump\255functions)108 240 Q F0 .626 +(Print all of the functions and their k)144 252 R .926 -.15(ey b)-.1 H +.627(indings to the readline output stream.).15 F .627(If a numeric ar) +5.627 F(gu-)-.18 E +(ment is supplied, the output is formatted in such a w)144 264 Q (ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr) -2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 252 Q(ariables)-.1 E F0 -1.799(Print all of the settable readline v)144 264 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 276 R .304 +2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 276 Q(ariables)-.1 E F0 +1.8(Print all of the settable readline v)144 288 R 1.799 +(ariables and their v)-.25 F 1.799(alues to the readline output stream.) +-.25 F 1.799(If a)6.799 F .304(numeric ar)144 300 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(inputr)144 288 Q(c)-.37 E F0 -(\214le.)2.5 E F1(dump\255macr)108 300 Q(os)-.18 E F0 .592 -(Print all of the readline k)144 312 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 324 Q +(ay that it can be made part of an)-.1 F F2(inputr)144 312 Q(c)-.37 E F0 +(\214le.)2.5 E F1(dump\255macr)108 324 Q(os)-.18 E F0 .593 +(Print all of the readline k)144 336 R .893 -.15(ey s)-.1 H .592 +(equences bound to macros and the strings the).15 F 3.092(yo)-.15 G +3.092(utput. If)-3.092 F 3.092(an)3.092 G(umeric)-3.092 E(ar)144 348 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 336 Q F1(display\255shell\255v)108 348 Q -(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 360 Q +(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0 +(\214le.)144 360 Q F1(display\255shell\255v)108 372 Q +(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 384 Q (ersion information about the current instance of)-.15 E F1(bash)2.5 E -F0(.)A F1(Pr)87 376.8 Q(ogrammable Completion)-.18 E F0 .146(When w)108 -388.8 R .147(ord completion is attempted for an ar)-.1 F .147 +F0(.)A F1(Pr)87 400.8 Q(ogrammable Completion)-.18 E F0 .147(When w)108 +412.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 400.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) +F2(compspec)108 424.8 Q F0 3.828(\)h)C 1.329 +(as been de\214ned using the)-3.828 F F1(complete)3.829 E F0 -.2(bu) 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 412.8 Q(acilities are in)-.1 E -.2 -(vo)-.4 G -.1(ke).2 G(d.).1 E .497 -(First, the command name is identi\214ed.)108 429.6 R .497 -(If the command w)5.497 F .498 -(ord is the empty string \(completion attempted at)-.1 F .234(the be)108 -441.6 R .233(ginning of an empty line\), an)-.15 F 2.733(yc)-.15 G .233 +F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.329(w\), the) +-.25 F(programmable completion f)108 436.8 Q(acilities are in)-.1 E -.2 +(vo)-.4 G -.1(ke).2 G(d.).1 E .498 +(First, the command name is identi\214ed.)108 453.6 R .498 +(If the command w)5.498 F .497 +(ord is the empty string \(completion attempted at)-.1 F .233(the be)108 +465.6 R .233(ginning of an empty line\), an)-.15 F 2.733(yc)-.15 G .233 (ompspec de\214ned with the)-2.733 F F1<ad45>2.733 E F0 .233(option to) -2.733 F F1(complete)2.733 E F0 .233(is used.)2.733 F .233(If a comp-) -5.233 F .481(spec has been de\214ned for that command, the compspec is \ -used to generate the list of possible completions)108 453.6 R .823 -(for the w)108 465.6 R 3.323(ord. If)-.1 F .823(the command w)3.323 F -.822(ord is a full pathname, a compspec for the full pathname is search\ -ed for)-.1 F 2.866(\214rst. If)108 477.6 R .367(no compspec is found fo\ +2.733 F F1(complete)2.733 E F0 .233(is used.)2.733 F .234(If a comp-) +5.234 F .481(spec has been de\214ned for that command, the compspec is \ +used to generate the list of possible completions)108 477.6 R .822 +(for the w)108 489.6 R 3.322(ord. If)-.1 F .822(the command w)3.322 F +.823(ord is a full pathname, a compspec for the full pathname is search\ +ed for)-.1 F 2.867(\214rst. If)108 501.6 R .366(no compspec is found fo\ r the full pathname, an attempt is made to \214nd a compspec for the po\ -rtion)2.866 F(follo)108 489.6 Q .299(wing the \214nal slash.)-.25 F .298 -(If those searches do not result in a compspec, an)5.299 F 2.798(yc)-.15 -G .298(ompspec de\214ned with the)-2.798 F F1<ad44>2.798 E F0(option to) -108 501.6 Q F1(complete)2.5 E F0(is used as the def)2.5 E(ault.)-.1 E +rtion)2.867 F(follo)108 513.6 Q .298(wing the \214nal slash.)-.25 F .298 +(If those searches do not result in a compspec, an)5.298 F 2.799(yc)-.15 +G .299(ompspec de\214ned with the)-2.799 F F1<ad44>2.799 E F0(option to) +108 525.6 Q F1(complete)2.5 E F0(is used as the def)2.5 E(ault.)-.1 E .817(Once a compspec has been found, it is used to generate the list of\ - matching w)108 518.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 530.4 Q(ault)-.1 E F1(bash) + matching w)108 542.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 554.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 .464 -(First, the actions speci\214ed by the compspec are used.)108 547.2 R -.463(Only matches which are pre\214x)5.464 F .463(ed by the w)-.15 F -.463(ord being)-.1 F .595(completed are returned.)108 559.2 R .595 -(When the)5.595 F F1<ad66>3.095 E F0(or)3.095 E F1<ad64>3.095 E F0 .596 +E F1(Completing)2.5 E F0(is performed.)2.5 E .463 +(First, the actions speci\214ed by the compspec are used.)108 571.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 583.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 571.2 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0 -(is used to \214lter the matches.)2.25 E(An)108 588 Q 4.084(yc)-.15 G +(shell v)108 595.2 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0 +(is used to \214lter the matches.)2.25 E(An)108 612 Q 4.084(yc)-.15 G 1.584(ompletions speci\214ed by a pathname e)-4.084 F 1.584 (xpansion pattern to the)-.15 F F1<ad47>4.084 E F0 1.584 -(option are generated ne)4.084 F 4.084(xt. The)-.15 F -.1(wo)108 600 S -.554(rds generated by the pattern need not match the w).1 F .555 -(ord being completed.)-.1 F(The)5.555 E F3(GLOBIGNORE)3.055 E F0 .555 -(shell v)2.805 F(ari-)-.25 E -(able is not used to \214lter the matches, b)108 612 Q(ut the)-.2 E F3 -(FIGNORE)2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 628.8 Q -.321(xt, the string speci\214ed as the ar)-.15 F .321(gument to the)-.18 -F F1<ad57>2.821 E F0 .32(option is considered.)2.821 F .32 -(The string is \214rst split using the)5.32 F .412(characters in the)108 -640.8 R F3(IFS)2.912 E F0 .412(special v)2.662 F .412 +(option are generated ne)4.084 F 4.084(xt. The)-.15 F -.1(wo)108 624 S +.555(rds generated by the pattern need not match the w).1 F .554 +(ord being completed.)-.1 F(The)5.554 E F3(GLOBIGNORE)3.054 E F0 .554 +(shell v)2.804 F(ari-)-.25 E +(able is not used to \214lter the matches, b)108 636 Q(ut the)-.2 E F3 +(FIGNORE)2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 652.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 664.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 -.413(Each w)5.412 F .413(ord is then e)-.1 F(xpanded)-.15 E .092 -(using brace e)108 652.8 R .092(xpansion, tilde e)-.15 F .092 -(xpansion, parameter and v)-.15 F .092(ariable e)-.25 F .091 -(xpansion, command substitution, and arith-)-.15 F 1.396(metic e)108 -664.8 R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H +.412(Each w)5.412 F .412(ord is then e)-.1 F(xpanded)-.15 E .091 +(using brace e)108 676.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 +688.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 -676.8 Q .51 -.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)2.71 G .21 -(rd Splitting).75 F F0 5.21(.T)C .209(he results of the e)-5.21 F .209 -(xpansion are pre\214x-matched ag)-.15 F .209(ainst the w)-.05 F .209 -(ord being com-)-.1 F(pleted, and the matching w)108 688.8 Q -(ords become the possible completions.)-.1 E 1.237 -(After these matches ha)108 705.6 R 1.537 -.15(ve b)-.2 H 1.237 -(een generated, an).15 F 3.737(ys)-.15 G 1.238 -(hell function or command speci\214ed with the)-3.737 F F1<ad46>3.738 E -F0(and)3.738 E F1<ad43>3.738 E F0 3.376(options is in)108 717.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.875 E F4(,)A F3(COMP_POINT)5.625 E F4(,)A F3 -(COMP_KEY)108 729.6 Q F4(,)A F0(and)2.407 E F3(COMP_TYPE)2.657 E F0 -.25 -(va)2.407 G .157(riables are assigned v).25 F .157 -(alues as described abo)-.25 F .457 -.15(ve u)-.15 H(nder).15 E F1 .158 -(Shell V)2.658 F(ariables)-.92 E F0 5.158(.I)C(f)-5.158 E(GNU Bash 4.2) -72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(47)185.545 E 0 -Cg EP +700.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 712.8 Q +(ords become the possible completions.)-.1 E 1.238 +(After these matches ha)108 729.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(GNU Bash 4.2)72 768 Q(2013 January 8) +144.29 E(47)193.45 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 3.486(as)108 84 S .986(hell function is being in)-3.486 F -.2(vo) --.4 G -.1(ke).2 G .986(d, the).1 F/F1 9/Times-Bold@0 SF(COMP_W)3.486 E -(ORDS)-.09 E F0(and)3.236 E F1(COMP_CW)3.486 E(ORD)-.09 E F0 -.25(va) -3.236 G .986(riables are also set.).25 F(When)5.985 E .346 -(the function or command is in)108 96 R -.2(vo)-.4 G -.1(ke).2 G .346 -(d, the \214rst ar).1 F .346(gument \()-.18 F/F2 10/Times-Bold@0 SF($1)A -F0 2.847(\)i)C 2.847(st)-2.847 G .347(he name of the command whose ar) --2.847 F(guments)-.18 E .264(are being completed, the second ar)108 108 -R .264(gument \()-.18 F F2($2)A F0 2.764(\)i)C 2.764(st)-2.764 G .264 -(he w)-2.764 F .263(ord being completed, and the third ar)-.1 F .263 -(gument \()-.18 F F2($3)A F0 2.763(\)i)C(s)-2.763 E .628(the w)108 120 R -.628(ord preceding the w)-.1 F .629 -(ord being completed on the current command line.)-.1 F .629 -(No \214ltering of the generated)5.629 F .715(completions ag)108 132 R -.715(ainst the w)-.05 F .714(ord being completed is performed; the func\ +-.35 E 3.375(options is in)108 84 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/F1 9/Times-Bold@0 SF(COMP_LINE)5.876 E/F2 +9/Times-Roman@0 SF(,)A F1(COMP_POINT)5.626 E F2(,)A F1(COMP_KEY)108 96 Q +F2(,)A F0(and)2.408 E F1(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/F3 10/Times-Bold@0 SF .157(Shell V)2.657 F +(ariables)-.92 E F0 5.157(.I)C(f)-5.157 E 3.485(as)108 108 S .986 +(hell function is being in)-3.485 F -.2(vo)-.4 G -.1(ke).2 G .986 +(d, the).1 F F1(COMP_W)3.486 E(ORDS)-.09 E F0(and)3.236 E F1(COMP_CW) +3.486 E(ORD)-.09 E F0 -.25(va)3.236 G .986(riables are also set.).25 F +(When)5.986 E .347(the function or command is in)108 120 R -.2(vo)-.4 G +-.1(ke).2 G .347(d, the \214rst ar).1 F .346(gument \()-.18 F F3($1)A F0 +2.846(\)i)C 2.846(st)-2.846 G .346(he name of the command whose ar) +-2.846 F(guments)-.18 E .263(are being completed, the second ar)108 132 +R .263(gument \()-.18 F F3($2)A F0 2.763(\)i)C 2.763(st)-2.763 G .264 +(he w)-2.763 F .264(ord being completed, and the third ar)-.1 F .264 +(gument \()-.18 F F3($3)A F0 2.764(\)i)C(s)-2.764 E .629(the w)108 144 R +.629(ord preceding the w)-.1 F .629 +(ord being completed on the current command line.)-.1 F .628 +(No \214ltering of the generated)5.629 F .714(completions ag)108 156 R +.714(ainst the w)-.05 F .714(ord being completed is performed; the func\ tion or command has complete free-)-.1 F(dom in generating the matches.) -108 144 Q(An)108 160.8 Q 2.937(yf)-.15 G .437(unction speci\214ed with) --2.937 F F2<ad46>2.937 E F0 .437(is in)2.937 F -.2(vo)-.4 G -.1(ke).2 G +108 168 Q(An)108 184.8 Q 2.938(yf)-.15 G .437(unction speci\214ed with) +-2.938 F F3<ad46>2.937 E F0 .437(is in)2.937 F -.2(vo)-.4 G -.1(ke).2 G 2.937<648c>.1 G 2.937(rst. The)-2.937 F .437(function may use an)2.937 F -2.937(yo)-.15 G 2.937(ft)-2.937 G .437(he shell f)-2.937 F .438 -(acilities, including)-.1 F(the)108 172.8 Q F2(compgen)2.957 E F0 -.2 -(bu)2.957 G .457(iltin described belo).2 F 1.756 -.65(w, t)-.25 H 2.956 -(og).65 G .456(enerate the matches.)-2.956 F .456 +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 196.8 Q F3(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 F1(COMPREPL)108 -184.8 Q(Y)-.828 E F0(array v)2.25 E(ariable, one per array element.)-.25 -E(Ne)108 201.6 Q .08(xt, an)-.15 F 2.58(yc)-.15 G .08 -(ommand speci\214ed with the)-2.58 F F2<ad43>2.58 E F0 .081 -(option is in)2.581 F -.2(vo)-.4 G -.1(ke).2 G 2.581(di).1 G 2.581(na) --2.581 G 2.581(ne)-2.581 G -.4(nv)-2.581 G .081(ironment equi).4 F -.25 -(va)-.25 G .081(lent to command sub-).25 F 2.859(stitution. It)108 213.6 -R .359(should print a list of completions, one per line, to the standar\ -d output.)2.859 F .358(Backslash may be used)5.359 F(to escape a ne)108 -225.6 Q(wline, if necessary)-.25 E(.)-.65 E .376 -(After all of the possible completions are generated, an)108 242.4 R -2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F2<ad58>2.877 -E F0 .377(option is applied to the)2.877 F 3.182(list. The)108 254.4 R -.682(\214lter is a pattern as used for pathname e)3.182 F .681 -(xpansion; a)-.15 F F2(&)3.181 E F0 .681 -(in the pattern is replaced with the te)3.181 F .681(xt of)-.15 F .522 -(the w)108 266.4 R .522(ord being completed.)-.1 F 3.022(Al)5.522 G -(iteral)-3.022 E F2(&)3.022 E F0 .523 +208.8 Q(Y)-.828 E F0(array v)2.25 E(ariable, one per array element.)-.25 +E(Ne)108 225.6 Q .081(xt, an)-.15 F 2.581(yc)-.15 G .081 +(ommand speci\214ed with the)-2.581 F F3<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 237.6 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 +249.6 Q(wline, if necessary)-.25 E(.)-.65 E .377 +(After all of the possible completions are generated, an)108 266.4 R +2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F3<ad58>2.876 +E F0 .376(option is applied to the)2.876 F 3.181(list. The)108 278.4 R +.681(\214lter is a pattern as used for pathname e)3.181 F .681 +(xpansion; a)-.15 F F3(&)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 290.4 R .523(ord being completed.)-.1 F 3.023(Al)5.523 G +(iteral)-3.023 E F3(&)3.023 E F0 .522 (may be escaped with a backslash; the backslash is remo)3.022 F -.15(ve) --.15 G 3.023(db).15 G(efore)-3.023 E .85(attempting a match.)108 278.4 R -(An)5.85 E 3.35(yc)-.15 G .849 -(ompletion that matches the pattern will be remo)-3.35 F -.15(ve)-.15 G -3.349(df).15 G .849(rom the list.)-3.349 F 3.349(Al)5.849 G(eading) --3.349 E F2(!)3.349 E F0(ne)108 290.4 Q -.05(ga)-.15 G +-.15 G 3.022(db).15 G(efore)-3.022 E .849(attempting a match.)108 302.4 +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 F3 +(!)3.35 E F0(ne)108 314.4 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 307.2 Q 3.086(,a)-.65 G .886 -.15(ny p)-3.086 H -.586(re\214x and suf).15 F .587(\214x speci\214ed with the)-.25 F F2 -<ad50>3.087 E F0(and)3.087 E F2<ad53>3.087 E F0 .587 +(d.).15 E(Finally)108 331.2 Q 3.087(,a)-.65 G .887 -.15(ny p)-3.087 H +.587(re\214x and suf).15 F .587(\214x speci\214ed with the)-.25 F F3 +<ad50>3.087 E F0(and)3.087 E F3<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 319.2 Q .247(If the pre)108 336 R .247 +possible completions.)108 343.2 Q .246(If the pre)108 360 R .247 (viously-applied actions do not generate an)-.25 F 2.747(ym)-.15 G .247 -(atches, and the)-2.747 F F2 .247(\255o dir)2.747 F(names)-.15 E F0 .247 -(option w)2.747 F .246(as supplied to)-.1 F F2(complete)108 348 Q F0 +(atches, and the)-2.747 F F3 .247(\255o dir)2.747 F(names)-.15 E F0 .247 +(option w)2.747 F .247(as supplied to)-.1 F F3(complete)108 372 Q F0 (when the compspec w)2.5 E -(as de\214ned, directory name completion is attempted.)-.1 E .461 -(If the)108 364.8 R F2 .462(\255o plusdirs)2.961 F F0 .462(option w) -2.962 F .462(as supplied to)-.1 F F2(complete)2.962 E F0 .462 +(as de\214ned, directory name completion is attempted.)-.1 E .462 +(If the)108 388.8 R F3 .462(\255o plusdirs)2.962 F F0 .462(option w) +2.962 F .462(as supplied to)-.1 F F3(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 376.8 Q 2.5(ym)-.15 G -(atches are added to the results of the other actions.)-2.5 E .56 -(By def)108 393.6 R .56(ault, if a compspec is found, whate)-.1 F -.15 -(ve)-.25 G 3.06(ri).15 G 3.06(tg)-3.06 G .559 -(enerates is returned to the completion code as the full set)-3.06 F -.631(of possible completions.)108 405.6 R .631(The def)5.631 F(ault)-.1 -E F2(bash)3.131 E F0 .631 -(completions are not attempted, and the readline def)3.131 F .632 -(ault of \214le-)-.1 F .559(name completion is disabled.)108 417.6 R -.559(If the)5.559 F F2 .559(\255o bashdefault)3.059 F F0 .559(option w) -3.059 F .559(as supplied to)-.1 F F2(complete)3.058 E F0 .558 -(when the compspec)3.058 F -.1(wa)108 429.6 S 3.171(sd).1 G .671 -(e\214ned, the)-3.171 F F2(bash)3.171 E F0(def)3.171 E .671 +F(pletion is attempted and an)108 400.8 Q 2.5(ym)-.15 G +(atches are added to the results of the other actions.)-2.5 E .559 +(By def)108 417.6 R .559(ault, if a compspec is found, whate)-.1 F -.15 +(ve)-.25 G 3.059(ri).15 G 3.059(tg)-3.059 G .56 +(enerates is returned to the completion code as the full set)-3.059 F +.632(of possible completions.)108 429.6 R .632(The def)5.632 F(ault)-.1 +E F3(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 441.6 R +.558(If the)5.558 F F3 .559(\255o bashdefault)3.059 F F0 .559(option w) +3.059 F .559(as supplied to)-.1 F F3(complete)3.059 E F0 .559 +(when the compspec)3.059 F -.1(wa)108 453.6 S 3.172(sd).1 G .672 +(e\214ned, the)-3.172 F F3(bash)3.172 E F0(def)3.172 E .671 (ault completions are attempted if the compspec generates no matches.) --.1 F .672(If the)5.672 F F2<ad6f>3.172 E(default)108 441.6 Q F0 1.207 -(option w)3.707 F 1.207(as supplied to)-.1 F F2(complete)3.707 E F0 +-.1 F .671(If the)5.671 F F3<ad6f>3.171 E(default)108 465.6 Q F0 1.207 +(option w)3.706 F 1.207(as supplied to)-.1 F F3(complete)3.707 E F0 1.207(when the compspec w)3.707 F 1.207(as de\214ned, readline')-.1 F -3.707(sd)-.55 G(ef)-3.707 E 1.206(ault completion)-.1 F +3.707(sd)-.55 G(ef)-3.707 E 1.207(ault completion)-.1 F (will be performed if the compspec \(and, if attempted, the def)108 -453.6 Q(ault)-.1 E F2(bash)2.5 E F0(completions\) generate no matches.) +477.6 Q(ault)-.1 E F3(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 470.4 R .633(tions force\ +desired, the programmable completion func-)108 494.4 R .632(tions force\ readline to append a slash to completed names which are symbolic links\ - to directories, subject)108 482.4 R 2.761(to the v)108 494.4 R 2.761 -(alue of the)-.25 F F2(mark\255dir)5.261 E(ectories)-.18 E F0 2.761 -(readline v)5.261 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.762 -(rdless of the setting of the).05 F F2(mark-sym-)5.262 E(link)108 506.4 + to directories, subject)108 506.4 R 2.762(to the v)108 518.4 R 2.762 +(alue of the)-.25 F F3(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 F3(mark-sym-)5.261 E(link)108 530.4 Q(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E -.191(There is some support for dynamically modifying completions.)108 -523.2 R .19(This is most useful when used in combina-)5.191 F 1.33 -(tion with a def)108 535.2 R 1.33(ault completion speci\214ed with)-.1 F -F2 1.33(complete -D)3.83 F F0 6.33(.I)C(t')-6.33 E 3.83(sp)-.55 G 1.33 +.19(There is some support for dynamically modifying completions.)108 +547.2 R .191(This is most useful when used in combina-)5.191 F 1.33 +(tion with a def)108 559.2 R 1.33(ault completion speci\214ed with)-.1 F +F3 1.33(complete -D)3.83 F F0 6.33(.I)C(t')-6.33 E 3.83(sp)-.55 G 1.33 (ossible for shell functions e)-3.83 F -.15(xe)-.15 G 1.33(cuted as).15 F .93(completion handlers to indicate that completion should be retried\ - by returning an e)108 547.2 R .93(xit status of 124.)-.15 F .93(If a) + by returning an e)108 571.2 R .93(xit status of 124.)-.15 F .93(If a) 5.93 F .1(shell function returns 124, and changes the compspec associat\ -ed with the command on which completion is)108 559.2 R .666 -(being attempted \(supplied as the \214rst ar)108 571.2 R .665 -(gument when the function is e)-.18 F -.15(xe)-.15 G .665 -(cuted\), programmable completion).15 F .083(restarts from the be)108 -583.2 R .084(ginning, with an attempt to \214nd a ne)-.15 F 2.584(wc) --.25 G .084(ompspec for that command.)-2.584 F .084(This allo)5.084 F -.084(ws a set of)-.25 F(completions to be b)108 595.2 Q(uilt dynamicall\ +ed with the command on which completion is)108 583.2 R .665 +(being attempted \(supplied as the \214rst ar)108 595.2 R .666 +(gument when the function is e)-.18 F -.15(xe)-.15 G .666 +(cuted\), programmable completion).15 F .084(restarts from the be)108 +607.2 R .084(ginning, with an attempt to \214nd a ne)-.15 F 2.584(wc) +-.25 G .084(ompspec for that command.)-2.584 F .083(This allo)5.083 F +.083(ws a set of)-.25 F(completions to be b)108 619.2 Q(uilt dynamicall\ y as completion is attempted, rather than being loaded all at once.)-.2 -E -.15(Fo)108 612 S 2.637(ri).15 G .137 -(nstance, assuming that there is a library of compspecs, each k)-2.637 F +E -.15(Fo)108 636 S 2.636(ri).15 G .137 +(nstance, assuming that there is a library of compspecs, each k)-2.636 F .137(ept in a \214le corresponding to the name of)-.1 F -(the command, the follo)108 624 Q(wing def)-.25 E +(the command, the follo)108 648 Q(wing def)-.25 E (ault completion function w)-.1 E(ould load completions dynamically:)-.1 -E/F3 10/Courier@0 SF(_completion_loader\(\))108 640.8 Q({)108 652.8 Q 6 -(.")144 664.8 S +E/F4 10/Courier@0 SF(_completion_loader\(\))108 664.8 Q({)108 676.8 Q 6 +(.")144 688.8 S (/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124)-6 E(})108 -676.8 Q(complete -D -F _completion_loader)108 688.8 Q F0(GNU Bash 4.2)72 -768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(48)185.545 E 0 Cg -EP +700.8 Q(complete -D -F _completion_loader)108 712.8 Q F0(GNU Bash 4.2)72 +768 Q(2013 January 8)144.29 E(48)193.45 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/F1 10.95/Times-Bold@0 SF(HIST)72 84 Q(OR)-.197 E(Y)-.383 E F0 -.371(When the)108 96 R/F2 10/Times-Bold@0 SF .371(\255o history)2.871 F -F0 .371(option to the)2.871 F F2(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 .305 -(the list of commands pre)108 108 R .305(viously typed.)-.25 F .305 -(The v)5.305 F .304(alue of the)-.25 F/F4 9/Times-Bold@0 SF(HISTSIZE) -2.804 E F0 -.25(va)2.554 G .304(riable is used as the number of com-).25 -F .429(mands to sa)108 120 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 -(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 +.372(When the)108 96 R/F2 10/Times-Bold@0 SF .372(\255o history)2.872 F +F0 .372(option to the)2.872 F F2(set)2.872 E F0 -.2(bu)2.872 G .372 +(iltin is enabled, the shell pro).2 F .371(vides access to the)-.15 F/F3 +10/Times-Italic@0 SF .371(command history)2.871 F F0(,)A .304 +(the list of commands pre)108 108 R .304(viously typed.)-.25 F .304 +(The v)5.304 F .304(alue of the)-.25 F/F4 9/Times-Bold@0 SF(HISTSIZE) +2.804 E F0 -.25(va)2.554 G .305(riable is used as the number of com-).25 +F .43(mands to sa)108 120 R .73 -.15(ve i)-.2 H 2.93(nah).15 G .43 +(istory list.)-2.93 F .43(The te)5.43 F .429(xt of the last)-.15 F F4 +(HISTSIZE)2.929 E F0 .429(commands \(def)2.679 F .429(ault 500\) is sa) +-.1 F -.15(ve)-.2 G 2.929(d. The).15 F(shell)2.929 E .287 (stores each command in the history list prior to parameter and v)108 132 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 144 S -4.065(ta).2 G 1.565(fter history e)-4.065 F 1.565 +4.066(ta).2 G 1.565(fter history e)-4.066 F 1.565 (xpansion is performed, subject to the v)-.15 F 1.565 (alues of the shell v)-.25 F(ariables)-.25 E F4(HISTIGNORE)4.065 E F0 -(and)3.816 E F4(HISTCONTR)108 156 Q(OL)-.27 E/F5 9/Times-Roman@0 SF(.)A +(and)3.815 E F4(HISTCONTR)108 156 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 172.8 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 +108 172.8 R(ariable)-.25 E F4(HISTFILE)2.583 E F0(\(def)2.333 E(ault)-.1 +E F3(~/.bash_history)2.583 E F0(\).)A .315(The \214le named by the v)108 184.8 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 .659 -(lines speci\214ed by the v)108 196.8 R .659(alue of)-.25 F F4 +.315(ontain no more than the number of)-2.815 F .658 +(lines speci\214ed by the v)108 196.8 R .658(alue of)-.25 F F4 (HISTFILESIZE)3.158 E F5(.)A F0(If)5.158 E F2(HISTFILESIZE)3.158 E F0 -.658(is unset, or set to null, a non-numeric)3.158 F -.25(va)108 208.8 S +.659(is unset, or set to null, a non-numeric)3.158 F -.25(va)108 208.8 S .142(lue, or a numeric v).25 F .142 (alue less than zero, the history \214le is not truncated.)-.25 F .142 -(When the history \214le is read, lines)5.142 F(be)108 220.8 Q 1.605 +(When the history \214le is read, lines)5.142 F(be)108 220.8 Q 1.604 (ginning with the history comment character follo)-.15 F 1.604 (wed immediately by a digit are interpreted as time-)-.25 F .098 (stamps for the preceding history line.)108 232.8 R .098 (These timestamps are optionally displayed depending on the v)5.098 F -.098(alue of)-.25 F(the)108 244.8 Q F4(HISTTIMEFORMA)3.559 E(T)-.855 E +.098(alue of)-.25 F(the)108 244.8 Q F4(HISTTIMEFORMA)3.558 E(T)-.855 E F0 -.25(va)3.309 G 3.559(riable. When).25 F 3.559(as)3.559 G 1.059 (hell with history enabled e)-3.559 F 1.059(xits, the last)-.15 F F4 -($HISTSIZE)3.559 E F0 1.058(lines are)3.309 F .158 -(copied from the history list to)108 256.8 R F4($HISTFILE)2.658 E F5(.)A -F0 .158(If the)4.658 F F2(histappend)2.658 E F0 .159 -(shell option is enabled \(see the description of)2.659 F F2(shopt)108 -268.8 Q F0(under)2.582 E F4 .082(SHELL B)2.582 F(UIL)-.09 E .082 +($HISTSIZE)3.559 E F0 1.059(lines are)3.309 F .159 +(copied from the history list to)108 256.8 R F4($HISTFILE)2.659 E F5(.)A +F0 .159(If the)4.659 F F2(histappend)2.658 E F0 .158 +(shell option is enabled \(see the description of)2.658 F F2(shopt)108 +268.8 Q F0(under)2.581 E F4 .081(SHELL B)2.581 F(UIL)-.09 E .081 (TIN COMMANDS)-.828 F F0(belo)2.332 E .082 (w\), the lines are appended to the history \214le, otherwise the)-.25 F -.196(history \214le is o)108 280.8 R -.15(ve)-.15 G 2.696(rwritten. If) -.15 F F4(HISTFILE)2.696 E F0 .197(is unset, or if the history \214le is\ - unwritable, the history is not sa)2.446 F -.15(ve)-.2 G(d.).15 E .584 -(If the)108 292.8 R F4(HISTTIMEFORMA)3.084 E(T)-.855 E F0 -.25(va)2.834 +.197(history \214le is o)108 280.8 R -.15(ve)-.15 G 2.697(rwritten. If) +.15 F F4(HISTFILE)2.697 E F0 .196(is unset, or if the history \214le is\ + unwritable, the history is not sa)2.447 F -.15(ve)-.2 G(d.).15 E .583 +(If the)108 292.8 R F4(HISTTIMEFORMA)3.083 E(T)-.855 E F0 -.25(va)2.834 G .584 (riable is set, time stamps are written to the history \214le, mark).25 -F .583(ed with the his-)-.1 F 1.147(tory comment character)108 304.8 R -3.647(,s)-.4 G 3.647(ot)-3.647 G(he)-3.647 E 3.647(ym)-.15 G 1.147 -(ay be preserv)-3.647 F 1.147(ed across shell sessions.)-.15 F 1.148 -(This uses the history comment)6.148 F 1.377 +F .584(ed with the his-)-.1 F 1.148(tory comment character)108 304.8 R +3.648(,s)-.4 G 3.648(ot)-3.648 G(he)-3.648 E 3.648(ym)-.15 G 1.147 +(ay be preserv)-3.648 F 1.147(ed across shell sessions.)-.15 F 1.147 +(This uses the history comment)6.147 F 1.376 (character to distinguish timestamps from other history lines.)108 316.8 -R 1.377(After sa)6.377 F 1.377(ving the history)-.2 F 3.876(,t)-.65 G -1.376(he history \214le is)-3.876 F .756 +R 1.377(After sa)6.377 F 1.377(ving the history)-.2 F 3.877(,t)-.65 G +1.377(he history \214le is)-3.877 F .757 (truncated to contain no more than)108 328.8 R F4(HISTFILESIZE)3.257 E F0 3.257(lines. If)3.007 F F4(HISTFILESIZE)3.257 E F0 .757 (is unset, or set to null, a non-)3.007 F(numeric v)108 340.8 Q (alue, or a numeric v)-.25 E -(alue less than zero, the history \214le is not truncated.)-.25 E 1.294 -(The b)108 357.6 R 1.294(uiltin command)-.2 F F2(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 369.6 S .673(cute a portion of the history list.).15 F(The) +(alue less than zero, the history \214le is not truncated.)-.25 E 1.293 +(The b)108 357.6 R 1.293(uiltin command)-.2 F F2(fc)3.793 E F0(\(see) +3.793 E F4 1.293(SHELL B)3.793 F(UIL)-.09 E 1.293(TIN COMMANDS)-.828 F +F0(belo)3.543 E 1.294(w\) may be used to list or edit and re-)-.25 F +-.15(exe)108 369.6 S .674(cute a portion of the history list.).15 F(The) 5.673 E F2(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 +(iltin may be used to display or modify the history list).2 F .279 (and manipulate the history \214le.)108 381.6 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 393.6 Q -(vide access to the history list.)-.15 E 1.485(The shell allo)108 410.4 -R 1.485(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486 +-.2 G .28(ilable in each).25 F(editing mode that pro)108 393.6 Q +(vide access to the history list.)-.15 E 1.486(The shell allo)108 410.4 +R 1.486(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486 (hich commands are sa)-3.986 F -.15(ve)-.2 G 3.986(do).15 G 3.986(nt) --3.986 G 1.486(he history list.)-3.986 F(The)6.486 E F4(HISTCONTR)3.986 -E(OL)-.27 E F0(and)3.736 E F4(HISTIGNORE)108 422.4 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 F2 +-3.986 G 1.486(he history list.)-3.986 F(The)6.485 E F4(HISTCONTR)3.985 +E(OL)-.27 E F0(and)3.735 E F4(HISTIGNORE)108 422.4 Q F0 -.25(va)2.707 G +.457(riables may be set to cause the shell to sa).25 F .758 -.15(ve o) +-.2 H .458(nly a subset of the commands entered.).15 F(The)5.458 E F2 (cmdhist)108 434.4 Q F0 .75 (shell option, if enabled, causes the shell to attempt to sa)3.25 F 1.05 -.15(ve e)-.2 H .75(ach line of a multi-line command in).15 F 1.077 (the same history entry)108 446.4 R 3.577(,a)-.65 G 1.077 (dding semicolons where necessary to preserv)-3.577 F 3.577(es)-.15 G -1.077(yntactic correctness.)-3.577 F(The)6.077 E F2(lithist)3.576 E F0 -.373(shell option causes the shell to sa)108 458.4 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 470.4 R F2(shopt)2.819 E F0 -.2(bu)2.819 G .318 +1.077(yntactic correctness.)-3.577 F(The)6.077 E F2(lithist)3.577 E F0 +.374(shell option causes the shell to sa)108 458.4 R .674 -.15(ve t)-.2 +H .374(he command with embedded ne).15 F .373 +(wlines instead of semicolons.)-.25 F .373(See the)5.373 F .318 +(description of the)108 470.4 R F2(shopt)2.818 E F0 -.2(bu)2.818 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 +(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .319 (for information on setting and)2.568 F(unsetting shell options.)108 482.4 Q F1(HIST)72 499.2 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 511.2 R .611 -(xpansion feature that is similar to the history e)-.15 F .611 -(xpansion in)-.15 F F2(csh.)3.111 E F0 .611(This section)5.611 F .871 +(ANSION)-.81 E F0 .611(The shell supports a history e)108 511.2 R .611 +(xpansion feature that is similar to the history e)-.15 F .61 +(xpansion in)-.15 F F2(csh.)3.11 E F0 .61(This section)5.61 F .87 (describes what syntax features are a)108 523.2 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 535.2 R F2(+H)4.514 E F0 2.014 +(ilable. This).25 F .871(feature is enabled by def)3.371 F .871 +(ault for interacti)-.1 F 1.171 -.15(ve s)-.25 H .871(hells, and).15 F +2.014(can be disabled using the)108 535.2 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 F4 2.014(SHELL B)4.514 F(UIL)-.09 E 2.014 +(iltin command \(see).2 F F4 2.013(SHELL B)4.513 F(UIL)-.09 E 2.013 (TIN COMMANDS)-.828 F F0(belo)108 547.2 Q 2.5(w\). Non-interacti)-.25 F .3 -.15(ve s)-.25 H(hells do not perform history e).15 E -(xpansion by def)-.15 E(ault.)-.1 E 1.306(History e)108 564 R 1.306 +(xpansion by def)-.15 E(ault.)-.1 E 1.305(History e)108 564 R 1.305 (xpansions introduce w)-.15 F 1.306(ords from the history list into the\ - input stream, making it easy to repeat)-.1 F .209 -(commands, insert the ar)108 576 R .209(guments to a pre)-.18 F .21 + input stream, making it easy to repeat)-.1 F .21 +(commands, insert the ar)108 576 R .21(guments to a pre)-.18 F .209 (vious command into the current input line, or \214x errors in pre)-.25 -F(vious)-.25 E(commands quickly)108 588 Q(.)-.65 E 1.164(History e)108 +F(vious)-.25 E(commands quickly)108 588 Q(.)-.65 E 1.163(History e)108 604.8 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 616.8 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 628.8 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 640.8 R F3 --.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 F3(wor) -3.163 E(ds)-.37 E F0 5.663(.V)C(arious)-6.773 E F3(modi\214er)108 652.8 -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 664.8 R -.15 -(ve)-.25 G(ral).15 E F3(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 676.8 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 688.8 Q +3.2 F 4.367(substitution. The)108 628.8 R 1.868(second is to select por\ +tions of that line for inclusion into the current one.)4.367 F 1.868 +(The line)6.868 F .663(selected from the history is the)108 640.8 R F3 +-.15(ev)3.163 G(ent).15 E F0 3.163(,a)C .663 +(nd the portions of that line that are acted upon are)-3.163 F F3(wor) +3.162 E(ds)-.37 E F0 5.662(.V)C(arious)-6.772 E F3(modi\214er)108 652.8 +Q(s)-.1 E F0 .226(are a)2.726 F -.25(va)-.2 G .226 +(ilable to manipulate the selected w).25 F 2.726(ords. The)-.1 F .227 +(line is brok)2.726 F .227(en into w)-.1 F .227(ords in the same f)-.1 F +(ashion)-.1 E .352(as when reading input, so that se)108 664.8 R -.15 +(ve)-.25 G(ral).15 E F3(metac)2.852 E(har)-.15 E(acter)-.15 E F0 .351 +(-separated w)B .351(ords surrounded by quotes are considered)-.1 F .624 +(one w)108 676.8 R 3.124(ord. History)-.1 F -.15(ex)3.124 G .624 +(pansions are introduced by the appearance of the history e).15 F .625 +(xpansion character)-.15 F 3.125(,w)-.4 G(hich)-3.125 E(is)108 688.8 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 705.6 Q -.15(ve)-.25 G .03(ral characters inhibit history e).15 F .03 (xpansion if found immediately follo)-.15 F .03(wing the history e)-.25 F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 717.6 T -3.163(ni).25 G 3.163(fi)-3.163 G 3.162(ti)-3.163 G 3.162(su)-3.162 G +3.162(ni).25 G 3.162(fi)-3.162 G 3.162(ti)-3.162 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 +(extglob)3.162 E F0 .662(shell option is enabled,)3.162 F F2(\()3.163 E F0(will also inhibit e)108 729.6 Q(xpansion.)-.15 E(GNU Bash 4.2)72 768 -Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(49)185.545 E 0 Cg EP +Q(2013 January 8)144.29 E(49)193.45 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(Se)108 84 Q -.15(ve)-.25 G .109 +-.35 E(Se)108 84 Q -.15(ve)-.25 G .11 (ral shell options settable with the).15 F/F1 10/Times-Bold@0 SF(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.143(If the)108 96 R F1 +2.61 E F0 -.2(bu)2.61 G .109(iltin may be used to tailor the beha).2 F +.109(vior of history e)-.2 F(xpansion.)-.15 E 1.142(If the)108 96 R F1 (histv)3.643 E(erify)-.1 E F0 1.143 (shell option is enabled \(see the description of the)3.643 F F1(shopt) 3.643 E F0 -.2(bu)3.643 G 1.143(iltin belo).2 F 1.143(w\), and)-.25 F F1 --.18(re)3.643 G(adline).18 E F0(is)3.642 E .461(being used, history sub\ -stitutions are not immediately passed to the shell parser)108 108 R -5.461(.I)-.55 G .461(nstead, the e)-5.461 F .461(xpanded line)-.15 F -1.516(is reloaded into the)108 120 R F1 -.18(re)4.016 G(adline).18 E F0 -1.516(editing b)4.016 F(uf)-.2 E 1.516(fer for further modi\214cation.) --.25 F(If)6.516 E F1 -.18(re)4.015 G(adline).18 E F0 1.515 -(is being used, and the)4.015 F F1(histr)108 132 Q(eedit)-.18 E F0 1.202 +-.18(re)3.643 G(adline).18 E F0(is)3.643 E .461(being used, history sub\ +stitutions are not immediately passed to the shell parser)108 108 R 5.46 +(.I)-.55 G .46(nstead, the e)-5.46 F .46(xpanded line)-.15 F 1.515 +(is reloaded into the)108 120 R F1 -.18(re)4.015 G(adline).18 E F0 1.515 +(editing b)4.015 F(uf)-.2 E 1.516(fer for further modi\214cation.)-.25 F +(If)6.516 E F1 -.18(re)4.016 G(adline).18 E F0 1.516 +(is being used, and the)4.016 F F1(histr)108 132 Q(eedit)-.18 E F0 1.202 (shell option is enabled, a f)3.702 F 1.202 (ailed history substitution will be reloaded into the)-.1 F F1 -.18(re) 3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 144 S -.25(ff).2 G -1.161(er for correction.).25 F(The)6.161 E F1<ad70>3.661 E F0 1.161 -(option to the)3.661 F F1(history)3.661 E F0 -.2(bu)3.661 G 1.16 +1.16(er for correction.).25 F(The)6.16 E F1<ad70>3.66 E F0 1.16 +(option to the)3.66 F F1(history)3.66 E F0 -.2(bu)3.661 G 1.161 (iltin command may be used to see what a history).2 F -.15(ex)108 156 S -.055(pansion will do before using it.).15 F(The)5.055 E F1<ad73>2.555 E -F0 .055(option to the)2.555 F F1(history)2.556 E F0 -.2(bu)2.556 G .056 +.056(pansion will do before using it.).15 F(The)5.056 E F1<ad73>2.556 E +F0 .056(option to the)2.556 F F1(history)2.555 E F0 -.2(bu)2.555 G .055 (iltin may be used to add commands to the).2 F (end of the history list without actually e)108 168 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 184.8 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 -196.8 R F1(histchars)3.646 E F0(abo)3.646 E 1.446 -.15(ve u)-.15 H(nder) -.15 E F1 1.146(Shell V)3.646 F(ariables)-.92 E F0 3.646(\). The)B 1.147 +-.25 F 2.2(xpansion mechanism \(see the)-.15 F 1.147(description of)108 +196.8 R F1(histchars)3.647 E F0(abo)3.647 E 1.447 -.15(ve u)-.15 H(nder) +.15 E F1 1.147(Shell V)3.647 F(ariables)-.92 E F0 3.646(\). The)B 1.146 (shell uses the history comment character to)3.646 F (mark history timestamps when writing the history \214le.)108 208.8 Q F1 -(Ev)87 225.6 Q(ent Designators)-.1 E F0 .205(An e)108 237.6 R -.15(ve) +(Ev)87 225.6 Q(ent Designators)-.1 E F0 .204(An e)108 237.6 R -.15(ve) -.25 G .204(nt designator is a reference to a command line entry in the\ - history list.).15 F .204(Unless the reference is abso-)5.204 F(lute, e) + history list.).15 F .205(Unless the reference is abso-)5.204 F(lute, e) 108 249.6 Q -.15(ve)-.25 G(nts are relati).15 E .3 -.15(ve t)-.25 H 2.5 (ot).15 G(he current position in the history list.)-2.5 E F1(!)108 266.4 -Q F0 1.607(Start a history substitution, e)32.67 F 1.607 +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 F1(blank)4.107 E F0 4.107 -(,n)C -.25(ew)-4.107 G 1.608(line, carriage return, = or \().25 F +(,n)C -.25(ew)-4.107 G 1.607(line, carriage return, = or \().25 F (\(when the)144 278.4 Q F1(extglob)2.5 E F0 (shell option is enabled using the)2.5 E F1(shopt)2.5 E F0 -.2(bu)2.5 G (iltin\).).2 E F1(!)108 290.4 Q/F2 10/Times-Italic@0 SF(n)A F0 @@ -5975,27 +5998,27 @@ on in the history list starting with)9.33 F F2(string)144 338.4 Q F0(.) aining)144 362.4 R F2(string)144 374.4 Q F0 5(.T).22 G(he trailing)-5 E F1(?)2.5 E F0(may be omitted if)2.5 E F2(string)2.84 E F0(is follo)2.72 E(wed immediately by a ne)-.25 E(wline.)-.25 E/F3 12/Times-Bold@0 SF(^) -108 391.4 Q F2(string1)-5 I F3(^)5 I F2(string2)-5 I F3(^)5 I F0 .784 -(Quick substitution.)144 398.4 R .784(Repeat the pre)5.784 F .784 -(vious command, replacing)-.25 F F2(string1)3.624 E F0(with)3.283 E F2 -(string2)3.283 E F0 5.783(.E).02 G(qui)-5.783 E -.25(va)-.25 G .783 +108 391.4 Q F2(string1)-5 I F3(^)5 I F2(string2)-5 I F3(^)5 I F0 .783 +(Quick substitution.)144 398.4 R .783(Repeat the pre)5.783 F .784 +(vious command, replacing)-.25 F F2(string1)3.624 E F0(with)3.284 E F2 +(string2)3.284 E F0 5.784(.E).02 G(qui)-5.784 E -.25(va)-.25 G .784 (lent to).25 F -.74(``)144 410.4 S(!!:s/).74 E F2(string1)A F0(/)A F2 (string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F1(Modi\214ers)2.5 E F0 (belo)2.5 E(w\).)-.25 E F1(!#)108 422.4 Q F0 (The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F1 -.75 -(Wo)87 439.2 S(rd Designators).75 E F0 -.8(Wo)108 451.2 S 1.313 +(Wo)87 439.2 S(rd Designators).75 E F0 -.8(Wo)108 451.2 S 1.314 (rd designators are used to select desired w).8 F 1.314(ords from the e) --.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F1(:)3.814 E F0 1.314 -(separates the e)3.814 F -.15(ve)-.25 G 1.314(nt speci\214cation).15 F -.53(from the w)108 463.2 R .529(ord designator)-.1 F 5.529(.I)-.55 G +-.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F1(:)3.814 E F0 1.313 +(separates the e)3.813 F -.15(ve)-.25 G 1.313(nt speci\214cation).15 F +.529(from the w)108 463.2 R .529(ord designator)-.1 F 5.529(.I)-.55 G 3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529 (ord designator be)-.1 F .529(gins with a)-.15 F F1(^)3.029 E F0(,)A F1 ($)3.029 E F0(,)A F1(*)3.029 E F0(,)A F1<ad>3.029 E F0 3.029(,o)C(r) --3.029 E F1(%)3.029 E F0 5.529(.W)C(ords)-6.329 E 1.3 -(are numbered from the be)108 475.2 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 487.2 Q +-3.029 E F1(%)3.029 E F0 5.53(.W)C(ords)-6.33 E 1.301 +(are numbered from the be)108 475.2 R 1.301 +(ginning of the line, with the \214rst w)-.15 F 1.3 +(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.3 G 1.3(rds are).8 F +(inserted into the current line separated by single spaces.)108 487.2 Q F1 2.5(0\()108 504 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 516 Q 2.5 (ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E F2 (n)108.36 528 Q F0(The)30.64 E F2(n)2.5 E F0(th w)A(ord.)-.1 E F1(^)108 @@ -6004,27 +6027,26 @@ F1 2.5(0\()108 504 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 516 Q 2.5 564 Q F0(The w)26 E(ord matched by the most recent `?)-.1 E F2(string)A F0(?' search.)A F2(x)108.77 576 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 588 Q F0 .316 -(All of the w)31 F .316(ords b)-.1 F .316(ut the zeroth.)-.2 F .315 +(viates `0\255)-.25 E F2(y)A F0('.)A F1(*)108 588 Q F0 .315 +(All of the w)31 F .315(ords b)-.1 F .315(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 600 Q(ord in the e)-.1 E -.15(ve) +('. It)B .315(is not an error to use)2.815 F F1(*)2.816 E F0 .316 +(if there is)2.816 F(just one w)144 600 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 612 Q F0(Abbre)26 E(viates)-.25 E F2(x\255$)2.5 E F0(.)A F1<78ad>108 624 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 640.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 657.6 Q F0 .183 -(After the optional w)108 669.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 681.6 Q F1(h) +-.15(ve)-.25 G(nt.).15 E F1(Modi\214ers)87 657.6 Q F0 .184 +(After the optional w)108 669.6 R .184(ord designator)-.1 F 2.684(,t)-.4 +G .183(here may appear a sequence of one or more of the follo)-2.684 F +.183(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 681.6 Q F1(h) 108 698.4 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H (railing \214lename component, lea).15 E(ving only the head.)-.2 E F1(t) 108 710.4 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H (ll leading \214lename components, lea).15 E(ving the tail.)-.2 E -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(50)185.545 E 0 Cg EP +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(50)193.45 E 0 Cg EP %%Page: 51 51 %%BeginPageSetup BP @@ -6041,59 +6063,59 @@ E(\214x.)-.25 E F1(p)108 108 Q F0(Print the ne)30.44 E 2.5(wc)-.25 G (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 144 Q F2(old)A F1(/)A F2(ne)A(w)-.15 E F1(/)A -F0(Substitute)144 156 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) +F0(Substitute)144 156 Q F2(ne)3.081 E(w)-.15 E F0 .221 +(for the \214rst occurrence of)3.031 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 168 R .617 +.221(elimiter can be used in place)-2.721 F .617(of /.)144 168 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 +5.617 F -.15(ve)-.25 G .617(nt line.).15 F .616(The delimiter may)5.616 F .666(be quoted in)144 180 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 192 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 +F0 5.666(.A).77 G .275(single backslash will quote the &.)144 192 R(If) +5.275 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544 F F2 +(old)3.004 E F0 .274(substituted, or)3.544 F 2.774(,i)-.4 G 2.774(fn) +-2.774 G 2.774(op)-2.774 G(re)-2.774 E(vi-)-.25 E (ous history substitutions took place, the last)144 204 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 216 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1(g)108 -228 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 240 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 +228 Q F0 .397(Cause changes to be applied o)31 F -.15(ve)-.15 G 2.897 +(rt).15 G .398(he entire e)-2.897 F -.15(ve)-.25 G .398(nt line.).15 F +.398(This is used in conjunction with `)5.398 F F1(:s)A F0 2.898('\()C +(e.g.,)-2.898 E(`)144 240 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)-.15 E +F1(/)A F0 1.219('\) or `)B F1(:&)A F0 3.719('. If)B 1.219(used with `) +3.719 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.218 +(elimiter can be used in place of /, and the \214nal)-3.718 F .089 (delimiter is optional if it is the last character of the e)144 252 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 264 Q F0(.)A +-.15(ve)-.25 G .09(nt line.).15 F(An)5.09 E F1(a)2.59 E F0 .09 +(may be used as a synon)2.59 F .09(ym for)-.15 F F1(g)144 264 Q F0(.)A F1(G)108 276 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 292.8 Q(UIL)-.11 E -(TIN COMMANDS)-1.007 E F0 .062(Unless otherwise noted, each b)108 304.8 +(TIN COMMANDS)-1.007 E F0 .063(Unless otherwise noted, each b)108 304.8 R .062(uiltin command documented in this section as accepting options p\ -receded by)-.2 F F1<ad>108 316.8 Q F0(accepts)2.534 E F1<adad>2.534 E F0 -.034(to signify the end of the options.)2.534 F(The)5.034 E F1(:)2.534 E +receded by)-.2 F F1<ad>108 316.8 Q F0(accepts)2.533 E F1<adad>2.533 E F0 +.034(to signify the end of the options.)2.533 F(The)5.034 E F1(:)2.534 E F0(,)A F1(true)2.534 E F0(,)A F1(false)2.534 E F0 2.534(,a)C(nd)-2.534 E -F1(test)2.534 E F0 -.2(bu)2.534 G .033(iltins do not accept options and) -.2 F .077(do not treat)108 328.8 R F1<adad>2.577 E F0(specially)2.577 E +F1(test)2.534 E F0 -.2(bu)2.534 G .034(iltins do not accept options and) +.2 F .078(do not treat)108 328.8 R F1<adad>2.577 E F0(specially)2.577 E 5.077(.T)-.65 G(he)-5.077 E F1(exit)2.577 E F0(,)A F1(logout)2.577 E F0 (,)A F1(br)2.577 E(eak)-.18 E F0(,)A F1(continue)2.577 E F0(,)A F1(let) 2.577 E F0 2.577(,a)C(nd)-2.577 E F1(shift)2.577 E F0 -.2(bu)2.577 G -.077(iltins accept and process ar).2 F(gu-)-.18 E .32(ments be)108 340.8 -R .32(ginning with)-.15 F F1<ad>2.82 E F0 .32(without requiring)2.82 F -F1<adad>2.82 E F0 5.319(.O)C .319(ther b)-5.319 F .319 -(uiltins that accept ar)-.2 F .319(guments b)-.18 F .319 -(ut are not speci\214ed as)-.2 F 1.143(accepting options interpret ar) -108 352.8 R 1.143(guments be)-.18 F 1.143(ginning with)-.15 F F1<ad> +.077(iltins accept and process ar).2 F(gu-)-.18 E .319(ments be)108 +340.8 R .319(ginning with)-.15 F F1<ad>2.819 E F0 .319 +(without requiring)2.819 F F1<adad>2.819 E F0 5.319(.O)C .319(ther b) +-5.319 F .319(uiltins that accept ar)-.2 F .32(guments b)-.18 F .32 +(ut are not speci\214ed as)-.2 F 1.144(accepting options interpret ar) +108 352.8 R 1.144(guments be)-.18 F 1.144(ginning with)-.15 F F1<ad> 3.643 E F0 1.143(as in)3.643 F -.25(va)-.4 G 1.143 -(lid options and require).25 F F1<adad>3.644 E F0 1.144(to pre)3.644 F --.15(ve)-.25 G 1.144(nt this).15 F(interpretation.)108 364.8 Q F1(:)108 -382.8 Q F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .452(No ef)144 394.8 R -.452(fect; the command does nothing be)-.25 F .452(yond e)-.15 F -(xpanding)-.15 E F2(ar)3.282 E(guments)-.37 E F0 .451(and performing an) -3.221 F 2.951(ys)-.15 G(peci\214ed)-2.951 E 2.5(redirections. A)144 +(lid options and require).25 F F1<adad>3.643 E F0 1.143(to pre)3.643 F +-.15(ve)-.25 G 1.143(nt this).15 F(interpretation.)108 364.8 Q F1(:)108 +382.8 Q F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .451(No ef)144 394.8 R +.451(fect; the command does nothing be)-.25 F .452(yond e)-.15 F +(xpanding)-.15 E F2(ar)3.282 E(guments)-.37 E F0 .452(and performing an) +3.222 F 2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. A)144 406.8 R(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 423.6 Q F2 (\214lename)6.666 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A F1(sour)108 435.6 Q(ce)-.18 E F2(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E @@ -6107,28 +6129,28 @@ G 1.458(cuted from).15 F F2(\214lename)3.958 E F0 6.458(.I).18 G(f) 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 .833(need not be e)144 483.6 R -.15(xe)-.15 G -3.333(cutable. When).15 F F1(bash)3.333 E F0 .832(is not in)3.333 F F2 -.832(posix mode)3.332 F F0 3.332(,t)C .832 -(he current directory is searched if no)-3.332 F .981 +3.108 G(TH)-.189 E F0 .832(need not be e)144 483.6 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 495.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 F1(sour)3.481 E(cepath)-.18 E F0 .981(option to the)3.481 F F1(shopt)3.481 E F0 -.2(bu)3.481 G .981 -(iltin command is turned of).2 F .982(f, the)-.25 F F4 -.666(PA)144 -507.6 S(TH)-.189 E F0 .112(is not searched.)2.363 F .112(If an)5.112 F +(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144 +507.6 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 519.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 +(\214lename)144 519.6 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 531.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 F2(\214lename)145.91 543.6 +.716(cuted\), and f).15 F .716(alse if)-.1 F F2(\214lename)145.91 543.6 Q F0(is not found or cannot be read.)2.68 E F1(alias)108 560.4 Q F0([) 2.5 E F1<ad70>A F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].) -C(..])-2.5 E F1(Alias)144 572.4 Q F0 2.724(with no ar)5.224 F 2.724 +C(..])-2.5 E F1(Alias)144 572.4 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.225 E +(option prints the list of aliases in the form)5.224 F F1(alias)5.224 E F2(name)144 584.4 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F .58(When ar)5.58 F .58 (guments are supplied, an alias is de\214ned for each)-.18 F F2(name) @@ -6138,25 +6160,24 @@ F2(name)144 584.4 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F (ord to be check)-.1 F .395(ed for alias sub-)-.1 F .054 (stitution when the alias is e)144 608.4 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 .053(is sup-)2.553 -F 1.313(plied, the name and v)144 620.4 R 1.314 +(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 620.4 R 1.314 (alue of the alias is printed.)-.25 F F1(Alias)6.314 E F0 1.314 -(returns true unless a)3.814 F F2(name)3.814 E F0 1.314(is gi)3.814 F --.15(ve)-.25 G 3.814(nf).15 G(or)-3.814 E +(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 632.4 Q F1(bg)108 649.2 Q F0([) -2.5 E F2(jobspec)A F0(...])2.5 E .745(Resume each suspended job)144 -661.2 R F2(jobspec)3.245 E F0 .745 -(in the background, as if it had been started with)3.245 F F1(&)3.244 E -F0 5.744(.I)C(f)-5.744 E F2(job-)4.984 E(spec)144 673.2 Q F0 .671 -(is not present, the shell')3.481 F 3.171(sn)-.55 G .672(otion of the) --3.171 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1 -(bg)5.672 E F2(jobspec)4.912 E F0 .672(returns 0 unless run)3.482 F .419 +2.5 E F2(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144 +661.2 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 673.2 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 685.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 F2(jobspec)2.918 E F0 -.1(wa)2.918 G 2.918(sn).1 G -(ot)-2.918 E(found or w)144 697.2 Q(as started without job control.)-.1 -E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(51)185.545 E 0 Cg EP +(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 697.2 Q(as started without job control.)-.1 +E(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(51)193.45 E 0 Cg EP %%Page: 52 52 %%BeginPageSetup BP @@ -6173,28 +6194,28 @@ 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 132 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 144 Q F2 -.37(re) -2.5 G(adline\255command).37 E F0 .238(Display current)144 156 R F1 -.18 -(re)2.738 G(adline).18 E F0 -.1(ke)2.738 G 2.738(ya)-.05 G .239 -(nd function bindings, bind a k)-2.738 F .539 -.15(ey s)-.1 H .239 -(equence to a).15 F F1 -.18(re)2.739 G(adline).18 E F0 .239(function or) -2.739 F .476(macro, or set a)144 168 R F1 -.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 F2 -(.inputr)144 180 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 +2.5 G(adline\255command).37 E F0 .239(Display current)144 156 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 168 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 180 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 192 R(if supplied, ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6d>144 204 -Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 216 Q F2 -.1(ke)5.159 G(ymap)-.2 -E F0 2.659(as the k)5.349 F -.15(ey)-.1 G 2.658(map to be af).15 F 2.658 -(fected by the subsequent bindings.)-.25 F(Acceptable)7.658 E F2 -.1(ke) -180 228 S(ymap)-.2 E F0 3.192(names are)5.882 F F2 3.192 -(emacs, emacs\255standar)5.692 F 3.193 +Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 216 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 228 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 240 Q F0 4.43(,a)C(nd)-4.43 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 +(vi\255command)180 240 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.929(lent to).25 F F2(emacs\255standar) +(is equi)4.429 F -.25(va)-.25 G 1.93(lent to).25 F F2(emacs\255standar) 180 252 Q(d)-.37 E F0(.)A F1<ad6c>144 264 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 276 Q F0(Display)24.74 E F1 -.18(re)2.5 G(adline).18 E F0 @@ -6226,56 +6247,56 @@ E F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)-.05 G 180 468 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 480 Q F0 1.764(is e)4.264 F -.15(xe)-.15 G 1.765 +4.325 E(mand)180 480 Q F0 1.765(is e)4.265 F -.15(xe)-.15 G 1.765 (cuted, the shell sets the).15 F/F3 9/Times-Bold@0 SF(READLINE_LINE) 4.265 E F0 -.25(va)4.015 G 1.765(riable to the contents of the).25 F F1 --.18(re)180 492 S(adline).18 E F0 1.353(line b)3.853 F(uf)-.2 E 1.353 +-.18(re)180 492 S(adline).18 E F0 1.353(line b)3.852 F(uf)-.2 E 1.353 (fer and the)-.25 F F3(READLINE_POINT)3.853 E F0 -.25(va)3.603 G 1.353 -(riable to the current location of the).25 F 2.011(insertion point.)180 -504 R 2.011(If the e)7.011 F -.15(xe)-.15 G 2.011 +(riable to the current location of the).25 F 2.012(insertion point.)180 +504 R 2.011(If the e)7.012 F -.15(xe)-.15 G 2.011 (cuted command changes the v).15 F 2.011(alue of)-.25 F F3 -(READLINE_LINE)4.512 E F0(or)4.262 E F3(READLINE_POINT)180 516 Q/F4 9 +(READLINE_LINE)4.511 E F0(or)4.261 E F3(READLINE_POINT)180 516 Q/F4 9 /Times-Roman@0 SF(,)A F0(those ne)2.25 E 2.5(wv)-.25 G (alues will be re\215ected in the editing state.)-2.75 E F1<ad58>144 528 -Q F0 .83(List all k)23.08 F 1.13 -.15(ey s)-.1 H .829 +Q F0 .829(List all k)23.08 F 1.129 -.15(ey s)-.1 H .829 (equences bound to shell commands and the associated commands in a for) .15 F(-)-.2 E(mat that can be reused as input.)180 540 Q(The return v) 144 556.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 573.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054 -(Exit from within a)144 585.6 R F1 -.25(fo)2.554 G(r).25 E F0(,)A F1 -(while)2.554 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1 +E F1(br)108 573.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .055 +(Exit from within a)144 585.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.415 E F0 .055(must be)2.795 F/F5 10/Symbol SF<b3>2.555 -E F0(1.)2.555 E(If)144 597.6 Q F2(n)3.075 E F0 .215(is greater than the\ - number of enclosing loops, all enclosing loops are e)2.955 F 2.714 -(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E(is 0 unless)144 +(ls.).15 E F2(n)5.414 E F0 .054(must be)2.794 F/F5 10/Symbol SF<b3>2.554 +E F0(1.)2.554 E(If)144 597.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 609.6 Q F2(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F1 -.2 (bu)108 626.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 638.4 Q .792 -(ecute the speci\214ed shell b)-.15 F .792(uiltin, passing it)-.2 F F2 +F2(ar)A(guments)-.37 E F0(])A(Ex)144 638.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 .793(xit status.)-.15 F .793(This is useful)5.793 F .616 +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 -650.4 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144 +650.4 R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144 662.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 674.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 691.2 Q F0([)2.5 E F2 -.2(ex)C(pr) -.2 E F0(])A .254(Returns the conte)144 703.2 R .254(xt of an)-.15 F +.2 E F0(])A .253(Returns the conte)144 703.2 R .254(xt of an)-.15 F 2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254 (ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G -.254(cuted with the).15 F F1(.)2.753 E F0(or)2.753 E F1(sour)144 715.2 Q -(ce)-.18 E F0 -.2(bu)2.824 G 2.824(iltins\). W).2 F(ithout)-.4 E F2 -.2 -(ex)2.824 G(pr).2 E F0(,)A F1(caller)2.824 E F0 .324 +.254(cuted with the).15 F F1(.)2.754 E F0(or)2.754 E F1(sour)144 715.2 Q +(ce)-.18 E F0 -.2(bu)2.825 G 2.825(iltins\). W).2 F(ithout)-.4 E F2 -.2 +(ex)2.825 G(pr).2 E F0(,)A F1(caller)2.825 E F0 .324 (displays the line number and source \214lename of the current)2.824 F 1.68(subroutine call.)144 727.2 R 1.68(If a non-ne)6.68 F -.05(ga)-.15 G (ti).05 E 1.98 -.15(ve i)-.25 H(nte).15 E 1.68(ger is supplied as)-.15 F F2 -.2(ex)4.18 G(pr).2 E F0(,)A F1(caller)4.18 E F0 1.68 -(displays the line number)4.18 F(,)-.4 E(GNU Bash 4.2)72 768 Q(2012 No) -136.385 E -.15(ve)-.15 G(mber 24).15 E(52)185.545 E 0 Cg EP +(displays the line number)4.18 F(,)-.4 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(52)193.45 E 0 Cg EP %%Page: 53 53 %%BeginPageSetup BP @@ -6283,34 +6304,34 @@ BP /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) -.35 E .335(subroutine name, and source \214le corresponding to that po\ sition in the current e)144 84 R -.15(xe)-.15 G .335(cution call stack.) -.15 F .001(This e)144 96 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 108 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 10/Times-Italic@0 SF -.2(ex) -3.02 G(pr).2 E F0 .52(does not corre-)3.02 F(spond to a v)144 120 Q +.15 F(This e)144 96 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 108 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/F1 10/Times-Italic@0 SF -.2(ex)3.019 +G(pr).2 E F0 .519(does not corre-)3.019 F(spond to a v)144 120 Q (alid position in the call stack.)-.25 E/F2 10/Times-Bold@0 SF(cd)108 136.8 Q F0([)2.5 E F2<ad4c>A F0(|[)A F2<ad50>A F0([)2.5 E F2<ad65>A F0 -(]]] [)A F1(dir)A F0(])A .322(Change the current directory to)144 148.8 -R F1(dir)2.822 E F0 5.322(.i)C(f)-5.322 E F1(dir)2.822 E F0 .321 -(is not supplied, the v)2.822 F .321(alue of the)-.25 F/F3 9 -/Times-Bold@0 SF(HOME)2.821 E F0 .321(shell v)2.571 F .321(ariable is) --.25 F 1.035(the def)144 160.8 R 3.535(ault. An)-.1 F 3.535(ya)-.15 G -1.035(dditional ar)-3.535 F 1.035(guments follo)-.18 F(wing)-.25 E F1 -(dir)3.535 E F0 1.035(are ignored.)3.535 F 1.036(The v)6.035 F(ariable) --.25 E F3(CDP)3.536 E -.855(AT)-.666 G(H).855 E F0(de\214nes)3.286 E .85 -(the search path for the directory containing)144 172.8 R F1(dir)3.35 E -F0 3.35(:e).73 G .849(ach directory name in)-3.35 F F3(CDP)3.349 E -.855 -(AT)-.666 G(H).855 E F0 .849(is searched for)3.099 F F1(dir)144 184.8 Q -F0 5.664(.A)C(lternati)-5.664 E .964 -.15(ve d)-.25 H .665 +(]]] [)A F1(dir)A F0(])A .321(Change the current directory to)144 148.8 +R F1(dir)2.821 E F0 5.321(.i)C(f)-5.321 E F1(dir)2.821 E F0 .322 +(is not supplied, the v)2.821 F .322(alue of the)-.25 F/F3 9 +/Times-Bold@0 SF(HOME)2.822 E F0 .322(shell v)2.572 F .322(ariable is) +-.25 F 1.036(the def)144 160.8 R 3.536(ault. An)-.1 F 3.536(ya)-.15 G +1.035(dditional ar)-3.536 F 1.035(guments follo)-.18 F(wing)-.25 E F1 +(dir)3.535 E F0 1.035(are ignored.)3.535 F 1.035(The v)6.035 F(ariable) +-.25 E F3(CDP)3.535 E -.855(AT)-.666 G(H).855 E F0(de\214nes)3.285 E +.849(the search path for the directory containing)144 172.8 R F1(dir) +3.349 E F0 3.35(:e).73 G .85(ach directory name in)-3.35 F F3(CDP)3.35 E +-.855(AT)-.666 G(H).855 E F0 .85(is searched for)3.1 F F1(dir)144 184.8 +Q F0 5.665(.A)C(lternati)-5.665 E .965 -.15(ve d)-.25 H .665 (irectory names in).15 F F3(CDP)3.165 E -.855(AT)-.666 G(H).855 E F0 -.665(are separated by a colon \(:\).)2.915 F 3.165(An)5.665 G .665 -(ull directory name)-3.165 F(in)144 196.8 Q F3(CDP)4.163 E -.855(AT) --.666 G(H).855 E F0 1.663(is the same as the current directory)3.913 F +.665(are separated by a colon \(:\).)2.915 F 3.165(An)5.665 G .664 +(ull directory name)-3.165 F(in)144 196.8 Q F3(CDP)4.162 E -.855(AT) +-.666 G(H).855 E F0 1.662(is the same as the current directory)3.912 F 4.162(,i)-.65 G 1.662(.e., `)-4.162 F(`)-.74 E F2(.)A F0 -.74('')C 6.662 -(.I).74 G(f)-6.662 E F1(dir)4.512 E F0(be)4.892 E 1.662 +(.I).74 G(f)-6.662 E F1(dir)4.513 E F0(be)4.893 E 1.663 (gins with a slash \(/\), then)-.15 F F3(CDP)144 208.8 Q -.855(AT)-.666 -G(H).855 E F0 .347(is not used. The)2.597 F F2<ad50>2.847 E F0 .347 +G(H).855 E F0 .347(is not used. The)2.598 F F2<ad50>2.847 E F0 .347 (option causes)2.847 F F2(cd)2.847 E F0 .347(to use the ph)2.847 F .347 (ysical directory structure by resolving)-.05 F 1.12 (symbolic links while tra)144 220.8 R -.15(ve)-.2 G(rsing).15 E F1(dir) @@ -6319,64 +6340,64 @@ G(H).855 E F0 .347(is not used. The)2.597 F F2<ad50>2.847 E F0 .347 .395(option to the)144 232.8 R F2(set)2.895 E F0 -.2(bu)2.895 G .395 (iltin command\); the).2 F F2<ad4c>2.895 E F0 .395 (option forces symbolic links to be follo)2.895 F .395(wed by resolv-) --.25 F .444(ing the link after processing instances of)144 244.8 R F1 +-.25 F .443(ing the link after processing instances of)144 244.8 R F1 (..)2.943 E F0(in)2.943 E F1(dir)2.943 E F0 5.443(.I)C(f)-5.443 E F1(..) 2.943 E F0 .443(appears in)2.943 F F1(dir)2.943 E F0 2.943(,i)C 2.943 -(ti)-2.943 G 2.943(sp)-2.943 G .443(rocessed by remo)-2.943 F(ving)-.15 +(ti)-2.943 G 2.944(sp)-2.943 G .444(rocessed by remo)-2.944 F(ving)-.15 E .744(the immediately pre)144 256.8 R .744 (vious pathname component from)-.25 F F1(dir)3.244 E F0 3.244(,b)C .744 (ack to a slash or the be)-3.244 F .744(ginning of)-.15 F F1(dir)3.244 E -F0(.)A 1.466(If the)144 268.8 R F2<ad65>3.966 E F0 1.466 -(option is supplied with)3.966 F F2<ad50>3.965 E F0 3.965(,a)C 1.465 -(nd the current w)-3.965 F 1.465 -(orking directory cannot be successfully)-.1 F .012 +F0(.)A 1.465(If the)144 268.8 R F2<ad65>3.965 E F0 1.465 +(option is supplied with)3.965 F F2<ad50>3.965 E F0 3.965(,a)C 1.465 +(nd the current w)-3.965 F 1.466 +(orking directory cannot be successfully)-.1 F .013 (determined after a successful directory change,)144 280.8 R F2(cd)2.512 -E F0 .012(will return an unsuccessful status.)2.512 F .013(An ar)5.013 F -(gument)-.18 E(of)144 292.8 Q F2<ad>2.672 E F0 .172(is con)2.672 F -.15 -(ve)-.4 G .172(rted to).15 F F3($OLDPWD)2.672 E F0 .171 -(before the directory change is attempted.)2.421 F .171 -(If a non-empty directory)5.171 F .743(name from)144 304.8 R F3(CDP) -3.243 E -.855(AT)-.666 G(H).855 E F0 .743(is used, or if)2.993 F F2<ad> -3.244 E F0 .744(is the \214rst ar)3.244 F .744 +E F0 .012(will return an unsuccessful status.)2.512 F .012(An ar)5.012 F +(gument)-.18 E(of)144 292.8 Q F2<ad>2.671 E F0 .171(is con)2.671 F -.15 +(ve)-.4 G .171(rted to).15 F F3($OLDPWD)2.671 E F0 .171 +(before the directory change is attempted.)2.421 F .172 +(If a non-empty directory)5.172 F .744(name from)144 304.8 R F3(CDP) +3.244 E -.855(AT)-.666 G(H).855 E F0 .744(is used, or if)2.994 F F2<ad> +3.244 E F0 .744(is the \214rst ar)3.244 F .743 (gument, and the directory change is successful,)-.18 F .594 (the absolute pathname of the ne)144 316.8 R 3.094(ww)-.25 G .594 (orking directory is written to the standard output.)-3.194 F .594 (The return)5.594 F -.25(va)144 328.8 S(lue is true if the directory w) .25 E(as successfully changed; f)-.1 E(alse otherwise.)-.1 E F2(command) 108 345.6 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 357.6 Q F1(command)2.956 E F0 +F1(ar)A(g)-.37 E F0(...])2.5 E(Run)144 357.6 Q F1(command)2.957 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 369.6 R F3 --.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15(xe)-.15 G 3.002 +(uiltin commands or)-.2 F .501(commands found in the)144 369.6 R F3 +-.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15(xe)-.15 G 3.002 (cuted. If).15 F(the)3.002 E F2<ad70>3.002 E F0 .502(option is gi)3.002 -F -.15(ve)-.25 G .501(n, the search for).15 F F1(command)3.201 E F0(is) -3.771 E .399(performed using a def)144 381.6 R .399(ault v)-.1 F .399 -(alue for)-.25 F F3 -.666(PA)2.899 G(TH)-.189 E F0 .4 +F -.15(ve)-.25 G .502(n, the search for).15 F F1(command)3.202 E F0(is) +3.772 E .4(performed using a def)144 381.6 R .4(ault v)-.1 F .4 +(alue for)-.25 F F3 -.666(PA)2.9 G(TH)-.189 E F0 .399 (that is guaranteed to \214nd all of the standard utilities.)2.649 F(If) -5.4 E .175(either the)144 393.6 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.317(as)144 405.6 S .817(ingle w)-3.317 F .817 -(ord indicating the command or \214lename used to in)-.1 F -.2(vo)-.4 G --.1(ke).2 G F1(command)3.618 E F0 .818(to be displayed; the)4.088 F F2 -<ad56>144 417.6 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 429.6 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 +5.399 E .174(either the)144 393.6 R F2<ad56>2.674 E F0(or)2.674 E F2 +<ad76>2.674 E F0 .175(option is supplied, a description of)2.674 F F1 +(command)2.875 E F0 .175(is printed.)3.445 F(The)5.175 E F2<ad76>2.675 E +F0 .175(option causes)2.675 F 3.318(as)144 405.6 S .818(ingle w)-3.318 F +.817(ord indicating the command or \214lename used to in)-.1 F -.2(vo) +-.4 G -.1(ke).2 G F1(command)3.617 E F0 .817(to be displayed; the)4.087 +F F2<ad56>144 417.6 Q F0 .249(option produces a more v)2.749 F .249 +(erbose description.)-.15 F .249(If the)5.249 F F2<ad56>2.749 E F0(or) +2.749 E F2<ad76>2.75 E F0 .25(option is supplied, the e)2.75 F .25 +(xit status)-.15 F 1.005(is 0 if)144 429.6 R F1(command)3.705 E F0 -.1 +(wa)4.275 G 3.505(sf).1 G 1.005(ound, and 1 if not.)-3.505 F 1.004 (If neither option is supplied and an error occurred or)6.005 F F1 -(command)144.2 441.6 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 453.6 S +(command)144.2 441.6 Q F0 1.598(cannot be found, the e)4.868 F 1.599 +(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.599 +(xit status of the)-.15 F F2(command)4.099 E F0 -.2(bu)144 453.6 S (iltin is the e).2 E(xit status of)-.15 E F1(command)2.5 E F0(.).77 E F2 (compgen)108 470.4 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 482.4 R +-.37 E F0(])A .013(Generate possible completion matches for)144 482.4 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 494.4 R F2(complete)3.482 E F0 -.2(bu)3.481 G .981 +E F0 .013(s, which may be an)B 2.512(yo)-.15 G(ption)-2.512 E .981 +(accepted by the)144 494.4 R F2(complete)3.481 E F0 -.2(bu)3.481 G .981 (iltin with the e).2 F .981(xception of)-.15 F F2<ad70>3.481 E F0(and) -3.481 E F2<ad72>3.481 E F0 3.481(,a)C .981(nd write the matches to the) +3.481 E F2<ad72>3.481 E F0 3.481(,a)C .982(nd write the matches to the) -3.481 F 1.415(standard output.)144 506.4 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 @@ -6390,28 +6411,28 @@ em directly from a completion speci\214cation with the same \215ags.)144 (will be displayed.)2.5 E(The return v)144 590.4 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 607.2 Q F0([)3.729 E F2(\255abcdefgjksuv)A F0 3.729(][)C -F2<ad6f>-3.729 E F1(comp-option)3.729 E F0 3.729(][)C F2(\255DE)-3.729 E +(complete)108 607.2 Q F0([)3.728 E F2(\255abcdefgjksuv)A F0 3.728(][)C +F2<ad6f>-3.728 E F1(comp-option)3.728 E F0 3.728(][)C F2(\255DE)-3.728 E F0 3.728(][)C F2<ad41>-3.728 E F1(action)3.728 E F0 3.728(][)C F2<ad47> --3.728 E F1(globpat)3.728 E F0 3.728(][)C F2<ad57>-3.728 E F1(wor)3.728 -E(dlist)-.37 E F0 3.728(][)C F2<ad46>-3.728 E F1(func-)3.728 E(tion)108 +-3.728 E F1(globpat)3.728 E F0 3.729(][)C F2<ad57>-3.729 E F1(wor)3.729 +E(dlist)-.37 E F0 3.729(][)C F2<ad46>-3.729 E F1(func-)3.729 E(tion)108 619.2 Q F0 2.5(][)C F2<ad43>-2.5 E F1(command)2.5 E F0(])A([)144 631.2 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 643.2 Q F0([)2.5 E F2(\255DE)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E -.634(Specify ho)144 655.2 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 +.633(Specify ho)144 655.2 R 3.133(wa)-.25 G -.18(rg)-3.133 G .633 +(uments to each).18 F F1(name)3.133 E F0 .633(should be completed.)3.133 +F .634(If the)5.634 F F2<ad70>3.134 E F0 .634 +(option is supplied, or if no)3.134 F .14(options are supplied, e)144 667.2 R .139(xisting completion speci\214cations are printed in a w)-.15 -F .14(ay that allo)-.1 F .14(ws them to be)-.25 F .31(reused as input.) -144 679.2 R(The)5.31 E F2<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve) --.15 G 2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F1 -(name)2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E -F1(name)2.81 E F0(s)A 1.346 +F .139(ay that allo)-.1 F .139(ws them to be)-.25 F .31 +(reused as input.)144 679.2 R(The)5.31 E F2<ad72>2.81 E F0 .31 +(option remo)2.81 F -.15(ve)-.15 G 2.81(sac).15 G .31 +(ompletion speci\214cation for each)-2.81 F F1(name)2.81 E F0 2.81(,o)C +1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F1(name)2.81 E F0(s)A 1.347 (are supplied, all completion speci\214cations.)144 691.2 R(The)6.347 E -F2<ad44>3.847 E F0 1.347(option indicates that the remaining options) +F2<ad44>3.847 E F0 1.346(option indicates that the remaining options) 3.847 F .5(and actions should apply to the `)144 703.2 R(`def)-.74 E (ault')-.1 E 3('c)-.74 G .5 (ommand completion; that is, completion attempted on)-3 F 3.455(ac)144 @@ -6419,54 +6440,53 @@ F2<ad44>3.847 E F0 1.347(option indicates that the remaining options) (viously been de\214ned.)-.25 F(The)5.955 E F2<ad45>3.455 E F0 .955 (option indicates that)3.455 F 3.009 (the remaining options and actions should apply to `)144 727.2 R -(`empty')-.74 E 5.509('c)-.74 G 3.009(ommand completion; that is,)-5.509 -F(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(53)185.545 E 0 Cg EP +(`empty')-.74 E 5.509('c)-.74 G 3.01(ommand completion; that is,)-5.509 +F(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(53)193.45 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(completion attempted on a blank line.)144 84 Q 1.437 +-.35 E(completion attempted on a blank line.)144 84 Q 1.438 (The process of applying these completion speci\214cations when w)144 -108 R 1.438(ord completion is attempted is)-.1 F(described abo)144 120 Q +108 R 1.437(ord completion is attempted is)-.1 F(described abo)144 120 Q .3 -.15(ve u)-.15 H(nder).15 E/F1 10/Times-Bold@0 SF(Pr)2.5 E -(ogrammable Completion)-.18 E F0(.)A .556 -(Other options, if speci\214ed, ha)144 144 R .856 -.15(ve t)-.2 H .555 +(ogrammable Completion)-.18 E F0(.)A .555 +(Other options, if speci\214ed, ha)144 144 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.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 156 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 168 Q F1(complete)2.5 E F0 -.2 +(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 156 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 168 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 180 Q/F2 10/Times-Italic@0 SF(comp-option)2.5 E F0(The)184 192 Q F2 -(comp-option)2.791 E F0 .291(controls se)2.791 F -.15(ve)-.25 G .291 +(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 204 Q F2(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 216 Q F0 .281(Perform the rest of the def)224 228 R(ault)-.1 E F1(bash) 2.781 E F0 .281(completions if the compspec generates no)2.781 F -(matches.)224 240 Q F1(default)184 252 Q F0 2.876(Use readline')10 F -5.376(sd)-.55 G(ef)-5.376 E 2.875 +(matches.)224 240 Q F1(default)184 252 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 264 Q F1(dir)184 276 Q(names)-.15 E F0(Perform directory name compl\ etion if the compspec generates no matches.)224 288 Q F1(\214lenames)184 300 Q F0 -.7(Te)224 312 S .137(ll readline that the compspec generates \ -\214lenames, so it can perform an).7 F 2.637<798c>-.15 G(le-)-2.637 E +\214lenames, so it can perform an).7 F 2.636<798c>-.15 G(le-)-2.636 E .134(name\255speci\214c processing \(lik)224 324 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 336 R .45 (Intended to be used with shell)5.45 F(functions.)224 348 Q F1(noquote) 184 360 Q F0 -.7(Te)5.55 G .814 (ll readline not to quote the completed w).7 F .814(ords if the)-.1 F -3.314(ya)-.15 G .814(re \214lenames \(quoting)-3.314 F +3.314(ya)-.15 G .815(re \214lenames \(quoting)-3.314 F (\214lenames is the def)224 372 Q(ault\).)-.1 E F1(nospace)184 384 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 396 Q F1(plusdirs)184 408 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 420 R 3.084(ym)-.15 G +-4.485 F .584(completion is attempted and an)224 420 R 3.084(ym)-.15 G .584(atches are added to the results of the other)-3.084 F(actions.)224 432 Q F1<ad41>144 444 Q F2(action)2.5 E F0(The)184 456 Q F2(action)2.5 E F0(may be one of the follo)2.5 E @@ -6492,7 +6512,7 @@ E F0(.)A F1(function)184 636 Q F0(Names of shell functions.)224 648 Q F1 (bu)2.5 G(iltin.).2 E F1(hostname)184 696 Q F0(Hostnames, as tak)224 708 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(GNU Bash 4.2)72 768 Q -(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(54)185.545 E 0 Cg EP +(2013 January 8)144.29 E(54)193.45 E 0 Cg EP %%Page: 55 55 %%BeginPageSetup BP @@ -6516,299 +6536,299 @@ F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1 (May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 204 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<ad43>144 216 Q/F2 -10/Times-Italic@0 SF(command)2.5 E(command)184 228 Q F0 1.056(is e)3.556 -F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056 +10/Times-Italic@0 SF(command)2.5 E(command)184 228 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 240 Q F1<ad46>144 252 Q F2(function)2.5 E F0 .113 +184 240 Q F1<ad46>144 252 Q F2(function)2.5 E F0 .114 (The shell function)184 264 R F2(function)2.614 E F0 .114(is e)2.614 F -.15(xe)-.15 G .114(cuted in the current shell en).15 F 2.614 -(vironment. When)-.4 F .114(the func-)2.614 F .817(tion is e)184 276 R --.15(xe)-.15 G .817(cuted, the \214rst ar).15 F .817(gument \()-.18 F F1 -($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .816 +(vironment. When)-.4 F .113(the func-)2.613 F .816(tion is e)184 276 R +-.15(xe)-.15 G .816(cuted, the \214rst ar).15 F .816(gument \()-.18 F F1 +($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .817 (he name of the command whose ar)-3.316 F(guments)-.18 E 1.407 (are being completed, the second ar)184 288 R 1.407(gument \()-.18 F F1 ($2)A F0 3.907(\)i)C 3.907(st)-3.907 G 1.407(he w)-3.907 F 1.407 -(ord being completed, and the)-.1 F .104(third ar)184 300 R .104 -(gument \()-.18 F F1($3)A F0 2.604(\)i)C 2.604(st)-2.604 G .104(he w) --2.604 F .104(ord preceding the w)-.1 F .103 -(ord being completed on the current com-)-.1 F .101(mand line.)184 312 R -.101(When it \214nishes, the possible completions are retrie)5.101 F --.15(ve)-.25 G 2.602(df).15 G .102(rom the v)-2.602 F .102(alue of the) +(ord being completed, and the)-.1 F .103(third ar)184 300 R .103 +(gument \()-.18 F F1($3)A F0 2.603(\)i)C 2.603(st)-2.603 G .103(he w) +-2.603 F .104(ord preceding the w)-.1 F .104 +(ord being completed on the current com-)-.1 F .102(mand line.)184 312 R +.102(When it \214nishes, the possible completions are retrie)5.102 F +-.15(ve)-.25 G 2.601(df).15 G .101(rom the v)-2.601 F .101(alue of the) -.25 F/F3 9/Times-Bold@0 SF(COMPREPL)184 324 Q(Y)-.828 E F0(array v)2.25 -E(ariable.)-.25 E F1<ad47>144 336 Q F2(globpat)2.5 E F0 1.008 -(The pathname e)184 348 R 1.008(xpansion pattern)-.15 F F2(globpat)3.507 -E F0 1.007(is e)3.507 F 1.007(xpanded to generate the possible comple-) +E(ariable.)-.25 E F1<ad47>144 336 Q F2(globpat)2.5 E F0 1.007 +(The pathname e)184 348 R 1.007(xpansion pattern)-.15 F F2(globpat)3.507 +E F0 1.007(is e)3.507 F 1.008(xpanded to generate the possible comple-) -.15 F(tions.)184 360 Q F1<ad50>144 372 Q F2(pr)2.5 E(e\214x)-.37 E(pr) -184 384 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534 +184 384 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 396 Q F1<ad53>144 408 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 F1<ad57>144 420 Q F2(wor)2.5 E -(dlist)-.37 E F0(The)184 432 Q F2(wor)3.64 E(dlist)-.37 E F0 1.14 -(is split using the characters in the)3.64 F F3(IFS)3.64 E F0 1.139 -(special v)3.39 F 1.139(ariable as delimiters, and)-.25 F 2.007 -(each resultant w)184 444 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 +(dlist)-.37 E F0(The)184 432 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 444 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 456 Q(ord being completed.)-.1 E -F1<ad58>144 468 Q F2(\214lterpat)2.5 E(\214lterpat)184 480 Q F0 .456 -(is a pattern as used for pathname e)2.956 F 2.956(xpansion. It)-.15 F -.455(is applied to the list of possible)2.956 F 1.596 +F1<ad58>144 468 Q F2(\214lterpat)2.5 E(\214lterpat)184 480 Q F0 .455 +(is a pattern as used for pathname e)2.955 F 2.956(xpansion. It)-.15 F +.456(is applied to the list of possible)2.956 F 1.596 (completions generated by the preceding options and ar)184 492 R 1.596 (guments, and each completion)-.18 F(matching)184 504 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 +3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 G .704 +(rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0 +(in)3.204 E F2(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 G .705 (tes the pattern;).05 F(in this case, an)184 516 Q 2.5(yc)-.15 G (ompletion not matching)-2.5 E F2(\214lterpat)2.5 E F0(is remo)2.5 E --.15(ve)-.15 G(d.).15 E .466(The return v)144 532.8 R .466 +-.15(ve)-.15 G(d.).15 E .467(The return v)144 532.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.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 544.8 R F2(name)3.862 E F0(ar)3.862 E 1.361 -(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H -1.361(ompletion speci\214cation for a).15 F F2(name)144 556.8 Q F0 +(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 544.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 556.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 573.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C F1(\255DE)-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 585.6 R F2(name)2.947 E F0 .447(according to the)2.947 F F2(option)2.947 E F0 -.447(s, or for the currently-e)B -.15(xe)-.15 G(cuting).15 E .726 -(completion if no)144 597.6 R F2(name)3.226 E F0 3.226(sa)C .726 -(re supplied.)-3.226 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa) -C .725(re gi)-3.225 F -.15(ve)-.25 G .725 +.447(s, or for the currently-e)B -.15(xe)-.15 G(cuting).15 E .725 +(completion if no)144 597.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 609.6 Q F2(name) -3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v) +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 .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 621.6 Q F0 -.2(bu) -2.798 G .298(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T).15 G(he) +F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 621.6 Q F0 -.2(bu) +2.797 G .297(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T).15 G(he) -5.297 E F1<ad44>2.797 E F0 .297 (option indicates that the remaining options should apply to)2.797 F -1.227(the `)144 633.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\ +1.228(the `)144 633.6 R(`def)-.74 E(ault')-.1 E 3.728('c)-.74 G 1.228(o\ mmand completion; that is, completion attempted on a command for which \ -no)-3.727 F 2.178(completion has pre)144 645.6 R 2.178 -(viously been de\214ned.)-.25 F(The)7.178 E F1<ad45>4.678 E F0 2.177 -(option indicates that the remaining options)4.677 F(should apply to `) +no)-3.728 F 2.177(completion has pre)144 645.6 R 2.177 +(viously been de\214ned.)-.25 F(The)7.177 E F1<ad45>4.677 E F0 2.178 +(option indicates that the remaining options)4.678 F(should apply to `) 144 657.6 Q(`empty')-.74 E 2.5('c)-.74 G (ommand completion; that is, completion attempted on a blank line.)-2.5 -E 1.387(The return v)144 681.6 R 1.387(alue is true unless an in)-.25 F --.25(va)-.4 G 1.388 +E 1.388(The return v)144 681.6 R 1.388(alue is true unless an in)-.25 F +-.25(va)-.4 G 1.387 (lid option is supplied, an attempt is made to modify the).25 F (options for a)144 693.6 Q F2(name)2.5 E F0 (for which no completion speci\214cation e)2.5 E -(xists, or an output error occurs.)-.15 E(GNU Bash 4.2)72 768 Q(2012 No) -136.385 E -.15(ve)-.15 G(mber 24).15 E(55)185.545 E 0 Cg EP +(xists, or an output error occurs.)-.15 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(55)193.45 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/F1 10/Times-Bold@0 SF(continue)108 84 Q F0([)2.5 E/F2 10 -/Times-Italic@0 SF(n)A F0(])A 1.754(Resume the ne)144 96 R 1.754 +/Times-Italic@0 SF(n)A F0(])A 1.753(Resume the ne)144 96 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.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 108 R F2(n)3.709 E F0 +(select)4.254 E F0 4.254(loop. If)4.254 F F2(n)4.614 E F0 1.754 +(is speci\214ed,)4.494 F 1.209(resume at the)144 108 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 +(is greater than the number of enclosing)3.949 F .513 (loops, the last enclosing loop \(the `)144 120 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 132 Q F1(declar)108 148.8 Q +(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 F2(n)3.014 E F0(is) +3.014 E(not greater than or equal to 1.)144 132 Q F1(declar)108 148.8 Q (e)-.18 E F0([)2.5 E F1(\255aAfFgilnrtux)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 160.8 Q F0([)2.5 E F1(\255aAfFgilnrtux)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 172.8 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) +(..])-2.5 E 1.265(Declare v)144 172.8 R 1.265(ariables and/or gi)-.25 F +1.565 -.15(ve t)-.25 H 1.265(hem attrib).15 F 3.765(utes. If)-.2 F(no) 3.765 E F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 -G 3.765(nt).15 G 1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F --.25(va)144 184.8 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 196.8 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 208.8 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 -220.8 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 232.8 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 functio\ -n de\214nitions; only the function name and attrib)144 244.8 R 2.423 -(utes are)-.2 F 2.664(printed. If)144 256.8 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 +G 3.764(nt).15 G 1.264(hen display the v)-3.764 F 1.264(alues of)-.25 F +-.25(va)144 184.8 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 196.8 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 208.8 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 220.8 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 232.8 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 244.8 R 2.422 +(utes are)-.2 F 2.663(printed. If)144 256.8 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.288(where the function is de\214ned are displayed as well.)144 268.8 R(The)6.288 E F1<ad46>3.788 E F0 1.288(option implies)3.788 F F1<ad66> -3.788 E F0 6.288(.T)C(he)-6.288 E F1<ad67>3.789 E F0(option)3.789 E .491 -(forces v)144 280.8 R .491 +3.788 E F0 6.288(.T)C(he)-6.288 E F1<ad67>3.788 E F0(option)3.788 E .49 +(forces v)144 280.8 R .49 (ariables to be created or modi\214ed at the global scope, e)-.25 F -.15 -(ve)-.25 G 2.99(nw).15 G(hen)-2.99 E F1(declar)2.99 E(e)-.18 E F0 .49 -(is e)2.99 F -.15(xe)-.15 G .49(cuted in a).15 F .124(shell function.) -144 292.8 R .124(It is ignored in all other cases.)5.124 F .125 -(The follo)5.125 F .125(wing options can be used to restrict output)-.25 -F(to v)144 304.8 Q(ariables with the speci\214ed attrib)-.25 E -(ute or to gi)-.2 E .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 -E F1<ad61>144 316.8 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 328.8 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 340.8 Q F0(Use function names only) -26.97 E(.)-.65 E F1<ad69>144 352.8 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/F4 9/Times-Bold@0 SF .557 -(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)180 364.8 Q F0(abo) -2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G(erformed when the v) --2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E F1<ad6c>144 376.8 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 388.8 R -(upper)2.5 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad6e>144 400.8 -Q F0(Gi)24.74 E 1.62 -.15(ve e)-.25 H(ach).15 E F2(name)3.82 E F0(the) -3.82 E F2(namer)3.819 E(ef)-.37 E F0(attrib)3.819 E 1.319 +(ve)-.25 G 2.991(nw).15 G(hen)-2.991 E F1(declar)2.991 E(e)-.18 E F0 +.491(is e)2.991 F -.15(xe)-.15 G .491(cuted in a).15 F .125 +(shell function.)144 292.8 R .125(It is ignored in all other cases.) +5.125 F .125(The follo)5.125 F .124 +(wing options can be used to restrict output)-.25 F(to v)144 304.8 Q +(ariables with the speci\214ed attrib)-.25 E(ute or to gi)-.2 E .3 -.15 +(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F1<ad61>144 316.8 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 328.8 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 +340.8 Q F0(Use function names only)26.97 E(.)-.65 E F1<ad69>144 352.8 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 364.8 Q F0(abo)2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G +(erformed when the v)-2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E +F1<ad6c>144 376.8 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 388.8 R(upper)2.5 E(-case attrib)-.2 E +(ute is disabled.)-.2 E F1<ad6e>144 400.8 Q F0(Gi)24.74 E 1.619 -.15 +(ve e)-.25 H(ach).15 E F2(name)3.819 E F0(the)3.819 E F2(namer)3.819 E +(ef)-.37 E F0(attrib)3.819 E 1.319 (ute, making it a name reference to another v)-.2 F(ariable.)-.25 E -1.032(That other v)180 412.8 R 1.033(ariable is de\214ned by the v)-.25 +1.033(That other v)180 412.8 R 1.033(ariable is de\214ned by the v)-.25 F 1.033(alue of)-.25 F F2(name)3.533 E F0 6.033(.A)C 1.033 -(ll references and assignments to)-6.033 F F2(name)180 424.8 Q F0 4.033 -(,e)C 1.533(xcept for changing the)-4.183 F F1<ad6e>4.032 E F0(attrib) -4.032 E 1.532(ute itself, are performed on the v)-.2 F 1.532 +(ll references and assignments to)-6.033 F F2(name)180 424.8 Q F0 4.032 +(,e)C 1.532(xcept for changing the)-4.182 F F1<ad6e>4.032 E F0(attrib) +4.032 E 1.532(ute itself, are performed on the v)-.2 F 1.533 (ariable refer)-.25 F(-)-.2 E(enced by)180 436.8 Q F2(name)2.5 E F0 1.1 -.55('s v)D 2.5(alue. The).3 F F1<ad6e>2.5 E F0(attrib)2.5 E (ute cannot be applied to array v)-.2 E(ariables.)-.25 E F1<ad72>144 -448.8 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 +448.8 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 460.8 Q F1<ad74>144 472.8 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 484.8 Q +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 484.8 Q (The trace attrib)5 E(ute has no special meaning for v)-.2 E(ariables.) --.25 E F1<ad75>144 496.8 Q F0 .909(When the v)24.74 F .909 +-.25 E F1<ad75>144 496.8 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 .91(rted to upper).15 F(-) --.2 E 2.5(case. The)180 508.8 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E -(ute is disabled.)-.2 E F1<ad78>144 520.8 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 537.6 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 -.644(to destro)144 549.6 R 3.144(ya)-.1 G 3.144(na)-3.144 G .644(rray v) --3.144 F .644(ariable and)-.25 F F1(+r)3.145 E F0 .645(will not remo) -3.145 F .945 -.15(ve t)-.15 H .645(he readonly attrib).15 F 3.145 -(ute. When)-.2 F .645(used in a func-)3.145 F(tion,)144 561.6 Q F1 +(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to upper).15 F +(-)-.2 E 2.5(case. The)180 508.8 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 +E(ute is disabled.)-.2 E F1<ad78>144 520.8 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 537.6 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 +.645(to destro)144 549.6 R 3.145(ya)-.1 G 3.145(na)-3.145 G .645(rray v) +-3.145 F .645(ariable and)-.25 F F1(+r)3.145 E F0 .645(will not remo) +3.145 F .945 -.15(ve t)-.15 H .645(he readonly attrib).15 F 3.144 +(ute. When)-.2 F .644(used in a func-)3.144 F(tion,)144 561.6 Q F1 (declar)2.835 E(e)-.18 E F0(and)2.835 E F1(typeset)2.835 E F0(mak)2.835 E 2.835(ee)-.1 G(ach)-2.835 E F2(name)2.835 E F0 .335 (local, as with the)2.835 F F1(local)2.835 E F0 .335 -(command, unless the)2.835 F F1<ad67>2.835 E F0(option)2.835 E .133 -(is supplied.)144 573.6 R .133(If a v)5.133 F .133 +(command, unless the)2.835 F F1<ad67>2.835 E F0(option)2.835 E .134 +(is supplied.)144 573.6 R .134(If a v)5.134 F .134 (ariable name is follo)-.25 F .134(wed by =)-.25 F F2(value)A F0 2.634 -(,t)C .134(he v)-2.634 F .134(alue of the v)-.25 F .134 -(ariable is set to)-.25 F F2(value)2.634 E F0 5.134(.T)C(he)-5.134 E -.801(return v)144 585.6 R .801(alue is 0 unless an in)-.25 F -.25(va)-.4 -G .8 +(,t)C .134(he v)-2.634 F .134(alue of the v)-.25 F .133 +(ariable is set to)-.25 F F2(value)2.633 E F0 5.133(.T)C(he)-5.133 E .8 +(return v)144 585.6 R .8(alue is 0 unless an in)-.25 F -.25(va)-.4 G +.801 (lid option is encountered, an attempt is made to de\214ne a function) -.25 F(using)144 597.6 Q/F5 10/Courier@0 SF 1.038(\255f foo=bar)3.538 F -F0 3.538(,a)C 3.538(na)-3.538 G 1.038(ttempt is made to assign a v) --3.538 F 1.038(alue to a readonly v)-.25 F 1.039(ariable, an attempt is) +.25 F(using)144 597.6 Q/F5 10/Courier@0 SF 1.039(\255f foo=bar)3.539 F +F0 3.539(,a)C 3.539(na)-3.539 G 1.038(ttempt is made to assign a v) +-3.539 F 1.038(alue to a readonly v)-.25 F 1.038(ariable, an attempt is) -.25 F .974(made to assign a v)144 609.6 R .974(alue to an array v)-.25 F .974(ariable without using the compound assignment syntax \(see)-.25 F F1(Arrays)144 621.6 Q F0(abo)2.86 E -.15(ve)-.15 G .36(\), one of the) .15 F F2(names)2.86 E F0 .36(is not a v)2.86 F .36(alid shell v)-.25 F -.36(ariable name, an attempt is made to turn of)-.25 F(f)-.25 E .057 +.36(ariable name, an attempt is made to turn of)-.25 F(f)-.25 E .056 (readonly status for a readonly v)144 633.6 R .057 -(ariable, an attempt is made to turn of)-.25 F 2.556(fa)-.25 G .056 -(rray status for an array v)-2.556 F(ari-)-.25 E +(ariable, an attempt is made to turn of)-.25 F 2.557(fa)-.25 G .057 +(rray status for an array v)-2.557 F(ari-)-.25 E (able, or an attempt is made to display a non-e)144 645.6 Q (xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1 (dirs [\255clpv] [+)108 662.4 Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 -(])A F0 -.4(Wi)144 674.4 S .328 +(])A F0 -.4(Wi)144 674.4 S .329 (thout options, displays the list of currently remembered directories.) -.4 F .329(The def)5.329 F .329(ault display is on a)-.1 F 1.238 +.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 686.4 R 1.238 (Directories are added to the list with the)6.238 F F1(pushd)144 698.4 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<ad63>144 710.4 Q F0 (Clears the directory stack by deleting all of the entries.)25.86 E -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(56)185.545 E 0 Cg EP +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(56)193.45 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/F1 10/Times-Bold@0 SF<ad6c>144 84 Q F0 .881 -(Produces a listing using full pathnames; the def)27.52 F .882 +-.35 E/F1 10/Times-Bold@0 SF<ad6c>144 84 Q F0 .882 +(Produces a listing using full pathnames; the def)27.52 F .881 (ault listing format uses a tilde to denote)-.1 F(the home directory)180 96 Q(.)-.65 E F1<ad70>144 108 Q F0 (Print the directory stack with one entry per line.)24.74 E F1<ad76>144 -120 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 132 Q F1(+)144 144 Q/F2 10/Times-Italic@0 SF(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 +120 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 132 Q F1(+)144 144 Q/F2 10/Times-Italic@0 SF(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 156 Q F1<ad>144 168 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 180 Q .257(The return v)144 +(without options, starting with zero.)180 180 Q .258(The return v)144 196.8 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 208.8 Q F1(diso)108 225.6 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 237.6 S .122(thout options, remo).4 F .422 -.15 +(...])2.5 E -.4(Wi)144 237.6 S .121(thout options, remo).4 F .422 -.15 (ve e)-.15 H(ach).15 E F2(jobspec)4.362 E F0 .122 (from the table of acti)2.932 F .422 -.15(ve j)-.25 H 2.622(obs. If).15 -F F2(jobspec)4.362 E F0 .121(is not present, and)2.932 F(neither)144 -249.6 Q F1<ad61>3.836 E F0(nor)3.836 E F1<ad72>3.836 E F0 1.336 -(is supplied, the shell')3.836 F 3.836(sn)-.55 G 1.336(otion of the) --3.836 F F2(curr)3.836 E 1.336(ent job)-.37 F F0 1.337(is used.)3.836 F -1.337(If the)6.337 F F1<ad68>3.837 E F0 1.337(option is)3.837 F(gi)144 -261.6 Q -.15(ve)-.25 G .141(n, each).15 F F2(jobspec)4.381 E F0 .141 -(is not remo)2.951 F -.15(ve)-.15 G 2.641(df).15 G .141 -(rom the table, b)-2.641 F .141(ut is mark)-.2 F .141(ed so that)-.1 F -/F3 9/Times-Bold@0 SF(SIGHUP)2.641 E F0 .14(is not sent to the)2.39 F -.004(job if the shell recei)144 273.6 R -.15(ve)-.25 G 2.504(sa).15 G F3 +F F2(jobspec)4.362 E F0 .122(is not present, and)2.932 F(neither)144 +249.6 Q F1<ad61>3.837 E F0(nor)3.837 E F1<ad72>3.837 E F0 1.337 +(is supplied, the shell')3.837 F 3.836(sn)-.55 G 1.336(otion of the) +-3.836 F F2(curr)3.836 E 1.336(ent job)-.37 F F0 1.336(is used.)3.836 F +1.336(If the)6.336 F F1<ad68>3.836 E F0 1.336(option is)3.836 F(gi)144 +261.6 Q -.15(ve)-.25 G .14(n, each).15 F F2(jobspec)4.38 E F0 .14 +(is not remo)2.95 F -.15(ve)-.15 G 2.641(df).15 G .141(rom the table, b) +-2.641 F .141(ut is mark)-.2 F .141(ed so that)-.1 F/F3 9/Times-Bold@0 +SF(SIGHUP)2.641 E F0 .141(is not sent to the)2.391 F .005 +(job if the shell recei)144 273.6 R -.15(ve)-.25 G 2.504(sa).15 G F3 (SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 .004(If no)4.504 F F2(jobspec) 4.244 E F0 .004(is present, and neither the)2.814 F F1<ad61>2.504 E F0 -.005(nor the)2.504 F F1<ad72>2.505 E F0 .005(option is)2.505 F 1.229 -(supplied, the)144 285.6 R F2(curr)3.729 E 1.229(ent job)-.37 F F0 1.229 +.004(nor the)2.504 F F1<ad72>2.504 E F0 .004(option is)2.504 F 1.228 +(supplied, the)144 285.6 R F2(curr)3.728 E 1.228(ent job)-.37 F F0 1.229 (is used.)3.729 F 1.229(If no)6.229 F F2(jobspec)5.469 E F0 1.229 -(is supplied, the)4.039 F F1<ad61>3.729 E F0 1.228(option means to remo) -3.729 F 1.528 -.15(ve o)-.15 H(r).15 E .656(mark all jobs; the)144 297.6 -R F1<ad72>3.156 E F0 .657(option without a)3.156 F F2(jobspec)4.897 E F0 -(ar)3.467 E .657(gument restricts operation to running jobs.)-.18 F(The) -5.657 E(return v)144 309.6 Q(alue is 0 unless a)-.25 E F2(jobspec)4.24 E +(is supplied, the)4.039 F F1<ad61>3.729 E F0 1.229(option means to remo) +3.729 F 1.529 -.15(ve o)-.15 H(r).15 E .657(mark all jobs; the)144 297.6 +R F1<ad72>3.157 E F0 .657(option without a)3.157 F F2(jobspec)4.897 E F0 +(ar)3.467 E .656(gument restricts operation to running jobs.)-.18 F(The) +5.656 E(return v)144 309.6 Q(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 326.4 Q F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 -E .425(Output the)144 338.4 R F2(ar)2.925 E(g)-.37 E F0 .424 +E .424(Output the)144 338.4 R F2(ar)2.924 E(g)-.37 E F0 .424 (s, separated by spaces, follo)B .424(wed by a ne)-.25 F 2.924 -(wline. The)-.25 F .424(return status is 0 unless a write)2.924 F .307 -(error occurs.)144 350.4 R(If)5.307 E F1<ad6e>2.807 E F0 .307 -(is speci\214ed, the trailing ne)2.807 F .308(wline is suppressed.)-.25 -F .308(If the)5.308 F F1<ad65>2.808 E F0 .308(option is gi)2.808 F -.15 -(ve)-.25 G .308(n, inter).15 F(-)-.2 E 1.349(pretation of the follo)144 +(wline. The)-.25 F .424(return status is 0 unless a write)2.924 F .308 +(error occurs.)144 350.4 R(If)5.308 E F1<ad6e>2.808 E F0 .308 +(is speci\214ed, the trailing ne)2.808 F .308(wline is suppressed.)-.25 +F .307(If the)5.308 F F1<ad65>2.807 E F0 .307(option is gi)2.807 F -.15 +(ve)-.25 G .307(n, inter).15 F(-)-.2 E 1.348(pretation of the follo)144 362.4 R 1.348(wing backslash-escaped characters is enabled.)-.25 F(The) -6.348 E F1<ad45>3.848 E F0 1.348(option disables the)3.848 F 1.054 +6.348 E F1<ad45>3.849 E F0 1.349(option disables the)3.849 F 1.055 (interpretation of these escape characters, e)144 374.4 R -.15(ve)-.25 G -3.555(no).15 G 3.555(ns)-3.555 G 1.055(ystems where the)-3.555 F 3.555 -(ya)-.15 G 1.055(re interpreted by def)-3.555 F(ault.)-.1 E(The)144 -386.4 Q F1(xpg_echo)3.459 E F0 .959 -(shell option may be used to dynamically determine whether or not)3.459 -F F1(echo)3.458 E F0 -.15(ex)3.458 G(pands).15 E .715 -(these escape characters by def)144 398.4 R(ault.)-.1 E F1(echo)5.715 E -F0 .716(does not interpret)3.215 F F1<adad>3.216 E F0 .716 -(to mean the end of options.)3.216 F F1(echo)5.716 E F0 +3.555(no).15 G 3.555(ns)-3.555 G 1.055(ystems where the)-3.555 F 3.554 +(ya)-.15 G 1.054(re interpreted by def)-3.554 F(ault.)-.1 E(The)144 +386.4 Q F1(xpg_echo)3.458 E F0 .959 +(shell option may be used to dynamically determine whether or not)3.458 +F F1(echo)3.459 E F0 -.15(ex)3.459 G(pands).15 E .716 +(these escape characters by def)144 398.4 R(ault.)-.1 E F1(echo)5.716 E +F0 .716(does not interpret)3.216 F F1<adad>3.216 E F0 .715 +(to mean the end of options.)3.216 F F1(echo)5.715 E F0 (interprets the follo)144 410.4 Q(wing escape sequences:)-.25 E F1(\\a) 144 422.4 Q F0(alert \(bell\))28.22 E F1(\\b)144 434.4 Q F0(backspace) 27.66 E F1(\\c)144 446.4 Q F0(suppress further output)28.78 E F1(\\e)144 @@ -6823,63 +6843,63 @@ Q F0(form feed)29.89 E F1(\\n)144 494.4 Q F0(ne)27.66 E 2.5(wl)-.25 G (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(\\u)144 578.4 Q F2(HHHH)A F0 -1.507(the Unicode \(ISO/IEC 10646\) character whose v)180 590.4 R 1.506 -(alue is the he)-.25 F 1.506(xadecimal v)-.15 F(alue)-.25 E F2(HHHH) -4.006 E F0(\(one to four he)180 602.4 Q 2.5(xd)-.15 G(igits\))-2.5 E F1 -(\\U)144 614.4 Q F2(HHHHHHHH)A F0 .547 +1.506(the Unicode \(ISO/IEC 10646\) character whose v)180 590.4 R 1.507 +(alue is the he)-.25 F 1.507(xadecimal v)-.15 F(alue)-.25 E F2(HHHH) +4.007 E F0(\(one to four he)180 602.4 Q 2.5(xd)-.15 G(igits\))-2.5 E F1 +(\\U)144 614.4 Q F2(HHHHHHHH)A F0 .548 (the Unicode \(ISO/IEC 10646\) character whose v)180 626.4 R .547 -(alue is the he)-.25 F .548(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-) -3.048 E(HHH)180 638.4 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G +(alue is the he)-.25 F .547(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-) +3.047 E(HHH)180 638.4 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G (igits\))-2.5 E F1(enable)108 655.2 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 667.2 R +(][)C F2(name)-2.5 E F0(...])2.5 E .277(Enable and disable b)144 667.2 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 +(uiltin allo)-.2 F .278(ws a disk command which has)-.25 F .834 (the same name as a shell b)144 679.2 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 +(ve)-.25 G 3.333(nt).15 G(hough)-3.333 E .989 (the shell normally searches for b)144 691.2 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 +(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 703.2 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.082 -G(TH)-.189 E F0 .081(instead of the shell b)144 715.2 R .081(uiltin v) --.2 F .081(ersion, run)-.15 F/F5 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 727.2 S 1.524 -(iltin command).2 F F2(name)4.384 E F0 1.524(from shared object)4.204 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 715.2 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 727.2 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(GNU Bash 4.2)72 768 Q -(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(57)185.545 E 0 Cg EP +(2013 January 8)144.29 E(57)193.45 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(The)144 84 Q/F1 10/Times-Bold@0 SF<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 10/Times-Italic@0 SF(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 96 R F1<ad70>2.898 E F0 .399(option is supplied, a list of shell b) +-.35 E(The)144 84 Q/F1 10/Times-Bold@0 SF<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 10/Times-Italic@0 SF(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 96 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 .399(guments, the)-.18 F .099 +(th no other option ar).4 F .398(guments, the)-.18 F .098 (list consists of all enabled shell b)144 108 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 +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 120 R 1.916 -(uiltins, with an indication of whether or not each is)-.2 F 2.879 -(enabled. If)144 132 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 144 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 156 +(uiltins, with an indication of whether or not each is)-.2 F 2.878 +(enabled. If)144 132 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 144 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 156 Q F1 -2.3 -.15(ev a)108 172.8 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E F0 -(...])2.5 E(The)144 184.8 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 196.8 R -.15(xe)-.15 G +(...])2.5 E(The)144 184.8 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 196.8 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) @@ -6887,82 +6907,82 @@ Q F1 -2.3 -.15(ev a)108 172.8 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E F0 (guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1 (exec)108 225.6 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 237.6 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 249.6 R .176 +-.37 E F0(]])A(If)144 237.6 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 249.6 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 .177 -(ginning of)-.15 F .5(the zeroth ar)144 261.6 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 273.6 Q F0 .638 -(to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138 +(option is supplied, the shell places a dash at the be)2.676 F .176 +(ginning of)-.15 F .499(the zeroth ar)144 261.6 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 273.6 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.499 E F0 .639(as the) -3.319 F 1.078(zeroth ar)144 285.6 R 1.077(gument to the e)-.18 F -.15 +(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 285.6 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 297.6 Q .876 -.15(ve s)-.25 H .576(hell e).15 F -.576(xits, unless the)-.15 F F1(execfail)3.076 E F0 .577 -(shell option is enabled.)3.077 F .577(In that case, it returns f)5.577 +.15 F(non-interacti)144 297.6 Q .877 -.15(ve s)-.25 H .577(hell e).15 F +.577(xits, unless the)-.15 F F1(execfail)3.077 E F0 .577 +(shell option is enabled.)3.077 F .576(In that case, it returns f)5.577 F(ail-)-.1 E 2.505(ure. An)144 309.6 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 321.6 Q 3.036(yr)-.15 G .536 -(edirections tak)-3.036 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536 +(is not speci\214ed,)3.275 F(an)144 321.6 Q 3.037(yr)-.15 G .537 +(edirections tak)-3.037 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 333.6 Q 2.5(,t)-.4 G (he return status is 1.)-2.5 E F1(exit)108 350.4 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) +6.29(]C)C .095(ause the shell to e)-6.29 F .095(xit with a status of) +-.15 F F2(n)2.595 E F0 5.095(.I)C(f)-5.095 E F2(n)2.955 E F0 .096 +(is omitted, the e)2.835 F .096(xit status is that of the last command) -.15 F -.15(exe)144 362.4 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9 /Times-Bold@0 SF(EXIT)2.5 E F0(is e)2.25 E -.15(xe)-.15 G (cuted before the shell terminates.).15 E F1(export)108 379.2 Q F0([)2.5 E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E -F0(]] ...)A F1(export \255p)108 391.2 Q F0 .256(The supplied)144 403.2 R +F0(]] ...)A F1(export \255p)108 391.2 Q F0 .257(The supplied)144 403.2 R F2(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257(vironment of subsequently e)-.4 F -.15 -(xe)-.15 G(cuted).15 E 2.627(commands. If)144 415.2 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) +(xe)-.15 G(cuted).15 E 2.626(commands. If)144 415.2 R(the)2.626 E F1 +<ad66>2.626 E F0 .127(option is gi)2.627 F -.15(ve)-.25 G .127(n, the) .15 F F2(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no) -5.127 F F2(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .126 +5.127 F F2(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .127 (n, or if the).15 F F1<ad70>144 427.2 Q F0 .048 -(option is supplied, a list of names of all e)2.547 F .048(xported v) --.15 F .048(ariables is printed.)-.25 F(The)5.048 E F1<ad6e>2.548 E F0 -.048(option causes the)2.548 F -.15(ex)144 439.2 S 1.447 +(option is supplied, a list of names of all e)2.548 F .048(xported v) +-.15 F .048(ariables is printed.)-.25 F(The)5.048 E F1<ad6e>2.547 E F0 +.047(option causes the)2.547 F -.15(ex)144 439.2 S 1.446 (port property to be remo).15 F -.15(ve)-.15 G 3.947(df).15 G 1.447 (rom each)-3.947 F F2(name)3.947 E F0 6.447(.I)C 3.947(fav)-6.447 G 1.447(ariable name is follo)-4.197 F 1.447(wed by =)-.25 F F2(wor)A(d) --.37 E F0 3.946(,t)C(he)-3.946 E -.25(va)144 451.2 S .741(lue of the v) -.25 F .741(ariable is set to)-.25 F F2(wor)3.241 E(d)-.37 E F0(.)A F1 -(export)5.741 E F0 .742(returns an e)3.242 F .742 -(xit status of 0 unless an in)-.15 F -.25(va)-.4 G .742(lid option is) -.25 F .032(encountered, one of the)144 463.2 R F2(names)2.532 E F0 .032 -(is not a v)2.532 F .032(alid shell v)-.25 F .032(ariable name, or)-.25 -F F1<ad66>2.531 E F0 .031(is supplied with a)2.531 F F2(name)2.891 E F0 -(that)2.711 E(is not a function.)144 475.2 Q F1(fc)108 492 Q F0([)2.5 E +-.37 E F0 3.947(,t)C(he)-3.947 E -.25(va)144 451.2 S .742(lue of the v) +.25 F .742(ariable is set to)-.25 F F2(wor)3.242 E(d)-.37 E F0(.)A F1 +(export)5.742 E F0 .742(returns an e)3.242 F .741 +(xit status of 0 unless an in)-.15 F -.25(va)-.4 G .741(lid option is) +.25 F .031(encountered, one of the)144 463.2 R F2(names)2.531 E F0 .031 +(is not a v)2.531 F .032(alid shell v)-.25 F .032(ariable name, or)-.25 +F F1<ad66>2.532 E F0 .032(is supplied with a)2.532 F F2(name)2.892 E F0 +(that)2.712 E(is not a function.)144 475.2 Q F1(fc)108 492 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 504 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2 -(cmd)-2.5 E F0(])A .431 +(cmd)-2.5 E F0(])A .432 (The \214rst form selects a range of commands from)144 516 R F2<8c72> -4.842 E(st)-.1 E F0(to)3.612 E F2(last)3.022 E F0 .432 -(from the history list and displays or)3.612 F .142(edits and re-e)144 -528 R -.15(xe)-.15 G .142(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs) +4.842 E(st)-.1 E F0(to)3.612 E F2(last)3.022 E F0 .431 +(from the history list and displays or)3.612 F .141(edits and re-e)144 +528 R -.15(xe)-.15 G .141(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs) .45 G(t).1 E F0(and)3.321 E F2(last)2.731 E F0 .141 (may be speci\214ed as a string \(to locate the last command)3.321 F(be) -144 540 Q .31(ginning with that string\) or as a number \(an inde)-.15 F -2.811(xi)-.15 G .311(nto the history list, where a ne)-2.811 F -.05(ga) --.15 G(ti).05 E .611 -.15(ve n)-.25 H(umber).15 E .315(is used as an of) -144 552 R .315(fset from the current command number\).)-.25 F(If)5.315 E -F2(last)2.904 E F0 .314(is not speci\214ed it is set to the cur)3.494 F -(-)-.2 E .948(rent command for listing \(so that)144 564 R/F4 10 +144 540 Q .311(ginning with that string\) or as a number \(an inde)-.15 +F 2.811(xi)-.15 G .31(nto the history list, where a ne)-2.811 F -.05(ga) +-.15 G(ti).05 E .61 -.15(ve n)-.25 H(umber).15 E .314(is used as an of) +144 552 R .314(fset from the current command number\).)-.25 F(If)5.314 E +F2(last)2.905 E F0 .315(is not speci\214ed it is set to the cur)3.495 F +(-)-.2 E .949(rent command for listing \(so that)144 564 R/F4 10 /Courier@0 SF .948(fc \255l \25510)3.448 F F0 .948 -(prints the last 10 commands\) and to)3.448 F F2<8c72>5.359 E(st)-.1 E -F0(other)4.129 E(-)-.2 E 2.5(wise. If)144 576 R F2<8c72>4.41 E(st)-.1 E +(prints the last 10 commands\) and to)3.448 F F2<8c72>5.358 E(st)-.1 E +F0(other)4.128 E(-)-.2 E 2.5(wise. If)144 576 R F2<8c72>4.41 E(st)-.1 E F0(is not speci\214ed it is set to the pre)3.18 E (vious command for editing and \25516 for listing.)-.25 E(The)144 600 Q F1<ad6e>2.522 E F0 .022 @@ -6971,29 +6991,29 @@ 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 612 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 624 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) +.334(the editor gi)144 624 R -.15(ve)-.25 G 2.834(nb).15 G(y)-2.834 E F2 +(ename)3.024 E F0 .335(is in)3.014 F -.2(vo)-.4 G -.1(ke).2 G 2.835(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 .63(the v)144 636 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E F0 --.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25 F -F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631 -(is not set.)2.881 F .631(If nei-)5.631 F .951(ther v)144 648 R .951 -(ariable is set,)-.25 F F2(vi)5.117 E F0 .951(is used.)5.117 F .95 -(When editing is complete, the edited commands are echoed and)5.951 F --.15(exe)144 660 S(cuted.).15 E .788(In the second form,)144 684 R F2 +(If)5.335 E F2(ename)3.025 E F0 .335(is not gi)3.015 F -.15(ve)-.25 G +(n,).15 E .631(the v)144 636 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 648 R .95 +(ariable is set,)-.25 F F2(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 660 S(cuted.).15 E .789(In the second form,)144 684 R F2 (command)3.288 E F0 .788(is re-e)3.288 F -.15(xe)-.15 G .788 (cuted after each instance of).15 F F2(pat)3.288 E F0 .788 -(is replaced by)3.288 F F2 -.37(re)3.289 G(p).37 E F0(.)A F2(Com-)5.789 -E(mand)144 696 Q F0 .347(is intepreted the same as)2.847 F F2<8c72>2.847 +(is replaced by)3.288 F F2 -.37(re)3.288 G(p).37 E F0(.)A F2(Com-)5.788 +E(mand)144 696 Q F0 .346(is intepreted the same as)2.846 F F2<8c72>2.847 E(st)-.1 E F0(abo)2.847 E -.15(ve)-.15 G 5.347(.A).15 G .347 -(useful alias to use with this is)-2.5 F F4 .346(r='fc \255s')2.847 F F0 -2.846(,s)C 2.846(ot)-2.846 G(hat)-2.846 E(typing)144 708 Q F4 7.165(rc) -3.665 G(c)-7.165 E F0 1.165(runs the last command be)3.665 F 1.166 -(ginning with)-.15 F F4(cc)3.666 E F0 1.166(and typing)3.666 F F4(r) -3.666 E F0(re-e)3.666 E -.15(xe)-.15 G 1.166(cutes the last com-).15 F -(mand.)144 720 Q(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G -(mber 24).15 E(58)185.545 E 0 Cg EP +(useful alias to use with this is)-2.5 F F4 .347(r='fc \255s')2.847 F F0 +2.847(,s)C 2.847(ot)-2.847 G(hat)-2.847 E(typing)144 708 Q F4 7.166(rc) +3.666 G(c)-7.166 E F0 1.166(runs the last command be)3.666 F 1.166 +(ginning with)-.15 F F4(cc)3.666 E F0 1.165(and typing)3.666 F F4(r) +3.665 E F0(re-e)3.665 E -.15(xe)-.15 G 1.165(cutes the last com-).15 F +(mand.)144 720 Q(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(58)193.45 +E 0 Cg EP %%Page: 59 59 %%BeginPageSetup BP @@ -7002,98 +7022,98 @@ BP -.35 E .142(If the \214rst form is used, the return v)144 84 R .142 (alue is 0 unless an in)-.25 F -.25(va)-.4 G .142 (lid option is encountered or).25 F/F1 10/Times-Italic@0 SF<8c72>4.552 E -(st)-.1 E F0(or)3.322 E F1(last)2.732 E F0 .454 +(st)-.1 E F0(or)3.322 E F1(last)2.732 E F0 .455 (specify history lines out of range.)144 96 R .454(If the)5.454 F/F2 10 /Times-Bold@0 SF<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 108 R -.15(xe)-.15 G .788(cuted or f).15 F .787 +2.954 F .454(alue is the v)-.25 F .454(alue of the)-.25 F .787 +(last command e)144 108 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 -.787(If the)5.787 F 1.135 +.788(If the)5.788 F 1.136 (second form is used, the return status is that of the command re-e)144 -120 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 132 Q +120 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F1(cmd)3.835 E F0 1.135 +(does not)4.405 F(specify a v)144 132 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 148.8 Q F0([)2.5 E F1(jobspec)A F0(])A(Resume) -144 160.8 Q F1(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413 +144 160.8 Q F1(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 F1(jobspec)5.653 E F0 -1.413(is not present, the)4.223 F(shell')144 172.8 Q 3.116(sn)-.55 G -.616(otion of the)-3.116 F F1(curr)3.116 E .616(ent job)-.37 F F0 .617 -(is used.)3.116 F .617(The return v)5.617 F .617 +1.414(is not present, the)4.223 F(shell')144 172.8 Q 3.117(sn)-.55 G +.617(otion of the)-3.117 F F1(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 184.8 Q -.363(ground, or f)-.15 F .363 -(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362 +.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 F1(jobspec)145.74 196.8 Q -F0 .004(does not specify a v)2.814 F .004(alid job or)-.25 F F1(jobspec) +F0 .004(does not specify a v)2.815 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 213.6 Q F1 (optstring name)2.5 E F0([)2.5 E F1(ar)A(gs)-.37 E F0(])A F2(getopts)144 225.6 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 237.6 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 249.6 Q .579 -(gument, which should be separated from it by white space.)-.18 F .578 +(is used by shell procedures to parse positional parameters.)3.293 F F1 +(optstring)6.023 E F0 .793(contains the option)3.513 F .15 +(characters to be recognized; if a character is follo)144 237.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 249.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 261.6 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 273.6 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 285.6 Q .085 +4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796 +(option in the shell v)144 273.6 R(ariable)-.25 E F1(name)3.296 E F0 +3.296(,i).18 G(nitializing)-3.296 E F1(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 285.6 Q .085 (gument to be processed into the v)-.18 F(ariable)-.25 E/F3 9 /Times-Bold@0 SF(OPTIND)2.585 E/F4 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 +4.585 E F0 .085(is initialized to 1 each time the shell)2.335 F .845 (or a shell script is in)144 297.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 F2 -(getopts)3.345 E F0 .845(places that ar)3.345 F(gument)-.18 E .803 -(into the v)144 309.6 R(ariable)-.25 E F3(OPT)3.303 E(ARG)-.81 E F4(.)A -F0 .803(The shell does not reset)5.303 F F3(OPTIND)3.303 E F0 .804 -(automatically; it must be manually)3.054 F .294 +(getopts)3.346 E F0 .846(places that ar)3.346 F(gument)-.18 E .804 +(into the v)144 309.6 R(ariable)-.25 E F3(OPT)3.304 E(ARG)-.81 E F4(.)A +F0 .803(The shell does not reset)5.304 F F3(OPTIND)3.303 E F0 .803 +(automatically; it must be manually)3.053 F .293 (reset between multiple calls to)144 321.6 R F2(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 333.6 -Q 2.043(When the end of options is encountered,)144 357.6 R F2(getopts) -4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.044 +2.793(ws)-.25 G .294(et of parameters)-2.793 F(is to be used.)144 333.6 +Q 2.044(When the end of options is encountered,)144 357.6 R F2(getopts) +4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.043 (alue greater than zero.)-.25 F F3(OPTIND)144 369.6 Q F0 (is set to the inde)2.25 E 2.5(xo)-.15 G 2.5(ft)-2.5 G (he \214rst non-option ar)-2.5 E(gument, and)-.18 E F1(name)2.5 E F0 -(is set to ?.)2.5 E F2(getopts)144 393.6 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 F1(ar)4.892 E(gs)-.37 E F0(,).27 E F2(getopts)144 -405.6 Q F0(parses those instead.)2.5 E F2(getopts)144 429.6 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 F1(optstring)3.895 E F0 1.166 -(is a colon,)3.886 F F1(silent)4.006 E F0(error)4.346 E 1.071 +(is set to ?.)2.5 E F2(getopts)144 393.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 F1(ar)4.893 E(gs)-.37 E F0(,).27 E F2(getopts)144 +405.6 Q F0(parses those instead.)2.5 E F2(getopts)144 429.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 F1(optstring)3.895 E F0 1.165 +(is a colon,)3.885 F F1(silent)4.005 E F0(error)4.345 E 1.07 (reporting is used.)144 441.6 R 1.071 -(In normal operation, diagnostic messages are printed when in)6.071 F --.25(va)-.4 G 1.07(lid options or).25 F .393(missing option ar)144 453.6 -R .393(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable) --.25 E F3(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F -(will be displayed, e)144 465.6 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft) --2.5 G(he \214rst character of)-2.5 E F1(optstring)2.73 E F0 -(is not a colon.)2.72 E .667(If an in)144 489.6 R -.25(va)-.4 G .667 -(lid option is seen,).25 F F2(getopts)3.167 E F0 .667(places ? into) -3.167 F F1(name)3.527 E F0 .666 -(and, if not silent, prints an error message)3.347 F .399(and unsets)144 -501.6 R F3(OPT)2.899 E(ARG)-.81 E F4(.)A F0(If)4.899 E F2(getopts)2.899 -E F0 .399(is silent, the option character found is placed in)2.899 F F3 -(OPT)2.899 E(ARG)-.81 E F0 .4(and no)2.65 F -(diagnostic message is printed.)144 513.6 Q 1.242(If a required ar)144 -537.6 R 1.242(gument is not found, and)-.18 F F2(getopts)3.741 E F0 -1.241(is not silent, a question mark \()3.741 F F2(?).833 E F0 3.741 -(\)i).833 G 3.741(sp)-3.741 G 1.241(laced in)-3.741 F F1(name)144 549.6 -Q F0(,).18 E F3(OPT)2.734 E(ARG)-.81 E F0 .234 -(is unset, and a diagnostic message is printed.)2.484 F(If)5.234 E F2 -(getopts)2.734 E F0 .235(is silent, then a colon \()2.734 F F2(:).833 E +(In normal operation, diagnostic messages are printed when in)6.07 F +-.25(va)-.4 G 1.071(lid options or).25 F .394(missing option ar)144 +453.6 R .394(guments are encountered.)-.18 F .394(If the v)5.394 F +(ariable)-.25 E F3(OPTERR)2.894 E F0 .394 +(is set to 0, no error messages)2.644 F(will be displayed, e)144 465.6 Q +-.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E +F1(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 489.6 R +-.25(va)-.4 G .666(lid option is seen,).25 F F2(getopts)3.166 E F0 .667 +(places ? into)3.167 F F1(name)3.527 E F0 .667 +(and, if not silent, prints an error message)3.347 F .4(and unsets)144 +501.6 R F3(OPT)2.9 E(ARG)-.81 E F4(.)A F0(If)4.899 E F2(getopts)2.899 E +F0 .399(is silent, the option character found is placed in)2.899 F F3 +(OPT)2.899 E(ARG)-.81 E F0 .399(and no)2.649 F +(diagnostic message is printed.)144 513.6 Q 1.241(If a required ar)144 +537.6 R 1.241(gument is not found, and)-.18 F F2(getopts)3.741 E F0 +1.241(is not silent, a question mark \()3.741 F F2(?).833 E F0 3.742 +(\)i).833 G 3.742(sp)-3.742 G 1.242(laced in)-3.742 F F1(name)144 549.6 +Q F0(,).18 E F3(OPT)2.735 E(ARG)-.81 E F0 .234 +(is unset, and a diagnostic message is printed.)2.485 F(If)5.234 E F2 +(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F2(:).833 E F0(\)).833 E(is placed in)144 561.6 Q F1(name)2.86 E F0(and)2.68 E F3 (OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F2 (getopts)144 585.6 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 +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 597.6 Q F2(hash)108 614.4 Q F0([)2.5 E F2(\255lr)A F0 2.5(][)C F2<ad70>-2.5 E F1(\214lename) 2.5 E F0 2.5(][)C F2(\255dt)-2.5 E F0 2.5(][)C F1(name)-2.5 E F0(])A @@ -7102,28 +7122,28 @@ F0(\)).833 E(is placed in)144 561.6 Q F1(name)2.86 E F0(and)2.68 E F3 3.718 E F0 .858(is determined by searching)3.538 F .956 (the directories in)144 638.4 R F2($P)3.456 E -.95(AT)-.74 G(H).95 E F0 .956(and remembered.)3.456 F(An)5.956 E 3.456(yp)-.15 G(re)-3.456 E .956 -(viously-remembered pathname is discarded.)-.25 F .242(If the)144 650.4 -R F2<ad70>2.742 E F0 .243 -(option is supplied, no path search is performed, and)2.742 F F1 -(\214lename)4.653 E F0 .243(is used as the full \214lename)2.923 F 1.712 -(of the command.)144 662.4 R(The)6.712 E F2<ad72>4.212 E F0 1.711 -(option causes the shell to for)4.212 F 1.711 -(get all remembered locations.)-.18 F(The)6.711 E F2<ad64>4.211 E F0 +(viously-remembered pathname is discarded.)-.25 F .243(If the)144 650.4 +R F2<ad70>2.743 E F0 .243 +(option is supplied, no path search is performed, and)2.743 F F1 +(\214lename)4.653 E F0 .242(is used as the full \214lename)2.923 F 1.711 +(of the command.)144 662.4 R(The)6.711 E F2<ad72>4.211 E F0 1.711 +(option causes the shell to for)4.211 F 1.712 +(get all remembered locations.)-.18 F(The)6.712 E F2<ad64>4.212 E F0 .833(option causes the shell to for)144 674.4 R .833 (get the remembered location of each)-.18 F F1(name)3.333 E F0 5.833(.I) C 3.333(ft)-5.833 G(he)-3.333 E F2<ad74>3.333 E F0 .833(option is sup-) -3.333 F .704(plied, the full pathname to which each)144 686.4 R F1(name) -3.204 E F0 .703(corresponds is printed.)3.204 F .703(If multiple)5.703 F -F1(name)3.203 E F0(ar)3.203 E(guments)-.18 E .795(are supplied with)144 +3.333 F .703(plied, the full pathname to which each)144 686.4 R F1(name) +3.204 E F0 .704(corresponds is printed.)3.204 F .704(If multiple)5.704 F +F1(name)3.204 E F0(ar)3.204 E(guments)-.18 E .795(are supplied with)144 698.4 R F2<ad74>3.295 E F0 3.295(,t)C(he)-3.295 E F1(name)3.295 E F0 .795(is printed before the hashed full pathname.)3.295 F(The)5.795 E F2 <ad6c>3.295 E F0 .795(option causes)3.295 F .934 (output to be displayed in a format that may be reused as input.)144 -710.4 R .934(If no ar)5.934 F .934(guments are gi)-.18 F -.15(ve)-.25 G -.934(n, or if).15 F(only)144 722.4 Q F2<ad6c>2.821 E F0 .321 -(is supplied, information about remembered commands is printed.)2.821 F -.322(The return status is true)5.322 F(GNU Bash 4.2)72 768 Q(2012 No) -136.385 E -.15(ve)-.15 G(mber 24).15 E(59)185.545 E 0 Cg EP +710.4 R .934(If no ar)5.934 F .935(guments are gi)-.18 F -.15(ve)-.25 G +.935(n, or if).15 F(only)144 722.4 Q F2<ad6c>2.822 E F0 .322 +(is supplied, information about remembered commands is printed.)2.822 F +.321(The return status is true)5.321 F(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(59)193.45 E 0 Cg EP %%Page: 60 60 %%BeginPageSetup BP @@ -7132,12 +7152,12 @@ BP -.35 E(unless a)144 84 Q/F1 10/Times-Italic@0 SF(name)2.86 E F0 (is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25 E/F2 10/Times-Bold@0 SF(help)108 100.8 Q F0([)2.5 E F2(\255dms)A F0 2.5 -(][)C F1(pattern)-2.5 E F0(])A .867(Display helpful information about b) +(][)C F1(pattern)-2.5 E F0(])A .866(Display helpful information about b) 144 112.8 R .867(uiltin commands.)-.2 F(If)5.867 E F1(pattern)4.617 E F0 -.866(is speci\214ed,)3.607 F F2(help)3.366 E F0(gi)3.366 E -.15(ve)-.25 -G 3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144 -124.8 R F1(pattern)2.806 E F0 2.807(;o).24 G .307 -(therwise help for all the b)-2.807 F .307 +.867(is speci\214ed,)3.607 F F2(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 +124.8 R F1(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 136.8 Q F2 <ad64>144 148.8 Q F0(Display a short description of each)24.74 E F1 (pattern)2.5 E F2<ad6d>144 160.8 Q F0(Display the description of each) @@ -7153,13 +7173,13 @@ F2(history \255p)108 254.4 Q F1(ar)2.5 E(g)-.37 E F0([)2.5 E F1(ar)A 2.5 -.37 E F0([)2.5 E F1(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144 278.4 S .752 (th no options, display the command history list with line numbers.).4 F -.752(Lines listed with a)5.752 F F2(*)3.251 E F0(ha)3.251 E -.15(ve)-.2 -G .38(been modi\214ed.)144 290.4 R .38(An ar)5.38 F .38(gument of)-.18 F -F1(n)3.24 E F0 .38(lists only the last)3.12 F F1(n)3.24 E F0 2.88 +.752(Lines listed with a)5.752 F F2(*)3.252 E F0(ha)3.252 E -.15(ve)-.2 +G .381(been modi\214ed.)144 290.4 R .38(An ar)5.38 F .38(gument of)-.18 +F F1(n)3.24 E F0 .38(lists only the last)3.12 F F1(n)3.24 E F0 2.88 (lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E/F3 9 -/Times-Bold@0 SF(HISTTIMEFOR-)2.881 E(MA)144 302.4 Q(T)-.855 E F0 .265 -(is set and not null, it is used as a format string for)2.515 F F1 -(strftime)2.764 E F0 .264(\(3\) to display the time stamp asso-)B 1.019 +/Times-Bold@0 SF(HISTTIMEFOR-)2.88 E(MA)144 302.4 Q(T)-.855 E F0 .264 +(is set and not null, it is used as a format string for)2.514 F F1 +(strftime)2.765 E F0 .265(\(3\) to display the time stamp asso-)B 1.02 (ciated with each displayed history entry)144 314.4 R 6.019(.N)-.65 G 3.519(oi)-6.019 G(nterv)-3.519 E 1.019 (ening blank is printed between the formatted)-.15 F .176 @@ -7171,63 +7191,64 @@ F1(n)3.24 E F0 .38(lists only the last)3.12 F F1(n)3.24 E F0 2.88 (wing meanings:)-.25 E F2<ad63>144 350.4 Q F0 (Clear the history list by deleting all the entries.)25.86 E F2<ad64>144 362.4 Q F1(of)2.5 E(fset)-.18 E F0(Delete the history entry at position) -180 374.4 Q F1(of)2.5 E(fset)-.18 E F0(.)A F2<ad61>144 386.4 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 +180 374.4 Q F1(of)2.5 E(fset)-.18 E F0(.)A F2<ad61>144 386.4 Q F0 .599 +(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.099('h)-.74 G .598 +(istory lines \(history lines entered since the be)-3.099 F .598 (ginning of the current)-.15 F F2(bash)180 398.4 Q F0 (session\) to the history \214le.)2.5 E F2<ad6e>144 410.4 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 +urrent history list.)24.74 F .773 (These are lines appended to the history \214le since the be)180 422.4 R -.773(ginning of the current)-.15 F F2(bash)3.273 E F0(ses-)3.273 E +.772(ginning of the current)-.15 F F2(bash)3.272 E F0(ses-)3.272 E (sion.)180 434.4 Q F2<ad72>144 446.4 Q F0(Read the contents of the hist\ ory \214le and append them to the current history list.)25.86 E F2<ad77> 144 458.4 Q F0(Write the current history list 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 F2<ad70>144 470.4 Q F0 .626 +(ontents.)-2.5 E F2<ad70>144 470.4 Q F0 .625 (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 +3.125 E(gs)-.37 E F0 .626(and display the result on the standard)3.125 F 2.975(output. Does)180 482.4 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 494.4 Q(xpansion.)-.15 E F2<ad73>144 506.4 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 +.362(Store the)26.41 F F1(ar)3.192 E(gs)-.37 E F0 .363 +(in the history list as a single entry)3.132 F 5.363(.T)-.65 G .363 (he last command in the history list is)-5.363 F(remo)180 518.4 Q -.15 (ve)-.15 G 2.5(db).15 G(efore the)-2.5 E F1(ar)2.83 E(gs)-.37 E F0 -(are added.)2.77 E .145(If the)144 535.2 R F3(HISTTIMEFORMA)2.645 E(T) +(are added.)2.77 E .146(If the)144 535.2 R F3(HISTTIMEFORMA)2.645 E(T) -.855 E F0 -.25(va)2.395 G .145 (riable is set, the time stamp information associated with each history) -.25 F .669(entry is written to the history \214le, mark)144 547.2 R .669 -(ed with the history comment character)-.1 F 5.668(.W)-.55 G .668 -(hen the history)-5.668 F .955(\214le is read, lines be)144 559.2 R .956 -(ginning with the history comment character follo)-.15 F .956 -(wed immediately by a digit)-.25 F .416 +.25 F .668(entry is written to the history \214le, mark)144 547.2 R .669 +(ed with the history comment character)-.1 F 5.669(.W)-.55 G .669 +(hen the history)-5.669 F .956(\214le is read, lines be)144 559.2 R .956 +(ginning with the history comment character follo)-.15 F .955 +(wed immediately by a digit)-.25 F .415 (are interpreted as timestamps for the pre)144 571.2 R .416 -(vious history line.)-.25 F .416(The return v)5.416 F .415 +(vious history line.)-.25 F .416(The return v)5.416 F .416 (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 583.2 R -.25(va)-.4 G(lid).25 E F1(of)3 E(fset)-.18 E F0(is) -3 E(supplied as an ar)144 595.2 Q(gument to)-.18 E F2<ad64>2.5 E F0 2.5 -(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E(xpansion supplied as an ar)-.15 -E(gument to)-.18 E F2<ad70>2.5 E F0 -.1(fa)2.5 G(ils.).1 E F2(jobs)108 -612 Q F0([)2.5 E F2(\255lnprs)A F0 2.5(][)C F1(jobspec)A F0(... ])2.5 E -F2(jobs \255x)108 624 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 636 Q .3 -.15(ve j) --.25 H 2.5(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo) -.15 E(wing meanings:)-.25 E F2<ad6c>144 648 Q F0 +, an in)144 583.2 R -.25(va)-.4 G(lid).25 E F1(of)2.999 E(fset)-.18 E F0 +(is)2.999 E(supplied as an ar)144 595.2 Q(gument to)-.18 E F2<ad64>2.5 E +F0 2.5(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E +(xpansion supplied as an ar)-.15 E(gument to)-.18 E F2<ad70>2.5 E F0 -.1 +(fa)2.5 G(ils.).1 E F2(jobs)108 612 Q F0([)2.5 E F2(\255lnprs)A F0 2.5 +(][)C F1(jobspec)A F0(... ])2.5 E F2(jobs \255x)108 624 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 636 Q .3 -.15(ve j)-.25 H 2.5 +(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E +(wing meanings:)-.25 E F2<ad6c>144 648 Q F0 (List process IDs in addition to the normal information.)27.52 E F2 -<ad6e>144 660 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 672 Q F2<ad70>144 +<ad6e>144 660 Q F0 .193(Display information only about jobs that ha) +24.74 F .494 -.15(ve c)-.2 H .194(hanged status since the user w).15 F +.194(as last noti-)-.1 F(\214ed of their status.)180 672 Q F2<ad70>144 684 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 F2<ad72>144 696 Q F0 (Display only running jobs.)25.86 E F2<ad73>144 708 Q F0 -(Display only stopped jobs.)26.41 E(If)144 724.8 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(GNU Bash 4.2)72 768 Q -(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(60)185.545 E 0 Cg EP +(Display only stopped jobs.)26.41 E(If)144 724.8 Q F1(jobspec)4.554 E F0 +.314(is gi)3.124 F -.15(ve)-.25 G .314 +(n, output is restricted to information about that job).15 F 5.313(.T) +-.4 G .313(he return status is 0 unless)-5.313 F(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(60)193.45 E 0 Cg EP %%Page: 61 61 %%BeginPageSetup BP @@ -7235,10 +7256,10 @@ BP /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) -.35 E(an in)144 84 Q -.25(va)-.4 G(lid option is encountered or an in) .25 E -.25(va)-.4 G(lid).25 E/F1 10/Times-Italic@0 SF(jobspec)4.24 E F0 -(is supplied.)2.81 E .395(If the)144 100.8 R/F2 10/Times-Bold@0 SF<ad78> -2.895 E F0 .394(option is supplied,)2.894 F F2(jobs)2.894 E F0 .394 +(is supplied.)2.81 E .394(If the)144 100.8 R/F2 10/Times-Bold@0 SF<ad78> +2.894 E F0 .394(option is supplied,)2.894 F F2(jobs)2.894 E F0 .394 (replaces an)2.894 F(y)-.15 E F1(jobspec)4.634 E F0 .394(found in)3.204 -F F1(command)3.094 E F0(or)3.664 E F1(ar)3.224 E(gs)-.37 E F0 .394 +F F1(command)3.094 E F0(or)3.664 E F1(ar)3.224 E(gs)-.37 E F0 .395 (with the corre-)3.164 F(sponding process group ID, and e)144 112.8 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 @@ -7246,34 +7267,34 @@ F2(kill)108 129.6 Q F0([)2.5 E F2<ad73>A F1(sigspec)2.5 E F0(|)2.5 E F2 <ad6e>2.5 E F1(signum)2.5 E F0(|)2.5 E F2<ad>2.5 E F1(sigspec)A F0 2.5 (][)C F1(pid)-2.5 E F0(|)2.5 E F1(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F2 (kill \255l)108 141.6 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 153.6 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 165.6 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 177.6 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) +G(it_status).2 E F0(])A .12(Send the signal named by)144 153.6 R F1 +(sigspec)2.96 E F0(or)2.93 E F1(signum)2.96 E F0 .119 +(to the processes named by)2.939 F F1(pid)3.869 E F0(or)3.389 E F1 +(jobspec)2.619 E F0(.).31 E F1(sigspec)5.459 E F0(is)2.929 E .318 +(either a case-insensiti)144 165.6 R .618 -.15(ve s)-.25 H .318 +(ignal name such as).15 F/F3 9/Times-Bold@0 SF(SIGKILL)2.818 E F0 .319 +(\(with or without the)2.569 F F3(SIG)2.819 E F0 .319 +(pre\214x\) or a signal)2.569 F(number;)144 177.6 Q F1(signum)4.189 E F0 +1.349(is a signal number)4.169 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 F3(SIGTERM)3.849 E F0 -1.349(is assumed.)3.599 F(An)6.349 E(ar)144 189.6 Q .523(gument of)-.18 +1.348(is assumed.)3.599 F(An)6.348 E(ar)144 189.6 Q .522(gument of)-.18 F F2<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 F2<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 201.6 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 213.6 Q .378(gument to)-.18 F -F2<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 225.6 +F1 -.2(ex)2.78 G(it_status).2 E F0(ar)144 213.6 Q .377(gument to)-.18 F +F2<ad6c>2.877 E F0 .378 +(is a number specifying either a signal number or the e)2.877 F .378 +(xit status of a process termi-)-.15 F .594(nated by a signal.)144 225.6 R F2(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 +.593(as successfully sent, or f)-.1 F .593(alse if an error)-.1 F (occurs or an in)144 237.6 Q -.25(va)-.4 G(lid option is encountered.) .25 E F2(let)108 254.4 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 266.4 Q F1(ar)3.027 E(g)-.37 E F0 .197 -(is an arithmetic e)2.917 F .197(xpression to be e)-.15 F -.25(va)-.25 G -.196(luated \(see).25 F F3 .196(ARITHMETIC EV)2.696 F(ALU)-1.215 E -.855 -(AT)-.54 G(ION).855 E F0(abo)2.446 E -.15(ve)-.15 G 2.696(\). If).15 F +E F0(...])2.5 E(Each)144 266.4 Q F1(ar)3.026 E(g)-.37 E F0 .196 +(is an arithmetic e)2.916 F .197(xpression to be e)-.15 F -.25(va)-.25 G +.197(luated \(see).25 F F3 .197(ARITHMETIC EV)2.697 F(ALU)-1.215 E -.855 +(AT)-.54 G(ION).855 E F0(abo)2.447 E -.15(ve)-.15 G 2.697(\). If).15 F (the last)144 278.4 Q F1(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G (luates to 0,).25 E F2(let)2.5 E F0(returns 1; 0 is returned otherwise.) 2.5 E F2(local)108 295.2 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(name) @@ -7281,19 +7302,19 @@ E F0(...])2.5 E(Each)144 266.4 Q F1(ar)3.027 E(g)-.37 E F0 .197 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 319.2 Q 3.153(yo)-.15 G 3.153(ft)-3.153 G .653 -(he options accepted by)-3.153 F F2(declar)3.153 E(e)-.18 E F0 5.652(.W) -C(hen)-5.652 E F2(local)3.152 E F0 .652 +.06(can be)2.56 F(an)144 319.2 Q 3.152(yo)-.15 G 3.152(ft)-3.152 G .652 +(he options accepted by)-3.152 F F2(declar)3.152 E(e)-.18 E F0 5.652(.W) +C(hen)-5.652 E F2(local)3.152 E F0 .653 (is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144 -331.2 Q F1(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 F2(local)144 343.2 Q F0 1.165 -(writes a list of local v)3.665 F 1.165 +331.2 Q F1(name)3.721 E F0 .861(to ha)3.541 F 1.161 -.15(ve a v)-.2 H +.861(isible scope restricted to that function and its children.).15 F +-.4(Wi)5.86 G .86(th no operands,).4 F F2(local)144 343.2 Q F0 1.164 +(writes a list of local v)3.664 F 1.165 (ariables to the standard output.)-.25 F 1.165(It is an error to use) -6.165 F F2(local)3.664 E F0 1.164(when not)3.664 F .232 -(within a function.)144 355.2 R .233(The return status is 0 unless)5.232 +6.165 F F2(local)3.665 E F0 1.165(when not)3.665 F .233 +(within a function.)144 355.2 R .233(The return status is 0 unless)5.233 F F2(local)2.733 E F0 .233(is used outside a function, an in)2.733 F --.25(va)-.4 G(lid).25 E F1(name)3.093 E F0(is)2.913 E(supplied, or)144 +-.25(va)-.4 G(lid).25 E F1(name)3.092 E F0(is)2.912 E(supplied, or)144 367.2 Q F1(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F2 (logout)108 384 Q F0(Exit a login shell.)9.33 E F2(map\214le)108 400.8 Q F0([)2.5 E F2<ad6e>A F1(count)2.5 E F0 2.5(][)C F2<ad4f>-2.5 E F1 @@ -7305,21 +7326,21 @@ F0([)2.5 E F2<ad6e>A F1(count)2.5 E F0 2.5(][)C F2<ad4f>-2.5 E F1 -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 .351 +(quantum)2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0(])A .35 (Read lines from the standard input into the inde)144 424.8 R -.15(xe) --.15 G 2.851(da).15 G .351(rray v)-2.851 F(ariable)-.25 E F1(arr)2.85 E -(ay)-.15 E F0 2.85(,o).32 G 2.85(rf)-2.85 G .35(rom \214le descriptor) --2.85 F F1(fd)2.85 E F0 1.248(if the)144 436.8 R F2<ad75>3.748 E F0 -1.248(option is supplied.)3.748 F 1.249(The v)6.249 F(ariable)-.25 E F3 -(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1 E F1(arr)3.749 E -(ay)-.15 E F0 6.249(.O)C 1.249(ptions, if supplied,)-6.249 F(ha)144 -448.8 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad6e> -144 460.8 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 472.8 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 484.8 Q F0 +-.15 G 2.851(da).15 G .351(rray v)-2.851 F(ariable)-.25 E F1(arr)2.851 E +(ay)-.15 E F0 2.851(,o).32 G 2.851(rf)-2.851 G .351 +(rom \214le descriptor)-2.851 F F1(fd)2.851 E F0 1.249(if the)144 436.8 +R F2<ad75>3.749 E F0 1.249(option is supplied.)3.749 F 1.249(The v)6.249 +F(ariable)-.25 E F3(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1 +E F1(arr)3.748 E(ay)-.15 E F0 6.248(.O)C 1.248(ptions, if supplied,) +-6.248 F(ha)144 448.8 Q .3 -.15(ve t)-.2 H(he follo).15 E +(wing meanings:)-.25 E F2<ad6e>144 460.8 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 472.8 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 484.8 Q F0 (Discard the \214rst)26.41 E F1(count)2.5 E F0(lines read.)2.5 E F2 <ad74>144 496.8 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H(railing ne).15 E (wline from each line read.)-.25 E F2<ad75>144 508.8 Q F0 @@ -7329,38 +7350,38 @@ F2<ad43>-2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)C F2<ad63>-2.5 E F1 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 532.8 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 549.6 Q F2<ad43>2.968 E F0 .467 +(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 549.6 Q F2<ad43>2.967 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 .261(plied the inde)144 561.6 R 2.761(xo)-.15 -G 2.761(ft)-2.761 G .261(he ne)-2.761 F .262(xt array element to be ass\ -igned and the line to be assigned to that element)-.15 F .275 -(as additional ar)144 573.6 R(guments.)-.18 E F1(callbac)5.275 E(k)-.2 E -F0 .275(is e)2.775 F -.25(va)-.25 G .274 -(luated after the line is read b).25 F .274 +(luated, it is sup-).25 F .262(plied the inde)144 561.6 R 2.762(xo)-.15 +G 2.762(ft)-2.762 G .262(he ne)-2.762 F .261(xt array element to be ass\ +igned and the line to be assigned to that element)-.15 F .274 +(as additional ar)144 573.6 R(guments.)-.18 E F1(callbac)5.274 E(k)-.2 E +F0 .274(is e)2.774 F -.25(va)-.25 G .274 +(luated after the line is read b).25 F .275 (ut before the array element is)-.2 F(assigned.)144 585.6 Q (If not supplied with an e)144 602.4 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 619.2 Q F0 1.905 -(returns successfully unless an in)4.405 F -.25(va)-.4 G 1.905 -(lid option or option ar).25 F 1.906(gument is supplied,)-.18 F F1(arr) -4.406 E(ay)-.15 E F0(is)4.406 E(in)144 631.2 Q -.25(va)-.4 G +(before assigning to it.)2.5 E F2(map\214le)144 619.2 Q F0 1.906 +(returns successfully unless an in)4.406 F -.25(va)-.4 G 1.905 +(lid option or option ar).25 F 1.905(gument is supplied,)-.18 F F1(arr) +4.405 E(ay)-.15 E F0(is)4.405 E(in)144 631.2 Q -.25(va)-.4 G (lid or unassignable, or if).25 E F1(arr)2.5 E(ay)-.15 E F0 (is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray)-2.5 E(.)-.65 E F2(popd)108 648 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 660 Q -.15(ve)-.15 G 2.8(se) -.15 G .3(ntries from the directory stack.)-2.8 F -.4(Wi)5.299 G .299 +2.5(][)C<ad>-2.5 E F1(n)A F0(])A(Remo)144 660 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 -.299(he top directory from the)-2.799 F 1.478(stack, and performs a)144 -672 R F2(cd)3.978 E F0 1.479(to the ne)3.978 F 3.979(wt)-.25 G 1.479 -(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.479 -(uments, if supplied, ha).18 F 1.779 -.15(ve t)-.2 H 1.479(he follo).15 +.3(he top directory from the)-2.799 F 1.479(stack, and performs a)144 +672 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 684 Q F2<ad6e>144 696 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 708 Q(GNU Bash 4.2)72 768 Q -(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(61)185.545 E 0 Cg EP +(2013 January 8)144.29 E(61)193.45 E 0 Cg EP %%Page: 62 62 %%BeginPageSetup BP @@ -7373,35 +7394,35 @@ BP S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0(remo) 2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)-.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 108 Q F2(n)A F0(Remo) -25.3 E -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76 E F0 1.259 -(th entry counting from the right of the list sho)B 1.259(wn by)-.25 F -F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5(zero. F) -180 120 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15 -(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5 -E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144 136.8 R F1(popd) -3.143 E F0 .643(command is successful, a)3.143 F F1(dirs)3.143 E F0 .644 -(is performed as well, and the return status is 0.)3.143 F F1(popd)5.644 -E F0 .416(returns f)144 148.8 R .416(alse if an in)-.1 F -.25(va)-.4 G -.415(lid option is encountered, the directory stack is empty).25 F 2.915 -(,an)-.65 G(on-e)-2.915 E .415(xistent direc-)-.15 F +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 120 +R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15(ve)-.15 +G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5 E F0 +(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 136.8 R F1(popd)3.144 E +F0 .644(command is successful, a)3.144 F F1(dirs)3.143 E F0 .643 +(is performed as well, and the return status is 0.)3.143 F F1(popd)5.643 +E F0 .415(returns f)144 148.8 R .415(alse if an in)-.1 F -.25(va)-.4 G +.415(lid option is encountered, the directory stack is empty).25 F 2.916 +(,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F (tory stack entry is speci\214ed, or the directory change f)144 160.8 Q (ails.)-.1 E F1(printf)108 177.6 Q F0([)2.5 E F1<ad76>A F2(var)2.5 E F0 -(])A F2(format)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A 1.436 -(Write the formatted)144 189.6 R F2(ar)3.936 E(guments)-.37 E F0 1.437 -(to the standard output under the control of the)3.936 F F2(format)3.937 -E F0 6.437(.T)C(he)-6.437 E F1<ad76>3.937 E F0 .126 +(])A F2(format)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A 1.437 +(Write the formatted)144 189.6 R F2(ar)3.937 E(guments)-.37 E F0 1.437 +(to the standard output under the control of the)3.937 F F2(format)3.936 +E F0 6.436(.T)C(he)-6.436 E F1<ad76>3.936 E F0 .126 (option causes the output to be assigned to the v)144 201.6 R(ariable) -.25 E F2(var)2.626 E F0 .126(rather than being printed to the standard) -2.626 F(output.)144 213.6 Q(The)144 237.6 Q F2(format)3.017 E F0 .517(i\ +2.626 F(output.)144 213.6 Q(The)144 237.6 Q F2(format)3.018 E F0 .517(i\ s a character string which contains three types of objects: plain chara\ -cters, which are)3.017 F .704(simply copied to standard output, charact\ -er escape sequences, which are con)144 249.6 R -.15(ve)-.4 G .703 +cters, which are)3.018 F .704(simply copied to standard output, charact\ +er escape sequences, which are con)144 249.6 R -.15(ve)-.4 G .704 (rted and copied to).15 F .036(the standard output, and format speci\ -\214cations, each of which causes printing of the ne)144 261.6 R .037 +\214cations, each of which causes printing of the ne)144 261.6 R .036 (xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 273.6 Q(gument)-.37 E F0 -5.532(.I)C 3.032(na)-5.532 G .532(ddition to the standard)-3.032 F F2 -(printf)3.032 E F0 .532(\(1\) format speci\214cations,)B F1(printf)3.031 -E F0 .531(interprets the follo)3.031 F(w-)-.25 E(ing e)144 285.6 Q +5.531(.I)C 3.031(na)-5.531 G .531(ddition to the standard)-3.031 F F2 +(printf)3.032 E F0 .532(\(1\) format speci\214cations,)B F1(printf)3.032 +E F0 .532(interprets the follo)3.032 F(w-)-.25 E(ing e)144 285.6 Q (xtensions:)-.15 E F1(%b)144 297.6 Q F0(causes)20.44 E F1(printf)5.115 E F0 2.615(to e)5.115 F 2.615 (xpand backslash escape sequences in the corresponding)-.15 F F2(ar) @@ -7414,1384 +7435,1411 @@ E F0(,)A F1(\\")3.108 E F0 3.108(,a)C(nd)-3.108 E F1(\\?)3.108 E F0 .608 20.44 E F1(printf)2.51 E F0 .01(to output the corresponding)2.51 F F2 (ar)2.51 E(gument)-.37 E F0 .01(in a format that can be reused as shell) 2.51 F(input.)180 345.6 Q F1(%\()144 357.6 Q F2(datefmt)A F1(\)T)A F0 -(causes)180 369.6 Q F1(printf)4.404 E F0 1.904 -(to output the date-time string resulting from using)4.404 F F2(datefmt) -4.404 E F0 1.903(as a format)4.404 F .38(string for)180 381.6 R F2 +(causes)180 369.6 Q F1(printf)4.403 E F0 1.904 +(to output the date-time string resulting from using)4.403 F F2(datefmt) +4.404 E F0 1.904(as a format)4.404 F .381(string for)180 381.6 R F2 (strftime)2.881 E F0 2.881(\(3\). The)B(corresponding)2.881 E F2(ar) 2.881 E(gument)-.37 E F0 .381(is an inte)2.881 F .381 -(ger representing the number)-.15 F .458(of seconds since the epoch.)180 +(ger representing the number)-.15 F .457(of seconds since the epoch.)180 393.6 R -1 -.8(Tw o)5.458 H .458(special ar)3.758 F .458(gument v)-.18 F -.458(alues may be used: -1 represents the)-.25 F -(current time, and -2 represents the time the shell w)180 405.6 Q(as in) --.1 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E(Ar)144 422.4 Q .463(guments to n\ -on-string format speci\214ers are treated as C constants, e)-.18 F .464 -(xcept that a leading plus or)-.15 F 1.259(minus sign is allo)144 434.4 +.458(alues may be used: -1 represents the)-.25 F .848 +(current time, and -2 represents the time the shell w)180 405.6 R .847 +(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.347(d. If).1 F .847(no ar)3.347 +F .847(gument is speci-)-.18 F .354(\214ed, con)180 417.6 R -.15(ve)-.4 +G .354(rsion beha).15 F -.15(ve)-.2 G 2.854(sa).15 G 2.854(si)-2.854 G +2.854(f-)-2.854 G 2.854(1h)-2.854 G .354(ad been gi)-2.854 F -.15(ve) +-.25 G 2.854(n. This).15 F .355(is an e)2.854 F .355 +(xception to the usual)-.15 F F1(printf)2.855 E F0(beha)180 429.6 Q +(vior)-.2 E(.)-.55 E(Ar)144 446.4 Q .464(guments to non-string format s\ +peci\214ers are treated as C constants, e)-.18 F .463 +(xcept that a leading plus or)-.15 F 1.258(minus sign is allo)144 458.4 R 1.259 (wed, and if the leading character is a single or double quote, the v) --.25 F 1.258(alue is the)-.25 F(ASCII v)144 446.4 Q(alue of the follo) --.25 E(wing character)-.25 E(.)-.55 E(The)144 463.2 Q F2(format)3.423 E -F0 .923(is reused as necessary to consume all of the)3.423 F F2(ar)3.423 +-.25 F 1.259(alue is the)-.25 F(ASCII v)144 470.4 Q(alue of the follo) +-.25 E(wing character)-.25 E(.)-.55 E(The)144 487.2 Q F2(format)3.424 E +F0 .923(is reused as necessary to consume all of the)3.424 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 475.2 Q(guments)-.37 E -F0 .033(than are supplied, the e)2.534 F .033 +3.423 E F0 .923(requires more)3.423 F F2(ar)144 499.2 Q(guments)-.37 E +F0 .033(than are supplied, the e)2.533 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 487.2 Q(The return v)5 E +.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .034(alue or null string,) +-.25 F(as appropriate, had been supplied.)144 511.2 Q(The return v)5 E (alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd) -108 504 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 516 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 dire\ -ctory stack, or rotates the stack, making the ne)144 528 R 3.14(wt)-.25 -G .64(op of the)-3.14 F 1.316(stack the current w)144 540 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 552 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 564 Q F1 -<ad6e>144 576 Q F0 .902(Suppresses the normal change of directory when \ +108 528 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 540 Q F0([)2.5 E F1<ad6e>A F0 2.5 +(][)C F2(dir)-2.5 E F0(])A .64(Adds a directory to the top of the direc\ +tory stack, or rotates the stack, making the ne)144 552 R 3.139(wt)-.25 +G .639(op of the)-3.139 F 1.315(stack the current w)144 564 R 1.315 +(orking directory)-.1 F 6.315(.W)-.65 G 1.315(ith no ar)-6.715 F 1.315 +(guments, e)-.18 F 1.316(xchanges the top tw)-.15 F 3.816(od)-.1 G 1.316 +(irectories and)-3.816 F .872 +(returns 0, unless the directory stack is empty)144 576 R 5.871(.A)-.65 +G -.18(rg)-5.871 G .871(uments, if supplied, ha).18 F 1.171 -.15(ve t) +-.2 H .871(he follo).15 F .871(wing mean-)-.25 F(ings:)144 588 Q F1 +<ad6e>144 600 Q F0 .902(Suppresses the normal change of directory when \ adding directories to the stack, so that)24.74 F -(only the stack is manipulated.)180 588 Q F1(+)144 600 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 612 Q F0 2.5(,s)C(tarting with zero\) is at the top.) --2.5 E F1<ad>144 624 Q F2(n)A F0 .92(Rotates the stack so that the)25.3 +(only the stack is manipulated.)180 612 Q F1(+)144 624 Q F2(n)A F0 1.268 +(Rotates the stack so that the)25.3 F F2(n)3.768 E F0 1.267 +(th directory \(counting from the left of the list sho)B 1.267(wn by) +-.25 F F1(dirs)180 636 Q F0 2.5(,s)C(tarting with zero\) is at the top.) +-2.5 E F1<ad>144 648 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 636 Q F0 2.5(,s)C(tarting with zero\) is at the top.)-2.5 -E F2(dir)144.35 648 Q F0(Adds)23.98 E F2(dir)3.137 E F0 .287 -(to the directory stack at the top, making it the ne)3.517 F 2.788(wc) --.25 G .288(urrent w)-2.788 F .288(orking directory as)-.1 F -(if it had been supplied as the ar)180 660 Q(gument to the)-.18 E F1(cd) -2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .489(If the)144 676.8 R F1(pushd)2.989 -E F0 .489(command is successful, a)2.989 F F1(dirs)2.988 E F0 .488 -(is performed as well.)2.988 F .488(If the \214rst form is used,)5.488 F -F1(pushd)2.988 E F0 1.039(returns 0 unless the cd to)144 688.8 R F2(dir) -3.889 E F0 -.1(fa)4.269 G 3.539(ils. W).1 F 1.039(ith the second form,) --.4 F F1(pushd)3.54 E F0 1.04(returns 0 unless the directory)3.54 F .847 -(stack is empty)144 700.8 R 3.347(,an)-.65 G(on-e)-3.347 E .847(xistent\ +F F1(dirs)180 660 Q F0 2.5(,s)C(tarting with zero\) is at the top.)-2.5 +E F2(dir)144.35 672 Q F0(Adds)23.98 E F2(dir)3.138 E F0 .288 +(to the directory stack at the top, making it the ne)3.518 F 2.787(wc) +-.25 G .287(urrent w)-2.787 F .287(orking directory as)-.1 F +(if it had been supplied as the ar)180 684 Q(gument to the)-.18 E F1(cd) +2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .488(If the)144 700.8 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 712.8 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 724.8 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent\ directory stack element is speci\214ed, or the directory change to the) --.15 F(speci\214ed ne)144 712.8 Q 2.5(wc)-.25 G(urrent directory f)-2.5 -E(ails.)-.1 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G -(mber 24).15 E(62)185.545 E 0 Cg EP +-.15 F(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(62)193.45 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(pwd)108 84 Q F0([)2.5 E F1(\255LP)A F0(])A -.844(Print the absolute pathname of the current w)144 96 R .845 -(orking directory)-.1 F 5.845(.T)-.65 G .845 -(he pathname printed contains no)-5.845 F .182(symbolic links if the)144 -108 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1 .181 -(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1(set) -2.681 E F0 -.2(bu)2.681 G .181(iltin command is).2 F 3.263(enabled. If) -144 120 R(the)3.263 E F1<ad4c>3.263 E F0 .763 -(option is used, the pathname printed may contain symbolic links.)3.263 -F .764(The return)5.764 F 1.36(status is 0 unless an error occurs while\ - reading the name of the current directory or an in)144 132 R -.25(va) --.4 G(lid).25 E(option is supplied.)144 144 Q F1 -.18(re)108 160.8 S(ad) -.18 E F0([)3.816 E F1(\255ers)A F0 3.816(][)C F1<ad61>-3.816 E/F2 10 -/Times-Italic@0 SF(aname)3.816 E F0 3.816(][)C F1<ad64>-3.816 E F2 -(delim)3.816 E F0 3.816(][)C F1<ad69>-3.816 E F2(te)3.816 E(xt)-.2 E F0 -3.816(][)C F1<ad6e>-3.816 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.817 -(][)C F1<ad4e>-3.817 E F2(nc)3.817 E(har)-.15 E(s)-.1 E F0 3.817(][)C F1 -<ad70>-3.817 E F2(pr)3.817 E(ompt)-.45 E F0 3.817(][)C F1<ad74>-3.817 E -F2(timeout)3.817 E F0 3.817(][)C F1<ad75>-3.817 E F2(fd)3.817 E F0(])A -([)108 172.8 Q F2(name)A F0(...])2.5 E .516(One line is read from the s\ -tandard input, or from the \214le descriptor)144 184.8 R F2(fd)3.016 E -F0 .516(supplied as an ar)3.016 F .517(gument to)-.18 F(the)144 196.8 Q -F1<ad75>2.539 E F0 .039(option, and the \214rst w)2.539 F .038 -(ord is assigned to the \214rst)-.1 F F2(name)2.538 E F0 2.538(,t).18 G -.038(he second w)-2.538 F .038(ord to the second)-.1 F F2(name)2.538 E -F0(,).18 E .42(and so on, with lefto)144 208.8 R -.15(ve)-.15 G 2.92(rw) +-.35 E(speci\214ed ne)144 84 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E +(ails.)-.1 E/F1 10/Times-Bold@0 SF(pwd)108 100.8 Q F0([)2.5 E F1(\255LP) +A F0(])A .845(Print the absolute pathname of the current w)144 112.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 +124.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 3.264 +(enabled. If)144 136.8 R(the)3.264 E F1<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 148.8 R -.25(va) +-.4 G(lid).25 E(option is supplied.)144 160.8 Q F1 -.18(re)108 177.6 S +(ad).18 E F0([)3.817 E F1(\255ers)A F0 3.817(][)C F1<ad61>-3.817 E/F2 10 +/Times-Italic@0 SF(aname)3.817 E F0 3.817(][)C F1<ad64>-3.817 E F2 +(delim)3.817 E F0 3.817(][)C F1<ad69>-3.817 E F2(te)3.817 E(xt)-.2 E F0 +3.817(][)C F1<ad6e>-3.817 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816 +(][)C F1<ad4e>-3.816 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F1 +<ad70>-3.816 E F2(pr)3.816 E(ompt)-.45 E F0 3.816(][)C F1<ad74>-3.816 E +F2(timeout)3.816 E F0 3.816(][)C F1<ad75>-3.816 E F2(fd)3.816 E F0(])A +([)108 189.6 Q F2(name)A F0(...])2.5 E .516(One line is read from the s\ +tandard input, or from the \214le descriptor)144 201.6 R F2(fd)3.016 E +F0 .516(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 213.6 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 225.6 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 .541(are fe)144 220.8 R .541(wer w) --.25 F .541(ords read from the input stream than names, the remaining n\ -ames are assigned empty)-.1 F -.25(va)144 232.8 S 2.51(lues. The).25 F -.011(characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011 +.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 237.6 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 249.6 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.511(\)m)C(ay)-2.511 E 1.891 -(be used to remo)144 244.8 R 2.191 -.15(ve a)-.15 H 2.191 -.15(ny s).15 -H 1.891(pecial meaning for the ne).15 F 1.89 +(backslash character \()2.511 F F1(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89 +(be used to remo)144 261.6 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 256.8 Q .3 -.15(ve t)-.2 H(he follo).15 E -(wing meanings:)-.25 E F1<ad61>144 268.8 Q F2(aname)2.5 E F0 1.049 -(The w)180 280.8 R 1.049 +(Options, if supplied, ha)144 273.6 Q .3 -.15(ve t)-.2 H(he follo).15 E +(wing meanings:)-.25 E F1<ad61>144 285.6 Q F2(aname)2.5 E F0 1.05(The w) +180 297.6 R 1.049 (ords are assigned to sequential indices of the array v)-.1 F(ariable) --.25 E F2(aname)3.55 E F0 3.55(,s).18 G 1.05(tarting at 0.)-3.55 F F2 -(aname)180.33 292.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 304.8 Q F2(delim)2.5 E F0 -(The \214rst character of)180 316.8 Q F2(delim)2.5 E F0 +-.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 309.6 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 +-.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F2(name)2.5 E F0 +(ar)2.5 E(guments are ignored.)-.18 E F1<ad64>144 321.6 Q F2(delim)2.5 E +F0(The \214rst character of)180 333.6 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 328.8 Q F0 .373 +F1<ad65>144 345.6 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.872 E F0(abo)2.622 E --.15(ve)-.15 G 2.872(\)i).15 G 2.872(su)-2.872 G(sed)-2.872 E .218 -(to obtain the line.)180 340.8 R .218 +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 357.6 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 352.8 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E -F1<ad69>144 364.8 Q F2(te)2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.716 -G(adline).18 E F0 .216(is being used to read the line,)2.716 F F2(te) +(acti)180 369.6 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E +F1<ad69>144 381.6 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 -.215(fer before edit-)-.25 F(ing be)180 376.8 Q(gins.)-.15 E F1<ad6e>144 -388.8 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 400.8 S(ad).18 E -F0 1.394(returns after reading)3.894 F F2(nc)3.894 E(har)-.15 E(s)-.1 E -F0 1.395(characters rather than w)3.894 F 1.395 -(aiting for a complete line of)-.1 F(input, b)180 412.8 Q +.216(fer before edit-)-.25 F(ing be)180 393.6 Q(gins.)-.15 E F1<ad6e>144 +405.6 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 417.6 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, b)180 429.6 Q (ut honor a delimiter if fe)-.2 E(wer than)-.25 E F2(nc)2.5 E(har)-.15 E (s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F1 -<ad4e>144 424.8 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 436.8 S -(ad).18 E F0 1.269(returns after reading e)3.77 F(xactly)-.15 E F2(nc) +<ad4e>144 441.6 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 453.6 S +(ad).18 E F0 1.269(returns after reading e)3.769 F(xactly)-.15 E F2(nc) 3.769 E(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F -1.269(aiting for a complete)-.1 F .274 -(line of input, unless EOF is encountered or)180 448.8 R F1 -.18(re) -2.775 G(ad).18 E F0 .275(times out.)2.775 F .275 -(Delimiter characters encoun-)5.275 F 1.003 -(tered in the input are not treated specially and do not cause)180 460.8 -R F1 -.18(re)3.502 G(ad).18 E F0 1.002(to return until)3.502 F F2(nc) -3.502 E(har)-.15 E(s)-.1 E F0(characters are read.)180 472.8 Q F1<ad70> -144 484.8 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)180 496.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 +1.27(aiting for a complete)-.1 F .275 +(line of input, unless EOF is encountered or)180 465.6 R F1 -.18(re) +2.775 G(ad).18 E F0 .274(times out.)2.774 F .274 +(Delimiter characters encoun-)5.274 F 1.002 +(tered in the input are not treated specially and do not cause)180 477.6 +R F1 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F2(nc) +3.503 E(har)-.15 E(s)-.1 E F0(characters are read.)180 489.6 Q F1<ad70> +144 501.6 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)180 513.6 Q F2(pr)3.661 E +(ompt)-.45 E F0 1.161(on standard error)3.661 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 508.8 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F +-.25 F(an)180 525.6 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 520.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 532.8 Q(In particular)5 E 2.5(,ab)-.4 G +<ad72>144 537.6 Q F0 .543(Backslash does not act as an escape character) +25.86 F 5.543(.T)-.55 G .544(he backslash is considered to be part of) +-5.543 F(the line.)180 549.6 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 544.8 Q F0(Silent mode.)26.41 E +-.25 E F1<ad73>144 561.6 Q F0(Silent mode.)26.41 E (If input is coming from a terminal, characters are not echoed.)5 E F1 -<ad74>144 556.8 Q F2(timeout)2.5 E F0(Cause)180 568.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 580.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 592.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 604.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 616.8 S(ad).18 E -F0 .61(returns immediately)3.11 F 3.11(,w)-.65 G .61 -(ithout trying to read an)-3.11 F 3.11(yd)-.15 G 3.11(ata. The)-3.11 F --.15(ex)3.11 G .61(it statis is 0 if input is).15 F -.2(av)180 628.8 S -1.224(ailable on the speci\214ed \214le descriptor)-.05 F 3.723(,n)-.4 G -1.223(on-zero otherwise.)-3.723 F 1.223(The e)6.223 F 1.223 -(xit status is greater)-.15 F(than 128 if the timeout is e)180 640.8 Q -(xceeded.)-.15 E F1<ad75>144 652.8 Q F2(fd)2.5 E F0 -(Read input from \214le descriptor)14.46 E F2(fd)2.5 E F0(.)A .191 -(If no)144 669.6 R F2(names)3.051 E F0 .191 -(are supplied, the line read is assigned to the v)2.961 F(ariable)-.25 E -F3(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .192 +<ad74>144 573.6 Q F2(timeout)2.5 E F0(Cause)180 585.6 Q F1 -.18(re)2.929 +G(ad).18 E F0 .428(to time out and return f)2.929 F .428 +(ailure if a complete line of input \(or a speci\214ed num-)-.1 F .56 +(ber of characters\) is not read within)180 597.6 R F2(timeout)3.061 E +F0(seconds.)3.061 E F2(timeout)5.561 E F0 .561(may be a decimal number) +3.061 F(with a fractional portion follo)180 609.6 Q +(wing the decimal point.)-.25 E(This option is only ef)5 E(fecti)-.25 E +.3 -.15(ve i)-.25 H(f).15 E F1 -.18(re)2.5 G(ad).18 E F0 .506(is readin\ +g input from a terminal, pipe, or other special \214le; it has no ef)180 +621.6 R .506(fect when reading)-.25 F .59(from re)180 633.6 R .59 +(gular \214les.)-.15 F(If)5.59 E F1 -.18(re)3.09 G(ad).18 E F0 .589 +(times out,)3.09 F F1 -.18(re)3.089 G(ad).18 E F0(sa)3.089 E -.15(ve)-.2 +G 3.089(sa).15 G .889 -.15(ny p)-3.089 H .589 +(artial input read into the speci\214ed).15 F -.25(va)180 645.6 S +(riable).25 E F2(name)2.77 E F0 5.27(.I)C(f)-5.27 E F2(timeout)2.77 E F0 +.27(is 0,)2.77 F F1 -.18(re)2.77 G(ad).18 E F0 .27(returns immediately) +2.77 F 2.77(,w)-.65 G .27(ithout trying to read an)-2.77 F 2.77(yd)-.15 +G(ata.)-2.77 E 1.12(The e)180 657.6 R 1.12 +(xit status is 0 if input is a)-.15 F -.25(va)-.2 G 1.12 +(ilable on the speci\214ed \214le descriptor).25 F 3.62(,n)-.4 G 1.12 +(on-zero other)-3.62 F(-)-.2 E 2.5(wise. The)180 669.6 R -.15(ex)2.5 G +(it status is greater than 128 if the timeout is e).15 E(xceeded.)-.15 E +F1<ad75>144 681.6 Q F2(fd)2.5 E F0(Read input from \214le descriptor) +14.46 E F2(fd)2.5 E F0(.)A .191(If no)144 698.4 R F2(names)3.051 E F0 +.191(are supplied, the line read is assigned to the v)2.961 F(ariable) +-.25 E F3(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .192 (The return code is zero,)4.692 F 1.344 -(unless end-of-\214le is encountered,)144 681.6 R F1 -.18(re)3.844 G(ad) +(unless end-of-\214le is encountered,)144 710.4 R F1 -.18(re)3.844 G(ad) .18 E F0 1.343 (times out \(in which case the return code is greater than)3.844 F .871 -(128\), a v)144 693.6 R .871 +(128\), a v)144 722.4 R .871 (ariable assignment error \(such as assigning to a readonly v)-.25 F .872(ariable\) occurs, or an in)-.25 F -.25(va)-.4 G(lid).25 E -(\214le descriptor is supplied as the ar)144 705.6 Q(gument to)-.18 E F1 -<ad75>2.5 E F0(.)A(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 -G(mber 24).15 E(63)185.545 E 0 Cg EP +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(63)193.45 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 -.18(re)108 84 S(adonly).18 E F0([)2.5 E F1 -(\255aAf)A F0 2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 -SF(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E F0 2.5(].)C(..])-2.5 E .77 -(The gi)144 96 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 108 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 120 Q 3.334(ed. The)-.1 -F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834 +-.35 E(\214le descriptor is supplied as the ar)144 84 Q(gument to)-.18 E +/F1 10/Times-Bold@0 SF<ad75>2.5 E F0(.)A F1 -.18(re)108 100.8 S(adonly) +.18 E F0([)2.5 E F1(\255aAf)A F0 2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C/F2 +10/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E F0 2.5(].)C +(..])-2.5 E .77(The gi)144 112.8 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 124.8 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 136.8 Q 3.334(ed. The) +-.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834 (ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the) -3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-) --.25 E .776(ables to associati)144 132 R 1.076 -.15(ve a)-.25 H 3.276 +-.25 E .776(ables to associati)144 148.8 R 1.076 -.15(ve a)-.25 H 3.276 (rrays. If).15 F .777(both options are supplied,)3.276 F F1<ad41>3.277 E F0(tak)3.277 E .777(es precedence.)-.1 F .777(If no)5.777 F F2(name) -3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 144 R -.15(ve) +3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 160.8 R -.15(ve) -.25 G .521(n, or if the).15 F F1<ad70>3.021 E F0 .521 (option is supplied, a list of all readonly names is printed.)3.021 F .521(The other)5.521 F .295(options may be used to restrict the output \ -to a subset of the set of readonly names.)144 156 R(The)5.296 E F1<ad70> -2.796 E F0(option)2.796 E .786 +to a subset of the set of readonly names.)144 172.8 R(The)5.296 E F1 +<ad70>2.796 E F0(option)2.796 E .786 (causes output to be displayed in a format that may be reused as input.) -144 168 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144 -180 Q .717(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v) +144 184.8 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144 +196.8 Q .717(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v) -3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F2(wor) 3.218 E(d)-.37 E F0 5.718(.T)C .718(he return status is 0 unless an in) -5.718 F -.25(va)-.4 G(lid).25 E .26(option is encountered, one of the) -144 192 R F2(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)-.25 -F .26(ariable name, or)-.25 F F1<ad66>2.76 E F0 .26(is supplied with a) -2.76 F F2(name)144.36 204 Q F0(that is not a function.)2.68 E F1 -.18 -(re)108 220.8 S(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .02 -(Causes a function to stop e)144 232.8 R -.15(xe)-.15 G .02 -(cuting and return the v).15 F .021(alue speci\214ed by)-.25 F F2(n) -2.881 E F0 .021(to its caller)2.761 F 5.021(.I)-.55 G(f)-5.021 E F2(n) -2.881 E F0 .021(is omitted,)2.761 F .469 -(the return status is that of the last command e)144 244.8 R -.15(xe) +144 208.8 R F2(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v) +-.25 F .26(ariable name, or)-.25 F F1<ad66>2.76 E F0 .26 +(is supplied with a)2.76 F F2(name)144.36 220.8 Q F0 +(that is not a function.)2.68 E F1 -.18(re)108 237.6 S(tur).18 E(n)-.15 +E F0([)2.5 E F2(n)A F0(])A .02(Causes a function to stop e)144 249.6 R +-.15(xe)-.15 G .02(cuting and return the v).15 F .021 +(alue speci\214ed by)-.25 F F2(n)2.881 E F0 .021(to its caller)2.761 F +5.021(.I)-.55 G(f)-5.021 E F2(n)2.881 E F0 .021(is omitted,)2.761 F .469 +(the return status is that of the last command e)144 261.6 R -.15(xe) -.15 G .469(cuted in the function body).15 F 5.469(.I)-.65 G(f)-5.469 E F1 -.18(re)2.969 G(tur).18 E(n)-.15 E F0 .468(is used out-)2.969 F .466 -(side a function, b)144 256.8 R .466(ut during e)-.2 F -.15(xe)-.15 G +(side a function, b)144 273.6 R .466(ut during e)-.2 F -.15(xe)-.15 G .467(cution of a script by the).15 F F1(.)2.967 E F0(\()5.467 E F1(sour) A(ce)-.18 E F0 2.967(\)c)C .467(ommand, it causes the shell to)-2.967 F -.088(stop e)144 268.8 R -.15(xe)-.15 G .087 +.088(stop e)144 285.6 R -.15(xe)-.15 G .087 (cuting that script and return either).15 F F2(n)2.947 E F0 .087 (or the e)2.827 F .087(xit status of the last command e)-.15 F -.15(xe) --.15 G .087(cuted within).15 F .613(the script as the e)144 280.8 R .613 +-.15 G .087(cuted within).15 F .613(the script as the e)144 297.6 R .613 (xit status of the script.)-.15 F(If)5.613 E F2(n)3.113 E F0 .613 (is supplied, the return v)3.113 F .613 -(alue is its least signi\214cant 8)-.25 F 2.511(bits. The)144 292.8 R +(alue is its least signi\214cant 8)-.25 F 2.511(bits. The)144 309.6 R .011(return status is non-zero if)2.511 F F1 -.18(re)2.511 G(tur).18 E (n)-.15 E F0 .011(is supplied a non-numeric ar)2.511 F .01 -(gument, or is used outside)-.18 F 2.909(af)144 304.8 S .409 +(gument, or is used outside)-.18 F 2.909(af)144 321.6 S .409 (unction and not during e)-2.909 F -.15(xe)-.15 G .41 (cution of a script by).15 F F1(.)2.91 E F0(or)3.743 E F1(sour)2.91 E (ce)-.18 E F0 5.41(.A)C .71 -.15(ny c)-5.41 H .41 -(ommand associated with the).15 F F1(RETURN)144 316.8 Q F0(trap is e)2.5 +(ommand associated with the).15 F F1(RETURN)144 333.6 Q F0(trap is e)2.5 E -.15(xe)-.15 G(cuted before e).15 E -.15(xe)-.15 G -(cution resumes after the function or script.).15 E F1(set)108 333.6 Q +(cution resumes after the function or script.).15 E F1(set)108 350.4 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -F1(set)108 345.6 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1 +F1(set)108 362.4 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1 (+o)-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0 -(...])2.5 E -.4(Wi)144 357.6 S .836(thout options, the name and v).4 F +(...])2.5 E -.4(Wi)144 374.4 S .836(thout options, the name and v).4 F .835(alue of each shell v)-.25 F .835 (ariable are displayed in a format that can be)-.25 F .784 -(reused as input for setting or resetting the currently-set v)144 369.6 +(reused as input for setting or resetting the currently-set v)144 386.4 R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784 -(riables cannot be).25 F 2.947(reset. In)144 381.6 R F2 .447(posix mode) +(riables cannot be).25 F 2.947(reset. In)144 398.4 R F2 .447(posix mode) 2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447 (ariables are listed.)-.25 F .447 (The output is sorted according to the current)5.447 F 3.53 -(locale. When)144 393.6 R 1.031(options are speci\214ed, the)3.53 F +(locale. When)144 410.4 R 1.031(options are speci\214ed, the)3.53 F 3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An) -.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F -1.624(after option processing are treated as v)144 405.6 R 1.623 +1.624(after option processing are treated as v)144 422.4 R 1.623 (alues for the positional parameters and are assigned, in)-.25 F(order) -144 417.6 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A +144 434.4 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 429.6 Q +-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 446.4 Q F0 .539(Automatically mark v)29.3 F .539 (ariables and functions which are modi\214ed or created for e)-.25 F .54 -(xport to)-.15 F(the en)184 441.6 Q(vironment of subsequent commands.) --.4 E F1<ad62>144 453.6 Q F0 .132 +(xport to)-.15 F(the en)184 458.4 Q(vironment of subsequent commands.) +-.4 E F1<ad62>144 470.4 Q F0 .132 (Report the status of terminated background jobs immediately)28.74 F 2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E -(primary prompt.)184 465.6 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o) --.25 H(nly when job control is enabled.).15 E F1<ad65>144 477.6 Q F0 +(primary prompt.)184 482.4 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 494.4 Q F0 .087(Exit immediately if a)29.86 F F2(pipeline)2.587 E F0 .087 (\(which may consist of a single)2.587 F F2 .088(simple command)2.588 F -F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 489.6 Q +F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 506.4 Q F2 1.294(compound command)3.794 F F0(\(see)3.794 E/F3 9/Times-Bold@0 SF 1.294(SHELL GRAMMAR)3.794 F F0(abo)3.544 E -.15(ve)-.15 G 3.793(\), e) .15 F 1.293(xits with a non-zero status.)-.15 F .079 -(The shell does not e)184 501.6 R .079(xit if the command that f)-.15 F -.08(ails is part of the command list immediately)-.1 F(follo)184 513.6 Q +(The shell does not e)184 518.4 R .079(xit if the command that f)-.15 F +.08(ails is part of the command list immediately)-.1 F(follo)184 530.4 Q 1.655(wing a)-.25 F F1(while)4.155 E F0(or)4.155 E F1(until)4.155 E F0 -.1(ke)4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654 (wing the)-.25 F F1(if)4.154 E F0(or)4.154 E F1(elif)4.154 E F0(reserv) -4.154 E(ed)-.15 E -.1(wo)184 525.6 S .581(rds, part of an).1 F 3.081(yc) +4.154 E(ed)-.15 E -.1(wo)184 542.4 S .581(rds, part of an).1 F 3.081(yc) -.15 G .581(ommand e)-3.081 F -.15(xe)-.15 G .581(cuted in a).15 F F1 (&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .582(list e)3.082 F .582 -(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 537.6 R +(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 554.4 R F1(&&)3.418 E F0(or)3.418 E F1(||)3.418 E F0 3.418(,a)C 1.218 -.15(ny c) -3.418 H .918(ommand in a pipeline b).15 F .917 (ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417 E --.25(va)184 549.6 S .66(lue is being in).25 F -.15(ve)-.4 G .66 +-.25(va)184 566.4 S .66(lue is being in).25 F -.15(ve)-.4 G .66 (rted with).15 F F1(!)3.16 E F0 5.661(.I)C 3.161(fac)-5.661 G .661 (ompound command other than a subshell returns a)-3.161 F 1.113 -(non-zero status because a command f)184 561.6 R 1.112(ailed while)-.1 F +(non-zero status because a command f)184 578.4 R 1.112(ailed while)-.1 F F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.112 -(eing ignored, the shell does)-3.612 F .177(not e)184 573.6 R 2.677 +(eing ignored, the shell does)-3.612 F .177(not e)184 590.4 R 2.677 (xit. A)-.15 F .177(trap on)2.677 F F1(ERR)2.677 E F0 2.677(,i)C 2.678 (fs)-2.677 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178 (cuted before the shell e).15 F 2.678(xits. This)-.15 F .178 -(option applies to)2.678 F .618(the shell en)184 585.6 R .617 +(option applies to)2.678 F .618(the shell en)184 602.4 R .617 (vironment and each subshell en)-.4 F .617(vironment separately \(see) --.4 F F3 .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)184 597.6 R(ONMENT) +-.4 F F3 .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)184 614.4 R(ONMENT) -.27 E F0(abo)2.893 E -.15(ve)-.15 G .643 (\), and may cause subshells to e).15 F .643(xit before e)-.15 F -.15 -(xe)-.15 G .643(cuting all).15 F .016(the commands in the subshell.)184 -609.6 R .016(If a shell function e)5.016 F -.15(xe)-.15 G .015 -(cutes in a conte).15 F .015(xt where)-.15 F F1<ad65>2.515 E F0 .015 -(is being)2.515 F .347(ignored, e)184 621.6 R -.15(ve)-.25 G 2.847(ni) -.15 G(f)-2.847 E F1<ad65>2.847 E F0 .347(is set, none of the commands e) -2.847 F -.15(xe)-.15 G .348(cuted within the function body will).15 F -1.239(be af)184 633.6 R 1.239(fected by the)-.25 F F1<ad65>3.738 E F0 -3.738(setting. If)3.738 F 3.738(as)3.738 G 1.238(hell function sets) --3.738 F F1<ad65>3.738 E F0 1.238(while e)3.738 F -.15(xe)-.15 G 1.238 -(cuting in a conte).15 F(xt)-.15 E(where)184 645.6 Q F1<ad65>3.153 E F0 -.653(is ignored, that setting will not ha)3.153 F .954 -.15(ve a)-.2 H -.954 -.15(ny e).15 H -.25(ff).15 G .654 -(ect until the command containing).25 F(the function call completes.)184 -657.6 Q F1<ad66>144 669.6 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 -E F1<ad68>144 681.6 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 -693.6 Q(ault.)-.1 E F1<ad6b>144 705.6 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 717.6 Q -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(64)185.545 E 0 Cg EP +(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 626.4 +Q 2.042(If a compound command or shell function e)184 644.4 R -.15(xe) +-.15 G 2.042(cutes in a conte).15 F 2.042(xt where)-.15 F F1<ad65>4.542 +E F0 2.042(is being)4.542 F 1.435(ignored, none of the commands e)184 +656.4 R -.15(xe)-.15 G 1.436 +(cuted within the compound command or function).15 F .194 +(body will be af)184 668.4 R .194(fected by the)-.25 F F1<ad65>2.694 E +F0 .193(setting, e)2.693 F -.15(ve)-.25 G 2.693(ni).15 G(f)-2.693 E F1 +<ad65>2.693 E F0 .193(is set and a command returns a f)2.693 F(ailure) +-.1 E 3.39(status. If)184 680.4 R 3.39(ac)3.39 G .89 +(ompound command or shell function sets)-3.39 F F1<ad65>3.39 E F0 .89 +(while e)3.39 F -.15(xe)-.15 G .89(cuting in a conte).15 F(xt)-.15 E +(where)184 692.4 Q F1<ad65>3.154 E F0 .654 +(is ignored, that setting will not ha)3.154 F .953 -.15(ve a)-.2 H .953 +-.15(ny e).15 H -.25(ff).15 G .653(ect until the compound command).25 F +(or the command containing the function call completes.)184 704.4 Q F1 +<ad66>144 716.4 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 E +(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(64)193.45 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-Bold@0 SF<ad6d>144 84 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 .65 -(on systems that support it \(see)184 96 R/F2 9/Times-Bold@0 SF .651 +-.35 E/F1 10/Times-Bold@0 SF<ad68>144 84 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 96 Q(ault.)-.1 E F1 +<ad6b>144 108 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 120 Q F1 +<ad6d>144 132 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 .651 +(on systems that support it \(see)184 144 R/F2 9/Times-Bold@0 SF .651 (JOB CONTR)3.151 F(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151 -(\). All).15 F .651(processes run in a separate)3.151 F .679 -(process group.)184 108 R .678(When a background job completes, the she\ -ll prints a line containing its)5.679 F -.15(ex)184 120 S(it status.).15 -E F1<ad6e>144 132 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 -144 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E -F1<ad6f>144 156 Q/F3 10/Times-Italic@0 SF(option\255name)2.5 E F0(The) -184 168 Q F3(option\255name)2.5 E F0(can be one of the follo)2.5 E -(wing:)-.25 E F1(allexport)184 180 Q F0(Same as)224 192 Q F1<ad61>2.5 E -F0(.)A F1(braceexpand)184 204 Q F0(Same as)224 216 Q F1<ad42>2.5 E F0(.) -A F1(emacs)184 228 Q F0 .089 +(\). All).15 F .65(processes run in a separate)3.151 F .678 +(process group.)184 156 R .679(When a background job completes, the she\ +ll prints a line containing its)5.678 F -.15(ex)184 168 S(it status.).15 +E F1<ad6e>144 180 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 +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 240 R -.15(ve)-.25 G 3.45(,u).15 G .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 252 R(also af)2.5 E(fects the editing interf) +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(err) -184 264 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1 -(errtrace)184 276 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1(functrace) -184 288 Q F0(Same as)224 300 Q F1<ad54>2.5 E F0(.)A F1(hashall)184 312 Q -F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)184 324 Q F0 -(Same as)224 336 Q F1<ad48>2.5 E F0(.)A F1(history)184 348 Q F0 .587 +184 312 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1 +(errtrace)184 324 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1(functrace) +184 336 Q F0(Same as)224 348 Q F1<ad54>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 .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 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 360 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H -(hells.).15 E F1(ignor)184 372 Q(eeof)-.18 E F0 1.656(The ef)224 384 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 396 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 408 S(yw).1 E(ord)-.1 E F0(Same as) -224 420 Q F1<ad6b>2.5 E F0(.)A F1(monitor)184 432 Q F0(Same as)5.56 E F1 -<ad6d>2.5 E F0(.)A F1(noclob)184 444 Q(ber)-.1 E F0(Same as)224 456 Q F1 -<ad43>2.5 E F0(.)A F1(noexec)184 468 Q F0(Same as)11.12 E F1<ad6e>2.5 E -F0(.)A F1(noglob)184 480 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1 -(nolog)184 492 Q F0(Currently ignored.)16.66 E F1(notify)184 504 Q F0 -(Same as)15 E F1<ad62>2.5 E F0(.)A F1(nounset)184 516 Q F0(Same as)6.66 -E F1<ad75>2.5 E F0(.)A F1(onecmd)184 528 Q F0(Same as)6.67 E F1<ad74>2.5 -E F0(.)A F1(ph)184 540 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E -F0(.)A F1(pipefail)184 552 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 564 R +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.657(The ef)224 432 R +1.657(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF +(IGNOREEOF=10)4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted) +.15 E(\(see)224 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.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 612 R 1.136 (xit with a non-zero status, or zero if all commands in the pipeline) --.15 F -.15(ex)224 576 S(it successfully).15 E 5(.T)-.65 G -(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 588 Q F0 -2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0 +-.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.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 600 Q -F3(posix mode)A F0(\).)A F1(pri)184 612 Q(vileged)-.1 E F0(Same as)224 -624 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 636 S(rbose).1 E F0(Same as) -7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 648 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 660 Q -(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(xtrace)184 -672 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 690 Q F1<ad6f>3.053 -E F0 .553(is supplied with no)3.053 F F3(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 702 Q F0 1.071(is supplied with no)3.571 F -F3(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 714 Q -(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E -(65)185.545 E 0 Cg EP +(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.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 708 Q +(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A(GNU Bash 4.2) +72 768 Q(2013 January 8)144.29 E(65)193.45 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<ad70>144 84 Q F0 -.45(Tu)28.74 G 1.072 -(rn on).45 F/F2 10/Times-Italic@0 SF(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 96 R 1.501 -(vironment, and the)-.4 F F3(SHELLOPTS)4.001 E/F4 9/Times-Roman@0 SF(,)A -F3 -.27(BA)184 108 S(SHOPTS).27 E F4(,)A F3(CDP)2.775 E -.855(AT)-.666 G -(H).855 E F4(,)A F0(and)2.775 E F3(GLOBIGNORE)3.025 E F0 -.25(va)2.775 G -.524(riables, if the).25 F 3.024(ya)-.15 G .524(ppear in the en)-3.024 F -(vironment,)-.4 E .379(are ignored.)184 120 R .379 -(If the shell is started with the ef)5.379 F(fecti)-.25 E .679 -.15 -(ve u)-.25 H .38(ser \(group\) id not equal to the real).15 F .462 -(user \(group\) id, and the)184 132 R F1<ad70>2.961 E F0 .461 -(option is not supplied, these actions are tak)2.961 F .461 -(en and the ef)-.1 F(fec-)-.25 E(ti)184 144 Q .694 -.15(ve u)-.25 H .394 +-.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.052 E F0 .552(is supplied with no) +3.052 F/F2 10/Times-Italic@0 SF(option\255name)3.053 E F0 3.053(,t)C +.553(he v)-3.053 F .553(alues of the current options are printed.)-.25 F +(If)5.553 E F1(+o)184 114 Q F0 1.072(is supplied with no)3.572 F F2 +(option\255name)3.572 E F0 3.572(,a)C 1.071(series of)-.001 F F1(set) +3.571 E F0 1.071(commands to recreate the current)3.571 F +(option settings is displayed on the standard output.)184 126 Q F1<ad70> +144 138 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F2(privile)4.821 E -.1 +(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F +/F3 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV) +-.27 E F0 1.072(\214les are not pro-)3.322 F 1.501 +(cessed, shell functions are not inherited from the en)184 150 R 1.5 +(vironment, and the)-.4 F F3(SHELLOPTS)4 E/F4 9/Times-Roman@0 SF(,)A F3 +-.27(BA)184 162 S(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H) +.855 E F4(,)A F0(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G +.524(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F +(vironment,)-.4 E .38(are ignored.)184 174 R .38 +(If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u) +-.25 H .379(ser \(group\) id not equal to the real).15 F .461 +(user \(group\) id, and the)184 186 R F1<ad70>2.961 E F0 .461 +(option is not supplied, these actions are tak)2.961 F .462 +(en and the ef)-.1 F(fec-)-.25 E(ti)184 198 Q .695 -.15(ve u)-.25 H .395 (ser id is set to the real user id.).15 F .395(If the)5.395 F F1<ad70> -2.895 E F0 .395(option is supplied at startup, the ef)2.895 F(fecti)-.25 -E -.15(ve)-.25 G .387(user id is not reset.)184 156 R -.45(Tu)5.387 G -.387(rning this option of).45 F 2.886(fc)-.25 G .386(auses the ef)-2.886 -F(fecti)-.25 E .686 -.15(ve u)-.25 H .386(ser and group ids to be).15 F -(set to the real user and group ids.)184 168 Q F1<ad74>144 180 Q F0 +2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25 +E -.15(ve)-.25 G .386(user id is not reset.)184 210 R -.45(Tu)5.386 G +.386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886 +F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F +(set to the real user and group ids.)184 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 192 Q F0 -.35(Tr)28.74 G .043(eat unset v).35 F .044(aria\ +E F1<ad75>144 246 Q F0 -.35(Tr)28.74 G .044(eat unset v).35 F .044(aria\ bles and parameters other than the special parameters "@" and "*" as an) --.25 F .183(error when performing parameter e)184 204 R 2.683 -(xpansion. If)-.15 F -.15(ex)2.683 G .182 +-.25 F .182(error when performing parameter e)184 258 R 2.682 +(xpansion. If)-.15 F -.15(ex)2.682 G .183 (pansion is attempted on an unset v).15 F(ari-)-.25 E .746 -(able or parameter)184 216 R 3.246(,t)-.4 G .746 +(able or parameter)184 270 R 3.246(,t)-.4 G .746 (he shell prints an error message, and, if not interacti)-3.246 F -.15 (ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184 -228 Q F1<ad76>144 240 Q F0(Print shell input lines as the)29.3 E 2.5(ya) --.15 G(re read.)-2.5 E F1<ad78>144 252 Q F0 .315(After e)29.3 F .315 +282 Q F1<ad76>144 294 Q F0(Print shell input lines as the)29.3 E 2.5(ya) +-.15 G(re read.)-2.5 E F1<ad78>144 306 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.235(or arithmetic)184 264 R F1 +F1(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 318 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 276 Q +3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 330 Q (xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1 -<ad42>144 288 Q F0 2.579(The shell performs brace e)27.63 F 2.578 +<ad42>144 342 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.078(\). This).15 F 2.578(is on by)5.078 F(def)184 300 Q -(ault.)-.1 E F1<ad43>144 312 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 +-.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 354 Q +(ault.)-.1 E F1<ad43>144 366 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.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F -3.054(tors. This)184 324 R .553(may be o)3.053 F -.15(ve)-.15 G .553 +2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F +3.053(tors. This)184 378 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 336 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1 -<ad45>144 348 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 360 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 372 Q F1 -<ad48>144 384 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 396 Q -.15 -(ve)-.25 G(.).15 E F1<ad50>144 408 Q F0 .96 +.15 F(tor)184 390 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1 +<ad45>144 402 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 414 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 426 Q F1 +<ad48>144 438 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 450 Q -.15 +(ve)-.25 G(.).15 E F1<ad50>144 462 Q F0 .959 (If set, the shell does not resolv)28.19 F 3.459(es)-.15 G .959 -(ymbolic links when e)-3.459 F -.15(xe)-.15 G .959 -(cuting commands such as).15 F F1(cd)3.459 E F0 2.821 -(that change the current w)184 420 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 432 R(def)2.686 +(ymbolic links when e)-3.459 F -.15(xe)-.15 G .96 +(cuting commands such as).15 F F1(cd)3.46 E F0 2.822 +(that change the current w)184 474 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 486 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 444 Q(.)-.65 E F1<ad54>144 -456 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1 +(mands which change the current directory)184 498 Q(.)-.65 E F1<ad54>144 +510 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 468 R -.15(xe)-.15 G 1.932 +(substitutions, and commands e)184 522 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 480 Q F0 -(traps are normally not inherited in such cases.)2.5 E F1<adad>144 492 Q -F0 .4(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401 +(UG)-.1 E F0(and)4.432 E F1(RETURN)184 534 Q F0 +(traps are normally not inherited in such cases.)2.5 E F1<adad>144 546 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.401 E(the positional parameters are set to the)184 504 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 +(Otherwise,)5.4 E(the positional parameters are set to the)184 558 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 -516 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 528 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 540 Q .425(The options are of)144 -556.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425 +570 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 582 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 594 Q .425(The options are of)144 +610.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 568.8 R 2.677(f. The)-.25 F .178 +(Using + rather than \255 causes these options)5.425 F .178 +(to be turned of)144 622.8 R 2.678(f. The)-.25 F .178 (options can also be speci\214ed as ar)2.678 F .178(guments to an in) --.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066 -(current set of options may be found in)144 580.8 R F1<24ad>2.566 E F0 +-.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066 +(current set of options may be found in)144 634.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 592.8 Q F1(shift)108 609.6 Q F0([)2.5 E F2(n)A F0 -(])A .428(The positional parameters from)144 621.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 633.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 645.6 R(If)5.06 E F2(n)2.92 E F0 +(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F +(is encountered.)144 646.8 Q F1(shift)108 663.6 Q F0([)2.5 E F2(n)A F0 +(])A .429(The positional parameters from)144 675.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 687.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 699.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 657.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 669.6 Q F1(shopt)108 686.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 698.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 710.4 R(The) -144 722.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(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G(mber 24) -.15 E(66)185.545 E 0 Cg EP +(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 711.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 723.6 Q(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(66)193.45 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(ha)144 84 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 -E/F1 10/Times-Bold@0 SF<ad73>144 96 Q F0(Enable \(set\) each)26.41 E/F2 -10/Times-Italic@0 SF(optname)2.5 E F0(.)A F1<ad75>144 108 Q F0 -(Disable \(unset\) each)24.74 E F2(optname)2.5 E F0(.)A F1<ad71>144 120 -Q F0 .003(Suppresses normal output \(quiet mode\); the return status in\ -dicates whether the)24.74 F F2(optname)2.503 E F0(is)2.503 E .255 -(set or unset.)180 132 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 144 Q F2(optnames)2.5 E F0 -(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 156 Q F0 +-.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 .625(If either)144 172.8 R F1 -<ad73>3.125 E F0(or)3.124 E F1<ad75>3.124 E F0 .624(is used with no) +E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .624(If either)144 220.8 R F1 +<ad73>3.124 E F0(or)3.124 E F1<ad75>3.124 E F0 .624(is used with no) 3.124 F F2(optname)3.124 E F0(ar)3.124 E(guments,)-.18 E F1(shopt)3.124 -E F0(sho)3.124 E .624(ws only those options which are)-.25 F 2.233 -(set or unset, respecti)144 184.8 R -.15(ve)-.25 G(ly).15 E 7.234(.U) +E F0(sho)3.124 E .624(ws only those options which are)-.25 F 2.234 +(set or unset, respecti)144 232.8 R -.15(ve)-.25 G(ly).15 E 7.234(.U) -.65 G 2.234(nless otherwise noted, the)-7.234 F F1(shopt)4.734 E F0 -2.234(options are disabled \(unset\) by)4.734 F(def)144 196.8 Q(ault.) +2.234(options are disabled \(unset\) by)4.734 F(def)144 244.8 Q(ault.) -.1 E 1.544(The return status when listing options is zero if all)144 -213.6 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.) -4.044 F .696 +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 225.6 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696 -(alid shell)-.25 F(option.)144 237.6 Q(The list of)144 254.4 Q F1(shopt) -2.5 E F0(options is:)2.5 E F1(autocd)144 272.4 Q F0 .2 +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 .199(cuted as if it were the ar).15 F(gu-)-.18 E -(ment to the)184 284.4 Q F1(cd)2.5 E F0 2.5(command. This)2.5 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 296.4 Q(ars)-.1 E F0 .155(If set, an ar)184 308.4 R .155 -(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156 +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 320.4 Q(ariable whose v)-.25 E -(alue is the directory to change to.)-.25 E F1(cdspell)144 332.4 Q F0 +(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.987 -(corrected. The)184 344.4 R 1.487(errors check)3.987 F 1.487 -(ed for are transposed characters, a missing character)-.1 F 3.988(,a) --.4 G(nd)-3.988 E .77(one character too man)184 356.4 R 4.57 -.65(y. I) +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 .77(one character too man)184 404.4 R 4.57 -.65(y. I) -.15 H 3.27(fac).65 G .77 (orrection is found, the corrected \214lename is printed, and)-3.27 F -(the command proceeds.)184 368.4 Q +(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 380.4 Q F0 2.079(If set,)184 392.4 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 404.4 S(cute it.).15 E +.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 416.4 -Q F0 .449(If set,)184 428.4 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 440.4 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 2.203 -(attempted without an interv)184 452.4 R 2.203(ening command \(see)-.15 +(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 2.203 +(attempted without an interv)184 500.4 R 2.203(ening command \(see)-.15 F/F3 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E --.15(ve)-.15 G 4.703(\). The).15 F(shell)4.703 E(al)184 464.4 Q -.1(wa) +-.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 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 476.4 Q F0 .796(If set,)184 -488.4 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 500.4 S(lues of).25 E F3(LINES)2.5 +(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(LINES)2.5 E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A F1(cmdhist) -144 512.4 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202 +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 -524.4 Q 5(.T)-.65 G(his allo)-5 E -(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 536.4 -Q F0 .419(If set,)184 548.4 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 .462(to the) -184 560.4 R F1([[)2.962 E F0 .462(conditional command')2.962 F(s)-.55 E +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 .461(to the) +184 608.4 R F1([[)2.961 E F0 .462(conditional command')2.962 F(s)-.55 E F1(=~)2.962 E F0 .462 (operator and locale-speci\214c string comparison when)2.962 F .71 -(using the)184 572.4 R F1([[)3.21 E F0 .71(conditional command')3.21 F +(using the)184 620.4 R F1([[)3.21 E F0 .71(conditional command')3.21 F (s)-.55 E F1(<)3.21 E F0(and)3.21 E F1(>)3.21 E F0 3.21(operators. Bash) -3.21 F -.15(ve)3.21 G .71(rsions prior to bash-4.1).15 F .821 -(use ASCII collation and)184 584.4 R F2(str)3.321 E(cmp)-.37 E F0 .821 -(\(3\); bash-4.1 and later use the current locale').19 F 3.32(sc)-.55 G -(ollation)-3.32 E(sequence and)184 596.4 Q F2(str)2.5 E(coll)-.37 E F0 -(\(3\).).51 E F1(compat32)144 608.4 Q F0 1.409(If set,)184 620.4 R F1 -(bash)3.909 E F0 1.409(changes its beha)3.909 F 1.409(vior to that of v) --.2 F 1.41(ersion 3.2 with respect to locale-speci\214c)-.15 F .423 -(string comparison when using the)184 632.4 R F1([[)2.922 E F0 .422 +3.21 F -.15(ve)3.21 G .71(rsions prior to bash-4.1).15 F .82 +(use ASCII collation and)184 632.4 R F2(str)3.321 E(cmp)-.37 E F0 .821 +(\(3\); bash-4.1 and later use the current locale').19 F 3.321(sc)-.55 G +(ollation)-3.321 E(sequence and)184 644.4 Q F2(str)2.5 E(coll)-.37 E F0 +(\(3\).).51 E F1(compat32)144 656.4 Q F0 1.41(If set,)184 668.4 R F1 +(bash)3.91 E F0 1.41(changes its beha)3.91 F 1.409(vior to that of v)-.2 +F 1.409(ersion 3.2 with respect to locale-speci\214c)-.15 F .422 +(string comparison when using the)184 680.4 R F1([[)2.922 E F0 .422 (conditional command')2.922 F(s)-.55 E F1(<)2.922 E F0(and)2.922 E F1(>) -2.922 E F0 .422(operators \(see pre-)2.922 F(vious item\).)184 644.4 Q -F1(compat40)144 656.4 Q F0 1.409(If set,)184 668.4 R F1(bash)3.909 E F0 -1.409(changes its beha)3.909 F 1.409(vior to that of v)-.2 F 1.41 -(ersion 4.0 with respect to locale-speci\214c)-.15 F 2.008 -(string comparison when using the)184 680.4 R F1([[)4.508 E F0 2.007 -(conditional command')4.508 F(s)-.55 E F1(<)4.507 E F0(and)4.507 E F1(>) -4.507 E F0 2.007(operators \(see)4.507 F .769(description of)184 692.4 R -F1(compat31)3.269 E F0 3.269(\)a)C .769(nd the ef)-3.269 F .769 -(fect of interrupting a command list.)-.25 F .77(Bash v)5.77 F(ersions) --.15 E .087(4.0 and later interrupt the list as if the shell recei)184 -704.4 R -.15(ve)-.25 G 2.586(dt).15 G .086(he interrupt; pre)-2.586 F -.086(vious v)-.25 F .086(ersions con-)-.15 F(tinue with the ne)184 716.4 -Q(xt command in the list.)-.15 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E --.15(ve)-.15 G(mber 24).15 E(67)185.545 E 0 Cg EP +2.923 E F0 .423(operators \(see pre-)2.923 F(vious item\).)184 692.4 Q +F1(compat40)144 704.4 Q F0 1.41(If set,)184 716.4 R F1(bash)3.91 E F0 +1.41(changes its beha)3.91 F 1.409(vior to that of v)-.2 F 1.409 +(ersion 4.0 with respect to locale-speci\214c)-.15 F 2.007 +(string comparison when using the)184 728.4 R F1([[)4.507 E F0 2.008 +(conditional command')4.507 F(s)-.55 E F1(<)4.508 E F0(and)4.508 E F1(>) +4.508 E F0 2.008(operators \(see)4.508 F(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(67)193.45 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-Bold@0 SF(compat41)144 84 Q F0 1.443(If set,)184 96 R -F1(bash)3.943 E F0 3.943(,w)C 1.444 +-.35 E .77(description of)184 84 R/F1 10/Times-Bold@0 SF(compat31)3.27 E +F0 3.269(\)a)C .769(nd the ef)-3.269 F .769 +(fect of interrupting a command list.)-.25 F .769(Bash v)5.769 F +(ersions)-.15 E .086 +(4.0 and later interrupt the list as if the shell recei)184 96 R -.15 +(ve)-.25 G 2.587(dt).15 G .087(he interrupt; pre)-2.587 F .087(vious v) +-.25 F .087(ersions con-)-.15 F(tinue with the ne)184 108 Q +(xt command in the list.)-.15 E F1(compat41)144 120 Q F0 1.444(If set,) +184 132 R F1(bash)3.944 E F0 3.944(,w)C 1.443 (hen in posix mode, treats a single quote in a double-quoted parameter) --3.943 F -.15(ex)184 108 S .959(pansion as a special character).15 F -5.959(.T)-.55 G .958(he single quotes must match \(an e)-5.959 F -.15 -(ve)-.25 G 3.458(nn).15 G .958(umber\) and)-3.458 F .59 -(the characters between the single quotes are considered quoted.)184 120 -R .59(This is the beha)5.59 F .59(vior of)-.2 F .59 -(posix mode through v)184 132 R .589(ersion 4.1.)-.15 F .589(The def) -5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .589 -(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 144 Q F1 -(complete_fullquote)144 156 Q F0 .653(If set,)184 168 R F1(bash)3.153 E -F0 .653(quotes all shell metacharacters in \214lenames and directory na\ -mes when per)3.153 F(-)-.2 E 1.525(forming completion.)184 180 R 1.524 -(If not set,)6.525 F F1(bash)4.024 E F0(remo)4.024 E -.15(ve)-.15 G -4.024(sm).15 G 1.524(etacharacters such as the dollar sign)-4.024 F -2.667(from the set of characters that will be quoted in completed \214l\ -enames when these)184 192 R .029(metacharacters appear in shell v)184 -204 R .028(ariable references in w)-.25 F .028(ords to be completed.)-.1 -F .028(This means)5.028 F 1.072(that dollar signs in v)184 216 R 1.073 +-3.944 F -.15(ex)184 144 S .958(pansion as a special character).15 F +5.958(.T)-.55 G .959(he single quotes must match \(an e)-5.958 F -.15 +(ve)-.25 G 3.459(nn).15 G .959(umber\) and)-3.459 F .59 +(the characters between the single quotes are considered quoted.)184 156 +R .59(This is the beha)5.59 F .59(vior of)-.2 F .589 +(posix mode through v)184 168 R .589(ersion 4.1.)-.15 F .589(The def) +5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .59 +(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 180 Q F1(compat42)144 192 Q +F0 1.797(If set,)184 204 R F1(bash)4.297 E F0 1.796 +(does not process the replacement string in the pattern substitution w) +4.296 F(ord)-.1 E -.15(ex)184 216 S(pansion using quote remo).15 E -.25 +(va)-.15 G(l.).25 E F1(complete_fullquote)144 228 Q F0 .653(If set,)184 +240 R F1(bash)3.153 E F0 .653(quotes all shell metacharacters in \214le\ +names and directory names when per)3.153 F(-)-.2 E 1.525 +(forming completion.)184 252 R 1.524(If not set,)6.525 F F1(bash)4.024 E +F0(remo)4.024 E -.15(ve)-.15 G 4.024(sm).15 G 1.524 +(etacharacters such as the dollar sign)-4.024 F 2.667(from the set of c\ +haracters that will be quoted in completed \214lenames when these)184 +264 R .029(metacharacters appear in shell v)184 276 R .028 +(ariable references in w)-.25 F .028(ords to be completed.)-.1 F .028 +(This means)5.028 F 1.072(that dollar signs in v)184 288 R 1.073 (ariable names that e)-.25 F 1.073 (xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25 -(ev e)184 228 T 1.923 -.4(r, a).25 H 1.423 -.15(ny d).4 H 1.123 +(ev e)184 300 T 1.923 -.4(r, a).25 H 1.423 -.15(ny d).4 H 1.123 (ollar signs appearing in \214lenames will not be quoted, either).15 F 6.123(.T)-.55 G 1.122(his is acti)-6.123 F -.15(ve)-.25 G .59 (only when bash is using backslashes to quote completed \214lenames.)184 -240 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 252 Q +312 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 324 Q (ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E -(ersions through 4.2.)-.15 E F1(dir)144 264 Q(expand)-.18 E F0 .487 -(If set,)184 276 R F1(bash)2.987 E F0 .486 +(ersions through 4.2.)-.15 E F1(dir)144 336 Q(expand)-.18 E F0 .487 +(If set,)184 348 R F1(bash)2.987 E F0 .486 (replaces directory names with the results of w)2.986 F .486(ord e)-.1 F .486(xpansion when perform-)-.15 F .179(ing \214lename completion.)184 -288 R .179(This changes the contents of the readline editing b)5.179 F +360 R .179(This changes the contents of the readline editing b)5.179 F (uf)-.2 E(fer)-.25 E 5.18(.I)-.55 G 2.68(fn)-5.18 G(ot)-2.68 E(set,)184 -300 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G -(hat the user typed.)-2.5 E F1(dirspell)144 312 Q F0 .859(If set,)7.77 F +372 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G +(hat the user typed.)-2.5 E F1(dirspell)144 384 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 324 Q(xist.)-.15 E -F1(dotglob)144 336 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165 +(the directory name initially supplied does not e)184 396 Q(xist.)-.15 E +F1(dotglob)144 408 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 348 Q F0 1.387 +(xpansion.)-.15 E F1(execfail)144 420 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 360 Q +1.386(cute the \214le speci\214ed as an).15 F(ar)184 432 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 372 Q F0 -.716(If set, aliases are e)184 384 R .717(xpanded as described abo)-.15 +E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 444 Q F0 +.716(If set, aliases are e)184 456 R .717(xpanded as described abo)-.15 F 1.017 -.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(ALIASES)3.217 E /F3 9/Times-Roman@0 SF(.)A F0 .717(This option is enabled)5.217 F -(by def)184 396 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.) -.15 E F1(extdeb)144 408 Q(ug)-.2 E F0(If set, beha)184 420 Q +(by def)184 468 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.) +.15 E F1(extdeb)144 480 Q(ug)-.2 E F0(If set, beha)184 492 Q (vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184 -432 Q F0(The)28.5 E F1<ad46>4.251 E F0 1.751(option to the)4.251 F F1 +504 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 444 Q -(gument.)-.18 E F1(2.)184 456 Q F0 1.667(If the command run by the)28.5 +(number corresponding to each function name supplied as an ar)220 516 Q +(gument.)-.18 E F1(2.)184 528 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 468 -Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 480 Q F0 .841 +1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 540 +Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 552 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 492 S .488 +(exe)220 564 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 504 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(4.)184 516 Q +(sour)220 576 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(4.)184 588 Q F2 -.27(BA)28.5 G(SH_ARGC).27 E F0(and)3.154 E F2 -.27(BA)3.404 G (SH_ARGV).27 E F0 .904(are updated as described in their descriptions) -3.154 F(abo)220 528 Q -.15(ve)-.15 G(.).15 E F1(5.)184 540 Q F0 1.359 +3.154 F(abo)220 600 Q -.15(ve)-.15 G(.).15 E F1(5.)184 612 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 -552 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10 +624 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 564 Q F0 .805(Error tracing is enabled:)28.5 F .804 -(command substitution, shell functions, and subshells)5.805 F(in)220 576 +184 636 Q F0 .805(Error tracing is enabled:)28.5 F .804 +(command substitution, shell functions, and subshells)5.805 F(in)220 648 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4 (command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E F0(trap.) -2.5 E F1(extglob)144 588 Q F0 .4(If set, the e)8.89 F .4 +2.5 E F1(extglob)144 660 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 600 Q -F0(are enabled.)2.5 E F1(extquote)144 612 Q F0 2.473(If set,)184 624 R +-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 672 Q +F0(are enabled.)2.5 E F1(extquote)144 684 Q F0 2.473(If set,)184 696 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 636 Q -(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 648 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 660 S(pansion error).15 E(.) --.55 E F1 -.25(fo)144 672 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0 -.937(If set, the suf)184 684 R<8c78>-.25 E .936(es speci\214ed by the) --.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w) --.25 F .936(ords to be ignored)-.1 F .32(when performing w)184 696 R .32 -(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32 -(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.948 -(pletions. See)184 708 R F2 .448(SHELL V)2.948 F(ARIABLES)-1.215 E F0 -(abo)2.698 E .748 -.15(ve f)-.15 H .448(or a description of).15 F F2 -(FIGNORE)2.947 E F3(.)A F0 .447(This option is)4.947 F(enabled by def) -184 720 Q(ault.)-.1 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve) --.15 G(mber 24).15 E(68)185.545 E 0 Cg EP +(pansions).15 E(enclosed in double quotes.)184 708 Q +(This option is enabled by def)5 E(ault.)-.1 E(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(68)193.45 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/F1 10/Times-Bold@0 SF(globasciiranges)144 84 Q F0 .805 -(If set, range e)184 96 R .806 -(xpressions used in pattern matching \(see)-.15 F/F2 9/Times-Bold@0 SF --.09(Pa)3.306 G(tter).09 E 3.056(nM)-.135 G(atching)-3.056 E F0(abo) -3.056 E -.15(ve)-.15 G 3.306(\)b).15 G(eha)-3.306 E -.15(ve)-.2 G 2.089 -(as if in the traditional C locale when performing comparisons.)184 108 -R 2.089(That is, the current)7.089 F(locale')184 120 Q 2.613(sc)-.55 G +-.35 E/F1 10/Times-Bold@0 SF(failglob)144 84 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 96 S(pansion error).15 E(.) +-.55 E F1 -.25(fo)144 108 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0 +.937(If set, the suf)184 120 R<8c78>-.25 E .936(es speci\214ed by the) +-.15 F/F2 9/Times-Bold@0 SF(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936 +(ariable cause w)-.25 F .936(ords to be ignored)-.1 F .32 +(when performing w)184 132 R .32(ord completion e)-.1 F -.15(ve)-.25 G +2.82(ni).15 G 2.82(ft)-2.82 G .32(he ignored w)-2.82 F .32 +(ords are the only possible com-)-.1 F 2.948(pletions. See)184 144 R F2 +.448(SHELL V)2.948 F(ARIABLES)-1.215 E F0(abo)2.698 E .748 -.15(ve f) +-.15 H .448(or a description of).15 F F2(FIGNORE)2.947 E/F3 9 +/Times-Roman@0 SF(.)A F0 .447(This option is)4.947 F(enabled by def)184 +156 Q(ault.)-.1 E F1(globasciiranges)144 168 Q F0 .805(If set, range e) +184 180 R .806(xpressions used in pattern matching \(see)-.15 F F2 -.09 +(Pa)3.306 G(tter).09 E 3.056(nM)-.135 G(atching)-3.056 E F0(abo)3.056 E +-.15(ve)-.15 G 3.306(\)b).15 G(eha)-3.306 E -.15(ve)-.2 G 2.089 +(as if in the traditional C locale when performing comparisons.)184 192 +R 2.089(That is, the current)7.089 F(locale')184 204 Q 2.613(sc)-.55 G .113(ollating sequence is not tak)-2.613 F .113(en into account, so)-.1 F F1(b)2.613 E F0 .114(will not collate between)2.613 F F1(A)2.614 E F0 -(and)2.614 E F1(B)184 132 Q F0 2.5(,a)C(nd upper)-2.5 E(-case and lo)-.2 +(and)2.614 E F1(B)184 216 Q F0 2.5(,a)C(nd upper)-2.5 E(-case and lo)-.2 E(wer)-.25 E(-case ASCII characters will collate together)-.2 E(.)-.55 E -F1(globstar)144 144 Q F0 .519(If set, the pattern)5 F F1(**)3.019 E F0 +F1(globstar)144 228 Q F0 .519(If set, the pattern)5 F F1(**)3.019 E F0 .519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .518 (xt will match all \214les and zero)-.15 F .431 -(or more directories and subdirectories.)184 156 R .431 +(or more directories and subdirectories.)184 240 R .431 (If the pattern is follo)5.431 F .432(wed by a)-.25 F F1(/)2.932 E F0 2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184 -168 Q F1(gnu_errfmt)144 180 Q F0(If set, shell error messages are writt\ -en in the standard GNU error message format.)184 192 Q F1(histappend)144 -204 Q F0 .676 +252 Q F1(gnu_errfmt)144 264 Q F0(If set, shell error messages are writt\ +en in the standard GNU error message format.)184 276 Q F1(histappend)144 +288 Q F0 .676 (If set, the history list is appended to the \214le named by the v)184 -216 R .676(alue of the)-.25 F F2(HISTFILE)3.176 E F0 -.25(va)2.926 G -(ri-).25 E(able when the shell e)184 228 Q(xits, rather than o)-.15 E --.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 240 Q(eedit)-.18 -E F0 .575(If set, and)184 252 R F1 -.18(re)3.075 G(adline).18 E F0 .575 +300 R .676(alue of the)-.25 F F2(HISTFILE)3.176 E F0 -.25(va)2.926 G +(ri-).25 E(able when the shell e)184 312 Q(xits, rather than o)-.15 E +-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 324 Q(eedit)-.18 +E F0 .575(If set, and)184 336 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 264 Q F1(histv)144 276 Q(erify)-.1 E F0 .403 -(If set, and)184 288 R F1 -.18(re)2.903 G(adline).18 E F0 .403 +(tory substitution.)184 348 Q F1(histv)144 360 Q(erify)-.1 E F0 .403 +(If set, and)184 372 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 300 R 5.661(.I)-.55 G .662 +2.903 F .661(passed to the shell parser)184 384 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 312 S -.25(ff).2 G(er).25 E +G(adline).18 E F0(editing)3.162 E -.2(bu)184 396 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 324 Q F0 1.182(If set, and)184 336 R F1 -.18(re)3.682 +(hostcomplete)144 408 Q F0 1.182(If set, and)184 420 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 -348 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381 +432 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381 (is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E -F2(READLINE)3.881 E F0(abo)184 360 Q -.15(ve)-.15 G 2.5(\). This).15 F -(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 372 Q F0(If set,) -184 384 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0 +F2(READLINE)3.881 E F0(abo)184 444 Q -.15(ve)-.15 G 2.5(\). This).15 F +(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 456 Q F0(If set,) +184 468 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 396 Q -.1(ve)-.1 G(_comments).1 E F0 -.33(If set, allo)184 408 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33 +.15 E(xits.)-.15 E F1(interacti)144 480 Q -.1(ve)-.1 G(_comments).1 E F0 +.33(If set, allo)184 492 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 420 R 1.267 -.15(ve s)-.25 +(that line to be ignored in an interacti)184 504 R 1.267 -.15(ve s)-.25 H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15 -G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 432 Q -(ault.)-.1 E F1(lastpipe)144 444 Q F0 1.212 +G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 516 Q +(ault.)-.1 E F1(lastpipe)144 528 Q F0 1.212 (If set, and job control is not acti)6.66 F -.15(ve)-.25 G 3.712(,t).15 G 1.212(he shell runs the last command of a pipeline not)-3.712 F -.15 -(exe)184 456 S(cuted in the background in the current shell en).15 E -(vironment.)-.4 E F1(lithist)144 468 Q F0 .654(If set, and the)15.55 F +(exe)184 540 S(cuted in the background in the current shell en).15 E +(vironment.)-.4 E F1(lithist)144 552 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 480 Q +(with embedded ne)184 564 Q (wlines rather than using semicolon separators where possible.)-.25 E F1 -(login_shell)144 492 Q F0 .486 +(login_shell)144 576 Q F0 .486 (The shell sets this option if it is started as a login shell \(see)184 -504 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 516 S(lue may not be changed.).25 -E F1(mailwar)144 528 Q(n)-.15 E F0 .814(If set, and a \214le that)184 -540 R F1(bash)3.314 E F0 .815 +588 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 600 S(lue may not be changed.).25 +E F1(mailwar)144 612 Q(n)-.15 E F0 .814(If set, and a \214le that)184 +624 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 552 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 +-.1(wa)184 636 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E +(`The mail in)-.74 E/F4 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 564 Q F0 .325(If set, and)184 576 R F1 -.18 +(no_empty_cmd_completion)144 648 Q F0 .325(If set, and)184 660 R F1 -.18 (re)2.825 G(adline).18 E F0 .325(is being used,)2.825 F F1(bash)2.824 E F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.824 G(TH) -.189 E F0 .324(for possible)2.574 F -(completions when completion is attempted on an empty line.)184 588 Q F1 -(nocaseglob)144 600 Q F0 .436(If set,)184 612 R F1(bash)2.936 E F0 .436 +(completions when completion is attempted on an empty line.)184 672 Q F1 +(nocaseglob)144 684 Q F0 .436(If set,)184 696 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 624 S +H .437(ashion when performing pathname).05 F -.15(ex)184 708 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 636 Q F0 1.194(If set,)184 -648 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 660 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 672 Q F0 -.854(If set,)184 684 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 696 S(pand to a null string, rather than themselv) -.15 E(es.)-.15 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G -(mber 24).15 E(69)185.545 E 0 Cg EP +-.15(ve)-.15 G(\).).15 E(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E +(69)193.45 E 0 Cg EP %%Page: 70 70 %%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(pr)144 84 Q(ogcomp)-.18 E F0 .677 -(If set, the programmable completion f)184 96 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 108 Q -(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 120 Q(omptv) --.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 132 R 1.448 +-.35 E/F1 10/Times-Bold@0 SF(nocasematch)144 84 Q F0 1.194(If set,)184 +96 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 108 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 120 Q F0 +.854(If set,)184 132 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 144 S(pand to a null string, rather than themselv) +.15 E(es.)-.15 E F1(pr)144 156 Q(ogcomp)-.18 E F0 .677 +(If set, the programmable completion f)184 168 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 180 Q +(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 192 Q(omptv) +-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 204 R 1.448 (go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic) --.15 F -.15(ex)184 144 S .171(pansion, and quote remo).15 F -.25(va)-.15 +-.15 F -.15(ex)184 216 S .171(pansion, and quote remo).15 F -.25(va)-.15 G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in) -.15 F/F2 9/Times-Bold@0 SF(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15 -(ve)-.15 G(.).15 E(This option is enabled by def)184 156 Q(ault.)-.1 E -F1 -.18(re)144 168 S(stricted_shell).18 E F0 1.069 +(ve)-.15 G(.).15 E(This option is enabled by def)184 228 Q(ault.)-.1 E +F1 -.18(re)144 240 S(stricted_shell).18 E F0 1.069 (The shell sets this option if it is started in restricted mode \(see) -184 180 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 192 Q 4.178 +184 252 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 264 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 204 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E +184 276 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 216 Q(erbose)-.1 E F0 .501(If set, the)184 228 R F1 +F1(shift_v)144 288 Q(erbose)-.1 E F0 .501(If set, the)184 300 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 240 Q F1(sour) -144 252 Q(cepath)-.18 E F0 .771(If set, the)184 264 R F1(sour)3.271 E +(xceeds the number)-.15 F(of positional parameters.)184 312 Q F1(sour) +144 324 Q(cepath)-.18 E F0 .771(If set, the)184 336 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 -.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 276 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.) --.1 E F1(xpg_echo)144 288 Q F0(If set, the)184 300 Q F1(echo)2.5 E F0 +184 348 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.) +-.1 E F1(xpg_echo)144 360 Q F0(If set, the)184 372 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 316.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.001 -(Suspend the e)144 328.8 R -.15(xe)-.15 G 1.001 +E(ault.)-.1 E F1(suspend)108 388.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.001 +(Suspend the e)144 400.8 R -.15(xe)-.15 G 1.001 (cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be) -3.502 F .023(suspended; the)144 340.8 R F1<ad66>2.523 E F0 .023 +3.502 F .023(suspended; the)144 412.8 R F1<ad66>2.523 E F0 .023 (option can be used to o)2.523 F -.15(ve)-.15 G .022 (rride this and force the suspension.).15 F .022(The return status is) -5.022 F 2.5(0u)144 352.8 S(nless the shell is a login shell and)-2.5 E +5.022 F 2.5(0u)144 424.8 S(nless the shell is a login shell and)-2.5 E F1<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5 -E F1(test)108 369.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([) -108 381.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .877 +E F1(test)108 441.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([) +108 453.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .877 (Return a status of 0 \(true\) or 1 \(f)6.77 F .878 (alse\) depending on the e)-.1 F -.25(va)-.25 G .878 -(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 393.6 +(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 465.6 S(pr).2 E F0 5.53(.E).73 G .53 (ach operator and operand must be a separate ar)-5.53 F 3.03 (gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.079 -(primaries described abo)144 405.6 R 3.379 -.15(ve u)-.15 H(nder).15 E +(primaries described abo)144 477.6 R 3.379 -.15(ve u)-.15 H(nder).15 E F2(CONDITION)5.579 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF (.)A F1(test)7.579 E F0 3.08(does not accept an)5.58 F(y)-.15 E -(options, nor does it accept and ignore an ar)144 417.6 Q(gument of)-.18 +(options, nor does it accept and ignore an ar)144 489.6 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 435.6 R .785 +(Expressions may be combined using the follo)144 507.6 R .785 (wing operators, listed in decreasing order of prece-)-.25 F 3.411 -(dence. The)144 447.6 R -.25(eva)3.411 G .911 +(dence. The)144 519.6 R -.25(eva)3.411 G .911 (luation depends on the number of ar).25 F .912(guments; see belo)-.18 F 4.712 -.65(w. O)-.25 H .912(perator precedence is).65 F -(used when there are \214v)144 459.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G -(ore ar)-2.5 E(guments.)-.18 E F1(!)144 471.6 Q F3 -.2(ex)2.5 G(pr).2 E +(used when there are \214v)144 531.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G +(ore ar)-2.5 E(guments.)-.18 E F1(!)144 543.6 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 483.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 +(alse.)-.1 E F1(\()144 555.6 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 495.6 Q F3 -.2 -(ex)144 507.6 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 --.35(Tr)180 519.6 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 -E F3 -.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 531.6 S +(rride the normal precedence of opera-).15 F(tors.)180 567.6 Q F3 -.2 +(ex)144 579.6 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 +-.35(Tr)180 591.6 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 +E F3 -.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 603.6 S (pr1).2 E F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 -543.6 S(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2 -(ex)2.5 G(pr2).2 E F0(is true.)2.52 E F1(test)144 560.4 Q F0(and)2.5 E +615.6 S(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2 +(ex)2.5 G(pr2).2 E F0(is true.)2.52 E F1(test)144 632.4 Q F0(and)2.5 E F1([)2.5 E F0 -.25(eva)2.5 G(luate conditional e).25 E (xpressions using a set of rules based on the number of ar)-.15 E -(guments.)-.18 E 2.5(0a)144 578.4 S -.18(rg)-2.5 G(uments).18 E(The e) -180 590.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 602.4 S -.18 -(rg)-2.5 G(ument).18 E(The e)180 614.4 Q +(guments.)-.18 E 2.5(0a)144 650.4 S -.18(rg)-2.5 G(uments).18 E(The e) +180 662.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 674.4 S -.18 +(rg)-2.5 G(ument).18 E(The e)180 686.4 Q (xpression is true if and only if the ar)-.15 E(gument is not null.)-.18 -E 2.5(2a)144 626.4 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar) -180 638.4 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87 +E 2.5(2a)144 698.4 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar) +180 710.4 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87 F .37(xpression is true if and only if the second ar)-.15 F .37 -(gument is null.)-.18 F .38(If the \214rst ar)180 650.4 R .38 -(gument is one of the unary conditional operators listed abo)-.18 F .679 --.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.879 E(TION)180 662.4 Q .552 -(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 674.4 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 686.4 S -.18(rg)-2.5 G -(uments).18 E .236(The follo)180 698.4 R .236 -(wing conditions are applied in the order listed.)-.25 F .236 -(If the second ar)5.236 F .236(gument is one of)-.18 F .855 -(the binary conditional operators listed abo)180 710.4 R 1.155 -.15 -(ve u)-.15 H(nder).15 E F2(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F -F4(,)A F0(the)3.105 E .579(result of the e)180 722.4 R .578(xpression i\ -s the result of the binary test using the \214rst and third ar)-.15 F -(guments)-.18 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15(ve)-.15 G -(mber 24).15 E(70)185.545 E 0 Cg EP +(gument is null.)-.18 F 3.14(If the \214rst ar)180 722.4 R 3.139 +(gument is one of the unary conditional operators listed abo)-.18 F +3.439 -.15(ve u)-.15 H(nder).15 E(GNU Bash 4.2)72 768 Q(2013 January 8) +144.29 E(70)193.45 E 0 Cg EP %%Page: 71 71 %%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.332(as operands.)180 84 R(The)6.332 E/F1 10/Times-Bold@0 SF -<ad61>3.832 E F0(and)3.832 E F1<ad6f>3.832 E F0 1.333 +-.35 E/F1 9/Times-Bold@0 SF(CONDITION)180 84 Q .121(AL EXPRESSIONS)-.18 +F/F2 9/Times-Roman@0 SF(,)A F0 .121(the e)2.371 F .122 +(xpression is true if the unary test is true.)-.15 F .122 +(If the \214rst)5.122 F(ar)180 96 Q(gument is not a v)-.18 E +(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E +(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 108 S -.18(rg)-2.5 G +(uments).18 E .236(The follo)180 120 R .236 +(wing conditions are applied in the order listed.)-.25 F .236 +(If the second ar)5.236 F .236(gument is one of)-.18 F .855 +(the binary conditional operators listed abo)180 132 R 1.155 -.15(ve u) +-.15 H(nder).15 E F1(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F F2(,)A +F0(the)3.105 E .579(result of the e)180 144 R .578(xpression is the res\ +ult of the binary test using the \214rst and third ar)-.15 F(guments) +-.18 E 1.332(as operands.)180 156 R(The)6.332 E/F3 10/Times-Bold@0 SF +<ad61>3.832 E F0(and)3.832 E F3<ad6f>3.832 E F0 1.333 (operators are considered binary operators when there are)3.832 F .558 -(three ar)180 96 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058 F -.558(gument is)-.18 F F1(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F .558 +(three ar)180 168 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058 F +.558(gument is)-.18 F F3(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F .558 (alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F(o-ar)-.1 -E(gument)-.18 E .52(test using the second and third ar)180 108 R 3.021 +E(gument)-.18 E .52(test using the second and third ar)180 180 R 3.021 (guments. If)-.18 F .521(the \214rst ar)3.021 F .521(gument is e)-.18 F -(xactly)-.15 E F1(\()3.021 E F0 .521(and the third)3.021 F(ar)180 120 Q -.485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 E F0 2.985(,t)C .485 +(xactly)-.15 E F3(\()3.021 E F0 .521(and the third)3.021 F(ar)180 192 Q +.485(gument is e)-.18 F(xactly)-.15 E F3(\))2.985 E F0 2.985(,t)C .485 (he result is the one-ar)-2.985 F .485(gument test of the second ar)-.18 -F 2.985(gument. Other)-.18 F(-)-.2 E(wise, the e)180 132 Q -(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144 144 S -.18(rg)-2.5 G -(uments).18 E .384(If the \214rst ar)180 156 R .384(gument is)-.18 F F1 +F 2.985(gument. Other)-.18 F(-)-.2 E(wise, the e)180 204 Q +(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144 216 S -.18(rg)-2.5 G +(uments).18 E .384(If the \214rst ar)180 228 R .384(gument is)-.18 F F3 (!)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 168 R 4.147 +(xpression com-)-.15 F 1.648(posed of the remaining ar)180 240 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 180 Q -.15(ve) --.15 G(.).15 E 2.5(5o)144 192 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18 -E 1.635(The e)180 204 R 1.635(xpression is parsed and e)-.15 F -.25(va) +(according to precedence using the rules listed abo)180 252 Q -.15(ve) +-.15 G(.).15 E 2.5(5o)144 264 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18 +E 1.635(The e)180 276 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 216 Q -.15(ve)-.15 G(.).15 E(When used with)144 234 Q F1(test) -2.5 E F0(or)2.5 E F1([)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E F0(and)2.5 -E F1(>)2.5 E F0(operators sort le)2.5 E -(xicographically using ASCII ordering.)-.15 E F1(times)108 250.8 Q F0 +(abo)180 288 Q -.15(ve)-.15 G(.).15 E(When used with)144 306 Q F3(test) +2.5 E F0(or)2.5 E F3([)2.5 E F0 2.5(,t)C(he)-2.5 E F3(<)2.5 E F0(and)2.5 +E F3(>)2.5 E F0(operators sort le)2.5 E +(xicographically using ASCII ordering.)-.15 E F3(times)108 322.8 Q F0 1.229(Print the accumulated user and system times for the shell and for\ - processes run from the shell.)13.23 F(The return status is 0.)144 262.8 -Q F1(trap)108 279.6 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E/F2 10 -/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...])2.5 E -.702(The command)144 291.6 R F2(ar)3.532 E(g)-.37 E F0 .702 + processes run from the shell.)13.23 F(The return status is 0.)144 334.8 +Q F3(trap)108 351.6 Q F0([)2.5 E F3(\255lp)A F0 2.5(][)C([)-2.5 E/F4 10 +/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F4(sigspec)2.5 E F0(...])2.5 E +.702(The command)144 363.6 R F4(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 +(ignal\(s\))-3.203 E F4(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F4 (ar)3.533 E(g)-.37 E F0(is)3.423 E .609(absent \(and there is a single) -144 303.6 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E +144 375.6 R F4(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F3<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 315.6 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 327.6 Q F0 .581 +.658(\(the v)144 387.6 R .658(alue it had upon entrance to the shell\).) +-.25 F(If)5.658 E F4(ar)3.488 E(g)-.37 E F0 .659 +(is the null string the signal speci\214ed by each)3.378 F F4(sigspec) +144.34 399.6 Q F0 .581 (is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G --.1(ke).2 G 3.08(s. If).1 F 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 339.6 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 351.6 R F1<ad70>3.36 -E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86 +-.1(ke).2 G 3.08(s. If).1 F F4(ar)3.41 E(g)-.37 E F0 .58 +(is not present and)3.3 F F3<ad70>3.08 E F0(has)3.08 E 1.214 +(been supplied, then the trap commands associated with each)144 411.6 R +F4(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 423.6 R F3<ad70>3.36 +E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F3(trap)3.36 E F0 .86 (prints the list of commands associated with each)3.36 F 2.83 -(signal. The)144 363.6 R F1<ad6c>2.83 E F0 .33(option causes the shell \ +(signal. The)144 435.6 R F3<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 375.6 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 +4.311(bers. Each)144 447.6 R F4(sigspec)4.651 E F0 1.811 +(is either a signal name de\214ned in <)4.621 F F4(signal.h)A F0 1.81 (>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E -(names are case insensiti)144 387.6 Q .3 -.15(ve a)-.25 H(nd the).15 E -/F3 9/Times-Bold@0 SF(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.648 -(If a)144 405.6 R F2(sigspec)4.488 E F0(is)4.458 E F3(EXIT)4.148 E F0 -1.648(\(0\) the command)3.898 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e) -4.369 F -.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.) --.15 F 1.649(If a)6.649 F F2(sigspec)4.489 E F0(is)4.459 E F3(DEB)144 -417.6 Q(UG)-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.168(the command)3.418 F -F2(ar)3.998 E(g)-.37 E F0 1.168(is e)3.888 F -.15(xe)-.15 G 1.167 -(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.167(simple command) -3.667 F F0(,)A F2(for)3.667 E F0(command,)3.667 E F2(case)3.667 E F0 -(com-)3.667 E(mand,)144 429.6 Q F2(select)2.646 E F0 .146(command, e) -2.646 F -.15(ve)-.25 G .146(ry arithmetic).15 F F2(for)2.646 E F0 .147 +(names are case insensiti)144 459.6 Q .3 -.15(ve a)-.25 H(nd the).15 E +F1(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.648(If a)144 477.6 R F4 +(sigspec)4.488 E F0(is)4.458 E F1(EXIT)4.148 E F0 1.648 +(\(0\) the command)3.898 F F4(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F +-.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.)-.15 F +1.649(If a)6.649 F F4(sigspec)4.489 E F0(is)4.459 E F1(DEB)144 489.6 Q +(UG)-.09 E F2(,)A F0 1.168(the command)3.418 F F4(ar)3.998 E(g)-.37 E F0 +1.168(is e)3.888 F -.15(xe)-.15 G 1.167(cuted before e).15 F -.15(ve) +-.25 G(ry).15 E F4 1.167(simple command)3.667 F F0(,)A F4(for)3.667 E F0 +(command,)3.667 E F4(case)3.667 E F0(com-)3.667 E(mand,)144 501.6 Q F4 +(select)2.646 E F0 .146(command, e)2.646 F -.15(ve)-.25 G .146 +(ry arithmetic).15 F F4(for)2.646 E F0 .147 (command, and before the \214rst command e)2.646 F -.15(xe)-.15 G .147 -(cutes in a).15 F .146(shell function \(see)144 441.6 R F3 .146 +(cutes in a).15 F .146(shell function \(see)144 513.6 R F1 .146 (SHELL GRAMMAR)2.646 F F0(abo)2.396 E -.15(ve)-.15 G 2.646(\). Refer).15 -F .146(to the description of the)2.646 F F1(extdeb)2.645 E(ug)-.2 E F0 -.145(option to)2.645 F(the)144 453.6 Q F1(shopt)3.2 E F0 -.2(bu)3.2 G .7 -(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E(UG) --.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E F3 -(RETURN)3.2 E F4(,)A F0 .701(the com-)2.951 F(mand)144 465.6 Q F2(ar) +F .146(to the description of the)2.646 F F3(extdeb)2.645 E(ug)-.2 E F0 +.145(option to)2.645 F(the)144 525.6 Q F3(shopt)3.2 E F0 -.2(bu)3.2 G .7 +(iltin for details of its ef).2 F .7(fect on the)-.25 F F3(DEB)3.2 E(UG) +-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F4(sigspec)3.54 E F0(is)3.51 E F1 +(RETURN)3.2 E F2(,)A F0 .701(the com-)2.951 F(mand)144 537.6 Q F4(ar) 3.474 E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643 (cuted each time a shell function or a script e).15 F -.15(xe)-.15 G -.643(cuted with the).15 F F1(.)3.143 E F0(or)3.143 E F1(sour)3.143 E(ce) --.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 477.6 Q -.15(xe) --.15 G(cuting.).15 E .928(If a)144 495.6 R F2(sigspec)3.768 E F0(is) -3.738 E F3(ERR)3.429 E F4(,)A F0 .929(the command)3.179 F F2(ar)3.759 E -(g)-.37 E F0 .929(is e)3.649 F -.15(xe)-.15 G .929(cuted whene).15 F --.15(ve)-.25 G 3.429(ras).15 G .929(imple command has a non\255zero) --3.429 F -.15(ex)144 507.6 S 1.009(it status, subject to the follo).15 F -1.009(wing conditions.)-.25 F(The)6.009 E F3(ERR)3.509 E F0 1.009 -(trap is not e)3.259 F -.15(xe)-.15 G 1.008(cuted if the f).15 F 1.008 -(ailed com-)-.1 F .324 -(mand is part of the command list immediately follo)144 519.6 R .324 -(wing a)-.25 F F1(while)2.824 E F0(or)2.824 E F1(until)2.824 E F0 -.1 -(ke)2.824 G(yw)-.05 E .324(ord, part of the test)-.1 F .151(in an)144 -531.6 R F2(if)2.661 E F0 .151(statement, part of a command e)4.611 F --.15(xe)-.15 G .151(cuted in a).15 F F1(&&)2.651 E F0(or)2.651 E F1(||) -2.651 E F0 .151(list, or if the command')2.651 F 2.651(sr)-.55 G .151 -(eturn v)-2.651 F(alue)-.25 E(is being in)144 543.6 Q -.15(ve)-.4 G -(rted via).15 E F1(!)2.5 E F0 5(.T)C(hese are the same conditions obe)-5 -E(yed by the)-.15 E F1(err)2.5 E(exit)-.18 E F0(option.)2.5 E 1.095 +.643(cuted with the).15 F F3(.)3.143 E F0(or)3.143 E F3(sour)3.143 E(ce) +-.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 549.6 Q -.15(xe) +-.15 G(cuting.).15 E .521(If a)144 567.6 R F4(sigspec)3.361 E F0(is) +3.331 E F1(ERR)3.021 E F2(,)A F0 .522(the command)2.771 F F4(ar)3.352 E +(g)-.37 E F0 .522(is e)3.242 F -.15(xe)-.15 G .522(cuted whene).15 F +-.15(ve)-.25 G 3.022(raap).15 G .522(ipeline \(which may consist of a) +-3.022 F .185(single simple command\), a list, or a compound command re\ +turns a non\255zero e)144 579.6 R .184(xit status, subject to)-.15 F +.451(the follo)144 591.6 R .451(wing conditions.)-.25 F(The)5.451 E F1 +(ERR)2.951 E F0 .451(trap is not e)2.701 F -.15(xe)-.15 G .451 +(cuted if the f).15 F .452(ailed command is part of the com-)-.1 F .388 +(mand list immediately follo)144 603.6 R .388(wing a)-.25 F F3(while) +2.888 E F0(or)2.888 E F3(until)2.888 E F0 -.1(ke)2.888 G(yw)-.05 E .388 +(ord, part of the test in an)-.1 F F4(if)2.897 E F0 .387 +(statement, part)4.847 F .777(of a command e)144 615.6 R -.15(xe)-.15 G +.778(cuted in a).15 F F3(&&)3.278 E F0(or)3.278 E F3(||)3.278 E F0 .778 +(list e)3.278 F .778(xcept the command follo)-.15 F .778 +(wing the \214nal)-.25 F F3(&&)3.278 E F0(or)3.278 E F3(||)3.278 E F0 +3.278(,a)C -.15(ny)-3.278 G 1.28(command in a pipeline b)144 627.6 R +1.28(ut the last, or if the command')-.2 F 3.78(sr)-.55 G 1.28(eturn v) +-3.78 F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F +F3(!)3.78 E F0(.)A(These are the same conditions obe)144 639.6 Q +(yed by the)-.15 E F3(err)2.5 E(exit)-.18 E F0(\()2.5 E F3<ad65>A F0 2.5 +(\)o)C(ption.)-2.5 E 1.095 (Signals ignored upon entry to the shell cannot be trapped or reset.)144 -561.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662 -(being ignored are reset to their original v)144 573.6 R .662 +657.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662 +(being ignored are reset to their original v)144 669.6 R .662 (alues in a subshell or subshell en)-.25 F .661(vironment when one is) --.4 F 2.5(created. The)144 585.6 R(return status is f)2.5 E(alse if an) --.1 E(y)-.15 E F2(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G -(lid; otherwise).25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108 -602.4 Q F0([)2.5 E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2 -(name)A F0(...])2.5 E -.4(Wi)144 614.4 S .173 -(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F2(name) +-.4 F 2.5(created. The)144 681.6 R(return status is f)2.5 E(alse if an) +-.1 E(y)-.15 E F4(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G +(lid; otherwise).25 E F3(trap)2.5 E F0(returns true.)2.5 E F3(type)108 +698.4 Q F0([)2.5 E F3(\255aftpP)A F0(])A F4(name)2.5 E F0([)2.5 E F4 +(name)A F0(...])2.5 E -.4(Wi)144 710.4 S .173 +(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F4(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 626.4 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 638.4 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 650.4 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 662.4 R .855 -(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0 -.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if) -144 674.4 R/F5 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 686.4 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 F5 .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 698.4 Q F1<ad50>3.231 E F0 .731(print the hashed v)3.231 F -.73(alue, which is not necessarily the \214le that appears \214rst in) --.25 F F3 -.666(PA)3.23 G(TH)-.189 E F4(.)A F0 .73(If the)5.23 F F1 -<ad61>144 710.4 Q F0 1.748(option is used,)4.248 F F1(type)4.248 E F0 -1.748(prints all of the places that contain an e)4.248 F -.15(xe)-.15 G -1.748(cutable named).15 F F2(name)4.249 E F0 6.749(.T).18 G(his)-6.749 E -.744(includes aliases and functions, if and only if the)144 722.4 R F1 -<ad70>3.244 E F0 .744(option is not also used.)3.244 F .743 -(The table of hashed)5.744 F(GNU Bash 4.2)72 768 Q(2012 No)136.385 E --.15(ve)-.15 G(mber 24).15 E(71)185.545 E 0 Cg EP +F3<ad74>144 722.4 Q F0 .843(option is used,)3.343 F F3(type)3.343 E F0 +.843(prints a string which is one of)3.343 F F4(alias)3.343 E F0(,).27 E +F4 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F4(function)3.343 E F0 +(,).24 E F4 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F4 +(\214le)5.252 E F0(if)3.522 E(GNU Bash 4.2)72 768 Q(2013 January 8) +144.29 E(71)193.45 E 0 Cg EP %%Page: 72 72 %%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.223(commands is not consulted when using)144 84 R/F1 10 -/Times-Bold@0 SF<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F1<ad66>3.723 E -F0 1.223(option suppresses shell function lookup, as)3.723 F .326 -(with the)144 96 R F1(command)2.826 E F0 -.2(bu)2.826 G(iltin.).2 E F1 -(type)5.326 E F0 .326(returns true if all of the ar)2.826 F .325 +-.35 E/F1 10/Times-Italic@0 SF(name)144.36 84 Q F0 .086 +(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086 +(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15 +(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F1 +(name)2.947 E F0 .087(is not)2.767 F .119 +(found, then nothing is printed, and an e)144 96 R .118(xit status of f) +-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F/F2 10 +/Times-Bold@0 SF<ad70>2.618 E F0 .118(option is used,)2.618 F F2(type) +2.618 E F0 .855(either returns the name of the disk \214le that w)144 +108 R .855(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F1(name) +3.715 E F0 .855(were speci\214ed as a com-)3.535 F .641 +(mand name, or nothing if)144 120 R/F3 10/Courier@0 SF .641 +(type -t name)3.141 F F0 -.1(wo)3.141 G .641(uld not return).1 F F1 +(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E F2<ad50>3.14 E F0 .64 +(option forces a)3.14 F/F4 9/Times-Bold@0 SF -.666(PA)3.14 G(TH)-.189 E +F0 .112(search for each)144 132 R F1(name)2.612 E F0 2.612(,e)C -.15(ve) +-2.862 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 F1(\214le)2.613 E F0 5.113(.I).18 G +2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F2<ad70>2.613 E F0 +(and)144 144 Q F2<ad50>3.231 E F0 .731(print the hashed v)3.231 F .73 +(alue, which is not necessarily the \214le that appears \214rst in)-.25 +F F4 -.666(PA)3.23 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .73(If the) +5.23 F F2<ad61>144 156 Q F0 1.748(option is used,)4.248 F F2(type)4.248 +E F0 1.748(prints all of the places that contain an e)4.248 F -.15(xe) +-.15 G 1.748(cutable named).15 F F1(name)4.249 E F0 6.749(.T).18 G(his) +-6.749 E .744(includes aliases and functions, if and only if the)144 168 +R F2<ad70>3.244 E F0 .744(option is not also used.)3.244 F .743 +(The table of hashed)5.744 F 1.223(commands is not consulted when using) +144 180 R F2<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F2<ad66>3.723 E F0 +1.223(option suppresses shell function lookup, as)3.723 F .326(with the) +144 192 R F2(command)2.826 E F0 -.2(bu)2.826 G(iltin.).2 E F2(type)5.326 +E F0 .326(returns true if all of the ar)2.826 F .325 (guments are found, f)-.18 F .325(alse if an)-.1 F 2.825(ya)-.15 G .325 -(re not)-2.825 F(found.)144 108 Q F1(ulimit)108 124.8 Q F0([)2.5 E F1 -(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E/F2 10/Times-Italic@0 -SF(limit)A F0(]])A(Pro)144 136.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 +(re not)-2.825 F(found.)144 204 Q F2(ulimit)108 220.8 Q F0([)2.5 E F2 +(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F1(limit)A F0(]])A +(Pro)144 232.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 148.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 +.944(that allo)144 244.8 R 3.444(ws)-.25 G .944(uch control.)-3.444 F +(The)5.944 E F2<ad48>3.444 E F0(and)3.444 E F2<ad53>3.444 E F0 .943 (options specify that the hard or soft limit is set for the)3.444 F(gi) -144 160.8 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208 +144 256.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 172.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 +ft limit may)2.708 F .426(be increased up to the v)144 268.8 R .426 +(alue of the hard limit.)-.25 F .425(If neither)5.426 F F2<ad48>2.925 E +F0(nor)2.925 E F2<ad53>2.925 E F0 .425 (is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144 -184.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139 +280.8 R .139(The v)5.139 F .139(alue of)-.25 F F1(limit)2.729 E F0 .139 (can be a number in the unit speci\214ed for the resource or one)3.319 F -.742(of the special v)144 196.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) +.742(of the special v)144 292.8 R(alues)-.25 E F2(hard)3.242 E F0(,)A F2 +(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F2(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 208.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 +(soft limit, and no limit, respecti)144 304.8 R -.15(ve)-.25 G(ly).15 E +5.78(.I)-.65 G(f)-5.78 E F1(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 220.8 R F1<ad48>2.999 E F0 +F .499(resource is printed, unless the)144 316.8 R F2<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 232.8 Q 2.5 -(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1 -<ad61>144 244.8 Q F0(All current limits are reported)25.3 E F1<ad62>144 -256.8 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E -F1<ad63>144 268.8 Q F0(The maximum size of core \214les created)25.86 E -F1<ad64>144 280.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 292.8 Q F0 -(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 304.8 Q +(limit name and unit are printed before the v)144 328.8 Q 2.5 +(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F2 +<ad61>144 340.8 Q F0(All current limits are reported)25.3 E F2<ad62>144 +352.8 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E +F2<ad63>144 364.8 Q F0(The maximum size of core \214les created)25.86 E +F2<ad64>144 376.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 F2<ad65>144 388.8 Q F0 +(The maximum scheduling priority \("nice"\))25.86 E F2<ad66>144 400.8 Q F0(The maximum size of \214les written by the shell and its children) -26.97 E F1<ad69>144 316.8 Q F0(The maximum number of pending signals) -27.52 E F1<ad6c>144 328.8 Q F0(The maximum size that may be lock)27.52 E -(ed into memory)-.1 E F1<ad6d>144 340.8 Q F0 +26.97 E F2<ad69>144 412.8 Q F0(The maximum number of pending signals) +27.52 E F2<ad6c>144 424.8 Q F0(The maximum size that may be lock)27.52 E +(ed into memory)-.1 E F2<ad6d>144 436.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 352.8 Q F0 .791(Th\ +(ystems do not honor this limit\))-2.5 E F2<ad6e>144 448.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 364.8 Q F1<ad70>144 376.8 Q F0 -(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1 -<ad71>144 388.8 Q F0 -(The maximum number of bytes in POSIX message queues)24.74 E F1<ad72>144 -400.8 Q F0(The maximum real-time scheduling priority)25.86 E F1<ad73>144 -412.8 Q F0(The maximum stack size)26.41 E F1<ad74>144 424.8 Q F0 -(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144 436.8 Q +(be set\))180 460.8 Q F2<ad70>144 472.8 Q F0 +(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F2 +<ad71>144 484.8 Q F0 +(The maximum number of bytes in POSIX message queues)24.74 E F2<ad72>144 +496.8 Q F0(The maximum real-time scheduling priority)25.86 E F2<ad73>144 +508.8 Q F0(The maximum stack size)26.41 E F2<ad74>144 520.8 Q F0 +(The maximum amount of cpu time in seconds)26.97 E F2<ad75>144 532.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 448.8 Q F0 .47 +(ilable to a single user).25 E F2<ad76>144 544.8 Q F0 .47 (The maximum amount of virtual memory a)25.3 F -.25(va)-.2 G .47 (ilable to the shell and, on some systems, to).25 F(its children)180 -460.8 Q F1<ad78>144 472.8 Q F0(The maximum number of \214le locks)25.3 E -F1<ad54>144 484.8 Q F0(The maximum number of threads)23.63 E(If)144 -501.6 Q F2(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)-.25 G .468 -(n, and the).15 F F1<ad61>2.968 E F0 .468(option is not used,)2.968 F F2 +556.8 Q F2<ad78>144 568.8 Q F0(The maximum number of \214le locks)25.3 E +F2<ad54>144 580.8 Q F0(The maximum number of threads)23.63 E(If)144 +597.6 Q F1(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)-.25 G .468 +(n, and the).15 F F2<ad61>2.968 E F0 .468(option is not used,)2.968 F F1 (limit)2.968 E F0 .468(is the ne)2.968 F 2.968(wv)-.25 G .468 (alue of the speci\214ed resource.)-3.218 F(If)5.468 E .045 -(no option is gi)144 513.6 R -.15(ve)-.25 G .045(n, then).15 F F1<ad66> +(no option is gi)144 609.6 R -.15(ve)-.25 G .045(n, then).15 F F2<ad66> 2.545 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045 -(lues are in 1024-byte increments, e)1.11 F .044(xcept for)-.15 F F1 +(lues are in 1024-byte increments, e)1.11 F .044(xcept for)-.15 F F2 <ad74>2.544 E F0 2.544(,w)C .044(hich is)-2.544 F .402(in seconds;)144 -525.6 R F1<ad70>2.902 E F0 2.902(,w)C .402 -(hich is in units of 512-byte blocks; and)-2.902 F F1<ad54>2.902 E F0(,) -A F1<ad62>2.902 E F0(,)A F1<ad6e>2.902 E F0 2.902(,a)C(nd)-2.902 E F1 +621.6 R F2<ad70>2.902 E F0 2.902(,w)C .402 +(hich is in units of 512-byte blocks; and)-2.902 F F2<ad54>2.902 E F0(,) +A F2<ad62>2.902 E F0(,)A F2<ad6e>2.902 E F0 2.902(,a)C(nd)-2.902 E F2 <ad75>2.903 E F0 2.903(,w)C .403(hich are unscaled)-2.903 F -.25(va)144 -537.6 S 3.083(lues. The).25 F .583(return status is 0 unless an in)3.083 +633.6 S 3.083(lues. The).25 F .583(return status is 0 unless an in)3.083 F -.25(va)-.4 G .583(lid option or ar).25 F .583 (gument is supplied, or an error occurs)-.18 F(while setting a ne)144 -549.6 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 566.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 578.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 +645.6 Q 2.5(wl)-.25 G(imit.)-2.5 E F2(umask)108 662.4 Q F0([)2.5 E F2 +<ad70>A F0 2.5(][)C F2<ad53>-2.5 E F0 2.5(][)C F1(mode)-2.5 E F0(])A .2 +(The user \214le-creation mask is set to)144 674.4 R F1(mode)2.7 E F0 +5.2(.I).18 G(f)-5.2 E F1(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 590.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144 -602.4 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 +pted by)144 686.4 R F1 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144 +698.4 Q F1(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 F2<ad53>2.882 E F0 .382 (option causes the mask to be)2.882 F .547 -(printed in symbolic form; the def)144 614.4 R .547 +(printed in symbolic form; the def)144 710.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 F2 -(mode)144.38 626.4 Q F0 .551 +(he)-3.047 E F2<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F1 +(mode)144.38 722.4 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 638.4 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 655.2 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0 -(...])2.5 E(Remo)144 667.2 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 679.2 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 696 Q F0<5bad>2.5 E F1 -(fv)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0 2.5(][)C F2(name)-2.5 E F0(...]) -2.5 E -.15(Fo)144 708 S 3.827(re).15 G(ach)-3.827 E F2(name)3.827 E F0 -3.827(,r).18 G(emo)-3.827 E 1.627 -.15(ve t)-.15 H 1.327 -(he corresponding v).15 F 1.327(ariable or function.)-.25 F 1.327 -(If the)6.327 F F1<ad76>3.828 E F0 1.328(option is gi)3.828 F -.15(ve) --.25 G 1.328(n, each).15 F F2(name)144.36 720 Q F0 1.551 -(refers to a shell v)4.231 F 1.551(ariable, and that v)-.25 F 1.551 -(ariable is remo)-.25 F -.15(ve)-.15 G 4.05(d. Read-only).15 F -.25(va) -4.05 G 1.55(riables may not be).25 F(GNU Bash 4.2)72 768 Q(2012 No) -136.385 E -.15(ve)-.15 G(mber 24).15 E(72)185.545 E 0 Cg EP +F .552(The return status is 0 if the)5.552 F(GNU Bash 4.2)72 768 Q +(2013 January 8)144.29 E(72)193.45 E 0 Cg EP %%Page: 73 73 %%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 4.641(unset. If)144 84 R/F1 10/Times-Bold@0 SF<ad66>4.641 E F0 -2.141(is speci\214ed, each)4.641 F/F2 10/Times-Italic@0 SF(name)5.001 E -F0 2.141(refers to a shell function, and the function de\214nition is) -4.821 F(remo)144 96 Q -.15(ve)-.15 G 2.538(d. If).15 F(the)2.537 E F1 -<ad6e>2.537 E F0 .037(option is supplied, and)2.537 F F2(name)2.537 E F0 -.037(is a v)2.537 F .037(ariable with the)-.25 F F2(namer)2.537 E(ef) --.37 E F0(attrib)2.537 E(ute,)-.2 E F2(name)2.537 E F0(will)2.537 E .492 -(be unset rather than the v)144 108 R .492(ariable it references.)-.25 F -F1<ad6e>5.492 E F0 .492(has no ef)2.992 F .492(fect if the)-.25 F F1 +-.35 E(mode w)144 84 Q(as successfully changed or if no)-.1 E/F1 10 +/Times-Italic@0 SF(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 100.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 112.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 124.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 141.6 Q F0<5bad>2.5 E F2 +(fv)A F0 2.5(][)C<ad>-2.5 E F2(n)A F0 2.5(][)C F1(name)-2.5 E F0(...]) +2.5 E -.15(Fo)144 153.6 S 3.827(re).15 G(ach)-3.827 E F1(name)3.827 E F0 +3.827(,r).18 G(emo)-3.827 E 1.627 -.15(ve t)-.15 H 1.327 +(he corresponding v).15 F 1.327(ariable or function.)-.25 F 1.327 +(If the)6.327 F F2<ad76>3.828 E F0 1.328(option is gi)3.828 F -.15(ve) +-.25 G 1.328(n, each).15 F F1(name)144.36 165.6 Q F0 1.551 +(refers to a shell v)4.231 F 1.551(ariable, and that v)-.25 F 1.551 +(ariable is remo)-.25 F -.15(ve)-.15 G 4.05(d. Read-only).15 F -.25(va) +4.05 G 1.55(riables may not be).25 F 4.641(unset. If)144 177.6 R F2 +<ad66>4.641 E F0 2.141(is speci\214ed, each)4.641 F F1(name)5.001 E F0 +2.141(refers to a shell function, and the function de\214nition is)4.821 +F(remo)144 189.6 Q -.15(ve)-.15 G 2.538(d. If).15 F(the)2.537 E F2<ad6e> +2.537 E F0 .037(option is supplied, and)2.537 F F1(name)2.537 E F0 .037 +(is a v)2.537 F .037(ariable with the)-.25 F F1(namer)2.537 E(ef)-.37 E +F0(attrib)2.537 E(ute,)-.2 E F1(name)2.537 E F0(will)2.537 E .492 +(be unset rather than the v)144 201.6 R .492(ariable it references.)-.25 +F F2<ad6e>5.492 E F0 .492(has no ef)2.992 F .492(fect if the)-.25 F F2 <ad66>2.992 E F0 .492(option is supplied.)2.992 F .493(If no)5.493 F -.221(options are supplied, each)144 120 R F2(name)2.721 E F0 .221 +.221(options are supplied, each)144 213.6 R F1(name)2.721 E F0 .221 (refers to a v)2.721 F .22(ariable; if there is no v)-.25 F .22 (ariable by that name, an)-.25 F 2.72(yf)-.15 G(unc-)-2.72 E 1.188 -(tion with that name is unset.)144 132 R 1.189(Each unset v)6.189 F +(tion with that name is unset.)144 225.6 R 1.189(Each unset v)6.189 F 1.189(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.689(df).15 G 1.189(rom the en)-3.689 F(vironment)-.4 E 3.206 -(passed to subsequent commands.)144 144 R 3.206(If an)8.206 F 5.706(yo) --.15 G(f)-5.706 E/F3 9/Times-Bold@0 SF(COMP_W)5.706 E(ORDBREAKS)-.09 E -/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)5.455 E F4(,)A F3(SECONDS)5.455 E -F4(,)A F3(LINENO)144 156 Q F4(,)A F3(HISTCMD)4.347 E F4(,)A F3(FUNCN) +(passed to subsequent commands.)144 237.6 R 3.206(If an)8.206 F 5.706 +(yo)-.15 G(f)-5.706 E/F3 9/Times-Bold@0 SF(COMP_W)5.706 E(ORDBREAKS)-.09 +E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)5.455 E F4(,)A F3(SECONDS)5.455 E +F4(,)A F3(LINENO)144 249.6 Q F4(,)A F3(HISTCMD)4.347 E F4(,)A F3(FUNCN) 4.347 E(AME)-.18 E F4(,)A F3(GR)4.347 E(OUPS)-.27 E F4(,)A F0(or)4.348 E F3(DIRST)4.598 E -.495(AC)-.81 G(K).495 E F0 2.098(are unset, the)4.348 -F 4.598(yl)-.15 G 2.098(ose their special)-4.598 F(properties, e)144 168 -Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15 G -(re subsequently reset.)-2.5 E(The e)5 E(xit status is true unless a) --.15 E F2(name)2.86 E F0(is readonly)2.68 E(.)-.65 E F1(wait)108 184.8 Q -F0([)2.5 E F1(\255-n)A F0 2.5(][)C F2 2.5(n.)-2.5 G(..)-2.5 E F0(])A -.8 -(Wa)144 196.8 S .288 +F 4.598(yl)-.15 G 2.098(ose their special)-4.598 F(properties, e)144 +261.6 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15 +G(re subsequently reset.)-2.5 E(The e)5 E(xit status is true unless a) +-.15 E F1(name)2.86 E F0(is readonly)2.68 E(.)-.65 E F2(wait)108 278.4 Q +F0([)2.5 E F2(\255-n)A F0 2.5(][)C F1 2.5(n.)-2.5 G(..)-2.5 E F0(])A -.8 +(Wa)144 290.4 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 .287(may be a process ID or a)3.028 F .722 -(job speci\214cation; if a job spec is gi)144 208.8 R -.15(ve)-.25 G +(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 302.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 -F2(n)3.583 E F0(is)3.463 E .876(not gi)144 220.8 R -.15(ve)-.25 G .876 +F1(n)3.583 E F0(is)3.463 E .876(not gi)144 314.4 R -.15(ve)-.25 G .876 (n, all currently acti).15 F 1.176 -.15(ve c)-.25 H .876 (hild processes are w).15 F .876(aited for)-.1 F 3.376(,a)-.4 G .876 -(nd the return status is zero.)-3.376 F .875(If the)5.875 F F1(\255-n) -144 232.8 Q F0 .176(option is supplied,)2.676 F F1(wait)2.676 E F0 -.1 +(nd the return status is zero.)-3.376 F .875(If the)5.875 F F2(\255-n) +144 326.4 Q F0 .176(option is supplied,)2.676 F F2(wait)2.676 E F0 -.1 (wa)2.676 G .176(its for an).1 F 2.677(yj)-.15 G .177 (ob to terminate and returns its e)-2.677 F .177(xit status.)-.15 F(If) -5.177 E F2(n)3.037 E F0(speci\214es)2.917 E 2.596(an)144 244.8 S(on-e) +5.177 E F1(n)3.037 E F0(speci\214es)2.917 E 2.596(an)144 338.4 S(on-e) -2.596 E .096(xistent process or job, the return status is 127.)-.15 F .095(Otherwise, the return status is the e)5.095 F .095(xit status)-.15 -F(of the last process or job w)144 256.8 Q(aited for)-.1 E(.)-.55 E/F5 -10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 273.6 Q F0(If)108 285.6 Q F1 -(bash)4.396 E F0 1.896(is started with the name)4.396 F F1(rbash)4.397 E -F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F1<ad72>4.397 E F0 1.897 +F(of the last process or job w)144 350.4 Q(aited for)-.1 E(.)-.55 E/F5 +10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 367.2 Q F0(If)108 379.2 Q F2 +(bash)4.396 E F0 1.896(is started with the name)4.396 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.897 (option is supplied at in)4.397 F -.2(vo)-.4 G 1.897 -(cation, the shell becomes).2 F 3.446(restricted. A)108 297.6 R .945 +(cation, the shell becomes).2 F 3.446(restricted. A)108 391.2 R .945 (restricted shell is used to set up an en)3.446 F .945 (vironment more controlled than the standard shell.)-.4 F(It)5.945 E -(beha)108 309.6 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F1 +(beha)108 403.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 -326.4 S(hanging directories with)-32.5 E F1(cd)2.5 E F0 32.5<8373>108 -343.2 S(etting or unsetting the v)-32.5 E(alues of)-.25 E F3(SHELL)2.5 E -F4(,)A F3 -.666(PA)2.25 G(TH)-.189 E F4(,)A F3(ENV)2.25 E F4(,)A F0(or) -2.25 E F3 -.27(BA)2.5 G(SH_ENV).27 E F0 32.5<8373>108 360 S -(pecifying command names containing)-32.5 E F1(/)2.5 E F0 32.5<8373>108 -376.8 S(pecifying a \214lename containing a)-32.5 E F1(/)2.5 E F0 -(as an ar)2.5 E(gument to the)-.18 E F1(.)2.5 E F0 -.2(bu)5 G -(iltin command).2 E 32.5<8373>108 393.6 S .449 +(wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108 420 +S(hanging directories with)-32.5 E F2(cd)2.5 E F0 32.5<8373>108 436.8 S +(etting or unsetting the v)-32.5 E(alues of)-.25 E F3(SHELL)2.5 E F4(,)A +F3 -.666(PA)2.25 G(TH)-.189 E F4(,)A F3(ENV)2.25 E F4(,)A F0(or)2.25 E +F3 -.27(BA)2.5 G(SH_ENV).27 E F0 32.5<8373>108 453.6 S +(pecifying command names containing)-32.5 E F2(/)2.5 E F0 32.5<8373>108 +470.4 S(pecifying a \214lename 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<8373>108 487.2 S .449 (pecifying a \214lename containing a slash as an ar)-32.5 F .449 -(gument to the)-.18 F F1<ad70>2.95 E F0 .45(option to the)2.95 F F1 -(hash)2.95 E F0 -.2(bu)2.95 G .45(iltin com-).2 F(mand)144 405.6 Q 32.5 -<8369>108 422.4 S(mporting function de\214nitions from the shell en) --32.5 E(vironment at startup)-.4 E 32.5<8370>108 439.2 S(arsing the v) --32.5 E(alue of)-.25 E F3(SHELLOPTS)2.5 E F0(from the shell en)2.25 E -(vironment at startup)-.4 E 32.5<8372>108 456 S(edirecting output using\ - the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5<8375> -108 472.8 S(sing the)-32.5 E F1(exec)2.5 E F0 -.2(bu)2.5 G +(gument to the)-.18 F F2<ad70>2.95 E F0 .45(option to the)2.95 F F2 +(hash)2.95 E F0 -.2(bu)2.95 G .45(iltin com-).2 F(mand)144 499.2 Q 32.5 +<8369>108 516 S(mporting function de\214nitions from the shell en)-32.5 +E(vironment at startup)-.4 E 32.5<8370>108 532.8 S(arsing the v)-32.5 E +(alue of)-.25 E F3(SHELLOPTS)2.5 E F0(from the shell en)2.25 E +(vironment at startup)-.4 E 32.5<8372>108 549.6 S(edirecting output usi\ +ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5 +<8375>108 566.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 489.6 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E -F1<ad66>2.5 E F0(and)2.5 E F1<ad64>2.5 E F0(options to the)2.5 E F1 -(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8375>108 506.4 S -(sing the)-32.5 E F1(enable)2.5 E F0 -.2(bu)2.5 G +108 583.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<8375>108 600 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 523.2 S(pecifying the)-32.5 E F1<ad70>2.5 E F0(option to the)2.5 E -F1(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8374>108 540 S -(urning of)-32.5 E 2.5(fr)-.25 G(estricted mode with)-2.5 E F1(set +r) -2.5 E F0(or)2.5 E F1(set +o r)2.5 E(estricted)-.18 E F0(.)A -(These restrictions are enforced after an)108 556.8 Q 2.5(ys)-.15 G +108 616.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 633.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 650.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 573.6 R -.15 +(When a command that is found to be a shell script is e)108 667.2 R -.15 (xe)-.15 G 1.566(cuted \(see).15 F F3 1.566(COMMAND EXECUTION)4.066 F F0 -(abo)3.816 E -.15(ve)-.15 G(\),).15 E F1(rbash)108 585.6 Q F0(turns of) +(abo)3.816 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 679.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 -602.4 Q F2(Bash Refer)108 614.4 Q(ence Manual)-.37 E F0 2.5(,B)C(rian F) --2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2(The Gnu Readline Libr)108 -626.4 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y) --.15 E F2(The Gnu History Libr)108 638.4 Q(ary)-.15 E F0 2.5(,B)C -(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2 -.8(Po)108 650.4 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 F2(sh)108 662.4 -Q F0(\(1\),)A F2(ksh)2.5 E F0(\(1\),)A F2(csh)2.5 E F0(\(1\))A F2(emacs) -108 674.4 Q F0(\(1\),)A F2(vi)2.5 E F0(\(1\))A F2 -.37(re)108 686.4 S -(adline).37 E F0(\(3\))A F5(FILES)72 703.2 Q F0(GNU Bash 4.2)72 768 Q -(2012 No)136.385 E -.15(ve)-.15 G(mber 24).15 E(73)185.545 E 0 Cg EP +696 Q F0(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E(73)193.45 E 0 Cg +EP %%Page: 74 74 %%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(/bin/bash)109.666 84 Q F0(The)144 96 Q/F2 -10/Times-Bold@0 SF(bash)2.5 E F0 -.15(exe)2.5 G(cutable).15 E F1 -(/etc/pr)109.666 108 Q(o\214le)-.45 E F0 -(The systemwide initialization \214le, e)144 120 Q -.15(xe)-.15 G -(cuted for login shells).15 E F1(~/.bash_pr)109.666 132 Q(o\214le)-.45 E -F0(The personal initialization \214le, e)144 144 Q -.15(xe)-.15 G -(cuted for login shells).15 E F1(~/.bashr)109.666 156 Q(c)-.37 E F0 -(The indi)144 168 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G -(-shell startup \214le).15 E F1(~/.bash_lo)109.666 180 Q(gout)-.1 E F0 -(The indi)144 192 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 -204 Q(c)-.37 E F0(Indi)144 216 Q(vidual)-.25 E F1 -.37(re)2.5 G(adline) -.37 E F0(initialization \214le)2.5 E/F3 10.95/Times-Bold@0 SF -.548(AU) -72 232.8 S(THORS).548 E F0(Brian F)108 244.8 Q(ox, Free Softw)-.15 E -(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 256.8 Q(g)-.18 E -(Chet Rame)108 273.6 Q 1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv) --.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E(chet.rame)108 -285.6 Q(y@case.edu)-.15 E F3 -.11(BU)72 302.4 S 2.738(GR).11 G(EPOR) --2.738 E(TS)-.438 E F0 .567(If you \214nd a b)108 314.4 R .568(ug in)-.2 -F F2(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 .568(ug, and)-.2 F 5.626 -(that it appears in the latest v)108 326.4 R 5.625(ersion of)-.15 F F2 -(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.625 +-.35 E/F1 10/Times-Italic@0 SF(Bash Refer)108 84 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 96 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 108 Q(ary) +-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F1 -.8 +(Po)108 120 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 132 Q +F0(\(1\),)A F1(ksh)2.5 E F0(\(1\),)A F1(csh)2.5 E F0(\(1\))A F1(emacs) +108 144 Q F0(\(1\),)A F1(vi)2.5 E F0(\(1\))A F1 -.37(re)108 156 S +(adline).37 E F0(\(3\))A/F2 10.95/Times-Bold@0 SF(FILES)72 172.8 Q F1 +(/bin/bash)109.666 184.8 Q F0(The)144 196.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 208.8 Q +(o\214le)-.45 E F0(The systemwide initialization \214le, e)144 220.8 Q +-.15(xe)-.15 G(cuted for login shells).15 E F1(~/.bash_pr)109.666 232.8 +Q(o\214le)-.45 E F0(The personal initialization \214le, e)144 244.8 Q +-.15(xe)-.15 G(cuted for login shells).15 E F1(~/.bashr)109.666 256.8 Q +(c)-.37 E F0(The indi)144 268.8 Q(vidual per)-.25 E(-interacti)-.2 E +-.15(ve)-.25 G(-shell startup \214le).15 E F1(~/.bash_lo)109.666 280.8 Q +(gout)-.1 E F0(The indi)144 292.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 304.8 +Q(c)-.37 E F0(Indi)144 316.8 Q(vidual)-.25 E F1 -.37(re)2.5 G(adline).37 +E F0(initialization \214le)2.5 E F2 -.548(AU)72 333.6 S(THORS).548 E F0 +(Brian F)108 345.6 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E +(bfox@gnu.or)108 357.6 Q(g)-.18 E(Chet Rame)108 374.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 386.4 Q(y@case.edu)-.15 E F2 -.11(BU)72 +403.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .567 +(If you \214nd a b)108 415.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 .568(ug, and)-.2 +F 5.626(that it appears in the latest v)108 427.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.625 (ersion is al)-.15 F -.1(wa)-.1 G 5.625(ys a).1 F -.25(va)-.2 G 5.625 -(ilable from).25 F F1(ftp://ftp.gnu.or)108 338.4 Q(g/pub/gnu/bash/)-.37 -E F0(.)A .41(Once you ha)108 355.2 R .71 -.15(ve d)-.2 H .41 +(ilable from).25 F F1(ftp://ftp.gnu.or)108 439.2 Q(g/pub/gnu/bash/)-.37 +E F0(.)A .41(Once you ha)108 456 R .71 -.15(ve d)-.2 H .41 (etermined that a b).15 F .41(ug actually e)-.2 F .411(xists, use the) -.15 F F1(bashb)3.181 E(ug)-.2 E F0 .411(command to submit a b)3.131 F -.411(ug report.)-.2 F(If)5.411 E .595(you ha)108 367.2 R .895 -.15 +.411(ug report.)-.2 F(If)5.411 E .595(you ha)108 468 R .895 -.15 (ve a \214)-.2 H .595(x, you are encouraged to mail that as well!).15 F .594(Suggestions and `philosophical' b)5.595 F .594(ug reports may)-.2 F -(be mailed to)108 379.2 Q F1 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0 -(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F2(gnu.bash.b)2.5 E(ug) --.2 E F0(.)A(ALL b)108 396 Q(ug reports should include:)-.2 E(The v)108 -412.8 Q(ersion number of)-.15 E F2(bash)2.5 E F0(The hardw)108 424.8 Q -(are and operating system)-.1 E(The compiler used to compile)108 436.8 Q -2.5(Ad)108 448.8 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2 E -2.5(As)108 460.8 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15 G -(rcises the b).15 E(ug)-.2 E F1(bashb)108.27 477.6 Q(ug)-.2 E F0 +(be mailed to)108 480 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 496.8 Q(ug reports should include:)-.2 E(The v) +108 513.6 Q(ersion number of)-.15 E F3(bash)2.5 E F0(The hardw)108 525.6 +Q(are and operating system)-.1 E(The compiler used to compile)108 537.6 +Q 2.5(Ad)108 549.6 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2 +E 2.5(As)108 561.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 578.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 -494.4 Q(ug reports concerning this manual page should be directed to)-.2 +595.2 Q(ug reports concerning this manual page should be directed to)-.2 E F1 -.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.) -.25 E F3 -.11(BU)72 511.2 S(GS).11 E F0(It')108 523.2 Q 2.5(st)-.55 G +.25 E F2 -.11(BU)72 612 S(GS).11 E F0(It')108 624 Q 2.5(st)-.55 G (oo big and too slo)-2.5 E -.65(w.)-.25 G 1.868 -(There are some subtle dif)108 540 R 1.868(ferences between)-.25 F F2 +(There are some subtle dif)108 640.8 R 1.868(ferences between)-.25 F F3 (bash)4.369 E F0 1.869(and traditional v)4.369 F 1.869(ersions of)-.15 F -F2(sh)4.369 E F0 4.369(,m)C 1.869(ostly because of the)-4.369 F/F4 9 -/Times-Bold@0 SF(POSIX)108 552 Q F0(speci\214cation.)2.25 E -(Aliases are confusing in some uses.)108 568.8 Q(Shell b)108 585.6 Q +F3(sh)4.369 E F0 4.369(,m)C 1.869(ostly because of the)-4.369 F/F4 9 +/Times-Bold@0 SF(POSIX)108 652.8 Q F0(speci\214cation.)2.25 E +(Aliases are confusing in some uses.)108 669.6 Q(Shell b)108 686.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 602.4 R .389 -(process suspension is attempted.)108 614.4 R .389 +re not handled gracefully when)108 703.2 R .389 +(process suspension is attempted.)108 715.2 R .389 (When a process is stopped, the shell immediately e)5.389 F -.15(xe)-.15 G .39(cutes the ne).15 F .39(xt com-)-.15 F .193(mand in the sequence.) -108 626.4 R .192(It suf)5.193 F .192(\214ces to place the sequence of c\ -ommands between parentheses to force it into a)-.25 F -(subshell, which may be stopped as a unit.)108 638.4 Q(Array v)108 655.2 -Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E -(There may be only one acti)108 672 Q .3 -.15(ve c)-.25 H -(oprocess at a time.).15 E(GNU Bash 4.2)72 768 Q(2012 No)136.385 E -.15 -(ve)-.15 G(mber 24).15 E(74)185.545 E 0 Cg EP +108 727.2 R .192(It suf)5.193 F .192(\214ces to place the sequence of c\ +ommands between parentheses to force it into a)-.25 F(GNU Bash 4.2)72 +768 Q(2013 January 8)144.29 E(74)193.45 E 0 Cg EP +%%Page: 75 75 +%%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(subshell, which may be stopped as a unit.)108 84 Q(Array v)108 +100.8 Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E +(There may be only one acti)108 117.6 Q .3 -.15(ve c)-.25 H +(oprocess at a time.).15 E(GNU Bash 4.2)72 768 Q(2013 January 8)144.29 E +(75)193.45 E 0 Cg EP %%Trailer end %%EOF diff --git a/doc/bashref.aux b/doc/bashref.aux index 5645837e..8f6f3f07 100644 --- a/doc/bashref.aux +++ b/doc/bashref.aux @@ -116,7 +116,7 @@ @xrdef{Quote Removal-snt}{Section@tie 3.5.9} @xrdef{Redirections-title}{Redirections} @xrdef{Redirections-snt}{Section@tie 3.6} -@xrdef{Quote Removal-pg}{30} +@xrdef{Quote Removal-pg}{31} @xrdef{Redirections-pg}{31} @xrdef{Executing Commands-title}{Executing Commands} @xrdef{Executing Commands-snt}{Section@tie 3.7} @@ -126,18 +126,18 @@ @xrdef{Simple Command Expansion-pg}{34} @xrdef{Command Search and Execution-title}{Command Search and Execution} @xrdef{Command Search and Execution-snt}{Section@tie 3.7.2} +@xrdef{Command Search and Execution-pg}{35} @xrdef{Command Execution Environment-title}{Command Execution Environment} @xrdef{Command Execution Environment-snt}{Section@tie 3.7.3} -@xrdef{Command Search and Execution-pg}{35} +@xrdef{Command Execution Environment-pg}{36} @xrdef{Environment-title}{Environment} @xrdef{Environment-snt}{Section@tie 3.7.4} -@xrdef{Command Execution Environment-pg}{36} @xrdef{Exit Status-title}{Exit Status} @xrdef{Exit Status-snt}{Section@tie 3.7.5} -@xrdef{Signals-title}{Signals} -@xrdef{Signals-snt}{Section@tie 3.7.6} @xrdef{Environment-pg}{37} @xrdef{Exit Status-pg}{37} +@xrdef{Signals-title}{Signals} +@xrdef{Signals-snt}{Section@tie 3.7.6} @xrdef{Shell Scripts-title}{Shell Scripts} @xrdef{Shell Scripts-snt}{Section@tie 3.8} @xrdef{Signals-pg}{38} @@ -146,20 +146,20 @@ @xrdef{Shell Builtin Commands-snt}{Chapter@tie 4} @xrdef{Bourne Shell Builtins-title}{Bourne Shell Builtins} @xrdef{Bourne Shell Builtins-snt}{Section@tie 4.1} -@xrdef{Shell Builtin Commands-pg}{41} -@xrdef{Bourne Shell Builtins-pg}{41} +@xrdef{Shell Builtin Commands-pg}{40} +@xrdef{Bourne Shell Builtins-pg}{40} @xrdef{Bash Builtins-title}{Bash Builtin Commands} @xrdef{Bash Builtins-snt}{Section@tie 4.2} -@xrdef{Bash Builtins-pg}{48} +@xrdef{Bash Builtins-pg}{47} @xrdef{Modifying Shell Behavior-title}{Modifying Shell Behavior} @xrdef{Modifying Shell Behavior-snt}{Section@tie 4.3} @xrdef{The Set Builtin-title}{The Set Builtin} @xrdef{The Set Builtin-snt}{Section@tie 4.3.1} -@xrdef{Modifying Shell Behavior-pg}{58} -@xrdef{The Set Builtin-pg}{58} +@xrdef{Modifying Shell Behavior-pg}{57} +@xrdef{The Set Builtin-pg}{57} @xrdef{The Shopt Builtin-title}{The Shopt Builtin} @xrdef{The Shopt Builtin-snt}{Section@tie 4.3.2} -@xrdef{The Shopt Builtin-pg}{62} +@xrdef{The Shopt Builtin-pg}{61} @xrdef{Special Builtins-title}{Special Builtins} @xrdef{Special Builtins-snt}{Section@tie 4.4} @xrdef{Special Builtins-pg}{67} @@ -169,9 +169,9 @@ @xrdef{Bourne Shell Variables-snt}{Section@tie 5.1} @xrdef{Bash Variables-title}{Bash Variables} @xrdef{Bash Variables-snt}{Section@tie 5.2} -@xrdef{Shell Variables-pg}{69} -@xrdef{Bourne Shell Variables-pg}{69} -@xrdef{Bash Variables-pg}{69} +@xrdef{Shell Variables-pg}{68} +@xrdef{Bourne Shell Variables-pg}{68} +@xrdef{Bash Variables-pg}{68} @xrdef{Bash Features-title}{Bash Features} @xrdef{Bash Features-snt}{Chapter@tie 6} @xrdef{Invoking Bash-title}{Invoking Bash} @@ -209,17 +209,17 @@ @xrdef{The Directory Stack-snt}{Section@tie 6.8} @xrdef{Directory Stack Builtins-title}{Directory Stack Builtins} @xrdef{Directory Stack Builtins-snt}{Section@tie 6.8.1} -@xrdef{The Directory Stack-pg}{89} -@xrdef{Directory Stack Builtins-pg}{89} +@xrdef{The Directory Stack-pg}{90} +@xrdef{Directory Stack Builtins-pg}{90} @xrdef{Controlling the Prompt-title}{Controlling the Prompt} @xrdef{Controlling the Prompt-snt}{Section@tie 6.9} @xrdef{Controlling the Prompt-pg}{91} @xrdef{The Restricted Shell-title}{The Restricted Shell} @xrdef{The Restricted Shell-snt}{Section@tie 6.10} +@xrdef{The Restricted Shell-pg}{92} @xrdef{Bash POSIX Mode-title}{Bash POSIX Mode} @xrdef{Bash POSIX Mode-snt}{Section@tie 6.11} -@xrdef{The Restricted Shell-pg}{92} -@xrdef{Bash POSIX Mode-pg}{92} +@xrdef{Bash POSIX Mode-pg}{93} @xrdef{Job Control-title}{Job Control} @xrdef{Job Control-snt}{Chapter@tie 7} @xrdef{Job Control Basics-title}{Job Control Basics} @@ -334,51 +334,51 @@ @xrdef{Basic Installation-snt}{Section@tie 10.1} @xrdef{Compilers and Options-title}{Compilers and Options} @xrdef{Compilers and Options-snt}{Section@tie 10.2} -@xrdef{Installing Bash-pg}{139} -@xrdef{Basic Installation-pg}{139} +@xrdef{Installing Bash-pg}{138} +@xrdef{Basic Installation-pg}{138} @xrdef{Compiling For Multiple Architectures-title}{Compiling For Multiple Architectures} @xrdef{Compiling For Multiple Architectures-snt}{Section@tie 10.3} @xrdef{Installation Names-title}{Installation Names} @xrdef{Installation Names-snt}{Section@tie 10.4} @xrdef{Specifying the System Type-title}{Specifying the System Type} @xrdef{Specifying the System Type-snt}{Section@tie 10.5} -@xrdef{Compilers and Options-pg}{140} -@xrdef{Compiling For Multiple Architectures-pg}{140} -@xrdef{Installation Names-pg}{140} -@xrdef{Specifying the System Type-pg}{140} +@xrdef{Compilers and Options-pg}{139} +@xrdef{Compiling For Multiple Architectures-pg}{139} +@xrdef{Installation Names-pg}{139} +@xrdef{Specifying the System Type-pg}{139} @xrdef{Sharing Defaults-title}{Sharing Defaults} @xrdef{Sharing Defaults-snt}{Section@tie 10.6} @xrdef{Operation Controls-title}{Operation Controls} @xrdef{Operation Controls-snt}{Section@tie 10.7} @xrdef{Optional Features-title}{Optional Features} @xrdef{Optional Features-snt}{Section@tie 10.8} -@xrdef{Sharing Defaults-pg}{141} -@xrdef{Operation Controls-pg}{141} -@xrdef{Optional Features-pg}{141} +@xrdef{Sharing Defaults-pg}{140} +@xrdef{Operation Controls-pg}{140} +@xrdef{Optional Features-pg}{140} @xrdef{Reporting Bugs-title}{Reporting Bugs} @xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}} -@xrdef{Reporting Bugs-pg}{147} +@xrdef{Reporting Bugs-pg}{145} @xrdef{Major Differences From The Bourne Shell-title}{Major Differences From The Bourne Shell} @xrdef{Major Differences From The Bourne Shell-snt}{Appendix@tie @char66{}} -@xrdef{Major Differences From The Bourne Shell-pg}{149} +@xrdef{Major Differences From The Bourne Shell-pg}{146} @xrdef{GNU Free Documentation License-title}{GNU Free Documentation License} @xrdef{GNU Free Documentation License-snt}{Appendix@tie @char67{}} -@xrdef{GNU Free Documentation License-pg}{155} +@xrdef{GNU Free Documentation License-pg}{152} @xrdef{Indexes-title}{Indexes} @xrdef{Indexes-snt}{Appendix@tie @char68{}} @xrdef{Builtin Index-title}{Index of Shell Builtin Commands} @xrdef{Builtin Index-snt}{Section@tie @char68.1} -@xrdef{Indexes-pg}{163} -@xrdef{Builtin Index-pg}{163} +@xrdef{Indexes-pg}{160} +@xrdef{Builtin Index-pg}{160} @xrdef{Reserved Word Index-title}{Index of Shell Reserved Words} @xrdef{Reserved Word Index-snt}{Section@tie @char68.2} @xrdef{Variable Index-title}{Parameter and Variable Index} @xrdef{Variable Index-snt}{Section@tie @char68.3} -@xrdef{Reserved Word Index-pg}{164} -@xrdef{Variable Index-pg}{164} +@xrdef{Reserved Word Index-pg}{161} +@xrdef{Variable Index-pg}{161} @xrdef{Function Index-title}{Function Index} @xrdef{Function Index-snt}{Section@tie @char68.4} -@xrdef{Function Index-pg}{166} +@xrdef{Function Index-pg}{163} @xrdef{Concept Index-title}{Concept Index} @xrdef{Concept Index-snt}{Section@tie @char68.5} -@xrdef{Concept Index-pg}{168} +@xrdef{Concept Index-pg}{165} diff --git a/doc/bashref.bt b/doc/bashref.bt index 177e1055..34c29d18 100644 --- a/doc/bashref.bt +++ b/doc/bashref.bt @@ -1,48 +1,48 @@ -\entry{:}{41}{\code {:}} -\entry{.}{41}{\code {.}} -\entry{break}{41}{\code {break}} -\entry{cd}{42}{\code {cd}} -\entry{continue}{42}{\code {continue}} -\entry{eval}{42}{\code {eval}} -\entry{exec}{42}{\code {exec}} -\entry{exit}{43}{\code {exit}} -\entry{export}{43}{\code {export}} -\entry{getopts}{43}{\code {getopts}} -\entry{hash}{44}{\code {hash}} -\entry{pwd}{44}{\code {pwd}} -\entry{readonly}{44}{\code {readonly}} -\entry{return}{45}{\code {return}} -\entry{shift}{45}{\code {shift}} -\entry{test}{45}{\code {test}} -\entry{[}{45}{\code {[}} -\entry{times}{46}{\code {times}} -\entry{trap}{46}{\code {trap}} -\entry{umask}{47}{\code {umask}} +\entry{:}{40}{\code {:}} +\entry{.}{40}{\code {.}} +\entry{break}{40}{\code {break}} +\entry{cd}{41}{\code {cd}} +\entry{continue}{41}{\code {continue}} +\entry{eval}{41}{\code {eval}} +\entry{exec}{41}{\code {exec}} +\entry{exit}{42}{\code {exit}} +\entry{export}{42}{\code {export}} +\entry{getopts}{42}{\code {getopts}} +\entry{hash}{43}{\code {hash}} +\entry{pwd}{43}{\code {pwd}} +\entry{readonly}{43}{\code {readonly}} +\entry{return}{44}{\code {return}} +\entry{shift}{44}{\code {shift}} +\entry{test}{44}{\code {test}} +\entry{[}{44}{\code {[}} +\entry{times}{45}{\code {times}} +\entry{trap}{45}{\code {trap}} +\entry{umask}{46}{\code {umask}} \entry{unset}{47}{\code {unset}} -\entry{alias}{48}{\code {alias}} -\entry{bind}{48}{\code {bind}} -\entry{builtin}{49}{\code {builtin}} -\entry{caller}{49}{\code {caller}} -\entry{command}{50}{\code {command}} -\entry{declare}{50}{\code {declare}} -\entry{echo}{51}{\code {echo}} -\entry{enable}{52}{\code {enable}} -\entry{help}{53}{\code {help}} -\entry{let}{53}{\code {let}} -\entry{local}{53}{\code {local}} -\entry{logout}{53}{\code {logout}} -\entry{mapfile}{53}{\code {mapfile}} -\entry{printf}{54}{\code {printf}} -\entry{read}{55}{\code {read}} -\entry{readarray}{56}{\code {readarray}} -\entry{source}{56}{\code {source}} -\entry{type}{56}{\code {type}} -\entry{typeset}{57}{\code {typeset}} -\entry{ulimit}{57}{\code {ulimit}} -\entry{unalias}{58}{\code {unalias}} -\entry{set}{58}{\code {set}} -\entry{shopt}{62}{\code {shopt}} -\entry{dirs}{89}{\code {dirs}} +\entry{alias}{47}{\code {alias}} +\entry{bind}{47}{\code {bind}} +\entry{builtin}{48}{\code {builtin}} +\entry{caller}{48}{\code {caller}} +\entry{command}{49}{\code {command}} +\entry{declare}{49}{\code {declare}} +\entry{echo}{50}{\code {echo}} +\entry{enable}{51}{\code {enable}} +\entry{help}{52}{\code {help}} +\entry{let}{52}{\code {let}} +\entry{local}{52}{\code {local}} +\entry{logout}{52}{\code {logout}} +\entry{mapfile}{52}{\code {mapfile}} +\entry{printf}{53}{\code {printf}} +\entry{read}{54}{\code {read}} +\entry{readarray}{55}{\code {readarray}} +\entry{source}{55}{\code {source}} +\entry{type}{55}{\code {type}} +\entry{typeset}{56}{\code {typeset}} +\entry{ulimit}{56}{\code {ulimit}} +\entry{unalias}{57}{\code {unalias}} +\entry{set}{57}{\code {set}} +\entry{shopt}{61}{\code {shopt}} +\entry{dirs}{90}{\code {dirs}} \entry{popd}{90}{\code {popd}} \entry{pushd}{90}{\code {pushd}} \entry{bg}{98}{\code {bg}} diff --git a/doc/bashref.bts b/doc/bashref.bts index 20d8351a..5f7d6850 100644 --- a/doc/bashref.bts +++ b/doc/bashref.bts @@ -1,80 +1,80 @@ \initial {.} -\entry {\code {.}}{41} +\entry {\code {.}}{40} \initial {:} -\entry {\code {:}}{41} +\entry {\code {:}}{40} \initial {[} -\entry {\code {[}}{45} +\entry {\code {[}}{44} \initial {A} -\entry {\code {alias}}{48} +\entry {\code {alias}}{47} \initial {B} \entry {\code {bg}}{98} -\entry {\code {bind}}{48} -\entry {\code {break}}{41} -\entry {\code {builtin}}{49} +\entry {\code {bind}}{47} +\entry {\code {break}}{40} +\entry {\code {builtin}}{48} \initial {C} -\entry {\code {caller}}{49} -\entry {\code {cd}}{42} -\entry {\code {command}}{50} +\entry {\code {caller}}{48} +\entry {\code {cd}}{41} +\entry {\code {command}}{49} \entry {\code {compgen}}{126} \entry {\code {complete}}{127} \entry {\code {compopt}}{130} -\entry {\code {continue}}{42} +\entry {\code {continue}}{41} \initial {D} -\entry {\code {declare}}{50} -\entry {\code {dirs}}{89} +\entry {\code {declare}}{49} +\entry {\code {dirs}}{90} \entry {\code {disown}}{99} \initial {E} -\entry {\code {echo}}{51} -\entry {\code {enable}}{52} -\entry {\code {eval}}{42} -\entry {\code {exec}}{42} -\entry {\code {exit}}{43} -\entry {\code {export}}{43} +\entry {\code {echo}}{50} +\entry {\code {enable}}{51} +\entry {\code {eval}}{41} +\entry {\code {exec}}{41} +\entry {\code {exit}}{42} +\entry {\code {export}}{42} \initial {F} \entry {\code {fc}}{133} \entry {\code {fg}}{98} \initial {G} -\entry {\code {getopts}}{43} +\entry {\code {getopts}}{42} \initial {H} -\entry {\code {hash}}{44} -\entry {\code {help}}{53} +\entry {\code {hash}}{43} +\entry {\code {help}}{52} \entry {\code {history}}{134} \initial {J} \entry {\code {jobs}}{98} \initial {K} \entry {\code {kill}}{99} \initial {L} -\entry {\code {let}}{53} -\entry {\code {local}}{53} -\entry {\code {logout}}{53} +\entry {\code {let}}{52} +\entry {\code {local}}{52} +\entry {\code {logout}}{52} \initial {M} -\entry {\code {mapfile}}{53} +\entry {\code {mapfile}}{52} \initial {P} \entry {\code {popd}}{90} -\entry {\code {printf}}{54} +\entry {\code {printf}}{53} \entry {\code {pushd}}{90} -\entry {\code {pwd}}{44} +\entry {\code {pwd}}{43} \initial {R} -\entry {\code {read}}{55} -\entry {\code {readarray}}{56} -\entry {\code {readonly}}{44} -\entry {\code {return}}{45} +\entry {\code {read}}{54} +\entry {\code {readarray}}{55} +\entry {\code {readonly}}{43} +\entry {\code {return}}{44} \initial {S} -\entry {\code {set}}{58} -\entry {\code {shift}}{45} -\entry {\code {shopt}}{62} -\entry {\code {source}}{56} +\entry {\code {set}}{57} +\entry {\code {shift}}{44} +\entry {\code {shopt}}{61} +\entry {\code {source}}{55} \entry {\code {suspend}}{99} \initial {T} -\entry {\code {test}}{45} -\entry {\code {times}}{46} -\entry {\code {trap}}{46} -\entry {\code {type}}{56} -\entry {\code {typeset}}{57} +\entry {\code {test}}{44} +\entry {\code {times}}{45} +\entry {\code {trap}}{45} +\entry {\code {type}}{55} +\entry {\code {typeset}}{56} \initial {U} -\entry {\code {ulimit}}{57} -\entry {\code {umask}}{47} -\entry {\code {unalias}}{58} +\entry {\code {ulimit}}{56} +\entry {\code {umask}}{46} +\entry {\code {unalias}}{57} \entry {\code {unset}}{47} \initial {W} \entry {\code {wait}}{99} diff --git a/doc/bashref.cp b/doc/bashref.cp index 1e26dddf..5d51cc34 100644 --- a/doc/bashref.cp +++ b/doc/bashref.cp @@ -85,10 +85,10 @@ \entry{arithmetic evaluation}{86}{arithmetic evaluation} \entry{alias expansion}{87}{alias expansion} \entry{arrays}{88}{arrays} -\entry{directory stack}{89}{directory stack} +\entry{directory stack}{90}{directory stack} \entry{prompting}{91}{prompting} \entry{restricted shell}{92}{restricted shell} -\entry{POSIX Mode}{92}{POSIX Mode} +\entry{POSIX Mode}{93}{POSIX Mode} \entry{job control}{97}{job control} \entry{foreground}{97}{foreground} \entry{background}{97}{background} @@ -112,7 +112,7 @@ \entry{history expansion}{135}{history expansion} \entry{event designators}{136}{event designators} \entry{history events}{136}{history events} -\entry{installation}{139}{installation} -\entry{configuration}{139}{configuration} -\entry{Bash installation}{139}{Bash installation} -\entry{Bash configuration}{139}{Bash configuration} +\entry{installation}{138}{installation} +\entry{configuration}{138}{configuration} +\entry{Bash installation}{138}{Bash installation} +\entry{Bash configuration}{138}{Bash configuration} diff --git a/doc/bashref.cps b/doc/bashref.cps index 7e58b0d0..13266bba 100644 --- a/doc/bashref.cps +++ b/doc/bashref.cps @@ -6,8 +6,8 @@ \entry {arrays}{88} \initial {B} \entry {background}{97} -\entry {Bash configuration}{139} -\entry {Bash installation}{139} +\entry {Bash configuration}{138} +\entry {Bash installation}{138} \entry {Bourne shell}{5} \entry {brace expansion}{21} \entry {builtin}{3} @@ -29,11 +29,11 @@ \entry {commands, simple}{8} \entry {comments, shell}{7} \entry {completion builtins}{126} -\entry {configuration}{139} +\entry {configuration}{138} \entry {control operator}{3} \entry {coprocess}{15} \initial {D} -\entry {directory stack}{89} +\entry {directory stack}{90} \initial {E} \entry {editing command lines}{102} \entry {environment}{37} @@ -65,7 +65,7 @@ \initial {I} \entry {identifier}{3} \entry {initialization file, readline}{104} -\entry {installation}{139} +\entry {installation}{138} \entry {interaction, readline}{101} \entry {interactive shell}{81, 82} \entry {internationalization}{7} @@ -96,7 +96,7 @@ \entry {pattern matching}{29} \entry {pipeline}{8} \entry {POSIX}{3} -\entry {POSIX Mode}{92} +\entry {POSIX Mode}{93} \entry {process group}{3} \entry {process group ID}{3} \entry {process substitution}{28} diff --git a/doc/bashref.dvi b/doc/bashref.dvi Binary files differindex 07deff8e..595363d7 100644 --- a/doc/bashref.dvi +++ b/doc/bashref.dvi diff --git a/doc/bashref.html b/doc/bashref.html index 5ba85297..217193e4 100644 --- a/doc/bashref.html +++ b/doc/bashref.html @@ -1,6 +1,6 @@ <HTML> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<!-- Created on July, 16 2012 by texi2html 1.64 --> +<!-- Created on January, 11 2013 by texi2html 1.64 --> <!-- Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author) Karl Berry <karl@freefriends.org> @@ -33,10 +33,11 @@ Send bugs and suggestions to <texi2html@mathematik.uni-kl.de> <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.2, 14 July 2012). +the Bash shell (version 4.2, 8 January 2013 ). +The Bash home page is <A HREF="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</A>. </P><P> -This is Edition 4.2, last updated 14 July 2012, +This is Edition 4.2, last updated 8 January 2013 , of <CITE>The GNU Bash Reference Manual</CITE>, for <CODE>Bash</CODE>, Version 4.2. </P><P> @@ -1348,20 +1349,21 @@ the conditional expression <VAR>expression</VAR>. Expressions are composed of the primaries described below in <A HREF="bashref.html#SEC83">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 +between the <CODE>[[</CODE> and <CODE>]]</CODE>; 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 used with <SAMP>`[['</SAMP>, the <SAMP>`<'</SAMP> and <SAMP>`>'</SAMP> operators sort +When used with <CODE>[[</CODE>, the <SAMP>`<'</SAMP> and <SAMP>`>'</SAMP> operators sort lexicographically using the current locale. </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#SEC38">3.5.8.1 Pattern Matching</A>. +The <SAMP>`='</SAMP> operator is identical to <SAMP>`=='</SAMP>. If the shell option <CODE>nocasematch</CODE> (see the description of <CODE>shopt</CODE> in <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>) is enabled, the match is performed without regard to the case @@ -1597,6 +1599,8 @@ The <CODE>wait</CODE> builtin command may be used to wait for the coprocess to terminate. </P><P> +Since the coprocess is created as an asynchronous command, +the <CODE>coproc</CODE> command always returns success. The return status of a coprocess is the exit status of <VAR>command</VAR>. </P><P> @@ -2209,12 +2213,14 @@ 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 +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. +lexicographically between <VAR>x</VAR> and <VAR>y</VAR>, inclusive, +using the default C locale. +Note that both <VAR>x</VAR> and <VAR>y</VAR> must be of the same type. 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> @@ -2631,6 +2637,11 @@ If <VAR>parameter</VAR> is <SAMP>`*'</SAMP> or <SAMP>`@'</SAMP>, the value subst 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. +If <VAR>parameter</VAR> +is an indexed array name subscripted by a negative number, that number is +interpreted as relative to one greater than the maximum index of +<VAR>parameter</VAR>, so negative indices count back from the end of the +array, and an index of -1 references the last element. <P> <DT><CODE>${<VAR>parameter</VAR>#<VAR>word</VAR>}</CODE> @@ -3021,7 +3032,7 @@ directories and subdirectories. <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, +any character that falls 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> @@ -4542,14 +4553,15 @@ The return status is zero unless <VAR>n</VAR> is greater than <CODE>$#</CODE> or less than zero, non-zero otherwise. </P><P> -<DT><CODE>test[B</CODE> +<DT><CODE>test</CODE> <DD><DT><CODE>[</CODE> <DD><A NAME="IDX83"></A> <A NAME="IDX84"></A> <TABLE><tr><td> </td><td class=example><pre>test <VAR>expr</VAR> </pre></td></tr></table><P> -Evaluate a conditional expression <VAR>expr</VAR> and return a status of 0 +Evaluate a conditional express +ion <VAR>expr</VAR> and return a status of 0 (true) or 1 (false). Each operator and operand must be a separate argument. Expressions are composed of the primaries described below in @@ -4691,15 +4703,21 @@ each time a shell function or a script executed with the <CODE>.</CODE> or </P><P> 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, +is executed whenever +a pipeline (which may consist of a single simple +command), a list, or a compound command returns a +non-zero exit status, subject to the following conditions. The <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 following the <CODE>if</CODE> or <CODE>elif</CODE> reserved words, -part of a command executed in a <CODE>&&</CODE> or <CODE>||</CODE> list, +part of a command executed in a <CODE>&&</CODE> or <CODE>||</CODE> list +except the command following the final <CODE>&&</CODE> or <CODE>||</CODE>, +any command in a pipeline but the last, 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. +These are the same conditions obeyed by the <CODE>errexit</CODE> (<SAMP>`-e'</SAMP>) +option. </P><P> Signals ignored upon entry to the shell cannot be trapped or reset. @@ -5329,10 +5347,13 @@ beginning with <SAMP>`\0'</SAMP> may contain up to four digits. corresponding <VAR>argument</VAR> in a format that can be reused as shell input. <DT><CODE>%(<VAR>datefmt</VAR>)T</CODE> <DD>Causes <CODE>printf</CODE> to output the date-time string resulting from using -<VAR>datefmt</VAR> as a format string for <CODE>strftime</CODE>(3). The corresponding -<VAR>argument</VAR> is an integer representing the number of seconds since the -epoch. Two special argument values may be used: -1 represents the current +<VAR>datefmt</VAR> as a format string for <CODE>strftime</CODE>(3). +The corresponding <VAR>argument</VAR> is an integer representing the number of +seconds since the epoch. +Two special argument values may be used: -1 represents the current time, and -2 represents the time the shell was invoked. +If no argument is specified, conversion behaves as if -1 had been given. +This is an exception to the usual <CODE>printf</CODE> behavior. </DL> <P> @@ -5436,12 +5457,15 @@ not echoed. <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. +input (or a specified number of characters) +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 <CODE>read</CODE> times out, <CODE>read</CODE> saves any partial input read into +the specified variable <VAR>name</VAR>. If <VAR>timeout</VAR> is 0, <CODE>read</CODE> returns immediately, without trying to read and data. The exit status is 0 if input is available on the specified file descriptor, non-zero otherwise. @@ -5762,12 +5786,15 @@ separately (see section <A HREF="bashref.html#SEC54">3.7.3 Command Execution Env subshells to exit before executing all the commands in the subshell. </P><P> -If a shell function executes in a context where <SAMP>`-e'</SAMP> is being ignored, -even if <SAMP>`-e'</SAMP> is set, none of the commands executed within the function -body will be affected by the <SAMP>`-e'</SAMP> setting. -If a shell function sets <SAMP>`-e'</SAMP> while executing in a context where -<SAMP>`-e'</SAMP> is ignored, that setting will not have any effect until the -command containing the function call completes. +If a compound command or shell function executes in a context where +<SAMP>`-e'</SAMP> is being ignored, +none of the commands executed within the compound command or function body +will be affected by the <SAMP>`-e'</SAMP> setting, even if <SAMP>`-e'</SAMP> is set +and a command returns a failure status. +If a compound command or shell function sets <SAMP>`-e'</SAMP> while executing in +a context where <SAMP>`-e'</SAMP> is ignored, that setting will not have any +effect until the compound command or the command containing the function +call completes. </P><P> <DT><CODE>-f</CODE> @@ -6171,7 +6198,7 @@ easy re-editing of multi-line commands. changes its behavior to that of version 3.1 with respect to quoted arguments to the conditional command's <SAMP>`=~'</SAMP> operator and with respect to locale-specific -string comparison when using the <SAMP>`[['</SAMP> +string comparison when using the <CODE>[[</CODE> conditional command's <SAMP>`<'</SAMP> and <SAMP>`>'</SAMP> operators. Bash versions prior to bash-4.1 use ASCII collation and strcmp(3); bash-4.1 and later use the current locale's collation sequence and strcoll(3). @@ -6180,14 +6207,14 @@ bash-4.1 and later use the current locale's collation sequence and strcoll(3). <DT><CODE>compat32</CODE> <DD>If set, Bash changes its behavior to that of version 3.2 with respect to locale-specific -string comparison when using the <SAMP>`[['</SAMP> +string comparison when using the <CODE>[[</CODE> conditional command's <SAMP>`<'</SAMP> and <SAMP>`>'</SAMP> operators (see previous item). <P> <DT><CODE>compat40</CODE> <DD>If set, Bash changes its behavior to that of version 4.0 with respect to locale-specific -string comparison when using the <SAMP>`[['</SAMP> +string comparison when using the <CODE>[[</CODE> conditional command's <SAMP>`<'</SAMP> and <SAMP>`>'</SAMP> operators (see description of <CODE>compat31</CODE>) and the effect of interrupting a command list. @@ -6203,6 +6230,12 @@ quoted. This is the behavior of POSIX mode through version 4.1. The default Bash behavior remains as in previous versions. <P> +<DT><CODE>compat42</CODE> +<DD>If set, Bash +does not process the replacement string in the pattern substitution word +expansion using quote removal. +<P> + <DT><CODE>complete_fullquote</CODE> <DD>If set, Bash quotes all shell metacharacters in filenames and directory names when @@ -6771,22 +6804,41 @@ in which case it is the command executing at the time of the trap. <P> <A NAME="IDX148"></A> -<DT><CODE>BASH_ENV</CODE> +<DT><CODE>BASH_COMPAT</CODE> <DD><A NAME="IDX149"></A> +The value is used to set the shell's compatibility level. +See section <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>, for a description of the various compatibility +levels and their effects. +The value may be a decimal number (e.g., 4.2) or an integer (e.g., 42) +corresponding to the desired compatibility level. +If <CODE>BASH_COMPAT</CODE> is unset or set to the empty string, the compatibility +level is set to the default for the current version. +If <CODE>BASH_COMPAT</CODE> is set to a value that is not one of the valid +compatibility levels, the shell prints an error message and sets the +compatibility level to the default for the current version. +The valid compatibility levels correspond to the compatibility options +accepted by the <CODE>shopt</CODE> builtin described above (for example, +<VAR>compat42</VAR> means that 4.2 and 42 are valid values). +The current version is also a valid value. +<P> + +<A NAME="IDX150"></A> +<DT><CODE>BASH_ENV</CODE> +<DD><A NAME="IDX151"></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#SEC71">6.2 Bash Startup Files</A>. <P> -<A NAME="IDX150"></A> +<A NAME="IDX152"></A> <DT><CODE>BASH_EXECUTION_STRING</CODE> -<DD><A NAME="IDX151"></A> +<DD><A NAME="IDX153"></A> The command argument to the <SAMP>`-c'</SAMP> invocation option. <P> -<A NAME="IDX152"></A> +<A NAME="IDX154"></A> <DT><CODE>BASH_LINENO</CODE> -<DD><A NAME="IDX153"></A> +<DD><A NAME="IDX155"></A> An array variable whose members are the line numbers in source files where each corresponding member of <VAR>FUNCNAME</VAR> was invoked. <CODE>${BASH_LINENO[$i]}</CODE> is the line number in the source file @@ -6796,9 +6848,9 @@ referenced within another shell function). Use <CODE>LINENO</CODE> to obtain the current line number. <P> -<A NAME="IDX154"></A> +<A NAME="IDX156"></A> <DT><CODE>BASH_REMATCH</CODE> -<DD><A NAME="IDX155"></A> +<DD><A NAME="IDX157"></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>). @@ -6809,9 +6861,9 @@ string matching the <VAR>n</VAR>th parenthesized subexpression. This variable is read-only. <P> -<A NAME="IDX156"></A> +<A NAME="IDX158"></A> <DT><CODE>BASH_SOURCE</CODE> -<DD><A NAME="IDX157"></A> +<DD><A NAME="IDX159"></A> An array variable whose members are the source filenames where the corresponding shell function names in the <CODE>FUNCNAME</CODE> array variable are defined. @@ -6819,17 +6871,17 @@ The shell function <CODE>${FUNCNAME[$i]}</CODE> is defined in the file <CODE>${BASH_SOURCE[$i]}</CODE> and called from <CODE>${BASH_SOURCE[$i+1]}</CODE> <P> -<A NAME="IDX158"></A> +<A NAME="IDX160"></A> <DT><CODE>BASH_SUBSHELL</CODE> -<DD><A NAME="IDX159"></A> +<DD><A NAME="IDX161"></A> Incremented by one within each subshell or subshell environment when the shell begins executing in that environment. The initial value is 0. <P> -<A NAME="IDX160"></A> +<A NAME="IDX162"></A> <DT><CODE>BASH_VERSINFO</CODE> -<DD><A NAME="IDX161"></A> +<DD><A NAME="IDX163"></A> A readonly array variable (see section <A HREF="bashref.html#SEC86">6.7 Arrays</A>) whose members hold version information for this instance of Bash. The values assigned to the array members are as follows: @@ -6862,15 +6914,15 @@ The values assigned to the array members are as follows: </DL> <P> -<A NAME="IDX162"></A> +<A NAME="IDX164"></A> <DT><CODE>BASH_VERSION</CODE> -<DD><A NAME="IDX163"></A> +<DD><A NAME="IDX165"></A> The version number of the current instance of Bash. <P> -<A NAME="IDX164"></A> +<A NAME="IDX166"></A> <DT><CODE>BASH_XTRACEFD</CODE> -<DD><A NAME="IDX165"></A> +<DD><A NAME="IDX167"></A> If set to an integer corresponding to a valid file descriptor, Bash will write the trace output generated when <SAMP>`set -x'</SAMP> is enabled to that file descriptor. @@ -6885,36 +6937,47 @@ descriptor) and then unsetting it will result in the standard error being closed. <P> -<A NAME="IDX166"></A> +<A NAME="IDX168"></A> +<DT><CODE>CHILD_MAX</CODE> +<DD><A NAME="IDX169"></A> +Set the number of exited child status values for the shell to remember. +Bash will not allow this value to be decreased below a POSIX-mandated +minimum, and there is a maximum value (currently 8192) that this may +not exceed. +The minimum value is system-dependent. +<P> + +<A NAME="IDX170"></A> <DT><CODE>COLUMNS</CODE> -<DD><A NAME="IDX167"></A> +<DD><A NAME="IDX171"></A> Used by the <CODE>select</CODE> command to determine the terminal width -when printing selection lists. Automatically set by an interactive shell -upon receipt of a +when printing selection lists. +Automatically set if the <CODE>checkwinsize</CODE> option is enabled +(see section <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>), or in an interactive shell upon receipt of a <CODE>SIGWINCH</CODE>. <P> -<A NAME="IDX168"></A> +<A NAME="IDX172"></A> <DT><CODE>COMP_CWORD</CODE> -<DD><A NAME="IDX169"></A> +<DD><A NAME="IDX173"></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#SEC118">8.6 Programmable Completion</A>). <P> -<A NAME="IDX170"></A> +<A NAME="IDX174"></A> <DT><CODE>COMP_LINE</CODE> -<DD><A NAME="IDX171"></A> +<DD><A NAME="IDX175"></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#SEC118">8.6 Programmable Completion</A>). <P> -<A NAME="IDX172"></A> +<A NAME="IDX176"></A> <DT><CODE>COMP_POINT</CODE> -<DD><A NAME="IDX173"></A> +<DD><A NAME="IDX177"></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, @@ -6924,9 +6987,9 @@ commands invoked by the programmable completion facilities (see section <A HREF="bashref.html#SEC118">8.6 Programmable Completion</A>). <P> -<A NAME="IDX174"></A> +<A NAME="IDX178"></A> <DT><CODE>COMP_TYPE</CODE> -<DD><A NAME="IDX175"></A> +<DD><A NAME="IDX179"></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, @@ -6940,25 +7003,25 @@ commands invoked by the programmable completion facilities (see section <A HREF="bashref.html#SEC118">8.6 Programmable Completion</A>). <P> -<A NAME="IDX176"></A> +<A NAME="IDX180"></A> <DT><CODE>COMP_KEY</CODE> -<DD><A NAME="IDX177"></A> +<DD><A NAME="IDX181"></A> The key (or final key of a key sequence) used to invoke the current completion function. <P> -<A NAME="IDX178"></A> +<A NAME="IDX182"></A> <DT><CODE>COMP_WORDBREAKS</CODE> -<DD><A NAME="IDX179"></A> +<DD><A NAME="IDX183"></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="IDX180"></A> +<A NAME="IDX184"></A> <DT><CODE>COMP_WORDS</CODE> -<DD><A NAME="IDX181"></A> +<DD><A NAME="IDX185"></A> An array variable consisting of the individual words in the current command line. The line is split into words as Readline would split it, using @@ -6967,25 +7030,25 @@ This variable is available only in shell functions invoked by the programmable completion facilities (see section <A HREF="bashref.html#SEC118">8.6 Programmable Completion</A>). <P> -<A NAME="IDX182"></A> +<A NAME="IDX186"></A> <DT><CODE>COMPREPLY</CODE> -<DD><A NAME="IDX183"></A> +<DD><A NAME="IDX187"></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#SEC118">8.6 Programmable Completion</A>). Each array element contains one possible completion. <P> -<A NAME="IDX184"></A> +<A NAME="IDX188"></A> <DT><CODE>COPROC</CODE> -<DD><A NAME="IDX185"></A> +<DD><A NAME="IDX189"></A> An array variable created to hold the file descriptors for output from and input to an unnamed coprocess (see section <A HREF="bashref.html#SEC23">3.2.5 Coprocesses</A>). <P> -<A NAME="IDX186"></A> +<A NAME="IDX190"></A> <DT><CODE>DIRSTACK</CODE> -<DD><A NAME="IDX187"></A> +<DD><A NAME="IDX191"></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. @@ -6997,38 +7060,38 @@ If <CODE>DIRSTACK</CODE> is unset, it loses its special properties, even if it is subsequently reset. <P> -<A NAME="IDX188"></A> +<A NAME="IDX192"></A> <DT><CODE>EMACS</CODE> -<DD><A NAME="IDX189"></A> +<DD><A NAME="IDX193"></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="IDX190"></A> +<A NAME="IDX194"></A> <DT><CODE>ENV</CODE> -<DD><A NAME="IDX191"></A> +<DD><A NAME="IDX195"></A> Similar to <CODE>BASH_ENV</CODE>; used when the shell is invoked in POSIX Mode (see section <A HREF="bashref.html#SEC91">6.11 Bash POSIX Mode</A>). <P> -<A NAME="IDX192"></A> +<A NAME="IDX196"></A> <DT><CODE>EUID</CODE> -<DD><A NAME="IDX193"></A> +<DD><A NAME="IDX197"></A> The numeric effective user id of the current user. This variable is readonly. <P> -<A NAME="IDX194"></A> +<A NAME="IDX198"></A> <DT><CODE>FCEDIT</CODE> -<DD><A NAME="IDX195"></A> +<DD><A NAME="IDX199"></A> The editor used as a default by the <SAMP>`-e'</SAMP> option to the <CODE>fc</CODE> builtin command. <P> -<A NAME="IDX196"></A> +<A NAME="IDX200"></A> <DT><CODE>FIGNORE</CODE> -<DD><A NAME="IDX197"></A> +<DD><A NAME="IDX201"></A> A colon-separated list of suffixes to ignore when performing filename completion. A filename whose suffix matches one of the entries in @@ -7037,9 +7100,9 @@ is excluded from the list of matched filenames. A sample value is <SAMP>`.o:~'</SAMP> <P> -<A NAME="IDX198"></A> +<A NAME="IDX202"></A> <DT><CODE>FUNCNAME</CODE> -<DD><A NAME="IDX199"></A> +<DD><A NAME="IDX203"></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 @@ -7061,17 +7124,17 @@ The <CODE>caller</CODE> builtin displays the current call stack using this information. </P><P> -<A NAME="IDX200"></A> +<A NAME="IDX204"></A> <DT><CODE>FUNCNEST</CODE> -<DD><A NAME="IDX201"></A> +<DD><A NAME="IDX205"></A> If set to a numeric value greater than 0, defines a maximum function nesting level. Function invocations that exceed this nesting level will cause the current command to abort. <P> -<A NAME="IDX202"></A> +<A NAME="IDX206"></A> <DT><CODE>GLOBIGNORE</CODE> -<DD><A NAME="IDX203"></A> +<DD><A NAME="IDX207"></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 @@ -7079,9 +7142,9 @@ of the patterns in <CODE>GLOBIGNORE</CODE>, it is removed from the list of matches. <P> -<A NAME="IDX204"></A> +<A NAME="IDX208"></A> <DT><CODE>GROUPS</CODE> -<DD><A NAME="IDX205"></A> +<DD><A NAME="IDX209"></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. @@ -7089,9 +7152,9 @@ If <CODE>GROUPS</CODE> is unset, it loses its special properties, even if it is subsequently reset. <P> -<A NAME="IDX206"></A> +<A NAME="IDX210"></A> <DT><CODE>histchars</CODE> -<DD><A NAME="IDX207"></A> +<DD><A NAME="IDX211"></A> Up to three characters which control history expansion, quick substitution, and tokenization (see section <A HREF="bashref.html#SEC124">9.3 History Expansion</A>). The first character is the @@ -7106,17 +7169,17 @@ 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="IDX208"></A> +<A NAME="IDX212"></A> <DT><CODE>HISTCMD</CODE> -<DD><A NAME="IDX209"></A> +<DD><A NAME="IDX213"></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="IDX210"></A> +<A NAME="IDX214"></A> <DT><CODE>HISTCONTROL</CODE> -<DD><A NAME="IDX211"></A> +<DD><A NAME="IDX215"></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 @@ -7137,16 +7200,16 @@ not tested, and are added to the history regardless of the value of <CODE>HISTCONTROL</CODE>. <P> -<A NAME="IDX212"></A> +<A NAME="IDX216"></A> <DT><CODE>HISTFILE</CODE> -<DD><A NAME="IDX213"></A> +<DD><A NAME="IDX217"></A> The name of the file to which the command history is saved. The default value is <TT>`~/.bash_history'</TT>. <P> -<A NAME="IDX214"></A> +<A NAME="IDX218"></A> <DT><CODE>HISTFILESIZE</CODE> -<DD><A NAME="IDX215"></A> +<DD><A NAME="IDX219"></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, to contain no more than that number of lines @@ -7159,9 +7222,9 @@ The shell sets the default value to the value of <CODE>HISTSIZE</CODE> after reading any startup files. <P> -<A NAME="IDX216"></A> +<A NAME="IDX220"></A> <DT><CODE>HISTIGNORE</CODE> -<DD><A NAME="IDX217"></A> +<DD><A NAME="IDX221"></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 @@ -7183,9 +7246,9 @@ Combining these two patterns, separating them with a colon, provides the functionality of <CODE>ignoreboth</CODE>. </P><P> -<A NAME="IDX218"></A> +<A NAME="IDX222"></A> <DT><CODE>HISTSIZE</CODE> -<DD><A NAME="IDX219"></A> +<DD><A NAME="IDX223"></A> The maximum number of commands to remember on the history list. If the value is 0, commands are not saved in the history list. Numeric values less than zero result in every command being saved @@ -7193,9 +7256,9 @@ on the history list (there is no limit). The shell sets the default value to 500 after reading any startup files. <P> -<A NAME="IDX220"></A> +<A NAME="IDX224"></A> <DT><CODE>HISTTIMEFORMAT</CODE> -<DD><A NAME="IDX221"></A> +<DD><A NAME="IDX225"></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. @@ -7205,9 +7268,9 @@ This uses the history comment character to distinguish timestamps from other history lines. <P> -<A NAME="IDX222"></A> +<A NAME="IDX226"></A> <DT><CODE>HOSTFILE</CODE> -<DD><A NAME="IDX223"></A> +<DD><A NAME="IDX227"></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 @@ -7221,21 +7284,21 @@ Bash attempts to read When <CODE>HOSTFILE</CODE> is unset, the hostname list is cleared. <P> -<A NAME="IDX224"></A> +<A NAME="IDX228"></A> <DT><CODE>HOSTNAME</CODE> -<DD><A NAME="IDX225"></A> +<DD><A NAME="IDX229"></A> The name of the current host. <P> -<A NAME="IDX226"></A> +<A NAME="IDX230"></A> <DT><CODE>HOSTTYPE</CODE> -<DD><A NAME="IDX227"></A> +<DD><A NAME="IDX231"></A> A string describing the machine Bash is running on. <P> -<A NAME="IDX228"></A> +<A NAME="IDX232"></A> <DT><CODE>IGNOREEOF</CODE> -<DD><A NAME="IDX229"></A> +<DD><A NAME="IDX233"></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 @@ -7246,30 +7309,30 @@ 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="IDX230"></A> +<A NAME="IDX234"></A> <DT><CODE>INPUTRC</CODE> -<DD><A NAME="IDX231"></A> +<DD><A NAME="IDX235"></A> The name of the Readline initialization file, overriding the default of <TT>`~/.inputrc'</TT>. <P> -<A NAME="IDX232"></A> +<A NAME="IDX236"></A> <DT><CODE>LANG</CODE> -<DD><A NAME="IDX233"></A> +<DD><A NAME="IDX237"></A> Used to determine the locale category for any category not specifically selected with a variable starting with <CODE>LC_</CODE>. <P> -<A NAME="IDX234"></A> +<A NAME="IDX238"></A> <DT><CODE>LC_ALL</CODE> -<DD><A NAME="IDX235"></A> +<DD><A NAME="IDX239"></A> This variable overrides the value of <CODE>LANG</CODE> and any other <CODE>LC_</CODE> variable specifying a locale category. <P> -<A NAME="IDX236"></A> +<A NAME="IDX240"></A> <DT><CODE>LC_COLLATE</CODE> -<DD><A NAME="IDX237"></A> +<DD><A NAME="IDX241"></A> This variable determines the collation order used when sorting the results of filename expansion, and determines the behavior of range expressions, equivalence classes, @@ -7277,52 +7340,53 @@ and collating sequences within filename expansion and pattern matching (see section <A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A>). <P> -<A NAME="IDX238"></A> +<A NAME="IDX242"></A> <DT><CODE>LC_CTYPE</CODE> -<DD><A NAME="IDX239"></A> +<DD><A NAME="IDX243"></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#SEC37">3.5.8 Filename Expansion</A>). <P> -<A NAME="IDX240"></A> +<A NAME="IDX244"></A> <DT><CODE>LC_MESSAGES</CODE> -<DD><A NAME="IDX241"></A> +<DD><A NAME="IDX245"></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="IDX242"></A> +<A NAME="IDX246"></A> <DT><CODE>LC_NUMERIC</CODE> -<DD><A NAME="IDX243"></A> +<DD><A NAME="IDX247"></A> This variable determines the locale category used for number formatting. <P> -<A NAME="IDX244"></A> +<A NAME="IDX248"></A> <DT><CODE>LINENO</CODE> -<DD><A NAME="IDX245"></A> +<DD><A NAME="IDX249"></A> The line number in the script or shell function currently executing. <P> -<A NAME="IDX246"></A> +<A NAME="IDX250"></A> <DT><CODE>LINES</CODE> -<DD><A NAME="IDX247"></A> +<DD><A NAME="IDX251"></A> Used by the <CODE>select</CODE> command to determine the column length -for printing selection lists. Automatically set by an interactive shell -upon receipt of a +for printing selection lists. +Automatically set if the <CODE>checkwinsize</CODE> option is enabled +(see section <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>), or in an interactive shell upon receipt of a <CODE>SIGWINCH</CODE>. <P> -<A NAME="IDX248"></A> +<A NAME="IDX252"></A> <DT><CODE>MACHTYPE</CODE> -<DD><A NAME="IDX249"></A> +<DD><A NAME="IDX253"></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="IDX250"></A> +<A NAME="IDX254"></A> <DT><CODE>MAILCHECK</CODE> -<DD><A NAME="IDX251"></A> +<DD><A NAME="IDX255"></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 @@ -7331,44 +7395,44 @@ 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="IDX252"></A> +<A NAME="IDX256"></A> <DT><CODE>MAPFILE</CODE> -<DD><A NAME="IDX253"></A> +<DD><A NAME="IDX257"></A> An array variable created to hold the text read by the <CODE>mapfile</CODE> builtin when no variable name is supplied. <P> -<A NAME="IDX254"></A> +<A NAME="IDX258"></A> <DT><CODE>OLDPWD</CODE> -<DD><A NAME="IDX255"></A> +<DD><A NAME="IDX259"></A> The previous working directory as set by the <CODE>cd</CODE> builtin. <P> -<A NAME="IDX256"></A> +<A NAME="IDX260"></A> <DT><CODE>OPTERR</CODE> -<DD><A NAME="IDX257"></A> +<DD><A NAME="IDX261"></A> If set to the value 1, Bash displays error messages generated by the <CODE>getopts</CODE> builtin command. <P> -<A NAME="IDX258"></A> +<A NAME="IDX262"></A> <DT><CODE>OSTYPE</CODE> -<DD><A NAME="IDX259"></A> +<DD><A NAME="IDX263"></A> A string describing the operating system Bash is running on. <P> -<A NAME="IDX260"></A> +<A NAME="IDX264"></A> <DT><CODE>PIPESTATUS</CODE> -<DD><A NAME="IDX261"></A> +<DD><A NAME="IDX265"></A> An array variable (see section <A HREF="bashref.html#SEC86">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="IDX262"></A> +<A NAME="IDX266"></A> <DT><CODE>POSIXLY_CORRECT</CODE> -<DD><A NAME="IDX263"></A> +<DD><A NAME="IDX267"></A> If this variable is in the environment when Bash starts, the shell enters POSIX mode (see section <A HREF="bashref.html#SEC91">6.11 Bash POSIX Mode</A>) before reading the startup files, as if the <SAMP>`--posix'</SAMP> invocation option had been supplied. @@ -7378,40 +7442,40 @@ as if the command </pre></td></tr></table>had been executed. <P> -<A NAME="IDX264"></A> +<A NAME="IDX268"></A> <DT><CODE>PPID</CODE> -<DD><A NAME="IDX265"></A> +<DD><A NAME="IDX269"></A> The process ID of the shell's parent process. This variable is readonly. <P> -<A NAME="IDX266"></A> +<A NAME="IDX270"></A> <DT><CODE>PROMPT_COMMAND</CODE> -<DD><A NAME="IDX267"></A> +<DD><A NAME="IDX271"></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="IDX268"></A> +<A NAME="IDX272"></A> <DT><CODE>PROMPT_DIRTRIM</CODE> -<DD><A NAME="IDX269"></A> +<DD><A NAME="IDX273"></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#SEC89">6.9 Controlling the Prompt</A>). Characters removed are replaced with an ellipsis. <P> -<A NAME="IDX270"></A> +<A NAME="IDX274"></A> <DT><CODE>PS3</CODE> -<DD><A NAME="IDX271"></A> +<DD><A NAME="IDX275"></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="IDX272"></A> +<A NAME="IDX276"></A> <DT><CODE>PS4</CODE> -<DD><A NAME="IDX273"></A> +<DD><A NAME="IDX277"></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#SEC63">4.3.1 The Set Builtin</A>). The first character of <CODE>PS4</CODE> is replicated multiple times, as @@ -7419,43 +7483,43 @@ necessary, to indicate multiple levels of indirection. The default is <SAMP>`+ '</SAMP>. <P> -<A NAME="IDX274"></A> +<A NAME="IDX278"></A> <DT><CODE>PWD</CODE> -<DD><A NAME="IDX275"></A> +<DD><A NAME="IDX279"></A> The current working directory as set by the <CODE>cd</CODE> builtin. <P> -<A NAME="IDX276"></A> +<A NAME="IDX280"></A> <DT><CODE>RANDOM</CODE> -<DD><A NAME="IDX277"></A> +<DD><A NAME="IDX281"></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="IDX278"></A> +<A NAME="IDX282"></A> <DT><CODE>READLINE_LINE</CODE> -<DD><A NAME="IDX279"></A> +<DD><A NAME="IDX283"></A> The contents of the Readline line buffer, for use with <SAMP>`bind -x'</SAMP> (see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>). <P> -<A NAME="IDX280"></A> +<A NAME="IDX284"></A> <DT><CODE>READLINE_POINT</CODE> -<DD><A NAME="IDX281"></A> +<DD><A NAME="IDX285"></A> The position of the insertion point in the Readline line buffer, for use with <SAMP>`bind -x'</SAMP> (see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>). <P> -<A NAME="IDX282"></A> +<A NAME="IDX286"></A> <DT><CODE>REPLY</CODE> -<DD><A NAME="IDX283"></A> +<DD><A NAME="IDX287"></A> The default variable for the <CODE>read</CODE> builtin. <P> -<A NAME="IDX284"></A> +<A NAME="IDX288"></A> <DT><CODE>SECONDS</CODE> -<DD><A NAME="IDX285"></A> +<DD><A NAME="IDX289"></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 @@ -7463,17 +7527,17 @@ becomes the value assigned plus the number of seconds since the assignment. <P> -<A NAME="IDX286"></A> +<A NAME="IDX290"></A> <DT><CODE>SHELL</CODE> -<DD><A NAME="IDX287"></A> +<DD><A NAME="IDX291"></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="IDX288"></A> +<A NAME="IDX292"></A> <DT><CODE>SHELLOPTS</CODE> -<DD><A NAME="IDX289"></A> +<DD><A NAME="IDX293"></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#SEC63">4.3.1 The Set Builtin</A>). @@ -7484,16 +7548,16 @@ starts up, each shell option in the list will be enabled before reading any startup files. This variable is readonly. <P> -<A NAME="IDX290"></A> +<A NAME="IDX294"></A> <DT><CODE>SHLVL</CODE> -<DD><A NAME="IDX291"></A> +<DD><A NAME="IDX295"></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="IDX292"></A> +<A NAME="IDX296"></A> <DT><CODE>TIMEFORMAT</CODE> -<DD><A NAME="IDX293"></A> +<DD><A NAME="IDX297"></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. @@ -7546,9 +7610,9 @@ If this variable is not set, Bash acts as if it had the value A trailing newline is added when the format string is displayed. </P><P> -<A NAME="IDX294"></A> +<A NAME="IDX298"></A> <DT><CODE>TMOUT</CODE> -<DD><A NAME="IDX295"></A> +<DD><A NAME="IDX299"></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#SEC61">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 @@ -7564,16 +7628,16 @@ terminates after waiting for that number of seconds if a complete line of input does not arrive. </P><P> -<A NAME="IDX296"></A> +<A NAME="IDX300"></A> <DT><CODE>TMPDIR</CODE> -<DD><A NAME="IDX297"></A> +<DD><A NAME="IDX301"></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="IDX298"></A> +<A NAME="IDX302"></A> <DT><CODE>UID</CODE> -<DD><A NAME="IDX299"></A> +<DD><A NAME="IDX303"></A> The numeric real user id of the current user. This variable is readonly. <P> @@ -7789,12 +7853,12 @@ Any arguments after the <CODE>--</CODE> are treated as filenames and arguments. </DL> <P> -<A NAME="IDX300"></A> +<A NAME="IDX304"></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="IDX301"></A> +<A NAME="IDX305"></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 @@ -8248,7 +8312,7 @@ If the <VAR>file</VAR> argument to one of the primaries is one of descriptor 0, 1, or 2, respectively, is checked. </P><P> -When used with <SAMP>`[['</SAMP>, the <SAMP>`<'</SAMP> and <SAMP>`>'</SAMP> operators sort +When used with <CODE>[[</CODE>, the <SAMP>`<'</SAMP> and <SAMP>`>'</SAMP> operators sort lexicographically using the current locale. The <CODE>test</CODE> command uses ASCII ordering. </P><P> @@ -8367,6 +8431,10 @@ option to the <CODE>set</CODE> builtin (see section <A HREF="bashref.html#SEC63" <DD>True if the shell variable <VAR>varname</VAR> is set (has been assigned a value). <P> +<DT><CODE>-R <VAR>varname</VAR></CODE> +<DD>True if the shell variable <VAR>varname</VAR> is set and is a name reference. +<P> + <DT><CODE>-z <VAR>string</VAR></CODE> <DD>True if the length of <VAR>string</VAR> is zero. <P> @@ -8379,9 +8447,13 @@ option to the <CODE>set</CODE> builtin (see section <A HREF="bashref.html#SEC63" <DT><CODE><VAR>string1</VAR> == <VAR>string2</VAR></CODE> <DD><DT><CODE><VAR>string1</VAR> = <VAR>string2</VAR></CODE> <DD>True if the strings are equal. -<SAMP>`='</SAMP> should be used with the <CODE>test</CODE> command for POSIX conformance. +When used with the <CODE>[[</CODE> command, this performs pattern matching as +described above (see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>). <P> +<SAMP>`='</SAMP> should be used with the <CODE>test</CODE> command for POSIX conformance. +</P><P> + <DT><CODE><VAR>string1</VAR> != <VAR>string2</VAR></CODE> <DD>True if the strings are not equal. <P> @@ -8699,6 +8771,13 @@ builtin. Individual array elements may be assigned to using the <CODE><VAR>name</VAR>[<VAR>subscript</VAR>]=<VAR>value</VAR></CODE> syntax introduced above. </P><P> +When assigning to an indexed array, if <VAR>name</VAR> +is subscripted by a negative number, that number is +interpreted as relative to one greater than the maximum index of +<VAR>name</VAR>, so negative indices count back from the end of the +array, and an index of -1 references the last element. +</P><P> + Any element of an array may be referenced using <CODE>${<VAR>name</VAR>[<VAR>subscript</VAR>]}</CODE>. The braces are required to avoid @@ -8726,9 +8805,10 @@ Referencing an array variable without a subscript is equivalent to referencing with a subscript of 0. If the <VAR>subscript</VAR> used to reference an element of an indexed array -evaluates to a number less than zero, it is used as -an offset from one greater than the array's maximum index (so a subcript -of -1 refers to the last element of the array). +evaluates to a number less than zero, it is +interpreted as relative to one greater than the maximum index of the array, +so negative indices count back from the end of the array, +and an index of -1 refers to the last element. </P><P> An array variable is considered set if a subscript has been assigned a @@ -8738,6 +8818,7 @@ value. The null string is a valid value. The <CODE>unset</CODE> builtin is used to destroy arrays. <CODE>unset <VAR>name</VAR>[<VAR>subscript</VAR>]</CODE> destroys the array element at index <VAR>subscript</VAR>. +Negative subscripts to indexed arrays are interpreted as described above. Care must be taken to avoid unwanted side effects caused by filename expansion. <CODE>unset <VAR>name</VAR></CODE>, where <VAR>name</VAR> is an array, removes the @@ -8814,7 +8895,7 @@ as the value of the <CODE>DIRSTACK</CODE> shell variable. <DL COMPACT> <DT><CODE>dirs</CODE> -<DD><A NAME="IDX302"></A> +<DD><A NAME="IDX306"></A> <TABLE><tr><td> </td><td class=example><pre>dirs [-clpv] [+<VAR>N</VAR> | -<VAR>N</VAR>] </pre></td></tr></table><P> @@ -8847,7 +8928,7 @@ with zero. <P> <DT><CODE>popd</CODE> -<DD><A NAME="IDX303"></A> +<DD><A NAME="IDX307"></A> <TABLE><tr><td> </td><td class=example><pre>popd [-n] [+<VAR>N</VAR> | -<VAR>N</VAR>] </pre></td></tr></table><P> @@ -8873,7 +8954,7 @@ list printed by <CODE>dirs</CODE>), starting with zero. </DL> <P> -<A NAME="IDX304"></A> +<A NAME="IDX308"></A> <DT><CODE>pushd</CODE> <DD><TABLE><tr><td> </td><td class=example><pre>pushd [-n] [<VAR>+N</VAR> | <VAR>-N</VAR> | <VAR>dir</VAR>] </pre></td></tr></table><P> @@ -9603,7 +9684,7 @@ Bash does not print another warning, and any stopped jobs are terminated. <DL COMPACT> <DT><CODE>bg</CODE> -<DD><A NAME="IDX305"></A> +<DD><A NAME="IDX309"></A> <TABLE><tr><td> </td><td class=example><pre>bg [<VAR>jobspec</VAR> <small>...</small>] </pre></td></tr></table><P> @@ -9617,7 +9698,7 @@ that was started without job control. </P><P> <DT><CODE>fg</CODE> -<DD><A NAME="IDX306"></A> +<DD><A NAME="IDX310"></A> <TABLE><tr><td> </td><td class=example><pre>fg [<VAR>jobspec</VAR>] </pre></td></tr></table><P> @@ -9630,7 +9711,7 @@ job control enabled, <VAR>jobspec</VAR> does not specify a valid job or </P><P> <DT><CODE>jobs</CODE> -<DD><A NAME="IDX307"></A> +<DD><A NAME="IDX311"></A> <TABLE><tr><td> </td><td class=example><pre>jobs [-lnprs] [<VAR>jobspec</VAR>] jobs -x <VAR>command</VAR> [<VAR>arguments</VAR>] </pre></td></tr></table><P> @@ -9675,7 +9756,7 @@ passing it <VAR>argument</VAR>s, returning its exit status. </P><P> <DT><CODE>kill</CODE> -<DD><A NAME="IDX308"></A> +<DD><A NAME="IDX312"></A> <TABLE><tr><td> </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><P> @@ -9697,7 +9778,7 @@ or non-zero if an error occurs or an invalid option is encountered. </P><P> <DT><CODE>wait</CODE> -<DD><A NAME="IDX309"></A> +<DD><A NAME="IDX313"></A> <TABLE><tr><td> </td><td class=example><pre>wait [<VAR>jobspec</VAR> or <VAR>pid</VAR> <small>...</small>] </pre></td></tr></table><P> @@ -9707,12 +9788,14 @@ 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 the <SAMP>`-n'</SAMP> option is supplied, <CODE>wait</CODE> waits for any job to +terminate and returns its exit status. If neither <VAR>jobspec</VAR> nor <VAR>pid</VAR> specifies an active child process of the shell, the return status is 127. </P><P> <DT><CODE>disown</CODE> -<DD><A NAME="IDX310"></A> +<DD><A NAME="IDX314"></A> <TABLE><tr><td> </td><td class=example><pre>disown [-ar] [-h] [<VAR>jobspec</VAR> <small>...</small>] </pre></td></tr></table><P> @@ -9729,7 +9812,7 @@ argument restricts operation to running jobs. </P><P> <DT><CODE>suspend</CODE> -<DD><A NAME="IDX311"></A> +<DD><A NAME="IDX315"></A> <TABLE><tr><td> </td><td class=example><pre>suspend [-f] </pre></td></tr></table><P> @@ -9765,9 +9848,9 @@ supplied process IDs. <DL COMPACT> -<A NAME="IDX312"></A> +<A NAME="IDX316"></A> <DT><CODE>auto_resume</CODE> -<DD><A NAME="IDX313"></A> +<DD><A NAME="IDX317"></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 @@ -9789,7 +9872,7 @@ analogous to the <SAMP>`%'</SAMP> job ID. </DL> <P> -<A NAME="IDX314"></A> +<A NAME="IDX318"></A> </P><P> <A NAME="Command Line Editing"></A> @@ -10065,8 +10148,8 @@ operate on characters while meta keystrokes operate on words. <!--docid::SEC101::--> <P> -<A NAME="IDX315"></A> -<A NAME="IDX316"></A> +<A NAME="IDX319"></A> +<A NAME="IDX320"></A> </P><P> <EM>Killing</EM> text means to delete the text from the line, but to save @@ -10086,7 +10169,7 @@ 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="IDX317"></A> +<A NAME="IDX321"></A> </P><P> Here is the list of commands for killing text. @@ -10345,11 +10428,11 @@ A great deal of run-time behavior is changeable with the following variables. </P><P> -<A NAME="IDX318"></A> +<A NAME="IDX322"></A> <DL COMPACT> <DT><CODE>bell-style</CODE> -<DD><A NAME="IDX319"></A> +<DD><A NAME="IDX323"></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. @@ -10358,14 +10441,14 @@ the terminal's bell. <P> <DT><CODE>bind-tty-special-chars</CODE> -<DD><A NAME="IDX320"></A> +<DD><A NAME="IDX324"></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>colored-stats</CODE> -<DD><A NAME="IDX321"></A> +<DD><A NAME="IDX325"></A> If set to <SAMP>`on'</SAMP>, Readline displays possible completions using different colors to indicate their file type. The color definitions are taken from the value of the <CODE>LS_COLORS</CODE> @@ -10374,14 +10457,14 @@ The default is <SAMP>`off'</SAMP>. <P> <DT><CODE>comment-begin</CODE> -<DD><A NAME="IDX322"></A> +<DD><A NAME="IDX326"></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-display-width</CODE> -<DD><A NAME="IDX323"></A> +<DD><A NAME="IDX327"></A> The number of screen columns used to display possible matches when performing completion. The value is ignored if it is less than 0 or greater than the terminal @@ -10391,21 +10474,21 @@ The default value is -1. <P> <DT><CODE>completion-ignore-case</CODE> -<DD><A NAME="IDX324"></A> +<DD><A NAME="IDX328"></A> 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-map-case</CODE> -<DD><A NAME="IDX325"></A> +<DD><A NAME="IDX329"></A> If set to <SAMP>`on'</SAMP>, and <VAR>completion-ignore-case</VAR> is enabled, Readline treats hyphens (<SAMP>`-'</SAMP>) and underscores (<SAMP>`_'</SAMP>) as equivalent when performing case-insensitive filename matching and completion. <P> <DT><CODE>completion-prefix-display-length</CODE> -<DD><A NAME="IDX326"></A> +<DD><A NAME="IDX330"></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 @@ -10413,7 +10496,7 @@ replaced with an ellipsis when displaying possible completions. <P> <DT><CODE>completion-query-items</CODE> -<DD><A NAME="IDX327"></A> +<DD><A NAME="IDX331"></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, @@ -10425,7 +10508,7 @@ The default limit is <CODE>100</CODE>. <P> <DT><CODE>convert-meta</CODE> -<DD><A NAME="IDX328"></A> +<DD><A NAME="IDX332"></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 @@ -10433,14 +10516,14 @@ meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>. <P> <DT><CODE>disable-completion</CODE> -<DD><A NAME="IDX329"></A> +<DD><A NAME="IDX333"></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="IDX330"></A> +<DD><A NAME="IDX334"></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 @@ -10454,7 +10537,7 @@ keyboard. The default is <SAMP>`on'</SAMP>. <P> <DT><CODE>enable-keypad</CODE> -<DD><A NAME="IDX331"></A> +<DD><A NAME="IDX335"></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>. @@ -10468,13 +10551,13 @@ The default is <SAMP>`on'</SAMP>. <P> <DT><CODE>expand-tilde</CODE> -<DD><A NAME="IDX332"></A> +<DD><A NAME="IDX336"></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="IDX333"></A> +<DD><A NAME="IDX337"></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> @@ -10482,13 +10565,17 @@ or <CODE>next-history</CODE>. The default is <SAMP>`off'</SAMP>. <P> <DT><CODE>history-size</CODE> -<DD><A NAME="IDX334"></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. +<DD><A NAME="IDX338"></A> +Set the maximum number of history entries saved in the history list. +If set to zero, any existing history entries are deleted and no new entries +are saved. +If set to a value less than zero, the number of history entries is not +limited. +By default, the number of history entries is not limited. <P> <DT><CODE>horizontal-scroll-mode</CODE> -<DD><A NAME="IDX335"></A> +<DD><A NAME="IDX339"></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 @@ -10497,8 +10584,8 @@ this variable is set to <SAMP>`off'</SAMP>. <P> <DT><CODE>input-meta</CODE> -<DD><A NAME="IDX336"></A> -<A NAME="IDX337"></A> +<DD><A NAME="IDX340"></A> +<A NAME="IDX341"></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 @@ -10507,7 +10594,7 @@ synonym for this variable. <P> <DT><CODE>isearch-terminators</CODE> -<DD><A NAME="IDX338"></A> +<DD><A NAME="IDX342"></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#SEC103">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 @@ -10515,7 +10602,7 @@ If this variable has not been given a value, the characters <KBD>ESC</KBD> and <P> <DT><CODE>keymap</CODE> -<DD><A NAME="IDX339"></A> +<DD><A NAME="IDX343"></A> Sets Readline's idea of the current keymap for key binding commands. Acceptable <CODE>keymap</CODE> names are <CODE>emacs</CODE>, @@ -10553,14 +10640,14 @@ appended. The default is <SAMP>`on'</SAMP>. <P> <DT><CODE>mark-modified-lines</CODE> -<DD><A NAME="IDX340"></A> +<DD><A NAME="IDX344"></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="IDX341"></A> +<DD><A NAME="IDX345"></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>). @@ -10568,7 +10655,7 @@ The default is <SAMP>`off'</SAMP>. <P> <DT><CODE>match-hidden-files</CODE> -<DD><A NAME="IDX342"></A> +<DD><A NAME="IDX346"></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. @@ -10578,21 +10665,21 @@ This variable is <SAMP>`on'</SAMP> by default. <P> <DT><CODE>menu-complete-display-prefix</CODE> -<DD><A NAME="IDX343"></A> +<DD><A NAME="IDX347"></A> If set to <SAMP>`on'</SAMP>, menu completion displays the common prefix of the list of possible completions (which may be empty) before cycling through the list. The default is <SAMP>`off'</SAMP>. <P> <DT><CODE>output-meta</CODE> -<DD><A NAME="IDX344"></A> +<DD><A NAME="IDX348"></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="IDX345"></A> +<DD><A NAME="IDX349"></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. @@ -10605,7 +10692,7 @@ The default is <SAMP>`off'</SAMP>. <P> <DT><CODE>revert-all-at-newline</CODE> -<DD><A NAME="IDX346"></A> +<DD><A NAME="IDX350"></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 @@ -10613,7 +10700,7 @@ calls to <CODE>readline</CODE>. The default is <SAMP>`off'</SAMP>. <P> <DT><CODE>show-all-if-ambiguous</CODE> -<DD><A NAME="IDX347"></A> +<DD><A NAME="IDX351"></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 @@ -10622,7 +10709,7 @@ The default value is <SAMP>`off'</SAMP>. <P> <DT><CODE>show-all-if-unmodified</CODE> -<DD><A NAME="IDX348"></A> +<DD><A NAME="IDX352"></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>, @@ -10633,8 +10720,16 @@ of ringing the bell. The default value is <SAMP>`off'</SAMP>. <P> +<DT><CODE>show-mode-in-prompt</CODE> +<DD><A NAME="IDX353"></A> +If set to <SAMP>`on'</SAMP>, add a character to the beginning of the prompt +indicating the editing mode: emacs (<SAMP>`@'</SAMP>), vi command (<SAMP>`:'</SAMP>), +or vi insertion (<SAMP>`+'</SAMP>). +The default value is <SAMP>`off'</SAMP>. +<P> + <DT><CODE>skip-completed-text</CODE> -<DD><A NAME="IDX349"></A> +<DD><A NAME="IDX354"></A> If set to <SAMP>`on'</SAMP>, this alters the default completion behavior when inserting a single match into the line. It's only active when performing completion in the middle of a word. If enabled, readline @@ -10649,7 +10744,7 @@ The default value is <SAMP>`off'</SAMP>. <P> <DT><CODE>visible-stats</CODE> -<DD><A NAME="IDX350"></A> +<DD><A NAME="IDX355"></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>. @@ -11073,68 +11168,68 @@ The text between the point and mark is referred to as the <EM>region</EM>. <H3> 8.4.1 Commands For Moving </H3> <!--docid::SEC109::--> <DL COMPACT> -<A NAME="IDX351"></A> +<A NAME="IDX356"></A> <DT><CODE>beginning-of-line (C-a)</CODE> -<DD><A NAME="IDX352"></A> +<DD><A NAME="IDX357"></A> Move to the start of the current line. <P> -<A NAME="IDX353"></A> +<A NAME="IDX358"></A> <DT><CODE>end-of-line (C-e)</CODE> -<DD><A NAME="IDX354"></A> +<DD><A NAME="IDX359"></A> Move to the end of the line. <P> -<A NAME="IDX355"></A> +<A NAME="IDX360"></A> <DT><CODE>forward-char (C-f)</CODE> -<DD><A NAME="IDX356"></A> +<DD><A NAME="IDX361"></A> Move forward a character. <P> -<A NAME="IDX357"></A> +<A NAME="IDX362"></A> <DT><CODE>backward-char (C-b)</CODE> -<DD><A NAME="IDX358"></A> +<DD><A NAME="IDX363"></A> Move back a character. <P> -<A NAME="IDX359"></A> +<A NAME="IDX364"></A> <DT><CODE>forward-word (M-f)</CODE> -<DD><A NAME="IDX360"></A> +<DD><A NAME="IDX365"></A> Move forward to the end of the next word. Words are composed of letters and digits. <P> -<A NAME="IDX361"></A> +<A NAME="IDX366"></A> <DT><CODE>backward-word (M-b)</CODE> -<DD><A NAME="IDX362"></A> +<DD><A NAME="IDX367"></A> Move back to the start of the current or previous word. Words are composed of letters and digits. <P> -<A NAME="IDX363"></A> +<A NAME="IDX368"></A> <DT><CODE>shell-forward-word ()</CODE> -<DD><A NAME="IDX364"></A> +<DD><A NAME="IDX369"></A> Move forward to the end of the next word. Words are delimited by non-quoted shell metacharacters. <P> -<A NAME="IDX365"></A> +<A NAME="IDX370"></A> <DT><CODE>shell-backward-word ()</CODE> -<DD><A NAME="IDX366"></A> +<DD><A NAME="IDX371"></A> Move back to the start of the current or previous word. Words are delimited by non-quoted shell metacharacters. <P> -<A NAME="IDX367"></A> +<A NAME="IDX372"></A> <DT><CODE>clear-screen (C-l)</CODE> -<DD><A NAME="IDX368"></A> +<DD><A NAME="IDX373"></A> Clear the screen and redraw the current line, leaving the current line at the top of the screen. <P> -<A NAME="IDX369"></A> +<A NAME="IDX374"></A> <DT><CODE>redraw-current-line ()</CODE> -<DD><A NAME="IDX370"></A> +<DD><A NAME="IDX375"></A> Refresh the current line. By default, this is unbound. <P> @@ -11160,9 +11255,9 @@ Refresh the current line. By default, this is unbound. <P> <DL COMPACT> -<A NAME="IDX371"></A> +<A NAME="IDX376"></A> <DT><CODE>accept-line (Newline or Return)</CODE> -<DD><A NAME="IDX372"></A> +<DD><A NAME="IDX377"></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 @@ -11171,64 +11266,64 @@ If this line is a modified history line, then restore the history line to its original state. <P> -<A NAME="IDX373"></A> +<A NAME="IDX378"></A> <DT><CODE>previous-history (C-p)</CODE> -<DD><A NAME="IDX374"></A> +<DD><A NAME="IDX379"></A> Move `back' through the history list, fetching the previous command. <P> -<A NAME="IDX375"></A> +<A NAME="IDX380"></A> <DT><CODE>next-history (C-n)</CODE> -<DD><A NAME="IDX376"></A> +<DD><A NAME="IDX381"></A> Move `forward' through the history list, fetching the next command. <P> -<A NAME="IDX377"></A> +<A NAME="IDX382"></A> <DT><CODE>beginning-of-history (M-<)</CODE> -<DD><A NAME="IDX378"></A> +<DD><A NAME="IDX383"></A> Move to the first line in the history. <P> -<A NAME="IDX379"></A> +<A NAME="IDX384"></A> <DT><CODE>end-of-history (M->)</CODE> -<DD><A NAME="IDX380"></A> +<DD><A NAME="IDX385"></A> Move to the end of the input history, i.e., the line currently being entered. <P> -<A NAME="IDX381"></A> +<A NAME="IDX386"></A> <DT><CODE>reverse-search-history (C-r)</CODE> -<DD><A NAME="IDX382"></A> +<DD><A NAME="IDX387"></A> Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search. <P> -<A NAME="IDX383"></A> +<A NAME="IDX388"></A> <DT><CODE>forward-search-history (C-s)</CODE> -<DD><A NAME="IDX384"></A> +<DD><A NAME="IDX389"></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="IDX385"></A> +<A NAME="IDX390"></A> <DT><CODE>non-incremental-reverse-search-history (M-p)</CODE> -<DD><A NAME="IDX386"></A> +<DD><A NAME="IDX391"></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="IDX387"></A> +<A NAME="IDX392"></A> <DT><CODE>non-incremental-forward-search-history (M-n)</CODE> -<DD><A NAME="IDX388"></A> +<DD><A NAME="IDX393"></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="IDX389"></A> +<A NAME="IDX394"></A> <DT><CODE>history-search-forward ()</CODE> -<DD><A NAME="IDX390"></A> +<DD><A NAME="IDX395"></A> Search forward through the history for the string of characters between the start of the current line and the point. The search string must match at the beginning of a history line. @@ -11236,9 +11331,9 @@ This is a non-incremental search. By default, this command is unbound. <P> -<A NAME="IDX391"></A> +<A NAME="IDX396"></A> <DT><CODE>history-search-backward ()</CODE> -<DD><A NAME="IDX392"></A> +<DD><A NAME="IDX397"></A> Search backward through the history for the string of characters between the start of the current line and the point. The search string must match at the beginning of a history line. @@ -11246,9 +11341,9 @@ This is a non-incremental search. By default, this command is unbound. <P> -<A NAME="IDX393"></A> +<A NAME="IDX398"></A> <DT><CODE>history-substr-search-forward ()</CODE> -<DD><A NAME="IDX394"></A> +<DD><A NAME="IDX399"></A> Search forward through the history for the string of characters between the start of the current line and the point. The search string may match anywhere in a history line. @@ -11256,9 +11351,9 @@ This is a non-incremental search. By default, this command is unbound. <P> -<A NAME="IDX395"></A> +<A NAME="IDX400"></A> <DT><CODE>history-substr-search-backward ()</CODE> -<DD><A NAME="IDX396"></A> +<DD><A NAME="IDX401"></A> Search backward through the history for the string of characters between the start of the current line and the point. The search string may match anywhere in a history line. @@ -11266,9 +11361,9 @@ This is a non-incremental search. By default, this command is unbound. <P> -<A NAME="IDX397"></A> +<A NAME="IDX402"></A> <DT><CODE>yank-nth-arg (M-C-y)</CODE> -<DD><A NAME="IDX398"></A> +<DD><A NAME="IDX403"></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>, @@ -11279,9 +11374,9 @@ 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="IDX399"></A> +<A NAME="IDX404"></A> <DT><CODE>yank-last-arg (M-. or M-_)</CODE> -<DD><A NAME="IDX400"></A> +<DD><A NAME="IDX405"></A> Insert last argument to the previous command (the last word of the previous history entry). With a numeric argument, behave exactly like <CODE>yank-nth-arg</CODE>. @@ -11317,46 +11412,46 @@ as if the <SAMP>`!$'</SAMP> history expansion had been specified. <P> <DL COMPACT> -<A NAME="IDX401"></A> +<A NAME="IDX406"></A> <DT><CODE>delete-char (C-d)</CODE> -<DD><A NAME="IDX402"></A> +<DD><A NAME="IDX407"></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="IDX403"></A> +<A NAME="IDX408"></A> <DT><CODE>backward-delete-char (Rubout)</CODE> -<DD><A NAME="IDX404"></A> +<DD><A NAME="IDX409"></A> Delete the character behind the cursor. A numeric argument means to kill the characters instead of deleting them. <P> -<A NAME="IDX405"></A> +<A NAME="IDX410"></A> <DT><CODE>forward-backward-delete-char ()</CODE> -<DD><A NAME="IDX406"></A> +<DD><A NAME="IDX411"></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="IDX407"></A> +<A NAME="IDX412"></A> <DT><CODE>quoted-insert (C-q or C-v)</CODE> -<DD><A NAME="IDX408"></A> +<DD><A NAME="IDX413"></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="IDX409"></A> +<A NAME="IDX414"></A> <DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE> -<DD><A NAME="IDX410"></A> +<DD><A NAME="IDX415"></A> Insert yourself. <P> -<A NAME="IDX411"></A> +<A NAME="IDX416"></A> <DT><CODE>transpose-chars (C-t)</CODE> -<DD><A NAME="IDX412"></A> +<DD><A NAME="IDX417"></A> Drag the character before the cursor forward over the character at the cursor, moving the cursor forward as well. If the insertion point @@ -11365,39 +11460,39 @@ transposes the last two characters of the line. Negative arguments have no effect. <P> -<A NAME="IDX413"></A> +<A NAME="IDX418"></A> <DT><CODE>transpose-words (M-t)</CODE> -<DD><A NAME="IDX414"></A> +<DD><A NAME="IDX419"></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="IDX415"></A> +<A NAME="IDX420"></A> <DT><CODE>upcase-word (M-u)</CODE> -<DD><A NAME="IDX416"></A> +<DD><A NAME="IDX421"></A> Uppercase the current (or following) word. With a negative argument, uppercase the previous word, but do not move the cursor. <P> -<A NAME="IDX417"></A> +<A NAME="IDX422"></A> <DT><CODE>downcase-word (M-l)</CODE> -<DD><A NAME="IDX418"></A> +<DD><A NAME="IDX423"></A> Lowercase the current (or following) word. With a negative argument, lowercase the previous word, but do not move the cursor. <P> -<A NAME="IDX419"></A> +<A NAME="IDX424"></A> <DT><CODE>capitalize-word (M-c)</CODE> -<DD><A NAME="IDX420"></A> +<DD><A NAME="IDX425"></A> Capitalize the current (or following) word. With a negative argument, capitalize the previous word, but do not move the cursor. <P> -<A NAME="IDX421"></A> +<A NAME="IDX426"></A> <DT><CODE>overwrite-mode ()</CODE> -<DD><A NAME="IDX422"></A> +<DD><A NAME="IDX427"></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 @@ -11437,121 +11532,121 @@ By default, this command is unbound. <DL COMPACT> -<A NAME="IDX423"></A> +<A NAME="IDX428"></A> <DT><CODE>kill-line (C-k)</CODE> -<DD><A NAME="IDX424"></A> +<DD><A NAME="IDX429"></A> Kill the text from point to the end of the line. <P> -<A NAME="IDX425"></A> +<A NAME="IDX430"></A> <DT><CODE>backward-kill-line (C-x Rubout)</CODE> -<DD><A NAME="IDX426"></A> +<DD><A NAME="IDX431"></A> Kill backward to the beginning of the line. <P> -<A NAME="IDX427"></A> +<A NAME="IDX432"></A> <DT><CODE>unix-line-discard (C-u)</CODE> -<DD><A NAME="IDX428"></A> +<DD><A NAME="IDX433"></A> Kill backward from the cursor to the beginning of the current line. <P> -<A NAME="IDX429"></A> +<A NAME="IDX434"></A> <DT><CODE>kill-whole-line ()</CODE> -<DD><A NAME="IDX430"></A> +<DD><A NAME="IDX435"></A> Kill all characters on the current line, no matter where point is. By default, this is unbound. <P> -<A NAME="IDX431"></A> +<A NAME="IDX436"></A> <DT><CODE>kill-word (M-d)</CODE> -<DD><A NAME="IDX432"></A> +<DD><A NAME="IDX437"></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="IDX433"></A> +<A NAME="IDX438"></A> <DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE> -<DD><A NAME="IDX434"></A> +<DD><A NAME="IDX439"></A> Kill the word behind point. Word boundaries are the same as <CODE>backward-word</CODE>. <P> -<A NAME="IDX435"></A> +<A NAME="IDX440"></A> <DT><CODE>shell-kill-word ()</CODE> -<DD><A NAME="IDX436"></A> +<DD><A NAME="IDX441"></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="IDX437"></A> +<A NAME="IDX442"></A> <DT><CODE>shell-backward-kill-word ()</CODE> -<DD><A NAME="IDX438"></A> +<DD><A NAME="IDX443"></A> Kill the word behind point. Word boundaries are the same as <CODE>shell-backward-word</CODE>. <P> -<A NAME="IDX439"></A> +<A NAME="IDX444"></A> <DT><CODE>unix-word-rubout (C-w)</CODE> -<DD><A NAME="IDX440"></A> +<DD><A NAME="IDX445"></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="IDX441"></A> +<A NAME="IDX446"></A> <DT><CODE>unix-filename-rubout ()</CODE> -<DD><A NAME="IDX442"></A> +<DD><A NAME="IDX447"></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="IDX443"></A> +<A NAME="IDX448"></A> <DT><CODE>delete-horizontal-space ()</CODE> -<DD><A NAME="IDX444"></A> +<DD><A NAME="IDX449"></A> Delete all spaces and tabs around point. By default, this is unbound. <P> -<A NAME="IDX445"></A> +<A NAME="IDX450"></A> <DT><CODE>kill-region ()</CODE> -<DD><A NAME="IDX446"></A> +<DD><A NAME="IDX451"></A> Kill the text in the current region. By default, this command is unbound. <P> -<A NAME="IDX447"></A> +<A NAME="IDX452"></A> <DT><CODE>copy-region-as-kill ()</CODE> -<DD><A NAME="IDX448"></A> +<DD><A NAME="IDX453"></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="IDX449"></A> +<A NAME="IDX454"></A> <DT><CODE>copy-backward-word ()</CODE> -<DD><A NAME="IDX450"></A> +<DD><A NAME="IDX455"></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="IDX451"></A> +<A NAME="IDX456"></A> <DT><CODE>copy-forward-word ()</CODE> -<DD><A NAME="IDX452"></A> +<DD><A NAME="IDX457"></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="IDX453"></A> +<A NAME="IDX458"></A> <DT><CODE>yank (C-y)</CODE> -<DD><A NAME="IDX454"></A> +<DD><A NAME="IDX459"></A> Yank the top of the kill ring into the buffer at point. <P> -<A NAME="IDX455"></A> +<A NAME="IDX460"></A> <DT><CODE>yank-pop (M-y)</CODE> -<DD><A NAME="IDX456"></A> +<DD><A NAME="IDX461"></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> @@ -11575,16 +11670,16 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>. <!--docid::SEC113::--> <DL COMPACT> -<A NAME="IDX457"></A> +<A NAME="IDX462"></A> <DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE> -<DD><A NAME="IDX458"></A> +<DD><A NAME="IDX463"></A> Add this digit to the argument already accumulating, or start a new argument. <KBD>M--</KBD> starts a negative argument. <P> -<A NAME="IDX459"></A> +<A NAME="IDX464"></A> <DT><CODE>universal-argument ()</CODE> -<DD><A NAME="IDX460"></A> +<DD><A NAME="IDX465"></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. @@ -11619,9 +11714,9 @@ By default, this is not bound to a key. <P> <DL COMPACT> -<A NAME="IDX461"></A> +<A NAME="IDX466"></A> <DT><CODE>complete (<KBD>TAB</KBD>)</CODE> -<DD><A NAME="IDX462"></A> +<DD><A NAME="IDX467"></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 @@ -11631,25 +11726,25 @@ command (including aliases and functions) in turn. If none of these produces a match, filename completion is attempted. <P> -<A NAME="IDX463"></A> +<A NAME="IDX468"></A> <DT><CODE>possible-completions (M-?)</CODE> -<DD><A NAME="IDX464"></A> +<DD><A NAME="IDX469"></A> List the possible completions of the text before point. When displaying completions, Readline sets the number of columns used for display to the value of <CODE>completion-display-width</CODE>, the value of the environment variable <CODE>COLUMNS</CODE>, or the screen width, in that order. <P> -<A NAME="IDX465"></A> +<A NAME="IDX470"></A> <DT><CODE>insert-completions (M-*)</CODE> -<DD><A NAME="IDX466"></A> +<DD><A NAME="IDX471"></A> Insert all completions of the text before point that would have been generated by <CODE>possible-completions</CODE>. <P> -<A NAME="IDX467"></A> +<A NAME="IDX472"></A> <DT><CODE>menu-complete ()</CODE> -<DD><A NAME="IDX468"></A> +<DD><A NAME="IDX473"></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 @@ -11664,17 +11759,17 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound by default. <P> -<A NAME="IDX469"></A> +<A NAME="IDX474"></A> <DT><CODE>menu-complete-backward ()</CODE> -<DD><A NAME="IDX470"></A> +<DD><A NAME="IDX475"></A> Identical to <CODE>menu-complete</CODE>, but moves backward through the list of possible completions, as if <CODE>menu-complete</CODE> had been given a negative argument. <P> -<A NAME="IDX471"></A> +<A NAME="IDX476"></A> <DT><CODE>delete-char-or-list ()</CODE> -<DD><A NAME="IDX472"></A> +<DD><A NAME="IDX477"></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 @@ -11682,64 +11777,64 @@ If at the end of the line, behaves identically to This command is unbound by default. <P> -<A NAME="IDX473"></A> +<A NAME="IDX478"></A> <DT><CODE>complete-filename (M-/)</CODE> -<DD><A NAME="IDX474"></A> +<DD><A NAME="IDX479"></A> Attempt filename completion on the text before point. <P> -<A NAME="IDX475"></A> +<A NAME="IDX480"></A> <DT><CODE>possible-filename-completions (C-x /)</CODE> -<DD><A NAME="IDX476"></A> +<DD><A NAME="IDX481"></A> List the possible completions of the text before point, treating it as a filename. <P> -<A NAME="IDX477"></A> +<A NAME="IDX482"></A> <DT><CODE>complete-username (M-~)</CODE> -<DD><A NAME="IDX478"></A> +<DD><A NAME="IDX483"></A> Attempt completion on the text before point, treating it as a username. <P> -<A NAME="IDX479"></A> +<A NAME="IDX484"></A> <DT><CODE>possible-username-completions (C-x ~)</CODE> -<DD><A NAME="IDX480"></A> +<DD><A NAME="IDX485"></A> List the possible completions of the text before point, treating it as a username. <P> -<A NAME="IDX481"></A> +<A NAME="IDX486"></A> <DT><CODE>complete-variable (M-$)</CODE> -<DD><A NAME="IDX482"></A> +<DD><A NAME="IDX487"></A> Attempt completion on the text before point, treating it as a shell variable. <P> -<A NAME="IDX483"></A> +<A NAME="IDX488"></A> <DT><CODE>possible-variable-completions (C-x $)</CODE> -<DD><A NAME="IDX484"></A> +<DD><A NAME="IDX489"></A> List the possible completions of the text before point, treating it as a shell variable. <P> -<A NAME="IDX485"></A> +<A NAME="IDX490"></A> <DT><CODE>complete-hostname (M-@)</CODE> -<DD><A NAME="IDX486"></A> +<DD><A NAME="IDX491"></A> Attempt completion on the text before point, treating it as a hostname. <P> -<A NAME="IDX487"></A> +<A NAME="IDX492"></A> <DT><CODE>possible-hostname-completions (C-x @)</CODE> -<DD><A NAME="IDX488"></A> +<DD><A NAME="IDX493"></A> List the possible completions of the text before point, treating it as a hostname. <P> -<A NAME="IDX489"></A> +<A NAME="IDX494"></A> <DT><CODE>complete-command (M-!)</CODE> -<DD><A NAME="IDX490"></A> +<DD><A NAME="IDX495"></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 @@ -11747,32 +11842,32 @@ functions, shell builtins, and finally executable filenames, in that order. <P> -<A NAME="IDX491"></A> +<A NAME="IDX496"></A> <DT><CODE>possible-command-completions (C-x !)</CODE> -<DD><A NAME="IDX492"></A> +<DD><A NAME="IDX497"></A> List the possible completions of the text before point, treating it as a command name. <P> -<A NAME="IDX493"></A> +<A NAME="IDX498"></A> <DT><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE> -<DD><A NAME="IDX494"></A> +<DD><A NAME="IDX499"></A> Attempt completion on the text before point, comparing the text against lines from the history list for possible completion matches. <P> -<A NAME="IDX495"></A> +<A NAME="IDX500"></A> <DT><CODE>dabbrev-expand ()</CODE> -<DD><A NAME="IDX496"></A> +<DD><A NAME="IDX501"></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="IDX497"></A> +<A NAME="IDX502"></A> <DT><CODE>complete-into-braces (M-{)</CODE> -<DD><A NAME="IDX498"></A> +<DD><A NAME="IDX503"></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#SEC30">3.5.1 Brace Expansion</A>). @@ -11799,29 +11894,29 @@ enclosed within braces so the list is available to the shell <!--docid::SEC115::--> <DL COMPACT> -<A NAME="IDX499"></A> +<A NAME="IDX504"></A> <DT><CODE>start-kbd-macro (C-x ()</CODE> -<DD><A NAME="IDX500"></A> +<DD><A NAME="IDX505"></A> Begin saving the characters typed into the current keyboard macro. <P> -<A NAME="IDX501"></A> +<A NAME="IDX506"></A> <DT><CODE>end-kbd-macro (C-x ))</CODE> -<DD><A NAME="IDX502"></A> +<DD><A NAME="IDX507"></A> Stop saving the characters typed into the current keyboard macro and save the definition. <P> -<A NAME="IDX503"></A> +<A NAME="IDX508"></A> <DT><CODE>call-last-kbd-macro (C-x e)</CODE> -<DD><A NAME="IDX504"></A> +<DD><A NAME="IDX509"></A> Re-execute the last keyboard macro defined, by making the characters in the macro appear as if typed at the keyboard. <P> -<A NAME="IDX505"></A> +<A NAME="IDX510"></A> <DT><CODE>print-last-kbd-macro ()</CODE> -<DD><A NAME="IDX506"></A> +<DD><A NAME="IDX511"></A> Print the last keboard macro defined in a format suitable for the <VAR>inputrc</VAR> file. <P> @@ -11847,87 +11942,87 @@ Print the last keboard macro defined in a format suitable for the <!--docid::SEC116::--> <DL COMPACT> -<A NAME="IDX507"></A> +<A NAME="IDX512"></A> <DT><CODE>re-read-init-file (C-x C-r)</CODE> -<DD><A NAME="IDX508"></A> +<DD><A NAME="IDX513"></A> Read in the contents of the <VAR>inputrc</VAR> file, and incorporate any bindings or variable assignments found there. <P> -<A NAME="IDX509"></A> +<A NAME="IDX514"></A> <DT><CODE>abort (C-g)</CODE> -<DD><A NAME="IDX510"></A> +<DD><A NAME="IDX515"></A> Abort the current editing command and ring the terminal's bell (subject to the setting of <CODE>bell-style</CODE>). <P> -<A NAME="IDX511"></A> +<A NAME="IDX516"></A> <DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE> -<DD><A NAME="IDX512"></A> +<DD><A NAME="IDX517"></A> If the metafied character <VAR>x</VAR> is lowercase, run the command that is bound to the corresponding uppercase character. <P> -<A NAME="IDX513"></A> +<A NAME="IDX518"></A> <DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE> -<DD><A NAME="IDX514"></A> +<DD><A NAME="IDX519"></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="IDX515"></A> +<A NAME="IDX520"></A> <DT><CODE>undo (C-_ or C-x C-u)</CODE> -<DD><A NAME="IDX516"></A> +<DD><A NAME="IDX521"></A> Incremental undo, separately remembered for each line. <P> -<A NAME="IDX517"></A> +<A NAME="IDX522"></A> <DT><CODE>revert-line (M-r)</CODE> -<DD><A NAME="IDX518"></A> +<DD><A NAME="IDX523"></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="IDX519"></A> +<A NAME="IDX524"></A> <DT><CODE>tilde-expand (M-&)</CODE> -<DD><A NAME="IDX520"></A> +<DD><A NAME="IDX525"></A> Perform tilde expansion on the current word. <P> -<A NAME="IDX521"></A> +<A NAME="IDX526"></A> <DT><CODE>set-mark (C-@)</CODE> -<DD><A NAME="IDX522"></A> +<DD><A NAME="IDX527"></A> Set the mark to the point. If a numeric argument is supplied, the mark is set to that position. <P> -<A NAME="IDX523"></A> +<A NAME="IDX528"></A> <DT><CODE>exchange-point-and-mark (C-x C-x)</CODE> -<DD><A NAME="IDX524"></A> +<DD><A NAME="IDX529"></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="IDX525"></A> +<A NAME="IDX530"></A> <DT><CODE>character-search (C-])</CODE> -<DD><A NAME="IDX526"></A> +<DD><A NAME="IDX531"></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="IDX527"></A> +<A NAME="IDX532"></A> <DT><CODE>character-search-backward (M-C-])</CODE> -<DD><A NAME="IDX528"></A> +<DD><A NAME="IDX533"></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="IDX529"></A> +<A NAME="IDX534"></A> <DT><CODE>skip-csi-sequence ()</CODE> -<DD><A NAME="IDX530"></A> +<DD><A NAME="IDX535"></A> Read enough characters to consume a multi-key sequence such as those defined for keys like Home and End. Such sequences begin with a Control Sequence Indicator (CSI), usually ESC-[. If this sequence is @@ -11937,9 +12032,9 @@ stray characters into the editing buffer. This is unbound by default, but usually bound to ESC-[. <P> -<A NAME="IDX531"></A> +<A NAME="IDX536"></A> <DT><CODE>insert-comment (M-#)</CODE> -<DD><A NAME="IDX532"></A> +<DD><A NAME="IDX537"></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 @@ -11954,115 +12049,115 @@ If a numeric argument causes the comment character to be removed, the line will be executed by the shell. <P> -<A NAME="IDX533"></A> +<A NAME="IDX538"></A> <DT><CODE>dump-functions ()</CODE> -<DD><A NAME="IDX534"></A> +<DD><A NAME="IDX539"></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="IDX535"></A> +<A NAME="IDX540"></A> <DT><CODE>dump-variables ()</CODE> -<DD><A NAME="IDX536"></A> +<DD><A NAME="IDX541"></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="IDX537"></A> +<A NAME="IDX542"></A> <DT><CODE>dump-macros ()</CODE> -<DD><A NAME="IDX538"></A> +<DD><A NAME="IDX543"></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="IDX539"></A> +<A NAME="IDX544"></A> <DT><CODE>glob-complete-word (M-g)</CODE> -<DD><A NAME="IDX540"></A> +<DD><A NAME="IDX545"></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="IDX541"></A> +<A NAME="IDX546"></A> <DT><CODE>glob-expand-word (C-x *)</CODE> -<DD><A NAME="IDX542"></A> +<DD><A NAME="IDX547"></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="IDX543"></A> +<A NAME="IDX548"></A> <DT><CODE>glob-list-expansions (C-x g)</CODE> -<DD><A NAME="IDX544"></A> +<DD><A NAME="IDX549"></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="IDX545"></A> +<A NAME="IDX550"></A> <DT><CODE>display-shell-version (C-x C-v)</CODE> -<DD><A NAME="IDX546"></A> +<DD><A NAME="IDX551"></A> Display version information about the current instance of Bash. <P> -<A NAME="IDX547"></A> +<A NAME="IDX552"></A> <DT><CODE>shell-expand-line (M-C-e)</CODE> -<DD><A NAME="IDX548"></A> +<DD><A NAME="IDX553"></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#SEC29">3.5 Shell Expansions</A>). <P> -<A NAME="IDX549"></A> +<A NAME="IDX554"></A> <DT><CODE>history-expand-line (M-^)</CODE> -<DD><A NAME="IDX550"></A> +<DD><A NAME="IDX555"></A> Perform history expansion on the current line. <P> -<A NAME="IDX551"></A> +<A NAME="IDX556"></A> <DT><CODE>magic-space ()</CODE> -<DD><A NAME="IDX552"></A> +<DD><A NAME="IDX557"></A> Perform history expansion on the current line and insert a space (see section <A HREF="bashref.html#SEC124">9.3 History Expansion</A>). <P> -<A NAME="IDX553"></A> +<A NAME="IDX558"></A> <DT><CODE>alias-expand-line ()</CODE> -<DD><A NAME="IDX554"></A> +<DD><A NAME="IDX559"></A> Perform alias expansion on the current line (see section <A HREF="bashref.html#SEC85">6.6 Aliases</A>). <P> -<A NAME="IDX555"></A> +<A NAME="IDX560"></A> <DT><CODE>history-and-alias-expand-line ()</CODE> -<DD><A NAME="IDX556"></A> +<DD><A NAME="IDX561"></A> Perform history and alias expansion on the current line. <P> -<A NAME="IDX557"></A> +<A NAME="IDX562"></A> <DT><CODE>insert-last-argument (M-. or M-_)</CODE> -<DD><A NAME="IDX558"></A> +<DD><A NAME="IDX563"></A> A synonym for <CODE>yank-last-arg</CODE>. <P> -<A NAME="IDX559"></A> +<A NAME="IDX564"></A> <DT><CODE>operate-and-get-next (C-o)</CODE> -<DD><A NAME="IDX560"></A> +<DD><A NAME="IDX565"></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="IDX561"></A> +<A NAME="IDX566"></A> <DT><CODE>edit-and-execute-command (C-xC-e)</CODE> -<DD><A NAME="IDX562"></A> +<DD><A NAME="IDX567"></A> Invoke an editor on the current command line, and execute the result as shell commands. Bash attempts to invoke @@ -12315,7 +12410,7 @@ be completed, and two to modify the completion as it is happening. <DL COMPACT> <DT><CODE>compgen</CODE> -<DD><A NAME="IDX563"></A> +<DD><A NAME="IDX568"></A> <TABLE><tr><td> </td><td class=example><pre><CODE>compgen [<VAR>option</VAR>] [<VAR>word</VAR>]</CODE> </pre></td></tr></table><P> @@ -12341,7 +12436,7 @@ matches were generated. </P><P> <DT><CODE>complete</CODE> -<DD><A NAME="IDX564"></A> +<DD><A NAME="IDX569"></A> <TABLE><tr><td> </td><td class=example><pre><CODE>complete [-abcdefgjksuv] [-o <VAR>comp-option</VAR>] [-DE] [-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> @@ -12588,7 +12683,7 @@ an error occurs adding a completion specification. </P><P> <DT><CODE>compopt</CODE> -<DD><A NAME="IDX565"></A> +<DD><A NAME="IDX570"></A> <TABLE><tr><td> </td><td class=example><pre><CODE>compopt</CODE> [-o <VAR>option</VAR>] [-DE] [+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-executing completion if no <VAR>name</VAR>s @@ -12755,7 +12850,7 @@ An older version of the bash_completion package is distributed with bash in the <TT>`examples/complete'</TT> subdirectory. </P><P> -<A NAME="IDX566"></A> +<A NAME="IDX571"></A> </P><P> <A NAME="Using History Interactively"></A> @@ -12901,7 +12996,7 @@ history list and history file. <DL COMPACT> <DT><CODE>fc</CODE> -<DD><A NAME="IDX567"></A> +<DD><A NAME="IDX572"></A> <TABLE><tr><td> </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> @@ -12938,7 +13033,7 @@ and typing <SAMP>`r'</SAMP> re-executes the last command (see section <A HREF="b </P><P> <DT><CODE>history</CODE> -<DD><A NAME="IDX568"></A> +<DD><A NAME="IDX573"></A> <TABLE><tr><td> </td><td class=example><pre>history [<VAR>n</VAR>] history -c history -d <VAR>offset</VAR> @@ -13113,7 +13208,7 @@ An event designator is a reference to a command line entry in the history list. Unless the reference is absolute, events are relative to the current position in the history list. -<A NAME="IDX569"></A> +<A NAME="IDX574"></A> </P><P> <DL COMPACT> @@ -13473,9 +13568,9 @@ to do them, and mail diffs or instructions to considered for the next release. </P><P> -The file <TT>`configure.in'</TT> is used to create <CODE>configure</CODE> +The file <TT>`configure.ac'</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 +<TT>`configure.ac'</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. @@ -13841,7 +13936,8 @@ 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 +All of the following options except for <SAMP>`disabled-builtins'</SAMP>, +<SAMP>`directpand-default'</SAMP>, and <SAMP>`xpg-echo-default'</SAMP> are enabled by default, unless the operating system does not provide the necessary support. @@ -13912,6 +14008,12 @@ This allows pipelines as well as shell builtins and functions to be timed. <DD>Include support for the bash debugger (distributed separately). <P> +<DT><CODE>--enable-direxpand-default</CODE> +<DD>Cause the <CODE>direxpand</CODE> shell option (see section <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>) +to be enabled by default when the shell starts. +It is normally disabled by default. +<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 @@ -14096,7 +14198,7 @@ the template it provides for filing a bug report. </P><P> Please send all reports concerning this manual to -<A HREF="mailto:chet.ramey@case.edu">chet.ramey@case.edu</A>. +<A HREF="mailto:bug-bash@gnu.org">bug-bash@gnu.org</A>. </P><P> <A NAME="Major Differences From The Bourne Shell"></A> @@ -14316,6 +14418,12 @@ This closes a longstanding shell security hole. <P> <LI> +The filename expansion bracket expression code uses <SAMP>`!'</SAMP> and <SAMP>`^'</SAMP> +to negate the set of characters between the brackets. +The Bourne shell uses only <SAMP>`!'</SAMP>. +<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#SEC37">3.5.8 Filename Expansion</A>). @@ -15374,7 +15482,7 @@ to permit their use in free software. <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX89"><CODE>alias</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">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#IDX305"><CODE>bg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX309"><CODE>bg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">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#SEC61">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#SEC60">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#SEC61">4.2 Bash Builtin Commands</A></TD></TR> @@ -15383,15 +15491,15 @@ to permit their use in free software. <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX92"><CODE>caller</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">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#SEC60">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#SEC61">4.2 Bash Builtin Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX563"><CODE>compgen</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX564"><CODE>complete</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX565"><CODE>compopt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX568"><CODE>compgen</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX569"><CODE>complete</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX570"><CODE>compopt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">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#SEC60">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#SEC61">4.2 Bash Builtin Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX302"><CODE>dirs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX310"><CODE>disown</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX306"><CODE>dirs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX314"><CODE>disown</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">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#SEC61">4.2 Bash Builtin Commands</A></TD></TR> @@ -15402,8 +15510,8 @@ to permit their use in free software. <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX76"><CODE>export</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">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#IDX567"><CODE>fc</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC123">9.2 Bash History Builtins</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX306"><CODE>fg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX572"><CODE>fc</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC123">9.2 Bash History Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX310"><CODE>fg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">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#SEC60">4.1 Bourne Shell Builtins</A></TD></TR> @@ -15411,13 +15519,13 @@ to permit their use in free software. <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#SEC60">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#SEC61">4.2 Bash Builtin Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX568"><CODE>history</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC123">9.2 Bash History Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX573"><CODE>history</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC123">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#IDX307"><CODE>jobs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX311"><CODE>jobs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">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#IDX308"><CODE>kill</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX312"><CODE>kill</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">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#SEC61">4.2 Bash Builtin Commands</A></TD></TR> @@ -15428,9 +15536,9 @@ to permit their use in free software. <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX101"><CODE>mapfile</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">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#IDX303"><CODE>popd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX307"><CODE>popd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">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#SEC61">4.2 Bash Builtin Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX304"><CODE>pushd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX308"><CODE>pushd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">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#SEC60">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> @@ -15444,7 +15552,7 @@ to permit their use in free software. <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX82"><CODE>shift</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">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#SEC64">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#SEC61">4.2 Bash Builtin Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX311"><CODE>suspend</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX315"><CODE>suspend</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">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#SEC60">4.1 Bourne Shell Builtins</A></TD></TR> @@ -15460,7 +15568,7 @@ to permit their use in free software. <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX88"><CODE>unset</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">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#IDX309"><CODE>wait</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX313"><CODE>wait</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">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: </th><td><A HREF="bashref.html#bt_." style="text-decoration:none"><b>.</b></A> @@ -15750,8 +15858,8 @@ to permit their use in free software. <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX63"><CODE>_</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">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#IDX312"><CODE>auto_resume</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX313"><CODE>auto_resume</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX316"><CODE>auto_resume</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX317"><CODE>auto_resume</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC95">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#SEC68">5.2 Bash Variables</A></TD></TR> @@ -15766,251 +15874,256 @@ to permit their use in free software. <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX145"><CODE>BASH_CMDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX146"><CODE>BASH_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX147"><CODE>BASH_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX148"><CODE>BASH_ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX149"><CODE>BASH_ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX150"><CODE>BASH_EXECUTION_STRING</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX151"><CODE>BASH_EXECUTION_STRING</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX152"><CODE>BASH_LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX153"><CODE>BASH_LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX154"><CODE>BASH_REMATCH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX155"><CODE>BASH_REMATCH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX156"><CODE>BASH_SOURCE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX157"><CODE>BASH_SOURCE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX158"><CODE>BASH_SUBSHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX159"><CODE>BASH_SUBSHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX160"><CODE>BASH_VERSINFO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX161"><CODE>BASH_VERSINFO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX162"><CODE>BASH_VERSION</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX163"><CODE>BASH_VERSION</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX164"><CODE>BASH_XTRACEFD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX165"><CODE>BASH_XTRACEFD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX148"><CODE>BASH_COMPAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX149"><CODE>BASH_COMPAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX150"><CODE>BASH_ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX151"><CODE>BASH_ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX152"><CODE>BASH_EXECUTION_STRING</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX153"><CODE>BASH_EXECUTION_STRING</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX154"><CODE>BASH_LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX155"><CODE>BASH_LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX156"><CODE>BASH_REMATCH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX157"><CODE>BASH_REMATCH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX158"><CODE>BASH_SOURCE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX159"><CODE>BASH_SOURCE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX160"><CODE>BASH_SUBSHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX161"><CODE>BASH_SUBSHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX162"><CODE>BASH_VERSINFO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX163"><CODE>BASH_VERSINFO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX164"><CODE>BASH_VERSION</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX165"><CODE>BASH_VERSION</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX166"><CODE>BASH_XTRACEFD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX167"><CODE>BASH_XTRACEFD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX134"><CODE>BASHOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX135"><CODE>BASHOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX136"><CODE>BASHPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX137"><CODE>BASHPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX319"><CODE>bell-style</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX320"><CODE>bind-tty-special-chars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX323"><CODE>bell-style</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX324"><CODE>bind-tty-special-chars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#SEC67">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#SEC67">5.1 Bourne Shell Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX321"><CODE>colored-stats</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX166"><CODE>COLUMNS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX167"><CODE>COLUMNS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX322"><CODE>comment-begin</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX168"><CODE>COMP_CWORD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX169"><CODE>COMP_CWORD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX176"><CODE>COMP_KEY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX177"><CODE>COMP_KEY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX170"><CODE>COMP_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX171"><CODE>COMP_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX172"><CODE>COMP_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX173"><CODE>COMP_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX174"><CODE>COMP_TYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX175"><CODE>COMP_TYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX178"><CODE>COMP_WORDBREAKS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX179"><CODE>COMP_WORDBREAKS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX180"><CODE>COMP_WORDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX181"><CODE>COMP_WORDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX323"><CODE>completion-display-width</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX324"><CODE>completion-ignore-case</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX325"><CODE>completion-map-case</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX326"><CODE>completion-prefix-display-length</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX327"><CODE>completion-query-items</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX182"><CODE>COMPREPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX183"><CODE>COMPREPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX328"><CODE>convert-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX184"><CODE>COPROC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX185"><CODE>COPROC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX168"><CODE>CHILD_MAX</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX169"><CODE>CHILD_MAX</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX325"><CODE>colored-stats</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX170"><CODE>COLUMNS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX171"><CODE>COLUMNS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX326"><CODE>comment-begin</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX172"><CODE>COMP_CWORD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX173"><CODE>COMP_CWORD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX180"><CODE>COMP_KEY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX181"><CODE>COMP_KEY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX174"><CODE>COMP_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX175"><CODE>COMP_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX176"><CODE>COMP_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX177"><CODE>COMP_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX178"><CODE>COMP_TYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX179"><CODE>COMP_TYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX182"><CODE>COMP_WORDBREAKS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX183"><CODE>COMP_WORDBREAKS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX184"><CODE>COMP_WORDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX185"><CODE>COMP_WORDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX327"><CODE>completion-display-width</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX328"><CODE>completion-ignore-case</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX329"><CODE>completion-map-case</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX330"><CODE>completion-prefix-display-length</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX331"><CODE>completion-query-items</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX186"><CODE>COMPREPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX187"><CODE>COMPREPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX332"><CODE>convert-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX188"><CODE>COPROC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX189"><CODE>COPROC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</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#IDX186"><CODE>DIRSTACK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX187"><CODE>DIRSTACK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX329"><CODE>disable-completion</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX190"><CODE>DIRSTACK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX191"><CODE>DIRSTACK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX333"><CODE>disable-completion</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#IDX330"><CODE>editing-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX188"><CODE>EMACS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX189"><CODE>EMACS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX331"><CODE>enable-keypad</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX190"><CODE>ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX191"><CODE>ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX192"><CODE>EUID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX193"><CODE>EUID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX332"><CODE>expand-tilde</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX334"><CODE>editing-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX192"><CODE>EMACS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX193"><CODE>EMACS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX335"><CODE>enable-keypad</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX194"><CODE>ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX195"><CODE>ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX196"><CODE>EUID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX197"><CODE>EUID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX336"><CODE>expand-tilde</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#IDX194"><CODE>FCEDIT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX195"><CODE>FCEDIT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX196"><CODE>FIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX197"><CODE>FIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX198"><CODE>FUNCNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX199"><CODE>FUNCNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX200"><CODE>FUNCNEST</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX201"><CODE>FUNCNEST</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX198"><CODE>FCEDIT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX199"><CODE>FCEDIT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX200"><CODE>FIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX201"><CODE>FIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX202"><CODE>FUNCNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX203"><CODE>FUNCNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX204"><CODE>FUNCNEST</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX205"><CODE>FUNCNEST</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#IDX202"><CODE>GLOBIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX203"><CODE>GLOBIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX204"><CODE>GROUPS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX205"><CODE>GROUPS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX206"><CODE>GLOBIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX207"><CODE>GLOBIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX208"><CODE>GROUPS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX209"><CODE>GROUPS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#IDX206"><CODE>histchars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX207"><CODE>histchars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX208"><CODE>HISTCMD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX209"><CODE>HISTCMD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX210"><CODE>HISTCONTROL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX211"><CODE>HISTCONTROL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX212"><CODE>HISTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX213"><CODE>HISTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX214"><CODE>HISTFILESIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX215"><CODE>HISTFILESIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX216"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX217"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX333"><CODE>history-preserve-point</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX334"><CODE>history-size</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX218"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX219"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX220"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX221"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX210"><CODE>histchars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX211"><CODE>histchars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX212"><CODE>HISTCMD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX213"><CODE>HISTCMD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX214"><CODE>HISTCONTROL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX215"><CODE>HISTCONTROL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX216"><CODE>HISTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX217"><CODE>HISTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX218"><CODE>HISTFILESIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX219"><CODE>HISTFILESIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX220"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX221"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX337"><CODE>history-preserve-point</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX338"><CODE>history-size</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX222"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX223"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX224"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX225"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#SEC67">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#SEC67">5.1 Bourne Shell Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX335"><CODE>horizontal-scroll-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX222"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX223"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX224"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX225"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX226"><CODE>HOSTTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX227"><CODE>HOSTTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX339"><CODE>horizontal-scroll-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX226"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX227"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX228"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX229"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX230"><CODE>HOSTTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX231"><CODE>HOSTTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#SEC67">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#SEC67">5.1 Bourne Shell Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX228"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX229"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX336"><CODE>input-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX230"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX231"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX338"><CODE>isearch-terminators</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX232"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX233"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX340"><CODE>input-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX234"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX235"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX342"><CODE>isearch-terminators</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#IDX339"><CODE>keymap</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX343"><CODE>keymap</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#IDX232"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX233"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX234"><CODE>LC_ALL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX235"><CODE>LC_ALL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX236"><CODE>LC_COLLATE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX237"><CODE>LC_COLLATE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX238"><CODE>LC_CTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX239"><CODE>LC_CTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX236"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX237"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX238"><CODE>LC_ALL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX239"><CODE>LC_ALL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX240"><CODE>LC_COLLATE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX241"><CODE>LC_COLLATE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX242"><CODE>LC_CTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX243"><CODE>LC_CTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#IDX240"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX241"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX242"><CODE>LC_NUMERIC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX243"><CODE>LC_NUMERIC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX244"><CODE>LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX245"><CODE>LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX246"><CODE>LINES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX247"><CODE>LINES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX244"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX245"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX246"><CODE>LC_NUMERIC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX247"><CODE>LC_NUMERIC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX248"><CODE>LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX249"><CODE>LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX250"><CODE>LINES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX251"><CODE>LINES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#IDX248"><CODE>MACHTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX249"><CODE>MACHTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX252"><CODE>MACHTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX253"><CODE>MACHTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#SEC67">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#SEC67">5.1 Bourne Shell Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX250"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX251"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX254"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX255"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#SEC67">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#SEC67">5.1 Bourne Shell Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX252"><CODE>MAPFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX253"><CODE>MAPFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX340"><CODE>mark-modified-lines</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX341"><CODE>mark-symlinked-directories</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX342"><CODE>match-hidden-files</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX343"><CODE>menu-complete-display-prefix</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX337"><CODE>meta-flag</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX256"><CODE>MAPFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX257"><CODE>MAPFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX344"><CODE>mark-modified-lines</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX345"><CODE>mark-symlinked-directories</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX346"><CODE>match-hidden-files</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX347"><CODE>menu-complete-display-prefix</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX341"><CODE>meta-flag</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#IDX254"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX255"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX258"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX259"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#SEC67">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#SEC67">5.1 Bourne Shell Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX256"><CODE>OPTERR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX257"><CODE>OPTERR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX260"><CODE>OPTERR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX261"><CODE>OPTERR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#SEC67">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#SEC67">5.1 Bourne Shell Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX258"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX259"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX344"><CODE>output-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX262"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX263"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX348"><CODE>output-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#IDX345"><CODE>page-completions</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX349"><CODE>page-completions</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#SEC67">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#SEC67">5.1 Bourne Shell Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX260"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX261"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX262"><CODE>POSIXLY_CORRECT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX263"><CODE>POSIXLY_CORRECT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX264"><CODE>PPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX265"><CODE>PPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX266"><CODE>PROMPT_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX267"><CODE>PROMPT_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX268"><CODE>PROMPT_DIRTRIM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX269"><CODE>PROMPT_DIRTRIM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX264"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX265"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX266"><CODE>POSIXLY_CORRECT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX267"><CODE>POSIXLY_CORRECT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX268"><CODE>PPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX269"><CODE>PPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX270"><CODE>PROMPT_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX271"><CODE>PROMPT_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX272"><CODE>PROMPT_DIRTRIM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX273"><CODE>PROMPT_DIRTRIM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#SEC67">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#SEC67">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#SEC67">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#SEC67">5.1 Bourne Shell Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX270"><CODE>PS3</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX271"><CODE>PS3</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX272"><CODE>PS4</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX273"><CODE>PS4</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX274"><CODE>PWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX275"><CODE>PWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX274"><CODE>PS3</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX275"><CODE>PS3</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX276"><CODE>PS4</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX277"><CODE>PS4</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX278"><CODE>PWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX279"><CODE>PWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#IDX276"><CODE>RANDOM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX277"><CODE>RANDOM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX278"><CODE>READLINE_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX279"><CODE>READLINE_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX280"><CODE>READLINE_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX281"><CODE>READLINE_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX282"><CODE>REPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX283"><CODE>REPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX346"><CODE>revert-all-at-newline</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX280"><CODE>RANDOM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX281"><CODE>RANDOM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX282"><CODE>READLINE_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX283"><CODE>READLINE_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX284"><CODE>READLINE_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX285"><CODE>READLINE_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX286"><CODE>REPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX287"><CODE>REPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX350"><CODE>revert-all-at-newline</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#IDX284"><CODE>SECONDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX285"><CODE>SECONDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX286"><CODE>SHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX287"><CODE>SHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX288"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX289"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX290"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX291"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX347"><CODE>show-all-if-ambiguous</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX348"><CODE>show-all-if-unmodified</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX349"><CODE>skip-completed-text</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX288"><CODE>SECONDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX289"><CODE>SECONDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX290"><CODE>SHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX291"><CODE>SHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX292"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX293"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX294"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX295"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX351"><CODE>show-all-if-ambiguous</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX352"><CODE>show-all-if-unmodified</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX353"><CODE>show-mode-in-prompt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX354"><CODE>skip-completed-text</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#IDX292"><CODE>TIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX293"><CODE>TIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX294"><CODE>TMOUT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX295"><CODE>TMOUT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX296"><CODE>TMPDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX297"><CODE>TMPDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX296"><CODE>TIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX297"><CODE>TIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX298"><CODE>TMOUT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX299"><CODE>TMOUT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX300"><CODE>TMPDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX301"><CODE>TMPDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#IDX298"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX299"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX302"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX303"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">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#IDX350"><CODE>visible-stats</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX355"><CODE>visible-stats</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">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: </th><td><A HREF="bashref.html#vr_!" style="text-decoration:none"><b>!</b></A> @@ -16132,256 +16245,256 @@ to permit their use in free software. <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#IDX509"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX510"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX371"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX372"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX553"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX554"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX514"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX515"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX376"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX377"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX558"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX559"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">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#IDX357"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX358"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX403"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX404"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX425"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX426"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX433"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX434"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX361"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX362"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX377"><CODE>beginning-of-history (M-&#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX378"><CODE>beginning-of-history (M-&#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX351"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX352"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX362"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX363"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX408"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX409"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX430"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX431"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX438"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX439"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX366"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX367"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX382"><CODE>beginning-of-history (M-&#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX383"><CODE>beginning-of-history (M-&#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">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-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX357"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">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#IDX503"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX504"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX419"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX420"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX525"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX526"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX527"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX528"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX367"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX368"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX461"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX462"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX489"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX490"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX473"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX474"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX485"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX486"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX497"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX498"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX477"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX478"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX481"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX482"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX449"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX450"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX451"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX452"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX447"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX448"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX508"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX509"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX424"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX425"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX530"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX531"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX532"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX533"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX372"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX373"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX466"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX467"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX494"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX495"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX478"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX479"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX490"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX491"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX502"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX503"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX482"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX483"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX486"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX487"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX454"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX455"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX456"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX457"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX452"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX453"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">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#IDX495"><CODE>dabbrev-expand ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX496"><CODE>dabbrev-expand ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX401"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX402"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX471"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX472"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX443"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX444"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX457"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX458"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX545"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX546"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX511"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX512"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX417"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX418"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX533"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX534"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX537"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX538"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX535"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX536"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX493"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX494"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX500"><CODE>dabbrev-expand ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX501"><CODE>dabbrev-expand ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX406"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX407"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX476"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX477"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX448"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX449"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX462"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX463"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX550"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX551"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX516"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX517"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX422"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX423"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX538"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX539"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX542"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX543"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX540"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX541"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX498"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX499"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">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#IDX561"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX562"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX501"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX502"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX379"><CODE>end-of-history (M-&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX380"><CODE>end-of-history (M-&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX353"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX354"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX523"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX524"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX566"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX567"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX506"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX507"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX384"><CODE>end-of-history (M-&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX385"><CODE>end-of-history (M-&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">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-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX359"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX528"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX529"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">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#IDX405"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX406"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX355"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX356"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX383"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX384"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX359"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX360"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX410"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX411"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX360"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX361"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX388"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX389"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX364"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX365"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">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#IDX539"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX540"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX541"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX542"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX543"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX544"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX544"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX545"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX546"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX547"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX548"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX549"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">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#IDX555"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX556"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX549"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX550"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX391"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX392"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX389"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX390"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX395"><CODE>history-substr-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX396"><CODE>history-substr-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX393"><CODE>history-substr-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX394"><CODE>history-substr-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX560"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX561"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX554"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX555"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX396"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX397"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX394"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX395"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX400"><CODE>history-substr-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX401"><CODE>history-substr-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX398"><CODE>history-substr-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX399"><CODE>history-substr-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">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#IDX531"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX532"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX465"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX466"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX557"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX558"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX536"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX537"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX470"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX471"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX562"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX563"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">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#IDX423"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX424"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX445"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX446"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX429"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX430"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX431"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX432"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX428"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX429"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX450"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX451"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX434"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX435"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX436"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX437"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">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#IDX551"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX552"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX467"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX468"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX469"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX470"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX556"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX557"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX472"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX473"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX474"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX475"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">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#IDX375"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX376"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX387"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX388"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX385"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX386"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX380"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX381"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX392"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX393"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX390"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX391"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">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#IDX559"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX560"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX421"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX422"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX564"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX565"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX426"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX427"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">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#IDX491"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX492"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX463"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX464"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX475"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX476"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX487"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX488"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX479"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX480"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX483"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX484"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX513"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX514"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX373"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX374"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX505"><CODE>print-last-kbd-macro ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX506"><CODE>print-last-kbd-macro ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX496"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX497"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX468"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX469"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX480"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX481"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX492"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX493"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX484"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX485"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX488"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX489"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX518"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX519"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX378"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX379"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX510"><CODE>print-last-kbd-macro ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX511"><CODE>print-last-kbd-macro ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</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#IDX407"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX408"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX412"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX413"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">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#IDX507"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX508"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX369"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX370"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX381"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX382"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX517"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX518"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX512"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX513"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX374"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX375"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX386"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX387"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX522"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX523"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">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#IDX409"><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX410"><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX521"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX522"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX437"><CODE>shell-backward-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX438"><CODE>shell-backward-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX365"><CODE>shell-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX366"><CODE>shell-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX547"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX548"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX363"><CODE>shell-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX364"><CODE>shell-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX435"><CODE>shell-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX436"><CODE>shell-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX529"><CODE>skip-csi-sequence ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX530"><CODE>skip-csi-sequence ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX499"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX500"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX414"><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX415"><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX526"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX527"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX442"><CODE>shell-backward-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX443"><CODE>shell-backward-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX370"><CODE>shell-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX371"><CODE>shell-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX552"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX553"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX368"><CODE>shell-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX369"><CODE>shell-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX440"><CODE>shell-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX441"><CODE>shell-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX534"><CODE>skip-csi-sequence ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX535"><CODE>skip-csi-sequence ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX504"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX505"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">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#IDX519"><CODE>tilde-expand (M-&#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX520"><CODE>tilde-expand (M-&#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX411"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX412"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX413"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX414"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX524"><CODE>tilde-expand (M-&#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX525"><CODE>tilde-expand (M-&#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX416"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX417"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX418"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX419"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">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#IDX515"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX516"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX459"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX460"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX441"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX442"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX427"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX428"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX439"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX440"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX415"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX416"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX520"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX521"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX464"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX465"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX446"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX447"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX432"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX433"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX444"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX445"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX420"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX421"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">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#IDX453"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX454"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX399"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX400"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX397"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX398"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX455"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX456"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX458"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX459"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX404"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX405"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX402"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX403"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX460"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX461"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">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: </th><td><A HREF="bashref.html#fn_A" style="text-decoration:none"><b>A</b></A> @@ -16556,17 +16669,17 @@ to permit their use in free software. <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#SEC123">history builtins</A></TD><TD valign=top><A HREF="bashref.html#SEC123">9.2 Bash History Builtins</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX569">history events</A></TD><TD valign=top><A HREF="bashref.html#SEC125">9.3.1 Event Designators</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX574">history events</A></TD><TD valign=top><A HREF="bashref.html#SEC125">9.3.1 Event Designators</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC124">history expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC124">9.3 History Expansion</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC122">history list</A></TD><TD valign=top><A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX566">History, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC120">8.8 A Programmable Completion Example</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX571">History, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC120">8.8 A Programmable Completion Example</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#SEC104">initialization file, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3 Readline Init File</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC129">installation</A></TD><TD valign=top><A HREF="bashref.html#SEC129">10.1 Basic Installation</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC98">interaction, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC98">8.2 Readline Interaction</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX301">interactive shell</A></TD><TD valign=top><A HREF="bashref.html#SEC70">6.1 Invoking Bash</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX305">interactive shell</A></TD><TD valign=top><A HREF="bashref.html#SEC70">6.1 Invoking Bash</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC79">interactive shell</A></TD><TD valign=top><A HREF="bashref.html#SEC79">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> @@ -16576,12 +16689,12 @@ to permit their use in free software. <TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC93">job control</A></TD><TD valign=top><A HREF="bashref.html#SEC93">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#IDX317">kill ring</A></TD><TD valign=top><A HREF="bashref.html#SEC101">8.2.3 Readline Killing Commands</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX315">killing text</A></TD><TD valign=top><A HREF="bashref.html#SEC101">8.2.3 Readline Killing Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX321">kill ring</A></TD><TD valign=top><A HREF="bashref.html#SEC101">8.2.3 Readline Killing Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX319">killing text</A></TD><TD valign=top><A HREF="bashref.html#SEC101">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#IDX300">login shell</A></TD><TD valign=top><A HREF="bashref.html#SEC70">6.1 Invoking Bash</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX304">login shell</A></TD><TD valign=top><A HREF="bashref.html#SEC70">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#SEC38">matching, pattern</A></TD><TD valign=top><A HREF="bashref.html#SEC38">3.5.8.1 Pattern Matching</A></TD></TR> @@ -16616,7 +16729,7 @@ to permit their use in free software. <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#IDX314">Readline, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX318">Readline, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR> <TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC40">redirection</A></TD><TD valign=top><A HREF="bashref.html#SEC40">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#SEC90">restricted shell</A></TD><TD valign=top><A HREF="bashref.html#SEC90">6.10 The Restricted Shell</A></TD></TR> @@ -16642,14 +16755,14 @@ to permit their use in free software. <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#SEC26">variable, shell</A></TD><TD valign=top><A HREF="bashref.html#SEC26">3.4 Shell Parameters</A></TD></TR> -<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX318">variables, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX322">variables, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC105">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#SEC36">word splitting</A></TD><TD valign=top><A HREF="bashref.html#SEC36">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#IDX316">yanking text</A></TD><TD valign=top><A HREF="bashref.html#SEC101">8.2.3 Readline Killing Commands</A></TD></TR> +<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX320">yanking text</A></TD><TD valign=top><A HREF="bashref.html#SEC101">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: </th><td><A HREF="bashref.html#cp_A" style="text-decoration:none"><b>A</b></A> @@ -17089,7 +17202,7 @@ to permit their use in free software. <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>July, 16 2012</I> +This document was generated by <I>Chet Ramey</I> on <I>January, 11 2013</I> using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html "><I>texi2html</I></A> <P></P> @@ -17251,7 +17364,7 @@ the following structure: <BR> <FONT SIZE="-1"> This document was generated -by <I>Chet Ramey</I> on <I>July, 16 2012</I> +by <I>Chet Ramey</I> on <I>January, 11 2013</I> using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html "><I>texi2html</I></A> diff --git a/doc/bashref.info b/doc/bashref.info index a42831b4..0e82fceb 100644 --- a/doc/bashref.info +++ b/doc/bashref.info @@ -1,17 +1,13 @@ This is bashref.info, produced by makeinfo version 4.13 from -/usr/homes/chet/src/bash/src/doc/bashref.texi. +/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.2, 14 July 2012). +the Bash shell (version 4.2, 8 January 2013). - This is Edition 4.2, last updated 14 July 2012, of `The GNU Bash + This is Edition 4.2, last updated 8 January 2013, of `The GNU Bash Reference Manual', for `Bash', Version 4.2. - Copyright (C) 1988-2012 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 -preserved on all copies. + Copyright (C) 1988-2013 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, @@ -20,7 +16,6 @@ preserved on all copies. no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". - INFO-DIR-SECTION Basics START-INFO-DIR-ENTRY * Bash: (bash). The GNU Bourne-Again SHell. @@ -33,9 +28,10 @@ Bash Features ************* This text is a brief description of the features that are present in -the Bash shell (version 4.2, 14 July 2012). +the Bash shell (version 4.2, 8 January 2013). The Bash home page is +`http://www.gnu.org/software/bash/'. - This is Edition 4.2, last updated 14 July 2012, of `The GNU Bash + This is Edition 4.2, last updated 8 January 2013, of `The GNU Bash Reference Manual', for `Bash', Version 4.2. Bash contains features that appear in other popular shells, and some @@ -885,13 +881,14 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre When the `==' and `!=' operators are used, the string to the right of the operator is considered a pattern and matched according to - the rules described below in *note Pattern Matching::. If the - shell option `nocasematch' (see the description of `shopt' in - *note The Shopt Builtin::) is enabled, the match is performed - without regard to the case of alphabetic characters. The return - value is 0 if the string matches (`==') or does not match - (`!=')the pattern, and 1 otherwise. Any part of the pattern may - be quoted to force the quoted portion to be matched as a string. + the rules described below in *note Pattern Matching::. The `=' + operator is identical to `=='. If the shell option `nocasematch' + (see the description of `shopt' in *note The Shopt Builtin::) is + enabled, the match is performed without regard to the case of + alphabetic characters. The return value is 0 if the string + matches (`==') or does not match (`!=')the pattern, and 1 + otherwise. Any part of the pattern may be quoted to force the + quoted portion to be matched as a string. An additional binary operator, `=~', is available, with the same precedence as `==' and `!='. When it is used, the string to the @@ -1053,7 +1050,9 @@ not available in subshells. available as the value of the variable `NAME'_PID. The `wait' builtin command may be used to wait for the coprocess to terminate. - The return status of a coprocess is the exit status of COMMAND. + Since the coprocess is created as an asynchronous command, the +`coproc' command always returns success. The return status of a +coprocess is the exit status of COMMAND. File: bashref.info, Node: GNU Parallel, Prev: Coprocesses, Up: Shell Commands @@ -1463,10 +1462,10 @@ may be prefixed with `0' to force each term to have the same width. When either X or Y begins with a zero, the shell attempts to force all generated terms to contain the same number of digits, zero-padding where necessary. When characters are supplied, the expression expands -to each character lexicographically between X and Y, inclusive. Note -that both X and Y must be of the same type. When the increment is -supplied, it is used as the difference between each term. The default -increment is 1 or -1 as appropriate. +to each character lexicographically between X and Y, inclusive, using +the default C locale. Note that both X and Y must be of the same type. +When the increment is supplied, it is used as the difference between +each term. The default increment is 1 or -1 as appropriate. Brace expansion is performed before any other expansions, and any characters special to other expansions are preserved in the result. It @@ -1772,7 +1771,11 @@ omitted, the operator tests only for existence. substituted. If PARAMETER is `*' or `@', the value substituted is the number of positional parameters. If PARAMETER is an array name subscripted by `*' or `@', the value substituted is the - number of elements in the array. + number of elements in the array. If PARAMETER is an indexed array + name subscripted by a negative number, that number is interpreted + as relative to one greater than the maximum index of PARAMETER, so + negative indices count back from the end of the array, and an + index of -1 references the last element. `${PARAMETER#WORD}' `${PARAMETER##WORD}' @@ -2022,7 +2025,7 @@ characters must be quoted if they are to be matched literally. `[...]' Matches any one of the enclosed characters. A pair of characters separated by a hyphen denotes a RANGE EXPRESSION; any character - that sorts between those two characters, inclusive, using the + that falls between those two characters, inclusive, using the current locale's collating sequence and character set, is matched. If the first character following the `[' is a `!' or a `^' then any character not enclosed is matched. A `-' may be matched by @@ -2971,11 +2974,11 @@ standard. status is zero unless N is greater than `$#' or less than zero, non-zero otherwise. -`test[B' +`test' `[' test EXPR - Evaluate a conditional expression EXPR and return a status of 0 + Evaluate a conditional express ion EXPR and return a status of 0 (true) or 1 (false). Each operator and operand must be a separate argument. Expressions are composed of the primaries described below in *note Bash Conditional Expressions::. `test' does not @@ -3084,14 +3087,16 @@ standard. builtins finishes executing. If a SIGSPEC is `ERR', the command ARG is executed whenever a - simple command has a non-zero exit status, subject to the - following conditions. The `ERR' trap is not executed if the + pipeline (which may consist of a single simple command), a list, + or a compound command returns a non-zero exit status, subject to + the following conditions. The `ERR' trap is not executed if the failed command is part of the command list immediately following an `until' or `while' keyword, part of the test following the `if' or `elif' reserved words, part of a command executed in a `&&' or - `||' list, or if the command's return status is being inverted - using `!'. These are the same conditions obeyed by the `errexit' - option. + `||' list except the command following the final `&&' or `||', any + command in a pipeline but the last, or if the command's return + status is being inverted using `!'. These are the same conditions + obeyed by the `errexit' (`-e') option. Signals ignored upon entry to the shell cannot be trapped or reset. Trapped signals that are not being ignored are reset to their @@ -3591,7 +3596,9 @@ POSIX standard. corresponding ARGUMENT is an integer representing the number of seconds since the epoch. Two special argument values may be used: -1 represents the current time, and -2 represents - the time the shell was invoked. + the time the shell was invoked. If no argument is specified, + conversion behaves as if -1 had been given. This is an + exception to the usual `printf' behavior. Arguments to non-string format specifiers are treated as C language constants, except that a leading plus or minus sign is @@ -3675,12 +3682,14 @@ POSIX standard. `-t TIMEOUT' Cause `read' to time out and return failure if a complete - line of input is not read within TIMEOUT seconds. TIMEOUT - may be a decimal number with a fractional portion following - the decimal point. This option is only effective if `read' - is reading input from a terminal, pipe, or other special - file; it has no effect when reading from regular files. If - TIMEOUT is 0, `read' returns immediately, without trying to + line of input (or a specified number of characters) is not + read within TIMEOUT seconds. TIMEOUT may be a decimal + number with a fractional portion following the decimal point. + This option is only effective if `read' is reading input from + a terminal, pipe, or other special file; it has no effect + when reading from regular files. If `read' times out, `read' + saves any partial input read into the specified variable NAME. + If TIMEOUT is 0, `read' returns immediately, without trying to read and data. The exit status is 0 if input is available on the specified file descriptor, non-zero otherwise. The exit status is greater than 128 if the timeout is exceeded. @@ -3903,12 +3912,15 @@ parameters, or to display the names and values of shell variables. Environment::), and may cause subshells to exit before executing all the commands in the subshell. - If a shell function executes in a context where `-e' is being - ignored, even if `-e' is set, none of the commands executed - within the function body will be affected by the `-e' setting. - If a shell function sets `-e' while executing in a context - where `-e' is ignored, that setting will not have any effect - until the command containing the function call completes. + If a compound command or shell function executes in a context + where `-e' is being ignored, none of the commands executed + within the compound command or function body will be affected + by the `-e' setting, even if `-e' is set and a command + returns a failure status. If a compound command or shell + function sets `-e' while executing in a context where `-e' is + ignored, that setting will not have any effect until the + compound command or the command containing the function call + completes. `-f' Disable filename expansion (globbing). @@ -4243,6 +4255,10 @@ This builtin allows you to change additional shell optional behavior. This is the behavior of POSIX mode through version 4.1. The default Bash behavior remains as in previous versions. + `compat42' + If set, Bash does not process the replacement string in the + pattern substitution word expansion using quote removal. + `complete_fullquote' If set, Bash quotes all shell metacharacters in filenames and directory names when performing completion. If not set, Bash @@ -4623,6 +4639,21 @@ Variables::). 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. +`BASH_COMPAT' + The value is used to set the shell's compatibility level. *Note + The Shopt Builtin::, for a description of the various compatibility + levels and their effects. The value may be a decimal number + (e.g., 4.2) or an integer (e.g., 42) corresponding to the desired + compatibility level. If `BASH_COMPAT' is unset or set to the + empty string, the compatibility level is set to the default for + the current version. If `BASH_COMPAT' is set to a value that is + not one of the valid compatibility levels, the shell prints an + error message and sets the compatibility level to the default for + the current version. The valid compatibility levels correspond to + the compatibility options accepted by the `shopt' builtin + described above (for example, COMPAT42 means that 4.2 and 42 are + valid values). The current version is also a valid value. + `BASH_ENV' 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 @@ -4697,10 +4728,18 @@ Variables::). `BASH_XTRACEFD' to 2 (the standard error file descriptor) and then unsetting it will result in the standard error being closed. +`CHILD_MAX' + Set the number of exited child status values for the shell to + remember. Bash will not allow this value to be decreased below a + POSIX-mandated minimum, and there is a maximum value (currently + 8192) that this may not exceed. The minimum value is + system-dependent. + `COLUMNS' Used by the `select' command to determine the terminal width when - printing selection lists. Automatically set by an interactive - shell upon receipt of a `SIGWINCH'. + printing selection lists. Automatically set if the `checkwinsize' + option is enabled (*note The Shopt Builtin::), or in an + interactive shell upon receipt of a `SIGWINCH'. `COMP_CWORD' An index into `${COMP_WORDS}' of the word containing the current @@ -4978,8 +5017,9 @@ Variables::). `LINES' Used by the `select' command to determine the column length for - printing selection lists. Automatically set by an interactive - shell upon receipt of a `SIGWINCH'. + printing selection lists. Automatically set if the `checkwinsize' + option is enabled (*note The Shopt Builtin::), or in an + interactive shell upon receipt of a `SIGWINCH'. `MACHTYPE' A string that fully describes the system type on which Bash is @@ -5670,6 +5710,9 @@ link itself. True if the shell variable VARNAME is set (has been assigned a value). +`-R VARNAME' + True if the shell variable VARNAME is set and is a name reference. + `-z STRING' True if the length of STRING is zero. @@ -5679,8 +5722,11 @@ link itself. `STRING1 == STRING2' `STRING1 = STRING2' - True if the strings are equal. `=' should be used with the `test' - command for POSIX conformance. + True if the strings are equal. When used with the `[[' command, + this performs pattern matching as described above (*note + Conditional Constructs::). + + `=' should be used with the `test' command for POSIX conformance. `STRING1 != STRING2' True if the strings are not equal. @@ -5893,6 +5939,11 @@ index assigned to by the statement plus one. Indexing starts at zero. array elements may be assigned to using the `NAME[SUBSCRIPT]=VALUE' syntax introduced above. + When assigning to an indexed array, if NAME is subscripted by a +negative number, that number is interpreted as relative to one greater +than the maximum index of NAME, so negative indices count back from the +end of the array, and an index of -1 references the last element. + Any element of an array may be referenced using `${NAME[SUBSCRIPT]}'. The braces are required to avoid conflicts with the shell's filename expansion operators. If the SUBSCRIPT is `@' or `*', the word expands @@ -5911,18 +5962,20 @@ parameters `@' and `*'. `${#NAME[SUBSCRIPT]}' expands to the length of number of elements in the array. Referencing an array variable without a subscript is equivalent to referencing with a subscript of 0. If the SUBSCRIPT used to reference an element of an indexed array evaluates to -a number less than zero, it is used as an offset from one greater than -the array's maximum index (so a subcript of -1 refers to the last -element of the array). +a number less than zero, it is interpreted as relative to one greater +than the maximum index of the array, so negative indices count back +from the end of the array, and an index of -1 refers to the last +element. An array variable is considered set if a subscript has been assigned a value. The null string is a valid value. The `unset' builtin is used to destroy arrays. `unset -NAME[SUBSCRIPT]' destroys the array element at index SUBSCRIPT. Care -must be taken to avoid unwanted side effects caused by filename -expansion. `unset NAME', where NAME is an array, removes the entire -array. A subscript of `*' or `@' also removes the entire array. +NAME[SUBSCRIPT]' destroys the array element at index SUBSCRIPT. +Negative subscripts to indexed arrays are interpreted as described +above. Care must be taken to avoid unwanted side effects caused by +filename expansion. `unset NAME', where NAME is an array, removes the +entire array. A subscript of `*' or `@' also removes the entire array. The `declare', `local', and `readonly' builtins each accept a `-a' option to specify an indexed array and a `-A' option to specify an @@ -6610,8 +6663,10 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables, 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 JOBSPEC nor PID specifies an active child process - of the shell, the return status is 127. + zero. If the `-n' option is supplied, `wait' waits for any job to + terminate and returns its exit status. If neither JOBSPEC nor PID + specifies an active child process of the shell, the return status + is 127. `disown' disown [-ar] [-h] [JOBSPEC ...] @@ -7120,8 +7175,10 @@ Variable Settings `history-size' 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. + history list. If set to zero, any existing history entries + are deleted and no new entries are saved. If set to a value + less than zero, the number of history entries is not limited. + By default, the number of history entries is not limited. `horizontal-scroll-mode' This variable can be set to either `on' or `off'. Setting it @@ -7229,6 +7286,11 @@ Variable Settings be listed immediately instead of ringing the bell. The default value is `off'. + `show-mode-in-prompt' + If set to `on', add a character to the beginning of the prompt + indicating the editing mode: emacs (`@'), vi command (`:'), + or vi insertion (`+'). The default value is `off'. + `skip-completed-text' If set to `on', this alters the default completion behavior when inserting a single match into the line. It's only @@ -9112,8 +9174,8 @@ figure out how `configure' could check whether or not to do them, and mail diffs or instructions to <bash-maintainers@gnu.org> so they can be considered for the next release. - The file `configure.in' is used to create `configure' by a program -called Autoconf. You only need `configure.in' if you want to change it + The file `configure.ac' is used to create `configure' by a program +called Autoconf. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of Autoconf. If you do this, make sure you are using Autoconf version 2.50 or newer. @@ -9339,9 +9401,9 @@ compiled and linked, rather than changing run-time features. following options, but it is processed first, so individual options may be enabled using `enable-FEATURE'. - All of the following options except for `disabled-builtins' and -`xpg-echo-default' are enabled by default, unless the operating system -does not provide the necessary support. + All of the following options except for `disabled-builtins', +`directpand-default', and `xpg-echo-default' are enabled by default, +unless the operating system does not provide the necessary support. `--enable-alias' Allow alias expansion and include the `alias' and `unalias' @@ -9395,6 +9457,11 @@ does not provide the necessary support. `--enable-debugger' Include support for the bash debugger (distributed separately). +`--enable-direxpand-default' + Cause the `direxpand' shell option (*note The Shopt Builtin::) to + be enabled by default when the shell starts. It is normally + disabled by default. + `--enable-directory-stack' Include support for a `csh'-like directory stack and the `pushd', `popd', and `dirs' builtins (*note The Directory Stack::). @@ -9528,8 +9595,7 @@ newsgroup `gnu.bash.bug'. `bashbug' inserts the first three items automatically into the template it provides for filing a bug report. - Please send all reports concerning this manual to -<chet.ramey@case.edu>. + Please send all reports concerning this manual to <bug-bash@gnu.org>. File: bashref.info, Node: Major Differences From The Bourne Shell, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top @@ -9665,6 +9731,10 @@ the baseline reference. not all words (*note Word Splitting::). This closes a longstanding shell security hole. + * The filename expansion bracket expression code uses `!' and `^' to + negate the set of characters between the brackets. The Bourne + shell uses only `!'. + * Bash implements the full set of POSIX filename expansion operators, including CHARACTER CLASSES, EQUIVALENCE CLASSES, and COLLATING SYMBOLS (*note Filename Expansion::). @@ -10435,7 +10505,7 @@ D.1 Index of Shell Builtin Commands * dirs: Directory Stack Builtins. (line 7) * disown: Job Control Builtins. - (line 87) + (line 89) * echo: Bash Builtins. (line 241) * enable: Bash Builtins. (line 303) * eval: Bourne Shell Builtins. @@ -10472,8 +10542,8 @@ D.1 Index of Shell Builtin Commands (line 61) * pwd: Bourne Shell Builtins. (line 196) -* read: Bash Builtins. (line 471) -* readarray: Bash Builtins. (line 555) +* read: Bash Builtins. (line 473) +* readarray: Bash Builtins. (line 559) * readonly: Bourne Shell Builtins. (line 206) * return: Bourne Shell Builtins. @@ -10482,23 +10552,23 @@ D.1 Index of Shell Builtin Commands * shift: Bourne Shell Builtins. (line 241) * shopt: The Shopt Builtin. (line 9) -* source: Bash Builtins. (line 564) +* source: Bash Builtins. (line 568) * suspend: Job Control Builtins. - (line 99) + (line 101) * test: Bourne Shell Builtins. (line 254) * times: Bourne Shell Builtins. (line 330) * trap: Bourne Shell Builtins. (line 336) -* type: Bash Builtins. (line 569) -* typeset: Bash Builtins. (line 601) -* ulimit: Bash Builtins. (line 607) +* type: Bash Builtins. (line 573) +* typeset: Bash Builtins. (line 605) +* ulimit: Bash Builtins. (line 611) * umask: Bourne Shell Builtins. - (line 383) -* unalias: Bash Builtins. (line 698) + (line 385) +* unalias: Bash Builtins. (line 702) * unset: Bourne Shell Builtins. - (line 401) + (line 403) * wait: Job Control Builtins. (line 76) @@ -10570,15 +10640,16 @@ D.3 Parameter and Variable Index * BASH_ARGV: Bash Variables. (line 47) * BASH_CMDS: Bash Variables. (line 57) * BASH_COMMAND: Bash Variables. (line 64) -* BASH_ENV: Bash Variables. (line 69) -* BASH_EXECUTION_STRING: Bash Variables. (line 75) -* BASH_LINENO: Bash Variables. (line 78) -* BASH_REMATCH: Bash Variables. (line 86) -* BASH_SOURCE: Bash Variables. (line 94) -* BASH_SUBSHELL: Bash Variables. (line 101) -* BASH_VERSINFO: Bash Variables. (line 106) -* BASH_VERSION: Bash Variables. (line 129) -* BASH_XTRACEFD: Bash Variables. (line 132) +* BASH_COMPAT: Bash Variables. (line 69) +* BASH_ENV: Bash Variables. (line 84) +* BASH_EXECUTION_STRING: Bash Variables. (line 90) +* BASH_LINENO: Bash Variables. (line 93) +* BASH_REMATCH: Bash Variables. (line 101) +* BASH_SOURCE: Bash Variables. (line 109) +* BASH_SUBSHELL: Bash Variables. (line 116) +* BASH_VERSINFO: Bash Variables. (line 121) +* BASH_VERSION: Bash Variables. (line 144) +* BASH_XTRACEFD: Bash Variables. (line 147) * BASHOPTS: Bash Variables. (line 16) * BASHPID: Bash Variables. (line 25) * bell-style: Readline Init File Syntax. @@ -10587,18 +10658,19 @@ D.3 Parameter and Variable Index (line 45) * CDPATH: Bourne Shell Variables. (line 9) +* CHILD_MAX: Bash Variables. (line 158) * colored-stats: Readline Init File Syntax. (line 50) -* COLUMNS: Bash Variables. (line 143) +* COLUMNS: Bash Variables. (line 165) * comment-begin: Readline Init File Syntax. (line 56) -* COMP_CWORD: Bash Variables. (line 148) -* COMP_KEY: Bash Variables. (line 177) -* COMP_LINE: Bash Variables. (line 154) -* COMP_POINT: Bash Variables. (line 159) -* COMP_TYPE: Bash Variables. (line 167) -* COMP_WORDBREAKS: Bash Variables. (line 181) -* COMP_WORDS: Bash Variables. (line 187) +* COMP_CWORD: Bash Variables. (line 171) +* COMP_KEY: Bash Variables. (line 200) +* COMP_LINE: Bash Variables. (line 177) +* COMP_POINT: Bash Variables. (line 182) +* COMP_TYPE: Bash Variables. (line 190) +* COMP_WORDBREAKS: Bash Variables. (line 204) +* COMP_WORDS: Bash Variables. (line 210) * completion-display-width: Readline Init File Syntax. (line 61) * completion-ignore-case: Readline Init File Syntax. @@ -10609,132 +10681,134 @@ D.3 Parameter and Variable Index (line 79) * completion-query-items: Readline Init File Syntax. (line 86) -* COMPREPLY: Bash Variables. (line 195) +* COMPREPLY: Bash Variables. (line 218) * convert-meta: Readline Init File Syntax. (line 96) -* COPROC: Bash Variables. (line 201) -* DIRSTACK: Bash Variables. (line 205) +* COPROC: Bash Variables. (line 224) +* DIRSTACK: Bash Variables. (line 228) * disable-completion: Readline Init File Syntax. (line 102) * editing-mode: Readline Init File Syntax. (line 107) -* EMACS: Bash Variables. (line 215) +* EMACS: Bash Variables. (line 238) * enable-keypad: Readline Init File Syntax. (line 118) -* ENV: Bash Variables. (line 220) -* EUID: Bash Variables. (line 224) +* ENV: Bash Variables. (line 243) +* EUID: Bash Variables. (line 247) * expand-tilde: Readline Init File Syntax. (line 129) -* FCEDIT: Bash Variables. (line 228) -* FIGNORE: Bash Variables. (line 232) -* FUNCNAME: Bash Variables. (line 238) -* FUNCNEST: Bash Variables. (line 256) -* GLOBIGNORE: Bash Variables. (line 261) -* GROUPS: Bash Variables. (line 267) -* histchars: Bash Variables. (line 273) -* HISTCMD: Bash Variables. (line 288) -* HISTCONTROL: Bash Variables. (line 293) -* HISTFILE: Bash Variables. (line 309) -* HISTFILESIZE: Bash Variables. (line 313) -* HISTIGNORE: Bash Variables. (line 324) +* FCEDIT: Bash Variables. (line 251) +* FIGNORE: Bash Variables. (line 255) +* FUNCNAME: Bash Variables. (line 261) +* FUNCNEST: Bash Variables. (line 279) +* GLOBIGNORE: Bash Variables. (line 284) +* GROUPS: Bash Variables. (line 290) +* histchars: Bash Variables. (line 296) +* HISTCMD: Bash Variables. (line 311) +* HISTCONTROL: Bash Variables. (line 316) +* HISTFILE: Bash Variables. (line 332) +* HISTFILESIZE: Bash Variables. (line 336) +* HISTIGNORE: Bash Variables. (line 347) * history-preserve-point: Readline Init File Syntax. (line 133) * history-size: Readline Init File Syntax. (line 139) -* HISTSIZE: Bash Variables. (line 343) -* HISTTIMEFORMAT: Bash Variables. (line 350) +* HISTSIZE: Bash Variables. (line 366) +* HISTTIMEFORMAT: Bash Variables. (line 373) * HOME: Bourne Shell Variables. (line 13) * horizontal-scroll-mode: Readline Init File Syntax. - (line 144) -* HOSTFILE: Bash Variables. (line 359) -* HOSTNAME: Bash Variables. (line 370) -* HOSTTYPE: Bash Variables. (line 373) + (line 146) +* HOSTFILE: Bash Variables. (line 382) +* HOSTNAME: Bash Variables. (line 393) +* HOSTTYPE: Bash Variables. (line 396) * IFS: Bourne Shell Variables. (line 18) -* IGNOREEOF: Bash Variables. (line 376) +* IGNOREEOF: Bash Variables. (line 399) * input-meta: Readline Init File Syntax. - (line 151) -* INPUTRC: Bash Variables. (line 386) + (line 153) +* INPUTRC: Bash Variables. (line 409) * isearch-terminators: Readline Init File Syntax. - (line 158) + (line 160) * keymap: Readline Init File Syntax. - (line 165) -* LANG: Bash Variables. (line 390) -* LC_ALL: Bash Variables. (line 394) -* LC_COLLATE: Bash Variables. (line 398) -* LC_CTYPE: Bash Variables. (line 405) + (line 167) +* LANG: Bash Variables. (line 413) +* LC_ALL: Bash Variables. (line 417) +* LC_COLLATE: Bash Variables. (line 421) +* LC_CTYPE: Bash Variables. (line 428) * LC_MESSAGES <1>: Locale Translation. (line 11) -* LC_MESSAGES: Bash Variables. (line 410) -* LC_NUMERIC: Bash Variables. (line 414) -* LINENO: Bash Variables. (line 418) -* LINES: Bash Variables. (line 422) -* MACHTYPE: Bash Variables. (line 427) +* LC_MESSAGES: Bash Variables. (line 433) +* LC_NUMERIC: Bash Variables. (line 437) +* LINENO: Bash Variables. (line 441) +* LINES: Bash Variables. (line 445) +* MACHTYPE: Bash Variables. (line 451) * MAIL: Bourne Shell Variables. (line 22) -* MAILCHECK: Bash Variables. (line 431) +* MAILCHECK: Bash Variables. (line 455) * MAILPATH: Bourne Shell Variables. (line 27) -* MAPFILE: Bash Variables. (line 439) +* MAPFILE: Bash Variables. (line 463) * mark-modified-lines: Readline Init File Syntax. - (line 192) + (line 194) * mark-symlinked-directories: Readline Init File Syntax. - (line 197) + (line 199) * match-hidden-files: Readline Init File Syntax. - (line 202) + (line 204) * menu-complete-display-prefix: Readline Init File Syntax. - (line 209) + (line 211) * meta-flag: Readline Init File Syntax. - (line 151) -* OLDPWD: Bash Variables. (line 443) + (line 153) +* OLDPWD: Bash Variables. (line 467) * OPTARG: Bourne Shell Variables. (line 34) -* OPTERR: Bash Variables. (line 446) +* OPTERR: Bash Variables. (line 470) * OPTIND: Bourne Shell Variables. (line 38) -* OSTYPE: Bash Variables. (line 450) +* OSTYPE: Bash Variables. (line 474) * output-meta: Readline Init File Syntax. - (line 214) + (line 216) * page-completions: Readline Init File Syntax. - (line 219) + (line 221) * PATH: Bourne Shell Variables. (line 42) -* PIPESTATUS: Bash Variables. (line 453) -* POSIXLY_CORRECT: Bash Variables. (line 458) -* PPID: Bash Variables. (line 467) -* PROMPT_COMMAND: Bash Variables. (line 471) -* PROMPT_DIRTRIM: Bash Variables. (line 475) +* PIPESTATUS: Bash Variables. (line 477) +* POSIXLY_CORRECT: Bash Variables. (line 482) +* PPID: Bash Variables. (line 491) +* PROMPT_COMMAND: Bash Variables. (line 495) +* PROMPT_DIRTRIM: Bash Variables. (line 499) * PS1: Bourne Shell Variables. (line 48) * PS2: Bourne Shell Variables. (line 53) -* PS3: Bash Variables. (line 481) -* PS4: Bash Variables. (line 486) -* PWD: Bash Variables. (line 492) -* RANDOM: Bash Variables. (line 495) -* READLINE_LINE: Bash Variables. (line 500) -* READLINE_POINT: Bash Variables. (line 504) -* REPLY: Bash Variables. (line 508) +* PS3: Bash Variables. (line 505) +* PS4: Bash Variables. (line 510) +* PWD: Bash Variables. (line 516) +* RANDOM: Bash Variables. (line 519) +* READLINE_LINE: Bash Variables. (line 524) +* READLINE_POINT: Bash Variables. (line 528) +* REPLY: Bash Variables. (line 532) * revert-all-at-newline: Readline Init File Syntax. - (line 229) -* SECONDS: Bash Variables. (line 511) -* SHELL: Bash Variables. (line 517) -* SHELLOPTS: Bash Variables. (line 522) -* SHLVL: Bash Variables. (line 531) + (line 231) +* SECONDS: Bash Variables. (line 535) +* SHELL: Bash Variables. (line 541) +* SHELLOPTS: Bash Variables. (line 546) +* SHLVL: Bash Variables. (line 555) * show-all-if-ambiguous: Readline Init File Syntax. - (line 235) + (line 237) * show-all-if-unmodified: Readline Init File Syntax. - (line 241) + (line 243) +* show-mode-in-prompt: Readline Init File Syntax. + (line 252) * skip-completed-text: Readline Init File Syntax. - (line 250) + (line 257) * TEXTDOMAIN: Locale Translation. (line 11) * TEXTDOMAINDIR: Locale Translation. (line 11) -* TIMEFORMAT: Bash Variables. (line 536) -* TMOUT: Bash Variables. (line 574) -* TMPDIR: Bash Variables. (line 586) -* UID: Bash Variables. (line 590) +* TIMEFORMAT: Bash Variables. (line 560) +* TMOUT: Bash Variables. (line 598) +* TMPDIR: Bash Variables. (line 610) +* UID: Bash Variables. (line 614) * visible-stats: Readline Init File Syntax. - (line 263) + (line 270) File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes @@ -11007,134 +11081,134 @@ D.5 Concept Index Tag Table: -Node: Top1091 -Node: Introduction2943 -Node: What is Bash?3171 -Node: What is a shell?4284 -Node: Definitions6823 -Node: Basic Shell Features9741 -Node: Shell Syntax10960 -Node: Shell Operation11990 -Node: Quoting13284 -Node: Escape Character14587 -Node: Single Quotes15072 -Node: Double Quotes15420 -Node: ANSI-C Quoting16545 -Node: Locale Translation17789 -Node: Comments18685 -Node: Shell Commands19303 -Node: Simple Commands20175 -Node: Pipelines20806 -Node: Lists23505 -Node: Compound Commands25234 -Node: Looping Constructs26240 -Node: Conditional Constructs28703 -Node: Command Grouping39536 -Node: Coprocesses41015 -Node: GNU Parallel42743 -Node: Shell Functions45211 -Node: Shell Parameters50295 -Node: Positional Parameters54424 -Node: Special Parameters55324 -Node: Shell Expansions58288 -Node: Brace Expansion60214 -Node: Tilde Expansion62968 -Node: Shell Parameter Expansion65317 -Node: Command Substitution77321 -Node: Arithmetic Expansion78654 -Node: Process Substitution79504 -Node: Word Splitting80554 -Node: Filename Expansion82177 -Node: Pattern Matching84342 -Node: Quote Removal88042 -Node: Redirections88337 -Node: Executing Commands97501 -Node: Simple Command Expansion98171 -Node: Command Search and Execution100101 -Node: Command Execution Environment102438 -Node: Environment105424 -Node: Exit Status107083 -Node: Signals108705 -Node: Shell Scripts110673 -Node: Shell Builtin Commands113191 -Node: Bourne Shell Builtins115219 -Node: Bash Builtins134811 -Node: Modifying Shell Behavior161841 -Node: The Set Builtin162186 -Node: The Shopt Builtin172358 -Node: Special Builtins186409 -Node: Shell Variables187388 -Node: Bourne Shell Variables187828 -Node: Bash Variables189859 -Node: Bash Features215369 -Node: Invoking Bash216268 -Node: Bash Startup Files222046 -Node: Interactive Shells227065 -Node: What is an Interactive Shell?227475 -Node: Is this Shell Interactive?228124 -Node: Interactive Shell Behavior228939 -Node: Bash Conditional Expressions232227 -Node: Shell Arithmetic236015 -Node: Aliases238791 -Node: Arrays241347 -Node: The Directory Stack245633 -Node: Directory Stack Builtins246352 -Node: Controlling the Prompt249308 -Node: The Restricted Shell252080 -Node: Bash POSIX Mode253917 -Node: Job Control263304 -Node: Job Control Basics263764 -Node: Job Control Builtins268483 -Node: Job Control Variables272835 -Node: Command Line Editing273993 -Node: Introduction and Notation275665 -Node: Readline Interaction277287 -Node: Readline Bare Essentials278478 -Node: Readline Movement Commands280267 -Node: Readline Killing Commands281232 -Node: Readline Arguments283152 -Node: Searching284196 -Node: Readline Init File286382 -Node: Readline Init File Syntax287529 -Node: Conditional Init Constructs303962 -Node: Sample Init File306495 -Node: Bindable Readline Commands309612 -Node: Commands For Moving310819 -Node: Commands For History311963 -Node: Commands For Text316148 -Node: Commands For Killing318821 -Node: Numeric Arguments321278 -Node: Commands For Completion322417 -Node: Keyboard Macros326609 -Node: Miscellaneous Commands327297 -Node: Readline vi Mode333103 -Node: Programmable Completion334010 -Node: Programmable Completion Builtins341260 -Node: A Programmable Completion Example351006 -Node: Using History Interactively356256 -Node: Bash History Facilities356940 -Node: Bash History Builtins359939 -Node: History Interaction363867 -Node: Event Designators366572 -Node: Word Designators367794 -Node: Modifiers369433 -Node: Installing Bash370837 -Node: Basic Installation371974 -Node: Compilers and Options374666 -Node: Compiling For Multiple Architectures375407 -Node: Installation Names377071 -Node: Specifying the System Type377889 -Node: Sharing Defaults378605 -Node: Operation Controls379278 -Node: Optional Features380236 -Node: Reporting Bugs389808 -Node: Major Differences From The Bourne Shell391009 -Node: GNU Free Documentation License407701 -Node: Indexes432897 -Node: Builtin Index433351 -Node: Reserved Word Index440178 -Node: Variable Index442626 -Node: Function Index455862 -Node: Concept Index463090 +Node: Top924 +Node: Introduction2840 +Node: What is Bash?3068 +Node: What is a shell?4181 +Node: Definitions6720 +Node: Basic Shell Features9638 +Node: Shell Syntax10857 +Node: Shell Operation11887 +Node: Quoting13181 +Node: Escape Character14484 +Node: Single Quotes14969 +Node: Double Quotes15317 +Node: ANSI-C Quoting16442 +Node: Locale Translation17686 +Node: Comments18582 +Node: Shell Commands19200 +Node: Simple Commands20072 +Node: Pipelines20703 +Node: Lists23402 +Node: Compound Commands25131 +Node: Looping Constructs26137 +Node: Conditional Constructs28600 +Node: Command Grouping39478 +Node: Coprocesses40957 +Node: GNU Parallel42790 +Node: Shell Functions45258 +Node: Shell Parameters50342 +Node: Positional Parameters54471 +Node: Special Parameters55371 +Node: Shell Expansions58335 +Node: Brace Expansion60261 +Node: Tilde Expansion63042 +Node: Shell Parameter Expansion65391 +Node: Command Substitution77685 +Node: Arithmetic Expansion79018 +Node: Process Substitution79868 +Node: Word Splitting80918 +Node: Filename Expansion82541 +Node: Pattern Matching84706 +Node: Quote Removal88406 +Node: Redirections88701 +Node: Executing Commands97865 +Node: Simple Command Expansion98535 +Node: Command Search and Execution100465 +Node: Command Execution Environment102802 +Node: Environment105788 +Node: Exit Status107447 +Node: Signals109069 +Node: Shell Scripts111037 +Node: Shell Builtin Commands113555 +Node: Bourne Shell Builtins115583 +Node: Bash Builtins135359 +Node: Modifying Shell Behavior162686 +Node: The Set Builtin163031 +Node: The Shopt Builtin173357 +Node: Special Builtins187561 +Node: Shell Variables188540 +Node: Bourne Shell Variables188980 +Node: Bash Variables191011 +Node: Bash Features217886 +Node: Invoking Bash218785 +Node: Bash Startup Files224563 +Node: Interactive Shells229582 +Node: What is an Interactive Shell?229992 +Node: Is this Shell Interactive?230641 +Node: Interactive Shell Behavior231456 +Node: Bash Conditional Expressions234744 +Node: Shell Arithmetic238746 +Node: Aliases241522 +Node: Arrays244078 +Node: The Directory Stack248767 +Node: Directory Stack Builtins249486 +Node: Controlling the Prompt252442 +Node: The Restricted Shell255214 +Node: Bash POSIX Mode257051 +Node: Job Control266438 +Node: Job Control Basics266898 +Node: Job Control Builtins271617 +Node: Job Control Variables276079 +Node: Command Line Editing277237 +Node: Introduction and Notation278909 +Node: Readline Interaction280531 +Node: Readline Bare Essentials281722 +Node: Readline Movement Commands283511 +Node: Readline Killing Commands284476 +Node: Readline Arguments286396 +Node: Searching287440 +Node: Readline Init File289626 +Node: Readline Init File Syntax290773 +Node: Conditional Init Constructs307610 +Node: Sample Init File310143 +Node: Bindable Readline Commands313260 +Node: Commands For Moving314467 +Node: Commands For History315611 +Node: Commands For Text319796 +Node: Commands For Killing322469 +Node: Numeric Arguments324926 +Node: Commands For Completion326065 +Node: Keyboard Macros330257 +Node: Miscellaneous Commands330945 +Node: Readline vi Mode336751 +Node: Programmable Completion337658 +Node: Programmable Completion Builtins344908 +Node: A Programmable Completion Example354654 +Node: Using History Interactively359904 +Node: Bash History Facilities360588 +Node: Bash History Builtins363587 +Node: History Interaction367515 +Node: Event Designators370220 +Node: Word Designators371442 +Node: Modifiers373081 +Node: Installing Bash374485 +Node: Basic Installation375622 +Node: Compilers and Options378314 +Node: Compiling For Multiple Architectures379055 +Node: Installation Names380719 +Node: Specifying the System Type381537 +Node: Sharing Defaults382253 +Node: Operation Controls382926 +Node: Optional Features383884 +Node: Reporting Bugs393672 +Node: Major Differences From The Bourne Shell394870 +Node: GNU Free Documentation License411729 +Node: Indexes436925 +Node: Builtin Index437379 +Node: Reserved Word Index444206 +Node: Variable Index446654 +Node: Function Index460177 +Node: Concept Index467405 End Tag Table diff --git a/doc/bashref.log b/doc/bashref.log index f511aa89..e20e0d38 100644 --- a/doc/bashref.log +++ b/doc/bashref.log @@ -1,6 +1,6 @@ -This is TeX, Version 3.1415926 (TeX Live 2011/Fink) (format=tex 2012.4.18) 16 JUL 2012 16:12 -**/usr/homes/chet/src/bash/src/doc/bashref.texi -(/usr/homes/chet/src/bash/src/doc/bashref.texi (./texinfo.tex +This is TeX, Version 3.1415926 (TeX Live 2011/Fink) (format=tex 2012.4.18) 11 JAN 2013 16:34 +**/Users/chet/src/bash/src/doc/bashref.texi +(/Users/chet/src/bash/src/doc/bashref.texi (./texinfo.tex Loading texinfo [version 2009-01-18.17]: \bindingoffset=\dimen16 \normaloffset=\dimen17 @@ -178,7 +178,7 @@ This is `epsf.tex' v2.7.4 <14 February 2011> Chapter 2 [1] [2] [3] Chapter 3 [4] [5] [6] [7] [8] [9] [10] -Overfull \hbox (43.33539pt too wide) in paragraph at lines 878--878 +Overfull \hbox (43.33539pt too wide) in paragraph at lines 866--866 []@texttt case @textttsl word @texttt in [ [(] @textttsl pat-tern @texttt [| @ textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[] @@ -191,7 +191,7 @@ textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[] .etc. [11] [12] [13] [14] [15] -Overfull \hbox (89.6747pt too wide) in paragraph at lines 1262--1262 +Overfull \hbox (89.6747pt too wide) in paragraph at lines 1253--1253 []@texttt cat list | parallel "do-something1 {} config-{} ; do-something2 < {} " | process-output[] @@ -204,7 +204,7 @@ Overfull \hbox (89.6747pt too wide) in paragraph at lines 1262--1262 .etc. -Overfull \hbox (89.6747pt too wide) in paragraph at lines 1277--1277 +Overfull \hbox (89.6747pt too wide) in paragraph at lines 1268--1268 []@texttt { echo foss.org.my ; echo debian.org; echo freenetproject.org; } | p arallel traceroute[] @@ -217,7 +217,7 @@ arallel traceroute[] .etc. -Overfull \hbox (106.92076pt too wide) in paragraph at lines 1283--1283 +Overfull \hbox (106.92076pt too wide) in paragraph at lines 1274--1274 []@texttt { echo foss.org.my ; echo debian.org; echo freenetproject.org; } | p arallel -k traceroute[] @@ -231,8 +231,8 @@ arallel -k traceroute[] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] Chapter 4 [39] [40] [41] [42] [43] -[44] [45] [46] [47] -Underfull \hbox (badness 5231) in paragraph at lines 3718--3731 +[44] [45] [46] +Underfull \hbox (badness 5231) in paragraph at lines 3723--3736 @texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and @@ -244,9 +244,9 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and .@texttt c .etc. -[48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] -[63] [64] -Underfull \hbox (badness 5460) in paragraph at lines 4991--4997 +[47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] +[62] [63] [64] +Underfull \hbox (badness 5460) in paragraph at lines 5010--5016 []@textrm If set, range ex-pres-sions used in pat-tern match-ing (see @hbox(8.2125+2.73749)x433.62, glue set 3.79674 @@ -257,9 +257,9 @@ Underfull \hbox (badness 5460) in paragraph at lines 4991--4997 .@glue 3.65 plus 1.825 minus 1.21666 .etc. -[65] [66] [67] Chapter 5 [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] +[65] [66] Chapter 5 [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] Chapter 6 [78] -Overfull \hbox (51.96864pt too wide) in paragraph at lines 5891--5891 +Overfull \hbox (51.96864pt too wide) in paragraph at lines 5935--5935 []@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar- @@ -272,7 +272,7 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar- .etc. -Overfull \hbox (76.23077pt too wide) in paragraph at lines 5892--5892 +Overfull \hbox (76.23077pt too wide) in paragraph at lines 5936--5936 []@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt ] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar - @@ -286,7 +286,7 @@ Overfull \hbox (76.23077pt too wide) in paragraph at lines 5892--5892 .etc. -Overfull \hbox (34.72258pt too wide) in paragraph at lines 5893--5893 +Overfull \hbox (34.72258pt too wide) in paragraph at lines 5937--5937 []@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar- @@ -299,7 +299,7 @@ tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar- .etc. [79] [80] -Underfull \hbox (badness 2245) in paragraph at lines 6065--6067 +Underfull \hbox (badness 2245) in paragraph at lines 6109--6111 []@textrm When a lo-gin shell ex-its, Bash reads and ex-e-cutes com-mands from the file @@ -312,7 +312,7 @@ the file .etc. [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] -Underfull \hbox (badness 2521) in paragraph at lines 7263--7266 +Underfull \hbox (badness 2521) in paragraph at lines 7321--7324 @textrm `@texttt --enable-strict-posix-default[]@textrm '[] to @texttt configur e[] @textrm when build-ing (see Sec-tion 10.8 @@ -325,9 +325,9 @@ e[] @textrm when build-ing (see Sec-tion 10.8 .etc. Chapter 7 [95] [96] [97] [98] [99] -(/usr/homes/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [100] -[101] [102] [103] [104] [105] [106] -Underfull \hbox (badness 5231) in paragraph at lines 561--577 +(/Users/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [100] [101] +[102] [103] [104] [105] [106] +Underfull \hbox (badness 5231) in paragraph at lines 565--581 @texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and @@ -340,7 +340,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and .etc. [107] [108] [109] [110] [111] [112] -Overfull \hbox (26.43913pt too wide) in paragraph at lines 918--918 +Overfull \hbox (26.43913pt too wide) in paragraph at lines 929--929 []@texttt Meta-Control-h: backward-kill-word Text after the function name is i gnored[] @@ -354,7 +354,7 @@ gnored[] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] -Overfull \hbox (12.05716pt too wide) in paragraph at lines 1866--1866 +Overfull \hbox (12.05716pt too wide) in paragraph at lines 1877--1877 []@texttt complete [-abcdefgjksuv] [-o @textttsl comp-option@texttt ] [-DE] [- A @textttsl ac-tion@texttt ] [- @@ -367,7 +367,7 @@ A @textttsl ac-tion@texttt ] [- .etc. [127] -Underfull \hbox (badness 2753) in paragraph at lines 1980--1983 +Underfull \hbox (badness 2753) in paragraph at lines 1991--1994 @texttt hostname[]@textrm Hostnames, as taken from the file spec-i-fied by @hbox(7.60416+2.12917)x433.62, glue set 3.02202 @@ -379,7 +379,7 @@ Underfull \hbox (badness 2753) in paragraph at lines 1980--1983 .etc. [128] [129] [130] -Overfull \hbox (26.43913pt too wide) in paragraph at lines 2131--2131 +Overfull \hbox (26.43913pt too wide) in paragraph at lines 2142--2142 [] @texttt # Tilde expansion, with side effect of expanding tilde to full p athname[] @@ -391,9 +391,9 @@ athname[] .@penalty 10000 .etc. -[131]) (/usr/homes/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9 -[132] [133] [134] [135] [136]) Chapter 10 [137] [138] [139] [140] [141] -Underfull \hbox (badness 2772) in paragraph at lines 7869--7873 +[131]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9 +[132] [133] [134] [135] [136]) Chapter 10 [137] [138] [139] [140] +Underfull \hbox (badness 2772) in paragraph at lines 7929--7933 []@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard s/large_ @@ -405,18 +405,17 @@ s/large_ .@textrm a .etc. -[142] [143] [144] Appendix A [145] [146] Appendix B [147] [148] [149] [150] -[151] [152] [153] Appendix C [154] (./fdl.texi [155] [156] [157] [158] [159] -[160] [161]) Appendix D [162] (./bashref.bts) [163] (./bashref.rws) -(./bashref.vrs [164] [165]) (./bashref.fns [166] [167]) (./bashref.cps [168]) -[169] [170] ) +[141] [142] [143] Appendix A [144] Appendix B [145] [146] [147] [148] [149] +[150] Appendix C [151] (./fdl.texi [152] [153] [154] [155] [156] [157] [158]) +Appendix D [159] (./bashref.bts) [160] (./bashref.rws) (./bashref.vrs [161] +[162]) (./bashref.fns [163] [164]) (./bashref.cps [165]) [166] ) Here is how much of TeX's memory you used: 2085 strings out of 497974 - 28645 string characters out of 3220833 - 65556 words of memory out of 3000000 + 28613 string characters out of 3220833 + 65396 words of memory out of 3000000 2901 multiletter control sequences out of 15000+200000 32127 words of font info for 112 fonts, out of 3000000 for 9000 51 hyphenation exceptions out of 8191 - 16i,6n,14p,319b,705s stack positions out of 5000i,500n,10000p,200000b,50000s + 16i,6n,14p,315b,705s stack positions out of 5000i,500n,10000p,200000b,50000s -Output written on bashref.dvi (176 pages, 709392 bytes). +Output written on bashref.dvi (172 pages, 715952 bytes). diff --git a/doc/bashref.pdf b/doc/bashref.pdf Binary files differindex 51b0ee48..6432d042 100644 --- a/doc/bashref.pdf +++ b/doc/bashref.pdf diff --git a/doc/bashref.ps b/doc/bashref.ps index 086f3527..af04ee7a 100644 --- a/doc/bashref.ps +++ b/doc/bashref.ps @@ -1,8 +1,8 @@ %!PS-Adobe-2.0 %%Creator: dvips(k) 5.991 Copyright 2011 Radical Eye Software %%Title: bashref.dvi -%%CreationDate: Mon Jul 16 16:12:34 2012 -%%Pages: 176 +%%CreationDate: Fri Jan 11 16:34:31 2013 +%%Pages: 172 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: CMBX12 CMR10 CMTT10 CMSL10 CMSY10 CMMI12 CMMI10 CMCSC10 @@ -12,7 +12,7 @@ %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi %DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2012.07.16:1612 +%DVIPSSource: TeX output 2013.01.11:1634 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -5442,6 +5442,7 @@ dup 45 /hyphen put dup 49 /one put dup 50 /two put dup 51 /three put +dup 52 /four put dup 65 /A put dup 66 /B put dup 67 /C put @@ -5676,407 +5677,412 @@ B240D1888CB89FBB748FD10B214773D466A44AA2AF44371CA8B9A4450DA76EDC 0167B4015A270B9983B89EFFA023A3DFFDE181B90C51D70557B0844362B0652A 6345C6EC83DFEFE099455232455943718297254186940D6305C96EE2B9E3E7C9 A622D25E0471AC31A8ED3AF8897BD19E322CFC3BD3860D8A0634081D9AF53A9D -84F4ED39D8127CBCAF9AD48E9CBD10A67A2CD0CF93D61B0BF1E2891D2AD55EBF -BDB97272CA757A9CCD663C5D1ED29126E043EAB4F519600668E40B42C1718DD2 -9D086A3420DEA89DD96902516ABBA71A38376246D78B0488F4850D72804D1A84 -D61E9804E47E73119C5AE8144D1BD069CE4B157BD6DE62A7C43AEB27CEC8588F -C546C7CFEAD9C51EC92E59A7B33704CADEE056CCE43FEDC3C14FBA6875D6E281 -3B5374BE5ABB5C085CBDA1FF0D2BD2E3CD9890F62CCD6C427D29ED3C2CFA33B2 -73F9437BD9EDCA614345A2BCB9B2937AB6BDA5B408F535633D3B78AA2A892E9E -851F5E4D7054EC7A8ADAE1244EF76CBB3EABA6CE8B6EB9288E1B57212F741BC0 -07EB07C171F36E9672816D141F5E40E6935900AFD41188CFF85C864F84B81AB0 -413C098E72442AAE73F699FA4811F06F9C8A03C0A4A5B8B74C88D13801B34113 -2BD61F85D168A9FB0A23B11F90FE4A740912048BA970748408F395E19B3AE4CB -F232FB3EABCCA4FC2F961B0BD034F0C142F5215E62295C34798EF992284784A6 -BEA185F9E46F4766669260FFCA1F748B14B56C6C05B665EFBE19287D8C10E00A -5E4AEAB154DFC2C08F8CBCBB65C487E756C42C9377128BFDCD5BDBCF68986D0F -402F66A2F55F64D3DDD69A44A4B6D0964C22090EDA45EB395A0D72E6FDFA7BCC -CD9B442CC990910F5C1ABE26CEE4CA55C31569997D1D9738E12F9E380A8D3DE9 -62FB2F46E2D56C65B8838E990C4C29814DF2464B0D1C6E88863921561E2BE1E9 -FDD38F95CBFE5A26A7B7F0C2187D9E8A792FF4C5931286F536FDD8F040AE04D3 -43ECF370D828B3343EAC87F012C3ADEA73D21F6C5C59B3A3EFFC865AE2BDE6EC -611A0690B67D1B8783E8919A0E918B563022159DCCEAD8A3E18599270FADE1C0 -27598F8CC5DB789C79FBC16773142C55AD5123CA84CC45991FB2D8E791AD9C83 -B83FCF65D10C09AA378F9B6073A3F06F92B45708381B1A94C3E93303E437D4DE -630D303C6E343D0B432677EBBAC7848CFD111E32142FFBBABB807B5B495C0850 -62414AFE6CD465399332C31F09531DB82F59F7A4952A34A8A34367320C8935EA -C23010068C8DDF84C17ECED87AA40CE9B25C71F7BC54EFAAD4C81D4071447332 -E21DBB38912A9CE1F9531BB375AE6BE97290555DCD05A4B8CFAC25D75D2C05EE -526E8D3FC01F630F8BEAEB7237C23DBAF001732A61CB6542047E7F4F67B84B08 -86301FB08F5165D83AE95A202052AD70D6165C59312690AEA5D2961A2E2F7E79 -2D72801DDE06D1C373D5B6CABCE14D24B17586944C519A4E8B3B2D52D1D04E4D -C52135711CBB4785C8939B786DEDC0D20F7D6E3632DA7508E6CA7EB6692BE40D -09B37924B6D916AEC3584A9A9D7D9EA7A13CB363BE472697E0D8360BBBBF18BC -00754B53C745B6C60EF626A24F7A1623CB37565FE62F3EEF1DBACE087C68C58C -D9D8B5C22A89AF3D515D29013F2431D87078ECF64C4E34F5A6201D95AC8BEE98 -97D51A81C00F141231F715219BE4556032015EC5AEB3BC80E2C45B851457F737 -07D57A983C2A5EDD5A3200AAA2914B0A6EE10FFE5838C128D11D198D6383C9B5 -35DD8BAC8B34FE2F144C4F45DFCAA147F985D4FE0C950AAD41D869661D30061C -97E4CC2B930CA125B352FBF456C15DF55F55C8ED8FFA3FBECE2F4B032BC2F834 -716F2F6004F06DC5F062792F471E948279C96F6AD0388B341C515FE857766334 -BF61CFA252C404A81C235BA25EE78EF1B4676CDA4DB27B0868539EFBC958ACA7 -D9CFF8F3084C18D114F78390C2B6699E88C4C4CB0318B9BB99CD448BA1FC600E -8D6E9C8EDD6B89A8A5728D171DFB5DE6FAFFF2591847BC3A000C13DCCECFB31F -80E8557AB9586C7CB752567976B37A15864DBDA05F351E1AD2F00E189333D6BD -3D8E880D5D1F31CF7BB3B25E022E8573C793214EA5E14DC072575AA1BE228161 -4DFE7FC5DA3B83989C5F8E34499FE38B207087920C05B9C751881FF3E318B983 -E57668B0BEDC0EE65124E54B6BE2FB43A9830CDB6EA7223EE30430E30058F810 -B5152374B67D02E99FBA4723F16CF050CB70020A82E751E9C16B919FFC6554F1 -82369842B999BE1595E11A9C1F0DBAF00DEBB5BDF0BC981B23DB0697A5B3558D -F0DAA2D51A8FB076400ACEB1CADF9CC13C800D1612C7BA59CD5168902073C1A6 -716B688DA36DA4C5403720AF9E3E6933AA5DCBC2BDAE05632A7EC657EBAB1D00 -BE4C9EA6949B7C0624D8A91E222FF527FEBA591DADD15D5C59CD03CA45D8A979 -61930D5170A2E632D36C86B9CBA7EF15BC54A46B403265A9DF6CB857C08AF874 -94C3AF5A85B879E1CAD1E0FDD918080E728CEF9BCDCFA875B5D9B5227E94048C -22118CF8A1E4313BB479ACD1A5B5E1FC14B80E3C06B6987F68FB859723E630CD -FAA39F1A25EE5B478A12F5AF5A9E2491091973C006BBA3E809918848079E60A7 -6314440053FFD14774525692906B36AE11C40F17D20774DA2F424F423A2828D5 -7135275954BD3A103E9D68288A8A324A6C1AE63BC97D9ECFA3E2D1E91BC2EE32 -4B218763EA9C46BBA09707530E69493A6B643683A7C43F1176C77692A86D2787 -3DB5CFBA9F53B4DB6620EED927E8BEB4B725A0FF8122DDDFDA59B95B1306F6AB -0CFF502AA203E760E7159DC582E5BABA39248FF8EC069122064F0D40D3FF483B -525ADBB43AF82778C1A26510FA6C2E73AAD336E68947397508C8FE81F2322B73 -718C399346B2BF42D46072CF63B3A7D6C4FA410C0525C2DF70FE865C1D12D4C1 -69E528AB0A8BF1C61903FA24888017B5DE1B8D5A4132270A485ACC08B109822D -471E22CCF28A06164E2F3CFF86E5F7C3BCB087785E1158F9CE0CCEC51BF2ACDC -D431759C3DF7FE039C3E194601CDDF2ACFC42FD307D6CC64BE965EB537BE75F1 -BDDC0AD02741E2E7BCB988447FBB0BD7D1A24ECB72BDBEE0ED384FEF10FB68CE -FEFF5BE54A711CC313189AA94C08461D859C634FB7CF9A944CC133AA277B3FE3 -744C1D7BF781B5AE532EF94B0C6E59A099FD4750B34AA3D21576335C6FA34F24 -080790E2AE616AAE91089F79DC1DD85278C68771A0C2EE5BDF570C6FC29711C7 -71DD9E47A51D0CF7844B823CE234BEC1A67C423D40E1AEBD4E10023E0AED1BA9 -15F8406C71B2405586B14982FF67C0BF19AA3F5809CB7818E884F1226193836A -EBD100D8344BBC0F3B7309A22711C62BBAB7ABB83CF388EDFB644CA2E1F63B51 -6C4418A2BCECC2C521F63130B1093ED58BF1C4B17D277E7C0D6BE880ED948C01 -CEEBD14357BEBEFD9BFF50DB11688064AA022E403ADBE0F3A1D175D99F47DA8A -A298B37DC0E4EF26F6FBE6F0181EC32FCC617F0F0F7FCE59454944BF33A0654A -FFFA4B16D9566E8AF012A5EEDDC241837EF30BA237A052A29FF31BFD938020D6 -F8F88FFC2AB3F51A5A4AC1B51FD5AFB8623F6D366DD3C53CA083B76D133DEBFB -6442D33C33C64672CA891432FC08B5CCDAB44DC16FF903D026E87415CBBBFC2E -1F84CA3B74E90527B035721A5145592E5EE73035E101F1EE789BB718979BFCE3 -21D5AF8FCBEC06AE33BE5FF2EFE2A538B3D8D78ADB9942863056D794A789EB84 -FAE60B893A74856F9FDFF8FD649864A95086AAF4B551FED22B8708780E3A1776 -F54D5F83F8C6DC3168AE622A5CB333B047153CD8DB16FF8ED31CA739212F05BA -15458406AE04B0AC0E3B8C376E85B26A53A45BEDD3414AF0046716E880BC8F49 -FADD67DB0A73EC5451BE32C6AABEA4177EDF61CDA10BF9706B0A18CEE54014AD -54041C1E1DF467EC691875C7CB9EA5BA445F464764FEB5D6684256D768F67305 -DB889995DD3B0B84EF3545C0904CB99A21B605EACAAA13413C46FD9B6B0C3EDD -6930AF54B3B4D3751B05812D77EB5F0B99E2A18FBFCCEFDC74ACDD0A59880CC7 -9025DABC5C1A0AF97CFF68B0F65C19D32AE169987E39B1AEC88E89C28C0F4EA3 -C379D03425CF7E9008AF081E1680E1D1B3B4A068EBB1AB725D1C24331FDC2AB5 -983AC6C5B608E61C492E11D1A08C1871A24E407B166857B6E5EB3F4CF6AE0DAC -FD766B7EE269E87E344B5342E6C658EAE51CE68F64609920CF1DAF9A2FADD675 -DDD8951B97C27CDCF682CB07F0EB32C1B0D71DC4A6CB1D74ABFD498CA23F76AA -0EA1724E3EC3F33B5094C5969B1167135C74176845772181E53EBADA8C5AAB98 -A50EF967B6D55E56EDC4067A037C3E269B657E95256D0210A1331230AD71A2BD -29159DFB83F16176F06D712C1B91218EBAA7CA27BFAB7A014D11BCB7F3585624 -4C61150E171129C9153F69418AF18C2097AE0EBD6F1A10107AC686015927839E -59B5AF1AD6CC228A21B8C88D5C9BB8AAF7A9EAE7B8DFEEF739B47EE01DDF4F0E -AAC98F602B5D9EED62C5C14A3B096FAB12271925E2EAC474B639AC68B59E7E3B -105EE619ECF7B5D2EC27AFC980FECFD03F15837AC33EC34BABC80BB272BA01A1 -7A763E8486FAA442F98763FD422144D4B610C23A0B460C1587016900EF6124A8 -841CE18AA9EDE85982A3CCB4A203BB56B9D2BCB9F3A6A3E9AC4B9B8590B8F438 -0229DBA7BD72555563AB8EB849632D4442AEBED6BE2B2F0F373546E85A338AB8 -A17BD2F7EED1B7778D644B657E18C1C1570AB799EFF5FC8695CAF006EB2C3034 -761D21EF9B792C37320C3C66D01D5F050A29A89B8E893C9E22A19FA9CCBCE253 -00672E2C7079A96F9A72885367636AC728359F160C4AF206734A5FF17082E35F -1EF04C973CA52D9795A3ACD3E865E5BE84A694D7CF101DF989D48DC305028741 -36B1EDCF7A6F30062498F9DFB7DD07A0A20EDD3AF9DB9C1EB12F289DCB3F7A1C -ADE17E4F411555C392EC27EB92D37F17E889C04C6A3EE36EF2755E3BC3A21BBA -501B0F5148473551742CE2A9F456405184EF74B756CBB71AE18E211D72050FDD -579DBD19E284FE4191D62F9E5BC35C744AE1D8472B63D0FAB644BB4E223D0A9F -27EFDFF7D0230DBFFC9C22E541E420EF4BFF45014B8E174B569902C2380DBF33 -96D005F475B2391192E3EE41C91CE713782C22624E9FF035D0DF084B35E1EDE8 -4EC4F1755DFD8FE72E5A8F81FA23EABF01D8B0983FF79A16CCB95933732DADB5 -EF98ACA177B134A0A2874BC22EB50026EDBA66B350E3DF615DD680496B279855 -8D2B2CF2F460C513DA005FEAC147E50B3B053E1A203A838BEEFF5A546B18E0AB -15013AFD17CADB5FA14AFB411049319DF94ACB8893156E0EE05FAFB652FFA59E -D9F20FC90928AF11F00E3A4E38BCAFBF527135893ADA49812190D9378D6DB84D -427A858D59AB195FAAC899AAB072F73E5A4BF09CD1740E8BAB3C99BCA591CE2D -1A710BA8A4CD6D52869DFF24FE1DE8B0DC4D03CBD3E93DC82272B9ABD55F2994 -7BF140C75055AAC5F8A2DC88DFE109B4BE3A517C2328FBEEC63EFF2343BC6EB3 -AC76FBDA635D1FB5E5E1B1192170404638574AA6B853CE5754DC39B70FDEFF66 -5210762882DA4D3A26E805DA6DC5E7782DBD151C134693049E588EE3D2A30AA0 -E4A9E6CDC59CD0904F736D347BBEA83EE9ADBE638ADDA4AF005BE0425D9A3822 -4920250EFAF9855F453F77397D3FB7CCFA4B10C4B169012E5CC526D7FE566257 -67510AADA4364C65B66D96B340863ADD1812E67C1546E10D8E432DD78EAFFB8F -E436467E4E87BDE4790B067F80964AA216C9A354E1408AB59574C9D5A46954EF -DBDD56A7DCB563ECC047364194561EA8080CE6F14D7A3F0DA6D57B3D9671E978 -31CB2BE5459ADAFA7F213C2EBE2D948EA7898D48639C4A24BC60F6AD1AC3F8CB -4D36227EA9D3EB060B5FF68DE43F18072BF0DA71448DA46597F230D79D085B55 -F97B8A2967C792588907EDE6AA1FE70AAD86032EB24116D96919FB6F0FE946A2 -716FA12EA3B15DF39437B5DB2E627C0E83F3DF887C9A370C8AADFDEC540F244F -34A2B4B4BA121EE04B41128D2D1AF474B036854668FC63FA454ED14DE952AEB2 -84013B603E6BF0AC2A1538CB1F60B3C3CE3C02C2DC4A419407CD06E8FC67ED6B -7D12ABD600C3852C81E7AA446F19F839B70CFA30AFF1E072CA40906701A1E542 -582A014C16344EFF319F224AD16B666B9B25350CC6A59CA288380AB0F4035906 -404766221028408B8656018FF58382C66E5C7D9DBC2D01DB71EE62B4C36166DA -3498A6081A5AF38AD72998F0AB52C0D1DC259CE3F0ED58EE4F43B4EB1BF59315 -12281E294BDBCFB0F25DFBBEF42359B466D505FF31C5391F69E8055880933D0A -179FA9A5BAB7575EE1732A8CB76ABDFDCE7DD91FE97F696BCE7E8CC84F44F0D9 -C0F1711D0459D2E54B76E5A6B35DF9550955948FF59E41E967DD998DB34F1BFD -E07C89F68B7F2E5FF620EEDEC4D37321A84CDD143B8D7E44D7AD03F79F3E8B4D -6348A085B6DA6D3C2CBDD4212BC14582DDCB41201C73DB1C8171B1894AF67CD0 -3BEAA93DA7D275C8B2D7F486E99170573BC3D6E888AABB7C02339CFF69D76A85 -715278BD548FD6B5E2241D23E713F50D34CD3837D6E7F0BDA5075C430A7887D1 -77D4E7E232F1FB709F731989F2063E5BE08DFC04EA814202F0F9D5B5CAE36B56 -6DEAF5CD38F91AB31673E6D46E074F459B0C65F1768A8340021D5A50700C40BF -51A1FD83AADA2EA4B903E4DF720A0419FC63635BE0E1DC687CEFC13F219B239B -12970FE2D6388770D9F56F350AEB60D24100B78946D4BC5E8690ACA54B98BB9D -C935F20381BBAC9BCA8B77F52A69E49BD194052400B65D64866BCD2CD7031F25 -8A6D6E4E1BBAA961E2C39A9D8673AB8FA5BA524EA688089A5F31492EF7981758 -E3DE0BEEBD5CC18A8B7D91C792325B075A85EC2F2CC09CF762FDE800C20380F4 -77DED0E1905736BD38600E0401EDC644B70E8C3E8B34411DB6B40DD0C8C0F779 -F3530D58109B179FE9D1D064BD723AECBB7C82956FD9F47D62540C508530117D -1F195CF0C2AB5D81A97F5BEEE4E60A3926FE6449E23D67CFB715C654C0B47F0F -17550F495AB4C7C1470F5D6DEABCC2D5A4B9D422098D187EC5B1433D03647498 -9667C6A173A41E4CEE7D3667ACE15751D5840AF244C96928AA59E958CC8C19FC -95868F6996004E3CFCFCC59D61FBAF4F8278BABFA9F9EC9B672DBE998E25CFDD -A52C2D3958D62237D55D4928B418DACFFD2DE02F710020BFC1BD9BC0C019C3CF -FC6372916A1DC3DD2A6AFE6BECC7D34A6B58C579A695BA1D8BA1F9711E91379F -592D78B64C9A009633EAEDBDB476C234044D645767EA3DF04D25F752696436B7 -118F7ED3E2B73C505D7442A202D5AA400C0B3D9BCB495E48D2534609B86FA998 -360CF9CA9BCAFB990581CB8F6CC246BD55D6BA07E03A8FDEEE7A25B1E3BB0645 -82572E5215699F0401E541C1C5FB16DC064EA87F4EEB1850EF903C8D1133F9EB -1E899672E831D350602FC66835C3C995DCEEE601B89AE1EEA5E01A2C15F4D2C9 -C35A90D264252CE6CEC4173C755B0EAAB5CA0C23E94FDC51CF6B8A3FDA920D50 -C34C6FEBEBF9176592B92E987ABB379629B5013C0089894685BD105CF229B425 -C354E08E843E6551A6836C0430A9E34E15CED78789D6841E2DA5253940AF5F10 -360797C0C20FC9D82F853B2D4AF9CC18B4B6D1E61E47C650FBD3E395BDFC2375 -F3AF6948C04ED687BB1D6DA3FCBF4F2C6926856F9485672B56F59E5FB9AE4F74 -1C1999238416C67ACB86794BF25561C77702AE5F9A3077C6894EA723E00ADD28 -4E285ECB59450A1F94E45B046AD2F77A1FEEF5BA9433AA042B24644AFFF58866 -804F7F2CCA77DC987AE17BDC837F4DDC7AC3004FE0B00BD708E2DD07E2714D93 -D698625F8328EB8F86F71732BF7040FA8E7727BDA3C270643138CD384FC16309 -CBA870113EC28A04A20152834F199856D0E04515D49887F483D44EBEAC7E1994 -D3C6E843585D6305ADBE6901E18E87C460067F1F031071ABED1A009E9B0FBF4E -B87D284384D6AD08DA31510B16D5117854791D2043B72D2BD75B01498F39830E -F7F9777470C09DEF6E753F4D4870993A277E1D36FB6FEF59F420353A12FE332D -9F6F3A90EE80D53E09A4CE5B0B536E8B0B14830B7EFB7A8DB96A93BD1A0D6E7B -CD854AF2702522BFCCA27B8E371D21AB9602287FEABFFB05147896D03D720102 -36D803A558FC4F1A0418F7CB3A98649DDD38A4D21B77E9754D9323FA0C35CE75 -DAA162AB12C8615AC12078618CFAFE605F466DCF5E517C1FC1B3CA2C23C42727 -F071228A6CEBF60012903F1FD7E3A2C7F93A1CF288E455409902EAE77603EF87 -5E5A49289362BF1999B6EB8120E0CA820A2649F3D888254C5F22CE8A54FC1DB3 -68ACD680FDE53856AEEC5AC008C174ED336E1F956994F7BF005EADEE04C52F53 -6DD46A4817350935C37B5634DC24BF911FE058CF8EBB74189EC0060F197FF7C3 -9F004E412431A09FA22E99B7A6298F73C7ABEACC9807FD4E1D4580CF56705ADA -E7BD5B8F8532892CC79581D55D774759FA7C1F8858689CD775C2E6028E47AB45 -20401618BA6A14B985BB2D00197AEEC01A1A04D7B33F838968C1100BCF62D9D3 -5B89707A5752EB4C32B9E805E6264133157479AC4F096D08BA5F01C58702C23E -A4E280839C9B63F068C7F4EC39BEF9410F127E35CC066AC28B6DAD6FCB243CA1 -5DBAEA735CD73185E76B8278D263E844B024B3E1D05DCB1AA5DBB4DA2BFD2B22 -0FADBBA22340237147EC4FE2D5E97521E17753AEC595AFD878191CE9CF1DE450 -B12C48C31049B8EB43BA1B1636201BCCD946F2E8C4A74AB23AF272C95CE8BDEA -1116F66F1BA60ED34FEBE61B65847667A7163A96483D7A8A60DE2BCC1D439629 -E70C3432D1B0ED0F8BD1F595585888862CDB7F4C227AC35B445C5AF50326B369 -CE5593207C521F603AEA3FCE58BE21470EC25F606F7E9416D49A8A00121A6031 -9C08CA3E066EB66FA70ED1D68AD32787FE77D15992763947E6F6E6F4E5A14EEE -FEF8643ED893289DB4D5E45A302541B8F78D29382784725D35C02CF0066313A1 -15D3C00FEB599E41B247AF657EBE1FF3F88C43393EAA23896151089C293FA6E7 -02416A26F3C46E49A2351504713DD82CE60ACF7ADF116DA5384A55ECACAAC9BE -9220DB0C8DC13C2BCD47C100DEC2F9A878D20739CC4005B9A69522CAE7D480EA -EBC5938EF248034B1E4BAF12E0309D3DCBE7242DF7BAA2C2F1BCFAB7B376291C -F728C73266953C04F5274C4929ECA698EE964D962B089A425A89229B1F59BDDA -BDBF790662A1B78316D0502FFAF723DCEA6C4526BC2C68039CA17FAEB77CD909 -AAE997704460993A0EDAED2518F9956043CD6CC674B85C8B06D73620133C9690 -26A093ED8917947CCD0CB4DA209CA2D4DB19F66FC0B7F8B55399BA8CDFA85E1E -9B295B0977EF82E3125560A202638BF07220024661AF477CF2BDB32A9F6A2EC0 -8534A0EAA0101BFCD5397DF554C14B7DF85F8E173970A4099D73B312B1C1C64E -E09E439165E8087500C044C617089619B462D3E09157197B3E35FD6AE9DFB70C -9928384E43A2032BA2186A888CD9E426EC59E505AD8ECC90990869382DD9132F -0CFE89E5EE73A2CC8E65AB5E6D509F3725741665D646C60357EA99A376EE1D1E -0F9479CC3B1D592FFBCBE052F6C6AB914230801106BB771FF09AC9F73DB3DC07 -F3E5330F86280CAB68F0D26F448B7AED2E44F8D8CAC1536CF672D1BAA7ACB086 -8711B8242AAE1ED1A2945532731D32158A1EE5F192C4F27BEB362B186F2E2786 -6360FAA5F8D2D72101F75796D185BAF4A7BF923C74782753CA1251E4D75079F1 -A07D015A63C87A405AA749238FAF652F24338E7E3E32A5A2FCA7F1C344E5321A -24DC502BFA41A5B241199FA167D8DCCD6570340A83AC31BD2B046CCA44A1DC53 -BA463B01AFE1DBE9B5F3BC22314E9FA436D00C8D9BA8ECAC9AB7E8180A33BF91 -5A60F7C027C1AFE423C51D5BDF33F43D6C6A9C581AFF5432BD034B4644968AD4 -FF172B9C1A6B500FAF1ABD6284C05E71C1BB2A50E93581569ED5A8D371DDCA2E -B18A789B6227085501ABDE417919E5D7E3863C74CDCD88136F34F88DC53DCA47 -A6A779FA80A454BF955967E90D6DBC449987036A434F06A2E612BFFF3E053DCC -04BDA563040846FA7D94695769E92E56F6109D71F0702524E5C3CE6BAA123AEA -6FD0054543CAB42E143476D9C8B19DD80DBCA9D45840D42A0E8F354F52CAA988 -9F0371B2C9D82C83DDB46A5C9B83D627F2EF25E148ACE4BA9329ABD4442E5B36 -2B790FB5D59CFAD7B6769B5BF27161D8AD5E88A1082373E80F2EF8818C23F3C0 -2B1F47B71D7FBE3D47043762A7AFC377268F41FC2CA3366934EF192B3FAD6668 -28FE2514C19A900B0F83E0CE6EE4621E2FE6AD09AD35B89C8E69B3A861092CB3 -64A2E3C360FE5C7461BAA66AEC3DAFECAAF46CCA9722E7450E091DF3D17C41D2 -83EFFF157E3F053CD14111553676219260AEB7439B2985C3D642A2555876A53E -1C3F6F93D7B292D1A584F9E4773B59F7E39D9D04628802DCAA3354B3075D7D97 -82C165BFB5066B1DBE509EF960086D475AD7C33B2F857D7C0A3217DD97434C00 -D435D7EDB3FF496A717FD8222F2B9A1473D306E9002A38771383FD29722AC603 -2BD2D10FBBDBAC88927E878220C7921DD383BE2942320C71F8B9057762D4ED0A -F16F57298A4782B4FE75008820C9B2A7535EB83369BFC2E3821E11C32D089A18 -1A40D47BEE120B6E63D44132EFAFEEB602C23588A670DB785B4EE6FB8756C95D -FE75FE8B85BFCDAB7DEA7C2665BE899FE7010CBD9C60D31049C2D5235373C1A6 -8F70394EE86AAE1BA85549C46CD98912749CF0A49BC5D927CF6988FD1EFDFD90 -4C70E5FF9AA9AA7D964BFEEAC0328C6F5A9C5A9F00D710BA01E9325FD23F5E98 -F8E869F8442934B1A897D7C4CF6A13A56D54719B330078ACB45D65383BE58481 -AC7208E3CD87ACEC8FCA9CDB522812F3CF5A5F6FA9DEABE2948ED00D1BA0BB9C -A984FE9223EBB5D5E52EC7F1FF80C06625133F1E12882BBC4A22A1DE05091CC0 -0B013566315B21015859B0A922ED03CE9F0DAFBF7A6D752C7E4EE8F4E753A713 -F088598D303F8C401500858C654BA366C201FD4B3EC3404FE2D61B4066057E51 -ED430C0F8020168A00E93E06E01AFC8CC05988F4A5EB65938A22BC10743671FD -6CD52F2B0375E4F8DB82D17796367E2F2365868CC0E4595BEAE95D6E73D6F95E -EEAB862E561051FA2EA5540C513A5E6599C69EFC32B63BA1B23D9F8EC0258E29 -C51821FC7DC72CE525624618BCDE47C84DC9F61B0E9530C375FA638886796FB0 -DC2DF53BE1587965EC0C97BF57E98ED32DEE592C0CA69E34E030CFFFEE1E8B31 -F5C2AFBE0B9946CA0B41C32F4A42F9DADCF7FE2E55CE270DB08CA9244120B179 -34E035F257841AEF8D2659784650FF246A523FC52AB4605B892A0C701CD78600 -FA29F31119C2AA8A08048B5B957B37CBAA2094C53550206CEF14AF8FC57D4BDD -30288150A48052E32EEE82C80E38C8034EA02BBCCB02CB190D3452F6C6E92C9D -9BE6FF73ADB9C8F51FC56A7F1C5A966A77B34BF5D5B48055E8DD755096E189B5 -4E9A773B4D03EFE2AFF92C778DB38C591F0DEA98545BA731EF5163BC166E12C5 -3F74A65A87A71E8CFA0E551E1B9B79C9F47364ECA2388084D5E0C2390405214D -16BF93799F784A28492111BFEAB73D207A5DAB194BBA8E6427C4741796B63C5B -5EF0E5BB7AEC728118AC72322530EE9FFE593B71852B076E5C3E52308803A02F -89AFFADA22BC9C5E5DE81EEBD93F70BEE93DCA8A83BC6D1ADE07BE429E9C94C6 -F8ADB3FE1B31738A6E148E7BB2944195E664E5A74E5D6F3AD091677C50C919B7 -324299D1A051780C08BC1C32269312C57DD44AA61685431806F17C066F93C970 -1F67C1588D8E9E15D20C96F0266F8F7F1261DD35D11B92E18284FB1D83AA921D -24188F3B2C8335AE975357028E30EEF6FD91DCAE19C3EB4FD36E1DC5B5C9AB96 -D72681B96A81F5EDD3642EA6C9CB7D65C0B04628A5A5832891321EB6A080792B -3A57E947C6C6CE3556383C4131A085D81C5FF3516B6338857F8D7963BA42D4A3 -816D63166B57E70D9E275F05CCF5919E1CB15A2DD757AA5118FBA9B3454C1094 -6960691D063422AB4BB71491053A4B1293029A9D307A9940597623232E373604 -5B365E68972536817FAD6D590BFF8B5F19D748BE0403BC64F6FD7C3A8A5CB2FD -D0C2DDD8202F905F6EE01C9BEA5865DA0E68233F184434292DCADC66A404F796 -FEB71BFCF087EABAA056B0FB567CEEC00E85DECD779075103091C44E7AD3E7FD -0D7B18DCE3946DBA885ADD22CABFBB47588D111992E20057CA71F240B88B3ED4 -058D7C83279FE4DEAC1C822A4C0D5AF43A97DCA6A29852F34DD5709E4CE03E9E -2080BB90AF3A845CE39A5F5FB1D24080F31FDCD26A227FEEBEC6F8A2A13A2296 -EFA3CDC852DB5A8678C969845598DF444C10AFD0FF18080EEC2A13C17FF30122 -331A5E73C4F075E19311776028E01F54A494C40EDB20E5DA4F995D87F325A138 -D069D50F77D634426FC04C4DE02CA8D6154942B587D548EE2133DA53B5307B3C -7ED4E64D6733C4DC319565B74BAF0091D8911E6313BA564CA9EACC704FAA5A18 -D952BF57B0EC7799B33B9442969D7C8794A56DCDD7E1041F444C097D066B00C6 -E7FFB707994F6473DD7B0E1200C1BD3CE10DB17B4E701ADECE2CA65DE6FDE1A0 -9EAC8E966D343B09D315111A456678D6ACAFF94DCEB84484530BF052B75F238E -32C56C810FFD6D33872781212C84B0A1D6E452BCE38CFED98645E3C44C05E17D -DF021AA5DE04C401E607AADA5E1BB9DA018834D8D6527977F20E278C0579D6A8 -5C2D22FC7033F0ED5353BCA7EF8CE6155B669A6156C297AE90BB0C4174918585 -3ED25684FBBE845B6BC899BB76C2467E13A0AA652AEDBC355519E7D65F3B2366 -F395697B46E7BB33C14DE94ABFA168269F1807A35CFD925EAEF89D0F6BB279DA -DFF6A18E24BEA29D3AA8C2DAB29D10D004E0C6B020709B0184EF73DE001E330B -24DF627427DE20AD6993B04EC3D323FE213C0E99A7AAF0D54F52859893FBAEED -6EAC75FD753B15A17C5E190F6E33640A81C67E710B5D9210211C909B4DE49855 -090E103916C6C3BE89B5FEBC82D7B40075DBAC8CACC63C48CD6500EC35FA7121 -A38B98734722031C4F5B380278CAA1262A777142DF88CC3E0F7271E42835870D -F02CAB44AD19B66B96D3172312B63046F57BAE8E87174ADBA8C1A6575E00288D -C8804FD0FABEB3B4FED2DE5CF2369087F7A11F99F40E0E90B41838F9C75A9D3E -7DC3E47C447AE759544633BC1127FF091371A7768C418BE59074D6AF12381AD4 -881615B9E47991FB5692A390C73B99350A84F951ED7324295DDA3003A07CF6A6 -DA64A1D1210424232DF319970A65252F36C395ED6A6898C418F7BCA6CB248E91 -A19E9558B13BC087A6ABCD25056948E30828F36288FA5BCF2CFC445AA0FB13B2 -1353F3403FD894747B2186F9A3851CA5704B036B7B2A19E67DB0408F7661508E -E98BF576EF31BC5259F86F768558F21CD785941605505AD1EF0AC7CB431685D0 -4AEC2297CC7A520B01CAAE0B19692D487815CE5E427F632E1F66388597588292 -1C10AABA5C8DD8AAA59054688A8D8D43514CB35403DF0E1B80A44B4B3DB3910F -2E07D4488E903267366F29D22DF959A9EDCAAE0F0F344D5444F34F0FB95A642A -E79F213BE986046F80FE75653C42F21DD771EFB1ED519E82408D1FCE4ACD67D7 -B3F7A197BFF7EAB09EE0CCEEEF9F047BF8BDF6002E585358333006CE5CCD24C0 -C778765C94AE918BAB1ECD4FA9E6A21FF83C9996A618FE97AABC4389B2B984A1 -F7E52F38F14FB54CD9B0D393A36CBC21804D2C5B17D2157D0765EDAC469D7DDA -23451DA653AE64F37F9BED8625BA3ED6DB78E2794F0AF48EA2973A5982DF1648 -A1563869E824551CF7C04C635AD5775B4003E406C8C5A8B55139B17C622F539C -A107C14E0064D6A981CEF5F28759268B7090127F6FA3B78CAC4C17EFD023240B -91051243141ED22491E2833B829EF3D7EE6201538D1ECC9D440B3BF24233851D -0B2C290501E251DB76EE9CDA65E1BAB5A873C1630447AC33F0088C0EF6728AA6 -766A5D4527F8616DCE633079F46C8544B973322FA44F74DF1399DFD605B6D3FD -DEA0A819004E897133D75A1356597D4AEF99AFD9F17C86E340373678C84BF7EF -13BFD5BF50AD1A48265CE603B1ECE2CA3586008A965FE985F52A5A15163012CB -0CF0E25CED742A023FE72C6BB3C55D9C176601E9CCA867AE8AF8DC221DE6D65B -769292B48547DC9DEF57429FD0A7EDB9F5557BEFA857D34FE38EF2080079B69C -10DDD6521498B1174A0F616A4E0297F0E315B4BEDDE29E992A0F569896F8F806 -DC2FEB8870611268462F7B81E4AFE52F0A33BCC65C7689DAD41CFA6C44C2C982 -DB346DF0CBD58E019B1F185A837C00D87866CF35D10C7DD5C90AA95F63B0801D -4A8202076FA80C87EE9EF56669D7D75F2910DE386A2D7914A939583C52D4ED67 -F1A3FAF35D6199D7B1C5B0C25AB1297CBA2A7ADB118EA8FB645644B1D9F70D9A -3257C601EE91BE7173EFBE8493F1000F7BB8090308AACC86530D4FFF655D78E6 -802C5A60E1C1334AEB26233A2C95DB11F42F21A79830699157AC8FC580FF86F1 -F94B9CAC3BF3058BFC86A3817DE8E54F71FA09AF16455BB4D58C96D57670E9D3 -3A251C750D85053287C44F7BC1725194791DE14138B8914FC229BFB6B693F0D4 -4E86E91B99E53CC40088D6B395AED705747F43B7BEB98CAAED14FC94DEF17972 -A0F12C2C4A6203161C169DDB2AA3194148609BE6A37168951051E3C8C9031BC4 -9573690664AE6E78BC4E9790AF23A37A92F6725D7F0A06D91B80D995B4CEB72F -B5887565E3715B6D6AC3B62D24DC1DD36E52717CEE3A1CD240831D8C0D2B1C8D -5DA96C5A37BBDFF48285E2AB64404C1F3ED269C20B549E5B6985DFFBD152981D -4BB8B235350A0B36F5A2AC7C88BA130E2E71207ABCF3FB7F60303328C483B3BD -2E39A770F50F9E6CBA363EBE74636981C3F804D9933C42EA25B16F0961B1E427 -F26DCE8C25BE416430166A5659B1BBB06BC5192FEA829B945620B5C72F808482 -1084CA85E59825BD5B961C372B3188E10E45D0C8CB31F3A72E7B47324E8109F7 -D5A73F45DFB330B1273E0B6421DD67656B7FA37F2949BF7695004A1EBB2B6646 -D64BF5A7E3CA481968C9F5CAAAB44567FE9E5FE4203254DA6D354953FC00263E -3CBEA82739CB8F073EA6BA466E81961DD2141DA3C6620325FCA6EB955AFEFF83 -6DE6F1BC65812A43B68C9831BE67F674EE78809145E3B818F9DF5D4AB6F2A339 -5FD5152BA40F1DE2D561E28C696F86470F9D93241948D564D2F9A5A84051CA91 -5E99FB9A73A09D3B84998BD436DE6BE94AE85C4E65922DAE9883F6D8E2FC8F91 -12E6298288601F1E6EA6C9A93D0A985BF65C0861D5F4F1470A4F30677BA419B1 -D98B8F673224634255CC0B3EDA46B1A72B853B0ED55DE900E2073B6A9AB65885 -98D731267AA62704BF53EBED4EF0EC1BC81712BFFDE2620B6E8F1D924BBE43D6 -64947E9827909840F6F0FD6361CBAF7F72CA364C76AC3E0B1BDB7F27909A3395 -5215F7BB7A39E8DBCF953A18DD14E54F6DBCAC487F6C4899BD0C5FED5014E146 -7B9930C0395C1641D031A33A39022FDC4ED1CF31B8BC6C8B7DBE166CB80248C5 -8FE45DAB0A4848457AE5368362ED57B222CEB65D46DE4A5A6866C2F7BFF30391 -4967A00EC64DB287BAF019F439CC48FC535BCAF9F1E8AB6B2828EB44FA2FDE65 -A72708D358223373F20A7C1E871C67466255FCA992024119A3C63DD3ABD834C4 -696FCDB385EF7E68BCE76E49E3173B8350912414A44DDBF69E0DE351BA3B8BD0 -C5EE604DA4111C627D027142E63BFC1AE0CDEE2D9AD330368522AAE431F3EA44 -4F91038D8AE32888943CA50CCEED4DA6995FA0486531B9CB50522E2272E0AAF8 -1221DA607DD7169606DDEA719306B8E60956BEF41830F63CE6D4D85F6DDDCA39 -06915E39263AA9F03BCBFCD120D1ED5D75FA2A30856068063CAFB48F7B8BF2D0 -87E661579B919468FFDF37B5A85DC4D84CE5E477C8F8D3FAD10D0608E64E1E0D -197FCE624D68F400B620B145AB330DACACCFB93EC1F3BB4F53FCA4334C2DEA36 -50F71BD0D49817FC80DBF7309FBAF89D48EC8FDD76B750426250031431D5D29A -8B762225F03D13289DB062EFE903C9605F44100B1B1CC43569775621EFBFEB7E -E5F28CE733E8A32324DC64F354F60F82D46A5EC2076C9140A18B823C7709D2BA -C6DB5B9B90E587D89DAF0F9D0A160BB475CC46487C0041D6A590FB028822AA22 -A23B650C640F8451063808CC90FE32D3F4C8F78FA86D8899A261E0D7CCBF0DBC -7E21CB68D12D79D889DB06B0B035136BA48C69430C5B515E8667E4FEEDED2477 -A894DF2D489727CCA1D940685D22BED725AFB3340C92C9B5F33E6B8FE5FC7E3E -E807CB781E2093B59BD41EDBB9A5C12756A3AE9F79E23AC2674FF955EE0DB1BF -67C81DFB9521BAF79E65B604CE4CF37AC60AA5C51E94213139C100E53F983786 -72F4EDBBEA94565C5949FE2600696843111B48B62C637BE86B852897CCBBE453 -D55FBE2173FF842B20873B56C3D5977EB3D8390CACFC84710222765847BEBEE5 -EB746A8B1D4CFC12BDDC719ECFB31E17131C8576E783BC1F2685B6237C3EE905 -6B28EA218F4D640EF9A5169EF6C7FF9C83EA55D0E99BFAF239853A72559ED38E -9E001A519712A1DF46CA6F3E38D7DC2079C6536CD632F679E82AF88D938ECB6E -ECC80F0A00362F88F790D571562D26039AC0B1AD914EA87DFC74BD6A05E41038 -7286CAAB30AF6A10F424DE7CFACB6C4DB413FAE8B01503431AA5404855E73A27 -63D5278E57075E50239E18B353F64153B2C0C29A6F80B845105332B0AB21909D -D417D315C739ED4830D7F1E878058D21272E043C692F9238FAAE9F420CED97ED -F3A2D0684A0023E9A35257D9BFEAB2D413A1D91E0D769F086FA09E6317313182 -5730A6012CB634012F0EE5B988A3DC36CF543F96AC644BA5BE97E1DBAFA138EF -2DE7C186DD7C8B6D47198195FD69F188D32DFABC2A189E255C057A4306D00C6D -CC87D77F145235C2EC89B8A39E9C0E0EDAAC16555D22A47145E45B8E0169A126 -DD517FEF75B15F61B8A6FB03EA062CB6193D838C279BF2919DA1DB93DB6E5E2A -1503CB67E0EA17C89E7881E9BB1113EC74609BF9F73128727E9AE03B2B4EB91F -8C3F67B17670CE45004ED93C1EAC580C84A5F887B5BE940B420F3794336B4501 -4BEDC83C00F5CA99262EF27A49C8400FB3BF90A1F58CCA6F4F63E8B485706581 -49F6960F4CE9A68E0C495DA28496F321A94C890C139184859D60692EB5F3A3C8 -7E4381B5BABF2E3E35D2ED937EAB01ED6B62DB0B437A2D0AB5AFEFF8C3CAC5D8 -EDAA67101A4D7DF305F88A1FF091247A44C258EDFEFECFDFC8580EE1257A75EA -0420EDE731D79F08D0F5859C843BA6709C3323CB47B86E9282FD53F41446E001 -3674EC094A33E51AAAA7A0E888FAF86EF287E75694712B89AD5D1B9A234B0211 -242BD1BD761FB5BB30913AC4C52D135FDA462334E73332394B4665DE09B0DD32 -6CB361EFDD4D30012531BAAA37DE7CE9EAE257C4C57DCE7BD9169878A3A64516 -00D8B818EDF2A20F4B7B0C4CFF9011173BAC73709F3121395765E4833DE7C48C -062DB0D3B1044656A412265C4EC94BED0E7B0E369183EE5EDA14B52CD2B490F1 -5328EFA614DA2C12BB8B7605E83FD14414307E654F802F8390F4114990C7ED1C -893231A96CB55233BEBB3B7DFD381142A66D04A91B1B39826406FB4AA0785DE0 -E85B5100B99F11DD2B015EC225308A5C8927AF66B0A4A02DD48E0B77D42FB9F7 -BE310C090C90F38D9F9C788DCC34FCA9515B816E43498C74D0C8AA69E41A4253 -74AEAFF24FC876F6E6F459D6B91DC0A673946445F700CB4447FEBA15D35C6191 -1D38C5BC7D0CF053BEBAC67375554290C0CFDF4C58157B88570C5E4BEB483235 -8F5C62F11561330A09B42A581220097D11AD82066F4C71A4EC61EB4E237C9B4F -497499E7F583FD2ECC6F0E11DA8EF48C304338638683190586FEAA67786DA37B -D1D97ADB91C03394F167B611CBE2F140431CE9CF68AC0BC836AA47F58C03CE9E -C704744A7AFA967D39A723FD75A732A14D97F87045199A988358737EF81B6542 -551DDAEE7C9617FD7A5C7200F06381E5F98EE1ABD3ED6D6675CD3E42DB5C3E13 -1E +84F4ED39D8127CBCAF9AD48E9CBD10A67A2CD0CF93D61B0A2266A5D10C0D1B53 +45C41DCC3245CB3488020BF6049ED80E9A761F13650E3438D14F0EC89C11D18D +E44B6E47887F7BC25AFDE2D512647277B9CE23AAB30B7F1ED5DF84921B567F16 +CE118D5A71B65A72FE62F278D04B1311E20739AFA6D0C911CB0F041C38FC5E0F +E4CAC661E2D9102EEFB4CFE26354CA4BB30A07F2B686F1A4FD8EEB048BEB735B +A14E7905A8A538B98AC7B6C8E329B6DB2DB726C5B2B07E26F9C90A4E76C69EA1 +D928BBD0E1CA65D7402C3925A88BB09C7AA025E178D6579DA73010BF80A1332E +63C347B2A1911FF3BB0D28FCB85ED78684BDCC488A7D4D2BB91BB593ED517EFF +F0F618EF3CA13C5D281820ECE618DF32302A0EA74D7A956A0304BEC2B6CC41B1 +60A2BEE2BE369B2D9BF516E1379DF717F0D6DCDDD7855BA1475AC908334E992E +C84426AECF7209756184AE6CBDEE2005AFF66C89C743CB682403750794A927D9 +A00127CF00165DE8D171DDE90F403CD145C0B7AFA9BD46C33968D50D294148F2 +99D4B9424546FC2F0722BC22FCC5C91FA5384C95669931A721F15F0FF5752BED +6477E8A28931AC48A54699C21DA1B305EA37C12B24B00E7A0A2C9AAEC359FCF0 +18AA95A4E5701E7CFAA3D40F82C4CC20E27E9E47ED47767FEAC71CA0C22724DF +4A60B70242C35BF769D1612031ADE0B3441925EB80EFF02BD1198FABD652D0C5 +CB11A54728D9093958A5F5B9F27174BA5FF4E59A1432B21DB95C262D3999AE8D +3B41E4E5091B55780DC9F4303532CB055E7B24768E70A06F19F0F794D7F62239 +6ACB7AB588C7DBDC9B71B38A92947AB68AA4D62EF3A3A88B4D94A6B7EDE12B69 +49EABD0595AB29374374CC92553993F18AF65CAF555ADFFF11171FF7B18ACFAC +E87DBA35D6FE93754F475043791F00B1C1AC0796791775B22DE7AE5C04828EDD +DC30A00A6171300C6D65292A3FBC28EFCC8019CDFDAD405F8E29C43CCCEA3B0E +7A7E8526F631C35857CB9B29CC29A6809637444D659BE385375395A6CFD5C44E +5461CE4F66B114DEB16F2D38968512BB9F3D19D08C7E703F1FD705CCB1AB804E +107B97B09D1036A7DB5381E9B138C9233C265AD6276F5C1F9067F58B82BED76E +53B450BC3C015769AA7114DDA03FA38DBEF4A395796C7DD303CC708B118B4D63 +7A702B99D29BE641BFA37F6FA8BA2EACACFA57A1982974F77DF26A9FC28BD110 +2DFB33ABBE73E70CC60C8467CA62A943187046A0AED988A3AF7651A69DE5FA65 +F2EB7948AC50F8321CA69E02EC5DCDEF33B591CDB6B66B6B1ACC58EF567B92D9 +1A27162F811E0A5D55CD6731CD237C1F912BE6382943C1F4524D606187819BFC +A850FEB374775960D66693F2B403903FE44163FF4A0D45E21898716AAA47B981 +25274AA20F0BFDBCEB529C417FBD16B9F31AE20DEF23166A1E8D32150ECB2728 +EEAC9565BAC22C00CA9D4F47286C7034E96EADF138F320D1C18AA199446A277E +FF8FC90E337B6E04FF4C46434A8ECF1E411E2BB12175CF3997C62E1220CA6B42 +64D03960C7C5CCF873D12B4834B73A32FC8471F14EF941071B971F1BAF36B49F +8CE1310F09D42A217861210066766BE13E7103BD2D8F0486EC592B99F38B9B89 +AA15010CBD1D19BB4E4E2C321FD88C2AC255427AB2B4C77572577D4EBBF493BF +FE24B8739F771185D80120ADDAE236FACE47778E1E04A0359D60068BD20422B0 +F3467AE613FCBED36B4C9D131E854A80B01DEC5C4FE955AB5CED1021DAEDA722 +DD1254F51EBD07AAB22DC0765F57191ED0A75FDE50BB145536AF35C3017C6067 +CFF6410970179923D3B9765F633D991BB8F8BB72566E748D76A2649E21D98590 +EB4070C5777B195B8EA22F9EDC711AAAECAC4C3CDCD19181E63ECE52A9FA3B85 +08D8376FE890668FFCF11FFAB44EFBF2720375B524057D350EBD718D094D919C +F97CFA593D48847FBD6170595943405A019CAB17B75CD4DABA1610F3515CC01B +84222867AFBFD9700AFCA5E57BBDBDCC8567235F3704949CAC1B405E7EC3ADFE +6B3463E0D6B5706557B83172CF604B8B2A58538430CC7DE33A5A6E169D18506F +3FD7F0EEFB083D6300B16150FC27801760DB690FCE4418F0B410ABF1573D3F5E +603D73D40679B0F1B842F708115C547C3B3DF1E846D52AAF8615FD8A7DE426A5 +3CE27D064FE50903140620137DC9651E646A0526BCDE4BB3F1B64483C24B98EA +7361FADE8BDCC23DD19CFCED7EA733FF262A7FD65CDCA423A14B27EB321D34D5 +0F5F90FFCAA3DAC323CBE5BD09BF91E906A5EBBEB55A0190099766F2DB280096 +335E5E5E3F14181FB0699B6C267478D7CB48FB6362FF72A453A124CBBE0FA8ED +E42133899E820915B6E3A8B0EC82E76FDD1D4F4B27044C27538717ED0BE41B9E +89126E513104BDE9A5453B1A73CAD8976D13C67C785C4028860D02CDC2DC0645 +AAE179BE17C49DA8A6268AF82A8A9FB8A4F26D3E4C0B5DC7AEE18D2BC95E7B8C +F13FF31F40AC72047FE48817E2A2F71D77C81469101F19CCB7B86CCBF0364FEF +2CC8A915B20F9A949DEF1A45A1DDFFC88AEADE0FB3D638931A84CAA7FC10AE33 +02E538AA472D951F2B97B21A506D1677C5FCC30BA7B5443FBC642179D253689F +2980471A237F622A14A570F232DD885BD8F66C2449A8A434E8132F8D58A86BEC +48D627687108798FB4C8A84F5CE88721898C687E6DC0ACEB47261F89AD9A3A1F +44B63C73002F6F338BA880CA3DE4900C378542737263264B7C2EC21953744548 +DDFF14BF008F8429A12484304DDA3C4F769221081D1C75F39CF785B11DB4B6FC +BE27B473FFB49160DA29BC5C205D21CD2030BE08E406747673A0DB0720A82363 +950F059413D4994ED0A9975D4AE94D6580B1A42773F07753090A9BEFD093722A +0043130256D4A7A2ABFDEFDDEC878D8098F373E325B16EF7B3773EC72A011B76 +4357BAA1A4B56A8D8C8BE988E6F815FE40CBCD3BABEA9A1590B60D891B613C27 +7825F6058B0497C7C4393467ED8DDB8F88C15087E623AEB6D05568E4838E388C +EBB708FD7386DF5E020B27F5307EF401DA3C4397B8A475B40CBFA4E518628F5E +5A1ADD4E79E14E72DE0D3DC7C1B6EE2785D4221ED22F8A2DBA5628C897A35A5B +54A1767DF59FB0569CB787AD82CBA050B2D51275176EDCABEDFBEDF7DDFF9AB9 +8DFB0582386A7D078845811041D05C82FADD2DE71AA5004FA463B04DBD60CC44 +D0057C4C30E6095D23B6A247BA70CACAF81A4BC0373816188395888887CB6784 +E24B5A65FF3ED9DD681FEB4533B837D4C2DEB1B9AA5DD0A3118F88278A383B94 +422438257AA993C9EEB0F45C12DC1C93B5CD628B2010628422C5A66A1B7F4418 +6F7411CC00A36AB05E3C4A51124677CBD417F3E72ACD5C705F01E89CE0D1E726 +70FB8CEF1879D2152B177B3792CDE557C67C93D220457A098272879E864E020A +3878BBD1620F05303400F0B537D222E742A9371F37B781BB0A720EC93DB5C099 +AE0A2F6E55D3C694EEE143E3133B10E3B4502B8041FAB5CAF6418743A1CA7D7C +AE0A8F29973ED9B4EA82D0544DFA406C011E42865C0836191FE2392EDF93E89D +99D59DE2B4C09074DA7C8661AF0A9E37E27D6F07252B30B2CD24D2636E5256E0 +3E61FEFB743E6E87267C163D43673411F3A14F891DF034AAA2F2D2AB133793F1 +8CCC454976229F2E57874BD92979A4B94110D630E4BB02BACE6249BB738FE96E +24087A965AA5D0684A252F1C732F1C56AB9F5BD0164237A5BE15130187518A21 +FB9457DC12600A4236272499986F57240ACA7268D9990F1375877C70B742AEFF +F20557F43846233F6114F8C174FED6DBC3BF7852FE5628BD5CFA250E463E67C4 +753C56B9A10AC2A4EE4EC9440447F2E7371550BF91511C8F336EF9352BC3427C +FC17B8B8626066B1B5BABDF1D45F33C7BA4D4F0C43F5BB9FA2C36583A7FAB9A1 +EF21DF17575CD5DCBF606E564EC87C63D57B7CFC72460846448D01E007093DD9 +9BF57E18910E472790D29EB88DD1CDBA87910C6C4998308210823F992B29C38F +0C420623347BCDC52751A14B8ECC58F27B6311C31A59F7661A21D1B2B5BC11ED +68C807A086E05786B5E6091DBA26B2C4C2B4531C1A0F9AC0976F9D50A1AFF8AC +DCDAC4568B88EAFECAF7BD1566C4B0B91385CDC9BDF264E28EEA33CEF4EC51F0 +3EB360571E8CFAAABCEDCBE7A7D93E4582176E2868D2281EF5FC7F75CD7A9017 +E592C375B2512D2A3D6CB8973A6300B64738A8E4C1FA9E278A4BFAB2550A2309 +770577D0C5ADAEF4A028FF5D551952B86521144FAC12ECE5E5CFB45A80EF9D62 +731FE38839CBBC64B916BABCEB5A09DDE1135705D6AC4D611B760152CC64B7C4 +ABF78206B1992A27122D238D24BD4AFB8379EBB5B5210B2E932E983B77AE1802 +9C892AE8DF3B36DB44DA461C9030A3565557E6B15F161386A8D0A1D04C572DCE +7C23E8790A297B4D866017346EDCD257B4F0DA96FC30A4F529BC931941479BBB +261E17511C9A779AC39B22F0343153E7D835CC5932091EEAD47CF63D1E730A0E +1157D3D259EA39E202C783941A73CB7C5603A673C03742838CC7BDDE32E1350A +4A86F40FF34961241E890DC311FBE8A36E4744A1646EEE7A207DC316F5E25CC7 +E3CC4F1BBBA3E36D6705F45A4C379EF000D59DA15767720D75611496A9D632CF +5621F0969611234AB48FF342A04C6293D5472E457BF81D6064EDFC0F44A9E5AA +1B772D08F49162E5FFA2BC610C0AF91921B51EEC5D6B7D2576033356F7F33FEA +DDAC2B393312FAFBB7D17E952BB152C38A8384C3FF701CB671347EEA29D4E73B +E71D670FA1BA055DBFB487220F6BEA357AD8ECB3BCC7F77DDC236BAC7CF5FEBA +7628F5EA10233713B3891C6B67AAB0D3C6AA594D80713C1B96927AF89129B69A +6C043FCDA2F352A800802330A8238D638F798F4BBB7C54E9685C3CCEA32751B5 +717703FC2B0D796DBF4766A7083433B6D629F245E0DE0F601FD74158EBB0F134 +B72B5D7129246E2E2FC5673C1CEFDDD822C4806C9910A5326FAFFAF34215F3AD +99C3113E50EBBAEA9853BC56602BB053793DCF12E4B873D3467342E27312BBBC +D02752C3B6A47CF84A297D28BD3FD25870114A55A323551D028669C37FFAD6B3 +99D786057CA02624513B073C9C29744954FD5AF9AFFA26AE9C15959EA884E16E +620A7A138CCD2181945BF7E101D4F06E6F5DF7E9D73BE317B3661B35C1F62214 +E129ADCA71344C781E6E9E1ECC9A064386E7DCC3F768E4F5295F6E9387FFB146 +C10166BF0638FBB7662EE484158957AACFD2E82BA237DF4185924977538BB8E3 +CE992843305EAB5FD94CAA9E0574EBBC8C5AD0C608E021BF091E8B6B04A68ABC +EE8F2DF7CF10638294335F0A60E765DA7085007640C93FBE28D36C25714F79C2 +36E58ED9D7C7C2153D2F3C826332F9CCB5F8B885DA1BB7B4D50216799E96F40C +71C3D18FEBDFA61DF3ED1CE1FA509E8CA9489679253753EC72F75056B312737C +5538EC44A03324D1E1673B30BFBDC3F7F1E39F7E89A1A892F400A067C626CDA3 +4707C44558CF0EDFCDFF49AE1688FDC33C0B57B8121A747468D353DDCA12DBD2 +BC67559A8DDC13ADA201E39F2F9E9EF489DAE46F67A4D7F0FCFE5903A3414CC1 +8AB5B2D964B5B61EF371F898F904D7E0C2D61029AA0AD17A67E47729FADF757A +A480EF93A14679F98A95578342341844D7269E0E0097C5806F57423842E77D7C +A61CD293CFABEDC397979618F5FE2316FAB4176CE3F61A950A54B2F9A3DCABF8 +33947FB1B3E95324A3E647349DE49F4FF49F22E9063BB476E0AC14610EBEF55F +925B1A75F831C3C723DD24FE40D8AFA87D9469FF04CBCC871291BD6A3713B5C6 +D7EA7B5D5DDFA9CA257554746D78B2B36F4516D9CE6FF8CEDBCB31D030195FEE +9BE3D95139B498DFEC44E26CAC2A77B010FFC5A1FC4195BD901BDDA758EDF749 +5D4FEC73A568063D39ACA617DA80F65633D42B0CF1148FB1E7C5CA25B50EA90C +54441DD7FDD559ACDCDEA3B571FFE904FB56A0B771425D74B952B7EC2D068A0D +C12EECD513F6AD5F301F2DD46687EBD7244D719D77AC5D4FC76CDF4716A477FE +6D5266B9B0B13191B2435B550D1A38B17A750B64931EDA6FD26D8F90222CB8CD +BE68C829333DE429EB35BBB9F360B2FFB7780BF956B672D1E16730DC876DA3FA +8DDEB7F18E82E51FC575B1ECD64BD0CB3BA3E76145CAB6C3576FA8BFEF56BCE1 +E24E14FE2CBF26417F9C4CDC4C965D056D51307E9B2FFF45179F188B8D2D0C10 +513CC21A84D27B36FA0A14B70DEC21D427BD874B773C2EAF74CF2DCD04C0BAD8 +DA72D4BEE652348C712A391BEED641D1DB07D07AE62FEFCF89C21B427190FA84 +0269E59BD51BC2774D51CF53B7FAB70546D5F58DFCBD710A56BB6F8DEF87F1B2 +9AA5B8DBCC8E61307B42ED560CB4AA68C9DA56B9A2C2E84A57899339FF1E896D +2E78151F38F22ACC9C6CD2F0BA1DE426E42F6F8B4210AD772E9F6ADADC8D79B5 +EA761976EFE602590AF7A976D1223F68F86C2E36ECAE00825D964237E832DDBE +E4FFA28E876C61749F1C1BEA793295A5DC6E29A729FCAAFD6254E9EB5D292743 +2707953576A180A0253B6EB06C815EA1F9DA7887BB4EC2ACA690F21F1DE1B060 +001D1E80FEAFF9505F1087B35F32201F1E0E891AB42790CABFDD8BA21A80DD9E +4BB15CA6A92C2379BDE2340B54075E1E4277C27FD25331736C1594A0A1F54051 +957FC4AE2E467E386F9BB644FC26D47177AD50F20141469E0771F07407828A98 +CA3F10F1EF3431B65E9A1407E54BE5139ACF2EC930AD3478E54459C5E48E6F9D +C6EEED387822A391C1AA8793577D8CD3BFA9DE45112128A93DE58C49524A76A6 +0D86BBF7261CE424330B4DF642037C4CBD30A2B0A000B4D970CAC33F828A09A1 +605AD7F89B617C770DB19BBBDC5A4A8F52B1CF312D300D0C0575AA93E9F26418 +3C82C196AD529AA52D0EF942C8731984A668A5C89686E24F113CB5638DFA762A +90DBF8A8BDF46B1118591C7A841D8D56BF5744DB63AE3FB3538F815097193B6D +59033FF0418DDEB7C0CFF6D4517A35A7B4633A4350A9F9AA7CD5CA8E8E0AC353 +B16AB3B903579ACBA88AAC575F298B5BE14995A76E3084E578FE5230F45FB1E7 +B7B9D21BED39F5B2C117A6AA21FCC00AC8D1E2C56AB24AA15E97EC484AB788E7 +C640F05DAA0460A0B4E9C8503C20BE5D42029A3A1FB3FB29B0E4B2BBE59505A6 +F808449902CADC5620489BA1ED619B4CE1B83E516231F07472B3905CA8CAD8C9 +3AAE780F0FC1FB4F9771F9E27E3DAE55F75660904057C015CFD3C2C21394AA60 +6F67B304AD1BCF0DED6D671BB89AA2AA50BAAEDD0B1C04773886A04ADAF60C5B +CECC90C741804AB20233ACDC0EA1CEB4D3C6B0DE10AAC05FCCEA939B19B012DE +2420BB17D8A1989B12530C1A0C196207F0A653615CE0BBEA3436562DB70FA750 +5EB5C7449E0E797AD2B4D226FFE75A459867ED16D62808ECCF4F42E558D32039 +18CEBDFE50DCAB0A807C02B8914A482166D3EF5DFD7825A70A163B232BFC6D35 +44419E988103F5233D64583F54206F81D17B5C2C103CCD09552DC1DD3C7B014C +A602DEF221A959CD5BB9ADE1B392D9FECE841BF9393EBA6096E34B0E0F071A56 +3007E9BE2309AA3938CD811C204FCCEB780D718DEE7FC4B54864D6A8EC6E5A6D +CC5973F89180D77D546C98CC3F0B1BFF6CAE192F7BB56CBBD572C60EB3E32CF4 +351D25A91AAB05E506BB34103633F12F96DBD4A48F7860A5A4AEB2F5AF3C26E3 +FDCF7D711DAC9DA853C4680D3438242AA4B4F31CD30730D2BAD60D53EC855904 +52E504154986FB18D70B388BA034D613EEA3139C9D345A9C32645464DEDA4080 +5AEC9C95622FB25BB84AEFA350ED064F9F6D36D065AB5C3623BB8C530F450383 +27693BCDBEA43016499089AE96EFC1674E0C781C3D57035C9EF683EE7AA9B0D9 +129EEA4005CC5013C0125340CEB995974A3C5115A337857D9A64432C8E1DB730 +34A45C5444799FDEB48876A9FE5967E2DC5CEE966FCC7B6D44AA6646A6866705 +B03AAF1680FFD7AC4532DD9236FB93E06707CD473A784F2A0CCA080614532841 +FC6E17A3EC2071ED95630A0BFFA5E193755FBE6F5E47BB01F2D001112DC9BE21 +321BB52EAD97981DA21ED58C7EE9F1222CDDCBACBECA9EE6514F44EE67F9147F +4EE0AB51013B5347406C9E68E1B02ADB349F1683D97B11BF372E40BEB0933E53 +47B85006E4D890D1FDEBB3DF28F979B38F35D2CE40C2CF5150C2A3E89878B423 +9F276BD4DBE2D360BCD56EA90D2D2E4081FB2250041D7F91FED785256EF63DA1 +2A5E309CF063606B4D459BFF752C1FD839ED7B34CA9E35C640C74CAEC1B4E4F5 +A4E248CA558D5DD00A353E7DA3AF7F103937A1929A08501B9EBAE0C5E9370473 +D129C4D85F926E8E9EE2F66F24EA474ADAAD82BB8E7776ECB6B04D46EDCBD2C2 +3FEC310DB22C105A3781ACFDC48F4CD510E78DEC88D45551AB54D3E7A592BABA +2DB6F3D69FA6C76F824FBF91E601E53E9E1789ED7D99E1EA1C2291C2B8BDA2B5 +FC8EF6490DD3689B718A60BEA5DBC7315E90C475DC3A8777F0507D26A89FBF32 +3D65AAB9E6BA8827A40FBE05E8101D678606425930695B7212A53B06B723E99C +E8F4E1C25B6C605996E3325B03F06F8EF607C53BAD9D0457F3FD3839A5A776E0 +8009C33DA9593A898BE25FD4F9410FB0EF1D2451AC04210CFD2350D093EB0E63 +DCCFD3D9B0BD93201E22FA29EF190423156398838045FFA8A0C2D82FBDDC031D +AB5F28D4C4F599240AB650E4E464630776A69E189DB265F5CC821BF1FA583F62 +B0F3C95717D0588E37E6ABD75997E4AA9C207B2A0D72A7F210F90B9FE4ECECA0 +30C4C79401EBE7DAB29B8F8CFE9DFD8E2BEE13F60727427BC341C1C458C87C5E +2BEDCCA1C57859C5E6344E73A8EBF5C69B8696AC909FFBD1827D8627D19C6A65 +6E0B30B4A3798597BBBE6920CDC6FA7641323F9BBD55ED9594D3E7FFB8AC2A33 +103B2AC07CB3F3F13BECF1A1004CD335B66EE50070B73A1995D92D37B70A6D6A +F15C733F684ADD14D0A0FC72C4C85409EE499DE4880D0D43D254FE64BE0E0521 +299ECC1A0006A81FBB29436C1667DF12806067DA65B1065F5D13693EB6E7BFE8 +73C96D74DF79B229A14AEEFCB3BFA49AF4335E39C4F01EAADC45B8CA1985ED4D +204FA17FD2292159486E9E16036BC2DB6DFDEA0513B5EAC2E330230B3E480618 +F10FDD28EF6540BEA5176780DF7F6E1F9266C16D6B3DD4F5913F377DFFAEC6BA +5F46E222AA879FDE24C7EB91DBBFF972AC2E046580E9A08E7743652909CD36EE +C19EC34657B85CD9972F117AACA53A5CE725A4034B7C5E924E3605475A38D237 +DA7D847534A82D4C6FF313300BA22715F3D860A69218B81A428D991B9E4CE68C +E7BC3702AE8460E9E987C34B2B99447153F5A3B258946D6D89F165BADA389A2C +19AC4AE8EC3B6D3DB19A153C9418628784B0451DCA07E395DCC7703016257C84 +B9B982EAB6B28DC56EAFCC747DFF63E58017BF02BDF382C42855D313DB09C185 +115747F9037DA3A1EFCCA66A1273B89D52BB24A71B15D09CB7F064D6B8FF87D5 +2548C8C2F6263B7C1B725DAF2259092618C0626D8FE56BC5503A727A0641EFE3 +52A757AE040862B287369103FCE96987DCA9541E7572169E7685E46CD859EFD3 +ECBA9E2AAD5C0C6DBDC10691C0A33D3F2828EB8750B38A023D10F03545947991 +AE73901A3AF5D159D08FB7B0C14C318B05F606469E014C24373B22D3FB5F613C +54338D3C963D5A4BA0DB432D1C8D825C86478A9D3010CC2F61B0A78CC9421E8E +B3061AF22FB8AD68CFB67DC52256D2903FFD2C2E2625AB396F2AD254C62CD95A +3E1A80C0A683B7D46CCF682C8FF288F48940116EE40DBA2E3F2ECDC5E899613B +587C1CCDEA37B26DD65B20D1C5410B91064EAA71CC11EE1512C308DC0F531D6D +321FD8C67E1B01E2B624459F31F4935F0BA76F0156008EF59B60D1C31539151A +B99E94CF328C6D024D304FD8152DB5BDCAABE4BC885FF9C18D01727D1B07B891 +A61BDBB3AC8F10DE2974A803FEC0CBDBFD92D04A4E14AED1F275B46E485E6B1D +7C905051A643BC92E50FCC4229E08ECCD400032B99D37D34102A25E12F040027 +F6587991C200A76E654665F8B6A76B315C13F5C3A0231FA0EEF44212A07E878C +45C71818EBC120E6503681985B6E2F823767E2840575BD1F0FECDDBDB49B93DC +07952607A2FD0A5B0E70FD2D884DF7EA37D724442F9D012374D35BCF322A8C21 +CFFE14A146B5C64BD584CDC9979F02AEACDC60EBE65EE184621ADFA04D9BBD9B +C2E56BA990CC24FAF5D65EA80578A2ABEBD053780F2B9BCE917A1CCF34C8AC43 +596A571C7832DA1024A8B274A7E8628CBE9488E6B1D42E2368893EC54E7FAD55 +A207A74ADBAA302A10286906503432A3A61BE8C2A28B2B8C5A9BAFDD1DA5D618 +AB8A6567BD140318C85662F46A19169F13E07DCADE1182575D212FF6576F017B +F8C0945BC7CC00842B2D74985789C360C3AB4D76DBF4391FA9C1F47891F67F19 +2CE34FFB9ED7B6EE772B510D3390A1FED7A893865BAF4132F91A676FE24680C2 +1505FCED53401B381F3D1F0A7D475CEF103E43FBF7FC1BB18DD57C99B756FDEC +7E31B3DDC977CD34D7B577051BFDF956AA6F7C61575503474670BA367115D60B +87CD2CA6233E932EFC1F3E46E408394008815BF09908A5A62B5B314B8DCCB3A7 +9703351F62FF48B58D64792337FCDE59F66B21E948D19BE95392C79EECDD0647 +173DA0A65F174D9359A0E09FFAA5CD2A40D397DCEEF56C5F94C0EB856C40A70A +E46E0FC2364BED779584F269C4301CA425F05CBF99EC441DB67E15F6F66339E5 +D58D35085D0D659510EF769570C239A67562E92362CF1AEADED5C70C686CD434 +2D6D5087C5254AE1BAC0F58BED650E22E5EC6115B1F05185C01287E8F696F05F +34CEBF284A65342BE596CFE2C41DD8691C0CD346FEC556C2A752335E159876B0 +8E45B31F439CA3E244274F82E945EFD6F2D814E5237C51196D6B143228FCA788 +AA63CBD035E5989543F1EDB2CBD17B09283DE5380630A194F8189ECF1379EB96 +3977E67F934BF98508D20CC63AE03772C9783D7BCC4997CB8B237F7B9D7479AC +D7DA60947549215209F86833430E1977C1396CD7F60569847349FA3A89ED12AE +51D230288DC4D775332BBECD96FC4C63CDFC5C580F45BACEF0517DF7EA5E52C5 +63024775DE8D4EFF10EFE88DA538770EF6A3B11CFFC872CA021275F3311F7B08 +C0991FBCD679ECDEC5F89C1D6FFC4D328A0632CA07808DA38967E2AB1E83AE19 +990360D6E53DEC1D1B15C069C93B58E77785BD24931EC5099E97E151E663CCBB +618CB4FBB0C51183C367F44E7C9C6760E054ED47DA817941F84564C8764240D3 +6C3060868793279335D044233223157FDC3ED0C07017628F4E2FACFEFC508C98 +B8BE1F55FB67597E7742EE0135635401C0BBC1153DC40FA79A94115DAA111365 +05DED7204200D3D1324AE3C645BDA3B9D710CC10E9080C619FD3D06FE90FE2CD +15C6512FCF776DEA7DF9157728AC1FEC5CD467762B7FA1CFCA54102EB8E4AB1F +7476010D348697D06001DC098A7326E85B6AB1B07AC7AA178178E306D2A87DA9 +85FC9AB8117FD688F47BD22209B3A1D0C93083093F236C8E1B02ED15D83C33DE +11A1FB6FE719BC830824BC3328A7E49F5A873DAD276C56BD1D1AF38CAFEA899A +389C8A9DB9077118A0424DC44E7DE3DD7655FB8F6992451BDD52BE843AA1E1B8 +2BF771CB438A29F8E4DBFFC4E19C98B084E0E03A2ECFCF20A2AA0779D388A02F +72FFCA20A11F708D4D7178CB9A0EAC0D1704E183F632076BB91FB29089F2C415 +87225E605C21E978727923B2C197E8078B95397BD9C65197ABB48926A2405C10 +958A0B8BED8642D5C03C13208ECE983CCF85BF8B3E9B4245C591962E858C7E69 +6582EE85C87100C78F71B007C314CB802CFE6B7D0EB9647972E9087A58BC7F78 +B8286D4F4FEA114CD39446F7B78D3C62F09DB1788A6C222622145DB84C966ACD +9CF1CFEB0970CBA95C434F3BADD9C94FB920B61758EF7868DB006CB9573FFB63 +090FE21FB752779109B0883B8FB18E0AE30B06C311CD740349919AFF8F7CE341 +FE8AA12A4AD3C6E4C5193965012CD3B2AF97F61407D971FF1CBC88FEFB0798C5 +0AC8867C5943F906463B37AC97CC5EE1BAE2A2D5140373E47550EC7C6F8FCE28 +AA925D32635187588D606F97152A350F4F947AF926111ED0156516B8993DF0E5 +8924CF692123ABA594B0456E7B9BA4B02333D93C41A38717E37E7A712A3F890A +4A5A2D8B1533A30B3B71810A219D2208CC930C220809BCB5F36DB30A6BCCAA38 +56DE7D23ED9C96E2A8C72953B16E260D6E09EAB74156950B04C3257D9AFFE231 +0B62951CBCB49A09030B2D78A891FB32B699742D2C50DC7458946313AE2AC0D7 +EB73B761E55B2A04589FB00339405FC3159032AFEF73AF70809B709AB6B0E4CB +28623E96601DABB5F1B3AAF774D33CDC08718C0105E23858530FB96FA7C31904 +3CBEE89CDB5C2A793A0069AE0C871193A41F572B66B602B58C0296436D068802 +EA8B67BE1023512A35978D3CAAC054AD7AA7F0DA016F41637F193FC89B795FE5 +E41481E11F63E857A1C6B63D07219791842DD5B6312347D20258392D09D95A55 +3EAD367242BDBD530E3E3E2A7120702CFC9963125FBC187A232A03062ED3F96F +04B54D0F8A3F5A546DE9E7681A9B7BD3E3C8F705922DDD6CB26F695EC527CCED +DDE297B16CC18582D68002F76F0D33396783F8942837CA994BA252513C41F2BC +412B6622652B3059E9255462EE4A1CBCF81140FF1B52EB35F908E6546740F993 +E3C5E73EF0D9FFBAEF5C87F8229FC0CC6B20D23BD9AB242CA2DB98EF7728CFCE +D04763F6ADD6E73D22A432C21A4F0C7D3F1180CF70C58FA9A058588357C0A5A8 +EC78207946D27D9A92FA75F14B9E4CF297D88906C99FEAA72FB1712B096A26E0 +8516B7EE29A7FB4E371ABC9204087C14535DB58EF419C5F6FB17C19DC140F091 +D622144EB55301F2D6DA0D0DEA492C4A262DD4F154683446B5495F368A1D64FC +A002B8876566C9877B297CE3BC277846CFF0D172B8639F44DECC452B853D4D6A +5D542D09467C72F1828D28F4CDBB9F88F49B62291E893D0A34C4210EEE8C496F +373B478DEEC3CDD54E79437076FAF11AFDCA710FAD6E764A9A509876BF9B02E1 +06A72423B570EB0FEF20F16E6E00A9A0A42D360C6FDB1347610D835EFECA024F +1AC9202696B454E17857A7A7AB3A256187E056ADD478CB53EB4E59CAF829432C +75A2F22D94F64705B88AD444343D4F57C131E8E63D1C596C4862901488B32B2F +8DFE99DC26808BAE9407213AAC51F539525D37717D2A7B5010E4EC5530B5DEA2 +5FD1BDCB4801566841050E88FA011D4697D72578B7996406B8CE183F036D9335 +88DEACE05D25498E2CD79CF1A747487C3DDC42130FFD11286CF1875B4333CCFA +8442436B13CB80D5A89F3303870870E9548CB2A9E570659F0B73CCDB5F1009E9 +118CF5B44247762DEDAA6FBE729A3214B5766147988437E72B0E8B32CA1DF1DA +AC8D77B8F8BACE1D8500B6D58BC6A8288C126461AAB0EBE1E2EE7622FADB4D3E +F160AED1B52BCA0A704BECDED7CA2012D6FCB2E98CEE74A2D7C467785D5210C6 +05575C75DB41191ED6B2BACF1EB0F6A17D1CCDE10EFB0D1623C49F3A52C44A8C +9EB2AB272EE869841F39E1E72D750D1AD5CE2327A098F9D13C897BDF0EBDCEB8 +F15444E8AA1209EBBDF904850DE4571DDB125D34F143755CB048F5C5AF3B3ABE +EF05F5034BF348296F09738C06FDC144B7713132C5757D9A8DE365EB21C9AB5C +424B4930AFFD7EA03928BC200ACA870D65A6A87A9F6A885C1188387F3BD8BCF9 +AEEDDDFE6254D6AD640A25BF742A745F33F4722C5EAFCD3E67CD098491971121 +02DC643FF4DB71A9458919C8C8A266FE20D3637F0188D2ED49481CF0C0EB0BDD +F7460E837FAE3289CDF78B7CAA67F52B98E04E5ED744CA9A8D72BCA22B78F19F +14EF24C72B7D483D2F03815AAD8236E06FF5D1C4908F8EC89300E21D2336E022 +E7C02FA6266255229CA7AD057A86AE5CEE956743CCF3763B95251D4F10013790 +BBDB6F6EE8114613DA0E265DF13B74ABA350F5BCBBE53EFCC074F6F19611D88E +9F276F52BB62CA550F62B16A695C932E3515B942D2686ED2215CF411285AD334 +A63CF8D4DC2CF5A824C80DBCF7708808415CA8803707FBCE59B59523CB6AE8F9 +08E3D11996D3D7808D3AE1302149BE86E3F70946930A5EF776A234FD37D5584A +495912798C385486722D32A6D01341AA02787B42D289F23DCCEDF67F38E5CE75 +1D768A05209E55AC5AF03CA58720EB0B8F3266AE349BE0886AFC8115AEB45FB9 +F8547736A1E068674FAA085A41178D3C2A5030A622C75629F6E224BCA766E086 +114EE50337CC45D5F8F39D8F782BF4341DBC17811ABBDB6FFE8D8B8EC0813436 +A0D092C1AA0C92F0092D1B4A6D7FBBDE61D570D5B74480344C9666FC01CC07E0 +8C9202E88EF265ABDCAD12045ADE417D3C29D837A4DD066FE141697611098E81 +8100EF53433477802DF070E88B76A3BED85ABF5B93058011C8B16CAA0387A1A5 +730FFCBC09DE20A017C911BFF4A5B4DADDEDEC2365FD178D3A288194FE5AD32C +A9D6AFBEEBB05A365462F9645E03F37ADC4B46C80A2305C3D959D842C7DF5CAA +F65A4A8FE43F42B342C3B3D97FBCB31C7FC441B6E8E01DA716EB38C736B3E968 +D0EED472103E33F1624207C63E02C30032D9BD4620224073CE14F2F5F7F3ADF5 +7E835B168AB8C24DDB7C66523DE038CE91EAA70B60FCBB45979440A641F3B9CE +C032F560E902653714B803245C0B8BC46A254AA867DA7083EB2273DE81FA0F0C +13AB83BCCAE9ABC8A33475464CAB21974B4F6B9FB439DF8C1683E91C70F7A22A +D8ECE10D54D664A2684E8753448F49342505C15328708BAF94A2089CF44FC0D8 +0FE83E1860E95BD2CC330047CA486A4C1DBA61548617B0711CE9F2FFC986E9DD +69621D48462A8EF21A5C730A9AFAF9FC340D06DE2E1AD10BFC30FEF90604D72E +C151649F765A1A65B09405EB10149B2F9C3B6CB8C2498A7FD69C371850A28E15 +D001888E8821DD7A3845F2C70EFBBB08300D7CBCB976831BC2145CB8C856207B +1ECA9D27614F6B1534AD17EEFD6DF88411826A2ADC20A9E060E79DD9B3FC9425 +A19CF213F2B89D6B71409C781DAC8DBA00314319417652099BD7F637D65A9CFE +D3ED843628C740B0C7059338B2940EF373E851F722C2B475BFC1C18699148E2C +E0FDC3C012829FA69B8F42C08F36767154AFA79131D4BD6E68AEF4221B83A925 +D384E5CC415DFAB15458B1E867A4D2BDB558C21C8461677EE36503FCC9C4495E +EEAFBD937BA690826FFBB0D5C6F855BE42C907DF11C8AC7AAAAA98031533316D +D6739FB3887E2460F93991A0A7DAC9F41396638680899DB6D934E5655F9F4C27 +492AE20B322D912174F1F0BFCC88C24BC9BFDC1777FAC99238B2EB55A115C886 +CB30CB984680E6C9DC554954F5FB25362838A3F20CD715EB23E44077AFF2D5F3 +EE0407E067C202133BDF89600E40B5B50CC2D5AAB17464FA917D30FA36FAEE98 +5AE929D6624016536A3ABEE523CF597AE6DD93F51F67CF0F70356089B8398D21 +643DC8C267263301219D43345E0F60D08F9C85F542CADEFBB77A8C82CBF9BDFE +094BB5B53A91CE560D6DFF007A94A2329D072C415344A6DCAC2C3246A0A9B0B0 +AED75AB44BA60A30E06B375690DB237B340D358392F0D36CE3802638C638ED07 +334102999B4DE2F010BBFED3E2D07124E37F44C7D2BB1CDF608D76B30CB4A038 +5C483979E2A89FFDFED4ED4C56C301137205D3257005BE8A59A2A18E0FD97413 +5F9F91940128A6D0857510F3DD5EBC028F38F9951EC6159B2E7965782C284570 +8BFFFA180ADB09FEC193B7DB8E447DC2DFB0EDDD9FB0430D9FBE5141F714E2DC +AC2E2689F2A24C8FAFFB6ABB59F4E8874C588D2BAEBDB1F6DE0781C66C053B7B +BFEF8E986199F33D52FE9448B67BA40B7C970CBC92B8C06030A9A15C63233C19 +5B444218C571B9BCC07EDD39417F43B458F53B5EC2DAEC99BC9D4F83C4FCA1C6 +B86EEB2B0D9698C9DB52F50F06CB27B149D3CCDD21174B17955A68D9F8195F46 +46EBDEF81EFCC5A9259072DE9F0082CB8191D8F536A729D544C7683B7056EE10 +8FB8FC70052D988D75ED34A7FE10C4FEEB105A0EF3C2B96C20A72A77A1BF5DBD +DCEADDF4D308744F7A7397ABF6292CB1516EDF945D7CB90147E5213FED1E0B0A +5261A049778983C13D1C6A916A61773874024FC2CA69CB563708A77DAC475396 +31ADAD54ABFCFBB918C9CACD6A281139311947DAFAC6CFD0D4CABC9954EC3176 +CE6D4FF9E182039BEC3E19D08C6B70D4E93193E4CD6E01B95D9A00E693E8462D +4F49F92307515B0C76AC4FC4D864BE0A47FBAC55FBCDC8C7F299955B7D0A7BF0 +768B24879D38CFE5ADB9BF450E2A5F6A4992F792FAE4669D81778EBCA2DDEAAD +5D6FF3FED569633C82E64BDB2F49AE6C4F78E88DF6FB64856F81184DEB825149 +1D1752D36B6DE94BAE058D301A6AEF8D6447B690AA740A18F069AE107A6CF257 +0A9F8543E94DD9718EF1FD7ACEEF0706A7D5672C60261C90BCA5A5F88F111054 +1724ADC2E19E1114FFADCE989F02C2473194A361C4A1C190D82EEF2B4261E7A2 +B794A03F65130DB01BE22AC9F007DE1CF647330A5F3064EB1F4BF688B6A7C64E +801824FADBD122B593B281881C014CD1896E76CCFAEF10B2D9FAC5104A86B93B +261EA4B7A9FC1A46BB1E58D1BE20C07B5487282F2F6DCE16A27A5BCD82777DD4 +B96FFC1A83E4E0AFA129514FBF8270153A755F289AE491B9106E9F388D9C8188 +F8C4AB953C6DA15B352C9DE6F0909AFB893021980AA28FF3B9B20C3858FE2B75 +67D8986326BD73917DDB4BA8A38EC38515582A0930688E8E0608E28D504BDE86 +1AF67BC7F5D148AAC191E517E9FF35E03D160B089CC1D547E84FDC8D5FA17CE8 +5490870B089D4EA945AA47FC2B22ECE37CBBE766C0B38746601588CB91E14178 +9C6FDBD71BEDF78711AEEDE67015D056543AA7A7AA491A4FB7F3CDA7400D4F02 +21B8D1822FB22AD9CDEC77D790F693712507FAFCF7C7B688D61D791C5AEF938E +67BB2263889F70775DFE31DEA89362B2A354A66341EA25CA2B7D0B9751B063C1 +43311686A0262E6516BA3073B97B551F62B171D92A093BEEAD77F518AA47D27E +EA28F94A52B4F062EAF22A3BB55231C02ACA8F4D24575D1B20871DADAA50A45D +9DBBE67E40A4E7C73707AA92542D259D86CC2812C03D45F55F1F106389207307 +E6F819F6E72D4A3D7C7C35D501B8B4DD87B3C5245C239D50515A9DB6E6F63554 +3D539FD90D037719E641B091F043FF90DB4BE267967368ED11C7C5A978955AF2 +7E3D3FEB5DB2F73C9F17E77B29E2518C042231C0A6149CAFB0A772F2A2DD22D6 +0950A033E805DBD139D32729595752AD697749DD3AAC4E80B8EF7192A02C7E60 +C222C4BF0B4846AC80D8A503A13FE09D1E8680E701308148D04684D72F5D3924 +80D0DD922ADDC93E6C9A92746DF9F342AF9584492AEA82A3EC637875420B7784 +14B139E1540C94B5FA115AA2A414021CD04598898FF8B8634AF360B9223E968E +AEF3F4522034DF40A8D445DA9BC639EC4A33315DB7AD426B1ADB9F75BCA977CD +3FD7E509C26F319B5C4A33C82FE0C6DF3BDD7DF26A21F3B39BEFDE002A1FCFB0 +817CFCEE79B333044FCC04B0B4A9A95C35600BD6265DB61B5F6B2A679A7AA0B9 +FB0D6E5DACA9307FF3B847DFB6EB2AFE9674FF68D5528C7F5E5FC724F704C0A9 +F061FA3B46A4C382842554BA19DC3A9D452AF54B47E5C3B24D62FCD2F195AAD3 +504443027AD89DC28CC0751F1FD6BC6F730CCDCB1FCCD3A8F9984B7887A7FA1D +017F337337FD07DB4DF862A8FE056259BFC7B3A8451BD1A55DFE8B72FC716CAD +82748E02BDEDB0FD7965C2781CE769F26480D82DE5A496FD5DC8C262F2C9EA41 +691B450115B1540A0032E7CD4A1F77C1B2F9F47D60F30E4A9EC3F9B56E6038CD +00660BB8A136DA68D522DA12EC4CA4487D3563E42A0652451F406BDDD67A6733 +7516148E0DD09086F08C1D40E7EF70D176E974431DA1F2ECC17CB312C85170F8 +5AE1A8D6C0EE3C6835D853F64511A6F0B66F6CDD08DFF911A9363D16F4BAD56E +0BF03DEF1B878D1939AC19A126C5CA54FD0FD875540DFE10B2CF97BD0A11A681 +7961AFD1FB1962BD7CF163B3B9CC8FB4701D40DD739AE4280D1BFFF8922E9C6D +A4A4EBE6503CBDFEAA86A0DD12A3B524D8FEA8827E715DC3B7CA378466BCE60B +7FFA482662E85514643C5ABD7210F836F591662F331E51C7943165F8609E8A73 +E49AC4769EAED66D075AE1BB0D259FA08122D8BCFCABA7F160 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -6929,27 +6935,27 @@ rf /Fn 197[33 58[{}1 119.552 /CMMI12 rf /Fo 134[85 85 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 7[68 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 -8[45 21[76 1[51 53 11[{}55 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 +83 57 71 1[33 68 71 59 62 69 66 64 68 12[45 45 45 45 +3[30 8[45 21[76 1[51 53 11[{}56 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 1[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 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 1[45 35 35 25 71 76 -45 1[45 25 18[76 51 51 53 11[{}89 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 +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 1[45 35 35 25 71 +76 45 1[45 25 18[76 51 51 53 11[{}89 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 @@ -6966,40 +6972,32 @@ ifelse 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.2,)g(for)f -Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.2.)3367 1697 y(July)f(2012)150 +Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.2.)3218 1697 y(Jan)m(uary)f(2013)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 3352 a Ft(This)35 b(text)h(is)g(a)g(brief)f +TeXDict begin 2 1 bop 150 4279 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 3462 y(4.2,)c(14)f(July)f -(2012\).)150 3597 y(This)35 b(is)h(Edition)g(4.2,)j(last)d(up)s(dated)f -(14)i(July)e(2012,)k(of)d Fq(The)g(GNU)g(Bash)g(Reference)h(Man)m(ual)p -Ft(,)h(for)150 3706 y Fs(Bash)p Ft(,)29 b(V)-8 b(ersion)31 -b(4.2.)150 3841 y(Cop)m(yrigh)m(t)602 3838 y(c)577 3841 -y Fp(\015)f Ft(1988{2012)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 -b(oundation,)31 b(Inc.)150 3975 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 4085 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 4219 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y) --8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f -(under)f(the)390 4329 y(terms)25 b(of)h(the)f(GNU)h(F)-8 +(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(4.2,)c(8)e(Jan)m(uary)g +(2013\).)150 4523 y(This)e(is)i(Edition)f(4.2,)i(last)f(up)s(dated)e(8) +h(Jan)m(uary)g(2013,)i(of)f Fq(The)e(GNU)i(Bash)g(Reference)g(Man)m +(ual)p Ft(,)g(for)150 4633 y Fs(Bash)p Ft(,)f(V)-8 b(ersion)31 +b(4.2.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767 +y Fp(\015)f Ft(1988{2013)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 +b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h +(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s +(cumen)m(t)f(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26 -b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 4438 y(published)43 +b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8 b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46 -b(Sections,)j(no)390 4548 y(F)-8 b(ron)m(t-Co)m(v)m(er)31 +b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)31 b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390 -4658 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8 -b(ree)32 b(Do)s(cumen)m(tation)g(License".)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 +5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8 +b(ree)32 b(Do)s(cumen)m(tation)g(License".)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 @@ -7134,27 +7132,26 @@ h(:)f(:)g(:)h(:)f(:)56 b Ft(29)399 5153 y(3.5.9)93 b(Quote)31 b(Remo)m(v)-5 b(al)9 b Fm(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39 -b Ft(30)275 5263 y(3.6)92 b(Redirections)26 b Fm(:)15 +b Ft(31)275 5263 y(3.6)92 b(Redirections)26 b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)55 b Ft(31)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)399 83 y(3.6.1)93 b(Redirecting)31 -b(Input)23 b Fm(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +TeXDict begin -2 3 bop 3699 -116 a Ft(ii)399 83 y(3.6.1)93 +b(Redirecting)31 b(Input)23 b Fm(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)52 +b Ft(32)399 193 y(3.6.2)93 b(Redirecting)31 b(Output)26 +b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)56 b Ft(32)399 302 y(3.6.3)93 b(App)s(ending)28 +b(Redirected)k(Output)12 b Fm(:)h(:)j(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) -f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)52 b Ft(32)399 193 -y(3.6.2)93 b(Redirecting)31 b(Output)26 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f -(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) -g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 -b Ft(32)399 302 y(3.6.3)93 b(App)s(ending)28 b(Redirected)k(Output)12 -b Fm(:)h(:)j(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) -h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)41 b Ft(32)399 -412 y(3.6.4)93 b(Redirecting)31 b(Standard)e(Output)h(and)f(Standard)h -(Error)d Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)58 b Ft(32)399 -521 y(3.6.5)93 b(App)s(ending)28 b(Standard)i(Output)f(and)h(Standard)f -(Error)19 b Fm(:)14 b(:)h(:)h(:)f(:)h(:)f(:)g(:)h(:)48 +41 b Ft(32)399 412 y(3.6.4)93 b(Redirecting)31 b(Standard)e(Output)h +(and)f(Standard)h(Error)d Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)58 +b Ft(32)399 521 y(3.6.5)93 b(App)s(ending)28 b(Standard)i(Output)f(and) +h(Standard)f(Error)19 b Fm(:)14 b(:)h(:)h(:)f(:)h(:)f(:)g(:)h(:)48 b Ft(33)399 631 y(3.6.6)93 b(Here)31 b(Do)s(cumen)m(ts)c Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) @@ -7165,7 +7162,7 @@ f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Ft(33)399 850 y(3.6.8)93 b(Duplicating)32 b(File)f(Descriptors)16 b Fm(:)g(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 -b Ft(33)399 960 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)19 +b Ft(34)399 960 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)19 b Fm(:)d(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)49 b Ft(34)399 1069 y(3.6.10)93 b(Op)s(ening)29 b(File)j(Descriptors)f @@ -7199,38 +7196,38 @@ f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f g(:)h(:)f(:)h(:)f(:)g(:)h(:)53 b Ft(38)150 2188 y Fr(4)135 b(Shell)45 b(Builtin)g(Commands)22 b Fn(:)e(:)g(:)f(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)67 -b Fr(41)275 2325 y Ft(4.1)92 b(Bourne)30 b(Shell)g(Builtins)e +b Fr(40)275 2325 y Ft(4.1)92 b(Bourne)30 b(Shell)g(Builtins)e Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) -h(:)f(:)g(:)h(:)f(:)h(:)f(:)57 b Ft(41)275 2435 y(4.2)92 +h(:)f(:)g(:)h(:)f(:)h(:)f(:)57 b Ft(40)275 2435 y(4.2)92 b(Bash)30 b(Builtin)h(Commands)24 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)54 -b Ft(48)275 2545 y(4.3)92 b(Mo)s(difying)30 b(Shell)g(Beha)m(vior)9 +b Ft(47)275 2545 y(4.3)92 b(Mo)s(difying)30 b(Shell)g(Beha)m(vior)9 b Fm(:)17 b(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) -h(:)f(:)h(:)f(:)39 b Ft(58)399 2654 y(4.3.1)93 b(The)30 +h(:)f(:)h(:)f(:)39 b Ft(57)399 2654 y(4.3.1)93 b(The)30 b(Set)g(Builtin)c Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)55 b -Ft(58)399 2764 y(4.3.2)93 b(The)30 b(Shopt)f(Builtin)13 +Ft(57)399 2764 y(4.3.2)93 b(The)30 b(Shopt)f(Builtin)13 b Fm(:)j(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g -(:)h(:)f(:)h(:)f(:)g(:)43 b Ft(62)275 2873 y(4.4)92 b(Sp)s(ecial)30 +(:)h(:)f(:)h(:)f(:)g(:)43 b Ft(61)275 2873 y(4.4)92 b(Sp)s(ecial)30 b(Builtins)21 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)50 b Ft(67)150 3116 y Fr(5)135 b(Shell)45 b(V)-11 b(ariables)19 b Fn(:)h(:)g(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)64 -b Fr(69)275 3253 y Ft(5.1)92 b(Bourne)30 b(Shell)g(V)-8 +b Fr(68)275 3253 y Ft(5.1)92 b(Bourne)30 b(Shell)g(V)-8 b(ariables)22 b Fm(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) -f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)51 b Ft(69)275 +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)51 b Ft(68)275 3362 y(5.2)92 b(Bash)30 b(V)-8 b(ariables)16 b Fm(:)h(:)f(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f -(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)46 b Ft(69)150 3605 y +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)46 b Ft(68)150 3605 y Fr(6)135 b(Bash)44 b(F)-11 b(eatures)13 b Fn(:)20 b(:)g(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Fr(79)275 @@ -7273,10 +7270,10 @@ h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h b Ft(88)275 4838 y(6.8)92 b(The)29 b(Directory)j(Stac)m(k)e Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) -g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Ft(89)399 4947 y(6.8.1)93 +g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Ft(90)399 4947 y(6.8.1)93 b(Directory)32 b(Stac)m(k)f(Builtins)14 b Fm(:)i(:)g(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g -(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)44 b Ft(89)275 +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)44 b Ft(90)275 5057 y(6.9)92 b(Con)m(trolling)31 b(the)g(Prompt)24 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) @@ -7287,7 +7284,7 @@ h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)53 b Ft(92)275 5276 y(6.11)92 b(Bash)31 b(POSIX)e(Mo)s(de)9 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) -h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Ft(92)p eop +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Ft(93)p eop end %%Page: -3 5 TeXDict begin -3 4 bop 3674 -116 a Ft(iii)150 83 y Fr(7)135 @@ -7407,70 +7404,69 @@ h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)57 b Ft(137)150 4436 y Fr(10)135 b(Installing)46 b(Bash)24 b Fn(:)c(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)68 -b Fr(139)275 4573 y Ft(10.1)92 b(Basic)32 b(Installation)20 +b Fr(138)275 4573 y Ft(10.1)92 b(Basic)32 b(Installation)20 b Fm(:)d(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g -(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Ft(139)275 4682 +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Ft(138)275 4682 y(10.2)92 b(Compilers)30 b(and)g(Options)8 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) -f(:)h(:)38 b Ft(140)275 4792 y(10.3)92 b(Compiling)30 +f(:)h(:)38 b Ft(139)275 4792 y(10.3)92 b(Compiling)30 b(F)-8 b(or)32 b(Multiple)f(Arc)m(hitectures)21 b Fm(:)c(:)e(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g -(:)52 b Ft(140)275 4902 y(10.4)92 b(Installation)32 b(Names)13 +(:)52 b Ft(139)275 4902 y(10.4)92 b(Installation)32 b(Names)13 b Fm(:)j(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h -(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)43 b Ft(140)275 5011 y(10.5)92 +(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)43 b Ft(139)275 5011 y(10.5)92 b(Sp)s(ecifying)30 b(the)g(System)h(T)m(yp)s(e)12 b Fm(:)j(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) -g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)42 b Ft(140)275 +g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)42 b Ft(139)275 5121 y(10.6)92 b(Sharing)30 b(Defaults)15 b Fm(:)i(:)e(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h -(:)f(:)g(:)46 b Ft(141)275 5230 y(10.7)92 b(Op)s(eration)30 +(:)f(:)g(:)46 b Ft(140)275 5230 y(10.7)92 b(Op)s(eration)30 b(Con)m(trols)24 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f -(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Ft(141)275 +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Ft(140)275 5340 y(10.8)92 b(Optional)31 b(F)-8 b(eatures)10 b Fm(:)17 b(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) -f(:)h(:)f(:)g(:)h(:)f(:)h(:)40 b Ft(141)p eop end +f(:)h(:)f(:)g(:)h(:)f(:)h(:)40 b Ft(140)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(App)t(endix)44 b(A)160 -b(Rep)t(orting)46 b(Bugs)35 b Fn(:)20 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f -(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)80 b Fr(147)150 353 y(App)t(endix)44 -b(B)166 b(Ma)7 b(jor)45 b(Di\013erences)i(F)-11 b(rom)44 -b(The)419 486 y(Bourne)g(Shell)35 b Fn(:)19 b(:)h(:)f(:)g(:)h(:)f(:)h -(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) -h(:)f(:)h(:)f(:)g(:)h(:)f(:)78 b Fr(149)275 623 y Ft(B.1)92 -b(Implemen)m(tation)31 b(Di\013erences)h(F)-8 b(rom)31 -b(The)e(SVR4.2)j(Shell)13 b Fm(:)i(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)43 -b Ft(153)150 865 y Fr(App)t(endix)h(C)165 b(GNU)45 b(F)-11 -b(ree)45 b(Do)t(cumen)l(tation)h(License)439 998 y Fn(:)19 -b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h -(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) -h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)64 b Fr(155)150 -1268 y(App)t(endix)44 b(D)159 b(Indexes)15 b Fn(:)20 -b(:)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(:)59 b Fr(163)275 1405 -y Ft(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h(Commands)16 +TeXDict begin -4 5 bop 3677 -116 a Ft(iv)150 83 y Fr(App)t(endix)44 +b(A)160 b(Rep)t(orting)46 b(Bugs)35 b Fn(:)20 b(:)f(:)g(:)h(:)f(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)80 b Fr(145)150 +353 y(App)t(endix)44 b(B)166 b(Ma)7 b(jor)45 b(Di\013erences)i(F)-11 +b(rom)44 b(The)419 486 y(Bourne)g(Shell)35 b Fn(:)19 +b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)78 +b Fr(146)275 623 y Ft(B.1)92 b(Implemen)m(tation)31 b(Di\013erences)h +(F)-8 b(rom)31 b(The)e(SVR4.2)j(Shell)13 b Fm(:)i(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)43 b Ft(150)150 865 y Fr(App)t(endix)h(C)165 +b(GNU)45 b(F)-11 b(ree)45 b(Do)t(cumen)l(tation)h(License)439 +998 y Fn(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)64 +b Fr(152)150 1268 y(App)t(endix)44 b(D)159 b(Indexes)15 +b Fn(:)20 b(:)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(:)59 b Fr(160)275 +1405 y Ft(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h(Commands)16 b Fm(:)e(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) -h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Ft(163)275 +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Ft(160)275 1514 y(D.2)92 b(Index)29 b(of)i(Shell)f(Reserv)m(ed)h(W)-8 b(ords)12 b Fm(:)j(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)42 -b Ft(164)275 1624 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8 +b Ft(161)275 1624 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8 b(ariable)32 b(Index)20 b Fm(:)14 b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) -f(:)h(:)f(:)50 b Ft(164)275 1733 y(D.4)92 b(F)-8 b(unction)31 +f(:)h(:)f(:)50 b Ft(161)275 1733 y(D.4)92 b(F)-8 b(unction)31 b(Index)16 b Fm(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)47 -b Ft(166)275 1843 y(D.5)92 b(Concept)30 b(Index)d Fm(:)15 +b Ft(163)275 1843 y(D.5)92 b(Concept)30 b(Index)d Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) -f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)57 b Ft(168)p +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)57 b Ft(165)p eop end %%Page: 1 7 TeXDict begin 1 6 bop 150 -116 a Ft(Chapter)30 b(1:)41 @@ -7561,9 +7557,9 @@ b(most)c(of)g(the)g(p)s(o)m(w)m(er)f(\(and)g(complexit)m(y\))j(of)e b(ariables,)32 b(\015o)m(w)e(con)m(trol)i(constructs,)f(quoting,)g(and) f(functions.)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(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 +TeXDict begin 2 7 bop 150 -116 a Ft(Chapter)30 b(1:)41 +b(In)m(tro)s(duction)2592 b(2)275 299 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 408 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 518 @@ -7635,8 +7631,8 @@ 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 +TeXDict begin 4 9 bop 150 -116 a Ft(Chapter)30 b(2:)41 +b(De\014nitions)2662 b(4)150 299 y Fs(return)29 b(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 @@ -7724,18 +7720,19 @@ 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(37\).)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 Fj(3.1.2)63 b(Quoting)150 -446 y Ft(Quoting)32 b(is)h(used)e(to)i(remo)m(v)m(e)h(the)e(sp)s(ecial) -h(meaning)f(of)h(certain)g(c)m(haracters)g(or)f(w)m(ords)g(to)h(the)f -(shell.)150 555 y(Quoting)c(can)f(b)s(e)g(used)f(to)j(disable)e(sp)s -(ecial)h(treatmen)m(t)h(for)e(sp)s(ecial)h(c)m(haracters,)i(to)e(prev)m -(en)m(t)g(reserv)m(ed)150 665 y(w)m(ords)i(from)g(b)s(eing)g -(recognized)h(as)g(suc)m(h,)f(and)g(to)h(prev)m(en)m(t)g(parameter)g -(expansion.)275 793 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 902 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 +TeXDict begin 6 11 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(6)150 299 +y Fj(3.1.2)63 b(Quoting)150 446 y Ft(Quoting)32 b(is)h(used)e(to)i +(remo)m(v)m(e)h(the)e(sp)s(ecial)h(meaning)f(of)h(certain)g(c)m +(haracters)g(or)f(w)m(ords)g(to)h(the)f(shell.)150 555 +y(Quoting)c(can)f(b)s(e)g(used)f(to)j(disable)e(sp)s(ecial)h(treatmen)m +(t)h(for)e(sp)s(ecial)h(c)m(haracters,)i(to)e(prev)m(en)m(t)g(reserv)m +(ed)150 665 y(w)m(ords)i(from)g(b)s(eing)g(recognized)h(as)g(suc)m(h,)f +(and)g(to)h(prev)m(en)m(t)g(parameter)g(expansion.)275 +793 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 902 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 1012 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(135\),)47 b(the)150 1122 y Fq(history)30 @@ -7856,7 +7853,7 @@ Fs(TEXTDOMAIN)p Ft(.mo.)150 4645 y Fj(3.1.3)63 b(Commen)m(ts)150 (teractiv)m(e)j(shell)d(in)g(whic)m(h)g(the)g Fs(interactive_comments) 16 b Ft(option)150 4902 y(to)40 b(the)f Fs(shopt)e Ft(builtin)h(is)h (enabled)g(\(see)h(Section)g(4.3.2)g([The)f(Shopt)f(Builtin],)k(page)e -(62\),)i(a)d(w)m(ord)150 5011 y(b)s(eginning)26 b(with)g(`)p +(61\),)i(a)d(w)m(ord)150 5011 y(b)s(eginning)26 b(with)g(`)p Fs(#)p Ft(')g(causes)h(that)f(w)m(ord)g(and)g(all)h(remaining)g(c)m (haracters)g(on)f(that)h(line)g(to)g(b)s(e)f(ignored.)150 5121 y(An)43 b(in)m(teractiv)m(e)j(shell)e(without)f(the)g @@ -7868,14 +7865,15 @@ b(6.3)f([In)m(teractiv)m(e)j(Shells],)d(page)h(82,)g(for)e(a)i (description)e(of)h(what)g(mak)m(es)h(a)f(shell)g(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)150 458 y Ft(A)d(simple)g(shell)g(command)f(suc)m(h)h(as)g -Fs(echo)29 b(a)h(b)g(c)41 b Ft(consists)i(of)f(the)f(command)h(itself)h -(follo)m(w)m(ed)g(b)m(y)150 568 y(argumen)m(ts,)31 b(separated)g(b)m(y) -f(spaces.)275 714 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 -824 y(a)f(v)-5 b(ariet)m(y)32 b(of)f(w)m(a)m(ys:)41 b(in)31 +TeXDict begin 8 13 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(8)150 299 +y Fr(3.2)68 b(Shell)45 b(Commands)150 458 y Ft(A)d(simple)g(shell)g +(command)f(suc)m(h)h(as)g Fs(echo)29 b(a)h(b)g(c)41 b +Ft(consists)i(of)f(the)f(command)h(itself)h(follo)m(w)m(ed)g(b)m(y)150 +568 y(argumen)m(ts,)31 b(separated)g(b)m(y)f(spaces.)275 +714 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 824 +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 933 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 @@ -7923,21 +7921,21 @@ h(it)150 3732 y(\014nishes.)51 b(The)34 b(statistics)i(curren)m(tly)e f(output)g(format)g(to)150 3952 y(that)34 b(sp)s(eci\014ed)e(b)m(y)h Fl(posix)p Ft(.)49 b(When)33 b(the)g(shell)g(is)h(in)e Fl(posix)h Ft(mo)s(de)g(\(see)h(Section)g(6.11)g([Bash)g(POSIX)150 -4061 y(Mo)s(de],)40 b(page)f(92\),)i(it)d(do)s(es)f(not)h(recognize)i +4061 y(Mo)s(de],)40 b(page)f(93\),)i(it)d(do)s(es)f(not)h(recognize)i Fs(time)c Ft(as)i(a)g(reserv)m(ed)g(w)m(ord)f(if)h(the)g(next)g(tok)m (en)g(b)s(egins)150 4171 y(with)33 b(a)g(`)p Fs(-)p Ft('.)49 b(The)33 b Fs(TIMEFORMAT)d Ft(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(set) g(to)h(a)g(format)f(string)g(that)h(sp)s(eci\014es)f(ho)m(w)g(the)150 4280 y(timing)38 b(information)g(should)e(b)s(e)h(displa)m(y)m(ed.)62 b(See)38 b(Section)g(5.2)g([Bash)g(V)-8 b(ariables],)41 -b(page)d(69,)i(for)e(a)150 4390 y(description)27 b(of)g(the)h(a)m(v)-5 +b(page)d(68,)i(for)e(a)150 4390 y(description)27 b(of)g(the)h(a)m(v)-5 b(ailable)29 b(formats.)40 b(The)26 b(use)h(of)g Fs(time)f Ft(as)i(a)f(reserv)m(ed)g(w)m(ord)g(p)s(ermits)f(the)h(timing)150 4499 y(of)38 b(shell)g(builtins,)i(shell)e(functions,)i(and)d(pip)s (elines.)63 b(An)38 b(external)h Fs(time)e Ft(command)h(cannot)g(time) 150 4609 y(these)31 b(easily)-8 b(.)275 4755 y(When)29 b(the)h(shell)h(is)f(in)f Fl(posix)g Ft(mo)s(de)h(\(see)h(Section)f -(6.11)i([Bash)e(POSIX)f(Mo)s(de],)i(page)g(92\),)g Fs(time)150 +(6.11)i([Bash)e(POSIX)f(Mo)s(de],)i(page)g(93\),)g Fs(time)150 4865 y Ft(ma)m(y)26 b(b)s(e)f(follo)m(w)m(ed)j(b)m(y)d(a)h(newline.)39 b(In)25 b(this)h(case,)i(the)d(shell)h(displa)m(ys)g(the)g(total)h (user)e(and)g(system)h(time)150 4975 y(consumed)33 b(b)m(y)h(the)h @@ -7958,7 +7956,7 @@ 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 518 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 628 y(Set)34 b(Builtin],)j(page)e -(58\).)53 b(If)34 b Fs(pipefail)e Ft(is)i(enabled,)h(the)g(pip)s +(57\).)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)150 737 y(the)d(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 @@ -8030,11 +8028,12 @@ b(most)h(cases)g(a)g(list)h(of)f(commands)f(in)g(a)h(comp)s(ound)f (newline)150 5340 y(in)f(place)h(of)g(a)g(semicolon.)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)275 299 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 408 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.) -150 609 y Fj(3.2.4.1)63 b(Lo)s(oping)43 b(Constructs)150 +TeXDict begin 10 15 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(10)275 299 +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 +408 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)150 +609 y Fj(3.2.4.1)63 b(Lo)s(oping)43 b(Constructs)150 756 y Ft(Bash)31 b(supp)s(orts)d(the)j(follo)m(wing)g(lo)s(oping)g (constructs.)275 891 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) @@ -8097,7 +8096,7 @@ b(is)f(the)g(exit)h(status)g(of)f(the)g(last)h(command)f(in)630 4452 y Fq(commands)j Ft(that)d(is)f(executed,)i(or)e(false)h(if)f(an)m (y)h(of)g(the)f(expressions)g(is)h(in)m(v)-5 b(alid.)275 4613 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(41\))g(ma)m(y) +(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i(page)f(40\))g(ma)m(y) 150 4723 y(b)s(e)i(used)f(to)i(con)m(trol)h(lo)s(op)f(execution.)150 4923 y Fj(3.2.4.2)63 b(Conditional)42 b(Constructs)150 5095 y Fs(if)384 b Ft(The)30 b(syn)m(tax)h(of)f(the)h @@ -8135,7 +8134,7 @@ Ft(corresp)s(onding)20 b(to)i(the)g(\014rst)f Fq(pattern)630 2042 y Ft(that)42 b(matc)m(hes)g Fq(w)m(ord)t Ft(.)71 b(If)41 b(the)g(shell)g(option)g Fs(nocasematch)d Ft(\(see)k(the)f (description)g(of)630 2152 y Fs(shopt)34 b Ft(in)h(Section)h(4.3.2)h -([The)e(Shopt)f(Builtin],)k(page)e(62\))g(is)g(enabled,)g(the)g(matc)m +([The)e(Shopt)f(Builtin],)k(page)e(61\))g(is)g(enabled,)g(the)g(matc)m (h)g(is)630 2262 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 2371 y(to)e(separate)g(m)m(ultiple)g @@ -8183,21 +8182,21 @@ b(,)31 b(and)f(execute)630 5340 y(an)m(y)h(asso)s(ciated)h Fq(command-list)h Ft(on)d(a)h(successful)f(matc)m(h.)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)630 299 y(The)26 b(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 408 y(is)30 b(the)h(exit)g(status)g(of)f -(the)h Fq(command-list)i Ft(executed.)150 564 y Fs(select)630 -697 y Ft(The)g 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 -806 y(same)c(syn)m(tax)g(as)f(the)h Fs(for)e Ft(command:)870 -939 y Fs(select)46 b Fi(name)57 b Fs([in)47 b Fi(words)57 -b Fs(...)o(];)47 b(do)h Fi(commands)11 b Fs(;)44 b(done)630 -1072 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 1181 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 -1291 y(preceded)30 b(b)m(y)g(a)h(n)m(um)m(b)s(er.)40 +TeXDict begin 12 17 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(12)630 299 +y(The)26 b(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 +408 y(is)30 b(the)h(exit)g(status)g(of)f(the)h Fq(command-list)i +Ft(executed.)150 564 y Fs(select)630 697 y Ft(The)g 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 806 y(same)c(syn)m(tax)g(as)f(the)h +Fs(for)e Ft(command:)870 939 y Fs(select)46 b Fi(name)57 +b Fs([in)47 b Fi(words)57 b Fs(...)o(];)47 b(do)h Fi(commands)11 +b Fs(;)44 b(done)630 1072 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 1181 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 1291 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 Fi(words)11 b Ft(')29 b(is)h(omitted,)i (the)e(p)s(ositional)i(parameters)630 1401 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.) @@ -8233,7 +8232,7 @@ 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 3754 y(equiv)-5 b(alen)m(t)32 b(to)870 3886 y Fs(let)47 b(")p Fi(expression)11 b Fs(")630 4019 y Ft(See)25 b(Section)h(4.2)h([Bash)e(Builtins],)i -(page)f(48,)i(for)c(a)i(full)f(description)g(of)g(the)h +(page)f(47,)i(for)c(a)i(full)f(description)g(of)g(the)h Fs(let)e Ft(builtin.)150 4175 y Fs([[...)o(]])870 4308 y([[)47 b Fi(expression)56 b Fs(]])630 4440 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 @@ -8242,18 +8241,18 @@ b(aluation)27 b(of)e(the)h(conditional)h(expres-)630 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 4659 y(Section)36 b(6.4)h([Bash)f(Conditional)g (Expressions],)h(page)f(84.)57 b(W)-8 b(ord)36 b(splitting)h(and)e -(\014le-)630 4769 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 4879 y(expansion,)31 -b(parameter)g(and)f(v)-5 b(ariable)31 b(expansion,)g(arithmetic)g -(expansion,)g(command)630 4988 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 5098 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 5230 y(When)g(used)f(with)g(`)p -Fs([[)p Ft(',)i(the)f(`)p Fs(<)p Ft(')g(and)f(`)p Fs(>)p -Ft(')h(op)s(erators)g(sort)h(lexicographically)h(using)e(the)630 -5340 y(curren)m(t)f(lo)s(cale.)p eop end +(\014le-)630 4769 y(name)d(expansion)g(are)h(not)g(p)s(erformed)d(on)j +(the)f(w)m(ords)g(b)s(et)m(w)m(een)h(the)f Fs([[)g Ft(and)f +Fs(]])p Ft(;)i(tilde)630 4879 y(expansion,)e(parameter)g(and)f(v)-5 +b(ariable)31 b(expansion,)g(arithmetic)g(expansion,)g(command)630 +4988 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 +5098 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 5230 y(When)k(used)f(with)h Fs([[)p +Ft(,)h(the)f(`)p Fs(<)p Ft(')g(and)g(`)p Fs(>)p Ft(')g(op)s(erators)g +(sort)g(lexicographically)j(using)d(the)630 5340 y(curren)m(t)30 +b(lo)s(cale.)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 @@ -8261,61 +8260,63 @@ 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 408 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 518 y(Section)37 b(3.5.8.1)i([P)m(attern)e(Matc)m -(hing],)j(page)c(29.)59 b(If)36 b(the)g(shell)g(option)h -Fs(nocasematch)630 628 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(62\))630 737 y(is)e(enabled,)i(the)e(matc)m(h)h(is)e(p)s -(erformed)g(without)g(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630 -847 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 956 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 1066 y(force)f(the)g(quoted)f(p)s(ortion)g(to)h(b)s(e)f(matc)m(hed) -h(as)g(a)f(string.)630 1207 y(An)j(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 1316 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 -1426 y(ered)34 b(an)g(extended)g(regular)g(expression)g(and)f(matc)m -(hed)i(accordingly)g(\(as)f(in)g Fk(r)-5 b(e)g(gex)11 -b Ft(3\)\).)630 1536 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 1645 y(regular)e(expression)g(is)h -(syn)m(tactically)i(incorrect,)f(the)e(conditional)i(expression's)e -(return)630 1755 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 1864 y(Section)32 b(4.3.2)g([The)f(Shopt)f -(Builtin],)i(page)g(62\))g(is)f(enabled,)g(the)g(matc)m(h)h(is)e(p)s -(erformed)630 1974 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 2084 y(ma)m(y)31 b(b)s(e)f(quoted)h(to)g(force)g(the)g -(quoted)g(p)s(ortion)f(to)h(b)s(e)f(matc)m(hed)h(as)g(a)g(string.)41 -b(Brac)m(k)m(et)630 2193 y(expressions)27 b(in)f(regular)i(expressions) -e(m)m(ust)h(b)s(e)g(treated)h(carefully)-8 b(,)29 b(since)e(normal)g -(quot-)630 2303 y(ing)38 b(c)m(haracters)h(lose)f(their)g(meanings)f(b) -s(et)m(w)m(een)h(brac)m(k)m(ets.)64 b(If)37 b(the)h(pattern)f(is)h -(stored)630 2412 y(in)33 b(a)i(shell)f(v)-5 b(ariable,)35 -b(quoting)f(the)g(v)-5 b(ariable)35 b(expansion)e(forces)i(the)f(en)m -(tire)g(pattern)g(to)630 2522 y(b)s(e)h(matc)m(hed)i(as)f(a)g(string.) -56 b(Substrings)34 b(matc)m(hed)j(b)m(y)f(paren)m(thesized)g(sub)s -(expressions)630 2632 y(within)k(the)g(regular)g(expression)g(are)g(sa) -m(v)m(ed)i(in)d(the)i(arra)m(y)f(v)-5 b(ariable)41 b -Fs(BASH_REMATCH)p Ft(.)630 2741 y(The)30 b(elemen)m(t)i(of)e -Fs(BASH_REMATCH)d Ft(with)j(index)g(0)h(is)g(the)f(p)s(ortion)g(of)h -(the)f(string)h(matc)m(h-)630 2851 y(ing)j(the)g(en)m(tire)g(regular)g -(expression.)50 b(The)34 b(elemen)m(t)h(of)f Fs(BASH_REMATCH)c -Ft(with)j(index)g Fq(n)630 2960 y Ft(is)d(the)h(p)s(ortion)f(of)g(the)h -(string)f(matc)m(hing)i(the)e Fq(n)p Ft(th)g(paren)m(thesized)h(sub)s -(expression.)630 3101 y(F)-8 b(or)28 b(example,)h(the)e(follo)m(wing)i -(will)e(matc)m(h)h(a)g(line)f(\(stored)h(in)e(the)i(shell)f(v)-5 -b(ariable)28 b Fq(line)5 b Ft(\))28 b(if)630 3211 y(there)22 -b(is)g(a)h(sequence)f(of)h(c)m(haracters)g(in)f(the)g(v)-5 -b(alue)23 b(consisting)g(of)f(an)m(y)h(n)m(um)m(b)s(er,)f(including)630 -3320 y(zero,)31 b(of)g(space)g(c)m(haracters,)h(zero)f(or)g(one)f -(instances)h(of)g(`)p Fs(a)p Ft(',)f(then)g(a)h(`)p Fs(b)p -Ft(':)870 3461 y Fs([[)47 b($line)g(=~)g([[:space:]]*\(a\)?b)c(]])630 +(elo)m(w)h(in)630 518 y(Section)23 b(3.5.8.1)i([P)m(attern)f(Matc)m +(hing],)i(page)d(29.)39 b(The)22 b(`)p Fs(=)p Ft(')g(op)s(erator)h(is)f +(iden)m(tical)j(to)e(`)p Fs(==)p Ft('.)630 628 y(If)33 +b(the)h(shell)g(option)g Fs(nocasematch)c Ft(\(see)35 +b(the)f(description)f(of)h Fs(shopt)e Ft(in)i(Section)g(4.3.2)630 +737 y([The)23 b(Shopt)g(Builtin],)j(page)e(61\))h(is)e(enabled,)i(the)f +(matc)m(h)g(is)g(p)s(erformed)e(without)h(regard)630 +847 y(to)28 b(the)g(case)g(of)g(alphab)s(etic)f(c)m(haracters.)42 +b(The)26 b(return)h(v)-5 b(alue)28 b(is)f(0)h(if)f(the)g(string)h(matc) +m(hes)630 956 y(\(`)p Fs(==)p Ft('\))36 b(or)g(do)s(es)g(not)g(matc)m +(h)h(\(`)p Fs(!=)p Ft('\)the)f(pattern,)i(and)d(1)h(otherwise.)58 +b(An)m(y)36 b(part)g(of)g(the)630 1066 y(pattern)30 b(ma)m(y)h(b)s(e)f +(quoted)h(to)g(force)g(the)f(quoted)h(p)s(ortion)f(to)h(b)s(e)f(matc)m +(hed)h(as)f(a)h(string.)630 1207 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 1316 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 1426 y(ered)34 b(an)g(extended)g(regular)g +(expression)g(and)f(matc)m(hed)i(accordingly)g(\(as)f(in)g +Fk(r)-5 b(e)g(gex)11 b Ft(3\)\).)630 1536 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 1645 y(regular)e(expression) +g(is)h(syn)m(tactically)i(incorrect,)f(the)e(conditional)i +(expression's)e(return)630 1755 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 1864 y(Section)32 +b(4.3.2)g([The)f(Shopt)f(Builtin],)i(page)g(61\))g(is)f(enabled,)g(the) +g(matc)m(h)h(is)e(p)s(erformed)630 1974 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 2084 y(ma)m(y)31 +b(b)s(e)f(quoted)h(to)g(force)g(the)g(quoted)g(p)s(ortion)f(to)h(b)s(e) +f(matc)m(hed)h(as)g(a)g(string.)41 b(Brac)m(k)m(et)630 +2193 y(expressions)27 b(in)f(regular)i(expressions)e(m)m(ust)h(b)s(e)g +(treated)h(carefully)-8 b(,)29 b(since)e(normal)g(quot-)630 +2303 y(ing)38 b(c)m(haracters)h(lose)f(their)g(meanings)f(b)s(et)m(w)m +(een)h(brac)m(k)m(ets.)64 b(If)37 b(the)h(pattern)f(is)h(stored)630 +2412 y(in)33 b(a)i(shell)f(v)-5 b(ariable,)35 b(quoting)f(the)g(v)-5 +b(ariable)35 b(expansion)e(forces)i(the)f(en)m(tire)g(pattern)g(to)630 +2522 y(b)s(e)h(matc)m(hed)i(as)f(a)g(string.)56 b(Substrings)34 +b(matc)m(hed)j(b)m(y)f(paren)m(thesized)g(sub)s(expressions)630 +2632 y(within)k(the)g(regular)g(expression)g(are)g(sa)m(v)m(ed)i(in)d +(the)i(arra)m(y)f(v)-5 b(ariable)41 b Fs(BASH_REMATCH)p +Ft(.)630 2741 y(The)30 b(elemen)m(t)i(of)e Fs(BASH_REMATCH)d +Ft(with)j(index)g(0)h(is)g(the)f(p)s(ortion)g(of)h(the)f(string)h(matc) +m(h-)630 2851 y(ing)j(the)g(en)m(tire)g(regular)g(expression.)50 +b(The)34 b(elemen)m(t)h(of)f Fs(BASH_REMATCH)c Ft(with)j(index)g +Fq(n)630 2960 y Ft(is)d(the)h(p)s(ortion)f(of)g(the)h(string)f(matc)m +(hing)i(the)e Fq(n)p Ft(th)g(paren)m(thesized)h(sub)s(expression.)630 +3101 y(F)-8 b(or)28 b(example,)h(the)e(follo)m(wing)i(will)e(matc)m(h)h +(a)g(line)f(\(stored)h(in)e(the)i(shell)f(v)-5 b(ariable)28 +b Fq(line)5 b Ft(\))28 b(if)630 3211 y(there)22 b(is)g(a)h(sequence)f +(of)h(c)m(haracters)g(in)f(the)g(v)-5 b(alue)23 b(consisting)g(of)f(an) +m(y)h(n)m(um)m(b)s(er,)f(including)630 3320 y(zero,)31 +b(of)g(space)g(c)m(haracters,)h(zero)f(or)g(one)f(instances)h(of)g(`)p +Fs(a)p Ft(',)f(then)g(a)h(`)p Fs(b)p Ft(':)870 3461 y +Fs([[)47 b($line)g(=~)g([[:space:]]*\(a\)?b)c(]])630 3602 y Ft(That)24 b(means)g(v)-5 b(alues)24 b(lik)m(e)h(`)p Fs(aab)p Ft(')e(and)h(`)30 b Fs(aaaaaab)p Ft(')22 b(will)i(matc)m(h,)j (as)d(will)g(a)g(line)g(con)m(taining)630 3712 y(a)31 @@ -8348,58 +8349,58 @@ b(programmers)f(should)h(tak)m(e)i(sp)s(ecial)e(care)i(with)e(bac)m (oth)g(b)m(y)h(the)f(shell)h(and)f(regular)h(expressions)g(to)g(remo)m (v)m(e)h(the)f(sp)s(ecial)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)630 299 y(meaning)d(from)f(the)h(follo)m(wing)i -(c)m(haracter.)41 b(The)27 b(follo)m(wing)j(t)m(w)m(o)f(sets)f(of)g -(commands)g(are)630 408 y Fk(not)40 b Ft(equiv)-5 b(alen)m(t:)870 -544 y Fs(pattern='\\.')870 764 y([[)47 b(.)h(=~)f($pattern)e(]])870 -873 y([[)i(.)h(=~)f(\\.)g(]])870 1092 y([[)g(.)h(=~)f("$pattern")e(]]) -870 1202 y([[)i(.)h(=~)f('\\.')f(]])630 1338 y Ft(The)28 -b(\014rst)h(t)m(w)m(o)h(matc)m(hes)g(will)f(succeed,)h(but)f(the)g -(second)g(t)m(w)m(o)h(will)f(not,)h(b)s(ecause)f(in)g(the)630 -1447 y(second)39 b(t)m(w)m(o)i(the)e(bac)m(kslash)h(will)f(b)s(e)g -(part)g(of)g(the)h(pattern)f(to)h(b)s(e)e(matc)m(hed.)68 -b(In)39 b(the)630 1557 y(\014rst)31 b(t)m(w)m(o)h(examples,)h(the)e -(bac)m(kslash)h(remo)m(v)m(es)h(the)f(sp)s(ecial)g(meaning)f(from)g(`)p -Fs(.)p Ft(',)h(so)g(the)630 1667 y(literal)f(`)p Fs(.)p -Ft(')e(matc)m(hes.)42 b(If)28 b(the)i(string)f(in)g(the)g(\014rst)g -(examples)g(w)m(ere)h(an)m(ything)g(other)f(than)630 -1776 y(`)p Fs(.)p Ft(',)g(sa)m(y)g(`)p Fs(a)p Ft(',)g(the)f(pattern)g -(w)m(ould)g(not)h(matc)m(h,)h(b)s(ecause)e(the)g(quoted)g(`)p -Fs(.)p Ft(')h(in)e(the)i(pattern)630 1886 y(loses)i(its)g(sp)s(ecial)g -(meaning)f(of)h(matc)m(hing)g(an)m(y)g(single)g(c)m(haracter.)630 -2022 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 -2131 y(order)30 b(of)g(precedence:)630 2293 y Fs(\()g -Fi(expression)38 b Fs(\))1110 2403 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 2513 y(normal)e(precedence)h(of) -g(op)s(erators.)630 2675 y Fs(!)f Fi(expression)1110 -2784 y Ft(T)-8 b(rue)30 b(if)g Fq(expression)g Ft(is)h(false.)630 -2947 y Fi(expression1)38 b Fs(&&)30 b Fi(expression2)1110 -3056 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 -3218 y Fi(expression1)38 b Fs(||)30 b Fi(expression2)1110 -3328 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 -3490 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 3600 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 3802 y Fj(3.2.4.3)63 b(Grouping)43 -b(Commands)150 3949 y Ft(Bash)30 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m -(ys)f(to)h(group)e(a)h(list)g(of)g(commands)f(to)i(b)s(e)e(executed)h -(as)g(a)h(unit.)40 b(When)29 b(com-)150 4058 y(mands)h(are)i(group)s -(ed,)f(redirections)h(ma)m(y)g(b)s(e)e(applied)i(to)g(the)f(en)m(tire)h -(command)g(list.)44 b(F)-8 b(or)32 b(example,)150 4168 -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 4332 -y Fs(\(\))870 4468 y(\()47 b Fi(list)58 b Fs(\))630 4603 -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 -4713 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(36\),)630 4823 -y(and)d(eac)m(h)i(of)e(the)h(commands)f(in)g Fq(list)j +TeXDict begin 14 19 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(14)630 299 +y(meaning)28 b(from)f(the)h(follo)m(wing)i(c)m(haracter.)41 +b(The)27 b(follo)m(wing)j(t)m(w)m(o)f(sets)f(of)g(commands)g(are)630 +408 y Fk(not)40 b Ft(equiv)-5 b(alen)m(t:)870 544 y Fs(pattern='\\.') +870 764 y([[)47 b(.)h(=~)f($pattern)e(]])870 873 y([[)i(.)h(=~)f(\\.)g +(]])870 1092 y([[)g(.)h(=~)f("$pattern")e(]])870 1202 +y([[)i(.)h(=~)f('\\.')f(]])630 1338 y Ft(The)28 b(\014rst)h(t)m(w)m(o)h +(matc)m(hes)g(will)f(succeed,)h(but)f(the)g(second)g(t)m(w)m(o)h(will)f +(not,)h(b)s(ecause)f(in)g(the)630 1447 y(second)39 b(t)m(w)m(o)i(the)e +(bac)m(kslash)h(will)f(b)s(e)g(part)g(of)g(the)h(pattern)f(to)h(b)s(e)e +(matc)m(hed.)68 b(In)39 b(the)630 1557 y(\014rst)31 b(t)m(w)m(o)h +(examples,)h(the)e(bac)m(kslash)h(remo)m(v)m(es)h(the)f(sp)s(ecial)g +(meaning)f(from)g(`)p Fs(.)p Ft(',)h(so)g(the)630 1667 +y(literal)f(`)p Fs(.)p Ft(')e(matc)m(hes.)42 b(If)28 +b(the)i(string)f(in)g(the)g(\014rst)g(examples)g(w)m(ere)h(an)m(ything) +g(other)f(than)630 1776 y(`)p Fs(.)p Ft(',)g(sa)m(y)g(`)p +Fs(a)p Ft(',)g(the)f(pattern)g(w)m(ould)g(not)h(matc)m(h,)h(b)s(ecause) +e(the)g(quoted)g(`)p Fs(.)p Ft(')h(in)e(the)i(pattern)630 +1886 y(loses)i(its)g(sp)s(ecial)g(meaning)f(of)h(matc)m(hing)g(an)m(y)g +(single)g(c)m(haracter.)630 2022 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 2131 y(order)30 b(of)g(precedence:)630 +2293 y Fs(\()g Fi(expression)38 b Fs(\))1110 2403 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 +2513 y(normal)e(precedence)h(of)g(op)s(erators.)630 2675 +y Fs(!)f Fi(expression)1110 2784 y Ft(T)-8 b(rue)30 b(if)g +Fq(expression)g Ft(is)h(false.)630 2947 y Fi(expression1)38 +b Fs(&&)30 b Fi(expression2)1110 3056 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 3218 y Fi(expression1)38 b Fs(||)30 +b Fi(expression2)1110 3328 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 3490 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 +3600 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 +3802 y Fj(3.2.4.3)63 b(Grouping)43 b(Commands)150 3949 +y Ft(Bash)30 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m(ys)f(to)h(group)e(a)h +(list)g(of)g(commands)f(to)i(b)s(e)e(executed)h(as)g(a)h(unit.)40 +b(When)29 b(com-)150 4058 y(mands)h(are)i(group)s(ed,)f(redirections)h +(ma)m(y)g(b)s(e)e(applied)i(to)g(the)f(en)m(tire)h(command)g(list.)44 +b(F)-8 b(or)32 b(example,)150 4168 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 4332 y Fs(\(\))870 4468 y(\()47 +b Fi(list)58 b Fs(\))630 4603 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 4713 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(36\),)630 +4823 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 4932 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 @@ -8414,514 +8415,519 @@ y(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h(curly)f 408 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 518 y(follo)m(wing)32 b Fq(list)h Ft(is)d(required.)275 -674 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j +693 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 -784 y(t)m(w)m(o)c(constructs)e(due)g(to)g(historical)i(reasons.)67 +803 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 893 y(b)s(e)d(separated)h(from)f(the)g +b(so)g(they)f(m)m(ust)150 912 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 1003 +(haracters.)62 b(The)36 b(paren)m(theses)h(are)150 1022 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 1112 y(from)30 b(the)g Fq(list)j Ft(b)m(y)e(whitespace.) -275 1245 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h +(separated)150 1131 y(from)30 b(the)g Fq(list)j Ft(b)m(y)e(whitespace.) +275 1276 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)r -Ft(.)150 1441 y Fj(3.2.5)63 b(Copro)s(cesses)150 1588 +Ft(.)150 1486 y Fj(3.2.5)63 b(Copro)s(cesses)150 1633 y Ft(A)37 b Fs(coprocess)c Ft(is)k(a)g(shell)f(command)h(preceded)f(b)m (y)g(the)h Fs(coproc)d Ft(reserv)m(ed)j(w)m(ord.)59 b(A)36 -b(copro)s(cess)h(is)150 1697 y(executed)g(async)m(hronously)g(in)f(a)h +b(copro)s(cess)h(is)150 1742 y(executed)g(async)m(hronously)g(in)f(a)h (subshell,)g(as)g(if)g(the)f(command)h(had)f(b)s(een)f(terminated)i -(with)g(the)150 1807 y(`)p Fs(&)p Ft(')d(con)m(trol)h(op)s(erator,)g +(with)g(the)150 1852 y(`)p Fs(&)p Ft(')d(con)m(trol)h(op)s(erator,)g (with)f(a)g(t)m(w)m(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s(et)m(w)m -(een)h(the)f(executing)h(shell)f(and)f(the)150 1916 y(copro)s(cess.)275 -2049 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390 -2182 y Fs(coproc)46 b([)p Fi(NAME)11 b Fs(])46 b Fi(command)56 -b Fs([)p Fi(redirections)11 b Fs(])150 2315 y Ft(This)41 +(een)h(the)f(executing)h(shell)f(and)f(the)150 1962 y(copro)s(cess.)275 +2106 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390 +2251 y Fs(coproc)46 b([)p Fi(NAME)11 b Fs(])46 b Fi(command)56 +b Fs([)p Fi(redirections)11 b Fs(])150 2396 y Ft(This)41 b(creates)i(a)g(copro)s(cess)f(named)f Fq(NAME)5 b Ft(.)43 b(If)f Fq(NAME)47 b Ft(is)42 b(not)g(supplied,)i(the)e(default)g(name)g -(is)150 2424 y Fq(COPR)m(OC)8 b Ft(.)22 b Fq(NAME)29 +(is)150 2506 y Fq(COPR)m(OC)8 b Ft(.)22 b Fq(NAME)29 b Ft(m)m(ust)23 b(not)g(b)s(e)g(supplied)e(if)i Fq(command)k Ft(is)c(a)g(simple)g(command)g(\(see)h(Section)g(3.2.1)150 -2534 y([Simple)39 b(Commands],)h(page)g(8\);)k(otherwise,)e(it)d(is)g +2615 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 -2643 y(command.)275 2776 y(When)j(the)i(copro)s(cess)f(is)g(executed,) +2725 y(command.)275 2870 y(When)j(the)i(copro)s(cess)f(is)g(executed,) 48 b(the)43 b(shell)g(creates)i(an)e(arra)m(y)g(v)-5 -b(ariable)44 b(\(see)g(Section)g(6.7)150 2886 y([Arra)m(ys],)32 +b(ariable)44 b(\(see)g(Section)g(6.7)150 2979 y([Arra)m(ys],)32 b(page)g(88\))h(named)e Fs(NAME)f Ft(in)h(the)h(con)m(text)h(of)e(the)h (executing)g(shell.)44 b(The)31 b(standard)f(output)150 -2995 y(of)g Fq(command)j Ft(is)d(connected)g(via)g(a)g(pip)s(e)f(to)i +3089 y(of)g Fq(command)j Ft(is)d(connected)g(via)g(a)g(pip)s(e)f(to)i (a)f(\014le)g(descriptor)f(in)g(the)h(executing)h(shell,)f(and)g(that)g -(\014le)150 3105 y(descriptor)i(is)f(assigned)h(to)g +(\014le)150 3199 y(descriptor)i(is)f(assigned)h(to)g Fs(NAME)p Ft([0].)45 b(The)31 b(standard)g(input)f(of)i Fq(command)j Ft(is)d(connected)h(via)f(a)g(pip)s(e)150 -3215 y(to)39 b(a)g(\014le)f(descriptor)g(in)g(the)g(executing)i(shell,) +3308 y(to)39 b(a)g(\014le)f(descriptor)g(in)g(the)g(executing)i(shell,) g(and)e(that)h(\014le)f(descriptor)g(is)g(assigned)h(to)g -Fs(NAME)p Ft([1].)150 3324 y(This)31 b(pip)s(e)g(is)h(established)g(b)s +Fs(NAME)p Ft([1].)150 3418 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 3434 y([Redirections],)25 +(command)e(\(see)i(Section)g(3.6)150 3527 y([Redirections],)25 b(page)e(31\).)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 -3543 y(and)33 b(redirections)g(using)g(standard)f(w)m(ord)h +3637 y(and)33 b(redirections)g(using)g(standard)f(w)m(ord)h (expansions.)49 b(The)33 b(\014le)g(descriptors)g(are)g(not)h(a)m(v)-5 -b(ailable)35 b(in)150 3653 y(subshells.)275 3786 y(The)27 +b(ailable)35 b(in)150 3746 y(subshells.)275 3891 y(The)27 b(pro)s(cess)h(ID)h(of)f(the)h(shell)f(spa)m(wned)g(to)h(execute)h(the) e(copro)s(cess)h(is)f(a)m(v)-5 b(ailable)31 b(as)d(the)h(v)-5 -b(alue)29 b(of)150 3895 y(the)k(v)-5 b(ariable)33 b Fs(NAME)p -850 3895 28 4 v 39 w Ft(PID.)g(The)f Fs(wait)f Ft(builtin)h(command)g +b(alue)29 b(of)150 4001 y(the)k(v)-5 b(ariable)33 b Fs(NAME)p +850 4001 28 4 v 39 w Ft(PID.)g(The)f Fs(wait)f Ft(builtin)h(command)g (ma)m(y)h(b)s(e)f(used)g(to)h(w)m(ait)h(for)e(the)h(copro)s(cess)150 -4005 y(to)e(terminate.)275 4138 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)t -Ft(.)150 4333 y Fj(3.2.6)63 b(GNU)41 b(P)m(arallel)150 -4480 y Ft(GNU)36 b(P)m(arallel,)k(as)c(its)g(name)g(suggests,)i(can)e -(b)s(e)f(used)g(to)h(build)f(and)g(run)g(commands)g(in)h(parallel.)150 -4590 y(Y)-8 b(ou)41 b(ma)m(y)g(run)e(the)h(same)h(command)f(with)g +4110 y(to)e(terminate.)275 4255 y(Since)20 b(the)g(copro)s(cess)h(is)g +(created)g(as)g(an)f(async)m(hronous)g(command,)i(the)f +Fs(coproc)d Ft(command)i(alw)m(a)m(ys)150 4365 y(returns)29 +b(success.)41 b(The)30 b(return)f(status)i(of)f(a)h(copro)s(cess)g(is)f +(the)h(exit)g(status)g(of)f Fq(command)t Ft(.)150 4575 +y Fj(3.2.6)63 b(GNU)41 b(P)m(arallel)150 4721 y Ft(GNU)36 +b(P)m(arallel,)k(as)c(its)g(name)g(suggests,)i(can)e(b)s(e)f(used)g(to) +h(build)f(and)g(run)g(commands)g(in)h(parallel.)150 4831 +y(Y)-8 b(ou)41 b(ma)m(y)g(run)e(the)h(same)h(command)f(with)g (di\013eren)m(t)h(argumen)m(ts,)j(whether)39 b(they)i(are)g -(\014lenames,)150 4699 y(usernames,)30 b(hostnames,)h(or)f(lines)h -(read)f(from)g(\014les.)275 4832 y(F)-8 b(or)33 b(a)g(complete)h +(\014lenames,)150 4941 y(usernames,)30 b(hostnames,)h(or)f(lines)h +(read)f(from)g(\014les.)275 5086 y(F)-8 b(or)33 b(a)g(complete)h (description,)g(refer)e(to)i(the)f(GNU)g(P)m(arallel)i(do)s(cumen)m -(tation.)48 b(A)33 b(few)f(examples)150 4942 y(should)d(pro)m(vide)i(a) -g(brief)e(in)m(tro)s(duction)i(to)g(its)g(use.)275 5075 +(tation.)48 b(A)33 b(few)f(examples)150 5195 y(should)d(pro)m(vide)i(a) +g(brief)e(in)m(tro)s(duction)i(to)g(its)g(use.)275 5340 y(F)-8 b(or)31 b(example,)g(it)g(is)f(easy)h(to)g(pre\014x)f(eac)m(h)h -(line)g(in)f(a)h(text)g(\014le)g(with)f(a)g(sp)s(eci\014ed)g(string:) -390 5207 y Fs(cat)47 b(file)g(|)g(parallel)f(-k)h(echo)f(prefix_string) -150 5340 y Ft(The)30 b(`)p Fs(-k)p Ft(')g(option)h(is)f(required)g(to)h -(preserv)m(e)g(the)f(lines')h(order.)p eop end +(line)g(in)f(a)h(text)g(\014le)g(with)f(a)g(sp)s(eci\014ed)g(string:)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)275 299 y(Similarly)-8 b(,)31 -b(y)m(ou)g(can)f(app)s(end)f(a)i(sp)s(eci\014ed)e(string)i(to)g(eac)m -(h)g(line)g(in)f(a)h(text)g(\014le:)390 431 y Fs(cat)47 +TeXDict begin 16 21 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(16)390 299 +y Fs(cat)47 b(file)g(|)g(parallel)f(-k)h(echo)f(prefix_string)150 +435 y Ft(The)30 b(`)p Fs(-k)p Ft(')g(option)h(is)f(required)g(to)h +(preserv)m(e)g(the)f(lines')h(order.)275 572 y(Similarly)-8 +b(,)31 b(y)m(ou)g(can)f(app)s(end)f(a)i(sp)s(eci\014ed)e(string)i(to)g +(eac)m(h)g(line)g(in)f(a)h(text)g(\014le:)390 708 y Fs(cat)47 b(file)g(|)g(parallel)f(-k)h(echo)f({})i(append_string)275 -563 y Ft(Y)-8 b(ou)34 b(can)g(use)f(P)m(arallel)j(to)e(mo)m(v)m(e)h +845 y Ft(Y)-8 b(ou)34 b(can)g(use)f(P)m(arallel)j(to)e(mo)m(v)m(e)h (\014les)f(from)f(the)h(curren)m(t)f(directory)h(when)f(the)h(n)m(um)m -(b)s(er)e(of)i(\014les)150 672 y(is)c(to)s(o)i(large)f(to)g(pro)s(cess) -f(with)g(one)h Fs(mv)f Ft(in)m(v)m(o)s(cation:)390 804 -y Fs(ls)47 b(|)h(parallel)d(mv)i({})h(destdir)275 936 +(b)s(er)e(of)i(\014les)150 954 y(is)c(to)s(o)i(large)f(to)g(pro)s(cess) +f(with)g(one)h Fs(mv)f Ft(in)m(v)m(o)s(cation:)390 1091 +y Fs(ls)47 b(|)h(parallel)d(mv)i({})h(destdir)275 1227 y Ft(As)35 b(y)m(ou)h(can)f(see,)j(the)d Fs({})g Ft(is)g(replaced)h (with)f(eac)m(h)i(line)f(read)f(from)g(standard)f(input.)55 -b(This)35 b(will)150 1046 y(run)f(as)h(man)m(y)g Fs(mv)g +b(This)35 b(will)150 1337 y(run)f(as)h(man)m(y)g Fs(mv)g Ft(commands)g(as)g(there)h(are)f(\014les)g(in)g(the)h(curren)m(t)f (directory)-8 b(.)56 b(Y)-8 b(ou)35 b(can)h(em)m(ulate)h(a)150 -1155 y(parallel)31 b Fs(xargs)e Ft(b)m(y)i(adding)f(the)g(`)p -Fs(-X)p Ft(')g(option:)390 1287 y Fs(ls)47 b(|)h(parallel)d(-X)i(mv)h -({})f(destdir)275 1419 y Ft(GNU)31 b(P)m(arallel)i(can)e(replace)h +1446 y(parallel)31 b Fs(xargs)e Ft(b)m(y)i(adding)f(the)g(`)p +Fs(-X)p Ft(')g(option:)390 1583 y Fs(ls)47 b(|)h(parallel)d(-X)i(mv)h +({})f(destdir)275 1719 y Ft(GNU)31 b(P)m(arallel)i(can)e(replace)h (certain)g(common)g(idioms)f(that)g(op)s(erate)h(on)f(lines)g(read)g -(from)f(a)i(\014le)150 1528 y(\(in)e(this)h(case,)g(\014lenames\):)390 -1660 y Fs(for)47 b(x)g(in)h($\(cat)e(list\);)g(do)390 -1770 y(do-something1)e($x)j(config-$x)390 1879 y(do-something2)d(<)k -($x)390 1989 y(done)f(|)g(process-output)150 2121 y Ft(with)30 +(from)f(a)i(\014le)150 1829 y(\(in)e(this)h(case,)g(\014lenames\):)390 +1966 y Fs(for)47 b(x)g(in)h($\(cat)e(list\);)g(do)390 +2075 y(do-something1)e($x)j(config-$x)390 2185 y(do-something2)d(<)k +($x)390 2294 y(done)f(|)g(process-output)150 2431 y Ft(with)30 b(a)h(more)f(compact)i(syn)m(tax)f(reminiscen)m(t)g(of)g(lam)m(b)s -(das:)390 2253 y Fs(cat)47 b(list)g(|)g(parallel)f("do-something1)d({}) +(das:)390 2567 y Fs(cat)47 b(list)g(|)g(parallel)f("do-something1)d({}) 48 b(config-{})d(;)i(do-something2)e(<)i({}")g(|)g(process-output)275 -2385 y Ft(P)m(arallel)31 b(pro)m(vides)e(a)h(built-in)g(mec)m(hanism)g +2704 y Ft(P)m(arallel)31 b(pro)m(vides)e(a)h(built-in)g(mec)m(hanism)g (to)g(remo)m(v)m(e)h(\014lename)e(extensions,)i(whic)m(h)e(lends)g -(itself)150 2494 y(to)i(batc)m(h)g(\014le)g(transformations)f(or)g -(renaming:)390 2626 y Fs(ls)47 b(*.gz)g(|)g(parallel)f(-j+0)g("zcat)h -({})g(|)g(bzip2)g(>{.}.bz2)e(&&)j(rm)f({}")150 2758 y +(itself)150 2813 y(to)i(batc)m(h)g(\014le)g(transformations)f(or)g +(renaming:)390 2950 y Fs(ls)47 b(*.gz)g(|)g(parallel)f(-j+0)g("zcat)h +({})g(|)g(bzip2)g(>{.}.bz2)e(&&)j(rm)f({}")150 3086 y Ft(This)28 b(will)i(recompress)e(all)i(\014les)f(in)g(the)g(curren)m(t) g(directory)g(with)g(names)g(ending)f(in)h(.gz)h(using)f(bzip2,)150 -2868 y(running)g(one)h(job)g(p)s(er)g(CPU)g(\(-j)p Fs(+)p -Ft(0\))h(in)f(parallel.)275 2999 y(If)24 b(a)i(command)f(generates)h +3196 y(running)g(one)h(job)g(p)s(er)g(CPU)g(\(-j)p Fs(+)p +Ft(0\))h(in)f(parallel.)275 3332 y(If)24 b(a)i(command)f(generates)h (output,)g(y)m(ou)g(ma)m(y)f(w)m(an)m(t)h(to)g(preserv)m(e)g(the)f -(input)f(order)h(in)g(the)g(output.)150 3109 y(F)-8 b(or)31 -b(instance,)g(the)g(follo)m(wing)h(command)390 3241 y +(input)f(order)h(in)g(the)g(output.)150 3442 y(F)-8 b(or)31 +b(instance,)g(the)g(follo)m(wing)h(command)390 3578 y Fs({)47 b(echo)g(foss.org.my)e(;)i(echo)g(debian.org;)e(echo)h (freenetproject.org;)d(})k(|)h(parallel)d(traceroute)150 -3373 y Ft(will)28 b(displa)m(y)g(as)f(output)g(the)h(traceroute)h(in)m +3715 y Ft(will)28 b(displa)m(y)g(as)f(output)g(the)h(traceroute)h(in)m (v)m(o)s(cation)h(that)e(\014nishes)e(\014rst.)39 b(Using)28 -b(the)g(`)p Fs(-k)p Ft(')f(option,)i(as)150 3482 y(w)m(e)i(sa)m(w)g(ab) -s(o)m(v)m(e)390 3614 y Fs({)47 b(echo)g(foss.org.my)e(;)i(echo)g +b(the)g(`)p Fs(-k)p Ft(')f(option,)i(as)150 3824 y(w)m(e)i(sa)m(w)g(ab) +s(o)m(v)m(e)390 3961 y Fs({)47 b(echo)g(foss.org.my)e(;)i(echo)g (debian.org;)e(echo)h(freenetproject.org;)d(})k(|)h(parallel)d(-k)i -(traceroute)150 3746 y Ft(will)31 b(ensure)e(that)i(the)g(output)f(of)g +(traceroute)150 4097 y Ft(will)31 b(ensure)e(that)i(the)g(output)f(of)g Fs(traceroute)e(foss.org.my)f Ft(is)k(displa)m(y)m(ed)g(\014rst.)150 -3973 y Fr(3.3)68 b(Shell)45 b(F)-11 b(unctions)150 4133 +4333 y Fr(3.3)68 b(Shell)45 b(F)-11 b(unctions)150 4492 y Ft(Shell)35 b(functions)h(are)g(a)g(w)m(a)m(y)g(to)h(group)e (commands)g(for)h(later)g(execution)h(using)e(a)h(single)g(name)g(for) -150 4242 y(the)f(group.)55 b(They)35 b(are)g(executed)h(just)f(lik)m(e) +150 4602 y(the)f(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 4352 y(function)j(is)g(used)f(as)h(a) +b(the)h(name)f(of)g(a)h(shell)150 4711 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 4461 y(function)25 b(name)h(is)g(executed.)40 +(ciated)i(with)d(that)150 4821 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 4571 y(pro)s(cess)30 -b(is)g(created)i(to)f(in)m(terpret)g(them.)275 4703 y(F)-8 +(shell)g(con)m(text;)j(no)c(new)150 4931 y(pro)s(cess)30 +b(is)g(created)i(to)f(in)m(terpret)g(them.)275 5067 y(F)-8 b(unctions)30 b(are)h(declared)g(using)f(this)g(syn)m(tax:)390 -4835 y Fi(name)57 b Fs(\(\))47 b Fi(compound-command)54 -b Fs([)48 b Fi(redirections)55 b Fs(])275 4967 y Ft(or)390 -5099 y Fs(function)46 b Fi(name)57 b Fs([\(\)])46 b Fi -(compound-command)54 b Fs([)48 b Fi(redirections)55 b -Fs(])275 5230 y Ft(This)31 b(de\014nes)h(a)g(shell)h(function)f(named)g -Fq(name)5 b Ft(.)47 b(The)32 b(reserv)m(ed)h(w)m(ord)f -Fs(function)e Ft(is)i(optional.)48 b(If)150 5340 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)p eop end +5204 y Fi(name)57 b Fs(\(\))47 b Fi(compound-command)54 +b Fs([)48 b Fi(redirections)55 b Fs(])275 5340 y Ft(or)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(function)41 b(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 -408 y(Commands],)33 b(page)g(9\).)48 b(That)33 b(command)g(is)f +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)390 299 +y Fs(function)46 b Fi(name)57 b Fs([\(\)])46 b Fi(compound-command)54 +b Fs([)48 b Fi(redirections)55 b Fs(])275 445 y Ft(This)31 +b(de\014nes)h(a)g(shell)h(function)f(named)g Fq(name)5 +b Ft(.)47 b(The)32 b(reserv)m(ed)h(w)m(ord)f Fs(function)e +Ft(is)i(optional.)48 b(If)150 555 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 664 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 +774 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 518 y(b)s(e)27 +Fs({)e Ft(and)g Fs(})p Ft(,)h(but)f(ma)m(y)150 883 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 628 y Ft(is)j(sp)s(eci\014ed)f(as)g(the)h(name)g(of)g(a)g +Fq(name)150 993 y Ft(is)j(sp)s(eci\014ed)f(as)g(the)h(name)g(of)g(a)g (command.)41 b(When)31 b(the)f(shell)h(is)g(in)f Fl(posix)g -Ft(mo)s(de)g(\(see)i(Section)f(6.11)150 737 y([Bash)36 -b(POSIX)f(Mo)s(de],)j(page)e(92\),)j Fq(name)i Ft(ma)m(y)36 +Ft(mo)s(de)g(\(see)i(Section)f(6.11)150 1103 y([Bash)36 +b(POSIX)f(Mo)s(de],)j(page)e(93\),)j Fq(name)i Ft(ma)m(y)36 b(not)h(b)s(e)e(the)h(same)g(as)g(one)g(of)g(the)g(sp)s(ecial)h -(builtins)150 847 y(\(see)24 b(Section)g(4.4)g([Sp)s(ecial)g +(builtins)150 1212 y(\(see)24 b(Section)g(4.4)g([Sp)s(ecial)g (Builtins],)h(page)f(67\).)40 b(An)m(y)23 b(redirections)h(\(see)g -(Section)g(3.6)g([Redirections],)150 956 y(page)31 b(31\))h(asso)s +(Section)g(3.6)g([Redirections],)150 1322 y(page)31 b(31\))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 1090 y(A)41 b(function)f +(the)g(function)g(is)h(executed.)275 1468 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 -1200 y(Section)31 b(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(41\).) -275 1334 y(The)26 b(exit)i(status)g(of)f(a)h(function)f(de\014nition)g +1577 y(Section)31 b(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(40\).) +275 1724 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 1443 y(function)k(with)f(the)i(same)f(name)g(already)h +(readonly)150 1833 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 1553 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g +(function)150 1943 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 -1687 y(Note)22 b(that)f(for)f(historical)i(reasons,)h(in)e(the)g(most)g +2089 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 -1797 y(the)38 b(b)s(o)s(dy)d(of)j(the)f(function)g(m)m(ust)g(b)s(e)g +2198 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 1906 y(is)38 b(b)s(ecause)g(the)h +Ft(s)f(or)h(newlines.)62 b(This)150 2308 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 2016 y(separated)26 +i(as)e(suc)m(h)g(when)f(they)i(are)150 2418 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 2125 +(shell)g(metac)m(haracter.)41 b(Also,)28 b(when)150 2527 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 2259 y(When)i(a)i(function)f(is)g +Ft(',)h(or)g(a)f(newline.)275 2673 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 2369 y(rameters)42 b(during)e(its)i +(the)h(p)s(ositional)g(pa-)150 2783 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(19\).)75 b(The)150 2478 y(sp)s(ecial)37 +(arameters],)i(page)c(19\).)75 b(The)150 2892 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 -2588 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35 +3002 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 2698 +b(\014rst)f(elemen)m(t)j(of)e(the)g Fs(FUNCNAME)150 3112 y Ft(v)-5 b(ariable)31 b(is)g(set)f(to)i(the)e(name)h(of)f(the)h (function)f(while)g(the)h(function)f(is)g(executing.)275 -2832 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en) +3258 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en) m(vironmen)m(t)g(are)f(iden)m(tical)h(b)s(et)m(w)m(een)g(a)f(function)g -(and)150 2941 y(its)35 b(caller)i(with)d(these)i(exceptions:)50 +(and)150 3367 y(its)35 b(caller)i(with)d(these)i(exceptions:)50 b(the)36 b Fs(DEBUG)d Ft(and)h Fs(RETURN)g Ft(traps)g(are)i(not)f -(inherited)f(unless)h(the)150 3051 y(function)26 b(has)g(b)s(een)f(giv) +(inherited)f(unless)h(the)150 3477 y(function)26 b(has)g(b)s(een)f(giv) m(en)i(the)g Fs(trace)d Ft(attribute)j(using)f(the)g Fs(declare)e Ft(builtin)i(or)g(the)h Fs(-o)i(functrace)150 -3160 y Ft(option)f(has)e(b)s(een)h(enabled)g(with)g(the)g +3587 y Ft(option)f(has)e(b)s(een)h(enabled)g(with)g(the)g Fs(set)f Ft(builtin,)i(\(in)f(whic)m(h)f(case)j(all)f(functions)e -(inherit)h(the)g Fs(DEBUG)150 3270 y Ft(and)33 b Fs(RETURN)f +(inherit)h(the)g Fs(DEBUG)150 3696 y Ft(and)33 b Fs(RETURN)f Ft(traps\),)j(and)e(the)h Fs(ERR)f Ft(trap)h(is)g(not)g(inherited)f (unless)g(the)h Fs(-o)c(errtrace)h Ft(shell)j(option)150 -3380 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f -(Shell)g(Builtins],)i(page)f(41,)i(for)c(the)i(description)f(of)150 -3489 y(the)c Fs(trap)e Ft(builtin.)275 3623 y(The)38 +3806 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f +(Shell)g(Builtins],)i(page)f(40,)i(for)c(the)i(description)f(of)150 +3915 y(the)c Fs(trap)e Ft(builtin.)275 4061 y(The)38 b Fs(FUNCNEST)f Ft(v)-5 b(ariable,)42 b(if)d(set)h(to)g(a)g(n)m(umeric) f(v)-5 b(alue)39 b(greater)h(than)f(0,)j(de\014nes)d(a)g(maxim)m(um)150 -3733 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25 +4171 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25 b(in)m(v)m(o)s(cations)i(that)e(exceed)g(the)g(limit)g(cause)g(the)g -(en)m(tire)g(command)150 3842 y(to)31 b(ab)s(ort.)275 -3976 y(If)37 b(the)g(builtin)g(command)h Fs(return)d +(en)m(tire)g(command)150 4281 y(to)31 b(ab)s(ort.)275 +4427 y(If)37 b(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 4086 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f +(and)150 4536 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 4195 y(with)36 b(the)h Fs(RETURN)d Ft(trap)i(is)h(executed) +(ciated)150 4646 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 4305 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s +(completes,)150 4756 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 4415 y(v)-5 +Fs(#)p Ft(')g(are)h(restored)f(to)h(the)150 4865 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 4524 y(that)j(is)g(the)f(function's)h(return)e +Fs(return)p Ft(,)150 4975 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 4634 y(of)h(the)f(last)h(command)f(executed)i(b)s -(efore)e(the)g Fs(return)p Ft(.)275 4768 y(V)-8 b(ariables)31 +(exit)h(status)150 5084 y(of)h(the)f(last)h(command)f(executed)i(b)s +(efore)e(the)g Fs(return)p Ft(.)275 5230 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 -4877 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 5011 y(F)-8 b(unction)47 -b(names)g(and)f(de\014nitions)g(ma)m(y)h(b)s(e)f(listed)i(with)e(the)h -(`)p Fs(-f)p Ft(')f(option)i(to)f(the)g Fs(declare)150 -5121 y Ft(\()p Fs(typeset)p Ft(\))39 b(builtin)i(command)f(\(see)i -(Section)f(4.2)h([Bash)f(Builtins],)j(page)d(48\).)73 -b(The)40 b(`)p Fs(-F)p Ft(')g(option)150 5230 y(to)29 +5340 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.)p eop end +%%Page: 18 24 +TeXDict begin 18 23 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(18)275 299 +y(F)-8 b(unction)47 b(names)g(and)f(de\014nitions)g(ma)m(y)h(b)s(e)f +(listed)i(with)e(the)h(`)p Fs(-f)p Ft(')f(option)i(to)f(the)g +Fs(declare)150 408 y Ft(\()p Fs(typeset)p Ft(\))39 b(builtin)i(command) +f(\(see)i(Section)f(4.2)h([Bash)f(Builtins],)j(page)d(47\).)73 +b(The)40 b(`)p Fs(-F)p Ft(')g(option)150 518 y(to)29 b Fs(declare)d Ft(or)i Fs(typeset)f Ft(will)h(list)h(the)f(function)g (names)h(only)f(\(and)g(optionally)h(the)g(source)f(\014le)h(and)150 -5340 y(line)k(n)m(um)m(b)s(er,)g(if)f(the)h Fs(extdebug)e +628 y(line)k(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)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)150 299 y(subshells)h(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 -408 y(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(41\).)47 +b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150 737 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 +847 y(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(40\).)47 b(Note)33 b(that)g(shell)f(functions)g(and)f(v)-5 b(ariables)33 -b(with)150 518 y(the)d(same)g(name)g(ma)m(y)g(result)g(in)g(m)m +b(with)150 956 y(the)d(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 628 y(to)h(the)g(shell's)f(c)m(hildren.)41 +(vironmen)m(t)g(passed)150 1066 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 760 y(F)-8 b(unctions)33 +m(y)h(cause)g(a)g(problem.)275 1198 y(F)-8 b(unctions)33 b(ma)m(y)g(b)s(e)g(recursiv)m(e.)48 b(The)32 b Fs(FUNCNEST)f Ft(v)-5 b(ariable)34 b(ma)m(y)f(b)s(e)f(used)g(to)i(limit)g(the)f -(depth)f(of)150 870 y(the)27 b(function)f(call)i(stac)m(k)h(and)d +(depth)f(of)150 1308 y(the)27 b(function)f(call)i(stac)m(k)h(and)d (restrict)h(the)g(n)m(um)m(b)s(er)f(of)h(function)f(in)m(v)m(o)s -(cations.)42 b(By)27 b(default,)g(no)g(limit)150 979 +(cations.)42 b(By)27 b(default,)g(no)g(limit)150 1418 y(is)j(placed)h(on)g(the)f(n)m(um)m(b)s(er)f(of)i(recursiv)m(e)f -(calls.)150 1208 y Fr(3.4)68 b(Shell)45 b(P)l(arameters)150 -1367 y Ft(A)23 b Fq(parameter)31 b Ft(is)23 b(an)g(en)m(tit)m(y)i(that) +(calls.)150 1646 y Fr(3.4)68 b(Shell)45 b(P)l(arameters)150 +1805 y Ft(A)23 b Fq(parameter)31 b Ft(is)23 b(an)g(en)m(tit)m(y)i(that) f(stores)g(v)-5 b(alues.)39 b(It)23 b(can)h(b)s(e)f(a)g Fs(name)p Ft(,)h(a)g(n)m(um)m(b)s(er,)f(or)h(one)f(of)h(the)f(sp)s -(ecial)150 1477 y(c)m(haracters)i(listed)f(b)s(elo)m(w.)39 +(ecial)150 1915 y(c)m(haracters)i(listed)f(b)s(elo)m(w.)39 b(A)24 b Fq(v)-5 b(ariable)29 b Ft(is)24 b(a)g(parameter)g(denoted)f(b) m(y)h(a)g Fs(name)p Ft(.)37 b(A)24 b(v)-5 b(ariable)24 -b(has)f(a)h Fq(v)-5 b(alue)150 1586 y Ft(and)33 b(zero)i(or)e(more)h +b(has)f(a)h Fq(v)-5 b(alue)150 2025 y Ft(and)33 b(zero)i(or)e(more)h Fq(attributes)t Ft(.)51 b(A)m(ttributes)34 b(are)g(assigned)g(using)f -(the)h Fs(declare)e Ft(builtin)h(command)150 1696 y(\(see)e(the)g +(the)h Fs(declare)e Ft(builtin)h(command)150 2134 y(\(see)e(the)g (description)f(of)h(the)f Fs(declare)f Ft(builtin)h(in)g(Section)h(4.2) -g([Bash)g(Builtins],)g(page)g(48\).)275 1828 y(A)d(parameter)h(is)g +g([Bash)g(Builtins],)g(page)g(47\).)275 2267 y(A)d(parameter)h(is)g (set)g(if)f(it)h(has)f(b)s(een)g(assigned)h(a)g(v)-5 b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)h(a)g(v)-5 -b(alid)28 b(v)-5 b(alue.)41 b(Once)150 1938 y(a)31 b(v)-5 +b(alid)28 b(v)-5 b(alue.)41 b(Once)150 2376 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 2070 +(using)g(the)g Fs(unset)f Ft(builtin)h(command.)275 2509 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 2203 y Fi(name)11 -b Fs(=[)p Fi(value)g Fs(])150 2335 y Ft(If)34 b Fq(v)-5 +(statemen)m(t)h(of)e(the)h(form)390 2641 y Fi(name)11 +b Fs(=[)p Fi(value)g Fs(])150 2774 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 -2445 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36 +2883 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36 b(expansion,)f(command)g(substitution,)h(arithmetic)g(expansion,)150 -2554 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).) +2993 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 2664 y Fq(v)-5 b(alue)38 +Ft(attribute)i(set,)j(then)150 3102 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 2774 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f +(used)150 3212 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f (page)h(28\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s -(erformed,)f(with)150 2883 y(the)35 b(exception)h(of)f +(erformed,)f(with)150 3322 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 -2993 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g +3431 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 3102 +Ft(,)g Fs(typeset)p Ft(,)g Fs(export)p Ft(,)150 3541 y Fs(readonly)p Ft(,)41 b(and)f Fs(local)f Ft(builtin)h(commands.)71 b(When)40 b(in)h Fl(posix)e Ft(mo)s(de)i(\(see)g(Section)g(6.11)i -([Bash)150 3212 y(POSIX)36 b(Mo)s(de],)k(page)e(92\),)i(these)e +([Bash)150 3650 y(POSIX)36 b(Mo)s(de],)k(page)e(93\),)i(these)e (builtins)f(ma)m(y)h(app)s(ear)e(in)h(a)h(command)f(after)h(one)f(or)h -(more)f(in-)150 3322 y(stances)31 b(of)g(the)f Fs(command)f +(more)f(in-)150 3760 y(stances)31 b(of)g(the)f Fs(command)f Ft(builtin)h(and)f(retain)i(these)g(assignmen)m(t)g(statemen)m(t)h -(prop)s(erties.)275 3454 y(In)d(the)h(con)m(text)i(where)d(an)h +(prop)s(erties.)275 3892 y(In)d(the)h(con)m(text)i(where)d(an)h (assignmen)m(t)h(statemen)m(t)h(is)e(assigning)g(a)h(v)-5 b(alue)30 b(to)h(a)f(shell)g(v)-5 b(ariable)31 b(or)150 -3564 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g([Arra)m(ys],)g(page)g +4002 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g([Arra)m(ys],)g(page)g (88\),)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 3673 y(or)36 b(add)g(to)h(the)f(v)-5 +(to)i(app)s(end)d(to)150 4112 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 3783 y Fq(in)m(teger)46 b +b(for)f(whic)m(h)g(the)150 4221 y Fq(in)m(teger)46 b Ft(attribute)38 b(has)f(b)s(een)g(set,)k Fq(v)-5 b(alue)43 b Ft(is)38 b(ev)-5 b(aluated)39 b(as)f(an)f(arithmetic)i(expression)f -(and)f(added)150 3892 y(to)f(the)f(v)-5 b(ariable's)36 +(and)f(added)150 4331 y(to)f(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 4002 y(v)-5 b(ariable)26 b(using)e(comp)s(ound)f +(arra)m(y)150 4440 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(88\),)h -(the)e(v)-5 b(ariable's)25 b(v)-5 b(alue)150 4112 y(is)32 +(the)e(v)-5 b(ariable's)25 b(v)-5 b(alue)150 4550 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 4221 y(at)27 b(one)f(greater)i(than)e(the) +(arra)m(y)g(b)s(eginning)150 4660 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 4331 y(k)m(ey-v)-5 +(or)e(added)g(as)g(additional)150 4769 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 -4440 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.)275 4573 y(A)37 b(v)-5 +4879 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.)275 5011 y(A)37 b(v)-5 b(ariable)38 b(can)g(b)s(e)f(assigned)h(the)f Fq(nameref)55 b Ft(attribute)38 b(using)f(the)h(`)p Fs(-n)p Ft(')f(option)h(to)g(the) -g Fs(\\)p Ft(fBde-)150 4682 y(clare)p Fs(\\)p Ft(fP)44 +g Fs(\\)p Ft(fBde-)150 5121 y(clare)p Fs(\\)p Ft(fP)44 b(or)f Fs(\\)p Ft(fBlo)s(cal)p Fs(\\)p Ft(fP)h(builtin)e(commands)h -(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)j(page)d(48\))g(to)150 -4792 y(create)36 b(a)e Fq(nameref)17 b Ft(,)35 b(or)f(a)h(reference)f +(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)j(page)d(47\))g(to)150 +5230 y(create)36 b(a)e Fq(nameref)17 b Ft(,)35 b(or)f(a)h(reference)f (to)h(another)f(v)-5 b(ariable.)53 b(This)33 b(allo)m(ws)i(v)-5 -b(ariables)35 b(to)f(b)s(e)g(manipu-)150 4902 y(lated)d(indirectly)-8 +b(ariables)35 b(to)f(b)s(e)g(manipu-)150 5340 y(lated)d(indirectly)-8 b(.)43 b(Whenev)m(er)31 b(the)g(nameref)f(v)-5 b(ariable)32 -b(is)e(referenced)h(or)f(assigned)h(to,)h(the)e(op)s(eration)150 -5011 y(is)i(actually)h(p)s(erformed)d(on)i(the)g(v)-5 -b(ariable)33 b(sp)s(eci\014ed)e(b)m(y)g(the)h(nameref)g(v)-5 -b(ariable's)33 b(v)-5 b(alue.)45 b(A)32 b(nameref)150 -5121 y(is)h(commonly)g(used)e(within)h(shell)h(functions)f(to)h(refer)f -(to)i(a)f(v)-5 b(ariable)33 b(whose)f(name)h(is)f(passed)g(as)h(an)150 -5230 y(argumen)m(t)g(to)g(the)g(function.)46 b(F)-8 b(or)33 -b(instance,)h(if)e(a)h(v)-5 b(ariable)33 b(name)g(is)f(passed)g(to)h(a) -g(shell)g(function)f(as)150 5340 y(its)f(\014rst)e(argumen)m(t,)i -(running)p eop end +b(is)e(referenced)h(or)f(assigned)h(to,)h(the)e(op)s(eration)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)390 299 -y Fs(declare)46 b(-n)h(ref=$1)150 425 y Ft(inside)31 -b(the)h(function)f(creates)i(a)g(nameref)e(v)-5 b(ariable)32 -b Fq(ref)49 b Ft(whose)32 b(v)-5 b(alue)32 b(is)g(the)f(v)-5 -b(ariable)33 b(name)e(passed)150 535 y(as)42 b(the)g(\014rst)f(argumen) -m(t.)74 b(References)43 b(and)e(assignmen)m(ts)h(to)g -Fq(ref)59 b Ft(are)42 b(treated)h(as)f(references)g(and)150 -644 y(assignmen)m(ts)31 b(to)g(the)g(v)-5 b(ariable)31 -b(whose)f(name)g(w)m(as)h(passed)f(as)h Fs($1)p Ft(.)275 -771 y(If)38 b(the)i(con)m(trol)g(v)-5 b(ariable)40 b(in)f(a)g -Fs(for)g Ft(lo)s(op)g(has)g(the)g(nameref)g(attribute,)k(the)c(list)h -(of)f(w)m(ords)g(can)150 880 y(b)s(e)c(a)i(list)f(of)g(shell)h(v)-5 -b(ariables,)38 b(and)d(a)h(name)g(reference)h(will)f(b)s(e)f -(established)i(for)e(eac)m(h)j(w)m(ord)d(in)h(the)150 -990 y(list,)30 b(in)f(turn,)g(when)f(the)i(lo)s(op)f(is)g(executed.)41 -b(Arra)m(y)30 b(v)-5 b(ariables)30 b(cannot)g(b)s(e)e(giv)m(en)i(the)g -(`)p Fs(-n)p Ft(')f(attribute.)150 1099 y(Ho)m(w)m(ev)m(er,)39 -b(nameref)d(v)-5 b(ariables)36 b(can)g(reference)g(arra)m(y)g(v)-5 -b(ariables)37 b(and)e(subscripted)f(arra)m(y)i(v)-5 b(ariables.)150 -1209 y(Namerefs)32 b(can)h(b)s(e)e(unset)h(using)f(the)h(`)p -Fs(-n)p Ft(')g(option)h(to)g(the)f Fs(unset)e Ft(builtin)i(\(see)h -(Section)g(4.1)g([Bourne)150 1319 y(Shell)43 b(Builtins],)j(page)e -(41\).)79 b(Otherwise,)45 b(if)e Fs(unset)e Ft(is)i(executed)h(with)e -(the)h(name)g(of)g(a)g(nameref)150 1428 y(v)-5 b(ariable)31 -b(as)g(an)f(argumen)m(t,)h(the)g(v)-5 b(ariable)31 b(referenced)f(b)m -(y)g(the)h(nameref)f(v)-5 b(ariable)31 b(will)g(b)s(e)f(unset.)150 -1611 y Fj(3.4.1)63 b(P)m(ositional)41 b(P)m(arameters)150 -1758 y Ft(A)28 b Fq(p)s(ositional)h(parameter)35 b Ft(is)28 -b(a)g(parameter)g(denoted)g(b)m(y)g(one)g(or)g(more)g(digits,)h(other)g -(than)e(the)h(single)150 1868 y(digit)34 b Fs(0)p Ft(.)48 -b(P)m(ositional)36 b(parameters)d(are)g(assigned)h(from)e(the)i -(shell's)f(argumen)m(ts)g(when)f(it)i(is)f(in)m(v)m(ok)m(ed,)150 -1977 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)e(the)h -Fs(set)g Ft(builtin)f(command.)67 b(P)m(ositional)41 -b(parameter)e Fs(N)g Ft(ma)m(y)h(b)s(e)150 2087 y(referenced)34 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)150 299 +y(is)32 b(actually)h(p)s(erformed)d(on)i(the)g(v)-5 b(ariable)33 +b(sp)s(eci\014ed)e(b)m(y)g(the)h(nameref)g(v)-5 b(ariable's)33 +b(v)-5 b(alue.)45 b(A)32 b(nameref)150 408 y(is)h(commonly)g(used)e +(within)h(shell)h(functions)f(to)h(refer)f(to)i(a)f(v)-5 +b(ariable)33 b(whose)f(name)h(is)f(passed)g(as)h(an)150 +518 y(argumen)m(t)g(to)g(the)g(function.)46 b(F)-8 b(or)33 +b(instance,)h(if)e(a)h(v)-5 b(ariable)33 b(name)g(is)f(passed)g(to)h(a) +g(shell)g(function)f(as)150 628 y(its)f(\014rst)e(argumen)m(t,)i +(running)390 758 y Fs(declare)46 b(-n)h(ref=$1)150 887 +y Ft(inside)31 b(the)h(function)f(creates)i(a)g(nameref)e(v)-5 +b(ariable)32 b Fq(ref)49 b Ft(whose)32 b(v)-5 b(alue)32 +b(is)g(the)f(v)-5 b(ariable)33 b(name)e(passed)150 997 +y(as)42 b(the)g(\014rst)f(argumen)m(t.)74 b(References)43 +b(and)e(assignmen)m(ts)h(to)g Fq(ref)59 b Ft(are)42 b(treated)h(as)f +(references)g(and)150 1107 y(assignmen)m(ts)31 b(to)g(the)g(v)-5 +b(ariable)31 b(whose)f(name)g(w)m(as)h(passed)f(as)h +Fs($1)p Ft(.)275 1236 y(If)38 b(the)i(con)m(trol)g(v)-5 +b(ariable)40 b(in)f(a)g Fs(for)g Ft(lo)s(op)g(has)g(the)g(nameref)g +(attribute,)k(the)c(list)h(of)f(w)m(ords)g(can)150 1346 +y(b)s(e)c(a)i(list)f(of)g(shell)h(v)-5 b(ariables,)38 +b(and)d(a)h(name)g(reference)h(will)f(b)s(e)f(established)i(for)e(eac)m +(h)j(w)m(ord)d(in)h(the)150 1456 y(list,)30 b(in)f(turn,)g(when)f(the)i +(lo)s(op)f(is)g(executed.)41 b(Arra)m(y)30 b(v)-5 b(ariables)30 +b(cannot)g(b)s(e)e(giv)m(en)i(the)g(`)p Fs(-n)p Ft(')f(attribute.)150 +1565 y(Ho)m(w)m(ev)m(er,)39 b(nameref)d(v)-5 b(ariables)36 +b(can)g(reference)g(arra)m(y)g(v)-5 b(ariables)37 b(and)e(subscripted)f +(arra)m(y)i(v)-5 b(ariables.)150 1675 y(Namerefs)32 b(can)h(b)s(e)e +(unset)h(using)f(the)h(`)p Fs(-n)p Ft(')g(option)h(to)g(the)f +Fs(unset)e Ft(builtin)i(\(see)h(Section)g(4.1)g([Bourne)150 +1784 y(Shell)43 b(Builtins],)j(page)e(40\).)79 b(Otherwise,)45 +b(if)e Fs(unset)e Ft(is)i(executed)h(with)e(the)h(name)g(of)g(a)g +(nameref)150 1894 y(v)-5 b(ariable)31 b(as)g(an)f(argumen)m(t,)h(the)g +(v)-5 b(ariable)31 b(referenced)f(b)m(y)g(the)h(nameref)f(v)-5 +b(ariable)31 b(will)g(b)s(e)f(unset.)150 2084 y Fj(3.4.1)63 +b(P)m(ositional)41 b(P)m(arameters)150 2231 y Ft(A)28 +b Fq(p)s(ositional)h(parameter)35 b Ft(is)28 b(a)g(parameter)g(denoted) +g(b)m(y)g(one)g(or)g(more)g(digits,)h(other)g(than)e(the)h(single)150 +2341 y(digit)34 b Fs(0)p Ft(.)48 b(P)m(ositional)36 b(parameters)d(are) +g(assigned)h(from)e(the)i(shell's)f(argumen)m(ts)g(when)f(it)i(is)f(in) +m(v)m(ok)m(ed,)150 2450 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using) +e(the)h Fs(set)g Ft(builtin)f(command.)67 b(P)m(ositional)41 +b(parameter)e Fs(N)g Ft(ma)m(y)h(b)s(e)150 2560 y(referenced)34 b(as)h Fs(${N})p Ft(,)g(or)f(as)h Fs($N)e Ft(when)h Fs(N)g Ft(consists)h(of)f(a)h(single)g(digit.)54 b(P)m(ositional)37 -b(parameters)d(ma)m(y)150 2196 y(not)j(b)s(e)f(assigned)h(to)g(with)f +b(parameters)d(ma)m(y)150 2669 y(not)j(b)s(e)f(assigned)h(to)g(with)f (assignmen)m(t)i(statemen)m(ts.)61 b(The)36 b Fs(set)g Ft(and)g Fs(shift)f Ft(builtins)h(are)h(used)f(to)150 -2306 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h -(Builtin)g(Commands],)h(page)f(41\).)68 b(The)39 b(p)s(ositional)150 -2416 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h +2779 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h +(Builtin)g(Commands],)h(page)f(40\).)68 b(The)39 b(p)s(ositional)150 +2888 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h (shell)g(function)g(is)g(executed)g(\(see)h(Section)g(3.3)150 -2525 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(16\).)275 -2651 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f +2998 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(16\).)275 +3128 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f (than)g(a)g(single)h(digit)g(is)f(expanded,)g(it)h(m)m(ust)150 -2761 y(b)s(e)h(enclosed)h(in)f(braces.)150 2944 y Fj(3.4.2)63 -b(Sp)s(ecial)41 b(P)m(arameters)150 3091 y Ft(The)d(shell)g(treats)h +3238 y(b)s(e)h(enclosed)h(in)f(braces.)150 3428 y Fj(3.4.2)63 +b(Sp)s(ecial)41 b(P)m(arameters)150 3574 y Ft(The)d(shell)g(treats)h (sev)m(eral)g(parameters)f(sp)s(ecially)-8 b(.)65 b(These)38 b(parameters)h(ma)m(y)f(only)g(b)s(e)g(referenced;)150 -3200 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)m(w)m(ed.)150 -3343 y Fs(*)432 b Ft(Expands)29 b(to)h(the)h(p)s(ositional)f +3684 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)m(w)m(ed.)150 +3834 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 3453 y(o)s(ccurs)e(within)f(double)h(quotes,)h(it)g(expands)e(to)i +630 3944 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 -3563 y(parameter)i(separated)g(b)m(y)f(the)g(\014rst)g(c)m(haracter)i +4053 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 3672 y Fs("$*")h Ft(is)i(equiv)-5 +b(That)30 b(is,)630 4163 y Fs("$*")h Ft(is)i(equiv)-5 b(alen)m(t)33 b(to)h Fs("$1)p Fi(c)11 b Fs($2)p Fi(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 3782 y(of)30 b(the)g +(haracter)j(of)f(the)f(v)-5 b(alue)630 4273 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 -3891 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 4034 y +4382 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 4532 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 -4144 y(o)s(ccurs)c(within)g(double)f(quotes,)j(eac)m(h)f(parameter)g +4642 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 -4253 y(is,)29 b Fs("$@")e Ft(is)i(equiv)-5 b(alen)m(t)30 +4751 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 4363 y(within)d(a)h(w)m(ord,)g(the)g +(expansion)f(o)s(ccurs)630 4861 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 4473 y(part)f(of)g(the)g(original)g(w)m(ord,)h(and)e +h(b)s(eginning)630 4971 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 -4582 y(the)37 b(last)g(part)g(of)f(the)h(original)h(w)m(ord.)59 +5080 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 -4692 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 4835 y Fs(#)432 +5190 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 5340 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 4978 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 5121 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 -5230 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 5340 y(option\).)p eop end +(parameters)g(in)f(decimal.)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($)432 b Ft(Expands)39 +TeXDict begin 20 25 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(20)150 299 +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 +444 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 553 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 663 y(option\).)150 808 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 -408 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 596 y Fs(!)432 b Ft(Expands)39 +918 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 1063 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 706 y(c)m(hronous\))30 -b(command.)150 893 y Fs(0)432 b Ft(Expands)20 b(to)j(the)f(name)g(of)g +(executed)g(bac)m(kground)g(\(asyn-)630 1172 y(c)m(hronous\))30 +b(command.)150 1317 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 1003 y(If)44 b(Bash)g(is)g(in)m(v)m(ok)m +(shell)f(initialization.)630 1427 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 1112 y(page)39 b(38\),)i Fs($0)d +([Shell)f(Scripts],)630 1536 y(page)39 b(38\),)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 1222 y(option)i(\(see)g(Section)h(6.1)f([In)m(v)m(oking)h +Ft(')630 1646 y(option)i(\(see)g(Section)h(6.1)f([In)m(v)m(oking)h (Bash],)h(page)e(79\),)j(then)d Fs($0)e Ft(is)i(set)g(to)g(the)g -(\014rst)630 1331 y(argumen)m(t)31 b(after)g(the)g(string)g(to)g(b)s(e) +(\014rst)630 1756 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 1441 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m +b(it)g(is)f(set)630 1865 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 -1629 y Fs(_)432 b Ft(\(An)27 b(underscore.\))39 b(A)m(t)29 +2010 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 1738 y(the)22 b(shell)g(or)g(shell)g(script)f(b)s +(in)m(v)m(ok)m(e)630 2120 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 1848 y(list.)72 b(Subsequen)m(tly)-8 +(argumen)m(t)630 2229 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 1957 y(after)35 b(expansion.)54 b(Also)36 +f(command,)630 2339 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 2067 y(executed)42 b(and)e(placed)i(in)e(the)h(en)m +m(h)f(command)630 2449 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 2176 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 2451 y Fr(3.5)68 -b(Shell)45 b(Expansions)150 2610 y Ft(Expansion)27 b(is)i(p)s(erformed) +b(When)630 2558 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 2776 y Fr(3.5)68 +b(Shell)45 b(Expansions)150 2936 y Ft(Expansion)27 b(is)i(p)s(erformed) d(on)i(the)g(command)g(line)h(after)f(it)h(has)f(b)s(een)f(split)h(in)m -(to)i Fs(token)p Ft(s.)38 b(There)28 b(are)150 2720 y(sev)m(en)j(kinds) -e(of)i(expansion)f(p)s(erformed:)225 2883 y Fp(\017)60 -b Ft(brace)31 b(expansion)225 3031 y Fp(\017)60 b Ft(tilde)31 -b(expansion)225 3180 y Fp(\017)60 b Ft(parameter)31 b(and)f(v)-5 -b(ariable)31 b(expansion)225 3328 y Fp(\017)60 b Ft(command)30 -b(substitution)225 3477 y Fp(\017)60 b Ft(arithmetic)32 -b(expansion)225 3625 y Fp(\017)60 b Ft(w)m(ord)30 b(splitting)225 -3774 y Fp(\017)60 b Ft(\014lename)31 b(expansion)275 -3975 y(The)i(order)g(of)h(expansions)g(is:)47 b(brace)34 +(to)i Fs(token)p Ft(s.)38 b(There)28 b(are)150 3045 y(sev)m(en)j(kinds) +e(of)i(expansion)f(p)s(erformed:)225 3173 y Fp(\017)60 +b Ft(brace)31 b(expansion)225 3300 y Fp(\017)60 b Ft(tilde)31 +b(expansion)225 3427 y Fp(\017)60 b Ft(parameter)31 b(and)f(v)-5 +b(ariable)31 b(expansion)225 3554 y Fp(\017)60 b Ft(command)30 +b(substitution)225 3682 y Fp(\017)60 b Ft(arithmetic)32 +b(expansion)225 3809 y Fp(\017)60 b Ft(w)m(ord)30 b(splitting)225 +3936 y Fp(\017)60 b Ft(\014lename)31 b(expansion)275 +4081 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 4085 y(arithmetic)46 b(expansion)f(and)g +b(ariable,)36 b(and)150 4191 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 4195 y(splitting,)31 b(and)f(\014lename)h -(expansion.)275 4357 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,) +(fashion\),)h(w)m(ord)150 4301 y(splitting,)31 b(and)f(\014lename)h +(expansion.)275 4428 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 4467 y(substitution)p +b(ailable:)69 b Fq(pro)s(cess)150 4537 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 -4576 y(expansion)30 b(and)g(command)g(substitution.)275 -4739 y(Only)35 b(brace)i(expansion,)h(w)m(ord)e(splitting,)j(and)d +4647 y(expansion)30 b(and)g(command)g(substitution.)275 +4774 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 -4849 y(of)h(w)m(ords)f(of)g(the)h(expansion;)i(other)e(expansions)f +4884 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 4958 y(only)32 b(exceptions)i(to)f(this)f(are)h(the)f +b(The)150 4993 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 5068 y(page)e(19\))h(and)d Fs("${)p +(P)m(arameters],)150 5103 y(page)e(19\))h(and)d Fs("${)p Fi(name)11 b Fs([@]}")27 b Ft(\(see)k(Section)h(6.7)f([Arra)m(ys],)g (page)g(88\).)275 5230 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(30\))h(is)150 5340 y(p)s(erformed.)p +(v)-5 b(al],)47 b(page)42 b(31\))h(is)150 5340 y(p)s(erformed.)p eop end %%Page: 21 27 TeXDict begin 21 26 bop 150 -116 a Ft(Chapter)30 b(3:)41 @@ -8963,130 +8969,132 @@ 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 2281 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 2390 y(expression)h(expands)f(to)i(eac)m(h)g(c)m(haracter)g -(lexicographically)i(b)s(et)m(w)m(een)e Fq(x)43 b Ft(and)37 -b Fq(y)8 b Ft(,)38 b(inclusiv)m(e.)62 b(Note)150 2500 -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 2610 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 2746 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 2856 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed) -f(in)h(the)f(result.)45 b(It)32 b(is)g(strictly)g(textual.)46 -b(Bash)32 b(do)s(es)f(not)h(apply)150 2965 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 -3075 y(T)-8 b(o)37 b(a)m(v)m(oid)g(con\015icts)g(with)f(parameter)h +150 2390 y(expression)24 b(expands)e(to)j(eac)m(h)g(c)m(haracter)g +(lexicographically)i(b)s(et)m(w)m(een)d Fq(x)30 b Ft(and)23 +b Fq(y)8 b Ft(,)25 b(inclusiv)m(e,)h(using)e(the)150 +2500 y(default)32 b(C)g(lo)s(cale.)48 b(Note)34 b(that)f(b)s(oth)e +Fq(x)39 b Ft(and)31 b Fq(y)40 b Ft(m)m(ust)32 b(b)s(e)g(of)g(the)h +(same)f(t)m(yp)s(e.)47 b(When)32 b(the)g(incremen)m(t)150 +2610 y(is)d(supplied,)g(it)h(is)f(used)f(as)i(the)f(di\013erence)h(b)s +(et)m(w)m(een)g(eac)m(h)g(term.)41 b(The)29 b(default)g(incremen)m(t)h +(is)f(1)h(or)f(-1)150 2719 y(as)i(appropriate.)275 2856 +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 +2965 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)f(in)h(the)f +(result.)45 b(It)32 b(is)g(strictly)g(textual.)46 b(Bash)32 +b(do)s(es)f(not)h(apply)150 3075 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 3185 +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 3185 y(brace)31 b(expansion.)275 -3321 y(A)e(correctly-formed)i(brace)f(expansion)f(m)m(ust)h(con)m(tain) +(eligible)i(for)150 3294 y(brace)31 b(expansion.)275 +3431 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 -3431 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5 +3541 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 3541 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275 -3677 y(A)25 b Fs({)g Ft(or)g(`)p Fs(,)p Ft(')g(ma)m(y)h(b)s(e)f(quoted) +(formed)150 3650 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275 +3787 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 3787 y(expression.)51 +(considered)g(part)g(of)g(a)h(brace)150 3897 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 3897 y(eligible)e(for)e(brace)h(expansion.)275 4033 +150 4006 y(eligible)e(for)e(brace)h(expansion.)275 4143 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 -4143 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 4280 y Fs(mkdir)46 b(/usr/local/src/bash/{old,n)o -(ew,)o(dist)o(,bug)o(s})275 4416 y Ft(or)390 4553 y Fs(chown)g(root)h +4252 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 4389 y Fs(mkdir)46 b(/usr/local/src/bash/{old,n)o +(ew,)o(dist)o(,bug)o(s})275 4526 y Ft(or)390 4663 y Fs(chown)g(root)h (/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})150 -4755 y Fj(3.5.2)63 b(Tilde)41 b(Expansion)150 4902 y +4864 y Fj(3.5.2)63 b(Tilde)41 b(Expansion)150 5011 y Ft(If)29 b(a)h(w)m(ord)g(b)s(egins)f(with)g(an)h(unquoted)f(tilde)h(c)m (haracter)h(\(`)p Fs(~)p Ft('\),)g(all)g(of)f(the)g(c)m(haracters)h(up) -d(to)j(the)f(\014rst)150 5011 y(unquoted)23 b(slash)h(\(or)h(all)g(c)m +d(to)j(the)f(\014rst)150 5121 y(unquoted)23 b(slash)h(\(or)h(all)g(c)m (haracters,)i(if)d(there)g(is)h(no)f(unquoted)f(slash\))h(are)h -(considered)f(a)g Fq(tilde-pre\014x)6 b Ft(.)150 5121 +(considered)f(a)g Fq(tilde-pre\014x)6 b Ft(.)150 5230 y(If)38 b(none)g(of)g(the)h(c)m(haracters)g(in)f(the)h(tilde-pre\014x)f (are)h(quoted,)h(the)f(c)m(haracters)h(in)d(the)i(tilde-pre\014x)150 -5230 y(follo)m(wing)28 b(the)f(tilde)g(are)g(treated)h(as)f(a)g(p)s +5340 y(follo)m(wing)28 b(the)f(tilde)g(are)g(treated)h(as)f(a)g(p)s (ossible)f Fq(login)i(name)5 b Ft(.)40 b(If)26 b(this)g(login)i(name)f -(is)f(the)h(n)m(ull)g(string,)150 5340 y(the)35 b(tilde)g(is)g -(replaced)g(with)f(the)h(v)-5 b(alue)35 b(of)g(the)g -Fs(HOME)e Ft(shell)i(v)-5 b(ariable.)54 b(If)34 b Fs(HOME)g -Ft(is)h(unset,)g(the)g(home)p eop end +(is)f(the)h(n)m(ull)g(string,)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)150 299 y(directory)i(of)g(the)f(user)g -(executing)i(the)e(shell)h(is)f(substituted)g(instead.)47 -b(Otherwise,)33 b(the)g(tilde-pre\014x)150 408 y(is)d(replaced)h(with)f -(the)h(home)f(directory)h(asso)s(ciated)h(with)e(the)h(sp)s(eci\014ed)e -(login)j(name.)275 545 y(If)g(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 655 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 792 y(If)e(the)i(c)m(haracters)g(follo)m(wing)h(the)e -(tilde)h(in)f(the)g(tilde-pre\014x)h(consist)f(of)h(a)f(n)m(um)m(b)s -(er)f Fq(N)10 b Ft(,)30 b(optionally)150 901 y(pre\014xed)22 +TeXDict begin 22 27 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(22)150 299 +y(the)35 b(tilde)g(is)g(replaced)g(with)f(the)h(v)-5 +b(alue)35 b(of)g(the)g Fs(HOME)e Ft(shell)i(v)-5 b(ariable.)54 +b(If)34 b Fs(HOME)g Ft(is)h(unset,)g(the)g(home)150 408 +y(directory)e(of)g(the)f(user)g(executing)i(the)e(shell)h(is)f +(substituted)g(instead.)47 b(Otherwise,)33 b(the)g(tilde-pre\014x)150 +518 y(is)d(replaced)h(with)f(the)h(home)f(directory)h(asso)s(ciated)h +(with)e(the)h(sp)s(eci\014ed)e(login)j(name.)275 650 +y(If)g(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 760 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 891 +y(If)e(the)i(c)m(haracters)g(follo)m(wing)h(the)e(tilde)h(in)f(the)g +(tilde-pre\014x)h(consist)f(of)h(a)f(n)m(um)m(b)s(er)f +Fq(N)10 b Ft(,)30 b(optionally)150 1001 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 1011 y(directory)36 b(stac)m(k,)i(as)e(it) +(elemen)m(t)j(from)e(the)150 1111 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 1121 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g +150 1220 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 1230 y(page)c(89\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans) +(k],)150 1330 y(page)c(90\).)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 1340 y(`)p Fs(-)p -Ft(',)31 b(`)p Fs(+)p Ft(')f(is)h(assumed.)275 1477 y(If)e(the)i(login) +(leading)h(`)p Fs(+)p Ft(')g(or)150 1439 y(`)p Fs(-)p +Ft(',)31 b(`)p Fs(+)p Ft(')f(is)h(assumed.)275 1571 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 -1614 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m +1703 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 1723 y(a)d(`)p Fs(:)p Ft(')g(or)g(the)g(\014rst)f(`)p +(wing)150 1813 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 1833 y(ma)m(y)29 b(use)e(\014lenames)h(with)g(tildes)g(in)g +b(one)150 1922 y(ma)m(y)29 b(use)e(\014lenames)h(with)g(tildes)g(in)g (assignmen)m(ts)g(to)h Fs(PATH)p Ft(,)f Fs(MAILPATH)p Ft(,)e(and)h Fs(CDPATH)p Ft(,)g(and)h(the)g(shell)150 -1942 y(assigns)j(the)f(expanded)g(v)-5 b(alue.)275 2079 +2032 y(assigns)j(the)f(expanded)g(v)-5 b(alue.)275 2164 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 2242 y Fs(~)432 b Ft(The)30 -b(v)-5 b(alue)31 b(of)f Fs($HOME)150 2404 y(~/foo)240 -b Ft(`)p Fs($HOME/foo)p Ft(')150 2566 y Fs(~fred/foo)630 -2676 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)150 2837 y(~+/foo)192 -b Ft(`)p Fs($PWD/foo)p Ft(')150 2999 y Fs(~-/foo)g Ft(`)p -Fs(${OLDPWD-'~-'}/foo)p Ft(')150 3161 y Fs(~)p Fi(N)384 +(unquoted)e(tilde-pre\014xes:)150 2318 y Fs(~)432 b Ft(The)30 +b(v)-5 b(alue)31 b(of)f Fs($HOME)150 2472 y(~/foo)240 +b Ft(`)p Fs($HOME/foo)p Ft(')150 2627 y Fs(~fred/foo)630 +2736 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)150 2890 y(~+/foo)192 +b Ft(`)p Fs($PWD/foo)p Ft(')150 3045 y Fs(~-/foo)g Ft(`)p +Fs(${OLDPWD-'~-'}/foo)p Ft(')150 3199 y Fs(~)p Fi(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 Fi(N)11 b Ft(')150 3323 y Fs(~+)p +(y)f(`)p Fs(dirs)g(+)p Fi(N)11 b Ft(')150 3353 y Fs(~+)p Fi(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 Fi(N)11 b Ft(')150 3485 +(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p Fi(N)11 b Ft(')150 3507 y Fs(~-)p Fi(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 Fi(N)11 -b Ft(')150 3686 y Fj(3.5.3)63 b(Shell)41 b(P)m(arameter)f(Expansion)150 -3833 y Ft(The)g(`)p Fs($)p Ft(')h(c)m(haracter)i(in)m(tro)s(duces)d +b Ft(')150 3701 y Fj(3.5.3)63 b(Shell)41 b(P)m(arameter)f(Expansion)150 +3848 y Ft(The)g(`)p Fs($)p Ft(')h(c)m(haracter)i(in)m(tro)s(duces)d (parameter)h(expansion,)j(command)d(substitution,)i(or)e(arithmetic)150 -3943 y(expansion.)d(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to) +3958 y(expansion.)d(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to) g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i(whic)m -(h)150 4053 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)f(the)g +(h)150 4068 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 4162 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 4299 +(immediately)150 4177 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 4309 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 4409 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)j(and)c +150 4419 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 -4518 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275 -4655 y(The)40 b(basic)h(form)g(of)g(parameter)h(expansion)e(is)h($)p +4528 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275 +4660 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 4765 y(substituted.)43 +b(alue)42 b(of)f Fq(parameter)48 b Ft(is)150 4770 y(substituted.)43 b(The)31 b Fq(parameter)39 b Ft(is)31 b(a)h(shell)f(parameter)h(as)g (describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g(3.4)h([Shell)150 -4874 y(P)m(arameters],)e(page)f(18\))h(or)e(an)g(arra)m(y)h(reference)f +4879 y(P)m(arameters],)e(page)f(18\))h(or)e(an)g(arra)m(y)h(reference)f (\(see)i(Section)f(6.7)g([Arra)m(ys],)g(page)g(88\).)42 -b(The)29 b(braces)150 4984 y(are)j(required)g(when)f +b(The)29 b(braces)150 4989 y(are)j(required)g(when)f Fq(parameter)39 b Ft(is)32 b(a)h(p)s(ositional)f(parameter)h(with)f -(more)g(than)g(one)g(digit,)i(or)e(when)150 5093 y Fq(parameter)37 +(more)g(than)g(one)g(digit,)i(or)e(when)150 5098 y Fq(parameter)37 b Ft(is)31 b(follo)m(w)m(ed)h(b)m(y)e(a)h(c)m(haracter)h(that)f(is)f (not)h(to)g(b)s(e)f(in)m(terpreted)g(as)h(part)f(of)h(its)f(name.)275 5230 y(If)36 b(the)h(\014rst)f(c)m(haracter)i(of)f Fq(parameter)44 @@ -9186,27 +9194,27 @@ y(m)m(ust)27 b(b)s(e)g(separated)g(from)g(the)g(colon)i(b)m(y)e(at)h (expansion)g(on)g(parameters)h(and)630 5340 y(subscripted)29 b(arra)m(ys:)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)630 299 y Fs($)47 b(string=01234567890abcdefgh) -630 408 y($)g(echo)g(${string:7})630 518 y(7890abcdefgh)630 -628 y($)g(echo)g(${string:7:0})630 847 y($)g(echo)g(${string:7:2})630 -956 y(78)630 1066 y($)g(echo)g(${string:7:-2})630 1176 -y(7890abcdef)630 1285 y($)g(echo)g(${string:)e(-7})630 -1395 y(bcdefgh)630 1504 y($)i(echo)g(${string:)e(-7:0})630 -1724 y($)i(echo)g(${string:)e(-7:2})630 1833 y(bc)630 -1943 y($)i(echo)g(${string:)e(-7:-2})630 2052 y(bcdef)630 -2162 y($)i(set)g(--)h(01234567890abcdefgh)630 2271 y($)f(echo)g(${1:7}) -630 2381 y(7890abcdefgh)630 2491 y($)g(echo)g(${1:7:0})630 -2710 y($)g(echo)g(${1:7:2})630 2819 y(78)630 2929 y($)g(echo)g -(${1:7:-2})630 3039 y(7890abcdef)630 3148 y($)g(echo)g(${1:)g(-7})630 -3258 y(bcdefgh)630 3367 y($)g(echo)g(${1:)g(-7:0})630 -3587 y($)g(echo)g(${1:)g(-7:2})630 3696 y(bc)630 3806 -y($)g(echo)g(${1:)g(-7:-2})630 3915 y(bcdef)630 4025 -y($)g(array[0]=01234567890abcdef)o(gh)630 4134 y($)g(echo)g -(${array[0]:7})630 4244 y(7890abcdefgh)630 4354 y($)g(echo)g -(${array[0]:7:0})630 4573 y($)g(echo)g(${array[0]:7:2})630 -4682 y(78)630 4792 y($)g(echo)g(${array[0]:7:-2})630 -4902 y(7890abcdef)630 5011 y($)g(echo)g(${array[0]:)e(-7})630 +TeXDict begin 24 29 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(24)630 299 +y Fs($)47 b(string=01234567890abcdefgh)630 408 y($)g(echo)g +(${string:7})630 518 y(7890abcdefgh)630 628 y($)g(echo)g(${string:7:0}) +630 847 y($)g(echo)g(${string:7:2})630 956 y(78)630 1066 +y($)g(echo)g(${string:7:-2})630 1176 y(7890abcdef)630 +1285 y($)g(echo)g(${string:)e(-7})630 1395 y(bcdefgh)630 +1504 y($)i(echo)g(${string:)e(-7:0})630 1724 y($)i(echo)g(${string:)e +(-7:2})630 1833 y(bc)630 1943 y($)i(echo)g(${string:)e(-7:-2})630 +2052 y(bcdef)630 2162 y($)i(set)g(--)h(01234567890abcdefgh)630 +2271 y($)f(echo)g(${1:7})630 2381 y(7890abcdefgh)630 +2491 y($)g(echo)g(${1:7:0})630 2710 y($)g(echo)g(${1:7:2})630 +2819 y(78)630 2929 y($)g(echo)g(${1:7:-2})630 3039 y(7890abcdef)630 +3148 y($)g(echo)g(${1:)g(-7})630 3258 y(bcdefgh)630 3367 +y($)g(echo)g(${1:)g(-7:0})630 3587 y($)g(echo)g(${1:)g(-7:2})630 +3696 y(bc)630 3806 y($)g(echo)g(${1:)g(-7:-2})630 3915 +y(bcdef)630 4025 y($)g(array[0]=01234567890abcdef)o(gh)630 +4134 y($)g(echo)g(${array[0]:7})630 4244 y(7890abcdefgh)630 +4354 y($)g(echo)g(${array[0]:7:0})630 4573 y($)g(echo)g +(${array[0]:7:2})630 4682 y(78)630 4792 y($)g(echo)g(${array[0]:7:-2}) +630 4902 y(7890abcdef)630 5011 y($)g(echo)g(${array[0]:)e(-7})630 5121 y(bcdefgh)630 5230 y($)i(echo)g(${array[0]:)e(-7:0})p eop end %%Page: 25 31 @@ -9258,1077 +9266,1090 @@ y($)f(echo)g(${array[@]:7})630 4244 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h (7)h(8)f(9)h(0)f(a)g(b)h(c)f(d)h(e)f(f)h(g)f(h)630 5230 y($)g(echo)g(${array[@]:0:2})630 5340 y(0)g(1)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)630 299 y Fs($)47 b(echo)g(${array[@]:)e(-7:0}) -630 536 y Ft(Substring)25 b(expansion)g(applied)h(to)h(an)f(asso)s -(ciativ)m(e)j(arra)m(y)d(pro)s(duces)f(unde\014ned)f(results.)630 -664 y(Substring)32 b(indexing)i(is)f(zero-based)i(unless)e(the)h(p)s -(ositional)g(parameters)g(are)g(used,)g(in)630 774 y(whic)m(h)29 +TeXDict begin 26 31 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(26)630 299 +y Fs($)47 b(echo)g(${array[@]:)e(-7:0})630 545 y Ft(Substring)25 +b(expansion)g(applied)h(to)h(an)f(asso)s(ciativ)m(e)j(arra)m(y)d(pro)s +(duces)f(unde\014ned)f(results.)630 682 y(Substring)32 +b(indexing)i(is)f(zero-based)i(unless)e(the)h(p)s(ositional)g +(parameters)g(are)g(used,)g(in)630 792 y(whic)m(h)29 b(case)i(the)f(indexing)g(starts)g(at)g(1)g(b)m(y)g(default.)41 b(If)29 b Fq(o\013set)k Ft(is)d(0,)g(and)f(the)h(p)s(ositional)630 -883 y(parameters)h(are)f(used,)g Fs($@)g Ft(is)g(pre\014xed)g(to)h(the) -f(list.)150 1029 y Fs(${!)p Fi(prefix)11 b Fs(*})150 -1139 y(${!)p Fi(prefix)g Fs(@})630 1249 y Ft(Expands)23 +902 y(parameters)h(are)f(used,)g Fs($@)g Ft(is)g(pre\014xed)g(to)h(the) +f(list.)150 1066 y Fs(${!)p Fi(prefix)11 b Fs(*})150 +1176 y(${!)p Fi(prefix)g Fs(@})630 1285 y Ft(Expands)23 b(to)i(the)g(names)f(of)h(v)-5 b(ariables)25 b(whose)f(names)g(b)s (egin)g(with)g Fq(pre\014x)6 b Ft(,)25 b(separated)g(b)m(y)630 -1358 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Fs(IFS)f +1395 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 1468 y(sion)35 +Ft(')g(is)g(used)f(and)h(the)g(expan-)630 1504 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 -1577 y(w)m(ord.)150 1724 y Fs(${!)p Fi(name)11 b Fs([@]})150 -1833 y(${!)p Fi(name)g Fs([*]})630 1943 y Ft(If)26 b +1614 y(w)m(ord.)150 1778 y Fs(${!)p Fi(name)11 b Fs([@]})150 +1888 y(${!)p Fi(name)g Fs([*]})630 1998 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 2052 y(in)c Fq(name)5 b Ft(.)39 b(If)23 +(assigned)630 2107 y(in)c Fq(name)5 b Ft(.)39 b(If)23 b Fq(name)30 b Ft(is)24 b(not)g(an)g(arra)m(y)-8 b(,)27 b(expands)c(to)i(0)f(if)h Fq(name)k Ft(is)24 b(set)h(and)e(n)m(ull)h -(otherwise.)630 2162 y(When)39 b(`)p Fs(@)p Ft(')h(is)f(used)g(and)f +(otherwise.)630 2217 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 2271 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150 -2418 y Fs(${#)p Fi(parameter)11 b Fs(})630 2527 y Ft(The)40 +(k)m(ey)630 2326 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150 +2491 y Fs(${#)p Fi(parameter)11 b Fs(})630 2600 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 -2637 y(If)i Fq(parameter)50 b Ft(is)43 b(`)p Fs(*)p Ft(')g(or)g(`)p +2710 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 2746 y(parameters.)i(If)32 +(b)s(er)f(of)h(p)s(ositional)630 2819 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 2856 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 3002 y -Fs(${)p Fi(parameter)11 b Fs(#)p Fi(word)g Fs(})150 3112 -y(${)p Fi(parameter)g Fs(##)p Fi(word)g Fs(})630 3221 -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 -3331 y(Section)k(3.5.8)h([Filename)g(Expansion],)g(page)f(29\).)56 -b(If)35 b(the)h(pattern)f(matc)m(hes)i(the)e(b)s(e-)630 -3440 y(ginning)g(of)g(the)g(expanded)f(v)-5 b(alue)36 -b(of)f Fq(parameter)7 b Ft(,)36 b(then)f(the)g(result)g(of)g(the)g -(expansion)630 3550 y(is)28 b(the)g(expanded)e(v)-5 b(alue)28 -b(of)g Fq(parameter)35 b Ft(with)27 b(the)h(shortest)g(matc)m(hing)h -(pattern)f(\(the)g(`)p Fs(#)p Ft(')630 3660 y(case\))e(or)f(the)g -(longest)g(matc)m(hing)h(pattern)f(\(the)g(`)p Fs(##)p +b(alue)630 2929 y(substituted)30 b(is)h(the)g(n)m(um)m(b)s(er)e(of)i +(elemen)m(ts)i(in)d(the)h(arra)m(y)-8 b(.)43 b(If)30 +b Fq(parameter)38 b Ft(is)31 b(an)f(indexed)630 3039 +y(arra)m(y)37 b(name)g(subscripted)f(b)m(y)h(a)g(negativ)m(e)i(n)m(um)m +(b)s(er,)f(that)f(n)m(um)m(b)s(er)f(is)g(in)m(terpreted)i(as)630 +3148 y(relativ)m(e)47 b(to)e(one)h(greater)g(than)e(the)h(maxim)m(um)g +(index)f(of)h Fq(parameter)7 b Ft(,)49 b(so)c(negativ)m(e)630 +3258 y(indices)30 b(coun)m(t)h(bac)m(k)g(from)f(the)h(end)e(of)i(the)f +(arra)m(y)-8 b(,)32 b(and)e(an)g(index)g(of)g(-1)h(references)g(the)630 +3367 y(last)g(elemen)m(t.)150 3532 y Fs(${)p Fi(parameter)11 +b Fs(#)p Fi(word)g Fs(})150 3641 y(${)p Fi(parameter)g +Fs(##)p Fi(word)g Fs(})630 3751 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 3861 y(Section)k(3.5.8)h([Filename) +g(Expansion],)g(page)f(29\).)56 b(If)35 b(the)h(pattern)f(matc)m(hes)i +(the)e(b)s(e-)630 3970 y(ginning)g(of)g(the)g(expanded)f(v)-5 +b(alue)36 b(of)f Fq(parameter)7 b Ft(,)36 b(then)f(the)g(result)g(of)g +(the)g(expansion)630 4080 y(is)28 b(the)g(expanded)e(v)-5 +b(alue)28 b(of)g Fq(parameter)35 b Ft(with)27 b(the)h(shortest)g(matc)m +(hing)h(pattern)f(\(the)g(`)p Fs(#)p Ft(')630 4189 y(case\))e(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 3769 y(or)j(`)p Fs(*)p +b Ft(is)25 b(`)p Fs(@)p Ft(')630 4299 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 -3879 y(turn,)i(and)g(the)h(expansion)g(is)g(the)g(resultan)m(t)g(list.) +4408 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 3988 y(subscripted)39 b(with)g(`)p Fs(@)p +b(ariable)630 4518 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 -4098 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 4244 +4628 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 4792 y Fs(${)p Fi(parameter)11 b Fs(\045)p Fi(word)g Fs(})150 -4354 y(${)p Fi(parameter)g Fs(\045\045)p Fi(word)g Fs(})630 -4463 y Ft(The)35 b Fq(w)m(ord)k Ft(is)c(expanded)g(to)h(pro)s(duce)e(a) +4902 y(${)p Fi(parameter)g Fs(\045\045)p Fi(word)g Fs(})630 +5011 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 4573 y(the)43 b(pattern)f(matc)m(hes)i(a)e(trailing)i(p)s +b(If)630 5121 y(the)43 b(pattern)f(matc)m(hes)i(a)e(trailing)i(p)s (ortion)e(of)g(the)h(expanded)e(v)-5 b(alue)43 b(of)g -Fq(parameter)7 b Ft(,)630 4682 y(then)39 b(the)g(result)g(of)h(the)f +Fq(parameter)7 b Ft(,)630 5230 y(then)39 b(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 4792 y(matc)m(hing)31 +b Ft(with)39 b(the)h(shortest)630 5340 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 -4902 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 5011 y(eac)m(h)38 +(matc)m(hing)f(pattern)g(\(the)g(`)p Fs(\045\045)p Ft(')g(case\))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)630 299 +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 408 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 5121 y Fq(parameter)38 +(the)f(resultan)m(t)h(list.)61 b(If)630 518 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 5230 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 5340 y(the)h(resultan)m(t)g(list.)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)150 299 -y Fs(${)p Fi(parameter)11 b Fs(/)p Fi(pattern)g Fs(/)p -Fi(s)o(tri)o(ng)f Fs(})630 408 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 518 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 -628 y(replaced)33 b(with)f Fq(string)8 b Ft(.)47 b(If)33 -b Fq(pattern)f Ft(b)s(egins)g(with)h(`)p Fs(/)p Ft(',)g(all)h(matc)m -(hes)f(of)g Fq(pattern)g Ft(are)g(re-)630 737 y(placed)27 -b(with)f Fq(string)8 b Ft(.)40 b(Normally)27 b(only)g(the)g(\014rst)f -(matc)m(h)h(is)g(replaced.)40 b(If)26 b Fq(pattern)g -Ft(b)s(egins)630 847 y(with)33 b(`)p Fs(#)p Ft(',)i(it)f(m)m(ust)f -(matc)m(h)i(at)f(the)g(b)s(eginning)f(of)g(the)h(expanded)f(v)-5 -b(alue)34 b(of)g Fq(parameter)7 b Ft(.)630 956 y(If)34 -b 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 1066 y Fq(parameter)7 b Ft(.)40 b(If)29 -b Fq(string)36 b Ft(is)29 b(n)m(ull,)h(matc)m(hes)g(of)f -Fq(pattern)g Ft(are)g(deleted)h(and)e(the)h Fs(/)f Ft(follo)m(wing)630 -1176 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 -1285 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 -1395 y(sultan)m(t)f(list.)59 b(If)36 b Fq(parameter)43 +b(al)630 628 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 737 y(the)h(resultan)m(t)g(list.)150 897 y Fs(${)p +Fi(parameter)11 b Fs(/)p Fi(pattern)g Fs(/)p Fi(s)o(tri)o(ng)f +Fs(})630 1007 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 +1116 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 1226 y(replaced)33 b(with)f Fq(string)8 +b Ft(.)47 b(If)33 b Fq(pattern)f Ft(b)s(egins)g(with)h(`)p +Fs(/)p Ft(',)g(all)h(matc)m(hes)f(of)g Fq(pattern)g Ft(are)g(re-)630 +1335 y(placed)27 b(with)f Fq(string)8 b Ft(.)40 b(Normally)27 +b(only)g(the)g(\014rst)f(matc)m(h)h(is)g(replaced.)40 +b(If)26 b Fq(pattern)g Ft(b)s(egins)630 1445 y(with)33 +b(`)p Fs(#)p Ft(',)i(it)f(m)m(ust)f(matc)m(h)i(at)f(the)g(b)s(eginning) +f(of)g(the)h(expanded)f(v)-5 b(alue)34 b(of)g Fq(parameter)7 +b Ft(.)630 1555 y(If)34 b 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 1664 y Fq(parameter)7 +b Ft(.)40 b(If)29 b Fq(string)36 b Ft(is)29 b(n)m(ull,)h(matc)m(hes)g +(of)f Fq(pattern)g Ft(are)g(deleted)h(and)e(the)h Fs(/)f +Ft(follo)m(wing)630 1774 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 1883 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 +1993 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 1504 +(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)h(the)630 2102 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 -1614 y(expansion)g(is)h(the)f(resultan)m(t)h(list.)150 -1793 y Fs(${)p Fi(parameter)11 b Fs(^)p Fi(pattern)g -Fs(})150 1903 y(${)p Fi(parameter)g Fs(^^)p Fi(pattern)g -Fs(})150 2012 y(${)p Fi(parameter)g Fs(,)p Fi(pattern)g -Fs(})150 2122 y(${)p Fi(parameter)g Fs(,,)p Fi(pattern)g -Fs(})630 2231 y Ft(This)35 b(expansion)h(mo)s(di\014es)f(the)h(case)h +2212 y(expansion)g(is)h(the)f(resultan)m(t)h(list.)150 +2372 y Fs(${)p Fi(parameter)11 b Fs(^)p Fi(pattern)g +Fs(})150 2481 y(${)p Fi(parameter)g Fs(^^)p Fi(pattern)g +Fs(})150 2591 y(${)p Fi(parameter)g Fs(,)p Fi(pattern)g +Fs(})150 2701 y(${)p Fi(parameter)g Fs(,,)p Fi(pattern)g +Fs(})630 2810 y Ft(This)35 b(expansion)h(mo)s(di\014es)f(the)h(case)h (of)f(alphab)s(etic)h(c)m(haracters)g(in)f Fq(parameter)7 -b Ft(.)57 b(The)630 2341 y Fq(pattern)33 b Ft(is)g(expanded)e(to)j(pro) +b Ft(.)57 b(The)630 2920 y Fq(pattern)33 b Ft(is)g(expanded)e(to)j(pro) s(duce)d(a)j(pattern)e(just)g(as)h(in)g(\014lename)g(expansion.)47 -b(Eac)m(h)630 2450 y(c)m(haracter)32 b(in)e(the)g(expanded)f(v)-5 +b(Eac)m(h)630 3029 y(c)m(haracter)32 b(in)e(the)g(expanded)f(v)-5 b(alue)31 b(of)f Fq(parameter)37 b Ft(is)30 b(tested)h(against)h -Fq(pattern)p Ft(,)e(and,)g(if)630 2560 y(it)j(matc)m(hes)h(the)g +Fq(pattern)p Ft(,)e(and,)g(if)630 3139 y(it)j(matc)m(hes)h(the)g (pattern,)f(its)h(case)g(is)f(con)m(v)m(erted.)49 b(The)33 -b(pattern)g(should)f(not)h(attempt)630 2670 y(to)f(matc)m(h)g(more)f +b(pattern)g(should)f(not)h(attempt)630 3249 y(to)f(matc)m(h)g(more)f (than)g(one)g(c)m(haracter.)44 b(The)30 b(`)p Fs(^)p Ft(')i(op)s(erator)f(con)m(v)m(erts)h(lo)m(w)m(ercase)i(letters)630 -2779 y(matc)m(hing)i Fq(pattern)f Ft(to)h(upp)s(ercase;)h(the)e(`)p +3358 y(matc)m(hing)i Fq(pattern)f Ft(to)h(upp)s(ercase;)h(the)e(`)p Fs(,)p Ft(')g(op)s(erator)g(con)m(v)m(erts)i(matc)m(hing)f(upp)s -(ercase)630 2889 y(letters)e(to)f(lo)m(w)m(ercase.)50 +(ercase)630 3468 y(letters)e(to)f(lo)m(w)m(ercase.)50 b(The)32 b(`)p Fs(^^)p Ft(')h(and)f(`)p Fs(,,)p Ft(')g(expansions)h (con)m(v)m(ert)h(eac)m(h)g(matc)m(hed)f(c)m(har-)630 -2998 y(acter)c(in)f(the)h(expanded)e(v)-5 b(alue;)30 +3577 y(acter)c(in)f(the)h(expanded)e(v)-5 b(alue;)30 b(the)e(`)p Fs(^)p Ft(')g(and)g(`)p Fs(,)p Ft(')g(expansions)g(matc)m -(h)h(and)f(con)m(v)m(ert)i(only)630 3108 y(the)37 b(\014rst)g(c)m +(h)h(and)f(con)m(v)m(ert)i(only)630 3687 y(the)37 b(\014rst)g(c)m (haracter)i(in)e(the)g(expanded)g(v)-5 b(alue.)61 b(If)37 b Fq(pattern)g Ft(is)h(omitted,)i(it)e(is)f(treated)630 -3218 y(lik)m(e)h(a)f(`)p Fs(?)p Ft(',)i(whic)m(h)d(matc)m(hes)i(ev)m +3796 y(lik)m(e)h(a)f(`)p Fs(?)p Ft(',)i(whic)m(h)d(matc)m(hes)i(ev)m (ery)f(c)m(haracter.)61 b(If)37 b Fq(parameter)43 b Ft(is)37 b(`)p Fs(@)p Ft(')g(or)f(`)p Fs(*)p Ft(',)j(the)e(case)630 -3327 y(mo)s(di\014cation)29 b(op)s(eration)f(is)g(applied)g(to)h(eac)m +3906 y(mo)s(di\014cation)29 b(op)s(eration)f(is)g(applied)g(to)h(eac)m (h)h(p)s(ositional)f(parameter)f(in)g(turn,)g(and)g(the)630 -3437 y(expansion)38 b(is)g(the)g(resultan)m(t)h(list.)65 +4016 y(expansion)38 b(is)g(the)g(resultan)m(t)h(list.)65 b(If)37 b Fq(parameter)46 b Ft(is)38 b(an)g(arra)m(y)g(v)-5 -b(ariable)39 b(subscripted)630 3546 y(with)26 b(`)p Fs(@)p +b(ariable)39 b(subscripted)630 4125 y(with)26 b(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p Ft(',)h(the)f(case)h(mo)s(di\014cation)f(op)s (eration)h(is)e(applied)h(to)h(eac)m(h)g(mem)m(b)s(er)e(of)h(the)630 -3656 y(arra)m(y)31 b(in)f(turn,)f(and)h(the)h(expansion)f(is)g(the)h -(resultan)m(t)g(list.)150 3875 y Fj(3.5.4)63 b(Command)41 -b(Substitution)150 4022 y Ft(Command)f(substitution)h(allo)m(ws)i(the)e +4235 y(arra)m(y)31 b(in)f(turn,)f(and)h(the)h(expansion)f(is)g(the)h +(resultan)m(t)g(list.)150 4434 y Fj(3.5.4)63 b(Command)41 +b(Substitution)150 4581 y Ft(Command)f(substitution)h(allo)m(ws)i(the)e (output)g(of)h(a)f(command)g(to)h(replace)g(the)g(command)f(itself.)150 -4131 y(Command)29 b(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is) -g(enclosed)h(as)g(follo)m(ws:)390 4285 y Fs($\()p Fi(command)11 -b Fs(\))150 4439 y Ft(or)390 4593 y Fs(`)p Fi(command)g -Fs(`)150 4748 y Ft(Bash)45 b(p)s(erforms)f(the)h(expansion)f(b)m(y)h +4691 y(Command)29 b(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is) +g(enclosed)h(as)g(follo)m(ws:)390 4826 y Fs($\()p Fi(command)11 +b Fs(\))150 4961 y Ft(or)390 5096 y Fs(`)p Fi(command)g +Fs(`)150 5230 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 -4857 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 -4967 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 5076 y(command)21 b(substitution)g Fs($\(cat)29 +5340 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.)p +eop end +%%Page: 28 34 +TeXDict begin 28 33 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(28)150 299 +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 408 y(command)21 b(substitution)g Fs($\(cat)29 b Fi(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 -Fi(file)11 b Fs(\))p Ft(.)275 5230 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 5340 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 +Fi(file)11 b Fs(\))p Ft(.)275 542 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 651 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)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(bac)m(kslash)41 b(terminates)g(the)f -(command)g(substitution.)69 b(When)40 b(using)g(the)g -Fs($\()p Fi(command)11 b Fs(\))37 b Ft(form,)42 b(all)150 -408 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 543 y(Command)22 b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39 +(b)m(y)g(a)150 761 y(bac)m(kslash)j(terminates)g(the)f(command)g +(substitution.)69 b(When)40 b(using)g(the)g Fs($\()p +Fi(command)11 b Fs(\))37 b Ft(form,)42 b(all)150 870 +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 1004 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 653 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m -(kslashes.)275 787 y(If)e(the)i(substitution)e(app)s(ears)h(within)g +(escap)s(e)150 1113 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m +(kslashes.)275 1247 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 897 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150 -1096 y Fj(3.5.5)63 b(Arithmetic)40 b(Expansion)150 1243 +150 1356 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150 +1553 y Fj(3.5.5)63 b(Arithmetic)40 b(Expansion)150 1700 y Ft(Arithmetic)25 b(expansion)g(allo)m(ws)g(the)g(ev)-5 b(aluation)26 b(of)f(an)f(arithmetic)i(expression)e(and)g(the)g -(substitution)150 1353 y(of)31 b(the)f(result.)41 b(The)30 -b(format)g(for)g(arithmetic)i(expansion)e(is:)390 1488 -y Fs($\(\()47 b Fi(expression)55 b Fs(\)\))275 1622 y +(substitution)150 1809 y(of)31 b(the)f(result.)41 b(The)30 +b(format)g(for)g(arithmetic)i(expansion)e(is:)390 1943 +y Fs($\(\()47 b Fi(expression)55 b Fs(\)\))275 2076 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 -1732 y(the)27 b(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8 +2186 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 1841 y(pansion,)h(command)f(substitution,)h(and)f +(parameter)h(ex-)150 2295 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 1976 y(The)34 b(ev)-5 b(aluation)37 +(b)s(e)f(nested.)275 2428 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 2086 y(Arithmetic],)32 +(w)g(\(see)g(Section)g(6.5)h([Shell)150 2538 y(Arithmetic],)32 b(page)f(86\).)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 -2195 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s -(ccurs.)150 2395 y Fj(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150 -2542 y Ft(Pro)s(cess)i(substitution)g(is)g(supp)s(orted)f(on)h(systems) +2648 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s +(ccurs.)150 2844 y Fj(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150 +2991 y Ft(Pro)s(cess)i(substitution)g(is)g(supp)s(orted)f(on)h(systems) g(that)h(supp)s(ort)d(named)i(pip)s(es)f(\()p Fl(fif)n(o)p -Ft(s\))i(or)f(the)150 2651 y(`)p Fs(/dev/fd)p Ft(')29 +Ft(s\))i(or)f(the)150 3101 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 2786 y Fs(<\()p Fi(list)11 -b Fs(\))150 2921 y Ft(or)390 3055 y Fs(>\()p Fi(list)g -Fs(\))150 3190 y Ft(The)23 b(pro)s(cess)g Fq(list)j Ft(is)d(run)f(with) +b(tak)m(es)i(the)f(form)f(of)390 3234 y Fs(<\()p Fi(list)11 +b Fs(\))150 3367 y Ft(or)390 3501 y Fs(>\()p Fi(list)g +Fs(\))150 3634 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 -3300 y(The)28 b(name)h(of)g(this)f(\014le)h(is)g(passed)f(as)h(an)f +3743 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 3409 y(expansion.)40 b(If)28 b(the)h Fs(>\()p +(of)g(the)150 3853 y(expansion.)40 b(If)28 b(the)h Fs(>\()p Fi(list)11 b Fs(\))26 b Ft(form)h(is)i(used,)f(writing)h(to)g(the)f (\014le)h(will)g(pro)m(vide)f(input)g(for)g Fq(list)r -Ft(.)41 b(If)28 b(the)150 3519 y Fs(<\()p Fi(list)11 +Ft(.)41 b(If)28 b(the)150 3963 y Fs(<\()p Fi(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) -150 3628 y Fq(list)r Ft(.)41 b(Note)31 b(that)f(no)f(space)h(ma)m(y)g +150 4072 y Fq(list)r Ft(.)41 b(Note)31 b(that)f(no)f(space)h(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)g(left)h(paren)m(thesis,)h(otherwise)150 -3738 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m(terpreted)h(as)f(a)h -(redirection.)275 3873 y(When)36 b(a)m(v)-5 b(ailable,)40 +4182 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m(terpreted)h(as)f(a)h +(redirection.)275 4315 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 3982 y(v)-5 b(ariable)31 +(with)g(parameter)g(and)150 4425 y(v)-5 b(ariable)31 b(expansion,)g(command)f(substitution,)g(and)g(arithmetic)i(expansion.) -150 4182 y Fj(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150 -4329 y Ft(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g +150 4621 y Fj(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150 +4768 y Ft(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g (expansion,)g(command)g(substitution,)g(and)f(arithmetic)150 -4438 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h -(quotes)h(for)f(w)m(ord)g(splitting.)275 4573 y(The)43 +4878 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h +(quotes)h(for)f(w)m(ord)g(splitting.)275 5011 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 4682 y(other)40 b(expansions)f(in)m(to)i(w)m(ords)e(on)h(these)g(c) +150 5121 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 4792 y Fs(<space><tab><newline>)p +b(alue)40 b(is)g(exactly)150 5230 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 -4902 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 -5011 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 5121 y(a)g(v)-5 b(alue)30 +5340 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)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)150 299 +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 408 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 -5230 y Ft(are)36 b(ignored)g(at)g(the)g(b)s(eginning)f(and)g(end)g(of)h +518 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 5340 y(in)f(the)g(v)-5 b(alue)36 b(of)g Fs(IFS)f +(is)150 628 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)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)150 299 -y(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 408 y(of)35 b Fs(IFS)f Ft(whitespace)h(c)m +Fs(IFS)150 737 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 847 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 518 y(w)m(ord)30 b(splitting)h(o)s(ccurs.)275 648 +150 956 y(w)m(ord)30 b(splitting)h(o)s(ccurs.)275 1090 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 758 y(resulting)24 +b(implicit)h(n)m(ull)f(argumen)m(ts,)150 1199 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 -867 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 997 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 1187 y Fj(3.5.8)63 -b(Filename)41 b(Expansion)150 1334 y Ft(After)26 b(w)m(ord)g +1309 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 1442 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 1639 y Fj(3.5.8)63 +b(Filename)41 b(Expansion)150 1786 y Ft(After)26 b(w)m(ord)g (splitting,)i(unless)d(the)i(`)p Fs(-f)p Ft(')f(option)g(has)g(b)s(een) f(set)i(\(see)g(Section)g(4.3.1)h([The)e(Set)g(Builtin],)150 -1444 y(page)h(58\),)i(Bash)d(scans)h(eac)m(h)h(w)m(ord)e(for)g(the)h(c) +1895 y(page)h(57\),)i(Bash)d(scans)h(eac)m(h)h(w)m(ord)e(for)g(the)h(c) m(haracters)g(`)p Fs(*)p Ft(',)h(`)p Fs(?)p Ft(',)g(and)e(`)p Fs([)p Ft('.)39 b(If)26 b(one)h(of)g(these)f(c)m(haracters)150 -1553 y(app)s(ears,)h(then)f(the)h(w)m(ord)f(is)h(regarded)g(as)g(a)g +2005 y(app)s(ears,)h(then)f(the)h(w)m(ord)f(is)h(regarded)g(as)g(a)g Fq(pattern)p Ft(,)g(and)g(replaced)g(with)f(an)h(alphab)s(etically)h -(sorted)150 1663 y(list)k(of)f(\014lenames)g(matc)m(hing)h(the)f +(sorted)150 2115 y(list)k(of)f(\014lenames)g(matc)m(hing)h(the)f (pattern)g(\(see)h(Section)f(3.5.8.1)j([P)m(attern)e(Matc)m(hing],)h -(page)f(29\).)43 b(If)150 1772 y(no)26 b(matc)m(hing)i(\014lenames)e +(page)f(29\).)43 b(If)150 2224 y(no)26 b(matc)m(hing)i(\014lenames)e (are)h(found,)f(and)g(the)h(shell)f(option)h Fs(nullglob)d -Ft(is)j(disabled,)g(the)g(w)m(ord)f(is)g(left)150 1882 +Ft(is)j(disabled,)g(the)g(w)m(ord)f(is)g(left)150 2334 y(unc)m(hanged.)40 b(If)30 b(the)g Fs(nullglob)e Ft(option)i(is)h(set,) f(and)g(no)g(matc)m(hes)h(are)g(found,)e(the)h(w)m(ord)g(is)g(remo)m(v) -m(ed.)150 1991 y(If)i(the)g Fs(failglob)e Ft(shell)i(option)h(is)f +m(ed.)150 2443 y(If)i(the)g Fs(failglob)e Ft(shell)i(option)h(is)f (set,)h(and)f(no)g(matc)m(hes)h(are)g(found,)e(an)h(error)g(message)h -(is)f(prin)m(ted)150 2101 y(and)e(the)g(command)g(is)h(not)f(executed.) +(is)f(prin)m(ted)150 2553 y(and)e(the)g(command)g(is)h(not)f(executed.) 42 b(If)30 b(the)g(shell)h(option)g Fs(nocaseglob)c Ft(is)k(enabled,)f -(the)h(matc)m(h)g(is)150 2211 y(p)s(erformed)e(without)h(regard)h(to)g +(the)h(matc)m(h)g(is)150 2663 y(p)s(erformed)e(without)h(regard)h(to)g (the)f(case)i(of)e(alphab)s(etic)h(c)m(haracters.)275 -2341 y(When)23 b(a)h(pattern)f(is)h(used)f(for)g(\014lename)h +2796 y(When)23 b(a)h(pattern)f(is)h(used)f(for)g(\014lename)h (expansion,)h(the)e(c)m(haracter)i(`)p Fs(.)p Ft(')f(at)g(the)g(start)g -(of)g(a)g(\014lename)150 2450 y(or)f(immediately)i(follo)m(wing)g(a)f +(of)g(a)g(\014lename)150 2905 y(or)f(immediately)i(follo)m(wing)g(a)f (slash)f(m)m(ust)h(b)s(e)f(matc)m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g(shell)h(option)g Fs(dotglob)150 -2560 y Ft(is)33 b(set.)51 b(When)33 b(matc)m(hing)h(a)g(\014lename,)h +3015 y Ft(is)33 b(set.)51 b(When)33 b(matc)m(hing)h(a)g(\014lename,)h (the)e(slash)h(c)m(haracter)h(m)m(ust)e(alw)m(a)m(ys)i(b)s(e)e(matc)m -(hed)h(explicitly)-8 b(.)150 2669 y(In)30 b(other)g(cases,)i(the)e(`)p +(hed)h(explicitly)-8 b(.)150 3125 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 2799 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(62,)g(for)f -(a)g(descrip-)150 2909 y(tion)j(of)f(the)h Fs(nocaseglob)p +b(.)275 3258 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(61,)g(for)f +(a)g(descrip-)150 3367 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 3039 y(The)j Fs(GLOBIGNORE)f +Fs(dotglob)g Ft(options.)275 3501 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 3148 +(the)g(set)f(of)h(\014lenames)f(matc)m(hing)i(a)150 3610 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 3258 y(in)33 b Fs(GLOBIGNORE)d Ft(is)j(remo)m(v)m(ed)h +(patterns)150 3720 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)150 -3367 y(ignored)g(when)e Fs(GLOBIGNORE)f Ft(is)j(set)g(and)f(not)h(n)m +3829 y(ignored)g(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 3477 y(v)-5 b(alue)34 b(has)f(the)h +Ft(to)j(a)g(non-n)m(ull)150 3939 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 3587 y(with)43 +e(all)g(other)g(\014lenames)g(b)s(eginning)150 4049 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 3696 y(`)p Fs(.)p Ft(',)c(mak)m(e)g(`)p +(eginning)f(with)g(a)150 4158 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 -3806 y Fs(GLOBIGNORE)28 b Ft(is)i(unset.)150 3996 y Fj(3.5.8.1)63 -b(P)m(attern)40 b(Matc)m(hing)150 4143 y Ft(An)m(y)24 +4268 y Fs(GLOBIGNORE)28 b Ft(is)i(unset.)150 4465 y Fj(3.5.8.1)63 +b(P)m(attern)40 b(Matc)m(hing)150 4611 y Ft(An)m(y)24 b(c)m(haracter)h(that)f(app)s(ears)f(in)g(a)h(pattern,)i(other)e(than)f (the)h(sp)s(ecial)g(pattern)g(c)m(haracters)h(describ)s(ed)150 -4252 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42 b(The)29 +4721 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42 b(The)29 b Fl(nul)h Ft(c)m(haracter)i(ma)m(y)e(not)h(o)s(ccur)f(in)g(a)h -(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)150 4362 +(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)150 4831 y(the)38 b(follo)m(wing)g(c)m(haracter;)43 b(the)37 b(escaping)i(bac)m (kslash)e(is)h(discarded)f(when)f(matc)m(hing.)63 b(The)36 -b(sp)s(ecial)150 4471 y(pattern)30 b(c)m(haracters)i(m)m(ust)f(b)s(e)e +b(sp)s(ecial)150 4940 y(pattern)30 b(c)m(haracters)i(m)m(ust)f(b)s(e)e (quoted)i(if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i(literally)-8 -b(.)275 4601 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 4751 y Fs(*)432 +b(.)275 5073 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 5230 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 -4861 y(is)37 b(enabled,)h(and)e(`)p Fs(*)p Ft(')h(is)g(used)f(in)g(a)h +5340 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 4971 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 -5080 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 5190 y(and)k(sub)s(directories.)150 -5340 y Fs(?)432 b Ft(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)p -eop end +Fs(*)p Ft('s)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)150 299 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 -408 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 518 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 628 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 -737 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 847 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 -956 y(\014rst)25 b(c)m(haracter)i(in)e(the)h(set.)40 -b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f(range)g -(expressions)f(is)630 1066 y(determined)h(b)m(y)h(the)g(curren)m(t)f -(lo)s(cale)j(and)d(the)h(v)-5 b(alues)27 b(of)g(the)g -Fs(LC_COLLATE)d Ft(and)i Fs(LC_ALL)630 1176 y Ft(shell)31 -b(v)-5 b(ariables,)31 b(if)f(set.)630 1303 y(F)-8 b(or)34 +TeXDict begin 30 35 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(30)630 299 +y(used)37 b(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 +408 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 518 y(and)k(sub)s(directories.)150 +682 y Fs(?)432 b Ft(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)150 +846 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 956 y(h)m(yphen)k(denotes)i(a)g +Fq(range)g(expression)p Ft(;)f(an)m(y)h(c)m(haracter)h(that)f(falls)g +(b)s(et)m(w)m(een)g(those)g(t)m(w)m(o)630 1065 y(c)m(haracters,)d +(inclusiv)m(e,)f(using)d(the)h(curren)m(t)f(lo)s(cale's)j(collating)g +(sequence)e(and)f(c)m(haracter)630 1175 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 1284 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 1394 +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 1503 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 1613 y(determined)h(b)m(y)h(the)g(curren) +m(t)f(lo)s(cale)j(and)d(the)h(v)-5 b(alues)27 b(of)g(the)g +Fs(LC_COLLATE)d Ft(and)i Fs(LC_ALL)630 1723 y Ft(shell)31 +b(v)-5 b(ariables,)31 b(if)f(set.)630 1859 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 1413 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m +Fs([abcdxyz])p Ft('.)630 1969 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 1522 y(`)p Fs([a-dx-z])p Ft(')36 b(is)i(t)m(ypically)i(not)e +(cales)630 2079 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 1632 y(to)34 b(`)p +(t)f(b)s(e)f(equiv)-5 b(alen)m(t)630 2188 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 -1742 y(ranges)e(in)f(brac)m(k)m(et)i(expressions,)g(y)m(ou)f(can)g +2298 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 -1851 y(the)c Fs(LC_COLLATE)e Ft(or)i Fs(LC_ALL)f Ft(en)m(vironmen)m(t)i +2407 y(the)c Fs(LC_COLLATE)e Ft(or)i Fs(LC_ALL)f Ft(en)m(vironmen)m(t)i (v)-5 b(ariable)30 b(to)g(the)f(v)-5 b(alue)30 b(`)p -Fs(C)p Ft(',)g(or)f(enable)h(the)630 1961 y Fs(globasciiranges)c -Ft(shell)31 b(option.)630 2088 y(Within)23 b(`)p Fs([)p +Fs(C)p Ft(',)g(or)f(enable)h(the)630 2517 y Fs(globasciiranges)c +Ft(shell)31 b(option.)630 2654 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 2198 y(where)30 b +Fs([:)p Fq(class)t Fs(:])p Ft(,)630 2763 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 2326 +(de\014ned)e(in)h(the)h Fl(posix)f Ft(standard:)870 2900 y Fs(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g(lower) -870 2435 y(print)g(punct)g(space)f(upper)h(word)190 b(xdigit)630 -2563 y Ft(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m(y)f(c)m +870 3010 y(print)g(punct)g(space)f(upper)h(word)190 b(xdigit)630 +3146 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 2672 y Ft(c)m(haracter)32 b(class)f(matc)m(hes)h +b Fs(word)630 3256 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 2800 y(Within)25 b(`)p Fs([)p Ft(')f(and)g(`)p +Fs(_)p Ft('.)630 3393 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 2910 y(whic)m(h)29 +Fs([=)p Fq(c)6 b Fs(=])p Ft(,)630 3502 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 3019 +m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 3612 y(curren)m(t)g(lo)s(cale\))j(as)d(the)h(c)m(haracter)h -Fq(c)6 b Ft(.)630 3147 y(Within)21 b(`)p Fs([)p Ft(')h(and)e(`)p +Fq(c)6 b Ft(.)630 3749 y(Within)21 b(`)p Fs([)p Ft(')h(and)e(`)p Fs(])p Ft(',)j(the)f(syn)m(tax)f Fs([.)p Fq(sym)m(b)s(ol)t Fs(.])f Ft(matc)m(hes)i(the)f(collating)j(sym)m(b)s(ol)c -Fq(sym)m(b)s(ol)t Ft(.)275 3293 y(If)29 b(the)g Fs(extglob)f +Fq(sym)m(b)s(ol)t Ft(.)275 3915 y(If)29 b(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 3402 +Ft(builtin,)h(sev)m(eral)i(extended)f(pattern)150 4024 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 3512 y(one)d(or)f(more)h(patterns)f +Ft(is)d(a)g(list)g(of)150 4134 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 -3621 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150 -3767 y Fs(?\()p Fi(pattern-list)11 b Fs(\))630 3877 y +4244 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150 +4410 y Fs(?\()p Fi(pattern-list)11 b Fs(\))630 4519 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 4022 y Fs(*\()p Fi(pattern-list)11 -b Fs(\))630 4132 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 4278 -y Fs(+\()p Fi(pattern-list)11 b Fs(\))630 4387 y Ft(Matc)m(hes)32 +(en)g(patterns.)150 4683 y Fs(*\()p Fi(pattern-list)11 +b Fs(\))630 4793 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 4957 +y Fs(+\()p Fi(pattern-list)11 b Fs(\))630 5066 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 4533 y Fs(@\()p Fi(pattern-list)11 b Fs(\))630 4643 -y Ft(Matc)m(hes)32 b(one)f(of)f(the)h(giv)m(en)g(patterns.)150 -4788 y Fs(!\()p Fi(pattern-list)11 b Fs(\))630 4898 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 5083 y Fj(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 -b(al)150 5230 y Ft(After)32 b(the)g(preceding)g(expansions,)h(all)f -(unquoted)f(o)s(ccurrences)h(of)g(the)h(c)m(haracters)g(`)p -Fs(\\)p Ft(',)g(`)p Fs(')p Ft(',)f(and)g(`)p Fs(")p Ft(')150 -5340 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g(the)f(ab)s(o)m(v)m -(e)i(expansions)e(are)h(remo)m(v)m(ed.)p eop end +150 5230 y Fs(@\()p Fi(pattern-list)11 b Fs(\))630 5340 +y Ft(Matc)m(hes)32 b(one)f(of)f(the)h(giv)m(en)g(patterns.)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)150 299 -y Fr(3.6)68 b(Redirections)150 458 y Ft(Before)32 b(a)f(command)f(is)h -(executed,)h(its)f(input)e(and)h(output)h(ma)m(y)g(b)s(e)f -Fq(redirected)k Ft(using)c(a)i(sp)s(ecial)f(no-)150 568 -y(tation)d(in)m(terpreted)f(b)m(y)f(the)h(shell.)40 b(Redirection)27 -b(allo)m(ws)h(commands')f(\014le)f(handles)g(to)i(b)s(e)e(duplicated,) -150 677 y(op)s(ened,)i(closed,)i(made)e(to)h(refer)f(to)h(di\013eren)m -(t)f(\014les,)h(and)f(can)g(c)m(hange)h(the)g(\014les)f(the)g(command)g -(reads)150 787 y(from)39 b(and)g(writes)h(to.)69 b(Redirection)40 +y Fs(!\()p Fi(pattern-list)11 b Fs(\))630 408 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 +606 y Fj(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 b(al)150 753 +y Ft(After)32 b(the)g(preceding)g(expansions,)h(all)f(unquoted)f(o)s +(ccurrences)h(of)g(the)h(c)m(haracters)g(`)p Fs(\\)p +Ft(',)g(`)p Fs(')p Ft(',)f(and)g(`)p Fs(")p Ft(')150 +863 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g(the)f(ab)s(o)m(v)m +(e)i(expansions)e(are)h(remo)m(v)m(ed.)150 1093 y Fr(3.6)68 +b(Redirections)150 1253 y Ft(Before)32 b(a)f(command)f(is)h(executed,)h +(its)f(input)e(and)h(output)h(ma)m(y)g(b)s(e)f Fq(redirected)k +Ft(using)c(a)i(sp)s(ecial)f(no-)150 1362 y(tation)d(in)m(terpreted)f(b) +m(y)f(the)h(shell.)40 b(Redirection)27 b(allo)m(ws)h(commands')f +(\014le)f(handles)g(to)i(b)s(e)e(duplicated,)150 1472 +y(op)s(ened,)i(closed,)i(made)e(to)h(refer)f(to)h(di\013eren)m(t)f +(\014les,)h(and)f(can)g(c)m(hange)h(the)g(\014les)f(the)g(command)g +(reads)150 1582 y(from)39 b(and)g(writes)h(to.)69 b(Redirection)40 b(ma)m(y)g(also)h(b)s(e)e(used)g(to)h(mo)s(dify)f(\014le)g(handles)g -(in)g(the)h(curren)m(t)150 897 y(shell)e(execution)h(en)m(vironmen)m +(in)g(the)h(curren)m(t)150 1691 y(shell)e(execution)h(en)m(vironmen)m (t.)65 b(The)37 b(follo)m(wing)j(redirection)f(op)s(erators)f(ma)m(y)g -(precede)h(or)f(app)s(ear)150 1006 y(an)m(ywhere)30 b(within)f(a)h +(precede)h(or)f(app)s(ear)150 1801 y(an)m(ywhere)30 b(within)f(a)h (simple)f(command)h(or)f(ma)m(y)i(follo)m(w)g(a)f(command.)40 -b(Redirections)30 b(are)g(pro)s(cessed)150 1116 y(in)g(the)h(order)f +b(Redirections)30 b(are)g(pro)s(cessed)150 1910 y(in)g(the)h(order)f (they)g(app)s(ear,)g(from)g(left)h(to)g(righ)m(t.)275 -1260 y(Eac)m(h)45 b(redirection)h(that)f(ma)m(y)h(b)s(e)e(preceded)g(b) +2044 y(Eac)m(h)45 b(redirection)h(that)f(ma)m(y)h(b)s(e)e(preceded)g(b) m(y)h(a)h(\014le)f(descriptor)f(n)m(um)m(b)s(er)g(ma)m(y)h(instead)h(b) -s(e)150 1369 y(preceded)41 b(b)m(y)g(a)g(w)m(ord)g(of)g(the)g(form)g +s(e)150 2154 y(preceded)41 b(b)m(y)g(a)g(w)m(ord)g(of)g(the)g(form)g Fs({)p Fq(v)-5 b(arname)5 b Fs(})p Ft(.)72 b(In)40 b(this)h(case,)k -(for)c(eac)m(h)h(redirection)g(op)s(erator)150 1479 y(except)30 +(for)c(eac)m(h)h(redirection)g(op)s(erator)150 2263 y(except)30 b Fs(>)p Ft(&-)f(and)f Fs(<)p Ft(&-,)h(the)g(shell)g(will)h(allo)s (cate)h(a)e(\014le)h(descriptor)e(greater)j(than)d(10)i(and)e(assign)i -(it)f(to)150 1588 y Fs({)p Fq(v)-5 b(arname)5 b Fs(})p +(it)f(to)150 2373 y Fs({)p Fq(v)-5 b(arname)5 b Fs(})p Ft(.)42 b(If)31 b Fs(>)p Ft(&-)f(or)h Fs(<)p Ft(&-)g(is)g(preceded)g(b) m(y)g Fs({)p Fq(v)-5 b(arname)5 b Fs(})p Ft(,)31 b(the)g(v)-5 b(alue)31 b(of)g Fq(v)-5 b(arname)37 b Ft(de\014nes)30 -b(the)h(\014le)150 1698 y(descriptor)f(to)h(close.)275 -1842 y(In)c(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g +b(the)h(\014le)150 2482 y(descriptor)f(to)h(close.)275 +2616 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 1951 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g +(c)m(har-)150 2726 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 2061 y(descriptor)33 +(standard)f(input)f(\(\014le)150 2835 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 2170 y(to)e(the)g(standard)e(output)h(\(\014le)h -(descriptor)f(1\).)275 2314 y(The)h(w)m(ord)h(follo)m(wing)i(the)f +g(refers)150 2945 y(to)e(the)g(standard)e(output)h(\(\014le)h +(descriptor)f(1\).)275 3078 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 2424 y(wise)21 b(noted,)i(is)e(sub)5 +(unless)e(other-)150 3188 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 2533 y(substitution,)31 b(arithmetic)h +e(expansion,)i(command)150 3298 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 2643 y(If)f(it)h(expands)e(to)i(more)g +(and)f(w)m(ord)h(splitting.)150 3407 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 -2787 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g +3541 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 -2931 y Fs(ls)47 b(>)h Fi(dirlist)56 b Fs(2>&1)150 3074 +3675 y Fs(ls)47 b(>)h Fi(dirlist)56 b Fs(2>&1)150 3808 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 3184 y(\014le)h Fq(dirlist)r Ft(,)h(while)f(the)h(command)390 -3328 y Fs(ls)47 b(2>&1)g(>)g Fi(dirlist)150 3471 y Ft(directs)28 +150 3918 y(\014le)h Fq(dirlist)r Ft(,)h(while)f(the)h(command)390 +4051 y Fs(ls)47 b(2>&1)g(>)g Fi(dirlist)150 4185 y Ft(directs)28 b(only)f(the)g(standard)g(output)g(to)h(\014le)f Fq(dirlist)r Ft(,)h(b)s(ecause)g(the)f(standard)g(error)g(w)m(as)g(made)h(a)f(cop)m -(y)150 3581 y(of)k(the)f(standard)g(output)g(b)s(efore)g(the)g +(y)150 4295 y(of)k(the)f(standard)g(output)g(b)s(efore)g(the)g (standard)g(output)g(w)m(as)g(redirected)h(to)g Fq(dirlist)r -Ft(.)275 3725 y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s +Ft(.)275 4428 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 3834 y(in)k(the)h(follo)m(wing)g(table:)150 -4008 y Fs(/dev/fd/)p Fi(fd)630 4117 y Ft(If)f Fq(fd)j +(describ)s(ed)150 4538 y(in)k(the)h(follo)m(wing)g(table:)150 +4696 y Fs(/dev/fd/)p Fi(fd)630 4805 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 4286 y Fs(/dev/stdin)630 -4396 y Ft(File)i(descriptor)e(0)h(is)f(duplicated.)150 -4564 y Fs(/dev/stdout)630 4674 y Ft(File)i(descriptor)e(1)h(is)f -(duplicated.)150 4843 y Fs(/dev/stderr)630 4952 y Ft(File)i(descriptor) -e(2)h(is)f(duplicated.)150 5121 y Fs(/dev/tcp/)p Fi(host)11 -b Fs(/)p Fi(port)630 5230 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 5340 -y(n)m(um)m(b)s(er)23 b(or)i(service)h(name,)g(Bash)f(attempts)h(to)f -(op)s(en)f(the)h(corresp)s(onding)f(TCP)g(so)s(c)m(k)m(et.)p -eop end +Fq(fd)i Ft(is)d(duplicated.)150 4963 y Fs(/dev/stdin)630 +5073 y Ft(File)i(descriptor)e(0)h(is)f(duplicated.)150 +5230 y Fs(/dev/stdout)630 5340 y Ft(File)i(descriptor)e(1)h(is)f +(duplicated.)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)150 299 y Fs(/dev/udp/)p Fi(host)11 -b Fs(/)p Fi(port)630 408 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5 +TeXDict begin 32 37 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(32)150 299 +y Fs(/dev/stderr)630 408 y Ft(File)32 b(descriptor)e(2)h(is)f +(duplicated.)150 574 y Fs(/dev/tcp/)p Fi(host)11 b Fs(/)p +Fi(port)630 684 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 518 -y(n)m(um)m(b)s(er)23 b(or)h(service)h(name,)h(Bash)e(attempts)h(to)g -(op)s(en)f(the)g(corresp)s(onding)f(UDP)i(so)s(c)m(k)m(et.)275 -695 y(A)30 b(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 841 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 950 y(con\015ict)i(with)f -(\014le)h(descriptors)f(the)g(shell)h(uses)f(in)m(ternally)-8 -b(.)150 1161 y Fj(3.6.1)63 b(Redirecting)40 b(Input)150 -1308 y Ft(Redirection)35 b(of)f(input)f(causes)i(the)f(\014le)g(whose)g +Fq(p)s(ort)j Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 793 +y(n)m(um)m(b)s(er)23 b(or)i(service)h(name,)g(Bash)f(attempts)h(to)f +(op)s(en)f(the)h(corresp)s(onding)f(TCP)g(so)s(c)m(k)m(et.)150 +959 y Fs(/dev/udp/)p Fi(host)11 b Fs(/)p Fi(port)630 +1069 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 1178 y(n)m(um)m(b)s(er)23 +b(or)h(service)h(name,)h(Bash)e(attempts)h(to)g(op)s(en)f(the)g +(corresp)s(onding)f(UDP)i(so)s(c)m(k)m(et.)275 1347 y(A)30 +b(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 1488 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 1598 y(con\015ict)i(with)f(\014le)h +(descriptors)f(the)g(shell)h(uses)f(in)m(ternally)-8 +b(.)150 1803 y Fj(3.6.1)63 b(Redirecting)40 b(Input)150 +1950 y Ft(Redirection)35 b(of)f(input)f(causes)i(the)f(\014le)g(whose)g (name)g(results)g(from)g(the)g(expansion)g(of)g Fq(w)m(ord)k -Ft(to)d(b)s(e)150 1418 y(op)s(ened)d(for)g(reading)g(on)g(\014le)h +Ft(to)d(b)s(e)150 2060 y(op)s(ened)d(for)g(reading)g(on)g(\014le)h (descriptor)f Fs(n)p Ft(,)h(or)f(the)g(standard)g(input)f(\(\014le)i -(descriptor)f(0\))h(if)f Fs(n)g Ft(is)h(not)150 1527 -y(sp)s(eci\014ed.)275 1674 y(The)c(general)j(format)e(for)h -(redirecting)g(input)e(is:)390 1820 y Fs([)p Fi(n)11 -b Fs(]<)p Fi(word)150 2030 y Fj(3.6.2)63 b(Redirecting)40 -b(Output)150 2177 y Ft(Redirection)31 b(of)g(output)f(causes)h(the)f +(descriptor)f(0\))h(if)f Fs(n)g Ft(is)h(not)150 2169 +y(sp)s(eci\014ed.)275 2310 y(The)c(general)j(format)e(for)h +(redirecting)g(input)e(is:)390 2451 y Fs([)p Fi(n)11 +b Fs(]<)p Fi(word)150 2657 y Fj(3.6.2)63 b(Redirecting)40 +b(Output)150 2804 y Ft(Redirection)31 b(of)g(output)f(causes)h(the)f (\014le)h(whose)f(name)g(results)h(from)e(the)i(expansion)f(of)h -Fq(w)m(ord)i Ft(to)f(b)s(e)150 2287 y(op)s(ened)d(for)g(writing)g(on)g +Fq(w)m(ord)i Ft(to)f(b)s(e)150 2913 y(op)s(ened)d(for)g(writing)g(on)g (\014le)h(descriptor)f Fq(n)p Ft(,)g(or)g(the)h(standard)e(output)h (\(\014le)h(descriptor)f(1\))h(if)g Fq(n)e Ft(is)i(not)150 -2397 y(sp)s(eci\014ed.)40 b(If)30 b(the)g(\014le)h(do)s(es)f(not)h +3023 y(sp)s(eci\014ed.)40 b(If)30 b(the)g(\014le)h(do)s(es)f(not)h (exist)g(it)g(is)f(created;)i(if)e(it)h(do)s(es)f(exist)h(it)g(is)g -(truncated)f(to)h(zero)g(size.)275 2543 y(The)e(general)j(format)e(for) -h(redirecting)g(output)f(is:)390 2689 y Fs([)p Fi(n)11 -b Fs(]>[|])p Fi(word)275 2835 y Ft(If)30 b(the)h(redirection)g(op)s +(truncated)f(to)h(zero)g(size.)275 3164 y(The)e(general)j(format)e(for) +h(redirecting)g(output)f(is:)390 3304 y Fs([)p Fi(n)11 +b Fs(]>[|])p Fi(word)275 3445 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 -2944 y(enabled,)i(the)f(redirection)h(will)f(fail)h(if)f(the)g(\014le)g +3555 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 3054 y Ft(exists)f(and)f(is)g(a)h(regular)g(\014le.)41 +Fq(w)m(ord)150 3664 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 -3164 y(`)p Fs(>)p Ft(')36 b(and)f(the)g Fs(noclobber)e +3774 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 3273 y(named)30 b(b)m(y)g -Fq(w)m(ord)k Ft(exists.)150 3484 y Fj(3.6.3)63 b(App)s(ending)42 -b(Redirected)e(Output)150 3631 y Ft(Redirection)23 b(of)e(output)h(in)f +(ev)m(en)h(if)e(the)h(\014le)150 3884 y(named)30 b(b)m(y)g +Fq(w)m(ord)k Ft(exists.)150 4089 y Fj(3.6.3)63 b(App)s(ending)42 +b(Redirected)e(Output)150 4236 y Ft(Redirection)23 b(of)e(output)h(in)f (this)h(fashion)f(causes)h(the)g(\014le)g(whose)f(name)h(results)f -(from)g(the)h(expansion)g(of)150 3741 y Fq(w)m(ord)28 +(from)g(the)h(expansion)g(of)150 4346 y Fq(w)m(ord)28 b Ft(to)e(b)s(e)e(op)s(ened)g(for)h(app)s(ending)e(on)i(\014le)g (descriptor)g Fq(n)p Ft(,)g(or)g(the)g(standard)f(output)h(\(\014le)g -(descriptor)150 3850 y(1\))31 b(if)f Fq(n)g Ft(is)h(not)f(sp)s +(descriptor)150 4455 y(1\))31 b(if)f Fq(n)g Ft(is)h(not)f(sp)s (eci\014ed.)40 b(If)30 b(the)h(\014le)f(do)s(es)g(not)h(exist)g(it)g -(is)f(created.)275 3996 y(The)f(general)j(format)e(for)h(app)s(ending)e -(output)h(is:)390 4142 y Fs([)p Fi(n)11 b Fs(]>>)p Fi(word)150 -4353 y Fj(3.6.4)63 b(Redirecting)40 b(Standard)h(Output)g(and)g -(Standard)g(Error)150 4500 y Ft(This)33 b(construct)i(allo)m(ws)g(b)s +(is)f(created.)275 4596 y(The)f(general)j(format)e(for)h(app)s(ending)e +(output)h(is:)390 4737 y Fs([)p Fi(n)11 b Fs(]>>)p Fi(word)150 +4943 y Fj(3.6.4)63 b(Redirecting)40 b(Standard)h(Output)g(and)g +(Standard)g(Error)150 5090 y Ft(This)33 b(construct)i(allo)m(ws)g(b)s (oth)f(the)g(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f -(the)g(standard)f(error)150 4610 y(output)d(\(\014le)h(descriptor)f +(the)g(standard)f(error)150 5199 y(output)d(\(\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)t Ft(.)275 4756 y(There)f(are)i(t)m +f(the)g(expansion)h(of)f Fq(w)m(ord)t Ft(.)275 5340 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 4902 y Fs(&>)p Fi(word)150 5048 -y Ft(and)390 5194 y Fs(>&)p Fi(word)150 5340 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)p -eop end +(standard)f(error:)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)390 299 -y Fs(>)p Fi(word)57 b Fs(2>&1)275 445 y Ft(When)41 b(using)g(the)h -(second)f(form,)k Fq(w)m(ord)f Ft(ma)m(y)e(not)g(expand)f(to)h(a)g(n)m -(um)m(b)s(er)f(or)g(`)p Fs(-)p Ft('.)75 b(If)41 b(it)h(do)s(es,)150 -554 y(other)27 b(redirection)g(op)s(erators)f(apply)h(\(see)g -(Duplicating)h(File)f(Descriptors)h(b)s(elo)m(w\))f(for)f(compatibilit) -m(y)150 664 y(reasons.)150 874 y Fj(3.6.5)63 b(App)s(ending)42 -b(Standard)f(Output)g(and)g(Standard)g(Error)150 1021 +y Fs(&>)p Fi(word)150 433 y Ft(and)390 567 y Fs(>&)p +Fi(word)150 701 y Ft(Of)30 b(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 835 y Fs(>)p Fi(word)57 b Fs(2>&1)275 +969 y Ft(When)41 b(using)g(the)h(second)f(form,)k Fq(w)m(ord)f +Ft(ma)m(y)e(not)g(expand)f(to)h(a)g(n)m(um)m(b)s(er)f(or)g(`)p +Fs(-)p Ft('.)75 b(If)41 b(it)h(do)s(es,)150 1078 y(other)27 +b(redirection)g(op)s(erators)f(apply)h(\(see)g(Duplicating)h(File)f +(Descriptors)h(b)s(elo)m(w\))f(for)f(compatibilit)m(y)150 +1188 y(reasons.)150 1386 y Fj(3.6.5)63 b(App)s(ending)42 +b(Standard)f(Output)g(and)g(Standard)g(Error)150 1533 y Ft(This)33 b(construct)i(allo)m(ws)g(b)s(oth)f(the)g(standard)g (output)f(\(\014le)i(descriptor)f(1\))h(and)f(the)g(standard)f(error) -150 1131 y(output)d(\(\014le)h(descriptor)f(2\))h(to)g(b)s(e)f(app)s +150 1642 y(output)d(\(\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)t Ft(.)275 1276 y(The)f(format)i(for)f(app)s(ending)f +Fq(w)m(ord)t Ft(.)275 1776 y(The)f(format)i(for)f(app)s(ending)f (standard)h(output)g(and)f(standard)h(error)g(is:)390 -1422 y Fs(&>>)p Fi(word)150 1568 y Ft(This)g(is)g(seman)m(tically)j -(equiv)-5 b(alen)m(t)32 b(to)390 1714 y Fs(>>)p Fi(word)57 -b Fs(2>&1)275 1859 y Ft(\(see)31 b(Duplicating)h(File)f(Descriptors)g -(b)s(elo)m(w\).)150 2070 y Fj(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150 -2217 y Ft(This)c(t)m(yp)s(e)h(of)f(redirection)i(instructs)e(the)h +1910 y Fs(&>>)p Fi(word)150 2044 y Ft(This)g(is)g(seman)m(tically)j +(equiv)-5 b(alen)m(t)32 b(to)390 2178 y Fs(>>)p Fi(word)57 +b Fs(2>&1)275 2312 y Ft(\(see)31 b(Duplicating)h(File)f(Descriptors)g +(b)s(elo)m(w\).)150 2510 y Fj(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150 +2657 y Ft(This)c(t)m(yp)s(e)h(of)f(redirection)i(instructs)e(the)h (shell)f(to)i(read)e(input)g(from)g(the)h(curren)m(t)f(source)h(un)m -(til)g(a)150 2326 y(line)31 b(con)m(taining)g(only)g +(til)g(a)150 2767 y(line)31 b(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 -2436 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 2582 y(The)e(format)i(of)g(here-do)s(cumen)m -(ts)f(is:)390 2727 y Fs(<<[)p Fp(\000)p Fs(])p Fi(word)772 -2837 y(here-document)390 2946 y(delimiter)275 3092 y +2876 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 3010 y(The)e(format)i(of)g(here-do)s(cumen)m +(ts)f(is:)390 3144 y Fs(<<[)p Fp(\000)p Fs(])p Fi(word)772 +3254 y(here-document)390 3363 y(delimiter)275 3497 y Ft(No)i(parameter)h(and)f(v)-5 b(ariable)32 b(expansion,)h(command)f -(substitution,)h(arithmetic)g(expansion,)g(or)150 3202 +(substitution,)h(arithmetic)g(expansion,)g(or)150 3607 y(\014lename)38 b(expansion)f(is)h(p)s(erformed)e(on)h Fq(w)m(ord)t Ft(.)62 b(If)37 b(an)m(y)h(c)m(haracters)h(in)e -Fq(w)m(ord)k Ft(are)d(quoted,)i(the)e Fq(de-)150 3311 +Fq(w)m(ord)k Ft(are)d(quoted,)i(the)e Fq(de-)150 3716 y(limiter)h Ft(is)32 b(the)g(result)g(of)g(quote)g(remo)m(v)-5 b(al)33 b(on)f Fq(w)m(ord)t Ft(,)g(and)f(the)h(lines)g(in)g(the)g -(here-do)s(cumen)m(t)f(are)i(not)150 3421 y(expanded.)71 +(here-do)s(cumen)m(t)f(are)i(not)150 3826 y(expanded.)71 b(If)40 b Fq(w)m(ord)k Ft(is)d(unquoted,)h(all)g(lines)f(of)g(the)f (here-do)s(cumen)m(t)h(are)g(sub)5 b(jected)41 b(to)g(param-)150 -3531 y(eter)c(expansion,)i(command)d(substitution,)i(and)e(arithmetic)i -(expansion,)g(the)f(c)m(haracter)i(sequence)150 3640 +3936 y(eter)c(expansion,)i(command)d(substitution,)i(and)e(arithmetic)i +(expansion,)g(the)f(c)m(haracter)i(sequence)150 4045 y Fs(\\newline)28 b 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('.)275 -3786 y(If)21 b(the)i(redirection)g(op)s(erator)g(is)f(`)p +4179 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 3895 y(lines)33 b(and)e(the)i(line)g +(stripp)s(ed)f(from)h(input)150 4289 y(lines)33 b(and)e(the)i(line)g (con)m(taining)h Fq(delimiter)7 b Ft(.)47 b(This)31 b(allo)m(ws)j (here-do)s(cumen)m(ts)f(within)e(shell)i(scripts)f(to)150 -4005 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f(fashion.)150 -4215 y Fj(3.6.7)63 b(Here)41 b(Strings)150 4362 y Ft(A)30 +4398 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f(fashion.)150 +4596 y Fj(3.6.7)63 b(Here)41 b(Strings)150 4743 y Ft(A)30 b(v)-5 b(arian)m(t)32 b(of)e(here)h(do)s(cumen)m(ts,)f(the)g(format)h -(is:)390 4508 y Fs(<<<)47 b Fi(word)275 4654 y Ft(The)21 +(is:)390 4877 y Fs(<<<)47 b Fi(word)275 5011 y Ft(The)21 b Fq(w)m(ord)k Ft(undergo)s(es)c(brace)h(expansion,)i(tilde)e (expansion,)i(parameter)e(and)f(v)-5 b(ariable)23 b(expansion,)150 -4763 y(command)j(substitution,)g(arithmetic)i(expansion,)f(and)e(quote) +5121 y(command)j(substitution,)g(arithmetic)i(expansion,)f(and)e(quote) i(remo)m(v)-5 b(al.)40 b(P)m(athname)27 b(expansion)f(and)150 -4873 y(w)m(ord)j(splitting)i(are)f(not)g(p)s(erformed.)39 +5230 y(w)m(ord)j(splitting)i(are)f(not)g(p)s(erformed.)39 b(The)29 b(result)h(is)g(supplied)e(as)i(a)h(single)f(string)g(to)g -(the)g(command)150 4983 y(on)g(its)h(standard)f(input.)150 -5193 y Fj(3.6.8)63 b(Duplicating)41 b(File)g(Descriptors)150 -5340 y Ft(The)30 b(redirection)h(op)s(erator)p eop end +(the)g(command)150 5340 y(on)g(its)h(standard)f(input.)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)390 299 y Fs([)p Fi(n)11 b Fs(]<&)p -Fi(word)150 433 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 543 y(descriptor)e(denoted)h(b)m(y)g +TeXDict begin 34 39 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(34)150 299 +y Fj(3.6.8)63 b(Duplicating)41 b(File)g(Descriptors)150 +446 y Ft(The)30 b(redirection)h(op)s(erator)390 585 y +Fs([)p Fi(n)11 b Fs(]<&)p Fi(word)150 723 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 833 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 -653 y Ft(do)c(not)h(sp)s(ecify)f(a)h(\014le)f(descriptor)g(op)s(en)g +942 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 762 y(to)31 +b(If)29 b Fq(w)m(ord)j Ft(ev)-5 b(aluates)150 1052 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 872 y(is)g(used.)275 -1006 y(The)f(op)s(erator)390 1141 y Fs([)p Fi(n)11 b -Fs(]>&)p Fi(word)150 1275 y Ft(is)40 b(used)g(similarly)h(to)g +(input)g(\(\014le)h(descriptor)f(0\))150 1162 y(is)g(used.)275 +1300 y(The)f(op)s(erator)390 1439 y Fs([)p Fi(n)11 b +Fs(]>&)p Fi(word)150 1578 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 -1385 y(output)30 b(\(\014le)g(descriptor)g(1\))h(is)f(used.)39 +1687 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 -1494 y(for)35 b(output,)h(a)g(redirection)g(error)e(o)s(ccurs.)55 +1797 y(for)35 b(output,)h(a)g(redirection)g(error)e(o)s(ccurs.)55 b(If)35 b Fq(w)m(ord)j Ft(ev)-5 b(aluates)37 b(to)f(`)p Fs(-)p Ft(',)h(\014le)e(descriptor)g Fq(n)g Ft(is)g(closed.)150 -1604 y(As)f(a)g(sp)s(ecial)h(case,)h(if)e Fq(n)f Ft(is)h(omitted,)i +1906 y(As)f(a)g(sp)s(ecial)h(case,)h(if)e Fq(n)f Ft(is)h(omitted,)i (and)e Fq(w)m(ord)j Ft(do)s(es)d(not)g(expand)f(to)i(one)f(or)g(more)g -(digits)h(or)f(`)p Fs(-)p Ft(',)150 1713 y(the)d(standard)e(output)h +(digits)h(or)f(`)p Fs(-)p Ft(',)150 2016 y(the)d(standard)e(output)h (and)g(standard)f(error)h(are)h(redirected)g(as)g(describ)s(ed)e -(previously)-8 b(.)150 1913 y Fj(3.6.9)63 b(Mo)m(ving)41 -b(File)h(Descriptors)150 2060 y Ft(The)30 b(redirection)h(op)s(erator) -390 2194 y Fs([)p Fi(n)11 b Fs(]<&)p Fi(digit)g Fs(-)150 -2328 y Ft(mo)m(v)m(es)33 b(the)f(\014le)g(descriptor)f +(previously)-8 b(.)150 2219 y Fj(3.6.9)63 b(Mo)m(ving)41 +b(File)h(Descriptors)150 2366 y Ft(The)30 b(redirection)h(op)s(erator) +390 2505 y Fs([)p Fi(n)11 b Fs(]<&)p Fi(digit)g Fs(-)150 +2644 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 2438 +(standard)f(input)f(\(\014le)j(descriptor)e(0\))150 2753 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 2572 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s -(erator)390 2707 y Fs([)p Fi(n)11 b Fs(]>&)p Fi(digit)g -Fs(-)150 2841 y Ft(mo)m(v)m(es)29 b(the)g(\014le)f(descriptor)f +Fq(n)p Ft(.)275 2892 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s +(erator)390 3031 y Fs([)p Fi(n)11 b Fs(]>&)p Fi(digit)g +Fs(-)150 3169 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 -2951 y(if)i Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)150 -3150 y Fj(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g -(Reading)e(and)h(W)-10 b(riting)150 3297 y Ft(The)30 -b(redirection)h(op)s(erator)390 3432 y Fs([)p Fi(n)11 -b Fs(]<>)p Fi(word)150 3566 y Ft(causes)39 b(the)g(\014le)g(whose)g +3279 y(if)i Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)150 +3483 y Fj(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g +(Reading)e(and)h(W)-10 b(riting)150 3629 y Ft(The)30 +b(redirection)h(op)s(erator)390 3768 y Fs([)p Fi(n)11 +b Fs(]<>)p Fi(word)150 3907 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 3676 y(writing)33 +(ened)f(for)g(b)s(oth)h(reading)g(and)150 4016 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 3785 y(exist,)e(it)g(is)g -(created.)150 4018 y Fr(3.7)68 b(Executing)46 b(Commands)150 -4242 y Fj(3.7.1)63 b(Simple)41 b(Command)h(Expansion)150 -4389 y Ft(When)33 b(a)g(simple)g(command)g(is)g(executed,)h(the)g +b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 4126 y(exist,)e(it)g(is)g +(created.)150 4365 y Fr(3.7)68 b(Executing)46 b(Commands)150 +4589 y Fj(3.7.1)63 b(Simple)41 b(Command)h(Expansion)150 +4736 y Ft(When)33 b(a)g(simple)g(command)g(is)g(executed,)h(the)g (shell)f(p)s(erforms)e(the)i(follo)m(wing)i(expansions,)e(assign-)150 -4498 y(men)m(ts,)e(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t.) -199 4633 y(1.)61 b(The)38 b(w)m(ords)f(that)i(the)g(parser)e(has)h +4846 y(men)m(ts,)e(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t.) +199 4984 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 4742 y(command)30 b(name\))h(and)f(redirections)h +(preceding)f(the)330 5094 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 -4877 y(2.)61 b(The)39 b(w)m(ords)g(that)i(are)f(not)g(v)-5 +5230 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 4986 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g +(\(see)h(Sec-)330 5340 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g (20\).)61 b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h -(the)e(\014rst)330 5096 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 5206 y(men)m(ts.)199 5340 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(31\).)p -eop end +(the)e(\014rst)p eop end %%Page: 35 41 TeXDict begin 35 40 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(35)199 299 -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 408 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 518 y(b)s(eing)30 b(assigned)h(to)g(the)f(v)-5 -b(ariable.)275 686 y(If)32 b(no)i(command)f(name)g(results,)h(the)g(v) +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(35)330 299 +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 +408 y(men)m(ts.)199 537 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(31\).)199 666 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 776 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 886 y(b)s(eing)30 b(assigned)h(to)g(the)f(v)-5 +b(ariable.)275 1034 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 795 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 905 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 1015 -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 1124 y(status.)275 1264 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 1374 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 1514 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 1623 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 1733 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 1843 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 1952 y(zero.)150 -2157 y Fj(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h(Execution)150 -2304 y Ft(After)i(a)h(command)f(has)g(b)s(een)f(split)h(in)m(to)h(w)m -(ords,)j(if)c(it)g(results)g(in)g(a)h(simple)f(command)g(and)f(an)150 -2414 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g(follo)m(wing)g -(actions)h(are)f(tak)m(en.)199 2554 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 2663 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 -2773 y(F)-8 b(unctions],)31 b(page)h(16.)199 2910 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 -3020 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g(that)h(builtin) -f(is)g(in)m(v)m(ok)m(ed.)199 3157 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 3267 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 3376 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 3486 -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 3595 y(Builtins],)37 b(page)f(41\).)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 3705 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 3815 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 3924 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 4034 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 4143 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 4253 y(127.)199 -4390 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 4500 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 4609 y(is)30 b(set)h(to)h(the)e(name)h(giv)m(en,)g(and)f(the)h +h(en)m(viron-)150 1143 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 1253 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 1363 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 1472 y(status.)275 1601 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 1711 +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 +1840 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 1949 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 2059 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 2168 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 +2278 y(zero.)150 2466 y Fj(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h +(Execution)150 2613 y Ft(After)i(a)h(command)f(has)g(b)s(een)f(split)h +(in)m(to)h(w)m(ords,)j(if)c(it)g(results)g(in)g(a)h(simple)f(command)g +(and)f(an)150 2723 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g +(follo)m(wing)g(actions)h(are)f(tak)m(en.)199 2852 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 2961 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 3071 y(F)-8 b(unctions],)31 b(page)h(16.)199 +3200 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 3309 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g +(that)h(builtin)f(is)g(in)m(v)m(ok)m(ed.)199 3438 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 +3548 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 3657 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 3767 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 3877 y(Builtins],)37 +b(page)f(40\).)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 +3986 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 4096 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 4205 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 4315 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 4425 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 4534 y(127.)199 4663 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 4773 +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 +4882 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 4719 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8 -b(.)199 4856 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g +330 4992 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8 +b(.)199 5121 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 4966 y(a)d(directory)-8 b(,)34 +(\014le)g(is)g(not)330 5230 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 -5075 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(38.)199 -5213 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 5322 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)p +5340 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(38.)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 Fj(3.7.3)63 b(Command)41 -b(Execution)f(En)m(vironmen)m(t)150 446 y Ft(The)30 b(shell)g(has)h(an) -f Fq(execution)h(en)m(vironmen)m(t)r Ft(,)h(whic)m(h)e(consists)h(of)f -(the)h(follo)m(wing:)225 579 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 688 y(the)g Fs(exec)e Ft(builtin)225 821 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 931 y(in)m(v)m(o)s(cation)225 -1063 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 1196 y Fp(\017)60 b Ft(curren)m(t)30 -b(traps)g(set)h(b)m(y)f Fs(trap)225 1329 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 1439 y(shell's)i(paren)m(t)f(in)g(the)h(en)m(vironmen)m -(t)225 1571 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 1681 y(en)m(vironmen)m(t)225 1814 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 1923 y(b)m(y)c Fs(set)225 2056 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(62\))225 2189 -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(87\))225 -2322 y Fp(\017)60 b Ft(v)-5 b(arious)50 b(pro)s(cess)f +TeXDict begin 36 41 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(36)199 299 +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 408 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150 +608 y Fj(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150 +755 y Ft(The)30 b(shell)g(has)h(an)f Fq(execution)h(en)m(vironmen)m(t)r +Ft(,)h(whic)m(h)e(consists)h(of)f(the)h(follo)m(wing:)225 +890 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 1000 y(the)g Fs(exec)e +Ft(builtin)225 1135 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 1244 y(in)m(v)m(o)s(cation)225 1379 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 +1514 y Fp(\017)60 b Ft(curren)m(t)30 b(traps)g(set)h(b)m(y)f +Fs(trap)225 1648 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 1758 y(shell's)i(paren)m(t) +f(in)g(the)h(en)m(vironmen)m(t)225 1893 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 +2002 y(en)m(vironmen)m(t)225 2137 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 2247 +y(b)m(y)c Fs(set)225 2381 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(61\))225 2516 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(87\))225 +2651 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 2431 y(page)31 +(\(see)i(Section)g(3.2.3)g([Lists],)330 2761 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 2587 y Ft(When)k(a)g(simple)h(command)f +b(alue)31 b(of)f Fs($PPID)275 2921 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 2697 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g +(executed,)i(it)f(is)150 3030 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 2807 y(noted,)31 +f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 3140 y(noted,)31 b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g(the)g(shell.)225 -2939 y Fp(\017)60 b Ft(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e +3275 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 3049 y(the)g(command)225 3182 +(y)g(redirections)g(to)330 3384 y(the)g(command)225 3519 y Fp(\017)60 b Ft(the)31 b(curren)m(t)f(w)m(orking)g(directory)225 -3315 y Fp(\017)60 b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225 -3447 y Fp(\017)60 b Ft(shell)32 b(v)-5 b(ariables)33 +3654 y Fp(\017)60 b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225 +3789 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 3557 y(command,)e(passed)g +b(ariables)32 b(exp)s(orted)g(for)g(the)330 3898 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(37\))225 3690 y Fp(\017)60 b +(vironmen)m(t],)e(page)g(37\))225 4033 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 3799 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored) -275 3955 y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h(separate)g +(and)330 4143 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored) +275 4303 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 -4065 y(en)m(vironmen)m(t.)275 4198 y(Command)35 b(substitution,)j +4412 y(en)m(vironmen)m(t.)275 4547 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 4307 y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i +(hronous)g(com-)150 4657 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 4417 y(except)i(that)g(traps)f(caugh)m +(shell)g(en)m(vironmen)m(t,)150 4767 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 -4526 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49 +4876 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 4636 y(executed)41 +(of)h(a)f(pip)s(eline)g(are)h(also)150 4986 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 -4746 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275 -4878 y(Subshells)24 b(spa)m(wned)h(to)i(execute)g(command)f +5095 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275 +5230 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 4988 y(from)20 b(the)h(paren)m(t)g(shell.)37 +Fs(-e)p Ft(')e(option)150 5340 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 -5121 y(If)38 b(a)h(command)f(is)g(follo)m(w)m(ed)j(b)m(y)d(a)h(`)p +(`)p Fs(-e)p Ft(')f(option)h(in)g(suc)m(h)f(subshells.)p +eop end +%%Page: 37 43 +TeXDict begin 37 42 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(37)275 299 +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 5230 y(input)e(for)g(the)h(command)f(is)h(the)g +(default)g(standard)150 408 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 5340 y(inherits)30 +b(the)f(in)m(v)m(ok)m(ed)h(command)150 518 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.)p eop end -%%Page: 37 43 -TeXDict begin 37 42 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(37)150 299 -y Fj(3.7.4)63 b(En)m(vironmen)m(t)150 446 y Ft(When)28 -b(a)i(program)e(is)h(in)m(v)m(ok)m(ed)h(it)f(is)g(giv)m(en)g(an)g(arra) -m(y)g(of)g(strings)f(called)i(the)f Fq(en)m(vironmen)m(t)r -Ft(.)41 b(This)28 b(is)h(a)150 555 y(list)i(of)g(name-v)-5 -b(alue)31 b(pairs,)f(of)h(the)f(form)g Fs(name=value)p -Ft(.)275 717 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 826 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 936 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 -1046 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 1155 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 -1265 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 1374 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 1484 y(mo)s(di\014ed)26 +(di\014ed)g(b)m(y)g(redirections.)150 738 y Fj(3.7.4)63 +b(En)m(vironmen)m(t)150 885 y Ft(When)28 b(a)i(program)e(is)h(in)m(v)m +(ok)m(ed)h(it)f(is)g(giv)m(en)g(an)g(arra)m(y)g(of)g(strings)f(called)i +(the)f Fq(en)m(vironmen)m(t)r Ft(.)41 b(This)28 b(is)h(a)150 +994 y(list)i(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f(form)g +Fs(name=value)p Ft(.)275 1149 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 1259 +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 +1368 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 1478 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 1588 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 1697 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 +1807 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 1916 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 1594 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 1755 +(plus)150 2026 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 2181 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 -1865 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h +2290 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 -1974 y(page)g(18.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g +2400 y(page)g(18.)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 2135 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(58\),)i -(then)e(all)g(parameter)150 2245 y(assignmen)m(ts)i(are)g(placed)h(in)e +(command.)275 2555 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(57\),)i +(then)e(all)g(parameter)150 2665 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 2355 y(command)g(name.)275 -2516 y(When)h(Bash)h(in)m(v)m(ok)m(es)i(an)e(external)h(command,)f(the) +(that)f(precede)g(the)150 2774 y(command)g(name.)275 +2929 y(When)h(Bash)h(in)m(v)m(ok)m(es)i(an)e(external)h(command,)f(the) g(v)-5 b(ariable)33 b(`)p Fs($_)p Ft(')f(is)g(set)h(to)f(the)g(full)g -(pathname)150 2626 y(of)f(the)f(command)g(and)g(passed)g(to)h(that)g -(command)f(in)g(its)h(en)m(vironmen)m(t.)150 2852 y Fj(3.7.5)63 -b(Exit)40 b(Status)150 2999 y Ft(The)26 b(exit)h(status)f(of)g(an)g +(pathname)150 3039 y(of)f(the)f(command)g(and)g(passed)g(to)h(that)g +(command)f(in)g(its)h(en)m(vironmen)m(t.)150 3258 y Fj(3.7.5)63 +b(Exit)40 b(Status)150 3405 y Ft(The)26 b(exit)h(status)f(of)g(an)g (executed)h(command)f(is)g(the)h(v)-5 b(alue)26 b(returned)f(b)m(y)h -(the)g Fq(w)m(aitpid)k Ft(system)d(call)g(or)150 3108 +(the)g Fq(w)m(aitpid)k Ft(system)d(call)g(or)150 3515 y(equiv)-5 b(alen)m(t)33 b(function.)45 b(Exit)32 b(statuses)g(fall)g (b)s(et)m(w)m(een)h(0)f(and)f(255,)i(though,)f(as)g(explained)g(b)s -(elo)m(w,)h(the)150 3218 y(shell)i(ma)m(y)g(use)f(v)-5 +(elo)m(w,)h(the)150 3624 y(shell)i(ma)m(y)g(use)f(v)-5 b(alues)35 b(ab)s(o)m(v)m(e)g(125)h(sp)s(ecially)-8 b(.)54 b(Exit)35 b(statuses)g(from)f(shell)h(builtins)f(and)f(comp)s(ound)150 -3328 y(commands)j(are)g(also)h(limited)g(to)g(this)f(range.)58 +3734 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 -3437 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 3599 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s +3844 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 3999 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 3708 y(A)e(non-zero)h(exit)g(status)g +(status)f(has)f(succeeded.)150 4108 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 3818 y(there)34 +(tuitiv)m(e)i(sc)m(heme)e(is)f(used)g(so)150 4218 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 3927 y(failure)37 b(mo)s(des.)61 b(When)37 +b(arious)150 4327 y(failure)37 b(mo)s(des.)61 b(When)37 b(a)g(command)g(terminates)h(on)f(a)g(fatal)i(signal)f(whose)f(n)m(um)m -(b)s(er)e(is)i Fq(N)10 b Ft(,)38 b(Bash)150 4037 y(uses)30 +(b)s(er)e(is)i Fq(N)10 b Ft(,)38 b(Bash)150 4437 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 4198 y(If)k(a)h(command)g(is)g(not)g(found,) +b(the)h(exit)g(status.)275 4592 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 4308 y(127.)42 b(If)30 b(a)h(command)f(is)g(found) +(a)j(status)f(of)150 4701 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 -4469 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f +4856 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 -4579 y(is)c(greater)i(than)e(zero.)275 4740 y(The)38 +4966 y(is)c(greater)i(than)e(zero.)275 5121 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 4850 +(commands)e(\(see)h(Section)h(3.2.4.2)h([Con-)150 5230 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 -4959 y(page)31 b(9\).)275 5121 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 5230 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 5340 y(return)29 -b(an)i(exit)g(status)g(of)f(2)h(to)g(indicate)g(incorrect)h(usage.)p -eop end +5340 y(page)31 b(9\).)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)150 299 y Fj(3.7.6)63 b(Signals)150 -446 y Ft(When)36 b(Bash)g(is)h(in)m(teractiv)m(e,)j(in)c(the)h(absence) -f(of)h(an)m(y)f(traps,)i(it)e(ignores)h Fs(SIGTERM)d -Ft(\(so)j(that)g(`)p Fs(kill)150 555 y(0)p Ft(')c(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 665 y Ft(builtin)24 b(is)h(in)m(terruptible\).)39 +TeXDict begin 38 43 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(38)275 299 +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 +408 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 518 y(return)29 b(an)i(exit)g(status)g(of)f(2)h +(to)g(indicate)g(incorrect)h(usage.)150 722 y Fj(3.7.6)63 +b(Signals)150 869 y Ft(When)36 b(Bash)g(is)h(in)m(teractiv)m(e,)j(in)c +(the)h(absence)f(of)h(an)m(y)f(traps,)i(it)e(ignores)h +Fs(SIGTERM)d Ft(\(so)j(that)g(`)p Fs(kill)150 979 y(0)p +Ft(')c(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 1088 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 775 y(In)31 +(out)h(of)f(an)m(y)h(executing)h(lo)s(ops.)150 1198 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 884 y(page)f(97\),)h(Bash)e(ignores)h +([Job)g(Con)m(trol],)150 1307 y(page)f(97\),)h(Bash)e(ignores)h Fs(SIGTTIN)p Ft(,)e Fs(SIGTTOU)p Ft(,)g(and)g Fs(SIGTSTP)p -Ft(.)275 1026 y(Non-builtin)i(commands)g(started)g(b)m(y)g(Bash)h(ha)m +Ft(.)275 1446 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 1136 y(b)m(y)37 b(the)h(shell)g(from)f(its)h(paren)m +b(inherited)150 1556 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 1246 y(ignore)f Fs(SIGINT)e +(async)m(hronous)c(commands)150 1666 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 1355 y(result)27 +(handlers.)55 b(Commands)35 b(run)f(as)i(a)150 1775 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 1465 y Fs(SIGTTOU)p Ft(,)h(and)g Fs(SIGTSTP)p -Ft(.)275 1607 y(The)h(shell)i(exits)g(b)m(y)f(default)g(up)s(on)f +Ft(,)150 1885 y Fs(SIGTTOU)p Ft(,)h(and)g Fs(SIGTSTP)p +Ft(.)275 2024 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 1717 y(resends)41 b(the)i +(in)m(teractiv)m(e)j(shell)150 2134 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 1826 y(ensure)32 b(that)h(they)g(receiv)m(e)i(the)e +Ft(to)150 2243 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 1936 y(to)i(a)g(particular) +g(sending)f(the)h Fs(SIGHUP)e Ft(signal)150 2353 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 -2045 y(Section)f(7.2)g([Job)f(Con)m(trol)h(Builtins],)g(page)g(98\))h +2462 y(Section)f(7.2)g([Job)f(Con)m(trol)h(Builtins],)g(page)g(98\))h (or)e(mark)m(ed)g(to)h(not)f(receiv)m(e)i Fs(SIGHUP)d -Ft(using)h Fs(disown)150 2155 y(-h)p Ft(.)275 2297 y(If)38 +Ft(using)h Fs(disown)150 2572 y(-h)p Ft(.)275 2711 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 -2407 y(Builtin],)31 b(page)g(62\),)h(Bash)f(sends)e(a)i +2821 y(Builtin],)31 b(page)g(61\),)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 2549 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g +e(shell)g(exits.)275 2960 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 2659 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g +m(h)h(a)g(trap)150 3069 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g (not)g(b)s(e)f(executed)i(un)m(til)f(the)g(command)f(completes.)55 -b(When)35 b(Bash)g(is)150 2768 y(w)m(aiting)j(for)f(an)g(async)m +b(When)35 b(Bash)g(is)150 3179 y(w)m(aiting)j(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 2878 y(whic)m(h)d(a)g(trap)g +(reception)g(of)f(a)g(signal)h(for)150 3289 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 -2987 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 3231 y Fr(3.8)68 b(Shell)45 -b(Scripts)150 3391 y Ft(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le) +3398 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 3638 y Fr(3.8)68 b(Shell)45 +b(Scripts)150 3797 y Ft(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le) f(con)m(taining)h(shell)f(commands.)40 b(When)29 b(suc)m(h)g(a)h -(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 3500 y(non-option)i +(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 3907 y(non-option)i (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(')g(option)g(is)g(supplied)150 -3610 y(\(see)25 b(Section)h(6.1)f([In)m(v)m(oking)h(Bash],)g(page)f +4016 y(\(see)25 b(Section)h(6.1)f([In)m(v)m(oking)h(Bash],)g(page)f (79\),)i(Bash)e(reads)f(and)g(executes)i(commands)e(from)g(the)h -(\014le,)150 3720 y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s +(\014le,)150 4126 y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s (eration)f(creates)i(a)e(non-in)m(teractiv)m(e)j(shell.)46 -b(The)31 b(shell)i(\014rst)e(searc)m(hes)150 3829 y(for)d(the)g(\014le) +b(The)31 b(shell)i(\014rst)e(searc)m(hes)150 4235 y(for)d(the)g(\014le) g(in)g(the)g(curren)m(t)f(directory)-8 b(,)30 b(and)d(lo)s(oks)i(in)e (the)i(directories)g(in)e Fs($PATH)g Ft(if)h(not)g(found)e(there.)275 -3971 y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f +4375 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 4081 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j +(\014le,)150 4484 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 4191 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m +(remain-)150 4594 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 4300 y(parameters)31 b(are)f(unset.)275 -4442 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m +(the)f(p)s(ositional)150 4703 y(parameters)31 b(are)f(unset.)275 +4842 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 -4552 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h +4952 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 4662 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 4804 -y Fs(filename)46 b Fi(arguments)150 4946 y Ft(is)30 b(equiv)-5 -b(alen)m(t)32 b(to)f(executing)390 5088 y Fs(bash)47 -b(filename)e Fi(arguments)150 5230 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 -5340 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)p eop end +(command,)h(it)150 5062 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 5201 +y Fs(filename)46 b Fi(arguments)150 5340 y Ft(is)30 b(equiv)-5 +b(alen)m(t)32 b(to)f(executing)p eop end %%Page: 39 45 TeXDict begin 39 44 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(39)150 299 -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 408 y([Bourne)30 b(Shell)h(Builtins],)g(page) -g(41\))h(are)e(retained)h(b)m(y)f(the)h(c)m(hild.)275 -543 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 -653 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 762 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 872 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 1006 y(The)40 b(argumen)m(ts)h(to)g(the)g(in)m +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(39)390 299 +y Fs(bash)47 b(filename)e Fi(arguments)150 433 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 543 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 653 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 +762 y([Bourne)30 b(Shell)h(Builtins],)g(page)g(40\))h(are)e(retained)h +(b)m(y)f(the)h(c)m(hild.)275 897 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 1006 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 +1116 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 1225 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 1360 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 1116 y(in)m(terpreter)33 b(name)h(on)f(the)g +(follo)m(wing)g(the)150 1469 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 1225 y(follo)m(w)m(ed)g +e(the)g(name)g(of)g(the)h(script)f(\014le,)150 1579 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 -1335 y(that)24 b(do)g(not)f(handle)g(it)h(themselv)m(es.)40 +1689 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 1445 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 1579 y(Bash)h(scripts)g +(the)f(in)m(terpreter)150 1798 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 1933 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 1689 y(`)p +(Bash)f(has)g(b)s(een)f(installed)i(in)150 2042 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 1798 y(under)29 b(another)h(shell.)p +(is)f(executed)150 2152 y(under)29 b(another)h(shell.)p eop end %%Page: 40 46 -TeXDict begin 40 45 bop 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)150 299 y Fo(4)80 +TeXDict begin 40 45 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(40)150 299 y Fo(4)80 b(Shell)53 b(Builtin)f(Commands)150 541 y Ft(Builtin)34 b(commands)f(are)h(con)m(tained)g(within)f(the)h(shell)g(itself.)50 b(When)34 b(the)f(name)h(of)f(a)h(builtin)f(com-)150 @@ -10349,7 +10370,7 @@ b(Builtin)150 870 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g (con)m(trol)i(facilities)g(\(see)f(Section)h(7.2)f([Job)f(Con)m(trol)h (Builtins],)150 1583 y(page)40 b(98\),)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 -(89\),)j(the)150 1692 y(command)23 b(history)h(\(see)g(Section)g(9.2)h +(90\),)j(the)150 1692 y(command)23 b(history)h(\(see)g(Section)g(9.2)h ([Bash)f(History)g(Builtins],)h(page)g(133\),)h(and)d(the)h (programmable)150 1802 y(completion)32 b(facilities)g(\(see)g(Section)f (8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(126\).)275 @@ -10402,20 +10423,20 @@ 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 5042 y(to)31 b Fs(source)p Ft(.)150 5204 y Fs(break)870 5340 y(break)46 b([)p Fi(n)11 b Fs(])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(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 408 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 518 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.)150 -677 y Fs(cd)870 812 y(cd)47 b([-L|[-P)f([-e]]])g([)p -Fi(directory)11 b Fs(])630 946 y Ft(Change)26 b(the)g(curren)m(t)g(w)m -(orking)g(directory)h(to)f Fq(directory)8 b Ft(.)40 b(If)25 -b Fq(directory)35 b Ft(is)26 b(not)g(supplied,)630 1056 -y(the)g(v)-5 b(alue)26 b(of)f(the)h Fs(HOME)e Ft(shell)i(v)-5 +%%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(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 408 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 518 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.)150 677 y Fs(cd)870 812 y(cd)47 b([-L|[-P)f([-e]]])g +([)p Fi(directory)11 b Fs(])630 946 y Ft(Change)26 b(the)g(curren)m(t)g +(w)m(orking)g(directory)h(to)f Fq(directory)8 b Ft(.)40 +b(If)25 b Fq(directory)35 b Ft(is)26 b(not)g(supplied,)630 +1056 y(the)g(v)-5 b(alue)26 b(of)f(the)h Fs(HOME)e Ft(shell)i(v)-5 b(ariable)26 b(is)g(used.)38 b(An)m(y)25 b(additional)i(argumen)m(ts)e (follo)m(wing)630 1166 y Fq(directory)39 b Ft(are)31 b(ignored.)41 b(If)30 b(the)h(shell)g(v)-5 b(ariable)31 @@ -10479,9 +10500,9 @@ b Fs(]])630 5230 y Ft(If)36 b Fq(command)k Ft(is)c(supplied,)h(it)g 630 5340 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)p eop end -%%Page: 43 49 -TeXDict begin 43 48 bop 150 -116 a Ft(Chapter)30 b(4:)h(Shell)f -(Builtin)h(Commands)2079 b(43)630 299 y(zeroth)36 b(argumen)m(t)g +%%Page: 42 48 +TeXDict begin 42 47 bop 150 -116 a Ft(Chapter)30 b(4:)h(Shell)f +(Builtin)h(Commands)2079 b(42)630 299 y(zeroth)36 b(argumen)m(t)g (passed)f(to)h Fq(command)t Ft(.)56 b(This)34 b(is)i(what)f(the)h Fs(login)e Ft(program)h(do)s(es.)630 408 y(The)e(`)p Fs(-c)p Ft(')h(option)g(causes)g Fq(command)j Ft(to)e(b)s(e)e(executed) @@ -10563,28 +10584,29 @@ Fs(getopts)39 b Ft(exits)j(with)f(a)h(return)e(v)-5 b(alue)630 Ft(is)h(set)h(to)g(the)g(index)f(of)g(the)h(\014rst)f(non-option)g (argumen)m(t,)630 5340 y(and)g Fq(name)35 b Ft(is)c(set)g(to)g(`)p Fs(?)p Ft('.)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 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 408 y(giv)m(en)h(in)f Fq(args)t Ft(,)h Fs(getopts)e -Ft(parses)g(those)i(instead.)630 540 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 -650 y(colon,)g Fq(silen)m(t)h Ft(error)d(rep)s(orting)f(is)i(used.)45 -b(In)31 b(normal)h(op)s(eration,)h(diagnostic)h(messages)630 -759 y(are)c(prin)m(ted)e(when)g(in)m(v)-5 b(alid)30 b(options)g(or)f -(missing)g(option)g(argumen)m(ts)h(are)f(encoun)m(tered.)630 -869 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 978 y(the)c(\014rst)e(c)m(haracter)j(of)f -Fs(optstring)d Ft(is)i(not)h(a)f(colon.)630 1110 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 1219 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 1329 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 +%%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)630 299 y Fs(getopts)27 +b 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 408 y(giv)m(en)h(in)f +Fq(args)t Ft(,)h Fs(getopts)e Ft(parses)g(those)i(instead.)630 +540 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 650 y(colon,)g Fq(silen)m(t)h +Ft(error)d(rep)s(orting)f(is)i(used.)45 b(In)31 b(normal)h(op)s +(eration,)h(diagnostic)h(messages)630 759 y(are)c(prin)m(ted)e(when)g +(in)m(v)-5 b(alid)30 b(options)g(or)f(missing)g(option)g(argumen)m(ts)h +(are)f(encoun)m(tered.)630 869 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 978 y(the)c(\014rst)e(c)m +(haracter)j(of)f Fs(optstring)d Ft(is)i(not)h(a)f(colon.)630 +1110 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 1219 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 +1329 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 1461 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 1570 y(\(`)p Fs(?)p Ft('\))35 b(is)g(placed)g(in)g Fq(name)5 @@ -10652,9 +10674,9 @@ b(If)26 b(no)h Fq(name)32 b Ft(argumen)m(ts)26 b(are)h(giv)m(en,)i(or) 630 5340 y(if)h(the)h(`)p Fs(-p)p Ft(')f(option)h(is)g(supplied,)e(a)i (list)g(of)g(all)g(readonly)f(names)h(is)f(prin)m(ted.)41 b(The)30 b(other)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(options)36 +%%Page: 44 50 +TeXDict begin 44 49 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(44)630 299 y(options)36 b(ma)m(y)g(b)s(e)g(used)f(to)h(restrict)h(the)f(output)f(to)h(a)h (subset)e(of)h(the)g(set)g(of)g(readonly)630 408 y(names.)63 b(The)37 b(`)p Fs(-p)p Ft(')h(option)g(causes)g(output)f(to)i(b)s(e)e @@ -10706,10 +10728,10 @@ Fs($#)p Ft(,)g(the)g(p)s(ositional)g(parameters)g(are)h(not)630 (is)f(assumed)g(to)h(b)s(e)f(1.)48 b(The)32 b(return)g(status)h(is)f (zero)630 3214 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 -3367 y Fs(test[B)150 3477 y([)870 3608 y(test)47 b Fi(expr)630 -3740 y Ft(Ev)-5 b(aluate)43 b(a)f(conditional)h(expression)f -Fq(expr)48 b Ft(and)41 b(return)g(a)h(status)g(of)g(0)g(\(true\))h(or)f -(1)630 3850 y(\(false\).)g(Eac)m(h)31 b(op)s(erator)f(and)f(op)s(erand) +3367 y Fs(test)150 3477 y([)870 3608 y(test)47 b Fi(expr)630 +3740 y Ft(Ev)-5 b(aluate)40 b(a)f(conditional)h(express)f(ion)g +Fq(expr)45 b Ft(and)38 b(return)g(a)h(status)g(of)g(0)g(\(true\))h(or)f +(1)630 3850 y(\(false\).)j(Eac)m(h)31 b(op)s(erator)f(and)f(op)s(erand) g(m)m(ust)h(b)s(e)f(a)i(separate)g(argumen)m(t.)41 b(Expressions)630 3959 y(are)26 b(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s (elo)m(w)h(in)g(Section)h(6.4)h([Bash)e(Conditional)630 @@ -10734,10 +10756,10 @@ b(of)f(op)s(erators.)630 5230 y Fi(expr1)39 b Fs(-a)30 b Fi(expr2)1110 5340 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.)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)630 299 y Fi(expr1)39 b Fs(-o)30 -b Fi(expr2)1110 408 y Ft(T)-8 b(rue)30 b(if)g(either)h +%%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 Fi(expr1)39 +b Fs(-o)30 b Fi(expr2)1110 408 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 568 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) @@ -10791,1488 +10813,1514 @@ y(using)30 b(ASCI)s(I)f(ordering.)150 4802 y Fs(times)870 (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 5181 y(return)29 b(status)i(is)f(zero.)150 5340 y Fs(trap)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)870 299 y Fs(trap)47 +%%Page: 46 52 +TeXDict begin 46 51 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(46)870 299 y Fs(trap)47 b([-lp])f([)p Fi(arg)11 b Fs(])46 b([)p Fi(sigspec)56 -b Fs(...)o(])630 427 y Ft(The)43 b(commands)f(in)h Fq(arg)51 +b Fs(...)o(])630 457 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 536 y(signal)36 b Fq(sigsp)s(ec)6 b +(receiv)m(es)630 567 y(signal)36 b Fq(sigsp)s(ec)6 b Ft(.)55 b(If)35 b Fq(arg)44 b Ft(is)35 b(absen)m(t)h(\(and)f(there)g (is)g(a)h(single)g Fq(sigsp)s(ec)6 b Ft(\))35 b(or)h(equal)f(to)i(`)p -Fs(-)p Ft(',)630 646 y(eac)m(h)28 b(sp)s(eci\014ed)e(signal's)h(disp)s +Fs(-)p Ft(',)630 676 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 756 y(started.)63 b(If)37 b +(the)i(shell)g(w)m(as)630 786 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 -865 y(ignored)36 b(b)m(y)g(the)g(shell)g(and)g(commands)f(it)i(in)m(v)m +896 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 975 y(has)e(b)s(een)g(supplied,)f(the)i(shell)f +(`)p Fs(-p)p Ft(')630 1005 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 1084 y Fq(sigsp)s(ec)6 b Ft(.)40 b(If)28 b(no)g(argumen)m(ts)h(are) +630 1115 y Fq(sigsp)s(ec)6 b Ft(.)40 b(If)28 b(no)g(argumen)m(ts)h(are) g(supplied,)f(or)g(only)h(`)p Fs(-p)p Ft(')f(is)g(giv)m(en,)i -Fs(trap)e Ft(prin)m(ts)g(the)g(list)630 1194 y(of)g(commands)f(asso)s +Fs(trap)e Ft(prin)m(ts)g(the)g(list)630 1224 y(of)g(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 1303 y(as)34 b(shell)g(input.)51 +(that)h(ma)m(y)h(b)s(e)e(reused)630 1334 y(as)34 b(shell)g(input.)51 b(The)33 b(`)p Fs(-l)p Ft(')h(option)g(causes)h(the)f(shell)g(to)h -(prin)m(t)e(a)i(list)f(of)g(signal)h(names)630 1413 y(and)j(their)h +(prin)m(t)e(a)i(list)f(of)g(signal)h(names)630 1443 y(and)j(their)h (corresp)s(onding)f(n)m(um)m(b)s(ers.)65 b(Eac)m(h)39 b Fq(sigsp)s(ec)45 b Ft(is)39 b(either)g(a)g(signal)h(name)f(or)g(a)630 -1523 y(signal)27 b(n)m(um)m(b)s(er.)39 b(Signal)27 b(names)f(are)h +1553 y(signal)27 b(n)m(um)m(b)s(er.)39 b(Signal)27 b(names)f(are)h (case)h(insensitiv)m(e)g(and)e(the)g Fs(SIG)g Ft(pre\014x)g(is)h -(optional.)630 1650 y(If)35 b(a)g Fq(sigsp)s(ec)41 b +(optional.)630 1711 y(If)35 b(a)g Fq(sigsp)s(ec)41 b Ft(is)35 b Fs(0)g Ft(or)g Fs(EXIT)p Ft(,)g Fq(arg)43 b Ft(is)35 b(executed)h(when)e(the)h(shell)h(exits.)55 -b(If)35 b(a)g Fq(sigsp)s(ec)41 b Ft(is)630 1760 y Fs(DEBUG)p +b(If)35 b(a)g Fq(sigsp)s(ec)41 b Ft(is)630 1821 y Fs(DEBUG)p Ft(,)32 b(the)g(command)g Fq(arg)40 b Ft(is)33 b(executed)g(b)s(efore)f (ev)m(ery)h(simple)f(command,)h Fs(for)e Ft(com-)630 -1870 y(mand,)d Fs(case)g Ft(command,)h Fs(select)e Ft(command,)i(ev)m -(ery)h(arithmetic)g Fs(for)d Ft(command,)j(and)630 1979 +1931 y(mand,)d Fs(case)g Ft(command,)h Fs(select)e Ft(command,)i(ev)m +(ery)h(arithmetic)g Fs(for)d Ft(command,)j(and)630 2040 y(b)s(efore)22 b(the)g(\014rst)f(command)h(executes)i(in)e(a)g(shell)h (function.)37 b(Refer)22 b(to)h(the)g(description)f(of)630 -2089 y(the)i Fs(extdebug)d Ft(option)j(to)h(the)f Fs(shopt)e +2150 y(the)i Fs(extdebug)d Ft(option)j(to)h(the)f Fs(shopt)e Ft(builtin)h(\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)630 -2198 y(page)33 b(62\))g(for)f(details)h(of)f(its)h(e\013ect)g(on)f(the) +2259 y(page)33 b(61\))g(for)f(details)h(of)f(its)h(e\013ect)g(on)f(the) g Fs(DEBUG)f Ft(trap.)46 b(If)31 b(a)i Fq(sigsp)s(ec)38 -b Ft(is)32 b Fs(RETURN)p Ft(,)f(the)630 2308 y(command)h +b Ft(is)32 b Fs(RETURN)p Ft(,)f(the)630 2369 y(command)h Fq(arg)41 b Ft(is)33 b(executed)g(eac)m(h)h(time)f(a)g(shell)g -(function)g(or)f(a)h(script)g(executed)g(with)630 2418 +(function)g(or)f(a)h(script)g(executed)g(with)630 2478 y(the)e Fs(.)f Ft(or)g Fs(source)f Ft(builtins)g(\014nishes)h -(executing.)630 2545 y(If)g(a)i Fq(sigsp)s(ec)k Ft(is)31 -b Fs(ERR)p Ft(,)f(the)h(command)g Fq(arg)39 b Ft(is)31 -b(executed)g(whenev)m(er)g(a)g(simple)g(command)630 2655 -y(has)k(a)h(non-zero)h(exit)f(status,)i(sub)5 b(ject)35 -b(to)h(the)g(follo)m(wing)h(conditions.)57 b(The)35 b -Fs(ERR)g Ft(trap)630 2765 y(is)30 b(not)f(executed)i(if)e(the)h(failed) -g(command)g(is)f(part)h(of)f(the)h(command)f(list)i(immediately)630 -2874 y(follo)m(wing)47 b(an)d Fs(until)g Ft(or)h Fs(while)f -Ft(k)m(eyw)m(ord,)49 b(part)c(of)g(the)h(test)g(follo)m(wing)g(the)f -Fs(if)g Ft(or)630 2984 y Fs(elif)d Ft(reserv)m(ed)i(w)m(ords,)j(part)c -(of)h(a)g(command)f(executed)i(in)e(a)h Fs(&&)f Ft(or)h -Fs(||)f Ft(list,)k(or)d(if)630 3093 y(the)c(command's)g(return)f -(status)h(is)g(b)s(eing)f(in)m(v)m(erted)i(using)f Fs(!)p -Ft(.)68 b(These)40 b(are)g(the)h(same)630 3203 y(conditions)31 -b(ob)s(ey)m(ed)f(b)m(y)h(the)f Fs(errexit)f Ft(option.)630 -3331 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 3440 y(signals)28 b(that)f(are)h(not)f(b)s(eing)g -(ignored)g(are)g(reset)h(to)g(their)f(original)h(v)-5 -b(alues)28 b(in)e(a)i(subshell)630 3550 y(or)i(subshell)g(en)m -(vironmen)m(t)h(when)e(one)i(is)f(created.)630 3678 y(The)g(return)f +(executing.)630 2637 y(If)20 b(a)i Fq(sigsp)s(ec)27 b +Ft(is)21 b Fs(ERR)p Ft(,)h(the)f(command)g Fq(arg)29 +b Ft(is)21 b(executed)h(whenev)m(er)e(a)i(pip)s(eline)e(\(whic)m(h)h +(ma)m(y)630 2746 y(consist)35 b(of)g(a)f(single)h(simple)g(command\),)h +(a)e(list,)j(or)d(a)h(comp)s(ound)e(command)h(returns)630 +2856 y(a)41 b(non-zero)g(exit)h(status,)h(sub)5 b(ject)41 +b(to)g(the)g(follo)m(wing)h(conditions.)72 b(The)40 b +Fs(ERR)f Ft(trap)i(is)630 2966 y(not)c(executed)h(if)f(the)h(failed)f +(command)g(is)g(part)g(of)h(the)f(command)g(list)h(immediately)630 +3075 y(follo)m(wing)30 b(an)e Fs(until)f Ft(or)i Fs(while)e +Ft(k)m(eyw)m(ord,)i(part)g(of)f(the)h(test)g(follo)m(wing)h(the)f +Fs(if)f Ft(or)g Fs(elif)630 3185 y Ft(reserv)m(ed)45 +b(w)m(ords,)j(part)c(of)h(a)g(command)g(executed)g(in)g(a)g +Fs(&&)f Ft(or)h Fs(||)f Ft(list)h(except)h(the)630 3294 +y(command)28 b(follo)m(wing)j(the)d(\014nal)h Fs(&&)f +Ft(or)g Fs(||)p Ft(,)h(an)m(y)g(command)f(in)h(a)g(pip)s(eline)f(but)g +(the)h(last,)630 3404 y(or)d(if)g(the)f(command's)h(return)f(status)h +(is)g(b)s(eing)f(in)m(v)m(erted)i(using)e Fs(!)p Ft(.)39 +b(These)25 b(are)i(the)f(same)630 3513 y(conditions)31 +b(ob)s(ey)m(ed)f(b)m(y)h(the)f Fs(errexit)f Ft(\(`)p +Fs(-e)p Ft('\))i(option.)630 3672 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 3781 y(signals)28 b(that)f(are)h(not) +f(b)s(eing)g(ignored)g(are)g(reset)h(to)g(their)f(original)h(v)-5 +b(alues)28 b(in)e(a)i(subshell)630 3891 y(or)i(subshell)g(en)m +(vironmen)m(t)h(when)e(one)i(is)f(created.)630 4049 y(The)g(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 3824 y Fs(umask)870 3952 y(umask)46 b([-p])h([-S])g([)p -Fi(mode)11 b Fs(])630 4080 y Ft(Set)29 b(the)h(shell)f(pro)s(cess's)g +b(signal.)150 4256 y Fs(umask)870 4415 y(umask)46 b([-p])h([-S])g([)p +Fi(mode)11 b Fs(])630 4573 y Ft(Set)29 b(the)h(shell)f(pro)s(cess's)g (\014le)g(creation)h(mask)f(to)h Fq(mo)s(de)5 b Ft(.)40 b(If)28 b Fq(mo)s(de)34 b Ft(b)s(egins)29 b(with)f(a)i(digit,)630 -4189 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s +4682 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 4299 y(mask)i(similar)g(to)g(that)h(accepted)g(b)m(y)f +(mo)s(de)630 4792 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 4408 y(curren)m(t)36 +b Ft(is)28 b(omitted,)j(the)630 4902 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 4518 y Fq(mo)s(de)k Ft(argumen)m(t,)d(the)e(mask)g(is)g(prin)m +(a)630 5011 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 4628 y(is)f(supplied,)f(and)g +Fs(-p)p Ft(')g(option)630 5121 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 4737 y(as)e(input.)41 +(form)f(that)h(ma)m(y)g(b)s(e)f(reused)630 5230 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 4847 y +(successfully)g(c)m(hanged)g(or)g(if)g(no)630 5340 y Fq(mo)s(de)k Ft(argumen)m(t)c(is)f(supplied,)g(and)f(non-zero)i -(otherwise.)630 4975 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 5084 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 5194 y(of)d Fs(755)p -Ft(.)150 5340 y Fs(unset)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)870 299 y Fs(unset)46 b([-fnv])g([)p -Fi(name)11 b Fs(])630 426 y Ft(Remo)m(v)m(e)32 b(eac)m(h)g(v)-5 -b(ariable)32 b(or)e(function)h Fq(name)5 b Ft(.)42 b(If)30 -b(the)h(`)p Fs(-v)p Ft(')f(option)h(is)g(giv)m(en,)h(eac)m(h)g -Fq(name)630 536 y Ft(refers)20 b(to)i(a)f(shell)g(v)-5 -b(ariable)21 b(and)g(that)g(v)-5 b(ariable)22 b(is)e(rem)m(v)m(o)m(v)m -(ed.)40 b(If)20 b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g(giv)m(en,)630 -645 y(the)37 b Fq(name)5 b Ft(s)37 b(refer)f(to)i(shell)f(functions,)h +(otherwise.)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(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 +408 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 518 y(of)d Fs(755)p Ft(.)150 678 y Fs(unset)870 +812 y(unset)46 b([-fnv])g([)p Fi(name)11 b Fs(])630 947 +y Ft(Remo)m(v)m(e)32 b(eac)m(h)g(v)-5 b(ariable)32 b(or)e(function)h +Fq(name)5 b Ft(.)42 b(If)30 b(the)h(`)p Fs(-v)p Ft(')f(option)h(is)g +(giv)m(en,)h(eac)m(h)g Fq(name)630 1056 y Ft(refers)20 +b(to)i(a)f(shell)g(v)-5 b(ariable)21 b(and)g(that)g(v)-5 +b(ariable)22 b(is)e(rem)m(v)m(o)m(v)m(ed.)40 b(If)20 +b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g(giv)m(en,)630 +1166 y(the)37 b Fq(name)5 b Ft(s)37 b(refer)f(to)i(shell)f(functions,)h (and)e(the)h(function)g(de\014nition)f(is)h(remo)m(v)m(ed.)61 -b(If)630 755 y(the)30 b(`)p Fs(-n)p Ft(')f(option)h(is)g(supplied,)e +b(If)630 1276 y(the)30 b(`)p Fs(-n)p Ft(')f(option)h(is)g(supplied,)e (and)h Fq(name)35 b Ft(is)30 b(a)g(v)-5 b(ariable)30 -b(with)f(the)h Fq(nameref)47 b Ft(attribute,)630 864 +b(with)f(the)h Fq(nameref)47 b Ft(attribute,)630 1385 y Fq(name)39 b Ft(will)33 b(b)s(e)g(unset)g(rather)h(than)f(the)g(v)-5 b(ariable)35 b(it)f(references.)50 b(`)p Fs(-n)p Ft(')33 -b(has)h(no)f(e\013ect)i(if)630 974 y(the)h(`)p Fs(-f)p +b(has)h(no)f(e\013ect)i(if)630 1495 y(the)h(`)p Fs(-f)p Ft(')g(option)h(is)f(supplied.)56 b(If)36 b(no)g(options)g(are)g (supplied,)h(eac)m(h)g Fq(name)k Ft(refers)36 b(to)h(a)630 -1084 y(v)-5 b(ariable;)37 b(if)d(there)g(is)g(no)g(v)-5 +1604 y(v)-5 b(ariable;)37 b(if)d(there)g(is)g(no)g(v)-5 b(ariable)34 b(b)m(y)g(that)h(name,)g(an)m(y)f(function)g(with)f(that)i -(name)f(is)630 1193 y(unset.)46 b(Readonly)33 b(v)-5 +(name)f(is)630 1714 y(unset.)46 b(Readonly)33 b(v)-5 b(ariables)33 b(and)e(functions)h(ma)m(y)h(not)g(b)s(e)e(unset.)47 -b(The)31 b(return)h(status)630 1303 y(is)e(zero)i(unless)d(a)i -Fq(name)36 b Ft(is)30 b(readonly)-8 b(.)150 1520 y Fr(4.2)68 -b(Bash)45 b(Builtin)g(Commands)150 1680 y Ft(This)c(section)h(describ)s +b(The)31 b(return)h(status)630 1824 y(is)e(zero)i(unless)d(a)i +Fq(name)36 b Ft(is)30 b(readonly)-8 b(.)150 2056 y Fr(4.2)68 +b(Bash)45 b(Builtin)g(Commands)150 2216 y Ft(This)c(section)h(describ)s (es)f(builtin)f(commands)h(whic)m(h)g(are)h(unique)e(to)j(or)e(ha)m(v)m -(e)h(b)s(een)f(extended)g(in)150 1789 y(Bash.)g(Some)30 +(e)h(b)s(een)f(extended)g(in)150 2325 y(Bash.)g(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 1934 y Fs(alias)870 2061 +Fl(posix)e Ft(standard.)150 2485 y Fs(alias)870 2619 y(alias)46 b([-p])h([)p Fi(name)11 b Fs([=)p Fi(value)g -Fs(])43 b(...)o(])630 2188 y Ft(Without)h(argumen)m(ts)f(or)g(with)g +Fs(])43 b(...)o(])630 2754 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 2298 y(on)36 b(the)g(standard)f(output)h(in)f +(list)h(of)f(aliases)630 2864 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 2407 y(argumen)m(ts)29 b(are)g(supplied,)f(an)h +(input.)56 b(If)630 2973 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 2517 y(If)39 +b Fq(v)-5 b(alue)35 b Ft(is)29 b(giv)m(en.)630 3083 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 2627 y(describ)s(ed)29 b(in)h(Section)i(6.6)f -([Aliases],)h(page)f(87.)150 2771 y Fs(bind)870 2898 +b(Aliases)41 b(are)630 3192 y(describ)s(ed)29 b(in)h(Section)i(6.6)f +([Aliases],)h(page)f(87.)150 3352 y Fs(bind)870 3487 y(bind)47 b([-m)g Fi(keymap)11 b Fs(])45 b([-lpsvPSVX])870 -3008 y(bind)i([-m)g Fi(keymap)11 b Fs(])45 b([-q)i Fi(function)11 +3596 y(bind)i([-m)g Fi(keymap)11 b Fs(])45 b([-q)i Fi(function)11 b Fs(])45 b([-u)h Fi(function)11 b Fs(])45 b([-r)i Fi(keyseq)11 -b Fs(])870 3118 y(bind)47 b([-m)g Fi(keymap)11 b Fs(])45 -b(-f)i Fi(filename)870 3227 y Fs(bind)g([-m)g Fi(keymap)11 -b Fs(])45 b(-x)i Fi(keyseq:shell-command)870 3337 y Fs(bind)g([-m)g +b Fs(])870 3706 y(bind)47 b([-m)g Fi(keymap)11 b Fs(])45 +b(-f)i Fi(filename)870 3815 y Fs(bind)g([-m)g Fi(keymap)11 +b Fs(])45 b(-x)i Fi(keyseq:shell-command)870 3925 y Fs(bind)g([-m)g Fi(keymap)11 b Fs(])45 b Fi(keyseq:function-name)870 -3446 y Fs(bind)i Fi(readline-command)630 3573 y Ft(Displa)m(y)22 +4035 y Fs(bind)i Fi(readline-command)630 4169 y Ft(Displa)m(y)22 b(curren)m(t)f(Readline)h(\(see)f(Chapter)g(8)g([Command)f(Line)h -(Editing],)j(page)e(101\))g(k)m(ey)630 3683 y(and)36 +(Editing],)j(page)e(101\))g(k)m(ey)630 4279 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 3793 y(or)44 b(set)h(a)g +(Readline)g(function)f(or)h(macro,)630 4388 y(or)44 b(set)h(a)g (Readline)f(v)-5 b(ariable.)83 b(Eac)m(h)45 b(non-option)g(argumen)m(t) -f(is)g(a)h(command)f(as)g(it)630 3902 y(w)m(ould)e(app)s(ear)f(in)h(a)h +f(is)g(a)h(command)f(as)g(it)630 4498 y(w)m(ould)e(app)s(ear)f(in)h(a)h (Readline)g(initialization)i(\014le)d(\(see)h(Section)g(8.3)g -([Readline)g(Init)630 4012 y(File],)c(page)d(104\),)j(but)c(eac)m(h)h +([Readline)g(Init)630 4607 y(File],)c(page)d(104\),)j(but)c(eac)m(h)h (binding)f(or)g(command)h(m)m(ust)f(b)s(e)g(passed)g(as)h(a)g(separate) -630 4121 y(argumen)m(t;)31 b(e.g.,)h(`)p Fs -("\\C-x\\C-r":re-read-init-f)o(ile)p Ft('.)630 4249 y(Options,)e(if)h +630 4717 y(argumen)m(t;)31 b(e.g.,)h(`)p Fs +("\\C-x\\C-r":re-read-init-f)o(ile)p Ft('.)630 4852 y(Options,)e(if)h (supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630 -4393 y Fs(-m)e Fi(keymap)1110 4503 y Ft(Use)54 b Fq(k)m(eymap)j +5011 y Fs(-m)e Fi(keymap)1110 5121 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 4612 y(bindings.)46 b(Acceptable)34 +(subsequen)m(t)1110 5230 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 4722 y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p +Ft(,)1110 5340 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 4832 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 4941 -y(to)31 b Fs(emacs-standard)p Ft(.)630 5086 y Fs(-l)384 -b Ft(List)31 b(the)f(names)g(of)h(all)g(Readline)g(functions.)630 -5230 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 -5340 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.)p eop end +Ft(,)f(and)p eop end +%%Page: 48 54 +TeXDict begin 48 53 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(48)1110 299 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 408 y(to)31 b Fs(emacs-standard)p +Ft(.)630 563 y Fs(-l)384 b Ft(List)31 b(the)f(names)g(of)h(all)g +(Readline)g(functions.)630 718 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 827 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 982 +y Fs(-P)384 b Ft(List)31 b(curren)m(t)f(Readline)h(function)f(names)g +(and)g(bindings.)630 1137 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 1247 +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 1401 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 1556 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 +1666 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 1775 +y(Readline)d(initialization)i(\014le.)630 1930 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 2039 y(they)31 b(output.)630 +2194 y Fs(-f)f Fi(filename)1110 2304 y Ft(Read)h(k)m(ey)g(bindings)e +(from)h Fq(\014lename)5 b Ft(.)630 2458 y Fs(-q)30 b +Fi(function)1110 2568 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 2723 +y Fs(-u)g Fi(function)1110 2832 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 2987 +y Fs(-r)g Fi(keyseq)1110 3097 y Ft(Remo)m(v)m(e)i(an)m(y)f(curren)m(t)f +(binding)f(for)h Fq(k)m(eyseq)r Ft(.)630 3251 y Fs(-x)g +Fi(keyseq:shell-command)1110 3361 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 3471 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 3580 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 3690 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 +3799 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 3909 +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 +4018 y(editing)h(state.)630 4173 y Fs(-X)384 b Ft(List)27 +b(all)i(k)m(ey)f(sequences)f(b)s(ound)e(to)j(shell)g(commands)e(and)h +(the)g(asso)s(ciated)1110 4283 y(commands)j(in)g(a)h(format)g(that)f +(can)h(b)s(e)f(reused)f(as)i(input.)630 4437 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 +4592 y Fs(builtin)870 4724 y(builtin)46 b([)p Fi(shell-builtin)54 +b Fs([)p Fi(args)11 b Fs(]])630 4856 y Ft(Run)35 b(a)h(shell)h +(builtin,)g(passing)f(it)g Fq(args)t Ft(,)i(and)e(return)f(its)h(exit)h +(status.)58 b(This)36 b(is)g(useful)630 4966 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 5076 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 5185 y(zero)e(if)g +Fq(shell-builtin)f Ft(is)g(not)h(a)g(shell)f(builtin)g(command.)150 +5340 y Fs(caller)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)630 299 y Fs(-P)384 -b Ft(List)31 b(curren)m(t)f(Readline)h(function)f(names)g(and)g -(bindings.)630 458 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 568 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 -727 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 886 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 995 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 1105 y(Readline)d(initialization)i(\014le.) -630 1264 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 -1374 y(they)31 b(output.)630 1533 y Fs(-f)f Fi(filename)1110 -1642 y Ft(Read)h(k)m(ey)g(bindings)e(from)h Fq(\014lename)5 -b Ft(.)630 1801 y Fs(-q)30 b Fi(function)1110 1911 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 2070 y Fs(-u)g Fi(function)1110 -2180 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 2339 y Fs(-r)g Fi(keyseq)1110 -2448 y Ft(Remo)m(v)m(e)i(an)m(y)f(curren)m(t)f(binding)f(for)h -Fq(k)m(eyseq)r Ft(.)630 2607 y Fs(-x)g Fi(keyseq:shell-command)1110 -2717 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 -2826 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 2936 -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 3046 -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 3155 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 3265 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 3374 y(editing)h(state.) -630 3534 y Fs(-X)384 b Ft(List)27 b(all)i(k)m(ey)f(sequences)f(b)s -(ound)e(to)j(shell)g(commands)e(and)h(the)g(asso)s(ciated)1110 -3643 y(commands)j(in)g(a)h(format)g(that)f(can)h(b)s(e)f(reused)f(as)i -(input.)630 3802 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 3961 y Fs(builtin)870 4096 y(builtin)46 b([)p -Fi(shell-builtin)54 b Fs([)p Fi(args)11 b Fs(]])630 4230 -y Ft(Run)35 b(a)h(shell)h(builtin,)g(passing)f(it)g Fq(args)t -Ft(,)i(and)e(return)f(its)h(exit)h(status.)58 b(This)36 -b(is)g(useful)630 4340 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 -4449 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 -4559 y(zero)e(if)g Fq(shell-builtin)f Ft(is)g(not)h(a)g(shell)f -(builtin)g(command.)150 4718 y Fs(caller)870 4852 y(caller)46 -b([)p Fi(expr)11 b Fs(])630 4986 y Ft(Returns)34 b(the)g(con)m(text)j +b(Shell)30 b(Builtin)h(Commands)2069 b(49)870 299 y Fs(caller)46 +b([)p Fi(expr)11 b Fs(])630 429 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 5096 y(executed)c(with)f(the)h Fs(.)f -Ft(or)g Fs(source)f Ft(builtins\).)630 5230 y(Without)45 +(or)h(a)g(script)630 539 y(executed)c(with)f(the)h Fs(.)f +Ft(or)g Fs(source)f Ft(builtins\).)630 669 y(Without)45 b Fq(expr)7 b Ft(,)46 b Fs(caller)d Ft(displa)m(ys)h(the)g(line)g(n)m (um)m(b)s(er)f(and)g(source)h(\014lename)h(of)f(the)630 -5340 y(curren)m(t)35 b(subroutine)f(call.)56 b(If)35 -b(a)h(non-negativ)m(e)h(in)m(teger)g(is)e(supplied)f(as)h -Fq(expr)7 b Ft(,)36 b Fs(caller)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(displa)m(ys)41 b(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 408 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f +778 y(curren)m(t)35 b(subroutine)f(call.)56 b(If)35 b(a)h(non-negativ)m +(e)h(in)m(teger)g(is)e(supplied)f(as)h Fq(expr)7 b Ft(,)36 +b Fs(caller)630 888 y Ft(displa)m(ys)41 b(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 998 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 518 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h +(y)630 1107 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 653 y(The)e(return)f(v)-5 b(alue)29 b(is)h(0)f(unless)g(the)g +630 1237 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 763 y Ft(do)s(es)g(not)h(corresp)s(ond)e(to)i(a)g(v)-5 +Fq(expr)630 1347 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 -924 y Fs(command)870 1060 y(command)46 b([-pVv])g Fi(command)56 -b Fs([)p Fi(arguments)g Fs(...)o(])630 1195 y Ft(Runs)31 +1498 y Fs(command)870 1628 y(command)46 b([-pVv])g Fi(command)56 +b Fs([)p Fi(arguments)g Fs(...)o(])630 1758 y Ft(Runs)31 b Fq(command)36 b Ft(with)d Fq(argumen)m(ts)j Ft(ignoring)d(an)m(y)g -(shell)g(function)f(named)g Fq(command)t Ft(.)630 1305 +(shell)g(function)f(named)g Fq(command)t Ft(.)630 1867 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 1414 y(executed.)g(If)23 +h(searc)m(hing)h(the)f Fs(PATH)f Ft(are)630 1977 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 -1524 y(function)33 b(will)g(execute)i(the)f(external)g(command)f +2087 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 -1633 y(recursiv)m(ely)-8 b(.)84 b(The)44 b(`)p Fs(-p)p +2196 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 1743 y(guaran)m(teed)35 +b(alue)45 b(for)f Fs(PATH)g Ft(that)h(is)630 2306 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 1852 +b(The)33 b(return)g(status)h(in)f(this)h(case)630 2415 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 -1962 y Fq(command)34 b Ft(otherwise.)630 2097 y(If)25 +2525 y Fq(command)34 b Ft(otherwise.)630 2655 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 2207 y(The)i(`)p +Fq(command)i Ft(is)d(prin)m(ted.)630 2765 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 2317 y(to)36 +(the)f(command)g(or)g(\014le)g(name)g(used)630 2874 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 2426 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e +(ose)630 2984 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 -2536 y(non-zero)31 b(if)f(not.)150 2697 y Fs(declare)870 -2832 y(declare)46 b([-aAfFgilnrtux])d([-p])k([)p Fi(name)11 -b Fs([=)p Fi(value)g Fs(])43 b(...)o(])630 2968 y Ft(Declare)29 +3093 y(non-zero)31 b(if)f(not.)150 3244 y Fs(declare)870 +3374 y(declare)46 b([-aAfFgilnrtux])d([-p])k([)p Fi(name)11 +b Fs([=)p Fi(value)g Fs(])43 b(...)o(])630 3504 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 3077 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31 -b(instead.)630 3213 y(The)c(`)p Fs(-p)p Ft(')h(option)g(will)g(displa)m +(y)630 3614 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31 +b(instead.)630 3744 y(The)c(`)p Fs(-p)p Ft(')h(option)g(will)g(displa)m (y)g(the)g(attributes)g(and)g(v)-5 b(alues)28 b(of)g(eac)m(h)h Fq(name)5 b Ft(.)40 b(When)27 b(`)p Fs(-p)p Ft(')630 -3322 y(is)j(used)g(with)g Fq(name)36 b Ft(argumen)m(ts,)31 -b(additional)g(options)f(are)h(ignored.)630 3458 y(When)36 +3854 y(is)j(used)g(with)g Fq(name)36 b Ft(argumen)m(ts,)31 +b(additional)g(options)f(are)h(ignored.)630 3984 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 -3567 y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5 +4093 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 3677 y(tional)h(options.)41 b(If)30 +(the)g(addi-)630 4203 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 -3786 y(the)f(attributes)g(and)e(v)-5 b(alues)30 b(of)g(all)g(shell)g(v) +4313 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 3896 y(displa)m(y)h(to)g(shell)f(functions.)630 -4031 y(The)36 b(`)p Fs(-F)p Ft(')h(option)g(inhibits)f(the)h(displa)m +(restrict)g(the)630 4422 y(displa)m(y)h(to)g(shell)f(functions.)630 +4552 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 -4141 y(name)30 b(and)f(attributes)i(are)f(prin)m(ted.)40 +4662 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 4251 y Fs(shopt)24 b Ft(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f -(Builtin],)k(page)e(62\),)i(the)d(source)h(\014le)f(name)h(and)630 -4360 y(line)38 b(n)m(um)m(b)s(er)e(where)i(the)g(function)f(is)h +630 4771 y Fs(shopt)24 b Ft(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f +(Builtin],)k(page)e(61\),)i(the)d(source)h(\014le)f(name)h(and)630 +4881 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 4470 y(`)p Fs(-f)p -Ft('.)630 4605 y(The)32 b(`)p Fs(-g)p Ft(')h(option)g(forces)g(v)-5 +b(`)p Fs(-F)p Ft(')38 b(implies)630 4991 y(`)p Fs(-f)p +Ft('.)630 5121 y(The)32 b(`)p Fs(-g)p Ft(')h(option)g(forces)g(v)-5 b(ariables)33 b(to)h(b)s(e)e(created)h(or)g(mo)s(di\014ed)e(at)j(the)f -(global)h(scop)s(e,)630 4715 y(ev)m(en)k(when)e Fs(declare)f +(global)h(scop)s(e,)630 5230 y(ev)m(en)k(when)e Fs(declare)f Ft(is)j(executed)g(in)f(a)g(shell)h(function.)61 b(It)37 -b(is)g(ignored)h(in)f(all)h(other)630 4824 y(cases.)630 -4960 y(The)27 b(follo)m(wing)h(options)g(can)f(b)s(e)g(used)f(to)i -(restrict)g(output)e(to)i(v)-5 b(ariables)28 b(with)f(the)g(sp)s(ec-) -630 5069 y(i\014ed)j(attributes)h(or)f(to)h(giv)m(e)h(v)-5 -b(ariables)31 b(attributes:)630 5230 y Fs(-a)384 b Ft(Eac)m(h)36 +b(is)g(ignored)h(in)f(all)h(other)630 5340 y(cases.)p +eop end +%%Page: 50 56 +TeXDict begin 50 55 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(50)630 299 y(The)27 +b(follo)m(wing)h(options)g(can)f(b)s(e)g(used)f(to)i(restrict)g(output) +e(to)i(v)-5 b(ariables)28 b(with)f(the)g(sp)s(ec-)630 +408 y(i\014ed)j(attributes)h(or)f(to)h(giv)m(e)h(v)-5 +b(ariables)31 b(attributes:)630 571 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 -5340 y(page)31 b(88\).)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)630 299 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 -408 y(page)31 b(88\).)630 566 y Fs(-f)384 b Ft(Use)31 -b(function)f(names)g(only)-8 b(.)630 723 y Fs(-i)384 +680 y(page)31 b(88\).)630 842 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 +952 y(page)31 b(88\).)630 1114 y Fs(-f)384 b Ft(Use)31 +b(function)f(names)g(only)-8 b(.)630 1276 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 -833 y(\(see)29 b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(86\))h -(is)f(p)s(erformed)e(when)h(the)1110 942 y(v)-5 b(ariable)31 -b(is)g(assigned)f(a)h(v)-5 b(alue.)630 1099 y Fs(-l)384 +1386 y(\(see)29 b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(86\))h +(is)f(p)s(erformed)e(when)h(the)1110 1496 y(v)-5 b(ariable)31 +b(is)g(assigned)f(a)h(v)-5 b(alue.)630 1658 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 -1209 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 1366 +1767 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 1930 y Fs(-n)384 b Ft(Giv)m(e)28 b(eac)m(h)g Fq(name)k Ft(the)27 b Fq(nameref)44 b Ft(attribute,)28 b(making)f(it)h(a)f(name)f -(reference)1110 1476 y(to)32 b(another)g(v)-5 b(ariable.)46 +(reference)1110 2039 y(to)32 b(another)g(v)-5 b(ariable.)46 b(That)31 b(other)h(v)-5 b(ariable)33 b(is)f(de\014ned)e(b)m(y)i(the)g -(v)-5 b(alue)32 b(of)1110 1585 y Fq(name)5 b Ft(.)39 +(v)-5 b(alue)32 b(of)1110 2149 y Fq(name)5 b Ft(.)39 b(All)25 b(references)f(and)g(assignmen)m(ts)h(to)g Fq(name)5 -b Ft(,)26 b(except)f(for)f(c)m(hanging)1110 1695 y(the)38 +b Ft(,)26 b(except)f(for)f(c)m(hanging)1110 2258 y(the)38 b(`)p Fs(-n)p Ft(')f(attribute)h(itself,)i(are)e(p)s(erformed)e(on)h -(the)h(v)-5 b(ariable)38 b(referenced)1110 1805 y(b)m(y)j +(the)h(v)-5 b(ariable)38 b(referenced)1110 2368 y(b)m(y)j Fq(name)5 b Ft('s)41 b(v)-5 b(alue.)74 b(The)41 b(`)p Fs(-n)p Ft(')g(attribute)g(cannot)h(b)s(e)f(applied)g(to)g(arra)m(y) -1110 1914 y(v)-5 b(ariables.)630 2071 y Fs(-r)384 b Ft(Mak)m(e)25 +1110 2478 y(v)-5 b(ariables.)630 2640 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 -2181 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h(statemen)m(ts)h(or)f -(unset.)630 2338 y Fs(-t)384 b Ft(Giv)m(e)33 b(eac)m(h)h +2749 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h(statemen)m(ts)h(or)f +(unset.)630 2911 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 2448 y Fs(DEBUG)26 +b(raced)32 b(functions)g(inherit)g(the)1110 3021 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 2557 y(has)h(no)g(sp)s(ecial)h -(meaning)g(for)f(v)-5 b(ariables.)630 2715 y Fs(-u)384 +b(The)27 b(trace)i(attribute)1110 3131 y(has)h(no)g(sp)s(ecial)h +(meaning)g(for)f(v)-5 b(ariables.)630 3293 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 -2824 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 2981 +3402 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 3565 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 -3091 y(ronmen)m(t.)630 3248 y(Using)e(`)p Fs(+)p Ft(')h(instead)f(of)g +3674 y(ronmen)m(t.)630 3836 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 3358 y(`)p Fs(+a)p Ft(')h(ma)m(y)h(not)f +(the)g(exceptions)h(that)630 3946 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 3467 y(readonly)e(attribute.)41 b(When)30 b(used)f(in)g(a)h +(the)630 4056 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 3577 y(as)30 b(with)g(the)h Fs(local)e +b Ft(lo)s(cal,)630 4165 y(as)30 b(with)g(the)h Fs(local)e Ft(command,)h(unless)f(the)i(`)p Fs(-g)p Ft(')f(option)g(is)h(used.)40 -b(If)29 b(a)i(v)-5 b(ariable)31 b(name)630 3687 y(is)f(follo)m(w)m(ed)i +b(If)29 b(a)i(v)-5 b(ariable)31 b(name)630 4275 y(is)f(follo)m(w)m(ed)i (b)m(y)f(=)p Fq(v)-5 b(alue)5 b Ft(,)31 b(the)f(v)-5 b(alue)31 b(of)g(the)f(v)-5 b(ariable)31 b(is)g(set)g(to)g -Fq(v)-5 b(alue)5 b Ft(.)630 3820 y(The)35 b(return)f(status)i(is)g +Fq(v)-5 b(alue)5 b Ft(.)630 4411 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 3930 y(is)c(made)g(to)g(de\014ne)f(a)h +(tered,)h(an)f(attempt)630 4520 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 4039 y(a)42 b(v)-5 b(alue)43 +(made)g(to)h(assign)630 4630 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 4149 +g(to)h(assign)f(a)h(v)-5 b(alue)42 b(to)h(an)630 4739 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 -4258 y([Arra)m(ys],)47 b(page)c(88\),)48 b(one)43 b(of)g(the)g +4849 y([Arra)m(ys],)47 b(page)c(88\),)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 4368 y(attempt)28 b(is)f(made)h(to)f +b(ariable)44 b(name,)i(an)630 4959 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 4478 y(is)h(made)h(to)g(turn)e(o\013)i +b(ariable,)29 b(an)e(attempt)630 5068 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 4587 y(displa)m(y)j(a)f +b(or)e(an)g(attempt)i(is)e(made)g(to)630 5178 y(displa)m(y)j(a)f (non-existen)m(t)i(function)e(with)g(`)p Fs(-f)p Ft('.)150 -4744 y Fs(echo)870 4878 y(echo)47 b([-neE])f([)p Fi(arg)57 -b Fs(...)o(])630 5011 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 5121 y(status)27 b(is)g(0)h(unless)e -(a)i(write)f(error)f(o)s(ccurs.)40 b(If)26 b(`)p Fs(-n)p -Ft(')h(is)g(sp)s(eci\014ed,)h(the)f(trailing)h(newline)f(is)630 -5230 y(suppressed.)37 b(If)24 b(the)g(`)p Fs(-e)p Ft(')h(option)g(is)f -(giv)m(en,)j(in)m(terpretation)f(of)e(the)h(follo)m(wing)h(bac)m -(kslash-)630 5340 y(escap)s(ed)38 b(c)m(haracters)i(is)f(enabled.)65 -b(The)38 b(`)p Fs(-E)p Ft(')g(option)h(disables)f(the)h(in)m -(terpretation)h(of)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)630 299 y(these)c(escap)s(e)g(c)m(haracters,)i -(ev)m(en)e(on)g(systems)f(where)g(they)h(are)g(in)m(terpreted)g(b)m(y)f -(default.)630 408 y(The)32 b Fs(xpg_echo)f Ft(shell)i(option)g(ma)m(y)h -(b)s(e)e(used)g(to)h(dynamically)h(determine)f(whether)f(or)630 -518 y(not)h Fs(echo)f Ft(expands)g(these)h(escap)s(e)h(c)m(haracters)g -(b)m(y)f(default.)48 b Fs(echo)32 b Ft(do)s(es)g(not)i(in)m(terpret)630 -628 y(`)p Fs(--)p Ft(')c(to)h(mean)g(the)f(end)g(of)h(options.)630 -759 y Fs(echo)e Ft(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)f -(sequences:)630 913 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 -1066 y Fs(\\b)384 b Ft(bac)m(kspace)630 1219 y Fs(\\c)g -Ft(suppress)28 b(further)h(output)630 1373 y Fs(\\e)630 -1482 y(\\E)384 b Ft(escap)s(e)630 1636 y Fs(\\f)g Ft(form)30 -b(feed)630 1789 y Fs(\\n)384 b Ft(new)30 b(line)630 1943 -y Fs(\\r)384 b Ft(carriage)32 b(return)630 2096 y Fs(\\t)384 -b Ft(horizon)m(tal)32 b(tab)630 2250 y Fs(\\v)384 b Ft(v)m(ertical)32 -b(tab)630 2403 y Fs(\\\\)384 b Ft(bac)m(kslash)630 2556 +5340 y Fs(echo)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)870 299 y Fs(echo)47 +b([-neE])f([)p Fi(arg)57 b Fs(...)o(])630 430 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 540 y(status)27 +b(is)g(0)h(unless)e(a)i(write)f(error)f(o)s(ccurs.)40 +b(If)26 b(`)p Fs(-n)p Ft(')h(is)g(sp)s(eci\014ed,)h(the)f(trailing)h +(newline)f(is)630 650 y(suppressed.)37 b(If)24 b(the)g(`)p +Fs(-e)p Ft(')h(option)g(is)f(giv)m(en,)j(in)m(terpretation)f(of)e(the)h +(follo)m(wing)h(bac)m(kslash-)630 759 y(escap)s(ed)38 +b(c)m(haracters)i(is)f(enabled.)65 b(The)38 b(`)p Fs(-E)p +Ft(')g(option)h(disables)f(the)h(in)m(terpretation)h(of)630 +869 y(these)27 b(escap)s(e)g(c)m(haracters,)i(ev)m(en)e(on)g(systems)f +(where)g(they)h(are)g(in)m(terpreted)g(b)m(y)f(default.)630 +978 y(The)32 b Fs(xpg_echo)f Ft(shell)i(option)g(ma)m(y)h(b)s(e)e(used) +g(to)h(dynamically)h(determine)f(whether)f(or)630 1088 +y(not)h Fs(echo)f Ft(expands)g(these)h(escap)s(e)h(c)m(haracters)g(b)m +(y)f(default.)48 b Fs(echo)32 b Ft(do)s(es)g(not)i(in)m(terpret)630 +1198 y(`)p Fs(--)p Ft(')c(to)h(mean)g(the)f(end)g(of)h(options.)630 +1329 y Fs(echo)e Ft(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)f +(sequences:)630 1482 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 +1636 y Fs(\\b)384 b Ft(bac)m(kspace)630 1789 y Fs(\\c)g +Ft(suppress)28 b(further)h(output)630 1943 y Fs(\\e)630 +2052 y(\\E)384 b Ft(escap)s(e)630 2206 y Fs(\\f)g Ft(form)30 +b(feed)630 2359 y Fs(\\n)384 b Ft(new)30 b(line)630 2513 +y Fs(\\r)384 b Ft(carriage)32 b(return)630 2666 y Fs(\\t)384 +b Ft(horizon)m(tal)32 b(tab)630 2819 y Fs(\\v)384 b Ft(v)m(ertical)32 +b(tab)630 2973 y Fs(\\\\)384 b Ft(bac)m(kslash)630 3126 y Fs(\\0)p Fi(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 2666 y(three)e(o)s(ctal)g -(digits\))630 2819 y Fs(\\x)p Fi(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c) +b(alue)32 b Fq(nnn)f Ft(\(zero)i(to)1110 3236 y(three)e(o)s(ctal)g +(digits\))630 3389 y Fs(\\x)p Fi(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 2929 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e -(digits\))630 3082 y Fs(\\u)p Fi(HHHH)192 b Ft(the)41 +b(alue)40 b Fq(HH)1110 3499 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e +(digits\))630 3652 y Fs(\\u)p Fi(HHHH)192 b Ft(the)41 b(Unico)s(de)g(\(ISO/IEC)f(10646\))j(c)m(haracter)g(whose)e(v)-5 -b(alue)41 b(is)g(the)g(hex-)1110 3192 y(adecimal)32 b(v)-5 +b(alue)41 b(is)g(the)g(hex-)1110 3762 y(adecimal)32 b(v)-5 b(alue)31 b Fq(HHHH)41 b Ft(\(one)31 b(to)g(four)e(hex)h(digits\))630 -3345 y Fs(\\U)p Fi(HHHHHHHH)1110 3455 y Ft(the)41 b(Unico)s(de)g +3915 y Fs(\\U)p Fi(HHHHHHHH)1110 4025 y Ft(the)41 b(Unico)s(de)g (\(ISO/IEC)f(10646\))j(c)m(haracter)g(whose)e(v)-5 b(alue)41 -b(is)g(the)g(hex-)1110 3565 y(adecimal)32 b(v)-5 b(alue)31 +b(is)g(the)g(hex-)1110 4134 y(adecimal)32 b(v)-5 b(alue)31 b Fq(HHHHHHHH)41 b Ft(\(one)31 b(to)g(eigh)m(t)h(hex)e(digits\))150 -3718 y Fs(enable)870 3850 y(enable)46 b([-a])h([-dnps])f([-f)g +4288 y Fs(enable)870 4419 y(enable)46 b([-a])h([-dnps])f([-f)g Fi(filename)11 b Fs(])45 b([)p Fi(name)57 b Fs(...)o(])630 -3981 y Ft(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56 +4551 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 -4091 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 4200 y(sp)s(ecifying)27 +4661 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 4770 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 4310 y(b)s(efore)32 +(searc)m(hes)h(for)f(builtins)630 4880 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 -4419 y Fq(name)5 b Ft(s)44 b(are)h(enabled.)82 b(F)-8 +4989 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 4529 y Ft(instead)31 b(of)f(the)h(shell)f(builtin)g +(via)h Fs($PATH)630 5099 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 4661 y(If)42 b(the)h(`)p Fs(-p)p Ft(')f(option)h(is)f +Ft('.)630 5230 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 4770 y(builtins)37 b(is)h(prin)m(ted.)63 +(list)g(of)g(shell)630 5340 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 4880 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 4989 y(whether)c(or)g(not)h(it)g(is)f -(enabled.)630 5121 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 5230 y(ob)5 b(ject)26 b Fq(\014lename)5 -b Ft(,)28 b(on)d(systems)h(that)g(supp)s(ort)e(dynamic)h(loading.)40 -b(The)25 b(`)p Fs(-d)p Ft(')h(option)g(will)630 5340 -y(delete)32 b(a)e(builtin)g(loaded)h(with)f(`)p Fs(-f)p -Ft('.)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)630 299 y(If)31 -b(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 -408 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 518 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(67\).)630 650 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 760 y(loading)31 b(a)g(new)f(builtin) -g(from)g(a)g(shared)g(ob)5 b(ject.)150 915 y Fs(help)870 -1047 y(help)47 b([-dms])f([)p Fi(pattern)11 b Fs(])630 -1179 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 -1288 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 1398 y(the)h(builtins)e(is)i(prin)m(ted.)630 -1530 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h -(meanings:)630 1685 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 1840 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 -1994 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 2149 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 2304 y Fs(let)870 2436 y(let)47 -b Fi(expression)55 b Fs([)p Fi(expression)h Fs(...)o(])630 -2568 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 2678 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 2787 y(Arithmetic],)51 -b(page)46 b(86.)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 -2897 y(otherwise)31 b(0)g(is)f(returned.)150 3051 y Fs(local)870 -3184 y(local)46 b([)p Fi(option)11 b Fs(])45 b Fi(name)11 -b Fs([=)p Fi(value)g Fs(])44 b(...)630 3316 y Ft(F)-8 -b(or)26 b(eac)m(h)h(argumen)m(t,)g(a)e(lo)s(cal)i(v)-5 +(all)h(enabled)p eop end +%%Page: 52 58 +TeXDict begin 52 57 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(52)630 299 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 +408 y(whether)c(or)g(not)h(it)g(is)f(enabled.)630 543 +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 +652 y(ob)5 b(ject)26 b Fq(\014lename)5 b Ft(,)28 b(on)d(systems)h(that) +g(supp)s(ort)e(dynamic)h(loading.)40 b(The)25 b(`)p Fs(-d)p +Ft(')h(option)g(will)630 762 y(delete)32 b(a)e(builtin)g(loaded)h(with) +f(`)p Fs(-f)p Ft('.)630 896 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 1006 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 1115 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 +(67\).)630 1250 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 1359 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g +(ob)5 b(ject.)150 1518 y Fs(help)870 1653 y(help)47 b([-dms])f([)p +Fi(pattern)11 b Fs(])630 1787 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 1897 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 2006 +y(the)h(builtins)e(is)i(prin)m(ted.)630 2141 y(Options,)f(if)h +(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630 +2300 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 2459 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 2618 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 2777 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 2936 +y Fs(let)870 3070 y(let)47 b Fi(expression)55 b Fs([)p +Fi(expression)h Fs(...)o(])630 3205 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 3314 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 3424 +y(Arithmetic],)51 b(page)46 b(86.)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 3534 y(otherwise)31 b(0)g(is)f(returned.)150 +3693 y Fs(local)870 3827 y(local)46 b([)p Fi(option)11 +b Fs(])45 b Fi(name)11 b Fs([=)p Fi(value)g Fs(])44 b(...)630 +3961 y Ft(F)-8 b(or)26 b(eac)m(h)h(argumen)m(t,)g(a)e(lo)s(cal)i(v)-5 b(ariable)26 b(named)f Fq(name)31 b Ft(is)25 b(created,)j(and)d -(assigned)g Fq(v)-5 b(alue)5 b Ft(.)630 3425 y(The)37 +(assigned)g Fq(v)-5 b(alue)5 b Ft(.)630 4071 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 -3535 y(b)s(e)j(used)h(within)f(a)i(function;)48 b(it)42 +4180 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 3645 y(restricted)c(to)g(that)g(function)f +b(a)f(visible)h(scop)s(e)630 4290 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 3754 y Fs(local)g Ft(is)h(used)g(outside)g(a)h(function,)h +(unless)630 4400 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 3864 y(readonly)30 b(v)-5 -b(ariable.)150 4018 y Fs(logout)870 4151 y(logout)46 -b([)p Fi(n)11 b Fs(])630 4283 y Ft(Exit)31 b(a)g(login)g(shell,)g +Fq(name)45 b Ft(is)c(a)630 4509 y(readonly)30 b(v)-5 +b(ariable.)150 4668 y Fs(logout)870 4803 y(logout)46 +b([)p Fi(n)11 b Fs(])630 4937 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 4437 y Fs(mapfile)870 4570 y(mapfile)46 b([-n)h +(t.)150 5096 y Fs(mapfile)870 5230 y(mapfile)46 b([-n)h Fi(count)11 b Fs(])45 b([-O)i Fi(origin)11 b Fs(])46 b([-s)g Fi(count)11 b Fs(])46 b([-t])h([-u)g Fi(fd)11 -b Fs(])1061 4679 y([-C)47 b Fi(callback)11 b Fs(])45 -b([-c)i Fi(quantum)11 b Fs(])45 b([)p Fi(array)11 b Fs(])630 -4811 y Ft(Read)37 b(lines)g(from)f(the)h(standard)f(input)g(in)m(to)h -(the)g(indexed)f(arra)m(y)i(v)-5 b(ariable)37 b Fq(arra)m(y)8 -b Ft(,)39 b(or)630 4921 y(from)c(\014le)h(descriptor)g -Fq(fd)j Ft(if)d(the)g(`)p Fs(-u)p Ft(')g(option)g(is)g(supplied.)56 -b(The)35 b(v)-5 b(ariable)37 b Fs(MAPFILE)d Ft(is)630 -5031 y(the)d(default)f Fq(arra)m(y)8 b Ft(.)41 b(Options,)30 -b(if)h(supplied,)e(ha)m(v)m(e)j(the)e(follo)m(wing)i(meanings:)630 -5185 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 5340 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.)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)630 299 y Fs(-s)384 b Ft(Discard)31 -b(the)f(\014rst)g Fq(coun)m(t)j Ft(lines)e(read.)630 -451 y Fs(-t)384 b Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(newline)g(from)f -(eac)m(h)h(line)g(read.)630 602 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.)630 754 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 864 y(option)31 b(sp)s(eci\014es)f Fq(quan)m(tum)p -Ft(.)630 1015 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)6 b Ft(.)630 1167 y(If)36 b(`)p Fs(-C)p -Ft(')g(is)h(sp)s(eci\014ed)f(without)g(`)p Fs(-c)p Ft(',)i(the)f -(default)f(quan)m(tum)g(is)h(5000.)61 b(When)36 b Fq(callbac)m(k)630 -1277 y Ft(is)e(ev)-5 b(aluated,)36 b(it)f(is)f(supplied)f(the)h(index)f -(of)h(the)h(next)f(arra)m(y)g(elemen)m(t)i(to)e(b)s(e)g(assigned)630 -1386 y(and)f(the)g(line)h(to)f(b)s(e)g(assigned)g(to)h(that)g(elemen)m -(t)h(as)e(additional)h(argumen)m(ts.)50 b Fq(callbac)m(k)630 -1496 y Ft(is)30 b(ev)-5 b(aluated)32 b(after)f(the)f(line)h(is)g(read)f -(but)g(b)s(efore)f(the)i(arra)m(y)g(elemen)m(t)h(is)e(assigned.)630 -1627 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 1736 y(to)31 b(it.)630 1867 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 -1976 y(supplied,)29 b Fq(arra)m(y)39 b Ft(is)30 b(in)m(v)-5 -b(alid)31 b(or)g(unassignable,)f(or)h Fq(arra)m(y)38 -b Ft(is)31 b(not)f(an)h(indexed)e(arra)m(y)-8 b(.)150 -2128 y Fs(printf)870 2259 y(printf)46 b([-v)h Fi(var)11 -b Fs(])46 b Fi(format)57 b Fs([)p Fi(arguments)11 b Fs(])630 -2390 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 2499 y Fq(format)r Ft(.)57 b(The)35 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)e(v)-5 b(ariable)37 b Fq(v)-5 b(ar)630 2609 y Ft(rather)30 -b(than)g(b)s(eing)g(prin)m(ted)g(to)h(the)g(standard)e(output.)630 -2739 y(The)36 b Fq(format)i Ft(is)f(a)f(c)m(haracter)i(string)e(whic)m -(h)g(con)m(tains)i(three)e(t)m(yp)s(es)g(of)h(ob)5 b(jects:)53 -b(plain)630 2849 y(c)m(haracters,)41 b(whic)m(h)c(are)h(simply)e -(copied)i(to)g(standard)f(output,)i(c)m(haracter)g(escap)s(e)e(se-)630 -2959 y(quences,)g(whic)m(h)f(are)g(con)m(v)m(erted)h(and)f(copied)g(to) -g(the)g(standard)f(output,)i(and)f(format)630 3068 y(sp)s -(eci\014cations,)i(eac)m(h)g(of)e(whic)m(h)g(causes)g(prin)m(ting)g(of) -g(the)h(next)f(successiv)m(e)h Fq(argumen)m(t)r Ft(.)630 -3178 y(In)24 b(addition)h(to)g(the)g(standard)f Fs(printf\(1\))e -Ft(formats,)27 b Fs(printf)c Ft(in)m(terprets)i(the)f(follo)m(wing)630 -3287 y(extensions:)630 3439 y Fs(\045b)384 b Ft(Causes)30 -b Fs(printf)e Ft(to)j(expand)f(bac)m(kslash)h(escap)s(e)f(sequences)h -(in)f(the)g(corre-)1110 3549 y(sp)s(onding)19 b Fq(argumen)m(t)r -Ft(,)k(except)f(that)f(`)p Fs(\\c)p Ft(')g(terminates)h(output,)g(bac)m -(kslashes)1110 3658 y(in)27 b(`)p Fs(\\')p Ft(',)h(`)p -Fs(\\")p Ft(',)g(and)f(`)p Fs(\\?)p Ft(')g(are)h(not)f(remo)m(v)m(ed,)j -(and)c(o)s(ctal)j(escap)s(es)f(b)s(eginning)1110 3768 -y(with)i(`)p Fs(\\0)p Ft(')g(ma)m(y)h(con)m(tain)h(up)d(to)i(four)f -(digits.)630 3920 y Fs(\045q)384 b Ft(Causes)32 b Fs(printf)e -Ft(to)i(output)g(the)g(corresp)s(onding)f Fq(argumen)m(t)j -Ft(in)d(a)i(format)1110 4029 y(that)e(can)g(b)s(e)e(reused)h(as)h -(shell)f(input.)630 4181 y Fs(\045\()p Fi(datefmt)11 -b Fs(\)T)1110 4290 y Ft(Causes)29 b Fs(printf)e Ft(to)j(output)f(the)g -(date-time)i(string)e(resulting)h(from)e(using)1110 4400 -y Fq(datefm)m(t)45 b Ft(as)d(a)g(format)g(string)g(for)g -Fs(strftime)p Ft(\(3\).)74 b(The)41 b(corresp)s(onding)1110 -4510 y Fq(argumen)m(t)h Ft(is)e(an)g(in)m(teger)i(represen)m(ting)e -(the)g(n)m(um)m(b)s(er)f(of)h(seconds)g(since)1110 4619 -y(the)24 b(ep)s(o)s(c)m(h.)38 b(Tw)m(o)24 b(sp)s(ecial)h(argumen)m(t)f -(v)-5 b(alues)24 b(ma)m(y)h(b)s(e)e(used:)36 b(-1)25 -b(represen)m(ts)1110 4729 y(the)30 b(curren)m(t)g(time,)h(and)e(-2)i -(represen)m(ts)f(the)g(time)h(the)f(shell)g(w)m(as)g(in)m(v)m(ok)m(ed.) -630 4881 y(Argumen)m(ts)e(to)h(non-string)e(format)i(sp)s(eci\014ers)e -(are)h(treated)h(as)g(C)e(language)j(constan)m(ts,)630 -4990 y(except)22 b(that)g(a)g(leading)g(plus)e(or)h(min)m(us)f(sign)i -(is)f(allo)m(w)m(ed,)k(and)c(if)g(the)g(leading)h(c)m(haracter)h(is)630 -5100 y(a)i(single)g(or)f(double)h(quote,)h(the)f(v)-5 -b(alue)25 b(is)f(the)h(ASCI)s(I)e(v)-5 b(alue)25 b(of)f(the)h(follo)m -(wing)h(c)m(haracter.)630 5230 y(The)31 b Fq(format)i -Ft(is)e(reused)f(as)i(necessary)f(to)h(consume)f(all)h(of)f(the)g -Fq(argumen)m(ts)t Ft(.)43 b(If)31 b(the)g Fq(for-)630 -5340 y(mat)d 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)p +b Fs(])1061 5340 y([-C)47 b Fi(callback)11 b Fs(])45 +b([-c)i Fi(quantum)11 b Fs(])45 b([)p Fi(array)11 b Fs(])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(b)s(eha)m(v)m(e)29 -b(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 -408 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 564 y Fs(read)870 697 y(read)47 -b([-ers])f([-a)h Fi(aname)11 b Fs(])45 b([-d)i Fi(delim)11 -b Fs(])46 b([-i)h Fi(text)11 b Fs(])46 b([-n)g Fi(nchars)11 -b Fs(])1061 806 y([-N)47 b Fi(nchars)11 b Fs(])45 b([-p)i -Fi(prompt)11 b Fs(])45 b([-t)i Fi(timeout)11 b Fs(])45 -b([-u)i Fi(fd)11 b Fs(])47 b([)p Fi(name)57 b Fs(...)o(])630 -939 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 -1049 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 1158 y Fq(name)5 b Ft(,)28 b(the)g(second)g(w)m(ord) -f(to)h(the)f(second)h Fq(name)5 b Ft(,)28 b(and)f(so)h(on,)g(with)f -(lefto)m(v)m(er)j(w)m(ords)d(and)630 1268 y(their)h(in)m(terv)m(ening)g -(separators)g(assigned)g(to)h(the)e(last)i Fq(name)5 -b Ft(.)40 b(If)27 b(there)h(are)g(few)m(er)f(w)m(ords)630 -1377 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 1487 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 +%%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)630 299 y(Read)37 +b(lines)g(from)f(the)h(standard)f(input)g(in)m(to)h(the)g(indexed)f +(arra)m(y)i(v)-5 b(ariable)37 b Fq(arra)m(y)8 b Ft(,)39 +b(or)630 408 y(from)c(\014le)h(descriptor)g Fq(fd)j Ft(if)d(the)g(`)p +Fs(-u)p Ft(')g(option)g(is)g(supplied.)56 b(The)35 b(v)-5 +b(ariable)37 b Fs(MAPFILE)d Ft(is)630 518 y(the)d(default)f +Fq(arra)m(y)8 b Ft(.)41 b(Options,)30 b(if)h(supplied,)e(ha)m(v)m(e)j +(the)e(follo)m(wing)i(meanings:)630 681 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 +843 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 1006 y Fs(-s)384 b Ft(Discard)31 b(the)f(\014rst)g +Fq(coun)m(t)j Ft(lines)e(read.)630 1168 y Fs(-t)384 b +Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(newline)g(from)f(eac)m(h)h(line)g +(read.)630 1331 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.)630 +1493 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 1603 y(option)31 b(sp)s(eci\014es)f +Fq(quan)m(tum)p Ft(.)630 1765 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)6 b Ft(.)630 1928 y(If)36 +b(`)p Fs(-C)p Ft(')g(is)h(sp)s(eci\014ed)f(without)g(`)p +Fs(-c)p Ft(',)i(the)f(default)f(quan)m(tum)g(is)h(5000.)61 +b(When)36 b Fq(callbac)m(k)630 2037 y Ft(is)e(ev)-5 b(aluated,)36 +b(it)f(is)f(supplied)f(the)h(index)f(of)h(the)h(next)f(arra)m(y)g +(elemen)m(t)i(to)e(b)s(e)g(assigned)630 2147 y(and)f(the)g(line)h(to)f +(b)s(e)g(assigned)g(to)h(that)g(elemen)m(t)h(as)e(additional)h(argumen) +m(ts.)50 b Fq(callbac)m(k)630 2256 y Ft(is)30 b(ev)-5 +b(aluated)32 b(after)f(the)f(line)h(is)g(read)f(but)g(b)s(efore)f(the)i +(arra)m(y)g(elemen)m(t)h(is)e(assigned.)630 2392 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 +2502 y(to)31 b(it.)630 2638 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 2748 y(supplied,)29 b +Fq(arra)m(y)39 b Ft(is)30 b(in)m(v)-5 b(alid)31 b(or)g(unassignable,)f +(or)h Fq(arra)m(y)38 b Ft(is)31 b(not)f(an)h(indexed)e(arra)m(y)-8 +b(.)150 2910 y Fs(printf)870 3046 y(printf)46 b([-v)h +Fi(var)11 b Fs(])46 b Fi(format)57 b Fs([)p Fi(arguments)11 +b Fs(])630 3182 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 3292 y Fq(format)r Ft(.)57 b(The)35 +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)e(v)-5 b(ariable)37 b Fq(v)-5 b(ar)630 +3401 y Ft(rather)30 b(than)g(b)s(eing)g(prin)m(ted)g(to)h(the)g +(standard)e(output.)630 3537 y(The)36 b Fq(format)i Ft(is)f(a)f(c)m +(haracter)i(string)e(whic)m(h)g(con)m(tains)i(three)e(t)m(yp)s(es)g(of) +h(ob)5 b(jects:)53 b(plain)630 3647 y(c)m(haracters,)41 +b(whic)m(h)c(are)h(simply)e(copied)i(to)g(standard)f(output,)i(c)m +(haracter)g(escap)s(e)e(se-)630 3757 y(quences,)g(whic)m(h)f(are)g(con) +m(v)m(erted)h(and)f(copied)g(to)g(the)g(standard)f(output,)i(and)f +(format)630 3866 y(sp)s(eci\014cations,)i(eac)m(h)g(of)e(whic)m(h)g +(causes)g(prin)m(ting)g(of)g(the)h(next)f(successiv)m(e)h +Fq(argumen)m(t)r Ft(.)630 3976 y(In)24 b(addition)h(to)g(the)g +(standard)f Fs(printf\(1\))e Ft(formats,)27 b Fs(printf)c +Ft(in)m(terprets)i(the)f(follo)m(wing)630 4085 y(extensions:)630 +4248 y Fs(\045b)384 b Ft(Causes)30 b Fs(printf)e Ft(to)j(expand)f(bac)m +(kslash)h(escap)s(e)f(sequences)h(in)f(the)g(corre-)1110 +4357 y(sp)s(onding)19 b Fq(argumen)m(t)r Ft(,)k(except)f(that)f(`)p +Fs(\\c)p Ft(')g(terminates)h(output,)g(bac)m(kslashes)1110 +4467 y(in)27 b(`)p Fs(\\')p Ft(',)h(`)p Fs(\\")p Ft(',)g(and)f(`)p +Fs(\\?)p Ft(')g(are)h(not)f(remo)m(v)m(ed,)j(and)c(o)s(ctal)j(escap)s +(es)f(b)s(eginning)1110 4577 y(with)i(`)p Fs(\\0)p Ft(')g(ma)m(y)h(con) +m(tain)h(up)d(to)i(four)f(digits.)630 4739 y Fs(\045q)384 +b Ft(Causes)32 b Fs(printf)e Ft(to)i(output)g(the)g(corresp)s(onding)f +Fq(argumen)m(t)j Ft(in)d(a)i(format)1110 4849 y(that)e(can)g(b)s(e)e +(reused)h(as)h(shell)f(input.)630 5011 y Fs(\045\()p +Fi(datefmt)11 b Fs(\)T)1110 5121 y Ft(Causes)29 b Fs(printf)e +Ft(to)j(output)f(the)g(date-time)i(string)e(resulting)h(from)e(using) +1110 5230 y Fq(datefm)m(t)45 b Ft(as)d(a)g(format)g(string)g(for)g +Fs(strftime)p Ft(\(3\).)74 b(The)41 b(corresp)s(onding)1110 +5340 y Fq(argumen)m(t)h Ft(is)e(an)g(in)m(teger)i(represen)m(ting)e +(the)g(n)m(um)m(b)s(er)f(of)h(seconds)g(since)p eop end +%%Page: 54 60 +TeXDict begin 54 59 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(54)1110 299 y(the)24 +b(ep)s(o)s(c)m(h.)38 b(Tw)m(o)24 b(sp)s(ecial)h(argumen)m(t)f(v)-5 +b(alues)24 b(ma)m(y)h(b)s(e)e(used:)36 b(-1)25 b(represen)m(ts)1110 +408 y(the)30 b(curren)m(t)g(time,)h(and)e(-2)i(represen)m(ts)f(the)g +(time)h(the)f(shell)g(w)m(as)g(in)m(v)m(ok)m(ed.)1110 +518 y(If)38 b(no)g(argumen)m(t)h(is)f(sp)s(eci\014ed,)i(con)m(v)m +(ersion)f(b)s(eha)m(v)m(es)g(as)g(if)f(-1)h(had)f(b)s(een)1110 +628 y(giv)m(en.)k(This)29 b(is)i(an)f(exception)i(to)f(the)f(usual)g +Fs(printf)f Ft(b)s(eha)m(vior.)630 798 y(Argumen)m(ts)f(to)h +(non-string)e(format)i(sp)s(eci\014ers)e(are)h(treated)h(as)g(C)e +(language)j(constan)m(ts,)630 908 y(except)22 b(that)g(a)g(leading)g +(plus)e(or)h(min)m(us)f(sign)i(is)f(allo)m(w)m(ed,)k(and)c(if)g(the)g +(leading)h(c)m(haracter)h(is)630 1017 y(a)i(single)g(or)f(double)h +(quote,)h(the)f(v)-5 b(alue)25 b(is)f(the)h(ASCI)s(I)e(v)-5 +b(alue)25 b(of)f(the)h(follo)m(wing)h(c)m(haracter.)630 +1157 y(The)31 b Fq(format)i Ft(is)e(reused)f(as)i(necessary)f(to)h +(consume)f(all)h(of)f(the)g Fq(argumen)m(ts)t Ft(.)43 +b(If)31 b(the)g Fq(for-)630 1267 y(mat)d 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 1377 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 1486 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 +1657 y Fs(read)870 1797 y(read)47 b([-ers])f([-a)h Fi(aname)11 +b Fs(])45 b([-d)i Fi(delim)11 b Fs(])46 b([-i)h Fi(text)11 +b Fs(])46 b([-n)g Fi(nchars)11 b Fs(])1061 1906 y([-N)47 +b Fi(nchars)11 b Fs(])45 b([-p)i Fi(prompt)11 b Fs(])45 +b([-t)i Fi(timeout)11 b Fs(])45 b([-u)i Fi(fd)11 b Fs(])47 +b([)p Fi(name)57 b Fs(...)o(])630 2046 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 2156 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 2265 y Fq(name)5 +b Ft(,)28 b(the)g(second)g(w)m(ord)f(to)h(the)f(second)h +Fq(name)5 b Ft(,)28 b(and)f(so)h(on,)g(with)f(lefto)m(v)m(er)j(w)m +(ords)d(and)630 2375 y(their)h(in)m(terv)m(ening)g(separators)g +(assigned)g(to)h(the)e(last)i Fq(name)5 b Ft(.)40 b(If)27 +b(there)h(are)g(few)m(er)f(w)m(ords)630 2485 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 2594 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 1597 y(the)37 b(line)h(in)m(to)g(w)m +b(are)g(used)f(to)h(split)630 2704 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 -1706 y(sp)s(ecial)h(meaning)g(for)f(the)g(next)h(c)m(haracter)h(read)e +2813 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 -1816 y(names)28 b(are)h(supplied,)f(the)g(line)h(read)g(is)f(assigned)h +2923 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 1925 y(co)s(de)e(is)g(zero,)h(unless)e(end-of-\014le)h(is) +b(return)630 3033 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)630 2035 y(return)g(co)s(de)h(is)g(greater)i(than)e(128\),)i(a)e +(the)630 3142 y(return)g(co)s(de)h(is)g(greater)i(than)e(128\),)i(a)e (v)-5 b(ariable)29 b(assignmen)m(t)g(error)f(\(suc)m(h)g(as)g -(assigning)630 2145 y(to)38 b(a)f(readonly)g(v)-5 b(ariable\))38 +(assigning)630 3252 y(to)38 b(a)f(readonly)g(v)-5 b(ariable\))38 b(o)s(ccurs,)h(or)e(an)g(in)m(v)-5 b(alid)38 b(\014le)f(descriptor)g -(is)g(supplied)e(as)j(the)630 2254 y(argumen)m(t)31 b(to)g(`)p -Fs(-u)p Ft('.)630 2387 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g -(follo)m(wing)h(meanings:)630 2543 y Fs(-a)e Fi(aname)114 +(is)g(supplied)e(as)j(the)630 3361 y(argumen)m(t)31 b(to)g(`)p +Fs(-u)p Ft('.)630 3501 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g +(follo)m(wing)h(meanings:)630 3672 y Fs(-a)e Fi(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 2652 y Fq(aname)5 +e(of)g(the)g(arra)m(y)h(v)-5 b(ariable)1110 3781 y Fq(aname)5 b Ft(,)29 b(starting)g(at)f(0.)40 b(All)29 b(elemen)m(ts)g(are)f(remo)m -(v)m(ed)h(from)e Fq(aname)33 b Ft(b)s(efore)1110 2762 +(v)m(ed)h(from)e Fq(aname)33 b Ft(b)s(efore)1110 3891 y(the)e(assignmen)m(t.)41 b(Other)30 b Fq(name)36 b Ft(argumen)m(ts)30 -b(are)h(ignored.)630 2917 y Fs(-d)f Fi(delim)114 b Ft(The)41 +b(are)h(ignored.)630 4061 y Fs(-d)f Fi(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 3027 y(rather)30 -b(than)g(newline.)630 3183 y Fs(-e)384 b Ft(Readline)46 +(terminate)h(the)f(input)f(line,)1110 4171 y(rather)30 +b(than)g(newline.)630 4341 y Fs(-e)384 b Ft(Readline)46 b(\(see)g(Chapter)e(8)h([Command)f(Line)h(Editing],)50 -b(page)45 b(101\))i(is)1110 3292 y(used)37 b(to)i(obtain)g(the)f(line.) +b(page)45 b(101\))i(is)1110 4451 y(used)37 b(to)i(obtain)g(the)f(line.) 65 b(Readline)39 b(uses)e(the)i(curren)m(t)f(\(or)g(default,)j(if)1110 -3402 y(line)31 b(editing)g(w)m(as)f(not)h(previously)f(activ)m(e\))j -(editing)e(settings.)630 3558 y Fs(-i)f Fi(text)162 b +4561 y(line)31 b(editing)g(w)m(as)f(not)h(previously)f(activ)m(e\))j +(editing)e(settings.)630 4731 y Fs(-i)f Fi(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 3667 y(editing)31 -b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630 3823 -y Fs(-n)f Fi(nchars)1110 3933 y Fs(read)38 b Ft(returns)f(after)j +Fq(text)f Ft(is)e(placed)h(in)m(to)g(the)1110 4841 y(editing)31 +b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630 5011 +y Fs(-n)f Fi(nchars)1110 5121 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 4042 y(for)g(a)h(complete)h(line)f(of)f(input,)i(but)e -(honor)g(a)h(delimiter)g(if)f(few)m(er)h(than)1110 4152 +(aiting)1110 5230 y(for)g(a)h(complete)h(line)f(of)f(input,)i(but)e +(honor)g(a)h(delimiter)g(if)f(few)m(er)h(than)1110 5340 y Fq(nc)m(hars)34 b Ft(c)m(haracters)e(are)e(read)h(b)s(efore)f(the)g -(delimiter.)630 4308 y Fs(-N)g Fi(nchars)1110 4417 y -Fs(read)39 b Ft(returns)f(after)j(reading)e(exactly)j -Fq(nc)m(hars)h Ft(c)m(haracters)f(rather)d(than)1110 -4527 y(w)m(aiting)32 b(for)f(a)g(complete)i(line)e(of)g(input,)g -(unless)f(EOF)h(is)g(encoun)m(tered)g(or)1110 4636 y -Fs(read)f Ft(times)i(out.)43 b(Delimiter)33 b(c)m(haracters)f(encoun)m -(tered)g(in)f(the)g(input)g(are)1110 4746 y(not)g(treated)h(sp)s -(ecially)g(and)f(do)f(not)i(cause)f Fs(read)f Ft(to)i(return)e(un)m -(til)h Fq(nc)m(hars)1110 4855 y Ft(c)m(haracters)h(are)f(read.)630 -5011 y Fs(-p)f Fi(prompt)1110 5121 y Ft(Displa)m(y)38 +(delimiter.)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(-N)30 +b Fi(nchars)1110 408 y Fs(read)39 b Ft(returns)f(after)j(reading)e +(exactly)j Fq(nc)m(hars)h Ft(c)m(haracters)f(rather)d(than)1110 +518 y(w)m(aiting)32 b(for)f(a)g(complete)i(line)e(of)g(input,)g(unless) +f(EOF)h(is)g(encoun)m(tered)g(or)1110 628 y Fs(read)f +Ft(times)i(out.)43 b(Delimiter)33 b(c)m(haracters)f(encoun)m(tered)g +(in)f(the)g(input)g(are)1110 737 y(not)g(treated)h(sp)s(ecially)g(and)f +(do)f(not)i(cause)f Fs(read)f Ft(to)i(return)e(un)m(til)h +Fq(nc)m(hars)1110 847 y Ft(c)m(haracters)h(are)f(read.)630 +1016 y Fs(-p)f Fi(prompt)1110 1126 y Ft(Displa)m(y)38 b Fq(prompt)r Ft(,)f(without)g(a)f(trailing)i(newline,)g(b)s(efore)e -(attempting)i(to)1110 5230 y(read)f(an)m(y)h(input.)60 +(attempting)i(to)1110 1235 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 5340 y(from)30 b(a)h(terminal.)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(-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 408 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 518 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 675 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 785 y(ec)m(ho)s(ed.)630 942 y Fs(-t)i -Fi(timeout)1110 1052 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 -1161 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 -1271 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 -1380 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 1490 -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 1600 -y(\014les.)80 b(If)43 b Fq(timeout)j Ft(is)d(0,)48 b -Fs(read)42 b Ft(returns)g(immediately)-8 b(,)48 b(without)c(trying)1110 -1709 y(to)i(read)f(and)f(data.)85 b(The)44 b(exit)i(status)g(is)f(0)g -(if)g(input)f(is)h(a)m(v)-5 b(ailable)47 b(on)1110 1819 -y(the)32 b(sp)s(eci\014ed)f(\014le)h(descriptor,)g(non-zero)g -(otherwise.)45 b(The)31 b(exit)i(status)f(is)1110 1928 -y(greater)g(than)e(128)h(if)g(the)f(timeout)i(is)e(exceeded.)630 -2086 y Fs(-u)g Fi(fd)258 b Ft(Read)31 b(input)e(from)h(\014le)g -(descriptor)h Fq(fd)t Ft(.)150 2243 y Fs(readarray)870 -2352 y(readarray)45 b([-n)i Fi(count)11 b Fs(])46 b([-O)h -Fi(origin)11 b Fs(])45 b([-s)i Fi(count)11 b Fs(])46 -b([-t])g([-u)h Fi(fd)11 b Fs(])1061 2462 y([-C)47 b Fi(callback)11 -b Fs(])45 b([-c)i Fi(quantum)11 b Fs(])45 b([)p Fi(array)11 -b Fs(])630 2595 y Ft(Read)37 b(lines)g(from)f(the)h(standard)f(input)g +(coming)1110 1345 y(from)30 b(a)h(terminal.)630 1514 +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 +1624 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 1733 +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 1903 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 2012 y(ec)m(ho)s(ed.)630 +2182 y Fs(-t)i Fi(timeout)1110 2291 y Ft(Cause)42 b Fs(read)g +Ft(to)h(time)h(out)f(and)f(return)f(failure)i(if)g(a)g(complete)h(line) +f(of)1110 2401 y(input)26 b(\(or)h(a)g(sp)s(eci\014ed)f(n)m(um)m(b)s +(er)g(of)h(c)m(haracters\))h(is)f(not)g(read)g(within)f +Fq(time-)1110 2511 y(out)37 b Ft(seconds.)53 b Fq(timeout)38 +b Ft(ma)m(y)d(b)s(e)f(a)h(decimal)h(n)m(um)m(b)s(er)d(with)h(a)h +(fractional)1110 2620 y(p)s(ortion)29 b(follo)m(wing)h(the)f(decimal)h +(p)s(oin)m(t.)40 b(This)29 b(option)g(is)g(only)g(e\013ectiv)m(e)j(if) +1110 2730 y Fs(read)j Ft(is)i(reading)g(input)e(from)h(a)h(terminal,)i +(pip)s(e,)e(or)g(other)f(sp)s(ecial)i(\014le;)1110 2839 +y(it)31 b(has)g(no)g(e\013ect)h(when)e(reading)h(from)g(regular)g +(\014les.)42 b(If)30 b Fs(read)g Ft(times)h(out,)1110 +2949 y Fs(read)d Ft(sa)m(v)m(es)i(an)m(y)g(partial)g(input)e(read)h(in) +m(to)h(the)f(sp)s(eci\014ed)g(v)-5 b(ariable)30 b Fq(name)5 +b Ft(.)1110 3059 y(If)35 b Fq(timeout)j Ft(is)e(0,)h +Fs(read)e Ft(returns)f(immediately)-8 b(,)39 b(without)c(trying)h(to)g +(read)1110 3168 y(and)30 b(data.)44 b(The)30 b(exit)i(status)f(is)g(0)g +(if)g(input)f(is)h(a)m(v)-5 b(ailable)34 b(on)c(the)i(sp)s(eci\014ed) +1110 3278 y(\014le)g(descriptor,)g(non-zero)h(otherwise.)46 +b(The)31 b(exit)i(status)f(is)g(greater)h(than)1110 3387 +y(128)f(if)e(the)h(timeout)g(is)f(exceeded.)630 3557 +y Fs(-u)g Fi(fd)258 b Ft(Read)31 b(input)e(from)h(\014le)g(descriptor)h +Fq(fd)t Ft(.)150 3726 y Fs(readarray)870 3836 y(readarray)45 +b([-n)i Fi(count)11 b Fs(])46 b([-O)h Fi(origin)11 b +Fs(])45 b([-s)i Fi(count)11 b Fs(])46 b([-t])g([-u)h +Fi(fd)11 b Fs(])1061 3945 y([-C)47 b Fi(callback)11 b +Fs(])45 b([-c)i Fi(quantum)11 b Fs(])45 b([)p Fi(array)11 +b Fs(])630 4085 y Ft(Read)37 b(lines)g(from)f(the)h(standard)f(input)g (in)m(to)h(the)g(indexed)f(arra)m(y)i(v)-5 b(ariable)37 -b Fq(arra)m(y)8 b Ft(,)39 b(or)630 2705 y(from)30 b(\014le)g +b Fq(arra)m(y)8 b Ft(,)39 b(or)630 4194 y(from)30 b(\014le)g (descriptor)h Fq(fd)i Ft(if)d(the)h(`)p Fs(-u)p Ft(')f(option)h(is)f -(supplied.)630 2838 y(A)g(synon)m(ym)g(for)g Fs(mapfile)p -Ft(.)150 2996 y Fs(source)870 3129 y(source)46 b Fi(filename)630 -3263 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(41\).)150 3420 -y Fs(type)870 3553 y(type)47 b([-afptP])e([)p Fi(name)57 -b Fs(...)o(])630 3687 y Ft(F)-8 b(or)41 b(eac)m(h)h Fq(name)5 +(supplied.)630 4334 y(A)g(synon)m(ym)g(for)g Fs(mapfile)p +Ft(.)150 4503 y Fs(source)870 4643 y(source)46 b Fi(filename)630 +4782 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(40\).)150 4951 +y Fs(type)870 5091 y(type)47 b([-afptP])e([)p Fi(name)57 +b Fs(...)o(])630 5230 y Ft(F)-8 b(or)41 b(eac)m(h)h Fq(name)5 b Ft(,)44 b(indicate)e(ho)m(w)f(it)g(w)m(ould)f(b)s(e)g(in)m(terpreted) -h(if)g(used)f(as)h(a)g(command)630 3796 y(name.)630 3930 -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 4039 y(`)p Fs(function)p -Ft(',)32 b(`)p Fs(builtin)p Ft(',)g(`)p Fs(file)p Ft(')g(or)h(`)p +h(if)g(used)f(as)h(a)g(command)630 5340 y(name.)p eop +end +%%Page: 56 62 +TeXDict begin 56 61 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(56)630 299 y(If)38 +b(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 408 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 4149 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h +(function,)630 518 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 4258 -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 4392 -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 4501 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 4635 y(The)23 b(`)p Fs(-P)p Ft(')g(option)h(forces)g(a)g +b(If)34 b(the)h Fq(name)40 b Ft(is)35 b(not)630 628 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 765 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 874 +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 1011 y(The)23 b(`)p Fs(-P)p Ft(')g(option)h(forces)g(a)g (path)f(searc)m(h)h(for)f(eac)m(h)h Fq(name)5 b Ft(,)26 b(ev)m(en)e(if)f(`)p Fs(-t)p Ft(')g(w)m(ould)g(not)h(return)630 -4744 y(`)p Fs(file)p Ft('.)630 4878 y(If)41 b(a)h(command)f(is)h +1121 y(`)p Fs(file)p Ft('.)630 1258 y(If)41 b(a)h(command)f(is)h (hashed,)i(`)p Fs(-p)p Ft(')d(and)g(`)p Fs(-P)p Ft(')g(prin)m(t)g(the)h -(hashed)f(v)-5 b(alue,)45 b(whic)m(h)c(is)h(not)630 4987 +(hashed)f(v)-5 b(alue,)45 b(whic)m(h)c(is)h(not)630 1367 y(necessarily)31 b(the)g(\014le)f(that)h(app)s(ears)f(\014rst)g(in)g -Fs($PATH)p Ft(.)630 5121 y(If)36 b(the)h(`)p Fs(-a)p +Fs($PATH)p Ft(.)630 1504 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 5230 y(cutable)d(named)f +(places)g(that)g(con)m(tain)h(an)f(exe-)630 1614 y(cutable)d(named)f Fq(\014le)5 b Ft(.)49 b(This)32 b(includes)h(aliases)i(and)d (functions,)i(if)f(and)f(only)i(if)f(the)g(`)p Fs(-p)p -Ft(')630 5340 y(option)e(is)f(not)h(also)g(used.)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)630 299 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 408 y(the)k Fs(command)d Ft(builtin.)630 543 -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 -652 y(found.)150 811 y Fs(typeset)870 945 y(typeset)46 -b([-afFgrxilnrtux])d([-p])k([)p Fi(name)11 b Fs([=)p -Fi(value)g Fs(])43 b(...)o(])630 1079 y Ft(The)31 b Fs(typeset)e -Ft(command)i(is)g(supplied)f(for)h(compatibilit)m(y)i(with)e(the)g -(Korn)f(shell.)44 b(It)31 b(is)630 1189 y(a)g(synon)m(ym)f(for)g(the)g -Fs(declare)f Ft(builtin)h(command.)150 1348 y Fs(ulimit)870 -1482 y(ulimit)46 b([-abcdefilmnpqrstuvxHST])41 b([)p -Fi(limit)11 b Fs(])630 1616 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 1726 +Ft(')630 1724 y(option)e(is)f(not)h(also)g(used.)630 +1861 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 1970 y(the)k Fs(command)d +Ft(builtin.)630 2107 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 2217 y(found.)150 2381 y Fs(typeset)870 2518 +y(typeset)46 b([-afFgrxilnrtux])d([-p])k([)p Fi(name)11 +b Fs([=)p Fi(value)g Fs(])43 b(...)o(])630 2655 y Ft(The)31 +b Fs(typeset)e Ft(command)i(is)g(supplied)f(for)h(compatibilit)m(y)i +(with)e(the)g(Korn)f(shell.)44 b(It)31 b(is)630 2765 +y(a)g(synon)m(ym)f(for)g(the)g Fs(declare)f Ft(builtin)h(command.)150 +2929 y Fs(ulimit)870 3066 y(ulimit)46 b([-abcdefilmnpqrstuvxHST])41 +b([)p Fi(limit)11 b Fs(])630 3203 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 3313 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 -1835 y(as)i(follo)m(ws:)630 1994 y Fs(-S)384 b Ft(Change)30 +3422 y(as)i(follo)m(ws:)630 3587 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 2153 y Fs(-H)384 b Ft(Change)30 b(and)g(rep)s(ort)g(the) +(resource.)630 3751 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 -2312 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h(are)g(rep)s -(orted.)630 2471 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 2629 y Fs(-c)384 b Ft(The)30 +3915 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h(are)g(rep)s +(orted.)630 4080 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 4244 y Fs(-c)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(core)g(\014les)f(created.)630 -2788 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.)630 2947 y Fs(-e)384 b Ft(The)30 +4408 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.)630 4573 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 3106 y Fs(-f)384 b Ft(The)30 +Ft(nice)p Fs(")p Ft(\).)630 4737 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 3264 y Fs(-i)384 b Ft(The)30 +(and)f(its)h(c)m(hildren.)630 4902 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 -3423 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 3582 +5066 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 5230 y Fs(-m)384 b Ft(The)36 b(maxim)m(um)g(residen)m(t)h(set)g(size)g -(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110 3692 -y(limit\).)630 3850 y Fs(-n)384 b Ft(The)38 b(maxim)m(um)h(n)m(um)m(b)s -(er)e(of)i(op)s(en)f(\014le)h(descriptors)g(\(most)g(systems)g(do)1110 -3960 y(not)31 b(allo)m(w)g(this)g(v)-5 b(alue)31 b(to)g(b)s(e)e(set\).) -630 4119 y Fs(-p)384 b Ft(The)30 b(pip)s(e)f(bu\013er)h(size.)630 -4278 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 4436 y Fs(-r)384 +(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110 5340 +y(limit\).)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)630 299 y Fs(-n)384 +b Ft(The)38 b(maxim)m(um)h(n)m(um)m(b)s(er)e(of)i(op)s(en)f(\014le)h +(descriptors)g(\(most)g(systems)g(do)1110 408 y(not)31 +b(allo)m(w)g(this)g(v)-5 b(alue)31 b(to)g(b)s(e)e(set\).)630 +560 y Fs(-p)384 b Ft(The)30 b(pip)s(e)f(bu\013er)h(size.)630 +712 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 864 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 4595 y Fs(-s)384 b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.) -630 4754 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 4913 y Fs(-u)384 b Ft(The)30 +b(.)630 1016 y Fs(-s)384 b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.) +630 1168 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 1320 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 5072 y Fs(-v)384 +b(ailable)33 b(to)e(a)f(single)i(user.)630 1472 y Fs(-v)384 b Ft(The)41 b(maxim)m(um)h(amoun)m(t)g(of)h(virtual)f(memory)g(a)m(v)-5 -b(ailable)44 b(to)e(the)g(shell,)1110 5181 y(and,)30 +b(ailable)44 b(to)e(the)g(shell,)1110 1581 y(and,)30 b(on)g(some)h(systems,)g(to)g(its)g(c)m(hildren.)630 -5340 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.)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(-T)384 b Ft(The)30 -b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(threads.)630 462 +1733 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 1885 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 2037 y(If)i Fq(limit)k Ft(is)d(giv)m(en,)h(and)f(the)f(`)p Fs(-a)p Ft(')h(option)g(is)g(not)g(used,)g Fq(limit)j -Ft(is)c(the)h(new)g(v)-5 b(alue)34 b(of)g(the)630 572 +Ft(is)c(the)h(new)g(v)-5 b(alue)34 b(of)g(the)630 2146 y(sp)s(eci\014ed)f(resource.)51 b(The)34 b(sp)s(ecial)g Fq(limit)j Ft(v)-5 b(alues)34 b Fs(hard)p Ft(,)g Fs(soft)p -Ft(,)g(and)f Fs(unlimited)e Ft(stand)630 681 y(for)h(the)g(curren)m(t)g -(hard)f(limit,)i(the)g(curren)m(t)f(soft)g(limit,)h(and)f(no)g(limit,)h -(resp)s(ectiv)m(ely)-8 b(.)48 b(A)630 791 y(hard)24 b(limit)i(cannot)g -(b)s(e)e(increased)h(b)m(y)g(a)h(non-ro)s(ot)f(user)f(once)i(it)g(is)f -(set;)j(a)d(soft)g(limit)h(ma)m(y)630 901 y(b)s(e)37 -b(increased)h(up)e(to)j(the)f(v)-5 b(alue)38 b(of)f(the)h(hard)f -(limit.)63 b(Otherwise,)39 b(the)f(curren)m(t)f(v)-5 -b(alue)630 1010 y(of)36 b(the)f(soft)h(limit)h(for)e(the)g(sp)s +Ft(,)g(and)f Fs(unlimited)e Ft(stand)630 2256 y(for)h(the)g(curren)m(t) +g(hard)f(limit,)i(the)g(curren)m(t)f(soft)g(limit,)h(and)f(no)g(limit,) +h(resp)s(ectiv)m(ely)-8 b(.)48 b(A)630 2366 y(hard)24 +b(limit)i(cannot)g(b)s(e)e(increased)h(b)m(y)g(a)h(non-ro)s(ot)f(user)f +(once)i(it)g(is)f(set;)j(a)d(soft)g(limit)h(ma)m(y)630 +2475 y(b)s(e)37 b(increased)h(up)e(to)j(the)f(v)-5 b(alue)38 +b(of)f(the)h(hard)f(limit.)63 b(Otherwise,)39 b(the)f(curren)m(t)f(v)-5 +b(alue)630 2585 y(of)36 b(the)f(soft)h(limit)h(for)e(the)g(sp)s (eci\014ed)g(resource)h(is)f(prin)m(ted,)i(unless)e(the)h(`)p -Fs(-H)p Ft(')f(option)h(is)630 1120 y(supplied.)j(When)28 +Fs(-H)p Ft(')f(option)h(is)630 2694 y(supplied.)j(When)28 b(setting)h(new)f(limits,)h(if)f(neither)h(`)p Fs(-H)p Ft(')f(nor)f(`)p Fs(-S)p Ft(')h(is)h(supplied,)e(b)s(oth)h(the)630 -1229 y(hard)g(and)h(soft)h(limits)g(are)g(set.)41 b(If)29 +2804 y(hard)g(and)h(soft)h(limits)g(are)g(set.)41 b(If)29 b(no)g(option)h(is)f(giv)m(en,)i(then)e(`)p Fs(-f)p Ft(')h(is)f -(assumed.)40 b(V)-8 b(alues)630 1339 y(are)38 b(in)f(1024-b)m(yte)k +(assumed.)40 b(V)-8 b(alues)630 2914 y(are)38 b(in)f(1024-b)m(yte)k (incremen)m(ts,)f(except)e(for)g(`)p Fs(-t)p Ft(',)h(whic)m(h)e(is)h (in)f(seconds;)42 b(`)p Fs(-p)p Ft(',)d(whic)m(h)630 -1449 y(is)33 b(in)f(units)g(of)h(512-b)m(yte)i(blo)s(c)m(ks;)g(and)d(`) +3023 y(is)33 b(in)f(units)g(of)h(512-b)m(yte)i(blo)s(c)m(ks;)g(and)d(`) p Fs(-T)p Ft(',)i(`)p Fs(-b)p Ft(',)f(`)p Fs(-n)p Ft(')g(and)f(`)p -Fs(-u)p Ft(',)h(whic)m(h)g(are)g(unscaled)630 1558 y(v)-5 -b(alues.)630 1695 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an) +Fs(-u)p Ft(',)h(whic)m(h)g(are)g(unscaled)630 3133 y(v)-5 +b(alues.)630 3263 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 1804 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f -(limit.)150 1968 y Fs(unalias)870 2104 y(unalias)46 b([-a])g([)p -Fi(name)57 b Fs(...)47 b(])630 2241 y Ft(Remo)m(v)m(e)39 +(or)630 3373 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f +(limit.)150 3525 y Fs(unalias)870 3656 y(unalias)46 b([-a])g([)p +Fi(name)57 b Fs(...)47 b(])630 3786 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 -2350 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(87.)150 2589 y Fr(4.3)68 -b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)150 2813 y Fj(4.3.1)63 -b(The)41 b(Set)g(Builtin)150 2960 y Ft(This)35 b(builtin)h(is)g(so)g +3896 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(87.)150 4121 y Fr(4.3)68 +b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)150 4341 y Fj(4.3.1)63 +b(The)41 b(Set)g(Builtin)150 4488 y Ft(This)35 b(builtin)h(is)g(so)g (complicated)i(that)f(it)f(deserv)m(es)h(its)f(o)m(wn)g(section.)59 b Fs(set)35 b Ft(allo)m(ws)j(y)m(ou)e(to)h(c)m(hange)150 -3069 y(the)c(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f +4598 y(the)c(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f (p)s(ositional)h(parameters,)h(or)e(to)h(displa)m(y)f(the)g(names)h -(and)150 3179 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150 -3344 y Fs(set)870 3481 y(set)47 b([--abefhkmnptuvxBCEHPT])41 +(and)150 4707 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150 +4859 y Fs(set)870 4990 y(set)47 b([--abefhkmnptuvxBCEHPT])41 b([-o)47 b Fi(option-name)11 b Fs(])44 b([)p Fi(argument)56 -b Fs(...)o(])870 3590 y(set)47 b([+abefhkmnptuvxBCEHPT])42 +b Fs(...)o(])870 5100 y(set)47 b([+abefhkmnptuvxBCEHPT])42 b([+o)47 b Fi(option-name)11 b Fs(])43 b([)p Fi(argument)56 -b Fs(...)o(])630 3727 y Ft(If)22 b(no)h(options)g(or)g(argumen)m(ts)g +b Fs(...)o(])630 5230 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 3837 y(shell)j(v)-5 b(ariables)27 +b(alues)23 b(of)g(all)630 5340 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 3946 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 4056 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 4165 y(listed.)630 -4302 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 -4411 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630 -4575 y Fs(-a)384 b Ft(Mark)32 b(v)-5 b(ariables)33 b(and)e(function)h +(cale,)k(in)c(a)i(format)p eop end +%%Page: 58 64 +TeXDict begin 58 63 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(58)630 299 y(that)29 +b(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 +408 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 518 y(listed.)630 647 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 757 +y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630 +905 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 -4684 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f -(commands.)630 4848 y Fs(-b)384 b Ft(Cause)44 b(the)h(status)g(of)f +1014 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f +(commands.)630 1163 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 -4957 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 5121 y Fs(-e)384 +1272 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 1421 y Fs(-e)384 b Ft(Exit)65 b(immediately)g(if)f(a)h(pip)s(eline)e(\(see)i(Section)g -(3.2.2)h([Pip)s(elines],)1110 5230 y(page)56 b(8\),)62 +(3.2.2)h([Pip)s(elines],)1110 1530 y(page)56 b(8\),)62 b(whic)m(h)55 b(ma)m(y)h(consist)f(of)h(a)f(single)h(simple)f(command)g -(\(see)1110 5340 y(Section)30 b(3.2.1)i([Simple)d(Commands],)g(page)h -(8\),)h(a)f(list)g(\(see)h(Section)f(3.2.3)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)1110 299 y([Lists],)66 -b(page)59 b(9\),)67 b(or)58 b(a)h(comp)s(ound)e(command)h(\(see)h -(Section)g(3.2.4)1110 408 y([Comp)s(ound)67 b(Commands],)77 -b(page)69 b(9\))g(returns)e(a)i(non-zero)g(status.)1110 -518 y(The)41 b(shell)g(do)s(es)g(not)g(exit)h(if)f(the)h(command)f -(that)h(fails)f(is)g(part)g(of)h(the)1110 628 y(command)g(list)h +(\(see)1110 1640 y(Section)30 b(3.2.1)i([Simple)d(Commands],)g(page)h +(8\),)h(a)f(list)g(\(see)h(Section)f(3.2.3)1110 1749 +y([Lists],)66 b(page)59 b(9\),)67 b(or)58 b(a)h(comp)s(ound)e(command)h +(\(see)h(Section)g(3.2.4)1110 1859 y([Comp)s(ound)67 +b(Commands],)77 b(page)69 b(9\))g(returns)e(a)i(non-zero)g(status.)1110 +1969 y(The)41 b(shell)g(do)s(es)g(not)g(exit)h(if)f(the)h(command)f +(that)h(fails)f(is)g(part)g(of)h(the)1110 2078 y(command)g(list)h (immediately)g(follo)m(wing)g(a)g Fs(while)e Ft(or)h -Fs(until)e Ft(k)m(eyw)m(ord,)1110 737 y(part)61 b(of)g(the)g(test)h(in) -e(an)h Fs(if)f Ft(statemen)m(t,)71 b(part)61 b(of)g(an)m(y)g(command) -1110 847 y(executed)50 b(in)e(a)h Fs(&&)f Ft(or)h Fs(||)f -Ft(list)h(except)g(the)g(command)g(follo)m(wing)h(the)1110 -956 y(\014nal)37 b Fs(&&)g Ft(or)g Fs(||)p Ft(,)h(an)m(y)g(command)f +Fs(until)e Ft(k)m(eyw)m(ord,)1110 2188 y(part)61 b(of)g(the)g(test)h +(in)e(an)h Fs(if)f Ft(statemen)m(t,)71 b(part)61 b(of)g(an)m(y)g +(command)1110 2297 y(executed)50 b(in)e(a)h Fs(&&)f Ft(or)h +Fs(||)f Ft(list)h(except)g(the)g(command)g(follo)m(wing)h(the)1110 +2407 y(\014nal)37 b Fs(&&)g Ft(or)g Fs(||)p Ft(,)h(an)m(y)g(command)f (in)g(a)g(pip)s(eline)g(but)g(the)g(last,)j(or)e(if)f(the)1110 -1066 y(command's)c(return)f(status)h(is)g(b)s(eing)g(in)m(v)m(erted)h +2516 y(command's)c(return)f(status)h(is)g(b)s(eing)g(in)m(v)m(erted)h (with)e Fs(!)p Ft(.)48 b(If)33 b(a)g(comp)s(ound)1110 -1176 y(command)g(other)g(than)f(a)i(subshell)d(returns)h(a)h(non-zero)h -(status)f(b)s(ecause)1110 1285 y(a)g(command)f(failed)h(while)f(`)p +2626 y(command)g(other)g(than)f(a)i(subshell)d(returns)h(a)h(non-zero)h +(status)f(b)s(ecause)1110 2736 y(a)g(command)f(failed)h(while)f(`)p Fs(-e)p Ft(')h(w)m(as)f(b)s(eing)g(ignored,)h(the)g(shell)g(do)s(es)f -(not)1110 1395 y(exit.)42 b(A)30 b(trap)g(on)h Fs(ERR)p +(not)1110 2845 y(exit.)42 b(A)30 b(trap)g(on)h Fs(ERR)p Ft(,)e(if)i(set,)g(is)f(executed)i(b)s(efore)e(the)g(shell)h(exits.) -1110 1532 y(This)f(option)h(applies)f(to)h(the)g(shell)g(en)m(vironmen) -m(t)g(and)f(eac)m(h)h(subshell)f(en-)1110 1641 y(vironmen)m(t)j +1110 2974 y(This)f(option)h(applies)f(to)h(the)g(shell)g(en)m(vironmen) +m(t)g(and)f(eac)m(h)h(subshell)f(en-)1110 3084 y(vironmen)m(t)j (separately)i(\(see)f(Section)g(3.7.3)h([Command)d(Execution)i(En-)1110 -1751 y(vironmen)m(t],)i(page)f(36\),)i(and)d(ma)m(y)h(cause)f -(subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110 1861 y(cuting)d(all)g -(the)g(commands)f(in)g(the)g(subshell.)1110 1998 y(If)c(a)g(shell)h -(function)e(executes)j(in)e(a)g(con)m(text)i(where)e(`)p -Fs(-e)p Ft(')g(is)g(b)s(eing)g(ignored,)1110 2107 y(ev)m(en)j(if)f(`)p -Fs(-e)p Ft(')g(is)g(set,)h(none)f(of)g(the)g(commands)g(executed)h -(within)e(the)i(func-)1110 2217 y(tion)38 b(b)s(o)s(dy)e(will)i(b)s(e)e -(a\013ected)j(b)m(y)f(the)f(`)p Fs(-e)p Ft(')h(setting.)63 -b(If)37 b(a)h(shell)f(function)1110 2326 y(sets)i(`)p -Fs(-e)p Ft(')f(while)h(executing)g(in)f(a)h(con)m(text)i(where)d(`)p -Fs(-e)p Ft(')g(is)g(ignored,)j(that)1110 2436 y(setting)35 -b(will)f(not)g(ha)m(v)m(e)h(an)m(y)f(e\013ect)h(un)m(til)f(the)g -(command)f(con)m(taining)j(the)1110 2545 y(function)30 -b(call)i(completes.)630 2710 y Fs(-f)384 b Ft(Disable)31 -b(\014lename)g(expansion)f(\(globbing\).)630 2874 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 2984 y(execution.)42 -b(This)29 b(option)i(is)g(enabled)f(b)m(y)g(default.)630 -3148 y Fs(-k)384 b Ft(All)34 b(argumen)m(ts)g(in)f(the)h(form)f(of)g +3193 y(vironmen)m(t],)i(page)f(36\),)i(and)d(ma)m(y)h(cause)f +(subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110 3303 y(cuting)d(all)g +(the)g(commands)f(in)g(the)g(subshell.)1110 3432 y(If)41 +b(a)g(comp)s(ound)e(command)i(or)g(shell)g(function)g(executes)h(in)f +(a)g(con)m(text)1110 3541 y(where)26 b(`)p Fs(-e)p Ft(')g(is)g(b)s +(eing)g(ignored,)i(none)e(of)g(the)g(commands)g(executed)h(within)1110 +3651 y(the)35 b(comp)s(ound)f(command)h(or)g(function)f(b)s(o)s(dy)g +(will)h(b)s(e)f(a\013ected)j(b)m(y)e(the)1110 3761 y(`)p +Fs(-e)p Ft(')41 b(setting,)k(ev)m(en)d(if)g(`)p Fs(-e)p +Ft(')f(is)g(set)h(and)e(a)i(command)f(returns)f(a)i(failure)1110 +3870 y(status.)60 b(If)37 b(a)g(comp)s(ound)e(command)i(or)g(shell)g +(function)f(sets)h(`)p Fs(-e)p Ft(')g(while)1110 3980 +y(executing)f(in)f(a)g(con)m(text)i(where)d(`)p Fs(-e)p +Ft(')h(is)g(ignored,)h(that)f(setting)h(will)g(not)1110 +4089 y(ha)m(v)m(e)26 b(an)m(y)f(e\013ect)h(un)m(til)f(the)g(comp)s +(ound)e(command)h(or)h(the)g(command)f(con-)1110 4199 +y(taining)31 b(the)g(function)f(call)h(completes.)630 +4347 y Fs(-f)384 b Ft(Disable)31 b(\014lename)g(expansion)f +(\(globbing\).)630 4495 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 4605 y(execution.)42 b(This)29 +b(option)i(is)g(enabled)f(b)m(y)g(default.)630 4753 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 -3258 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 3367 y(command)30 -b(name.)630 3532 y Fs(-m)384 b Ft(Job)32 b(con)m(trol)h(is)f(enabled)g +4863 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 4973 y(command)30 +b(name.)630 5121 y Fs(-m)384 b Ft(Job)32 b(con)m(trol)h(is)f(enabled)g (\(see)h(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)e(97\).)47 -b(All)1110 3641 y(pro)s(cesses)27 b(run)f(in)i(a)g(separate)g(pro)s +b(All)1110 5230 y(pro)s(cesses)27 b(run)f(in)i(a)g(separate)g(pro)s (cess)f(group.)40 b(When)27 b(a)h(bac)m(kground)f(job)1110 -3751 y(completes,)32 b(the)f(shell)f(prin)m(ts)g(a)h(line)f(con)m -(taining)i(its)f(exit)g(status.)630 3915 y Fs(-n)384 +5340 y(completes,)32 b(the)f(shell)f(prin)m(ts)g(a)h(line)f(con)m +(taining)i(its)f(exit)g(status.)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)630 299 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 4025 y(a)42 +m(y)g(b)s(e)f(used)g(to)h(c)m(hec)m(k)1110 408 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 4134 y(shells.)630 -4299 y Fs(-o)30 b Fi(option-name)1110 4408 y Ft(Set)h(the)f(option)h +(ignored)g(b)m(y)g(in)m(teractiv)m(e)1110 518 y(shells.)630 +667 y Fs(-o)30 b Fi(option-name)1110 777 y Ft(Set)h(the)f(option)h (corresp)s(onding)e(to)i Fq(option-name)5 b Ft(:)1110 -4573 y Fs(allexport)1590 4682 y Ft(Same)30 b(as)h Fs(-a)p -Ft(.)1110 4847 y Fs(braceexpand)1590 4956 y Ft(Same)f(as)h -Fs(-B)p Ft(.)1110 5121 y Fs(emacs)240 b Ft(Use)25 b(an)f +927 y Fs(allexport)1590 1036 y Ft(Same)30 b(as)h Fs(-a)p +Ft(.)1110 1186 y Fs(braceexpand)1590 1295 y Ft(Same)f(as)h +Fs(-B)p Ft(.)1110 1445 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 5230 y([Command)33 b(Line)g(Editing],)h(page)h -(101\).)51 b(This)32 b(also)i(a\013ects)1590 5340 y(the)d(editing)g(in) -m(terface)h(used)d(for)h Fs(read)f(-e)p Ft(.)p eop end +(Chapter)e(8)1590 1554 y([Command)33 b(Line)g(Editing],)h(page)h +(101\).)51 b(This)32 b(also)i(a\013ects)1590 1664 y(the)d(editing)g(in) +m(terface)h(used)d(for)h Fs(read)f(-e)p Ft(.)1110 1813 +y Fs(errexit)144 b Ft(Same)30 b(as)h Fs(-e)p Ft(.)1110 +1963 y Fs(errtrace)96 b Ft(Same)30 b(as)h Fs(-E)p Ft(.)1110 +2112 y Fs(functrace)1590 2222 y Ft(Same)f(as)h Fs(-T)p +Ft(.)1110 2371 y Fs(hashall)144 b Ft(Same)30 b(as)h Fs(-h)p +Ft(.)1110 2521 y Fs(histexpand)1590 2630 y Ft(Same)f(as)h +Fs(-H)p Ft(.)1110 2780 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 2889 y([Bash)d(History)g(F)-8 b(acilities],)41 b(page)c(133.)60 +b(This)36 b(option)h(is)f(on)1590 2999 y(b)m(y)30 b(default)h(in)f(in)m +(teractiv)m(e)j(shells.)1110 3148 y Fs(ignoreeof)1590 +3258 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 3407 y Fs(keyword)144 b Ft(Same)30 +b(as)h Fs(-k)p Ft(.)1110 3557 y Fs(monitor)144 b Ft(Same)30 +b(as)h Fs(-m)p Ft(.)1110 3706 y Fs(noclobber)1590 3816 +y Ft(Same)f(as)h Fs(-C)p Ft(.)1110 3965 y Fs(noexec)192 +b Ft(Same)30 b(as)h Fs(-n)p Ft(.)1110 4115 y Fs(noglob)192 +b Ft(Same)30 b(as)h Fs(-f)p Ft(.)1110 4264 y Fs(nolog)240 +b Ft(Curren)m(tly)30 b(ignored.)1110 4413 y Fs(notify)192 +b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110 4563 y Fs(nounset)144 +b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110 4712 y Fs(onecmd)192 +b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110 4862 y Fs(physical)96 +b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110 5011 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 5121 y(the)33 +b(last)h(\(righ)m(tmost\))h(command)e(to)h(exit)g(with)f(a)g(non-zero) +1590 5230 y(status,)28 b(or)f(zero)g(if)f(all)i(commands)e(in)g(the)h +(pip)s(eline)f(exit)i(suc-)1590 5340 y(cessfully)-8 b(.)41 +b(This)30 b(option)h(is)f(disabled)g(b)m(y)h(default.)p +eop end %%Page: 60 66 -TeXDict begin 60 65 bop 150 -116 a Ft(60)2572 b(Bash)31 -b(Reference)g(Man)m(ual)1110 299 y Fs(errexit)144 b Ft(Same)30 -b(as)h Fs(-e)p Ft(.)1110 461 y Fs(errtrace)96 b Ft(Same)30 -b(as)h Fs(-E)p Ft(.)1110 622 y Fs(functrace)1590 732 -y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 894 y Fs(hashall)144 -b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 1056 y Fs(histexpand)1590 -1165 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 1327 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 1437 y([Bash)d(History)g(F)-8 b(acilities],)41 -b(page)c(133.)60 b(This)36 b(option)h(is)f(on)1590 1546 -y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)1110 -1708 y Fs(ignoreeof)1590 1817 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 1979 -y Fs(keyword)144 b Ft(Same)30 b(as)h Fs(-k)p Ft(.)1110 -2141 y Fs(monitor)144 b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110 -2303 y Fs(noclobber)1590 2412 y Ft(Same)f(as)h Fs(-C)p -Ft(.)1110 2574 y Fs(noexec)192 b Ft(Same)30 b(as)h Fs(-n)p -Ft(.)1110 2736 y Fs(noglob)192 b Ft(Same)30 b(as)h Fs(-f)p -Ft(.)1110 2898 y Fs(nolog)240 b Ft(Curren)m(tly)30 b(ignored.)1110 -3059 y Fs(notify)192 b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110 -3221 y Fs(nounset)144 b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110 -3383 y Fs(onecmd)192 b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110 -3545 y Fs(physical)96 b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110 -3707 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 3816 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h -(exit)g(with)f(a)g(non-zero)1590 3926 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 -4035 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h -(default.)1110 4197 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 -4307 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 4416 y(dard)32 -b(\(see)i(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s(de],)j(page)e(92\).) -1590 4526 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 4635 y(p)s(erset)30 -b(of)h(that)f(standard.)1110 4797 y Fs(privileged)1590 -4907 y Ft(Same)g(as)h Fs(-p)p Ft(.)1110 5069 y Fs(verbose)144 -b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110 5230 y Fs(vi)384 +TeXDict begin 60 65 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(60)1110 299 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 408 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 +518 y(dard)32 b(\(see)i(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s(de],)j +(page)e(93\).)1590 628 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 737 y(p)s(erset)30 +b(of)h(that)f(standard.)1110 911 y Fs(privileged)1590 +1020 y Ft(Same)g(as)h Fs(-p)p Ft(.)1110 1194 y Fs(verbose)144 +b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110 1367 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 5340 y(the)31 +(terface.)58 b(This)35 b(also)h(a\013ects)1590 1477 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h Fs(read)f(-e)p -Ft(.)p eop end -%%Page: 61 67 -TeXDict begin 61 66 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(61)1110 299 y -Fs(xtrace)192 b Ft(Same)30 b(as)h Fs(-x)p Ft(.)630 458 -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 568 y Ft(\014les)23 b(are)h(not)f(pro)s(cessed,)h(shell)g -(functions)e(are)i(not)f(inherited)g(from)f(the)i(en-)1110 -677 y(vironmen)m(t,)h(and)e(the)g Fs(SHELLOPTS)p Ft(,)f +Ft(.)1110 1650 y Fs(xtrace)192 b Ft(Same)30 b(as)h Fs(-x)p +Ft(.)630 1824 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 1934 y Ft(\014les)23 b(are)h(not)f(pro)s(cessed,) +h(shell)g(functions)e(are)i(not)f(inherited)g(from)f(the)i(en-)1110 +2043 y(vironmen)m(t,)h(and)e(the)g Fs(SHELLOPTS)p Ft(,)f Fs(BASHOPTS)p Ft(,)h Fs(CDPATH)e Ft(and)i Fs(GLOBIGNORE)1110 -787 y Ft(v)-5 b(ariables,)23 b(if)e(they)g(app)s(ear)f(in)g(the)h(en)m +2153 y Ft(v)-5 b(ariables,)23 b(if)e(they)g(app)s(ear)f(in)g(the)h(en)m (vironmen)m(t,)i(are)e(ignored.)38 b(If)20 b(the)h(shell)1110 -897 y(is)37 b(started)h(with)f(the)g(e\013ectiv)m(e)j(user)d(\(group\)) -g(id)g(not)g(equal)h(to)g(the)f(real)1110 1006 y(user)d(\(group\))g -(id,)i(and)e(the)g(`)p Fs(-p)p Ft(')g(option)h(is)g(not)f(supplied,)h -(these)g(actions)1110 1116 y(are)d(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 1225 y(`)p Fs(-p)p Ft(')e(option)i(is)e(supplied)g -(at)h(startup,)f(the)h(e\013ectiv)m(e)i(user)d(id)h(is)f(not)h(reset.) -1110 1335 y(T)-8 b(urning)35 b(this)i(option)g(o\013)g(causes)g(the)g +2262 y(is)37 b(started)h(with)f(the)g(e\013ectiv)m(e)j(user)d +(\(group\))g(id)g(not)g(equal)h(to)g(the)f(real)1110 +2372 y(user)d(\(group\))g(id,)i(and)e(the)g(`)p Fs(-p)p +Ft(')g(option)h(is)g(not)f(supplied,)h(these)g(actions)1110 +2482 y(are)d(tak)m(en)i(and)d(the)h(e\013ectiv)m(e)j(user)c(id)h(is)g +(set)h(to)f(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110 +2591 y(`)p Fs(-p)p Ft(')e(option)i(is)e(supplied)g(at)h(startup,)f(the) +h(e\013ectiv)m(e)i(user)d(id)h(is)f(not)h(reset.)1110 +2701 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 -1445 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f(and)g(group)g(ids.)630 -1604 y Fs(-t)384 b Ft(Exit)31 b(after)g(reading)f(and)g(executing)h -(one)g(command.)630 1763 y Fs(-u)384 b Ft(T)-8 b(reat)25 +2810 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f(and)g(group)g(ids.)630 +2984 y Fs(-t)384 b Ft(Exit)31 b(after)g(reading)f(and)g(executing)h +(one)g(command.)630 3157 y Fs(-u)384 b Ft(T)-8 b(reat)25 b(unset)e(v)-5 b(ariables)25 b(and)e(parameters)h(other)h(than)e(the)h -(sp)s(ecial)h(param-)1110 1873 y(eters)35 b(`)p Fs(@)p +(sp)s(ecial)h(param-)1110 3267 y(eters)35 b(`)p Fs(@)p Ft(')f(or)g(`)p Fs(*)p Ft(')h(as)f(an)g(error)g(when)f(p)s(erforming)g -(parameter)i(expansion.)1110 1983 y(An)28 b(error)h(message)g(will)g(b) +(parameter)i(expansion.)1110 3377 y(An)28 b(error)h(message)g(will)g(b) s(e)f(written)h(to)h(the)e(standard)g(error,)h(and)f(a)h(non-)1110 -2092 y(in)m(teractiv)m(e)k(shell)e(will)g(exit.)630 2252 +3486 y(in)m(teractiv)m(e)k(shell)e(will)g(exit.)630 3660 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 2411 y Fs(-x)384 b Ft(Prin)m(t)21 b(a)h(trace)h(of)f +h(read.)630 3833 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 2521 y Fs(select)29 b Ft(commands,)j(and)e +Ft(commands,)1110 3943 y Fs(select)29 b Ft(commands,)j(and)e (arithmetic)j Fs(for)d Ft(commands)h(and)f(their)i(argu-)1110 -2630 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 2740 y(they)i(are)g(executed.)49 +4052 y(men)m(ts)h(or)f(asso)s(ciated)i(w)m(ord)e(lists)h(after)g(they)f +(are)h(expanded)f(and)f(b)s(efore)1110 4162 y(they)i(are)g(executed.)49 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 2849 y(the)24 +b(ariable)34 b(is)f(expanded)f(and)1110 4271 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 2959 y(argumen)m(ts.)630 -3118 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 3228 +(command)g(and)f(its)i(expanded)1110 4381 y(argumen)m(ts.)630 +4555 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 4664 y(Expansion],)30 b(page)h(21\).)42 b(This)30 b(option)h(is)f(on)g(b)m -(y)h(default.)630 3387 y Fs(-C)384 b Ft(Prev)m(en)m(t)25 +(y)h(default.)630 4838 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 -3497 y(existing)31 b(\014les.)630 3656 y Fs(-E)384 b +4947 y(existing)31 b(\014les.)630 5121 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 3766 y(substitutions,)35 +(y)g(shell)h(functions,)h(command)1110 5230 y(substitutions,)35 b(and)e(commands)g(executed)i(in)f(a)g(subshell)f(en)m(vironmen)m(t.) -1110 3875 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 4035 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 4144 y(teraction],)g(page)d +1110 5340 y(The)d Fs(ERR)f Ft(trap)i(is)f(normally)h(not)f(inherited)g +(in)g(suc)m(h)g(cases.)p eop end +%%Page: 61 67 +TeXDict begin 61 66 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(61)630 299 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 408 y(teraction],)g(page)d (135\).)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 4254 y(shells.)630 4413 y Fs(-P)384 +(teractiv)m(e)1110 518 y(shells.)630 670 y Fs(-P)384 b Ft(If)39 b(set,)j(do)d(not)g(resolv)m(e)i(sym)m(b)s(olic)e(links)g -(when)f(p)s(erforming)g(commands)1110 4523 y(suc)m(h)29 +(when)f(p)s(erforming)g(commands)1110 780 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 4633 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 4742 y(directories)j(when)d(p)s(erforming)h +-8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 890 y(tory)j(is)g(used)f +(instead.)52 b(By)34 b(default,)h(Bash)f(follo)m(ws)h(the)f(logical)i +(c)m(hain)f(of)1110 999 y(directories)j(when)d(p)s(erforming)h (commands)g(whic)m(h)g(c)m(hange)i(the)f(curren)m(t)1110 -4852 y(directory)-8 b(.)1110 4986 y(F)g(or)31 b(example,)g(if)f(`)p +1109 y(directory)-8 b(.)1110 1240 y(F)g(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 5096 y(then:)1350 5230 -y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 5340 y(/usr/sys)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)1350 299 y Fs($)47 b(cd)h(..;)f(pwd)1350 -408 y(/usr)1110 540 y Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)1350 -672 y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 782 -y(/usr/local/sys)1350 891 y($)g(cd)h(..;)f(pwd)1350 1001 -y(/usr/local)630 1155 y(-T)384 b Ft(If)34 b(set,)j(an)m(y)e(trap)g(on)g +Fs(/usr/local/sys)p Ft(')1110 1349 y(then:)1350 1480 +y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 1590 y(/usr/sys)1350 +1700 y($)g(cd)h(..;)f(pwd)1350 1809 y(/usr)1110 1940 +y Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)1350 2071 +y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 2181 y(/usr/local/sys) +1350 2290 y($)g(cd)h(..;)f(pwd)1350 2400 y(/usr/local)630 +2552 y(-T)384 b 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 1265 y(tions,)k(command)d(substitutions,)h(and)f(commands)g -(executed)h(in)f(a)h(sub-)1110 1374 y(shell)33 b(en)m(vironmen)m(t.)49 +(func-)1110 2662 y(tions,)k(command)d(substitutions,)h(and)f(commands)g +(executed)h(in)f(a)h(sub-)1110 2771 y(shell)33 b(en)m(vironmen)m(t.)49 b(The)32 b Fs(DEBUG)g Ft(and)g Fs(RETURN)f Ft(traps)h(are)i(normally)f -(not)1110 1484 y(inherited)d(in)g(suc)m(h)g(cases.)630 -1638 y Fs(--)384 b Ft(If)31 b(no)h(argumen)m(ts)f(follo)m(w)i(this)f +(not)1110 2881 y(inherited)d(in)g(suc)m(h)g(cases.)630 +3033 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 -1748 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 1857 +3143 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 3253 y(gumen)m(ts)t Ft(,)d(ev)m(en)g(if)f(some)h(of)f(them)h(b)s(egin)f -(with)g(a)g(`)p Fs(-)p Ft('.)630 2012 y Fs(-)432 b Ft(Signal)45 +(with)g(a)g(`)p Fs(-)p Ft('.)630 3405 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 2121 y(assigned)38 +Fq(argumen)m(ts)49 b Ft(to)d(b)s(e)1110 3515 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 -2231 y(are)25 b(turned)e(o\013.)40 b(If)24 b(there)h(are)g(no)f +3624 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 -2340 y(remain)k(unc)m(hanged.)630 2495 y(Using)d(`)p +3734 y(remain)k(unc)m(hanged.)630 3886 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 -2604 y(also)36 b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e +3996 y(also)36 b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e (the)g(shell.)56 b(The)34 b(curren)m(t)h(set)h(of)f(options)h(ma)m(y)g -(b)s(e)630 2714 y(found)29 b(in)h Fs($-)p Ft(.)630 2846 +(b)s(e)630 4105 y(found)29 b(in)h Fs($-)p Ft(.)630 4236 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 2955 y(order,)30 +g(parameters)g(and)f(are)h(assigned,)j(in)630 4346 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 3087 y(The)f(return)f(status)i(is)f(alw)m(a)m +Ft(is)g(set)h(to)g(N.)630 4477 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 3281 y Fj(4.3.2)63 b(The)41 b(Shopt)h(Builtin)150 -3428 y Ft(This)30 b(builtin)g(allo)m(ws)h(y)m(ou)g(to)g(c)m(hange)h +(supplied.)150 4669 y Fj(4.3.2)63 b(The)41 b(Shopt)h(Builtin)150 +4816 y Ft(This)30 b(builtin)g(allo)m(ws)h(y)m(ou)g(to)g(c)m(hange)h (additional)f(shell)f(optional)i(b)s(eha)m(vior.)150 -3583 y Fs(shopt)870 3714 y(shopt)46 b([-pqsu])g([-o])h([)p -Fi(optname)56 b Fs(...)o(])630 3846 y Ft(T)-8 b(oggle)47 +4968 y Fs(shopt)870 5099 y(shopt)46 b([-pqsu])g([-o])h([)p +Fi(optname)56 b Fs(...)o(])630 5230 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 -3956 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 4066 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 4175 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 4285 y(follo)m(wing)32 b(meanings:)630 4439 y Fs(-s)384 +5340 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)p +eop end +%%Page: 62 68 +TeXDict begin 62 67 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(62)630 299 y(an)34 +b(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 +408 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 +518 y(follo)m(wing)32 b(meanings:)630 663 y Fs(-s)384 b Ft(Enable)30 b(\(set\))i(eac)m(h)f Fq(optname)5 b Ft(.)630 -4593 y Fs(-u)384 b Ft(Disable)31 b(\(unset\))g(eac)m(h)h -Fq(optname)5 b Ft(.)630 4747 y Fs(-q)384 b Ft(Suppresses)28 +807 y Fs(-u)384 b Ft(Disable)31 b(\(unset\))g(eac)m(h)h +Fq(optname)5 b Ft(.)630 952 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 4857 y Fq(optname)37 b Ft(is)31 b(set)h(or)f(unset.)43 +1110 1062 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 4967 y(with)43 b(`)p Fs(-q)p Ft(',)j(the)d +b(are)h(giv)m(en)1110 1171 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 5076 y(non-zero)31 b(otherwise.)630 -5230 y Fs(-o)384 b Ft(Restricts)28 b(the)g(v)-5 b(alues)28 +Ft(are)d(enabled;)1110 1281 y(non-zero)31 b(otherwise.)630 +1425 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 5340 y(tion)23 b(to)h(the)f +(`)p Fs(-o)p Ft(')h(op-)1110 1535 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(58\).)p eop end -%%Page: 63 69 -TeXDict begin 63 68 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(63)630 299 y(If)40 -b(either)g(`)p Fs(-s)p Ft(')g(or)g(`)p Fs(-u)p Ft(')g(is)g(used)g(with) -g(no)g Fq(optname)45 b Ft(argumen)m(ts,)e Fs(shopt)c -Ft(sho)m(ws)h(only)630 408 y(those)31 b(options)g(whic)m(h)f(are)g(set) -h(or)g(unset,)f(resp)s(ectiv)m(ely)-8 b(.)630 553 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 697 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 806 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 916 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 -1060 y(The)f(list)h(of)f Fs(shopt)f Ft(options)i(is:)630 -1239 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 -1349 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 -1458 y(used)g(b)m(y)g(in)m(teractiv)m(e)j(shells.)630 -1637 y Fs(cdable_vars)1110 1747 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 1856 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 1966 y(the)g(directory)f(to)i(c)m(hange)f(to.)630 -2145 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 2254 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 -2364 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47 +h(page)e(57\).)630 1680 y(If)40 b(either)g(`)p Fs(-s)p +Ft(')g(or)g(`)p Fs(-u)p Ft(')g(is)g(used)g(with)g(no)g +Fq(optname)45 b Ft(argumen)m(ts,)e Fs(shopt)c Ft(sho)m(ws)h(only)630 +1789 y(those)31 b(options)g(whic)m(h)f(are)g(set)h(or)g(unset,)f(resp)s +(ectiv)m(ely)-8 b(.)630 1916 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 2044 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 2153 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 +2263 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 2390 y(The)f(list)h(of)f +Fs(shopt)f Ft(options)i(is:)630 2534 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 2644 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 2754 y(used)g(b)m(y)g(in)m +(teractiv)m(e)j(shells.)630 2898 y Fs(cdable_vars)1110 +3008 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 3118 +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 3227 +y(the)g(directory)f(to)i(c)m(hange)f(to.)630 3372 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 3481 +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 +3591 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 2473 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 2583 +b(If)42 b(a)1110 3701 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 3810 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 2762 y Fs(checkhash)1110 -2871 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 2981 +(teractiv)m(e)k(shells.)630 3955 y Fs(checkhash)1110 +4064 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 4174 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 3091 +b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 4284 y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)630 -3269 y Fs(checkjobs)1110 3379 y Ft(If)d(set,)i(Bash)e(lists)h(the)g +4428 y Fs(checkjobs)1110 4538 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 3488 y(exiting)42 b(an)f(in)m(teractiv)m(e)j(shell.)72 +1110 4647 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 -3598 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 3708 y(in)m(terv)m(ening)j +4757 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 4867 y(in)m(terv)m(ening)j (command)e(\(see)h(Chapter)f(7)h([Job)f(Con)m(trol],)i(page)f(97\).)42 -b(The)1110 3817 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 3996 y Fs(checkwinsize)1110 -4106 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 4215 y(necessary)-8 +b(The)1110 4976 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 5121 y Fs(checkwinsize)1110 +5230 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 5340 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 4394 y Fs(cmdhist)144 +Ft(and)g Fs(COLUMNS)p Ft(.)p eop end +%%Page: 63 69 +TeXDict begin 63 68 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(63)630 299 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 4504 y(in)c(the)g(same)g +(of)g(a)h(m)m(ultiple-line)g(command)1110 408 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 4613 y(commands.)630 -4792 y Fs(compat31)96 b Ft(If)27 b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s +(re-editing)g(of)f(m)m(ulti-line)1110 518 y(commands.)630 +690 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 4902 y(to)39 b(quoted)f(argumen)m(ts)g(to)h(the)f(conditional)h -(command's)f(`)p Fs(=~)p Ft(')g(op)s(erator)1110 5011 +1110 800 y(to)39 b(quoted)f(argumen)m(ts)g(to)h(the)f(conditional)h +(command's)f(`)p Fs(=~)p Ft(')g(op)s(erator)1110 909 y(and)i(with)f(resp)s(ect)i(to)g(lo)s(cale-sp)s(eci\014c)h(string)e -(comparison)g(when)f(using)1110 5121 y(the)25 b(`)p Fs([[)p -Ft(')f(conditional)h(command's)g(`)p Fs(<)p Ft(')f(and)g(`)p -Fs(>)p Ft(')g(op)s(erators.)39 b(Bash)25 b(v)m(ersions)1110 -5230 y(prior)31 b(to)h(bash-4.1)g(use)g(ASCI)s(I)e(collation)j(and)e -(strcmp\(3\);)i(bash-4.1)g(and)1110 5340 y(later)e(use)f(the)h(curren)m -(t)f(lo)s(cale's)i(collation)h(sequence)e(and)f(strcoll\(3\).)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)630 299 y Fs(compat32)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.2)h(with)e(resp)s(ect)1110 408 y(to)h(lo)s(cale-sp)s -(eci\014c)g(string)f(comparison)g(when)f(using)g(the)h(`)p -Fs([[)p Ft(')g(conditional)1110 518 y(command's)j(`)p -Fs(<)p Ft(')h(and)f(`)p Fs(>)p Ft(')g(op)s(erators)h(\(see)g(previous)f -(item\).)630 669 y Fs(compat40)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(4.0)h -(with)e(resp)s(ect)1110 778 y(to)h(lo)s(cale-sp)s(eci\014c)g(string)f -(comparison)g(when)f(using)g(the)h(`)p Fs([[)p Ft(')g(conditional)1110 -888 y(command's)h(`)p Fs(<)p Ft(')h(and)f(`)p Fs(>)p -Ft(')h(op)s(erators)f(\(see)i(description)e(of)h Fs(compat31)p -Ft(\))e(and)1110 998 y(the)38 b(e\013ect)i(of)e(in)m(terrupting)f(a)i -(command)e(list.)64 b(Bash)38 b(v)m(ersions)h(4.0)g(and)1110 -1107 y(later)24 b(in)m(terrupt)f(the)g(list)h(as)g(if)f(the)h(shell)f -(receiv)m(ed)i(the)e(in)m(terrupt;)i(previous)1110 1217 -y(v)m(ersions)31 b(con)m(tin)m(ue)g(with)f(the)h(next)g(command)f(in)g -(the)g(list.)630 1367 y Fs(compat41)96 b Ft(If)27 b(set,)i(Bash,)g -(when)e(in)g(p)s(osix)g(mo)s(de,)h(treats)h(a)f(single)g(quote)h(in)e -(a)h(double-)1110 1477 y(quoted)46 b(parameter)h(expansion)f(as)g(a)h -(sp)s(ecial)f(c)m(haracter.)90 b(The)45 b(single)1110 -1587 y(quotes)34 b(m)m(ust)g(matc)m(h)h(\(an)f(ev)m(en)h(n)m(um)m(b)s -(er\))e(and)g(the)h(c)m(haracters)h(b)s(et)m(w)m(een)1110 -1696 y(the)40 b(single)g(quotes)g(are)g(considered)g(quoted.)69 -b(This)38 b(is)i(the)g(b)s(eha)m(vior)g(of)1110 1806 -y Fl(posix)f Ft(mo)s(de)g(through)g(v)m(ersion)h(4.1.)69 -b(The)39 b(default)g(Bash)h(b)s(eha)m(vior)g(re-)1110 -1915 y(mains)30 b(as)h(in)f(previous)g(v)m(ersions.)630 -2066 y Fs(complete_fullquote)1110 2176 y Ft(If)h(set,)g(Bash)h(quotes)f -(all)h(shell)f(metac)m(haracters)i(in)e(\014lenames)g(and)g(direc-)1110 -2285 y(tory)g(names)f(when)g(p)s(erforming)f(completion.)43 -b(If)30 b(not)h(set,)g(Bash)g(remo)m(v)m(es)1110 2395 -y(metac)m(haracters)40 b(suc)m(h)d(as)h(the)g(dollar)g(sign)g(from)f -(the)h(set)g(of)f(c)m(haracters)1110 2504 y(that)f(will)g(b)s(e)f -(quoted)g(in)g(completed)i(\014lenames)e(when)f(these)i(metac)m(har-) -1110 2614 y(acters)29 b(app)s(ear)e(in)g(shell)h(v)-5 -b(ariable)28 b(references)g(in)f(w)m(ords)g(to)i(b)s(e)e(completed.) -1110 2724 y(This)k(means)i(that)g(dollar)f(signs)g(in)g(v)-5 -b(ariable)33 b(names)g(that)f(expand)g(to)h(di-)1110 -2833 y(rectories)28 b(will)g(not)f(b)s(e)f(quoted;)j(ho)m(w)m(ev)m(er,) -g(an)m(y)e(dollar)h(signs)f(app)s(earing)f(in)1110 2943 +(comparison)g(when)f(using)1110 1019 y(the)31 b Fs([[)e +Ft(conditional)j(command's)e(`)p Fs(<)p Ft(')h(and)f(`)p +Fs(>)p Ft(')g(op)s(erators.)41 b(Bash)31 b(v)m(ersions)1110 +1129 y(prior)g(to)h(bash-4.1)g(use)g(ASCI)s(I)e(collation)j(and)e +(strcmp\(3\);)i(bash-4.1)g(and)1110 1238 y(later)e(use)f(the)h(curren)m +(t)f(lo)s(cale's)i(collation)h(sequence)e(and)f(strcoll\(3\).)630 +1410 y Fs(compat32)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.2)h(with)e(resp)s(ect) +1110 1520 y(to)34 b(lo)s(cale-sp)s(eci\014c)h(string)e(comparison)g +(when)f(using)h(the)g Fs([[)g Ft(conditional)1110 1630 +y(command's)d(`)p Fs(<)p Ft(')h(and)f(`)p Fs(>)p Ft(')g(op)s(erators)h +(\(see)g(previous)f(item\).)630 1802 y Fs(compat40)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(4.0)h(with)e(resp)s(ect)1110 +1911 y(to)34 b(lo)s(cale-sp)s(eci\014c)h(string)e(comparison)g(when)f +(using)h(the)g Fs([[)g Ft(conditional)1110 2021 y(command's)28 +b(`)p Fs(<)p Ft(')h(and)f(`)p Fs(>)p Ft(')h(op)s(erators)f(\(see)i +(description)e(of)h Fs(compat31)p Ft(\))e(and)1110 2131 +y(the)38 b(e\013ect)i(of)e(in)m(terrupting)f(a)i(command)e(list.)64 +b(Bash)38 b(v)m(ersions)h(4.0)g(and)1110 2240 y(later)24 +b(in)m(terrupt)f(the)g(list)h(as)g(if)f(the)h(shell)f(receiv)m(ed)i +(the)e(in)m(terrupt;)i(previous)1110 2350 y(v)m(ersions)31 +b(con)m(tin)m(ue)g(with)f(the)h(next)g(command)f(in)g(the)g(list.)630 +2522 y Fs(compat41)96 b Ft(If)27 b(set,)i(Bash,)g(when)e(in)g(p)s(osix) +g(mo)s(de,)h(treats)h(a)f(single)g(quote)h(in)e(a)h(double-)1110 +2632 y(quoted)46 b(parameter)h(expansion)f(as)g(a)h(sp)s(ecial)f(c)m +(haracter.)90 b(The)45 b(single)1110 2741 y(quotes)34 +b(m)m(ust)g(matc)m(h)h(\(an)f(ev)m(en)h(n)m(um)m(b)s(er\))e(and)g(the)h +(c)m(haracters)h(b)s(et)m(w)m(een)1110 2851 y(the)40 +b(single)g(quotes)g(are)g(considered)g(quoted.)69 b(This)38 +b(is)i(the)g(b)s(eha)m(vior)g(of)1110 2960 y Fl(posix)f +Ft(mo)s(de)g(through)g(v)m(ersion)h(4.1.)69 b(The)39 +b(default)g(Bash)h(b)s(eha)m(vior)g(re-)1110 3070 y(mains)30 +b(as)h(in)f(previous)g(v)m(ersions.)630 3242 y Fs(compat42)96 +b Ft(If)29 b(set,)i(Bash)f(do)s(es)f(not)h(pro)s(cess)g(the)g +(replacemen)m(t)h(string)e(in)h(the)g(pattern)1110 3352 +y(substitution)g(w)m(ord)g(expansion)g(using)g(quote)h(remo)m(v)-5 +b(al.)630 3524 y Fs(complete_fullquote)1110 3634 y Ft(If)31 +b(set,)g(Bash)h(quotes)f(all)h(shell)f(metac)m(haracters)i(in)e +(\014lenames)g(and)g(direc-)1110 3743 y(tory)g(names)f(when)g(p)s +(erforming)f(completion.)43 b(If)30 b(not)h(set,)g(Bash)g(remo)m(v)m +(es)1110 3853 y(metac)m(haracters)40 b(suc)m(h)d(as)h(the)g(dollar)g +(sign)g(from)f(the)h(set)g(of)f(c)m(haracters)1110 3962 +y(that)f(will)g(b)s(e)f(quoted)g(in)g(completed)i(\014lenames)e(when)f +(these)i(metac)m(har-)1110 4072 y(acters)29 b(app)s(ear)e(in)g(shell)h +(v)-5 b(ariable)28 b(references)g(in)f(w)m(ords)g(to)i(b)s(e)e +(completed.)1110 4181 y(This)k(means)i(that)g(dollar)f(signs)g(in)g(v) +-5 b(ariable)33 b(names)g(that)f(expand)g(to)h(di-)1110 +4291 y(rectories)28 b(will)g(not)f(b)s(e)f(quoted;)j(ho)m(w)m(ev)m(er,) +g(an)m(y)e(dollar)h(signs)f(app)s(earing)f(in)1110 4401 y(\014lenames)j(will)h(not)f(b)s(e)g(quoted,)h(either.)41 b(This)28 b(is)i(activ)m(e)h(only)e(when)g(bash)1110 -3052 y(is)39 b(using)f(bac)m(kslashes)i(to)g(quote)g(completed)f -(\014lenames.)67 b(This)38 b(v)-5 b(ariable)1110 3162 +4510 y(is)39 b(using)f(bac)m(kslashes)i(to)g(quote)g(completed)f +(\014lenames.)67 b(This)38 b(v)-5 b(ariable)1110 4620 y(is)41 b(set)g(b)m(y)g(default,)j(whic)m(h)c(is)h(the)g(default)g -(Bash)g(b)s(eha)m(vior)g(in)g(v)m(ersions)1110 3271 y(through)30 -b(4.2.)630 3422 y Fs(direxpand)1110 3532 y Ft(If)k(set,)i(Bash)f +(Bash)g(b)s(eha)m(vior)g(in)g(v)m(ersions)1110 4729 y(through)30 +b(4.2.)630 4902 y Fs(direxpand)1110 5011 y Ft(If)k(set,)i(Bash)f (replaces)g(directory)g(names)g(with)f(the)g(results)h(of)f(w)m(ord)g -(ex-)1110 3641 y(pansion)k(when)g(p)s(erforming)f(\014lename)i -(completion.)67 b(This)38 b(c)m(hanges)i(the)1110 3751 +(ex-)1110 5121 y(pansion)k(when)g(p)s(erforming)f(\014lename)i +(completion.)67 b(This)38 b(c)m(hanges)i(the)1110 5230 y(con)m(ten)m(ts)29 b(of)e(the)g(readline)h(editing)g(bu\013er.)38 -b(If)27 b(not)g(set,)i(Bash)e(attempts)h(to)1110 3861 -y(preserv)m(e)j(what)f(the)g(user)g(t)m(yp)s(ed.)630 -4011 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 -4121 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 4230 y(exist.)630 -4381 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 4491 y(\014lename)j(expansion.)630 -4641 y Fs(execfail)96 b Ft(If)24 b(this)h(is)f(set,)j(a)e(non-in)m +b(If)27 b(not)g(set,)i(Bash)e(attempts)h(to)1110 5340 +y(preserv)m(e)j(what)f(the)g(user)g(t)m(yp)s(ed.)p eop +end +%%Page: 64 70 +TeXDict begin 64 69 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(64)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 4751 y(the)i(\014le)g(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to) +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 -4861 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 5011 y Fs(expand_aliases)1110 -5121 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 5230 y(tion)38 +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(87.)64 b(This)37 b(option)h(is)g(enabled)g -(b)m(y)g(default)g(for)1110 5340 y(in)m(teractiv)m(e)33 -b(shells.)p eop end -%%Page: 65 71 -TeXDict begin 65 70 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(65)630 299 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 433 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 542 y(Builtins],)29 -b(page)g(48\))g(displa)m(ys)f(the)g(source)h(\014le)f(name)g(and)f -(line)h(n)m(um-)1290 652 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 762 -y(men)m(t.)1159 896 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 1005 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g -(not)i(executed.)1159 1139 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m +(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(47\))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 1249 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 1358 y(a)h(shell)h +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 1468 y Fs(return)29 -b Ft(is)h(sim)m(ulated.)1159 1602 y(4.)61 b Fs(BASH_ARGC)34 +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 1711 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g -(V)-8 b(ariables],)32 b(page)f(69\).)1159 1845 y(5.)61 +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(68\).)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 1955 y(functions,)30 +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 -Fi(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 2064 -y Fs(DEBUG)f Ft(and)h Fs(RETURN)e Ft(traps.)1159 2198 +Fi(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)41 b(tracing)i(is)f(enabled:)63 b(command)42 -b(substitution,)i(shell)f(func-)1290 2308 y(tions,)30 +b(substitution,)i(shell)f(func-)1290 3826 y(tions,)30 b(and)f(subshells)g(in)m(v)m(ok)m(ed)i(with)e Fs(\()h Fi(command)39 b Fs(\))29 b Ft(inherit)g(the)h Fs(ERR)1290 -2418 y Ft(trap.)630 2576 y Fs(extglob)144 b Ft(If)26 +3935 y 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 2685 y(Section)j(3.5.8.1)i([P)m +(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(29\))h(are)f(enabled.)630 -2844 y Fs(extquote)96 b Ft(If)49 b(set,)54 b Fs($')p +4364 y Fs(extquote)96 b Ft(If)49 b(set,)54 b Fs($')p Fi(string)11 b Fs(')46 b Ft(and)j Fs($")p Fi(string)11 b Fs(")46 b Ft(quoting)k(is)f(p)s(erformed)e(within)1110 -2953 y Fs(${)p Fi(parameter)11 b Fs(})30 b Ft(expansions)j(enclosed)h -(in)g(double)f(quotes.)51 b(This)32 b(option)1110 3063 -y(is)e(enabled)h(b)m(y)f(default.)630 3221 y Fs(failglob)96 +4473 y Fs(${)p Fi(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)36 b(set,)j(patterns)d(whic)m(h)g(fail)h(to)h(matc)m(h)f -(\014lenames)f(during)g(\014lename)g(ex-)1110 3331 y(pansion)30 -b(result)g(in)g(an)g(expansion)h(error.)630 3489 y Fs(force_fignore) -1110 3599 y Ft(If)43 b(set,)k(the)d(su\016xes)f(sp)s(eci\014ed)f(b)m(y) +(\014lenames)f(during)g(\014lename)g(ex-)1110 4852 y(pansion)30 +b(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 -3708 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 3818 y(ignored)37 +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)1110 3927 y([Bash)24 b(V)-8 -b(ariables],)27 b(page)e(69,)h(for)d(a)h(description)g(of)g -Fs(FIGNORE)p Ft(.)37 b(This)22 b(option)1110 4037 y(is)30 -b(enabled)h(b)m(y)f(default.)630 4195 y Fs(globasciiranges)1110 -4305 y Ft(If)87 b(set,)104 b(range)88 b(expressions)f(used)g(in)h -(pattern)g(matc)m(hing)h(\(see)1110 4415 y(Section)43 +b(See)37 b(Section)h(5.2)p eop end +%%Page: 65 71 +TeXDict begin 65 70 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(65)1110 299 y([Bash)24 +b(V)-8 b(ariables],)27 b(page)e(68,)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 562 y Fs(globasciiranges)1110 +671 y Ft(If)87 b(set,)104 b(range)88 b(expressions)f(used)g(in)h +(pattern)g(matc)m(hing)h(\(see)1110 781 y(Section)43 b(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)j(page)c(29\))h(b)s(eha)m(v)m -(e)f(as)f(if)h(in)f(the)1110 4524 y(traditional)h(C)e(lo)s(cale)i(when) -e(p)s(erforming)f(comparisons.)75 b(That)41 b(is,)k(the)1110 -4634 y(curren)m(t)31 b(lo)s(cale's)i(collating)g(sequence)e(is)g(not)h +(e)f(as)f(if)h(in)f(the)1110 891 y(traditional)h(C)e(lo)s(cale)i(when)e +(p)s(erforming)f(comparisons.)75 b(That)41 b(is,)k(the)1110 +1000 y(curren)m(t)31 b(lo)s(cale's)i(collating)g(sequence)e(is)g(not)h (tak)m(en)g(in)m(to)g(accoun)m(t,)h(so)e(`)p Fs(b)p Ft(')1110 -4743 y(will)g(not)g(collate)i(b)s(et)m(w)m(een)e(`)p +1110 y(will)g(not)g(collate)i(b)s(et)m(w)m(een)e(`)p Fs(A)p Ft(')g(and)f(`)p Fs(B)p Ft(',)h(and)f(upp)s(er-case)g(and)g(lo)m -(w)m(er-case)1110 4853 y(ASCI)s(I)f(c)m(haracters)j(will)e(collate)j -(together.)630 5011 y Fs(globstar)96 b Ft(If)38 b(set,)j(the)e(pattern) +(w)m(er-case)1110 1219 y(ASCI)s(I)f(c)m(haracters)j(will)e(collate)j +(together.)630 1373 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 5121 y(matc)m(h)36 b(all)g(\014les)f(and)f(zero)i(or) +(text)j(will)1110 1482 y(matc)m(h)36 b(all)g(\014les)f(and)f(zero)i(or) f(more)g(directories)h(and)e(sub)s(directories.)54 b(If)1110 -5230 y(the)30 b(pattern)g(is)g(follo)m(w)m(ed)i(b)m(y)d(a)i(`)p +1592 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 -5340 y(matc)m(h.)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 Fs(gnu_errfmt)1110 -408 y Ft(If)k(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)h -(the)g(standard)f Fl(gnu)g Ft(error)1110 518 y(message)c(format.)630 -667 y Fs(histappend)1110 777 y Ft(If)c(set,)j(the)e(history)g(list)g +1702 y(matc)m(h.)630 1855 y Fs(gnu_errfmt)1110 1965 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 2074 y(message)c(format.)630 +2228 y Fs(histappend)1110 2337 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 887 y(the)d Fs(HISTFILE)d Ft(v)-5 +b(alue)29 b(of)1110 2447 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 996 y(the)31 b(\014le.)630 1146 y Fs(histreedit)1110 -1255 y Ft(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g +(erwriting)1110 2556 y(the)31 b(\014le.)630 2710 y Fs(histreedit)1110 +2819 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 -1365 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630 -1514 y Fs(histverify)1110 1624 y Ft(If)35 b(set,)i(and)e(Readline)h(is) +2929 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630 +3082 y Fs(histverify)1110 3192 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 -1733 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 1843 y(resulting)i(line)f(is)h +3302 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 3411 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 1953 y(further)29 b(mo)s(di\014cation.)630 2102 -y Fs(hostcomplete)1110 2212 y Ft(If)38 b(set,)j(and)c(Readline)i(is)f +1110 3521 y(further)29 b(mo)s(di\014cation.)630 3674 +y Fs(hostcomplete)1110 3784 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 -2321 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 2431 y(pleted)g(\(see)h +3893 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 4003 y(pleted)g(\(see)h (Section)f(8.4.6)i([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g -(120\).)1110 2540 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.) -630 2690 y Fs(huponexit)1110 2800 y Ft(If)i(set,)i(Bash)f(will)h(send)d +(120\).)1110 4113 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.) +630 4266 y Fs(huponexit)1110 4376 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 2909 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g -(page)f(38\).)630 3059 y Fs(interactive_comments)1110 -3168 y Ft(Allo)m(w)c(a)g(w)m(ord)e(b)s(eginning)g(with)h(`)p +1110 4485 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g +(page)f(38\).)630 4639 y Fs(interactive_comments)1110 +4748 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 -3278 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g(to)g(b)s(e)f +4858 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 -3387 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630 -3537 y Fs(lastpipe)96 b Ft(If)24 b(set,)i(and)e(job)g(con)m(trol)i(is)f +4967 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630 +5121 y Fs(lastpipe)96 b Ft(If)24 b(set,)i(and)e(job)g(con)m(trol)i(is)f (not)f(activ)m(e,)k(the)d(shell)f(runs)f(the)i(last)g(command)1110 -3646 y(of)37 b(a)h(pip)s(eline)e(not)h(executed)h(in)f(the)g(bac)m -(kground)g(in)g(the)g(curren)m(t)g(shell)1110 3756 y(en)m(vironmen)m -(t.)630 3905 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 -4015 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 4125 y(semicolon)32 -b(separators)f(where)e(p)s(ossible.)630 4274 y Fs(login_shell)1110 -4384 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 -4493 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(79\).)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 -4643 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 4752 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 Fi(mail-)1110 -4862 y(file)40 b Fs(has)29 b(been)g(read")g Ft(is)i(displa)m(y)m(ed.) -630 5011 y Fs(no_empty_cmd_completion)1110 5121 y Ft(If)f(set,)g(and)g +5230 y(of)37 b(a)h(pip)s(eline)e(not)h(executed)h(in)f(the)g(bac)m +(kground)g(in)g(the)g(curren)m(t)g(shell)1110 5340 y(en)m(vironmen)m +(t.)p eop end +%%Page: 66 72 +TeXDict begin 66 71 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(66)630 299 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 408 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 518 y(semicolon)32 b(separators)f(where)e +(p)s(ossible.)630 667 y Fs(login_shell)1110 777 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 887 y(tion)29 b(6.1)g([In)m(v)m +(oking)h(Bash],)f(page)g(79\).)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 1036 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 1146 +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 Fi(mail-)1110 1255 +y(file)40 b Fs(has)29 b(been)g(read")g Ft(is)i(displa)m(y)m(ed.)630 +1405 y Fs(no_empty_cmd_completion)1110 1514 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 5230 y(the)25 b Fs(PATH)f Ft(for)h(p)s(ossible)f +(searc)m(h)1110 1624 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 -5340 y(an)k(empt)m(y)h(line.)p eop end -%%Page: 67 73 -TeXDict begin 67 72 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(67)630 299 y Fs(nocaseglob)1110 -408 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 518 y(p)s(erforming)29 -b(\014lename)i(expansion.)630 676 y Fs(nocasematch)1110 -786 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 895 y(p)s(erforming)31 +1733 y(an)k(empt)m(y)h(line.)630 1883 y Fs(nocaseglob)1110 +1993 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 2102 y(p)s(erforming)29 +b(\014lename)i(expansion.)630 2252 y Fs(nocasematch)1110 +2361 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 2471 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 1005 y(mands.)630 -1163 y Fs(nullglob)96 b Ft(If)23 b(set,)j(Bash)e(allo)m(ws)g +Fs([[)g Ft(conditional)h(com-)1110 2580 y(mands.)630 +2730 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 1273 y(to)31 b(a)g(n)m(ull)f(string,)h(rather)f(than)g -(themselv)m(es.)630 1431 y Fs(progcomp)96 b Ft(If)25 +(expand)1110 2839 y(to)31 b(a)g(n)m(ull)f(string,)h(rather)f(than)g +(themselv)m(es.)630 2989 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 1541 y(grammable)45 b(Completion],)k(page)c +(Section)f(8.6)h([Pro-)1110 3098 y(grammable)45 b(Completion],)k(page)c (124\))h(are)f(enabled.)82 b(This)44 b(option)h(is)1110 -1650 y(enabled)30 b(b)m(y)h(default.)630 1808 y Fs(promptvars)1110 -1918 y Ft(If)50 b(set,)56 b(prompt)49 b(strings)h(undergo)g(parameter)h -(expansion,)k(command)1110 2028 y(substitution,)35 b(arithmetic)g +3208 y(enabled)30 b(b)m(y)h(default.)630 3357 y Fs(promptvars)1110 +3467 y Ft(If)50 b(set,)56 b(prompt)49 b(strings)h(undergo)g(parameter)h +(expansion,)k(command)1110 3577 y(substitution,)35 b(arithmetic)g (expansion,)g(and)e(quote)i(remo)m(v)-5 b(al)35 b(after)f(b)s(eing)1110 -2137 y(expanded)53 b(as)h(describ)s(ed)e(b)s(elo)m(w)i(\(see)h(Section) -f(6.9)h([Con)m(trolling)g(the)1110 2247 y(Prompt],)30 +3686 y(expanded)53 b(as)h(describ)s(ed)e(b)s(elo)m(w)i(\(see)h(Section) +f(6.9)h([Con)m(trolling)g(the)1110 3796 y(Prompt],)30 b(page)h(91\).)42 b(This)30 b(option)h(is)f(enabled)h(b)m(y)f(default.) -630 2405 y Fs(restricted_shell)1110 2515 y Ft(The)40 +630 3945 y Fs(restricted_shell)1110 4055 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 2624 y(Section)c(6.10)g([The)f +(restricted)i(mo)s(de)e(\(see)1110 4164 y(Section)c(6.10)g([The)f (Restricted)g(Shell],)i(page)e(92\).)56 b(The)34 b(v)-5 -b(alue)35 b(ma)m(y)h(not)1110 2734 y(b)s(e)c(c)m(hanged.)49 +b(alue)35 b(ma)m(y)h(not)1110 4274 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 2843 y(allo)m(wing)k(the)e(startup)f(\014les)h(to)g +(executed,)1110 4384 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 -2953 y(stricted.)630 3111 y Fs(shift_verbose)1110 3221 +4493 y(stricted.)630 4643 y Fs(shift_verbose)1110 4752 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 3330 y(shift)30 +(an)h(error)g(message)i(when)d(the)1110 4862 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 3488 y Fs(sourcepath)1110 3598 y Ft(If)22 +(parameters.)630 5011 y Fs(sourcepath)1110 5121 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 -3708 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 3817 y(b)m(y)j(default.) -630 3975 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 4085 y(fault.)630 4243 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 4353 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 4462 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.)150 -4694 y Fr(4.4)68 b(Sp)t(ecial)45 b(Builtins)150 4853 -y Ft(F)-8 b(or)35 b(historical)h(reasons,)g(the)e Fl(posix)g -Ft(standard)f(has)i(classi\014ed)f(sev)m(eral)i(builtin)e(commands)g -(as)h Fk(sp)-5 b(e-)150 4963 y(cial)p Ft(.)47 b(When)33 -b(Bash)f(is)h(executing)g(in)f Fl(posix)g Ft(mo)s(de,)h(the)g(sp)s -(ecial)g(builtins)e(di\013er)i(from)f(other)g(builtin)150 -5072 y(commands)e(in)g(three)h(resp)s(ects:)199 5206 +5230 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 5340 y(b)m(y)j(default.)p +eop end +%%Page: 67 73 +TeXDict begin 67 72 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(67)630 299 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 408 +y(fault.)630 568 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 +677 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 787 +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.)150 1020 y Fr(4.4)68 b(Sp)t(ecial)45 +b(Builtins)150 1179 y Ft(F)-8 b(or)35 b(historical)h(reasons,)g(the)e +Fl(posix)g Ft(standard)f(has)i(classi\014ed)f(sev)m(eral)i(builtin)e +(commands)g(as)h Fk(sp)-5 b(e-)150 1289 y(cial)p Ft(.)47 +b(When)33 b(Bash)f(is)h(executing)g(in)f Fl(posix)g Ft(mo)s(de,)h(the)g +(sp)s(ecial)g(builtins)e(di\013er)i(from)f(other)g(builtin)150 +1398 y(commands)e(in)g(three)h(resp)s(ects:)199 1533 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 5340 y(2.)61 +(functions)f(during)f(command)h(lo)s(okup.)199 1667 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.)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)199 299 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 408 y(after)i(the)f(command)h -(completes.)275 568 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 677 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 -787 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g(92.)275 922 -y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h(builtins:)390 -1056 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h(exit)g(export)f -(readonly)f(return)h(set)390 1166 y(shift)g(trap)h(unset)p +(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199 1802 +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 +1911 y(after)i(the)f(command)h(completes.)275 2071 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 +2180 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 2290 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g(93.)275 +2424 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h(builtins:)390 +2559 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h(exit)g(export)f +(readonly)f(return)h(set)390 2668 y(shift)g(trap)h(unset)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 Fo(5)80 +%%Page: 68 74 +TeXDict begin 68 73 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(68)150 299 y Fo(5)80 b(Shell)53 b(V)-13 b(ariables)150 541 y Ft(This)21 b(c)m(hapter)i (describ)s(es)e(the)i(shell)f(v)-5 b(ariables)23 b(that)f(Bash)h(uses.) 37 b(Bash)23 b(automatically)h(assigns)f(default)150 @@ -12337,14 +12385,14 @@ b(for)f(con)m(trolling)150 5176 y(the)31 b(job)f(con)m(trol)h b(ariables],)32 b(page)g(100\).)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: 70 76 -TeXDict begin 70 75 bop 150 -116 a Ft(70)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(BASHOPTS)96 b Ft(A)31 -b(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)41 +%%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(BASHOPTS)96 +b Ft(A)31 b(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)41 b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5 b(alid)630 408 y(argumen)m(t)33 b(for)g(the)f(`)p Fs(-s)p Ft(')h(option)g(to)g(the)g Fs(shopt)e Ft(builtin)i(command)f(\(see)i -(Section)f(4.3.2)630 518 y([The)j(Shopt)g(Builtin],)i(page)f(62\).)60 +(Section)f(4.3.2)630 518 y([The)j(Shopt)g(Builtin],)i(page)f(61\).)60 b(The)36 b(options)h(app)s(earing)f(in)g Fs(BASHOPTS)e Ft(are)i(those)630 628 y(rep)s(orted)e(as)h(`)p Fs(on)p Ft(')f(b)m(y)h(`)p Fs(shopt)p Ft('.)53 b(If)34 b(this)g(v)-5 @@ -12352,663 +12400,705 @@ b(ariable)36 b(is)f(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)630 737 y(starts)25 b(up,)f(eac)m(h)i(shell)e(option)h(in)e(the)i(list)g (will)f(b)s(e)g(enabled)g(b)s(efore)g(reading)g(an)m(y)g(startup)630 847 y(\014les.)41 b(This)29 b(v)-5 b(ariable)31 b(is)g(readonly)-8 -b(.)150 998 y Fs(BASHPID)144 b Ft(Expands)35 b(to)i(the)f(pro)s(cess)f +b(.)150 1003 y Fs(BASHPID)144 b Ft(Expands)35 b(to)i(the)f(pro)s(cess)f (ID)i(of)f(the)g(curren)m(t)g(Bash)g(pro)s(cess.)58 b(This)35 -b(di\013ers)h(from)g Fs($$)630 1107 y Ft(under)31 b(certain)j +b(di\013ers)h(from)g Fs($$)630 1113 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 1217 y(re-initialized.)150 1367 -y Fs(BASH_ALIASES)630 1477 y Ft(An)40 b(asso)s(ciativ)m(e)j(arra)m(y)d +g(Bash)g(to)h(b)s(e)630 1223 y(re-initialized.)150 1379 +y Fs(BASH_ALIASES)630 1489 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 1587 y(of)c(aliases)h(as)f(main)m(tained)g(b)m +(in)m(ternal)h(list)630 1598 y(of)c(aliases)h(as)f(main)m(tained)g(b)m (y)g(the)g Fs(alias)e Ft(builtin.)59 b(\(see)37 b(Section)h(4.1)f -([Bourne)g(Shell)630 1696 y(Builtins],)f(page)e(41\).)53 +([Bourne)g(Shell)630 1708 y(Builtins],)f(page)e(40\).)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 1806 y(setting)31 b(arra)m(y)g(elemen)m(ts)h +g(alias)h(list;)i(un-)630 1817 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 1956 y Fs(BASH_ARGC)630 2066 y Ft(An)f(arra)m(y)h(v)-5 +(list.)150 1974 y Fs(BASH_ARGC)630 2084 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 2176 +(of)g(parameters)h(in)f(eac)m(h)h(frame)g(of)630 2193 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 2285 y(subroutine)i(\(shell)i(function)g(or)f(script)g(executed)i +630 2303 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 -2395 y(the)37 b(stac)m(k.)63 b(When)37 b(a)h(subroutine)e(is)h +2412 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 -2504 y(is)g(pushed)f(on)m(to)i Fs(BASH_ARGC)p Ft(.)59 +2522 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 2614 y(debugging)23 b(mo)s(de)f(\(see)h(Section)g(4.3.2)i -([The)d(Shopt)g(Builtin],)j(page)e(62)h(for)e(a)h(description)630 -2724 y(of)31 b(the)f Fs(extdebug)e Ft(option)j(to)g(the)g -Fs(shopt)e Ft(builtin\).)150 2874 y Fs(BASH_ARGV)630 -2984 y Ft(An)24 b(arra)m(y)g(v)-5 b(ariable)25 b(con)m(taining)h(all)f +(extended)630 2632 y(debugging)23 b(mo)s(de)f(\(see)h(Section)g(4.3.2)i +([The)d(Shopt)g(Builtin],)j(page)e(61)h(for)e(a)h(description)630 +2741 y(of)31 b(the)f Fs(extdebug)e Ft(option)j(to)g(the)g +Fs(shopt)e Ft(builtin\).)150 2898 y Fs(BASH_ARGV)630 +3007 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 -3093 y(call)35 b(stac)m(k.)53 b(The)34 b(\014nal)g(parameter)g(of)g +3117 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 -3203 y(stac)m(k;)28 b(the)c(\014rst)f(parameter)i(of)f(the)g(initial)i +3226 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 -3313 y(is)40 b(executed,)j(the)d(parameters)h(supplied)d(are)i(pushed)f +3336 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 -3422 y(sets)28 b Fs(BASH_ARGV)e Ft(only)i(when)f(in)h(extended)g +3446 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 -3532 y(Shopt)i(Builtin],)h(page)g(62)g(for)f(a)h(description)f(of)h +3555 y(Shopt)i(Builtin],)h(page)g(61)g(for)f(a)h(description)f(of)h (the)f Fs(extdebug)e Ft(option)j(to)g(the)f Fs(shopt)630 -3641 y Ft(builtin\).)150 3792 y Fs(BASH_CMDS)630 3902 +3665 y Ft(builtin\).)150 3821 y Fs(BASH_CMDS)630 3931 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 4011 y(table)c(of)g(commands)f(as)g(main)m(tained)h(b)m(y)g +(hash)630 4041 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 -4121 y(Shell)23 b(Builtins],)j(page)e(41\).)40 b(Elemen)m(ts)24 +4150 y(Shell)23 b(Builtins],)j(page)e(40\).)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 4230 y(unsetting)30 b(arra)m(y)h(elemen)m(ts)h(cause)f(commands)f +630 4260 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 -4381 y Fs(BASH_COMMAND)630 4491 y Ft(The)39 b(command)h(curren)m(tly)g +4416 y Fs(BASH_COMMAND)630 4526 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 4600 y(shell)g(is)g(executing)g(a)g(command)g(as) +b(unless)39 b(the)630 4635 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 4710 y(command)30 b(executing)i(at)f(the)f(time)h(of)g(the)g(trap.) -150 4861 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 4970 -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 5080 y(script.)41 -b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)j(page)f(81.)150 -5230 y Fs(BASH_EXECUTION_STRING)630 5340 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.)p -eop end -%%Page: 71 77 -TeXDict begin 71 76 bop 150 -116 a Ft(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(71)150 299 y Fs(BASH_LINENO)630 -408 y Ft(An)62 b(arra)m(y)i(v)-5 b(ariable)63 b(whose)g(mem)m(b)s(ers)e -(are)j(the)e(line)h(n)m(um)m(b)s(ers)f(in)g(source)h(\014les)630 -518 y(where)46 b(eac)m(h)i(corresp)s(onding)e(mem)m(b)s(er)f(of)i -Fq(FUNCNAME)53 b Ft(w)m(as)47 b(in)m(v)m(ok)m(ed.)91 -b Fs(${BASH_)630 628 y(LINENO[$i]})39 b Ft(is)i(the)h(line)g(n)m(um)m -(b)s(er)e(in)i(the)f(source)h(\014le)g(\()p Fs(${BASH_SOURCE[$i+1]})p -Ft(\))630 737 y(where)d Fs(${FUNCNAME[$i]})c Ft(w)m(as)k(called)i(\(or) -e Fs(${BASH_LINENO[$i-1]})34 b Ft(if)39 b(referenced)630 -847 y(within)30 b(another)g(shell)h(function\).)41 b(Use)31 +630 4745 y(command)30 b(executing)i(at)f(the)f(time)h(of)g(the)g(trap.) +150 4902 y Fs(BASH_COMPAT)630 5011 y Ft(The)i(v)-5 b(alue)34 +b(is)f(used)g(to)h(set)f(the)h(shell's)g(compatibilit)m(y)h(lev)m(el.) +51 b(See)34 b(Section)g(4.3.2)h([The)630 5121 y(Shopt)40 +b(Builtin],)45 b(page)c(61,)k(for)c(a)g(description)g(of)g(the)g(v)-5 +b(arious)41 b(compatibilit)m(y)i(lev)m(els)630 5230 y(and)31 +b(their)g(e\013ects.)45 b(The)31 b(v)-5 b(alue)31 b(ma)m(y)h(b)s(e)f(a) +h(decimal)g(n)m(um)m(b)s(er)e(\(e.g.,)j(4.2\))g(or)e(an)h(in)m(teger) +630 5340 y(\(e.g.,)39 b(42\))f(corresp)s(onding)d(to)i(the)f(desired)f +(compatibilit)m(y)k(lev)m(el.)59 b(If)36 b Fs(BASH_COMPAT)d +Ft(is)p eop end +%%Page: 70 76 +TeXDict begin 70 75 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(70)630 299 y(unset)37 +b(or)g(set)h(to)g(the)g(empt)m(y)f(string,)j(the)d(compatibilit)m(y)j +(lev)m(el)f(is)e(set)h(to)g(the)g(default)630 408 y(for)i(the)h(curren) +m(t)f(v)m(ersion.)72 b(If)40 b Fs(BASH_COMPAT)e Ft(is)i(set)h(to)h(a)e +(v)-5 b(alue)41 b(that)h(is)e(not)h(one)g(of)630 518 +y(the)f(v)-5 b(alid)40 b(compatibilit)m(y)i(lev)m(els,)i(the)c(shell)g +(prin)m(ts)f(an)h(error)f(message)i(and)f(sets)g(the)630 +628 y(compatibilit)m(y)23 b(lev)m(el)f(to)f(the)f(default)h(for)f(the)g +(curren)m(t)g(v)m(ersion.)38 b(The)20 b(v)-5 b(alid)21 +b(compatibilit)m(y)630 737 y(lev)m(els)40 b(corresp)s(ond)e(to)h(the)g +(compatibilit)m(y)i(options)e(accepted)h(b)m(y)f(the)g +Fs(shopt)e Ft(builtin)630 847 y(describ)s(ed)20 b(ab)s(o)m(v)m(e)i +(\(for)g(example,)h Fq(compat42)31 b Ft(means)21 b(that)g(4.2)i(and)d +(42)i(are)g(v)-5 b(alid)21 b(v)-5 b(alues\).)630 956 +y(The)30 b(curren)m(t)g(v)m(ersion)h(is)f(also)i(a)e(v)-5 +b(alid)31 b(v)-5 b(alue.)150 1121 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 1230 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 +1340 y(script.)41 b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],) +j(page)f(81.)150 1504 y Fs(BASH_EXECUTION_STRING)630 +1614 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 1778 +y Fs(BASH_LINENO)630 1888 y Ft(An)62 b(arra)m(y)i(v)-5 +b(ariable)63 b(whose)g(mem)m(b)s(ers)e(are)j(the)e(line)h(n)m(um)m(b)s +(ers)f(in)g(source)h(\014les)630 1998 y(where)46 b(eac)m(h)i(corresp)s +(onding)e(mem)m(b)s(er)f(of)i Fq(FUNCNAME)53 b Ft(w)m(as)47 +b(in)m(v)m(ok)m(ed.)91 b Fs(${BASH_)630 2107 y(LINENO[$i]})39 +b Ft(is)i(the)h(line)g(n)m(um)m(b)s(er)e(in)i(the)f(source)h(\014le)g +(\()p Fs(${BASH_SOURCE[$i+1]})p Ft(\))630 2217 y(where)d +Fs(${FUNCNAME[$i]})c Ft(w)m(as)k(called)i(\(or)e Fs +(${BASH_LINENO[$i-1]})34 b Ft(if)39 b(referenced)630 +2326 y(within)30 b(another)g(shell)h(function\).)41 b(Use)31 b Fs(LINENO)d Ft(to)j(obtain)g(the)g(curren)m(t)f(line)h(n)m(um)m(b)s -(er.)150 1002 y Fs(BASH_REMATCH)630 1112 y Ft(An)43 b(arra)m(y)i(v)-5 +(er.)150 2491 y Fs(BASH_REMATCH)630 2600 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 1221 y(to)37 +(`)p Fs(=~)p Ft(')g(binary)f(op)s(erator)630 2710 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 1331 y(page)e(10\).)52 +([Conditional)e(Constructs],)630 2819 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 1440 y(en)m(tire)29 +(the)g(string)g(matc)m(hing)h(the)630 2929 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 -1550 y(matc)m(hing)j(the)g Fq(n)p Ft(th)f(paren)m(thesized)h(sub)s +3039 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 1705 y Fs(BASH_SOURCE)630 1815 y Ft(An)40 b(arra)m(y)h(v)-5 +b(.)150 3203 y Fs(BASH_SOURCE)630 3313 y Ft(An)40 b(arra)m(y)h(v)-5 b(ariable)41 b(whose)f(mem)m(b)s(ers)g(are)h(the)g(source)f -(\014lenames)h(where)f(the)g(corre-)630 1924 y(sp)s(onding)27 +(\014lenames)h(where)f(the)g(corre-)630 3422 y(sp)s(onding)27 b(shell)i(function)f(names)g(in)g(the)h Fs(FUNCNAME)d Ft(arra)m(y)j(v)-5 b(ariable)30 b(are)f(de\014ned.)38 -b(The)630 2034 y(shell)26 b(function)g Fs(${FUNCNAME[$i]})c +b(The)630 3532 y(shell)26 b(function)g Fs(${FUNCNAME[$i]})c Ft(is)k(de\014ned)f(in)g(the)h(\014le)h Fs(${BASH_SOURCE[$i]})21 -b Ft(and)630 2144 y(called)32 b(from)d Fs(${BASH_SOURCE[$i+1]})150 -2299 y(BASH_SUBSHELL)630 2408 y Ft(Incremen)m(ted)24 +b Ft(and)630 3641 y(called)32 b(from)d Fs(${BASH_SOURCE[$i+1]})150 +3806 y(BASH_SUBSHELL)630 3915 y Ft(Incremen)m(ted)24 b(b)m(y)f(one)h(within)f(eac)m(h)i(subshell)d(or)i(subshell)e(en)m -(vironmen)m(t)i(when)f(the)h(shell)630 2518 y(b)s(egins)30 +(vironmen)m(t)i(when)f(the)h(shell)630 4025 y(b)s(egins)30 b(executing)h(in)f(that)h(en)m(vironmen)m(t.)42 b(The)30 -b(initial)h(v)-5 b(alue)31 b(is)f(0.)150 2673 y Fs(BASH_VERSINFO)630 -2783 y Ft(A)36 b(readonly)g(arra)m(y)g(v)-5 b(ariable)37 +b(initial)h(v)-5 b(alue)31 b(is)f(0.)150 4189 y Fs(BASH_VERSINFO)630 +4299 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(88\))h(whose)f(mem)m(b) -s(ers)630 2892 y(hold)c(v)m(ersion)h(information)f(for)g(this)g +s(ers)630 4408 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 3002 y(arra)m(y)e(mem)m(b)s(ers)e(are)i(as)g -(follo)m(ws:)630 3157 y Fs(BASH_VERSINFO[0])1110 3267 +b(assigned)h(to)g(the)630 4518 y(arra)m(y)e(mem)m(b)s(ers)e(are)i(as)g +(follo)m(ws:)630 4682 y Fs(BASH_VERSINFO[0])1110 4792 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 3422 y Fs(BASH_VERSINFO[1])1110 -3532 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 3687 y Fs(BASH_VERSINFO[2])1110 -3797 y Ft(The)f(patc)m(h)h(lev)m(el.)630 3952 y Fs(BASH_VERSINFO[3]) -1110 4061 y Ft(The)f(build)f(v)m(ersion.)630 4217 y Fs -(BASH_VERSINFO[4])1110 4326 y Ft(The)h(release)i(status)e(\(e.g.,)j -Fq(b)s(eta1)7 b Ft(\).)630 4482 y Fs(BASH_VERSINFO[5])1110 -4591 y Ft(The)30 b(v)-5 b(alue)31 b(of)f Fs(MACHTYPE)p -Ft(.)150 4746 y Fs(BASH_VERSION)630 4856 y Ft(The)g(v)m(ersion)h(n)m +Fq(release)5 b Ft(\).)630 4956 y Fs(BASH_VERSINFO[1])1110 +5066 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 5230 y Fs(BASH_VERSINFO[2])1110 +5340 y Ft(The)f(patc)m(h)h(lev)m(el.)p eop end +%%Page: 71 77 +TeXDict begin 71 76 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(71)630 299 y Fs(BASH_VERSINFO[3]) +1110 408 y Ft(The)30 b(build)f(v)m(ersion.)630 591 y +Fs(BASH_VERSINFO[4])1110 701 y Ft(The)h(release)i(status)e(\(e.g.,)j +Fq(b)s(eta1)7 b Ft(\).)630 883 y Fs(BASH_VERSINFO[5])1110 +993 y Ft(The)30 b(v)-5 b(alue)31 b(of)f Fs(MACHTYPE)p +Ft(.)150 1176 y Fs(BASH_VERSION)630 1285 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 -5011 y Fs(BASH_XTRACEFD)630 5121 y Ft(If)f(set)h(to)h(an)e(in)m(teger)i +1468 y Fs(BASH_XTRACEFD)630 1577 y Ft(If)f(set)h(to)h(an)e(in)m(teger)i (corresp)s(onding)e(to)h(a)g(v)-5 b(alid)31 b(\014le)g(descriptor,)g -(Bash)g(will)g(write)g(the)630 5230 y(trace)37 b(output)f(generated)h +(Bash)g(will)g(write)g(the)630 1687 y(trace)37 b(output)f(generated)h (when)f(`)p Fs(set)29 b(-x)p Ft(')36 b(is)g(enabled)h(to)g(that)f -(\014le)h(descriptor.)58 b(This)630 5340 y(allo)m(ws)29 +(\014le)h(descriptor.)58 b(This)630 1797 y(allo)m(ws)29 b(tracing)h(output)d(to)i(b)s(e)f(separated)g(from)g(diagnostic)h(and)f -(error)f(messages.)41 b(The)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)630 299 y(\014le)g(descriptor)f(is)h(closed)g -(when)f Fs(BASH_XTRACEFD)d Ft(is)k(unset)f(or)g(assigned)h(a)g(new)f(v) --5 b(alue.)630 408 y(Unsetting)45 b Fs(BASH_XTRACEFD)40 +(error)f(messages.)41 b(The)630 1906 y(\014le)31 b(descriptor)f(is)h +(closed)g(when)f Fs(BASH_XTRACEFD)d Ft(is)k(unset)f(or)g(assigned)h(a)g +(new)f(v)-5 b(alue.)630 2016 y(Unsetting)45 b Fs(BASH_XTRACEFD)40 b Ft(or)k(assigning)g(it)g(the)g(empt)m(y)h(string)e(causes)i(the)f -(trace)630 518 y(output)33 b(to)i(b)s(e)d(sen)m(t)j(to)f(the)g +(trace)630 2125 y(output)33 b(to)i(b)s(e)d(sen)m(t)j(to)f(the)g (standard)e(error.)50 b(Note)35 b(that)g(setting)f Fs(BASH_XTRACEFD)c -Ft(to)630 628 y(2)39 b(\(the)h(standard)e(error)g(\014le)h +Ft(to)630 2235 y(2)39 b(\(the)h(standard)e(error)g(\014le)h (descriptor\))h(and)e(then)h(unsetting)g(it)g(will)g(result)g(in)g(the) -630 737 y(standard)30 b(error)g(b)s(eing)f(closed.)150 -902 y Fs(COLUMNS)144 b Ft(Used)40 b(b)m(y)g(the)g Fs(select)e -Ft(command)i(to)g(determine)g(the)g(terminal)h(width)e(when)g(prin)m -(t-)630 1011 y(ing)34 b(selection)i(lists.)53 b(Automatically)37 -b(set)e(b)m(y)f(an)g(in)m(teractiv)m(e)j(shell)d(up)s(on)f(receipt)i -(of)g(a)630 1121 y Fs(SIGWINCH)p Ft(.)150 1285 y Fs(COMP_CWORD)630 -1395 y Ft(An)j(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 -1504 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 1614 y(grammable)36 b(completion)g(facilities)i -(\(see)e(Section)g(8.6)g([Programmable)g(Completion],)630 -1724 y(page)31 b(124\).)150 1888 y Fs(COMP_LINE)630 1998 -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 2107 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 -2217 y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(124\).)150 -2381 y Fs(COMP_POINT)630 2491 y Ft(The)25 b(index)g(of)h(the)g(curren)m +630 2345 y(standard)30 b(error)g(b)s(eing)f(closed.)150 +2527 y Fs(CHILD_MAX)630 2637 y Ft(Set)35 b(the)h(n)m(um)m(b)s(er)e(of)h +(exited)h(c)m(hild)g(status)f(v)-5 b(alues)36 b(for)f(the)g(shell)g(to) +h(remem)m(b)s(er.)55 b(Bash)630 2746 y(will)37 b(not)g(allo)m(w)i(this) +e(v)-5 b(alue)37 b(to)h(b)s(e)e(decreased)i(b)s(elo)m(w)f(a)g +Fl(posix)p Ft(-mandated)f(minim)m(um,)630 2856 y(and)30 +b(there)g(is)g(a)h(maxim)m(um)f(v)-5 b(alue)30 b(\(curren)m(tly)h +(8192\))h(that)f(this)f(ma)m(y)g(not)h(exceed.)41 b(The)630 +2966 y(minim)m(um)30 b(v)-5 b(alue)30 b(is)h(system-dep)s(enden)m(t.) +150 3148 y Fs(COLUMNS)144 b Ft(Used)32 b(b)m(y)f(the)h +Fs(select)e Ft(command)h(to)i(determine)f(the)f(terminal)i(width)d +(when)h(prin)m(ting)630 3258 y(selection)39 b(lists.)63 +b(Automatically)41 b(set)d(if)f(the)h Fs(checkwinsize)d +Ft(option)j(is)f(enabled)h(\(see)630 3367 y(Section)44 +b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d(61\),)k(or)43 +b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 3477 +y(receipt)31 b(of)g(a)g Fs(SIGWINCH)p Ft(.)150 3660 y +Fs(COMP_CWORD)630 3769 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 3879 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 +3988 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g +([Programmable)g(Completion],)630 4098 y(page)31 b(124\).)150 +4281 y Fs(COMP_LINE)630 4390 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 4500 +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 4609 +y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(124\).)150 +4792 y Fs(COMP_POINT)630 4902 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 2600 y(command.)40 b(If)27 b(the)h(curren)m(t)g +g(the)h(curren)m(t)630 5011 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 2710 y(the)i(v)-5 b(alue)30 b(of)g(this)g(v)-5 +(command,)630 5121 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 -2819 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 2929 +5230 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 5340 y(completion)c(facilities)g(\(see)g(Section)f(8.6)g([Programmable)g -(Completion],)h(page)f(124\).)150 3093 y Fs(COMP_TYPE)630 -3203 y Ft(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28 +(Completion],)h(page)f(124\).)p eop end +%%Page: 72 78 +TeXDict begin 72 77 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(72)150 299 y Fs(COMP_TYPE)630 +408 y Ft(Set)27 b(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 3313 y(caused)e(a)g(completion)i(function)d(to)i +(attempted)g(that)630 518 y(caused)e(a)g(completion)i(function)d(to)i (b)s(e)e(called:)40 b Fq(T)-8 b(AB)5 b Ft(,)27 b(for)f(normal)g -(completion,)i(`)p Fs(?)p Ft(',)f(for)630 3422 y(listing)35 +(completion,)i(`)p Fs(?)p Ft(',)f(for)630 628 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 -3532 y(w)m(ord)22 b(completion,)k(`)p Fs(@)p Ft(',)f(to)e(list)g +737 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 3641 y(men)m(u)i(completion.)41 +(`)p Fs(\045)p Ft(',)h(for)630 847 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 -3751 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h +956 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 -3861 y([Programmable)e(Completion],)h(page)f(124\).)150 -4025 y Fs(COMP_KEY)96 b Ft(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i +1066 y([Programmable)e(Completion],)h(page)f(124\).)150 +1241 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 4134 y(function.)150 4299 -y Fs(COMP_WORDBREAKS)630 4408 y Ft(The)f(set)i(of)e(c)m(haracters)j +(curren)m(t)g(completion)630 1351 y(function.)150 1526 +y Fs(COMP_WORDBREAKS)630 1636 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 4518 y(p)s(erforming)i(w)m(ord)h(completion.)51 +(when)630 1745 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 4628 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g -(subsequen)m(tly)f(reset.)150 4792 y Fs(COMP_WORDS)630 -4902 y Ft(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the) +(sp)s(ecial)630 1855 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g +(subsequen)m(tly)f(reset.)150 2030 y Fs(COMP_WORDS)630 +2140 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 -5011 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as) +2250 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as) h(Readline)h(w)m(ould)f(split)g(it,)53 b(using)47 b Fs(COMP_)630 -5121 y(WORDBREAKS)34 b Ft(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60 +2359 y(WORDBREAKS)34 b Ft(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60 b(This)36 b(v)-5 b(ariable)37 b(is)f(a)m(v)-5 b(ailable)39 -b(only)e(in)f(shell)h(func-)630 5230 y(tions)32 b(in)m(v)m(ok)m(ed)i(b) +b(only)e(in)f(shell)h(func-)630 2469 y(tions)32 b(in)m(v)m(ok)m(ed)i(b) m(y)d(the)i(programmable)f(completion)h(facilities)h(\(see)f(Section)g -(8.6)g([Pro-)630 5340 y(grammable)e(Completion],)g(page)g(124\).)p +(8.6)g([Pro-)630 2578 y(grammable)e(Completion],)g(page)g(124\).)150 +2754 y Fs(COMPREPLY)630 2863 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 2973 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 3082 y(tion)g(8.6)g([Programmable)g(Completion],) +h(page)f(124\).)51 b(Eac)m(h)34 b(arra)m(y)g(elemen)m(t)h(con)m(tains) +630 3192 y(one)c(p)s(ossible)f(completion.)150 3367 y +Fs(COPROC)192 b Ft(An)27 b(arra)m(y)g(v)-5 b(ariable)28 +b(created)g(to)f(hold)g(the)g(\014le)g(descriptors)g(for)g(output)f +(from)h(and)f(input)630 3477 y(to)31 b(an)f(unnamed)f(copro)s(cess)i +(\(see)g(Section)h(3.2.5)g([Copro)s(cesses],)f(page)g(15\).)150 +3652 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 3762 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 +3871 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 +3981 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 4091 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 4200 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 +4310 y(subsequen)m(tly)d(reset.)150 4485 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 4595 y(`)p Fs(t)p Ft(',)36 b(it)f(assumes)f(that)h +(the)g(shell)f(is)h(running)e(in)h(an)g(Emacs)h(shell)g(bu\013er)e(and) +h(disables)630 4704 y(line)d(editing.)150 4880 y Fs(ENV)336 +b Ft(Similar)35 b(to)g Fs(BASH_ENV)p Ft(;)h(used)e(when)g(the)h(shell)g +(is)g(in)m(v)m(ok)m(ed)h(in)e Fl(posix)h Ft(Mo)s(de)g(\(see)g(Sec-)630 +4989 y(tion)c(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(93\).)150 +5165 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 5340 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.)p eop end %%Page: 73 79 TeXDict begin 73 78 bop 150 -116 a Ft(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(73)150 299 y Fs(COMPREPLY)630 -408 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 -518 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 -628 y(tion)g(8.6)g([Programmable)g(Completion],)h(page)f(124\).)51 -b(Eac)m(h)34 b(arra)m(y)g(elemen)m(t)h(con)m(tains)630 -737 y(one)c(p)s(ossible)f(completion.)150 889 y Fs(COPROC)192 -b Ft(An)27 b(arra)m(y)g(v)-5 b(ariable)28 b(created)g(to)f(hold)g(the)g -(\014le)g(descriptors)g(for)g(output)f(from)h(and)f(input)630 -998 y(to)31 b(an)f(unnamed)f(copro)s(cess)i(\(see)g(Section)h(3.2.5)g -([Copro)s(cesses],)f(page)g(15\).)150 1149 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 1259 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 1369 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 1478 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 1588 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 -1697 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 1807 y(subsequen)m(tly)d(reset.)150 -1958 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 2068 y(`)p Fs(t)p Ft(',)36 -b(it)f(assumes)f(that)h(the)g(shell)f(is)h(running)e(in)h(an)g(Emacs)h -(shell)g(bu\013er)e(and)h(disables)630 2178 y(line)d(editing.)150 -2329 y Fs(ENV)336 b Ft(Similar)35 b(to)g Fs(BASH_ENV)p -Ft(;)h(used)e(when)g(the)h(shell)g(is)g(in)m(v)m(ok)m(ed)h(in)e -Fl(posix)h Ft(Mo)s(de)g(\(see)g(Sec-)630 2438 y(tion)c(6.11)h([Bash)f -(POSIX)e(Mo)s(de],)i(page)g(92\).)150 2590 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 2741 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 -2892 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 3002 y(tion.)k(A)27 b(\014lename)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 -3112 y(from)j(the)g(list)h(of)g(matc)m(hed)g(\014lenames.)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(73)150 299 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 408 +y(tion.)k(A)27 b(\014lename)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 +518 y(from)j(the)g(list)h(of)g(matc)m(hed)g(\014lenames.)41 b(A)30 b(sample)h(v)-5 b(alue)31 b(is)f(`)p Fs(.o:~)p -Ft(')150 3263 y Fs(FUNCNAME)96 b Ft(An)35 b(arra)m(y)i(v)-5 +Ft(')150 671 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 3373 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 3482 y(executing)f(shell)f -(function.)51 b(The)34 b(b)s(ottom-most)h(elemen)m(t)g(\(the)g(one)f -(with)g(the)g(highest)630 3592 y(index\))e(is)h Fs("main")p -Ft(.)44 b(This)32 b(v)-5 b(ariable)33 b(exists)g(only)g(when)e(a)i -(shell)f(function)g(is)g(executing.)630 3701 y(Assignmen)m(ts)23 +(functions)g(curren)m(tly)f(in)h(the)630 781 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 891 y(executing)f(shell)f(function.)51 +b(The)34 b(b)s(ottom-most)h(elemen)m(t)g(\(the)g(one)f(with)g(the)g +(highest)630 1000 y(index\))e(is)h Fs("main")p Ft(.)44 +b(This)32 b(v)-5 b(ariable)33 b(exists)g(only)g(when)e(a)i(shell)f +(function)g(is)g(executing.)630 1110 y(Assignmen)m(ts)23 b(to)h Fs(FUNCNAME)c Ft(ha)m(v)m(e)k(no)f(e\013ect)h(and)e(return)g(an) -g(error)g(status.)39 b(If)22 b Fs(FUNCNAME)630 3811 y +g(error)g(status.)39 b(If)22 b Fs(FUNCNAME)630 1219 y Ft(is)30 b(unset,)h(it)g(loses)g(its)f(sp)s(ecial)h(prop)s(erties,)f (ev)m(en)h(if)g(it)g(is)f(subsequen)m(tly)g(reset.)630 -3941 y(This)h(v)-5 b(ariable)32 b(can)f(b)s(e)g(used)g(with)g +1351 y(This)h(v)-5 b(ariable)32 b(can)f(b)s(e)g(used)g(with)g Fs(BASH_LINENO)d Ft(and)j Fs(BASH_SOURCE)p Ft(.)40 b(Eac)m(h)32 -b(elemen)m(t)630 4051 y(of)g Fs(FUNCNAME)d Ft(has)j(corresp)s(onding)e +b(elemen)m(t)630 1461 y(of)g Fs(FUNCNAME)d Ft(has)j(corresp)s(onding)e (elemen)m(ts)j(in)f Fs(BASH_LINENO)c Ft(and)k Fs(BASH_SOURCE)c -Ft(to)630 4161 y(describ)s(e)39 b(the)h(call)h(stac)m(k.)70 +Ft(to)630 1570 y(describ)s(e)39 b(the)h(call)h(stac)m(k.)70 b(F)-8 b(or)41 b(instance,)i Fs(${FUNCNAME[$i]})35 b -Ft(w)m(as)41 b(called)f(from)g(the)630 4270 y(\014le)27 +Ft(w)m(as)41 b(called)f(from)g(the)630 1680 y(\014le)27 b Fs(${BASH_SOURCE[$i+1]})21 b Ft(at)27 b(line)h(n)m(um)m(b)s(er)d Fs(${BASH_LINENO[$i]})p Ft(.)34 b(The)27 b Fs(caller)630 -4380 y Ft(builtin)j(displa)m(ys)g(the)h(curren)m(t)f(call)i(stac)m(k)g -(using)d(this)i(information.)150 4531 y Fs(FUNCNEST)96 +1789 y Ft(builtin)j(displa)m(ys)g(the)h(curren)m(t)f(call)i(stac)m(k)g +(using)d(this)i(information.)150 1943 y Fs(FUNCNEST)96 b Ft(If)34 b(set)i(to)f(a)h(n)m(umeric)e(v)-5 b(alue)36 b(greater)g(than)e(0,)j(de\014nes)d(a)h(maxim)m(um)g(function)g -(nesting)630 4641 y(lev)m(el.)42 b(F)-8 b(unction)29 +(nesting)630 2052 y(lev)m(el.)42 b(F)-8 b(unction)29 b(in)m(v)m(o)s(cations)h(that)f(exceed)h(this)e(nesting)h(lev)m(el)h -(will)f(cause)g(the)f(curren)m(t)630 4750 y(command)i(to)h(ab)s(ort.) -150 4902 y Fs(GLOBIGNORE)630 5011 y Ft(A)38 b(colon-separated)i(list)f +(will)f(cause)g(the)f(curren)m(t)630 2162 y(command)i(to)h(ab)s(ort.) +150 2315 y Fs(GLOBIGNORE)630 2425 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 5121 y(b)m(y)31 b(\014lename)g(expansion.)43 +(e)g(ignored)630 2534 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 5230 y(also)i(matc)m(hes)g(one)f(of)g(the)g +(expansion)f(pattern)630 2644 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 5340 y(matc)m(hes.)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 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 -408 y(mem)m(b)s(er.)47 b(Assignmen)m(ts)33 b(to)g Fs(GROUPS)e +e(the)h(list)h(of)630 2754 y(matc)m(hes.)150 2907 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 +3017 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 518 y Fs(GROUPS)29 b Ft(is)h(unset,)g(it)h(loses)g(its)g(sp)s +b(If)630 3126 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 682 y Fs(histchars)630 792 y Ft(Up)c(to)g(three)g(c)m +(reset.)150 3280 y Fs(histchars)630 3389 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 902 y(tok)m(enization)k(\(see)f(Section)f(9.3) -h([History)f(In)m(teraction],)i(page)f(135\).)41 b(The)29 -b(\014rst)e(c)m(harac-)630 1011 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 1121 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 -1230 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f +(substitution,)g(and)630 3499 y(tok)m(enization)k(\(see)f(Section)f +(9.3)h([History)f(In)m(teraction],)i(page)f(135\).)41 +b(The)29 b(\014rst)e(c)m(harac-)630 3608 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 3718 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 +3828 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 -1340 y(normally)27 b(`)p Fs(^)p Ft('.)39 b(The)26 b(optional)i(third)d +3937 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 1450 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h +630 4047 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 -1559 y(w)m(ord,)i(usually)f(`)p Fs(#)p Ft('.)55 b(The)34 +4156 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 1669 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f +(substitution)630 4266 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 1778 y(the)k(shell)f(parser)g(to)h(treat)g +(necessarily)g(cause)630 4376 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 -1943 y Fs(HISTCMD)144 b Ft(The)35 b(history)h(n)m(um)m(b)s(er,)g(or)f +4529 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 2052 y Fs(HISTCMD)28 b Ft(is)h(unset,)h(it)g(loses)h(its)f +56 b(If)630 4639 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 2217 y Fs(HISTCONTROL)630 2326 y Ft(A)40 +(tly)f(reset.)150 4792 y Fs(HISTCONTROL)630 4902 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 2436 +(w)e(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)630 5011 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 2545 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g +(b)s(egin)f(with)630 5121 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 2655 y(causes)34 +b(alue)39 b(of)g(`)p Fs(ignoredups)p Ft(')630 5230 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 -2765 y(of)32 b(`)p Fs(ignoreboth)p Ft(')d(is)j(shorthand)e(for)i(`)p +5340 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 2874 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 2984 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 -3093 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 3203 y(lines)30 +b(A)32 b(v)-5 b(alue)32 b(of)p eop end +%%Page: 74 80 +TeXDict begin 74 79 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(74)630 299 y(`)p +Fs(erasedups)p Ft(')31 b(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 +408 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 518 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 628 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 3313 y(of)42 b Fs(HISTIGNORE)p Ft(.)73 b(The)42 +b(alue)630 737 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)630 3422 y(command)33 b(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 -3532 y(of)31 b Fs(HISTCONTROL)p Ft(.)150 3696 y Fs(HISTFILE)96 +s(ound)630 847 y(command)33 b(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 +956 y(of)31 b Fs(HISTCONTROL)p Ft(.)150 1117 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 3806 y(is)30 b(`)p Fs(~/.bash_history)p Ft('.)150 -3970 y Fs(HISTFILESIZE)630 4080 y Ft(The)c(maxim)m(um)f(n)m(um)m(b)s +b(alue)630 1226 y(is)30 b(`)p Fs(~/.bash_history)p Ft('.)150 +1386 y Fs(HISTFILESIZE)630 1496 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 4189 y(is)25 b(assigned)h(a)g(v) +b(When)26 b(this)g(v)-5 b(ariable)630 1606 y(is)25 b(assigned)h(a)g(v) -5 b(alue,)27 b(the)f(history)f(\014le)h(is)f(truncated,)i(if)e (necessary)-8 b(,)28 b(to)e(con)m(tain)g(no)g(more)630 -4299 y(than)37 b(that)h(n)m(um)m(b)s(er)d(of)j(lines)f(b)m(y)g(remo)m +1715 y(than)37 b(that)h(n)m(um)m(b)s(er)d(of)j(lines)f(b)m(y)g(remo)m (ving)h(the)f(oldest)h(en)m(tries.)62 b(The)37 b(history)g(\014le)g(is) -630 4408 y(also)i(truncated)f(to)h(this)e(size)i(after)g(writing)f(it)g +630 1825 y(also)i(truncated)f(to)h(this)e(size)i(after)g(writing)f(it)g (when)f(a)h(shell)h(exits.)64 b(If)37 b(the)h(v)-5 b(alue)39 -b(is)630 4518 y(0,)g(the)e(history)f(\014le)h(is)g(truncated)f(to)i +b(is)630 1934 y(0,)g(the)e(history)f(\014le)h(is)g(truncated)f(to)i (zero)f(size.)60 b(Non-n)m(umeric)37 b(v)-5 b(alues)37 -b(and)f(n)m(umeric)630 4628 y(v)-5 b(alues)31 b(less)f(than)g(zero)h +b(and)f(n)m(umeric)630 2044 y(v)-5 b(alues)31 b(less)f(than)g(zero)h (inhibit)f(truncation.)41 b(The)29 b(shell)i(sets)f(the)h(default)f(v) --5 b(alue)31 b(to)g(the)630 4737 y(v)-5 b(alue)31 b(of)f +-5 b(alue)31 b(to)g(the)630 2153 y(v)-5 b(alue)31 b(of)f Fs(HISTSIZE)f Ft(after)h(reading)h(an)m(y)g(startup)f(\014les.)150 -4902 y Fs(HISTIGNORE)630 5011 y Ft(A)j(colon-separated)h(list)f(of)g +2314 y Fs(HISTIGNORE)630 2423 y Ft(A)j(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 5121 y(b)s(e)f(sa)m(v)m(ed)h(on)g(the)f(history)h(list.)47 +630 2533 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 5230 y(line)43 b(and)e(m)m(ust)h(matc)m(h)h(the)g +(of)h(the)630 2642 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 5340 y(pattern)42 b(is)g(tested)g(against)h +(ended\).)75 b(Eac)m(h)630 2752 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)p eop end -%%Page: 75 81 -TeXDict begin 75 80 bop 150 -116 a Ft(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(75)630 299 y(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 -408 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 518 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 628 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 -737 y(history)d(regardless)h(of)g(the)f(v)-5 b(alue)31 -b(of)g Fs(HISTIGNORE)p Ft(.)630 876 y Fs(HISTIGNORE)20 +Fs(HISTCONTROL)630 2862 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 2971 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 3081 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 3190 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 3300 y(history)d(regardless)h(of)g(the)f(v)-5 +b(alue)31 b(of)g Fs(HISTIGNORE)p Ft(.)630 3435 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 -985 y(to)k Fs(ignoredups)p Ft(,)e(and)h(a)h(pattern)g(of)f(`)p +3544 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 1095 y(these)30 b(t)m(w)m(o)h(patterns,)f +Ft(.)36 b(Com)m(bining)630 3654 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 1204 y Fs(ignoreboth)p Ft(.)150 -1372 y Fs(HISTSIZE)96 b Ft(The)37 b(maxim)m(um)g(n)m(um)m(b)s(er)e(of)j +(functionalit)m(y)h(of)630 3764 y Fs(ignoreboth)p Ft(.)150 +3924 y Fs(HISTSIZE)96 b Ft(The)37 b(maxim)m(um)g(n)m(um)m(b)s(er)e(of)j (commands)f(to)g(remem)m(b)s(er)g(on)g(the)g(history)g(list.)62 -b(If)37 b(the)630 1481 y(v)-5 b(alue)26 b(is)g(0,)i(commands)d(are)h +b(If)37 b(the)630 4033 y(v)-5 b(alue)26 b(is)g(0,)i(commands)d(are)h (not)h(sa)m(v)m(ed)g(in)e(the)h(history)g(list.)40 b(Numeric)26 -b(v)-5 b(alues)26 b(less)g(than)630 1591 y(zero)i(result)e(in)h(ev)m +b(v)-5 b(alues)26 b(less)g(than)630 4143 y(zero)i(result)e(in)h(ev)m (ery)g(command)g(b)s(eing)f(sa)m(v)m(ed)i(on)f(the)g(history)f(list)i -(\(there)f(is)g(no)g(limit\).)630 1700 y(The)j(shell)g(sets)h(the)g +(\(there)f(is)g(no)g(limit\).)630 4253 y(The)j(shell)g(sets)h(the)g (default)f(v)-5 b(alue)31 b(to)g(500)h(after)f(reading)f(an)m(y)h -(startup)f(\014les.)150 1868 y Fs(HISTTIMEFORMAT)630 -1977 y Ft(If)44 b(this)g(v)-5 b(ariable)45 b(is)f(set)g(and)g(not)g(n)m +(startup)f(\014les.)150 4413 y Fs(HISTTIMEFORMAT)630 +4522 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 2087 y Fq(strftime)c Ft(to)35 b(prin)m(t)f(the)h(time)g(stamp) +(for)630 4632 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 2196 y(b)m(y)g(the)f Fs(history)f Ft(builtin.)50 +(ed)630 4741 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 2306 y(history)26 b(\014le)g(so)g(they)g(ma)m +(written)f(to)i(the)630 4851 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 2416 y(commen)m(t)31 +b(This)25 b(uses)h(the)g(history)630 4961 y(commen)m(t)31 b(c)m(haracter)h(to)f(distinguish)f(timestamps)h(from)f(other)g -(history)h(lines.)150 2583 y Fs(HOSTFILE)96 b Ft(Con)m(tains)39 +(history)h(lines.)150 5121 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 2693 y(b)s(e)i(read)h(when)f +Fs(/etc/hosts)p Ft(')e(that)j(should)630 5230 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 2802 y(hostname)26 +b(The)42 b(list)g(of)g(p)s(ossible)630 5340 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 2912 y(hostname)37 +f(running;)h(the)g(next)f(time)p eop end +%%Page: 75 81 +TeXDict begin 75 80 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(75)630 299 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 3021 y(con)m(ten)m(ts)43 +b(is)h(c)m(hanged,)h(Bash)e(adds)g(the)630 408 y(con)m(ten)m(ts)43 b(of)f(the)f(new)g(\014le)h(to)g(the)f(existing)i(list.)74 b(If)41 b Fs(HOSTFILE)e Ft(is)i(set,)k(but)c(has)g(no)630 -3131 y(v)-5 b(alue,)29 b(or)e(do)s(es)h(not)g(name)f(a)h(readable)g +518 y(v)-5 b(alue,)29 b(or)e(do)s(es)h(not)g(name)f(a)h(readable)g (\014le,)h(Bash)f(attempts)g(to)g(read)g(`)p Fs(/etc/hosts)p -Ft(')d(to)630 3240 y(obtain)j(the)g(list)h(of)f(p)s(ossible)f(hostname) -h(completions.)41 b(When)28 b Fs(HOSTFILE)e Ft(is)i(unset,)g(the)630 -3350 y(hostname)j(list)g(is)f(cleared.)150 3517 y Fs(HOSTNAME)96 +Ft(')d(to)630 628 y(obtain)j(the)g(list)h(of)f(p)s(ossible)f(hostname)h +(completions.)41 b(When)28 b Fs(HOSTFILE)e Ft(is)i(unset,)g(the)630 +737 y(hostname)j(list)g(is)f(cleared.)150 906 y Fs(HOSTNAME)96 b Ft(The)30 b(name)g(of)h(the)f(curren)m(t)h(host.)150 -3685 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 3852 y Fs(IGNOREEOF)630 -3961 y Ft(Con)m(trols)e(the)h(action)g(of)f(the)g(shell)g(on)g(receipt) +1074 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 1243 y Fs(IGNOREEOF)630 +1353 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 -4071 y(If)i(set,)i(the)f(v)-5 b(alue)32 b(denotes)f(the)g(n)m(um)m(b)s +1462 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)630 4181 y(read)40 b(as)f(the)h(\014rst)f(c)m(haracter)i(on)f(an)f +s(e)630 1572 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 4290 y(v)-5 b(ariable)38 b(exists)f(but)f(do)s(es)g +b(If)39 b(the)630 1681 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 4400 y(default)31 +(v)-5 b(alue\))37 b(then)g(the)630 1791 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 -4509 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 4677 y Fs(INPUTRC)144 +1901 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 2069 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 4786 y(`)p -Fs(~/.inputrc)p Ft('.)150 4954 y Fs(LANG)288 b Ft(Used)28 +b(o)m(v)m(erriding)69 b(the)g(default)g(of)630 2179 y(`)p +Fs(~/.inputrc)p Ft('.)150 2347 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 5063 +(category)h(not)e(sp)s(eci\014cally)g(selected)630 2457 y(with)i(a)h(v)-5 b(ariable)31 b(starting)g(with)f Fs(LC_)p -Ft(.)150 5230 y Fs(LC_ALL)192 b Ft(This)28 b(v)-5 b(ariable)29 +Ft(.)150 2626 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 5340 y(a)i(lo)s(cale)h(category)-8 -b(.)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)150 299 y Fs(LC_COLLATE)630 408 -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 -518 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 628 y(alence)e(classes,) -h(and)e(collating)i(sequences)e(within)f(\014lename)h(expansion)g(and)f -(pattern)630 737 y(matc)m(hing)d(\(see)h(Section)f(3.5.8)h([Filename)g -(Expansion],)e(page)h(29\).)150 894 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 1003 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 1113 -y(tion)31 b(3.5.8)h([Filename)g(Expansion],)e(page)h(29\).)150 -1270 y Fs(LC_MESSAGES)630 1379 y Ft(This)25 b(v)-5 b(ariable)27 +b(sp)s(ecifying)630 2735 y(a)i(lo)s(cale)h(category)-8 +b(.)150 2904 y Fs(LC_COLLATE)630 3013 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 3123 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 3232 y(alence)e(classes,)h(and)e(collating)i(sequences)e +(within)f(\014lename)h(expansion)g(and)f(pattern)630 +3342 y(matc)m(hing)d(\(see)h(Section)f(3.5.8)h([Filename)g(Expansion],) +e(page)h(29\).)150 3511 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 3620 +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 3730 y(tion)31 +b(3.5.8)h([Filename)g(Expansion],)e(page)h(29\).)150 +3898 y Fs(LC_MESSAGES)630 4008 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 1489 y(ceded)31 b(b)m(y)f(a)h(`)p +f(strings)g(pre-)630 4118 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 1645 y Fs(LC_NUMERIC)630 -1755 y Ft(This)f(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h +b(ranslation],)32 b(page)f(7\).)150 4286 y Fs(LC_NUMERIC)630 +4396 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 -1911 y Fs(LINENO)192 b Ft(The)30 b(line)h(n)m(um)m(b)s(er)e(in)h(the)g +4564 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 -2068 y Fs(LINES)240 b Ft(Used)22 b(b)m(y)f(the)h Fs(select)e -Ft(command)h(to)h(determine)g(the)g(column)f(length)i(for)e(prin)m -(ting)g(selec-)630 2178 y(tion)26 b(lists.)40 b(Automatically)29 -b(set)d(b)m(y)g(an)g(in)m(teractiv)m(e)j(shell)d(up)s(on)f(receipt)h -(of)h(a)f Fs(SIGWINCH)p Ft(.)150 2334 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 -2444 y(standard)k Fl(gnu)g Fq(cpu-compan)m(y-system)h -Ft(format.)150 2600 y Fs(MAILCHECK)630 2710 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 2819 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 2929 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 3039 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 3148 y(equal)31 -b(to)g(zero,)g(the)g(shell)g(disables)f(mail)h(c)m(hec)m(king.)150 -3305 y Fs(MAPFILE)144 b Ft(An)35 b(arra)m(y)h(v)-5 b(ariable)36 -b(created)g(to)h(hold)e(the)g(text)i(read)e(b)m(y)g(the)h -Fs(mapfile)d Ft(builtin)i(when)630 3414 y(no)30 b(v)-5 -b(ariable)31 b(name)g(is)f(supplied.)150 3571 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 3727 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 -3837 y Ft(builtin)30 b(command.)150 3994 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 4150 y Fs(PIPESTATUS)630 4260 -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(88\))h(con)m(taining)g(a)f(list)g(of)g(exit)g -(sta-)630 4369 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 -4479 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h -(command\).)150 4635 y Fs(POSIXLY_CORRECT)630 4745 y +4733 y Fs(LINES)240 b Ft(Used)43 b(b)m(y)g(the)g Fs(select)e +Ft(command)i(to)g(determine)g(the)g(column)g(length)g(for)g(prin)m +(ting)630 4843 y(selection)c(lists.)63 b(Automatically)41 +b(set)d(if)f(the)h Fs(checkwinsize)d Ft(option)j(is)f(enabled)h(\(see) +630 4952 y(Section)44 b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d +(61\),)k(or)43 b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 +5062 y(receipt)31 b(of)g(a)g Fs(SIGWINCH)p Ft(.)150 5230 +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 5340 y(standard)k Fl(gnu)g Fq(cpu-compan)m(y-system)h +Ft(format.)p eop end +%%Page: 76 82 +TeXDict begin 76 81 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(76)150 299 y Fs(MAILCHECK)630 +408 y Ft(Ho)m(w)28 b(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 518 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 628 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 +737 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 847 y(equal)31 b(to)g(zero,)g(the)g(shell)g(disables)f +(mail)h(c)m(hec)m(king.)150 996 y Fs(MAPFILE)144 b Ft(An)35 +b(arra)m(y)h(v)-5 b(ariable)36 b(created)g(to)h(hold)e(the)g(text)i +(read)e(b)m(y)g(the)h Fs(mapfile)d Ft(builtin)i(when)630 +1105 y(no)30 b(v)-5 b(ariable)31 b(name)g(is)f(supplied.)150 +1254 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 1403 +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 1512 y Ft(builtin)30 b(command.)150 +1661 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 1810 +y Fs(PIPESTATUS)630 1919 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(88\))h +(con)m(taining)g(a)f(list)g(of)g(exit)g(sta-)630 2029 +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 +2138 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h +(command\).)150 2287 y Fs(POSIXLY_CORRECT)630 2397 y Ft(If)h(this)g(v)-5 b(ariable)34 b(is)e(in)g(the)h(en)m(vironmen)m(t)g (when)e(Bash)i(starts,)g(the)g(shell)g(en)m(ters)g Fl(posix)630 -4855 y Ft(mo)s(de)22 b(\(see)h(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s -(de],)k(page)e(92\))g(b)s(efore)f(reading)g(the)g(startup)630 -4964 y(\014les,)32 b(as)f(if)h(the)f(`)p Fs(--posix)p +2506 y Ft(mo)s(de)22 b(\(see)h(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s +(de],)k(page)e(93\))g(b)s(efore)f(reading)g(the)g(startup)630 +2616 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 5074 y(the)f(shell)f(is)h(running,) +b(If)31 b(it)h(is)f(set)h(while)630 2725 y(the)f(shell)f(is)h(running,) d(Bash)j(enables)g Fl(posix)e Ft(mo)s(de,)h(as)h(if)f(the)h(command)870 -5207 y Fs(set)47 b(-o)g(posix)630 5340 y Ft(had)30 b(b)s(een)f -(executed.)p eop end -%%Page: 77 83 -TeXDict begin 77 82 bop 150 -116 a Ft(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(77)150 299 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 451 y Fs(PROMPT_COMMAND)630 560 y Ft(If)32 b(set,)h(the)f(v)-5 +2855 y Fs(set)47 b(-o)g(posix)630 2984 y Ft(had)30 b(b)s(een)f +(executed.)150 3133 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 +3281 y Fs(PROMPT_COMMAND)630 3391 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 670 y(eac)m(h)g(primary)d(prompt)g -(\()p Fs($PS1)p Ft(\).)150 822 y Fs(PROMPT_DIRTRIM)630 -931 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 1041 y(directory)35 b(comp)s(onen)m(ts)g(to)h(retain)f +(efore)f(the)g(prin)m(ting)g(of)630 3500 y(eac)m(h)g(primary)d(prompt)g +(\()p Fs($PS1)p Ft(\).)150 3649 y Fs(PROMPT_DIRTRIM)630 +3759 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 3868 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 1150 y(escap)s(es)21 b(\(see)h(Section)f(6.9)h +Ft(prompt)g(string)630 3978 y(escap)s(es)21 b(\(see)h(Section)f(6.9)h ([Con)m(trolling)g(the)f(Prompt],)h(page)f(91\).)39 b(Characters)21 -b(remo)m(v)m(ed)630 1260 y(are)31 b(replaced)g(with)f(an)g(ellipsis.) -150 1412 y Fs(PS3)336 b Ft(The)34 b(v)-5 b(alue)35 b(of)f(this)g(v)-5 +b(remo)m(v)m(ed)630 4088 y(are)31 b(replaced)g(with)f(an)g(ellipsis.) +150 4236 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 1521 y(this)30 b(v)-5 +Fs(select)f Ft(command.)52 b(If)630 4346 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 1673 y Fs(PS4)336 +(prompts)f(with)h(`)p Fs(#?)g Ft(')150 4495 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 1783 y(option)32 b(is)f(set)h(\(see)g(Section)h(4.3.1) -g([The)e(Set)g(Builtin],)i(page)f(58\).)45 b(The)31 b(\014rst)f(c)m -(haracter)630 1892 y(of)k Fs(PS4)g Ft(is)g(replicated)i(m)m(ultiple)f +Fs(-x)p Ft(')630 4604 y(option)32 b(is)f(set)h(\(see)g(Section)h(4.3.1) +g([The)e(Set)g(Builtin],)i(page)f(57\).)45 b(The)31 b(\014rst)f(c)m +(haracter)630 4714 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 2002 y(indirection.)41 b(The)30 b(default)h(is)f(`)p -Fs(+)g Ft('.)150 2153 y Fs(PWD)336 b Ft(The)30 b(curren)m(t)g(w)m +m(els)h(of)630 4823 y(indirection.)41 b(The)30 b(default)h(is)f(`)p +Fs(+)g Ft('.)150 4972 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 2305 y Fs(RANDOM)192 b Ft(Eac)m(h)30 +Ft(builtin.)150 5121 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 2415 y(is)i(generated.)43 +h(b)s(et)m(w)m(een)g(0)f(and)g(32767)630 5230 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 -2524 y(erator.)150 2676 y Fs(READLINE_LINE)630 2786 y -Ft(The)e(con)m(ten)m(ts)i(of)f(the)g(Readline)g(line)g(bu\013er,)f(for) -h(use)f(with)g(`)p Fs(bind)j(-x)p Ft(')d(\(see)h(Section)h(4.2)630 -2895 y([Bash)i(Builtins],)g(page)g(48\).)150 3047 y Fs(READLINE_POINT) -630 3157 y Ft(The)23 b(p)s(osition)g(of)g(the)h(insertion)f(p)s(oin)m -(t)g(in)g(the)g(Readline)h(line)f(bu\013er,)h(for)f(use)g(with)g(`)p -Fs(bind)630 3266 y(-x)p Ft(')30 b(\(see)h(Section)h(4.2)f([Bash)g -(Builtins],)g(page)g(48\).)150 3418 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 3570 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 -3679 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43 +5340 y(erator.)p eop end +%%Page: 77 83 +TeXDict begin 77 82 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(77)150 299 y Fs(READLINE_LINE)630 +408 y Ft(The)27 b(con)m(ten)m(ts)i(of)f(the)g(Readline)g(line)g +(bu\013er,)f(for)h(use)f(with)g(`)p Fs(bind)j(-x)p Ft(')d(\(see)h +(Section)h(4.2)630 518 y([Bash)i(Builtins],)g(page)g(47\).)150 +667 y Fs(READLINE_POINT)630 776 y Ft(The)23 b(p)s(osition)g(of)g(the)h +(insertion)f(p)s(oin)m(t)g(in)g(the)g(Readline)h(line)f(bu\013er,)h +(for)f(use)g(with)g(`)p Fs(bind)630 886 y(-x)p Ft(')30 +b(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(47\).)150 +1035 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 1183 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 +1293 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 3789 y(expanded)35 b(v)-5 +b(assigned,)j(and)c(the)630 1403 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 3898 y(the)31 -b(assignmen)m(t.)150 4050 y Fs(SHELL)240 b Ft(The)29 +(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 1512 y(the)31 +b(assignmen)m(t.)150 1661 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 -4160 y(set)36 b(when)f(the)h(shell)g(starts,)i(Bash)e(assigns)h(to)f +1771 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 -4269 y(user's)30 b(login)h(shell.)150 4421 y Fs(SHELLOPTS)630 -4531 y Ft(A)g(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.) +1880 y(user's)30 b(login)h(shell.)150 2029 y Fs(SHELLOPTS)630 +2138 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 4640 y(argumen)m(t)24 b(for)f(the)h(`)p Fs(-o)p +b(alid)630 2248 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 4750 y(Set)k(Builtin],)h(page)f(58\).)42 +(Section)f(4.3.1)h([The)630 2358 y(Set)k(Builtin],)h(page)f(57\).)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 4859 y(as)g(`)p Fs(on)p +Ft(are)j(those)h(rep)s(orted)630 2467 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 4969 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h(list) +(starts)g(up,)630 2577 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 5079 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 -b(.)150 5230 y Fs(SHLVL)240 b Ft(Incremen)m(ted)21 b(b)m(y)g(one)g(eac) +(\014les.)630 2686 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 +b(.)150 2835 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 5340 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.)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 Fs(TIMEFORMAT)630 408 -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 -518 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 -628 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 737 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 -847 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h(p) -s(ortions.)630 1006 y Fs(\045\045)384 b Ft(A)30 b(literal)i(`)p -Fs(\045)p Ft('.)630 1166 y Fs(\045[)p Fi(p)11 b Fs(][l]R)85 -b Ft(The)30 b(elapsed)h(time)g(in)f(seconds.)630 1325 +b(This)20 b(is)h(in)m(tended)630 2945 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 +3093 y Fs(TIMEFORMAT)630 3203 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 3313 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 3422 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 3532 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 +3641 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h +(p)s(ortions.)630 3790 y Fs(\045\045)384 b Ft(A)30 b(literal)i(`)p +Fs(\045)p Ft('.)630 3939 y Fs(\045[)p Fi(p)11 b Fs(][l]R)85 +b Ft(The)30 b(elapsed)h(time)g(in)f(seconds.)630 4088 y Fs(\045[)p Fi(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 -1484 y Fs(\045[)p Fi(p)11 b Fs(][l]S)85 b Ft(The)30 b(n)m(um)m(b)s(er)f +4236 y Fs(\045[)p Fi(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 -1644 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 1803 +4385 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 4534 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 -1913 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35 +4643 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 2022 y(output.)48 b(A)m(t)34 +(fraction)g(to)g(b)s(e)630 4753 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 2132 y(of)31 +h(b)s(e)e(sp)s(eci\014ed;)i(v)-5 b(alues)630 4862 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 2267 y(The)54 b(optional)h +b(alue)30 b(3)h(is)g(used.)630 4992 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 2376 y Fq(MM)10 +b(min)m(utes,)61 b(of)54 b(the)g(form)630 5101 y Fq(MM)10 b Ft(m)p Fq(SS)5 b Ft(.)p Fq(FF)i Ft(s.)102 b(The)50 b(v)-5 b(alue)51 b(of)g Fq(p)i Ft(determines)e(whether)f(or)h(not)f -(the)h(fraction)h(is)630 2486 y(included.)630 2620 y(If)30 +(the)h(fraction)h(is)630 5211 y(included.)630 5340 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 2755 y Fs +(it)h(had)f(the)h(v)-5 b(alue)p eop end +%%Page: 78 84 +TeXDict begin 78 83 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(78)870 299 y Fs ($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o(sys\\)o(t\0453)o(lS')630 -2889 y Ft(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f +433 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 2999 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m -(y)m(ed.)150 3158 y Fs(TMOUT)240 b Ft(If)22 b(set)h(to)g(a)g(v)-5 +(is)630 543 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m +(y)m(ed.)150 702 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 3268 y Fs(read)31 +(the)h(default)g(timeout)g(for)g(the)630 812 y Fs(read)31 b Ft(builtin)h(\(see)h(Section)f(4.2)i([Bash)e(Builtins],)h(page)g -(48\).)47 b(The)32 b Fs(select)e Ft(command)630 3377 -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 3487 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 3621 y(In)40 b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d +(47\).)47 b(The)32 b Fs(select)e Ft(command)630 922 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 1031 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 1166 y(In)40 b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d (v)-5 b(alue)41 b(is)g(in)m(terpreted)g(as)f(the)h(n)m(um)m(b)s(er)f -(of)h(seconds)f(to)630 3731 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input) +(of)h(seconds)f(to)630 1275 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input) e(after)i(issuing)f(the)h(primary)e(prompt.)39 b(Bash)26 -b(terminates)h(after)630 3841 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m +b(terminates)h(after)630 1385 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m (b)s(er)e(of)h(seconds)h(if)f(a)h(complete)h(line)e(of)h(input)e(do)s -(es)h(not)h(arriv)m(e.)150 4000 y Fs(TMPDIR)192 b Ft(If)39 +(es)h(not)h(arriv)m(e.)150 1544 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 4110 +g(directory)g(in)f(whic)m(h)g(Bash)h(creates)630 1654 y(temp)s(orary)30 b(\014les)g(for)g(the)h(shell's)g(use.)150 -4269 y Fs(UID)336 b Ft(The)30 b(n)m(umeric)g(real)h(user)f(id)g(of)g +1813 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: 79 85 @@ -13028,7 +13118,7 @@ b([-o)k Fi(option)11 b Fs(])46 b([-O)h Fi(shopt_option)11 b Fs(])43 b([)p Fi(ar-)390 1460 y(gument)57 b Fs(...)o(])275 1592 y Ft(All)31 b(of)g(the)f(single-c)m(haracter)k(options)d(used)f (with)g(the)h Fs(set)f Ft(builtin)g(\(see)h(Section)h(4.3.1)g([The)f -(Set)150 1702 y(Builtin],)45 b(page)c(58\))i(can)e(b)s(e)f(used)h(as)g +(Set)150 1702 y(Builtin],)45 b(page)c(57\))i(can)e(b)s(e)f(used)h(as)g (options)g(when)f(the)i(shell)f(is)g(in)m(v)m(ok)m(ed.)74 b(In)41 b(addition,)j(there)150 1811 y(are)38 b(sev)m(eral)h(m)m (ulti-c)m(haracter)h(options)d(that)h(y)m(ou)g(can)g(use.)61 @@ -13038,7 +13128,7 @@ b(These)38 b(options)f(m)m(ust)h(app)s(ear)e(on)i(the)150 2186 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 2296 y(on)37 b(extended)g(debugging)g(mo)s(de)g(\(see)h -(Section)g(4.3.2)g([The)f(Shopt)g(Builtin],)i(page)f(62)630 +(Section)g(4.3.2)g([The)f(Shopt)g(Builtin],)i(page)f(61)630 2405 y(for)30 b(a)h(description)f(of)h(the)f Fs(extdebug)f Ft(option)h(to)h(the)g Fs(shopt)e Ft(builtin\).)150 2561 y Fs(--dump-po-strings)630 2670 y Ft(A)37 b(list)g(of)f(all)i @@ -13076,19 +13166,19 @@ b Ft(Change)24 b(the)h(b)s(eha)m(vior)f(of)g(Bash)h(where)e(the)i 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)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)630 299 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(92,)630 408 y(for)k(a)h(description)f(of)h(the)f(Bash)h -Fl(posix)f Ft(mo)s(de.)150 572 y Fs(--restricted)630 -682 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 792 -y(page)31 b(92\).)150 956 y Fs(--verbose)630 1065 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 1229 -y Fs(--version)630 1339 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 -1448 y(exit)j(successfully)-8 b(.)275 1615 y(There)28 +TeXDict begin 80 85 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(80)630 299 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(93,)630 408 y(for)k(a)h +(description)f(of)h(the)f(Bash)h Fl(posix)f Ft(mo)s(de.)150 +572 y Fs(--restricted)630 682 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 792 y(page)31 b(92\).)150 956 y Fs(--verbose)630 +1065 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 +1229 y Fs(--version)630 1339 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 1448 y(exit)j(successfully)-8 b(.)275 1615 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 1724 y(not)i(a)m(v)-5 b(ailable)32 b(with)e(the)h Fs(set)e @@ -13134,7 +13224,7 @@ b(implies)i(the)f(`)p Fs(-n)p Ft(')h(option;)g(no)f(commands)g(will)h b Fs(])630 4518 y Fq(shopt)p 854 4518 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 4628 y(Section)28 b(4.3.2)g([The)f -(Shopt)f(Builtin],)i(page)f(62\).)41 b(If)26 b Fq(shopt)p +(Shopt)f(Builtin],)i(page)f(61\).)41 b(If)26 b Fq(shopt)p 2690 4628 V 40 w(option)h Ft(is)g(presen)m(t,)h(`)p Fs(-O)p Ft(')f(sets)630 4738 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 @@ -13230,38 +13320,38 @@ y(v)-5 b(ariable)35 b Fs(BASH_ENV)d Ft(in)i(the)h(en)m(vironmen)m(t,)h b(b)s(eha)m(v)m(es)g(as)g(if)f(the)g(follo)m(wing)150 5340 y(command)g(w)m(ere)h(executed:)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)390 299 y Fs(if)47 b([)h(-n)f("$BASH_ENV")e(];) -i(then)f(.)i("$BASH_ENV";)c(fi)150 461 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(\014lename.)275 -622 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 732 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 958 y Fj(In)m(v)m(ok)m(ed)40 b(with)g(name)h Fh(sh)150 -1105 y Ft(If)c(Bash)g(is)g(in)m(v)m(ok)m(ed)i(with)e(the)g(name)g -Fs(sh)p Ft(,)i(it)f(tries)f(to)h(mimic)g(the)f(startup)g(b)s(eha)m -(vior)g(of)h(historical)150 1215 y(v)m(ersions)31 b(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 1376 -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 1486 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 1596 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 -1705 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 1815 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 -1924 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 2034 -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 +TeXDict begin 82 87 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(82)390 299 y Fs(if)47 +b([)h(-n)f("$BASH_ENV")e(];)i(then)f(.)i("$BASH_ENV";)c(fi)150 +461 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 +(\014lename.)275 622 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 732 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 958 y Fj(In)m(v)m(ok)m(ed)40 +b(with)g(name)h Fh(sh)150 1105 y Ft(If)c(Bash)g(is)g(in)m(v)m(ok)m(ed)i +(with)e(the)g(name)g Fs(sh)p Ft(,)i(it)f(tries)f(to)h(mimic)g(the)f +(startup)g(b)s(eha)m(vior)g(of)h(historical)150 1215 +y(v)m(ersions)31 b(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 1376 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 1486 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 1596 +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 1705 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 +1815 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 1924 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 +2034 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 2143 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 2253 y(\014les.)275 2415 @@ -13362,7 +13452,7 @@ Fs(PS2)e Ft(b)s(efore)i(reading)g(the)g(second)f(and)h(subsequen)m(t)f 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 4287 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(69\).)199 4419 +([Bash)f(V)-8 b(ariables],)32 b(page)f(68\).)199 4419 y(5.)61 b(Readline)27 b(\(see)g(Chapter)e(8)h([Command)g(Line)g (Editing],)h(page)g(101\))g(is)f(used)g(to)g(read)g(commands)330 4528 y(from)k(the)g(user's)g(terminal.)199 4660 y(6.)61 @@ -13371,7 +13461,7 @@ Fs(ignoreeof)e Ft(option)j(to)g Fs(set)29 b(-o)36 b Ft(instead)h(of)f (exiting)i(imme-)330 4770 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 4879 y(Section)31 b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g -(58\).)199 5011 y(7.)61 b(Command)43 b(history)h(\(see)h(Section)g(9.1) +(57\).)199 5011 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(133\))h(and)d (history)330 5121 y(expansion)h(\(see)i(Section)f(9.3)h([History)g(In)m (teraction],)k(page)45 b(135\))h(are)f(enabled)g(b)m(y)f(default.)330 @@ -13379,14 +13469,15 @@ g([Bash)f(History)h(F)-8 b(acilities],)51 b(page)45 b(133\))h(and)d (the)g(\014le)g(named)f(b)m(y)h Fs($HISTFILE)d Ft(when)h(a)i(shell)g (with)330 5340 y(history)i(enabled)h(exits.)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)199 299 y(8.)61 b(Alias)31 b(expansion)g(\(see) -g(Section)g(6.6)g([Aliases],)i(page)e(87\))h(is)e(p)s(erformed)f(b)m(y) -h(default.)199 431 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(38\).)154 563 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 672 y(page)i(38\).)42 +TeXDict begin 84 89 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(84)199 299 y(8.)61 +b(Alias)31 b(expansion)g(\(see)g(Section)g(6.6)g([Aliases],)i(page)e +(87\))h(is)e(p)s(erformed)f(b)m(y)h(default.)199 431 +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(38\).)154 563 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 672 y(page)i(38\).)42 b Fs(SIGINT)29 b Ft(will)h(in)m(terrupt)g(some)h(shell)g(builtins.)154 804 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 @@ -13395,17 +13486,17 @@ Fs(huponexit)e Ft(shell)330 914 y(option)31 b(has)f(b)s(een)g(enabled)g 1046 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 -1155 y(Set)j(Builtin],)g(page)g(58\).)154 1287 y(13.)61 +1155 y(Set)j(Builtin],)g(page)g(57\).)154 1287 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 1397 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(69\).)154 1528 +([Bash)g(V)-8 b(ariables],)32 b(page)f(68\).)154 1528 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 1638 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(58\).)154 1770 y(15.)61 b(The)48 +(Builtin],)g(page)g(57\).)154 1770 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 1879 y Fs(${)p Fi(var)11 b Fs(:?)p Fi(word)g Fs(})26 @@ -13416,23 +13507,23 @@ b(errors)f(encoun)m(tered)h(b)m(y)f(shell)h(builtins)f(will)g(not)h 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 2253 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(92\).)154 2385 y(18.)61 b(A)34 +(POSIX)e(Mo)s(de],)i(page)g(93\).)154 2385 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 -2494 y(page)e(41\).)154 2626 y(19.)61 b(P)m(arser)31 +2494 y(page)e(40\).)154 2626 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 2758 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 2868 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 2977 y(Shopt)30 -b(Builtin],)h(page)g(62\).)154 3109 y(21.)61 b(The)42 +b(Builtin],)h(page)g(61\).)154 3109 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 3219 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 3328 y(V)-8 b(ariables],)32 -b(page)f(69\).)150 3555 y Fr(6.4)68 b(Bash)45 b(Conditional)h +b(page)f(68\).)150 3555 y Fr(6.4)68 b(Bash)45 b(Conditional)h (Expressions)150 3715 y Ft(Conditional)26 b(expressions)g(are)g(used)f (b)m(y)g(the)h Fs([[)f Ft(comp)s(ound)g(command)g(and)g(the)h Fs(test)f Ft(and)g Fs([)g Ft(builtin)150 3824 y(commands.)275 @@ -13449,10 +13540,10 @@ 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 4395 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 4526 y(When)j(used)g(with)h(`)p Fs([[)p Ft(',)h(the)f(`)p +275 4526 y(When)37 b(used)g(with)g Fs([[)p Ft(,)i(the)f(`)p Fs(<)p Ft(')g(and)f(`)p Fs(>)p Ft(')h(op)s(erators)g(sort)g -(lexicographically)j(using)c(the)h(curren)m(t)150 4636 -y(lo)s(cale.)42 b(The)30 b Fs(test)f Ft(command)i(uses)f(ASCI)s(I)e +(lexicographically)i(using)d(the)h(curren)m(t)150 4636 +y(lo)s(cale.)k(The)30 b Fs(test)f Ft(command)i(uses)f(ASCI)s(I)e (ordering.)275 4768 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 4878 y(op)s(erate)31 b(on)f(the)h(target)h(of)e @@ -13523,772 +13614,793 @@ y Fs(-o)g Fi(optname)630 4299 y Ft(T)-8 b(rue)41 b(if)g(the)g(shell)h b(list)h(of)f(options)h(app)s(ears)e(in)630 4408 y(the)30 b(description)f(of)h(the)g(`)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 -4518 y(Builtin],)h(page)g(58\).)150 4682 y Fs(-v)f Fi(varname)630 +4518 y(Builtin],)h(page)g(57\).)150 4682 y Fs(-v)f Fi(varname)630 4792 y Ft(T)-8 b(rue)30 b(if)g(the)h(shell)f(v)-5 b(ariable)32 b Fq(v)-5 b(arname)35 b Ft(is)30 b(set)h(\(has)g(b)s(een)e(assigned)i -(a)g(v)-5 b(alue\).)150 4956 y Fs(-z)30 b Fi(string)630 -5066 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 5230 y Fs(-n)f Fi(string)150 5340 -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.)p eop end +(a)g(v)-5 b(alue\).)150 4956 y Fs(-R)30 b Fi(varname)630 +5066 y Ft(T)-8 b(rue)30 b(if)g(the)h(shell)f(v)-5 b(ariable)32 +b Fq(v)-5 b(arname)35 b Ft(is)30 b(set)h(and)f(is)h(a)f(name)h +(reference.)150 5230 y Fs(-z)f Fi(string)630 5340 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.)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)150 299 y Fi(string1)39 b Fs(==)30 -b Fi(string2)150 408 y(string1)39 b Fs(=)30 b Fi(string2)630 -518 y Ft(T)-8 b(rue)35 b(if)h(the)g(strings)g(are)g(equal.)58 -b(`)p Fs(=)p Ft(')36 b(should)f(b)s(e)g(used)g(with)h(the)g -Fs(test)f Ft(command)g(for)630 628 y Fl(posix)30 b Ft(conformance.)150 -790 y Fi(string1)39 b Fs(!=)30 b Fi(string2)630 899 y -Ft(T)-8 b(rue)30 b(if)g(the)h(strings)f(are)h(not)f(equal.)150 -1061 y Fi(string1)39 b Fs(<)30 b Fi(string2)630 1171 +TeXDict begin 86 91 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(86)150 299 y Fs(-n)30 +b Fi(string)150 408 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 +569 y Fi(string1)39 b Fs(==)30 b Fi(string2)150 678 y(string1)39 +b Fs(=)30 b Fi(string2)630 788 y Ft(T)-8 b(rue)43 b(if)h(the)g(strings) +g(are)g(equal.)82 b(When)44 b(used)f(with)g(the)h Fs([[)g +Ft(command,)j(this)d(p)s(er-)630 898 y(forms)d(pattern)g(matc)m(hing)i +(as)f(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g(3.2.4.2)i +([Conditional)630 1007 y(Constructs],)30 b(page)h(10\).)630 +1142 y(`)p Fs(=)p Ft(')g(should)e(b)s(e)h(used)f(with)h(the)h +Fs(test)e Ft(command)h(for)g Fl(posix)g Ft(conformance.)150 +1302 y Fi(string1)39 b Fs(!=)30 b Fi(string2)630 1412 +y Ft(T)-8 b(rue)30 b(if)g(the)h(strings)f(are)h(not)f(equal.)150 +1572 y Fi(string1)39 b Fs(<)30 b Fi(string2)630 1682 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)-8 -b(.)150 1333 y Fi(string1)39 b Fs(>)30 b Fi(string2)630 -1442 y Ft(T)-8 b(rue)30 b(if)g Fq(string1)38 b Ft(sorts)31 +b(.)150 1842 y Fi(string1)39 b Fs(>)30 b Fi(string2)630 +1952 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)-8 b(.)150 -1604 y Fi(arg1)40 b Fs(OP)29 b Fi(arg2)630 1714 y Fs(OP)k +2112 y Fi(arg1)40 b Fs(OP)29 b Fi(arg2)630 2222 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 1823 y(op)s(erators)h(return)e(true)i(if)f +b(arithmetic)h(binary)630 2331 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 1933 y(equal)28 b(to,)h(greater)g(than,)f(or)f +h(less)f(than)f(or)630 2441 y(equal)28 b(to,)h(greater)g(than,)f(or)f (greater)i(than)e(or)h(equal)g(to)g Fq(arg2)7 b Ft(,)30 b(resp)s(ectiv)m(ely)-8 b(.)41 b Fq(Arg1)36 b Ft(and)630 -2043 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 2279 y Fr(6.5)68 b(Shell)45 b(Arithmetic)150 -2438 y Ft(The)35 b(shell)g(allo)m(ws)i(arithmetic)f(expressions)f(to)h +2550 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 2784 y Fr(6.5)68 b(Shell)45 b(Arithmetic)150 +2944 y Ft(The)35 b(shell)g(allo)m(ws)i(arithmetic)f(expressions)f(to)h (b)s(e)f(ev)-5 b(aluated,)38 b(as)d(one)h(of)f(the)h(shell)f -(expansions)g(or)150 2548 y(b)m(y)30 b(the)h Fs(let)e +(expansions)g(or)150 3053 y(b)m(y)30 b(the)h Fs(let)e Ft(and)h(the)h(`)p Fs(-i)p Ft(')f(option)h(to)g(the)f -Fs(declare)f Ft(builtins.)275 2685 y(Ev)-5 b(aluation)27 +Fs(declare)f Ft(builtins.)275 3189 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 -2795 y(0)g(is)g(trapp)s(ed)f(and)h(\015agged)g(as)h(an)f(error.)39 +3298 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 2904 y(v)-5 b(alues)35 b(are)h(the)f(same)g(as)h +(y)-8 b(,)32 b(and)150 3408 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 3014 y(lev)m(els)27 +(erators)g(is)g(group)s(ed)f(in)m(to)150 3517 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 -3177 y Fi(id)11 b Fs(++)29 b Fi(id)11 b Fs(--)630 3287 +3678 y Fi(id)11 b Fs(++)29 b Fi(id)11 b Fs(--)630 3788 y Ft(v)-5 b(ariable)31 b(p)s(ost-incremen)m(t)g(and)f(p)s(ost-decremen) -m(t)150 3449 y Fs(++)p Fi(id)40 b Fs(--)p Fi(id)630 3558 +m(t)150 3948 y Fs(++)p Fi(id)40 b Fs(--)p Fi(id)630 4058 y Ft(v)-5 b(ariable)31 b(pre-incremen)m(t)g(and)f(pre-decremen)m(t)150 -3720 y Fs(-)g(+)354 b Ft(unary)29 b(min)m(us)h(and)g(plus)150 -3882 y Fs(!)g(~)354 b Ft(logical)33 b(and)d(bit)m(wise)h(negation)150 -4044 y Fs(**)384 b Ft(exp)s(onen)m(tiation)150 4206 y +4218 y Fs(-)g(+)354 b Ft(unary)29 b(min)m(us)h(and)g(plus)150 +4378 y Fs(!)g(~)354 b Ft(logical)33 b(and)d(bit)m(wise)h(negation)150 +4538 y Fs(**)384 b Ft(exp)s(onen)m(tiation)150 4699 y Fs(*)30 b(/)g(\045)276 b Ft(m)m(ultiplication,)33 b(division,)d -(remainder)150 4368 y Fs(+)g(-)354 b Ft(addition,)31 -b(subtraction)150 4530 y Fs(<<)f(>>)258 b Ft(left)31 -b(and)f(righ)m(t)h(bit)m(wise)g(shifts)150 4692 y Fs(<=)f(>=)g(<)g(>) -102 b Ft(comparison)150 4854 y Fs(==)30 b(!=)258 b Ft(equalit)m(y)32 -b(and)e(inequalit)m(y)150 5016 y Fs(&)432 b Ft(bit)m(wise)31 -b(AND)150 5178 y Fs(^)432 b Ft(bit)m(wise)31 b(exclusiv)m(e)h(OR)150 -5340 y Fs(|)432 b Ft(bit)m(wise)31 b(OR)p eop end +(remainder)150 4859 y Fs(+)g(-)354 b Ft(addition,)31 +b(subtraction)150 5019 y Fs(<<)f(>>)258 b Ft(left)31 +b(and)f(righ)m(t)h(bit)m(wise)g(shifts)150 5180 y Fs(<=)f(>=)g(<)g(>) +102 b Ft(comparison)150 5340 y Fs(==)30 b(!=)258 b Ft(equalit)m(y)32 +b(and)e(inequalit)m(y)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)150 299 y Fs(&&)384 -b Ft(logical)33 b(AND)150 446 y Fs(||)384 b Ft(logical)33 -b(OR)150 592 y Fs(expr)c(?)h(expr)f(:)h(expr)630 702 -y Ft(conditional)i(op)s(erator)150 849 y Fs(=)e(*=)g(/=)g(\045=)f(+=)h -(-=)g(<<=)f(>>=)h(&=)g(^=)f(|=)630 958 y Ft(assignmen)m(t)150 -1105 y Fs(expr1)g(,)h(expr2)630 1214 y Ft(comma)275 1361 -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 1471 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 1580 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 1690 -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 -1800 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 1909 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 2019 y(a)j(v)-5 b(alue.)58 b(A)36 -b(n)m(ull)f(v)-5 b(alue)37 b(ev)-5 b(aluates)37 b(to)g(0.)57 -b(A)36 b(shell)g(v)-5 b(ariable)37 b(need)e(not)h(ha)m(v)m(e)h(its)f -Fq(in)m(teger)44 b Ft(attribute)150 2128 y(turned)29 -b(on)h(to)i(b)s(e)d(used)h(in)g(an)g(expression.)275 -2256 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 2366 y(denotes)31 -b(hexadecimal.)42 b(Otherwise,)30 b(n)m(um)m(b)s(ers)f(tak)m(e)j(the)f -(form)f([)p Fq(base)5 b Fs(#)p Ft(])p Fq(n)p Ft(,)31 -b(where)f(the)g(optional)i Fq(base)150 2476 y Ft(is)d(a)h(decimal)g(n)m -(um)m(b)s(er)e(b)s(et)m(w)m(een)h(2)h(and)e(64)i(represen)m(ting)g(the) -f(arithmetic)i(base,)e(and)g Fq(n)g Ft(is)g(a)g(n)m(um)m(b)s(er)150 -2585 y(in)e(that)h(base.)40 b(If)26 b Fq(base)5 b Fs(#)27 -b Ft(is)h(omitted,)h(then)e(base)g(10)h(is)f(used.)39 -b(When)27 b(sp)s(ecifying)g Fq(n)p Ft(,)h(he)f(digits)h(greater)150 -2695 y(than)33 b(9)h(are)g(represen)m(ted)g(b)m(y)f(the)h(lo)m(w)m -(ercase)i(letters,)g(the)d(upp)s(ercase)g(letters,)j(`)p +b(Bash)30 b(F)-8 b(eatures)2484 b(87)150 299 y Fs(&)432 +b Ft(bit)m(wise)31 b(AND)150 459 y Fs(^)432 b Ft(bit)m(wise)31 +b(exclusiv)m(e)h(OR)150 619 y Fs(|)432 b Ft(bit)m(wise)31 +b(OR)150 780 y Fs(&&)384 b Ft(logical)33 b(AND)150 940 +y Fs(||)384 b Ft(logical)33 b(OR)150 1100 y Fs(expr)c(?)h(expr)f(:)h +(expr)630 1210 y Ft(conditional)i(op)s(erator)150 1370 +y Fs(=)e(*=)g(/=)g(\045=)f(+=)h(-=)g(<<=)f(>>=)h(&=)g(^=)f(|=)630 +1480 y Ft(assignmen)m(t)150 1640 y Fs(expr1)g(,)h(expr2)630 +1750 y Ft(comma)275 1910 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 2020 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 +2130 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 2239 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 2349 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 2458 +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 2568 y(a)j(v)-5 +b(alue.)58 b(A)36 b(n)m(ull)f(v)-5 b(alue)37 b(ev)-5 +b(aluates)37 b(to)g(0.)57 b(A)36 b(shell)g(v)-5 b(ariable)37 +b(need)e(not)h(ha)m(v)m(e)h(its)f Fq(in)m(teger)44 b +Ft(attribute)150 2678 y(turned)29 b(on)h(to)i(b)s(e)d(used)h(in)g(an)g +(expression.)275 2813 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 2923 y(denotes)31 b(hexadecimal.)42 b(Otherwise,)30 +b(n)m(um)m(b)s(ers)f(tak)m(e)j(the)f(form)f([)p Fq(base)5 +b Fs(#)p Ft(])p Fq(n)p Ft(,)31 b(where)f(the)g(optional)i +Fq(base)150 3032 y Ft(is)d(a)h(decimal)g(n)m(um)m(b)s(er)e(b)s(et)m(w)m +(een)h(2)h(and)e(64)i(represen)m(ting)g(the)f(arithmetic)i(base,)e(and) +g Fq(n)g Ft(is)g(a)g(n)m(um)m(b)s(er)150 3142 y(in)e(that)h(base.)40 +b(If)26 b Fq(base)5 b Fs(#)27 b Ft(is)h(omitted,)h(then)e(base)g(10)h +(is)f(used.)39 b(When)27 b(sp)s(ecifying)g Fq(n)p Ft(,)h(he)f(digits)h +(greater)150 3251 y(than)33 b(9)h(are)g(represen)m(ted)g(b)m(y)f(the)h +(lo)m(w)m(ercase)i(letters,)g(the)d(upp)s(ercase)g(letters,)j(`)p Fs(@)p Ft(',)e(and)f(`)p Fs(_)p Ft(',)i(in)e(that)150 -2804 y(order.)69 b(If)39 b Fq(base)45 b Ft(is)40 b(less)g(than)g(or)f +3361 y(order.)69 b(If)39 b Fq(base)45 b Ft(is)40 b(less)g(than)g(or)f (equal)i(to)f(36,)k(lo)m(w)m(ercase)e(and)d(upp)s(ercase)g(letters)i -(ma)m(y)g(b)s(e)e(used)150 2914 y(in)m(terc)m(hangeably)32 +(ma)m(y)g(b)s(e)e(used)150 3471 y(in)m(terc)m(hangeably)32 b(to)f(represen)m(t)g(n)m(um)m(b)s(ers)e(b)s(et)m(w)m(een)i(10)g(and)f -(35.)275 3042 y(Op)s(erators)44 b(are)h(ev)-5 b(aluated)46 +(35.)275 3606 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 3152 y(ev)-5 b(aluated)32 +b(in)g(paren)m(theses)i(are)150 3715 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 3371 y Fr(6.6)68 b(Aliases)150 3531 +(ab)s(o)m(v)m(e.)150 3949 y Fr(6.6)68 b(Aliases)150 4109 y Fq(Aliases)41 b Ft(allo)m(w)d(a)f(string)f(to)h(b)s(e)f(substituted)g (for)g(a)g(w)m(ord)g(when)g(it)h(is)f(used)f(as)i(the)g(\014rst)e(w)m -(ord)h(of)h(a)150 3640 y(simple)32 b(command.)45 b(The)31 +(ord)h(of)h(a)150 4218 y(simple)32 b(command.)45 b(The)31 b(shell)i(main)m(tains)f(a)h(list)f(of)g(aliases)i(that)e(ma)m(y)h(b)s -(e)e(set)h(and)g(unset)f(with)h(the)150 3750 y Fs(alias)d -Ft(and)h Fs(unalias)e Ft(builtin)i(commands.)275 3878 +(e)e(set)h(and)g(unset)f(with)h(the)150 4328 y Fs(alias)d +Ft(and)h Fs(unalias)e Ft(builtin)i(commands.)275 4463 y(The)f(\014rst)f(w)m(ord)i(of)f(eac)m(h)i(simple)f(command,)g(if)f (unquoted,)g(is)h(c)m(hec)m(k)m(ed)h(to)g(see)f(if)g(it)g(has)f(an)g -(alias.)150 3988 y(If)24 b(so,)i(that)g(w)m(ord)e(is)h(replaced)g(b)m +(alias.)150 4573 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 4097 y(the)e(shell)g(metac)m +Fs(=)p Ft(')f(and)f(an)m(y)h(of)150 4682 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 -4207 y(The)e(replacemen)m(t)h(text)g(ma)m(y)g(con)m(tain)h(an)m(y)e(v) +4792 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 4317 y(\014rst)35 b(w)m(ord)g(of)h(the)g(replacemen)m(t)i +40 b(The)150 4902 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 4426 y(alias)c(b)s(eing)f(expanded)f(is)h +(iden)m(tical)i(to)e(an)150 5011 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 4536 y Fs("ls)f(-F")p +g(ma)m(y)h(alias)g Fs(ls)e Ft(to)150 5121 y Fs("ls)f(-F")p Ft(,)f(for)f(instance,)i(and)d(Bash)i(do)s(es)f(not)h(try)f(to)h (recursiv)m(ely)g(expand)e(the)i(replacemen)m(t)h(text.)40 -b(If)150 4645 y(the)31 b(last)h(c)m(haracter)g(of)f(the)g(alias)h(v)-5 +b(If)150 5230 y(the)31 b(last)h(c)m(haracter)g(of)f(the)g(alias)h(v)-5 b(alue)31 b(is)g(a)g Fq(blank)6 b Ft(,)30 b(then)h(the)g(next)g -(command)f(w)m(ord)h(follo)m(wing)h(the)150 4755 y(alias)g(is)e(also)h -(c)m(hec)m(k)m(ed)i(for)d(alias)h(expansion.)275 4883 -y(Aliases)e(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 4993 y Ft(command.)275 5121 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 5230 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 5340 y(page)31 b(16\).)p eop end +(command)f(w)m(ord)h(follo)m(wing)h(the)150 5340 y(alias)g(is)e(also)h +(c)m(hec)m(k)m(ed)i(for)d(alias)h(expansion.)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)275 299 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 408 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(62\).)275 548 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 657 y(alw)m(a)m(ys)42 b(reads)f(at)h(least)g(one)f +TeXDict begin 88 93 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(88)275 299 y(Aliases)29 +b(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 +408 y Ft(command.)275 556 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 666 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 776 y(page)31 b(16\).)275 +923 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 +1033 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(61\).) +275 1181 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 1290 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 767 y(on)h(that)h(line.)77 b(Aliases)44 +(the)g(commands)150 1400 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 877 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 986 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 1096 y(on)d(that)h(line)f(are)h(not)f +(is)h(executed.)150 1510 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 1619 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 1729 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 -1205 y(are)d(executed.)39 b(Aliases)24 b(are)f(expanded)f(when)f(a)i +1838 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 -1315 y(is)i(executed,)j(b)s(ecause)d(a)h(function)f(de\014nition)f(is)i +1948 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 -1425 y(aliases)36 b(de\014ned)d(in)h(a)g(function)g(are)h(not)f(a)m(v) +2058 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 1534 y(safe,)41 b(alw)m(a)m(ys)f(put)d +53 b(T)-8 b(o)35 b(b)s(e)150 2167 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 1644 y(commands.)275 -1783 y(F)-8 b(or)31 b(almost)g(ev)m(ery)g(purp)s(ose,)e(shell)i +(use)g Fs(alias)f Ft(in)h(comp)s(ound)150 2277 y(commands.)275 +2425 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 -2023 y Fr(6.7)68 b(Arra)l(ys)150 2182 y Ft(Bash)33 b(pro)m(vides)g +2677 y Fr(6.7)68 b(Arra)l(ys)150 2837 y Ft(Bash)33 b(pro)m(vides)g (one-dimensional)g(indexed)f(and)h(asso)s(ciativ)m(e)i(arra)m(y)e(v)-5 b(ariables.)49 b(An)m(y)33 b(v)-5 b(ariable)33 b(ma)m(y)150 -2292 y(b)s(e)e(used)h(as)g(an)g(indexed)f(arra)m(y;)j(the)e +2946 y(b)s(e)e(used)h(as)g(an)g(indexed)f(arra)m(y;)j(the)e Fs(declare)e Ft(builtin)h(will)i(explicitly)g(declare)g(an)f(arra)m(y) --8 b(.)46 b(There)32 b(is)150 2402 y(no)h(maxim)m(um)g(limit)h(on)f +-8 b(.)46 b(There)32 b(is)150 3056 y(no)h(maxim)m(um)g(limit)h(on)f (the)g(size)h(of)g(an)f(arra)m(y)-8 b(,)35 b(nor)d(an)m(y)i(requiremen) -m(t)f(that)h(mem)m(b)s(ers)e(b)s(e)g(indexed)150 2511 +m(t)f(that)h(mem)m(b)s(ers)e(b)s(e)g(indexed)150 3165 y(or)26 b(assigned)h(con)m(tiguously)-8 b(.)41 b(Indexed)25 b(arra)m(ys)i(are)f(referenced)g(using)g(in)m(tegers)i(\(including)e -(arithmetic)150 2621 y(expressions)38 b(\(see)h(Section)g(6.5)h([Shell) +(arithmetic)150 3275 y(expressions)38 b(\(see)h(Section)g(6.5)h([Shell) e(Arithmetic],)k(page)d(86\)\))h(and)d(are)i(zero-based;)k(asso)s -(ciativ)m(e)150 2730 y(arra)m(ys)37 b(use)f(arbitrary)g(strings.)59 +(ciativ)m(e)150 3385 y(arra)m(ys)37 b(use)f(arbitrary)g(strings.)59 b(Unless)36 b(otherwise)h(noted,)h(indexed)e(arra)m(y)h(indices)f(m)m -(ust)g(b)s(e)g(non-)150 2840 y(negativ)m(e)d(in)m(tegers.)275 -2979 y(An)26 b(indexed)h(arra)m(y)h(is)f(created)h(automatically)j(if)c +(ust)g(b)s(e)g(non-)150 3494 y(negativ)m(e)d(in)m(tegers.)275 +3642 y(An)26 b(indexed)h(arra)m(y)h(is)f(created)h(automatically)j(if)c (an)m(y)g(v)-5 b(ariable)28 b(is)g(assigned)f(to)h(using)f(the)g(syn)m -(tax)390 3119 y Fi(name)11 b Fs([)p Fi(subscript)g Fs(]=)p -Fi(value)150 3258 y Ft(The)34 b Fq(subscript)h Ft(is)g(treated)g(as)g +(tax)390 3790 y Fi(name)11 b Fs([)p Fi(subscript)g Fs(]=)p +Fi(value)150 3938 y Ft(The)34 b Fq(subscript)h Ft(is)g(treated)g(as)g (an)f(arithmetic)i(expression)e(that)h(m)m(ust)g(ev)-5 b(aluate)36 b(to)f(a)g(n)m(um)m(b)s(er.)51 b(T)-8 b(o)150 -3368 y(explicitly)32 b(declare)f(an)g(arra)m(y)-8 b(,)31 -b(use)390 3507 y Fs(declare)46 b(-a)h Fi(name)150 3647 -y Ft(The)30 b(syn)m(tax)390 3786 y Fs(declare)46 b(-a)h -Fi(name)11 b Fs([)p Fi(subscript)g Fs(])150 3926 y Ft(is)30 +4047 y(explicitly)32 b(declare)f(an)g(arra)m(y)-8 b(,)31 +b(use)390 4195 y Fs(declare)46 b(-a)h Fi(name)150 4343 +y Ft(The)30 b(syn)m(tax)390 4491 y Fs(declare)46 b(-a)h +Fi(name)11 b Fs([)p Fi(subscript)g Fs(])150 4639 y Ft(is)30 b(also)i(accepted;)g(the)e Fq(subscript)h Ft(is)g(ignored.)150 -4065 y(Asso)s(ciativ)m(e)i(arra)m(ys)d(are)h(created)h(using)390 -4204 y Fs(declare)46 b(-A)h Fi(name)11 b Fs(.)275 4344 +4787 y(Asso)s(ciativ)m(e)i(arra)m(ys)d(are)h(created)h(using)390 +4935 y Fs(declare)46 b(-A)h Fi(name)11 b Fs(.)275 5083 y Ft(A)m(ttributes)46 b(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 4453 y Ft(builtins.)40 b(Eac)m(h)31 +Ft(and)h Fs(readonly)150 5192 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 4593 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 4732 y Fi(name)11 +-8 b(.)275 5340 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)p eop end +%%Page: 89 95 +TeXDict begin 89 94 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(89)390 299 y Fi(name)11 b Fs(=\()p Fi(value1)54 b(value2)j Fs(...)47 b(\))150 -4872 y Ft(where)37 b(eac)m(h)i Fq(v)-5 b(alue)42 b Ft(is)c(of)g(the)f +477 y Ft(where)37 b(eac)m(h)i Fq(v)-5 b(alue)42 b Ft(is)c(of)g(the)f (form)g Fs([)p Fi(subscript)11 b Fs(]=)p Fq(string)d Ft(.)58 b(Indexed)36 b(arra)m(y)i(assignmen)m(ts)g(do)g(not)150 -4981 y(require)30 b(an)m(ything)h(but)f Fq(string)8 b +587 y(require)30 b(an)m(ything)h(but)f Fq(string)8 b Ft(.)41 b(When)30 b(assigning)h(to)g(indexed)f(arra)m(ys,)h(if)f(the)h -(optional)h(subscript)d(is)150 5091 y(supplied,)j(that)h(index)f(is)h +(optional)h(subscript)d(is)150 696 y(supplied,)j(that)h(index)f(is)h (assigned)g(to;)h(otherwise)f(the)g(index)f(of)h(the)g(elemen)m(t)h -(assigned)f(is)f(the)h(last)150 5201 y(index)d(assigned)h(to)g(b)m(y)f +(assigned)f(is)f(the)h(last)150 806 y(index)d(assigned)h(to)g(b)m(y)f (the)g(statemen)m(t)j(plus)c(one.)41 b(Indexing)30 b(starts)h(at)g -(zero.)275 5340 y(When)f(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.)p -eop end -%%Page: 89 95 -TeXDict begin 89 94 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(89)275 299 y(This)30 -b(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 408 y(assigned)e(to)g(using)f(the)g Fi(name)11 -b Fs([)p Fi(subscript)g Fs(]=)p Fi(value)34 b Ft(syn)m(tax)d(in)m(tro)s -(duced)f(ab)s(o)m(v)m(e.)275 538 y(An)m(y)c(elemen)m(t)i(of)e(an)g -(arra)m(y)h(ma)m(y)g(b)s(e)f(referenced)g(using)g Fs(${)p -Fi(name)11 b Fs([)p Fi(subscript)g Fs(]})p Ft(.)33 b(The)26 -b(braces)h(are)150 648 y(required)h(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 757 y(`)p Fs(@)p -Ft(')f(or)g(`)p Fs(*)p Ft(',)g(the)g(w)m(ord)g(expands)f(to)i(all)f -(mem)m(b)s(ers)f(of)h(the)g(arra)m(y)h Fq(name)5 b Ft(.)40 -b(These)29 b(subscripts)e(di\013er)i(only)150 867 y(when)35 -b(the)h(w)m(ord)f(app)s(ears)g(within)g(double)h(quotes.)57 -b(If)36 b(the)g(w)m(ord)f(is)h(double-quoted,)h Fs(${)p -Fi(name)11 b Fs([*]})150 976 y Ft(expands)25 b(to)h(a)g(single)h(w)m -(ord)e(with)g(the)h(v)-5 b(alue)26 b(of)g(eac)m(h)h(arra)m(y)f(mem)m(b) -s(er)f(separated)h(b)m(y)g(the)f(\014rst)g(c)m(harac-)150 -1086 y(ter)j(of)f(the)h Fs(IFS)e Ft(v)-5 b(ariable,)29 -b(and)e Fs(${)p Fi(name)11 b Fs([@]})24 b Ft(expands)i(eac)m(h)i -(elemen)m(t)h(of)f Fq(name)k Ft(to)c(a)g(separate)g(w)m(ord.)150 -1195 y(When)j(there)h(are)g(no)f(arra)m(y)h(mem)m(b)s(ers,)g -Fs(${)p Fi(name)11 b Fs([@]})28 b Ft(expands)j(to)h(nothing.)44 -b(If)31 b(the)h(double-quoted)150 1305 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 1415 -y(b)s(eginning)29 b(part)g(of)h(the)f(original)i(w)m(ord,)e(and)g(the)h -(expansion)f(of)h(the)f(last)i(parameter)e(is)h(joined)f(with)150 -1524 y(the)g(last)h(part)f(of)g(the)g(original)h(w)m(ord.)40 +(zero.)275 984 y(When)f(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 +1162 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 1271 y(assigned)e(to)g(using)f(the)g +Fi(name)11 b Fs([)p Fi(subscript)g Fs(]=)p Fi(value)34 +b Ft(syn)m(tax)d(in)m(tro)s(duced)f(ab)s(o)m(v)m(e.)275 +1450 y(When)g(assigning)h(to)h(an)e(indexed)g(arra)m(y)-8 +b(,)32 b(if)f Fq(name)36 b Ft(is)31 b(subscripted)e(b)m(y)i(a)g +(negativ)m(e)i(n)m(um)m(b)s(er,)c(that)150 1559 y(n)m(um)m(b)s(er)43 +b(is)h(in)m(terpreted)g(as)g(relativ)m(e)i(to)f(one)f(greater)h(than)f +(the)g(maxim)m(um)f(index)h(of)g Fq(name)5 b Ft(,)48 +b(so)150 1669 y(negativ)m(e)30 b(indices)d(coun)m(t)h(bac)m(k)g(from)f +(the)g(end)g(of)g(the)h(arra)m(y)-8 b(,)29 b(and)e(an)g(index)g(of)g +(-1)h(references)g(the)f(last)150 1778 y(elemen)m(t.)275 +1956 y(An)m(y)f(elemen)m(t)i(of)e(an)g(arra)m(y)h(ma)m(y)g(b)s(e)f +(referenced)g(using)g Fs(${)p Fi(name)11 b Fs([)p Fi(subscript)g +Fs(]})p Ft(.)33 b(The)26 b(braces)h(are)150 2066 y(required)h(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 +2176 y(`)p Fs(@)p Ft(')f(or)g(`)p Fs(*)p Ft(',)g(the)g(w)m(ord)g +(expands)f(to)i(all)f(mem)m(b)s(ers)f(of)h(the)g(arra)m(y)h +Fq(name)5 b Ft(.)40 b(These)29 b(subscripts)e(di\013er)i(only)150 +2285 y(when)35 b(the)h(w)m(ord)f(app)s(ears)g(within)g(double)h +(quotes.)57 b(If)36 b(the)g(w)m(ord)f(is)h(double-quoted,)h +Fs(${)p Fi(name)11 b Fs([*]})150 2395 y Ft(expands)25 +b(to)h(a)g(single)h(w)m(ord)e(with)g(the)h(v)-5 b(alue)26 +b(of)g(eac)m(h)h(arra)m(y)f(mem)m(b)s(er)f(separated)h(b)m(y)g(the)f +(\014rst)g(c)m(harac-)150 2504 y(ter)j(of)f(the)h Fs(IFS)e +Ft(v)-5 b(ariable,)29 b(and)e Fs(${)p Fi(name)11 b Fs([@]})24 +b Ft(expands)i(eac)m(h)i(elemen)m(t)h(of)f Fq(name)k +Ft(to)c(a)g(separate)g(w)m(ord.)150 2614 y(When)j(there)h(are)g(no)f +(arra)m(y)h(mem)m(b)s(ers,)g Fs(${)p Fi(name)11 b Fs([@]})28 +b Ft(expands)j(to)h(nothing.)44 b(If)31 b(the)h(double-quoted)150 +2724 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 2833 y(b)s(eginning)29 b(part)g(of)h(the)f(original)i(w)m(ord,)e +(and)g(the)h(expansion)f(of)h(the)f(last)i(parameter)e(is)h(joined)f +(with)150 2943 y(the)g(last)h(part)f(of)g(the)g(original)h(w)m(ord.)40 b(This)28 b(is)h(analogous)h(to)f(the)h(expansion)e(of)h(the)g(sp)s -(ecial)h(param-)150 1634 y(eters)35 b(`)p Fs(@)p Ft(')g(and)e(`)p +(ecial)h(param-)150 3052 y(eters)35 b(`)p Fs(@)p Ft(')g(and)e(`)p Fs(*)p Ft('.)54 b Fs(${#)p Fi(name)11 b Fs([)p Fi(subscript)g Fs(]})28 b Ft(expands)33 b(to)j(the)e(length)h(of)g Fs(${)p -Fi(name)11 b Fs([)p Fi(subscript)g Fs(]})p Ft(.)150 1743 +Fi(name)11 b Fs([)p Fi(subscript)g Fs(]})p Ft(.)150 3162 y(If)30 b 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 -1853 y(an)33 b(arra)m(y)g(v)-5 b(ariable)34 b(without)f(a)h(subscript)e +3271 y(an)33 b(arra)m(y)g(v)-5 b(ariable)34 b(without)f(a)h(subscript)e (is)h(equiv)-5 b(alen)m(t)34 b(to)g(referencing)f(with)g(a)g(subscript) -f(of)h(0.)49 b(If)150 1963 y(the)33 b Fq(subscript)h +f(of)h(0.)49 b(If)150 3381 y(the)33 b Fq(subscript)h Ft(used)e(to)h(reference)h(an)f(elemen)m(t)h(of)f(an)g(indexed)f(arra)m (y)i(ev)-5 b(aluates)34 b(to)g(a)f(n)m(um)m(b)s(er)f(less)150 -2072 y(than)j(zero,)i(it)f(is)f(used)g(as)g(an)g(o\013set)h(from)f(one) -h(greater)g(than)f(the)g(arra)m(y's)h(maxim)m(um)f(index)g(\(so)h(a)150 -2182 y(sub)s(cript)29 b(of)h(-1)h(refers)f(to)h(the)g(last)g(elemen)m -(t)h(of)f(the)f(arra)m(y\).)275 2311 y(An)35 b(arra)m(y)i(v)-5 +3491 y(than)d(zero,)h(it)f(is)g(in)m(terpreted)g(as)g(relativ)m(e)i(to) +f(one)f(greater)h(than)f(the)g(maxim)m(um)f(index)h(of)g(the)g(arra)m +(y)-8 b(,)150 3600 y(so)34 b(negativ)m(e)j(indices)d(coun)m(t)h(bac)m +(k)g(from)f(the)g(end)f(of)i(the)f(arra)m(y)-8 b(,)36 +b(and)e(an)g(index)g(of)g(-1)h(refers)f(to)h(the)150 +3710 y(last)c(elemen)m(t.)275 3888 y(An)k(arra)m(y)i(v)-5 b(ariable)37 b(is)g(considered)f(set)h(if)f(a)h(subscript)e(has)h(b)s (een)g(assigned)g(a)h(v)-5 b(alue.)59 b(The)36 b(n)m(ull)150 -2421 y(string)30 b(is)h(a)g(v)-5 b(alid)30 b(v)-5 b(alue.)275 -2550 y(The)23 b Fs(unset)f Ft(builtin)i(is)g(used)f(to)i(destro)m(y)f -(arra)m(ys.)39 b Fs(unset)29 b Fi(name)11 b Fs([)p Fi(subscript)g -Fs(])19 b Ft(destro)m(ys)24 b(the)g(arra)m(y)150 2660 -y(elemen)m(t)35 b(at)g(index)f Fq(subscript)r Ft(.)50 -b(Care)34 b(m)m(ust)f(b)s(e)h(tak)m(en)h(to)f(a)m(v)m(oid)i(un)m(w)m -(an)m(ted)e(side)g(e\013ects)h(caused)f(b)m(y)150 2769 -y(\014lename)42 b(expansion.)73 b Fs(unset)29 b Fi(name)11 -b Ft(,)43 b(where)e Fq(name)46 b Ft(is)c(an)f(arra)m(y)-8 -b(,)45 b(remo)m(v)m(es)e(the)f(en)m(tire)g(arra)m(y)-8 -b(.)75 b(A)150 2879 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 3008 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 -3118 y(indexed)25 b(arra)m(y)h(and)e(a)i(`)p Fs(-A)p -Ft(')f(option)h(to)g(sp)s(ecify)f(an)g(asso)s(ciativ)m(e)j(arra)m(y)-8 -b(.)40 b(If)25 b(b)s(oth)g(options)g(are)h(supplied,)150 -3228 y(`)p Fs(-A)p Ft(')k(tak)m(es)i(precedence.)41 b(The)30 +3998 y(string)30 b(is)h(a)g(v)-5 b(alid)30 b(v)-5 b(alue.)275 +4176 y(The)44 b Fs(unset)f Ft(builtin)h(is)h(used)f(to)h(destro)m(y)g +(arra)m(ys.)84 b Fs(unset)29 b Fi(name)11 b Fs([)p Fi(subscript)g +Fs(])40 b Ft(destro)m(ys)45 b(the)150 4285 y(arra)m(y)32 +b(elemen)m(t)h(at)g(index)e Fq(subscript)r Ft(.)44 b(Negativ)m(e)34 +b(subscripts)d(to)h(indexed)f(arra)m(ys)i(are)f(in)m(terpreted)g(as)150 +4395 y(describ)s(ed)37 b(ab)s(o)m(v)m(e.)67 b(Care)38 +b(m)m(ust)h(b)s(e)f(tak)m(en)h(to)h(a)m(v)m(oid)g(un)m(w)m(an)m(ted)e +(side)h(e\013ects)h(caused)e(b)m(y)h(\014lename)150 4504 +y(expansion.)49 b Fs(unset)29 b Fi(name)11 b Ft(,)32 +b(where)g Fq(name)39 b Ft(is)33 b(an)g(arra)m(y)-8 b(,)35 +b(remo)m(v)m(es)f(the)f(en)m(tire)h(arra)m(y)-8 b(.)50 +b(A)33 b(subscript)f(of)150 4614 y(`)p Fs(*)p Ft(')f(or)f(`)p +Fs(@)p Ft(')g(also)i(remo)m(v)m(es)f(the)g(en)m(tire)g(arra)m(y)-8 +b(.)275 4792 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 4902 +y(indexed)25 b(arra)m(y)h(and)e(a)i(`)p Fs(-A)p Ft(')f(option)h(to)g +(sp)s(ecify)f(an)g(asso)s(ciativ)m(e)j(arra)m(y)-8 b(.)40 +b(If)25 b(b)s(oth)g(options)g(are)h(supplied,)150 5011 +y(`)p Fs(-A)p Ft(')k(tak)m(es)i(precedence.)41 b(The)30 b Fs(read)f Ft(builtin)g(accepts)j(a)e(`)p Fs(-a)p Ft(')g(option)h(to)g -(assign)g(a)f(list)h(of)f(w)m(ords)g(read)150 3337 y(from)40 +(assign)g(a)f(list)h(of)f(w)m(ords)g(read)150 5121 y(from)40 b(the)g(standard)f(input)h(to)h(an)f(arra)m(y)-8 b(,)44 b(and)39 b(can)i(read)f(v)-5 b(alues)40 b(from)g(the)g(standard)g -(input)f(in)m(to)150 3447 y(individual)26 b(arra)m(y)h(elemen)m(ts.)41 +(input)f(in)m(to)150 5230 y(individual)26 b(arra)m(y)h(elemen)m(ts.)41 b(The)26 b Fs(set)f Ft(and)h Fs(declare)f Ft(builtins)g(displa)m(y)i (arra)m(y)g(v)-5 b(alues)27 b(in)f(a)h(w)m(a)m(y)g(that)150 -3556 y(allo)m(ws)32 b(them)e(to)h(b)s(e)f(reused)f(as)i(input.)150 -3779 y Fr(6.8)68 b(The)45 b(Directory)g(Stac)l(k)150 -3938 y Ft(The)21 b(directory)h(stac)m(k)h(is)e(a)h(list)g(of)f(recen)m -(tly-visited)j(directories.)39 b(The)20 b Fs(pushd)g -Ft(builtin)h(adds)g(directories)150 4048 y(to)42 b(the)f(stac)m(k)i(as) -e(it)h(c)m(hanges)g(the)f(curren)m(t)g(directory)-8 b(,)45 -b(and)40 b(the)i Fs(popd)e Ft(builtin)g(remo)m(v)m(es)j(sp)s(eci\014ed) -150 4157 y(directories)29 b(from)f(the)h(stac)m(k)h(and)d(c)m(hanges)j -(the)e(curren)m(t)g(directory)h(to)g(the)g(directory)f(remo)m(v)m(ed.) -41 b(The)150 4267 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.)275 4396 -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 4506 y(v)-5 b(ariable.)150 4695 y Fj(6.8.1)63 -b(Directory)40 b(Stac)m(k)g(Builtins)150 4862 y Fs(dirs)870 -4991 y(dirs)47 b([-clpv])e([+)p Fi(N)58 b Fs(|)47 b(-)p -Fi(N)11 b Fs(])630 5121 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 5230 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 5340 y(the)i(list.)p eop end +5340 y(allo)m(ws)32 b(them)e(to)h(b)s(e)f(reused)f(as)i(input.)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)630 299 y Fs(-c)384 b Ft(Clears)31 +TeXDict begin 90 95 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(90)150 299 y Fr(6.8)68 +b(The)45 b(Directory)g(Stac)l(k)150 458 y Ft(The)21 b(directory)h(stac) +m(k)h(is)e(a)h(list)g(of)f(recen)m(tly-visited)j(directories.)39 +b(The)20 b Fs(pushd)g Ft(builtin)h(adds)g(directories)150 +568 y(to)42 b(the)f(stac)m(k)i(as)e(it)h(c)m(hanges)g(the)f(curren)m(t) +g(directory)-8 b(,)45 b(and)40 b(the)i Fs(popd)e Ft(builtin)g(remo)m(v) +m(es)j(sp)s(eci\014ed)150 677 y(directories)29 b(from)f(the)h(stac)m(k) +h(and)d(c)m(hanges)j(the)e(curren)m(t)g(directory)h(to)g(the)g +(directory)f(remo)m(v)m(ed.)41 b(The)150 787 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.)275 917 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 1026 +y(v)-5 b(ariable.)150 1216 y Fj(6.8.1)63 b(Directory)40 +b(Stac)m(k)g(Builtins)150 1383 y Fs(dirs)870 1512 y(dirs)47 +b([-clpv])e([+)p Fi(N)58 b Fs(|)47 b(-)p Fi(N)11 b Fs(])630 +1642 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 +1751 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 +1861 y(the)i(list.)630 2011 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 469 y Fs(-l)384 b Ft(Pro)s(duces)31 +(elemen)m(ts.)630 2160 y Fs(-l)384 b Ft(Pro)s(duces)31 b(a)h(listing)h(using)e(full)h(pathnames;)h(the)f(default)g(listing)h -(format)1110 579 y(uses)d(a)h(tilde)g(to)g(denote)g(the)f(home)h -(directory)-8 b(.)630 749 y Fs(-p)384 b Ft(Causes)30 +(format)1110 2270 y(uses)d(a)h(tilde)g(to)g(denote)g(the)f(home)h +(directory)-8 b(.)630 2419 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 919 y Fs(-v)384 b Ft(Causes)36 +g(en)m(try)h(p)s(er)e(line.)630 2569 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 1028 y(pre\014xing)30 +h(en)m(try)f(p)s(er)f(line,)1110 2679 y(pre\014xing)30 b(eac)m(h)h(en)m(try)g(with)f(its)h(index)e(in)i(the)f(stac)m(k.)630 -1199 y Fs(+)p Fi(N)384 b Ft(Displa)m(ys)23 b(the)f Fq(N)10 +2828 y Fs(+)p Fi(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 1308 y(b)m(y)30 b Fs(dirs)f Ft(when)h(in)m(v)m +(list)g(prin)m(ted)1110 2938 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 -1478 y Fs(-)p Fi(N)384 b Ft(Displa)m(ys)47 b(the)g Fq(N)10 +3087 y Fs(-)p Fi(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 1588 y(prin)m(ted)25 b(b)m(y)g Fs(dirs)g +(the)f(list)1110 3197 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.)150 1758 y Fs(popd)870 1898 y(popd)47 b([-n])f([+)p -Fi(N)58 b Fs(|)47 b(-)p Fi(N)11 b Fs(])630 2038 y Ft(Remo)m(v)m(e)26 +(zero.)150 3347 y Fs(popd)870 3476 y(popd)47 b([-n])f([+)p +Fi(N)58 b Fs(|)47 b(-)p Fi(N)11 b Fs(])630 3606 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 -2147 y(When)32 b(no)g(argumen)m(ts)h(are)g(giv)m(en,)h +3715 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 2257 y(and)f(p)s(erforms)e(a)j Fs(cd)f Ft(to)h(the)f(new)g(top) +m(k)630 3825 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 2366 y(0)j(starting)g(at)g(the)f(\014rst)g(directory)g +f(from)630 3934 y(0)j(starting)g(at)g(the)f(\014rst)g(directory)g (listed)h(with)f Fs(dirs)p Ft(;)g(that)h(is,)g Fs(popd)e -Ft(is)i(equiv)-5 b(alen)m(t)33 b(to)630 2476 y Fs(popd)c(+0)p -Ft(.)630 2646 y Fs(-n)384 b Ft(Suppresses)27 b(the)j(normal)g(c)m +Ft(is)i(equiv)-5 b(alen)m(t)33 b(to)630 4044 y Fs(popd)c(+0)p +Ft(.)630 4194 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 -2756 y(ries)f(from)g(the)h(stac)m(k,)h(so)f(that)g(only)f(the)h(stac)m -(k)g(is)g(manipulated.)630 2926 y Fs(+)p Fi(N)384 b Ft(Remo)m(v)m(es)22 +4303 y(ries)f(from)g(the)h(stac)m(k,)h(so)f(that)g(only)f(the)h(stac)m +(k)g(is)g(manipulated.)630 4453 y Fs(+)p Fi(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 3036 y(b)m(y)30 -b Fs(dirs)p Ft(\),)g(starting)h(with)f(zero.)630 3206 +(left)h(of)g(the)f(list)h(prin)m(ted)1110 4562 y(b)m(y)30 +b Fs(dirs)p Ft(\),)g(starting)h(with)f(zero.)630 4712 y Fs(-)p Fi(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 3315 y(prin)m(ted)30 b(b)m(y)g Fs(dirs)p -Ft(\),)g(starting)h(with)f(zero.)150 3485 y Fs(pushd)870 -3625 y(pushd)46 b([-n])h([+)p Fi(N)57 b Fs(|)48 b Fi(-N)58 -b Fs(|)47 b Fi(dir)11 b Fs(])630 3765 y Ft(Sa)m(v)m(e)29 +(the)g(list)1110 4822 y(prin)m(ted)30 b(b)m(y)g Fs(dirs)p +Ft(\),)g(starting)h(with)f(zero.)150 4971 y Fs(pushd)870 +5101 y(pushd)46 b([-n])h([+)p Fi(N)57 b Fs(|)48 b Fi(-N)58 +b Fs(|)47 b Fi(dir)11 b Fs(])630 5230 y Ft(Sa)m(v)m(e)29 b(the)f(curren)m(t)g(directory)g(on)g(the)g(top)g(of)g(the)g(directory) h(stac)m(k)g(and)e(then)h Fs(cd)f Ft(to)i Fq(dir)7 b -Ft(.)630 3875 y(With)31 b(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 -4045 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 4154 y(to)j(the)g(stac)m -(k,)h(so)e(that)h(only)g(the)f(stac)m(k)i(is)f(manipulated.)630 -4325 y Fs(+)p Fi(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 4434 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 4544 y(stac)m(k.)630 4714 y Fs(-)p Fi(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 -4823 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 -4933 y(stac)m(k.)630 5103 y Fi(dir)336 b Ft(Mak)m(es)31 -b(the)g(curren)m(t)f(w)m(orking)g(directory)g(b)s(e)g(the)g(top)g(of)g -(the)h(stac)m(k,)h(mak-)1110 5213 y(ing)39 b(it)g(the)g(new)f(curren)m -(t)g(directory)h(as)g(if)g(it)g(had)f(b)s(een)g(supplied)f(as)i(an)1110 -5322 y(argumen)m(t)31 b(to)g(the)f Fs(cd)g Ft(builtin.)p +Ft(.)630 5340 y(With)31 b(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.)p eop end %%Page: 91 97 TeXDict begin 91 96 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(91)150 299 y Fr(6.9)68 -b(Con)l(trolling)47 b(the)e(Prompt)150 458 y Ft(The)24 +b(Bash)30 b(F)-8 b(eatures)2484 b(91)630 299 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 408 y(to)j(the)g(stac)m(k,)h(so)e(that)h +(only)g(the)f(stac)m(k)i(is)f(manipulated.)630 571 y +Fs(+)p Fi(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 680 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 790 y(stac)m(k.)630 952 y Fs(-)p Fi(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 1062 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 1171 y(stac)m(k.)630 +1333 y Fi(dir)336 b Ft(Mak)m(es)31 b(the)g(curren)m(t)f(w)m(orking)g +(directory)g(b)s(e)g(the)g(top)g(of)g(the)h(stac)m(k,)h(mak-)1110 +1443 y(ing)39 b(it)g(the)g(new)f(curren)m(t)g(directory)h(as)g(if)g(it) +g(had)f(b)s(een)g(supplied)f(as)i(an)1110 1553 y(argumen)m(t)31 +b(to)g(the)f Fs(cd)g Ft(builtin.)150 1789 y Fr(6.9)68 +b(Con)l(trolling)47 b(the)e(Prompt)150 1949 y Ft(The)24 b(v)-5 b(alue)24 b(of)h(the)f(v)-5 b(ariable)25 b Fs(PROMPT_COMMAND)20 b Ft(is)25 b(examined)f(just)g(b)s(efore)f(Bash)i(prin)m(ts)e(eac)m(h)j -(primary)150 568 y(prompt.)39 b(If)28 b Fs(PROMPT_COMMAND)d +(primary)150 2058 y(prompt.)39 b(If)28 b Fs(PROMPT_COMMAND)d Ft(is)j(set)h(and)f(has)g(a)h(non-n)m(ull)f(v)-5 b(alue,)29 b(then)f(the)h(v)-5 b(alue)29 b(is)f(executed)i(just)150 -677 y(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 812 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 921 y(prompt)g(v)-5 b(ariables)32 b Fs(PS1)d -Ft(to)i Fs(PS4)p Ft(:)150 1081 y Fs(\\a)384 b Ft(A)30 -b(b)s(ell)h(c)m(haracter.)150 1240 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 1399 y Fs(\\D{)p Fi(format)11 b Fs(})630 -1509 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 1618 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 1728 y(braces)31 b(are)f(required.)150 -1887 y Fs(\\e)384 b Ft(An)30 b(escap)s(e)h(c)m(haracter.)150 -2046 y Fs(\\h)384 b Ft(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e -(`.'.)150 2205 y Fs(\\H)384 b Ft(The)30 b(hostname.)150 -2365 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 2524 y Fs(\\l)384 +2168 y(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 2305 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 2415 y(prompt)g(v)-5 b(ariables)32 +b Fs(PS1)d Ft(to)i Fs(PS4)p Ft(:)150 2578 y Fs(\\a)384 +b Ft(A)30 b(b)s(ell)h(c)m(haracter.)150 2740 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 2903 +y Fs(\\D{)p Fi(format)11 b Fs(})630 3012 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 +3122 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 3231 y(braces)31 b(are)f(required.)150 3394 +y Fs(\\e)384 b Ft(An)30 b(escap)s(e)h(c)m(haracter.)150 +3556 y Fs(\\h)384 b Ft(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e +(`.'.)150 3718 y Fs(\\H)384 b Ft(The)30 b(hostname.)150 +3880 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 4042 y Fs(\\l)384 b Ft(The)30 b(basename)h(of)f(the)h(shell's)f(terminal)h(device)g -(name.)150 2683 y Fs(\\n)384 b Ft(A)30 b(newline.)150 -2842 y Fs(\\r)384 b Ft(A)30 b(carriage)i(return.)150 -3001 y Fs(\\s)384 b Ft(The)22 b(name)g(of)h(the)f(shell,)i(the)f +(name.)150 4205 y Fs(\\n)384 b Ft(A)30 b(newline.)150 +4367 y Fs(\\r)384 b Ft(A)30 b(carriage)i(return.)150 +4529 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 3161 y Fs(\\t)384 b Ft(The)30 -b(time,)h(in)f(24-hour)h(HH:MM:SS)g(format.)150 3320 +(\014nal)e(slash\).)150 4691 y Fs(\\t)384 b Ft(The)30 +b(time,)h(in)f(24-hour)h(HH:MM:SS)g(format.)150 4853 y Fs(\\T)384 b Ft(The)30 b(time,)h(in)f(12-hour)h(HH:MM:SS)g(format.) -150 3479 y Fs(\\@)384 b Ft(The)30 b(time,)h(in)f(12-hour)h(am/pm)f -(format.)150 3638 y Fs(\\A)384 b Ft(The)30 b(time,)h(in)f(24-hour)h -(HH:MM)g(format.)150 3798 y Fs(\\u)384 b Ft(The)30 b(username)g(of)g -(the)h(curren)m(t)f(user.)150 3957 y Fs(\\v)384 b Ft(The)30 -b(v)m(ersion)h(of)f(Bash)h(\(e.g.,)h(2.00\))150 4116 -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\))150 4275 +150 5016 y Fs(\\@)384 b Ft(The)30 b(time,)h(in)f(12-hour)h(am/pm)f +(format.)150 5178 y Fs(\\A)384 b Ft(The)30 b(time,)h(in)f(24-hour)h +(HH:MM)g(format.)150 5340 y Fs(\\u)384 b Ft(The)30 b(username)g(of)g +(the)h(curren)m(t)f(user.)p eop end +%%Page: 92 98 +TeXDict begin 92 97 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(92)150 299 y Fs(\\v)384 +b Ft(The)30 b(v)m(ersion)h(of)f(Bash)h(\(e.g.,)h(2.00\))150 +458 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\))150 617 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 4385 y Fs($PROMPT_DIRTRIM)26 b Ft(v)-5 b(ariable\).)150 -4544 y Fs(\\W)384 b Ft(The)30 b(basename)h(of)f Fs($PWD)p +(the)630 726 y Fs($PROMPT_DIRTRIM)26 b Ft(v)-5 b(ariable\).)150 +885 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 -4703 y Fs(\\!)384 b Ft(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i(this)f -(command.)150 4862 y Fs(\\#)384 b Ft(The)30 b(command)g(n)m(um)m(b)s -(er)f(of)i(this)f(command.)150 5022 y Fs(\\$)384 b Ft(If)30 +1044 y Fs(\\!)384 b Ft(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i(this)f +(command.)150 1203 y Fs(\\#)384 b Ft(The)30 b(command)g(n)m(um)m(b)s +(er)f(of)i(this)f(command.)150 1362 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 5181 y Fs(\\)p Fi(nnn)288 b Ft(The)30 +Fs($)p Ft(.)150 1521 y Fs(\\)p Fi(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 5340 y Fs(\\\\)384 b -Ft(A)30 b(bac)m(kslash.)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)150 299 y Fs(\\[)384 b Ft(Begin)38 +-5 b(alue)31 b Fq(nnn)p Ft(.)150 1680 y Fs(\\\\)384 b +Ft(A)30 b(bac)m(kslash.)150 1839 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 -408 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.)150 -557 y Fs(\\])384 b Ft(End)29 b(a)i(sequence)g(of)f(non-prin)m(ting)g(c) -m(haracters.)275 705 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 814 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 924 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(133\),)j(while)d(the)f(command)150 -1034 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 -1143 y(session.)275 1272 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 1382 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 1491 y Ft(shell)31 b(option)f(\(see)i -(Section)f(4.2)g([Bash)g(Builtins],)g(page)g(48\).)150 -1713 y Fr(6.10)68 b(The)45 b(Restricted)h(Shell)150 1872 -y Ft(If)27 b(Bash)h(is)g(started)g(with)g(the)g(name)g +1948 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.) +150 2107 y Fs(\\])384 b Ft(End)29 b(a)i(sequence)g(of)f(non-prin)m +(ting)g(c)m(haracters.)275 2266 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 2376 +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 +2485 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(133\),)j(while)d(the)f +(command)150 2595 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 2705 y(session.)275 2839 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 2948 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 3058 y Ft(shell)31 +b(option)f(\(see)i(Section)f(4.2)g([Bash)g(Builtins],)g(page)g(47\).) +150 3290 y Fr(6.10)68 b(The)45 b(Restricted)h(Shell)150 +3449 y Ft(If)27 b(Bash)h(is)g(started)g(with)g(the)g(name)g Fs(rbash)p Ft(,)f(or)g(the)h(`)p Fs(--restricted)p Ft(')d(or)j(`)p -Fs(-r)p Ft(')g(option)g(is)g(supplied)e(at)150 1982 y(in)m(v)m(o)s +Fs(-r)p Ft(')g(option)g(is)g(supplied)e(at)150 3559 y(in)m(v)m(o)s (cation,)k(the)d(shell)g(b)s(ecomes)h(restricted.)40 b(A)27 b(restricted)h(shell)f(is)g(used)f(to)i(set)f(up)f(an)h(en)m -(vironmen)m(t)150 2091 y(more)g(con)m(trolled)i(than)e(the)g(standard)g +(vironmen)m(t)150 3669 y(more)g(con)m(trolled)i(than)e(the)g(standard)g (shell.)40 b(A)27 b(restricted)h(shell)f(b)s(eha)m(v)m(es)h(iden)m -(tically)h(to)f Fs(bash)e Ft(with)150 2201 y(the)31 b(exception)g(that) +(tically)h(to)f Fs(bash)e Ft(with)150 3778 y(the)31 b(exception)g(that) g(the)g(follo)m(wing)h(are)e(disallo)m(w)m(ed)i(or)e(not)h(p)s -(erformed:)225 2330 y Fp(\017)60 b Ft(Changing)30 b(directories)h(with) -g(the)f Fs(cd)g Ft(builtin.)225 2459 y Fp(\017)60 b Ft(Setting)31 +(erformed:)225 3912 y Fp(\017)60 b Ft(Changing)30 b(directories)h(with) +g(the)f Fs(cd)g Ft(builtin.)225 4047 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 2587 y Fp(\017)60 +Fs(BASH_ENV)e Ft(v)-5 b(ariables.)225 4181 y Fp(\017)60 b Ft(Sp)s(ecifying)30 b(command)g(names)g(con)m(taining)i(slashes.)225 -2716 y Fp(\017)60 b Ft(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m +4315 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 2845 y Fp(\017)60 b +Fs(.)h Ft(builtin)e(command.)225 4450 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 2955 y Ft(builtin)h(command.)225 3084 y Fp(\017)60 +Fs(hash)330 4559 y Ft(builtin)h(command.)225 4693 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 3213 y Fp(\017)60 +(en)m(vironmen)m(t)g(at)g(startup.)225 4828 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 -3342 y Fp(\017)60 b Ft(Redirecting)31 b(output)f(using)g(the)h(`)p +4962 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 3470 y Fp(\017)60 +Ft(')i(redirection)g(op)s(erators.)225 5096 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 3599 y Fp(\017)60 +(shell)h(with)f(another)h(command.)225 5230 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 3709 y Ft(builtin.)225 3838 y Fp(\017)60 +Fs(enable)330 5340 y Ft(builtin.)p eop end +%%Page: 93 99 +TeXDict begin 93 98 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(93)225 299 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 3967 y Fp(\017)60 b +(disabled)f(shell)g(builtins.)225 431 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.)225 4096 y Fp(\017)60 b Ft(T)-8 +Fs(command)f Ft(builtin.)225 563 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 4244 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m -(y)g(startup)f(\014les)g(are)h(read.)275 4373 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 4482 y(Scripts],)25 -b(page)e(38\),)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 -4704 y Fr(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)150 4863 -y Ft(Starting)34 b(Bash)f(with)g(the)g(`)p Fs(--posix)p -Ft(')f(command-line)i(option)g(or)f(executing)h(`)p Fs(set)c(-o)g -(posix)p Ft(')i(while)150 4973 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 5082 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 -5211 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 -5340 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:)p eop -end -%%Page: 93 99 -TeXDict begin 93 98 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(93)199 299 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 -408 y(the)i(new)e(lo)s(cation.)43 b(This)29 b(is)i(also)g(a)m(v)-5 +Ft('.)275 717 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m(y) +g(startup)f(\014les)g(are)h(read.)275 849 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 958 y(Scripts],)25 b(page)e(38\),)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 1185 +y Fr(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)150 1345 y Ft(Starting)34 +b(Bash)f(with)g(the)g(`)p Fs(--posix)p Ft(')f(command-line)i(option)g +(or)f(executing)h(`)p Fs(set)c(-o)g(posix)p Ft(')i(while)150 +1454 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 1564 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 1696 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 1828 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 1960 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 +2069 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 544 y(2.)61 b(The)42 b(message)h(prin)m(ted)e(b)m(y)h(the)g +Ft('.)199 2201 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 654 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199 -789 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 899 y(`Stopp)s(ed\()p Fq(signame)5 b Ft(\)',)31 +(with)f(a)330 2311 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199 +2443 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 2552 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 1035 y(4.)61 b(The)27 b Fs(bg)g +Fs(SIGTSTP)p Ft(.)199 2684 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 1144 +(h)i(job)e(placed)h(in)f(the)h(bac)m(kground,)330 2794 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 -1280 y(5.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con) +2925 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 1390 y(undergo)30 b(alias)h(expansion.)199 1525 y(6.)61 +330 3035 y(undergo)30 b(alias)h(expansion.)199 3167 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 1635 y(enabled,)26 +Fs(!!)p Ft(')h(to)g(`)p Fs(!)p Ft(')h(are)330 3276 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 -1744 y(of)31 b(the)f(setting)i(of)e(the)h Fs(promptvars)c -Ft(option.)199 1880 y(7.)61 b(The)30 b Fl(posix)g Ft(startup)f(\014les) +3386 y(of)31 b(the)f(setting)i(of)e(the)h Fs(promptvars)c +Ft(option.)199 3518 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 2016 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h +f(Bash)g(\014les.)199 3650 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 2125 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h -(on)e(the)h(line.)199 2261 y(9.)61 b(The)31 b Fs(command)e +(rather)330 3759 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h +(on)e(the)h(line.)199 3891 y(9.)61 b(The)31 b Fs(command)e Ft(builtin)i(do)s(es)g(not)h(prev)m(en)m(t)f(builtins)g(that)h(tak)m(e) -h(assignmen)m(t)f(statemen)m(ts)h(as)f(ar-)330 2371 y(gumen)m(ts)j -(from)g(expanding)f(them)h(as)g(assignmen)m(t)h(statemen)m(ts;)j(when) -34 b(not)h(in)f(POSIX)g(mo)s(de,)330 2480 y(assignmen)m(t)42 -b(builtins)e(lose)h(their)g(assignmen)m(t)h(statemen)m(t)h(expansion)d -(prop)s(erties)g(when)g(pre-)330 2590 y(ceded)31 b(b)m(y)f -Fs(command)p Ft(.)154 2725 y(10.)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 -2861 y(11.)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 2971 -y(without)30 b(the)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154 -3106 y(12.)61 b(The)30 b Fs(kill)f Ft(builtin)h(do)s(es)g(not)h(accept) +h(assignmen)m(t)f(statemen)m(ts)h(as)f(ar-)330 4001 y(gumen)m(ts)40 +b(from)e(expanding)h(them)g(as)h(assignmen)m(t)g(statemen)m(ts;)46 +b(when)38 b(not)i(in)f Fl(posix)f Ft(mo)s(de,)330 4110 +y(assignmen)m(t)k(builtins)e(lose)h(their)g(assignmen)m(t)h(statemen)m +(t)h(expansion)d(prop)s(erties)g(when)g(pre-)330 4220 +y(ceded)31 b(b)m(y)f Fs(command)p Ft(.)154 4352 y(10.)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 4484 y(11.)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 +4593 y(without)30 b(the)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154 +4725 y(12.)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 -3242 y(13.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g +4857 y(13.)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 3378 y(14.)61 b(Non-in)m(teractiv)m(e)41 +Ft(is)31 b(not)f(found.)154 4989 y(14.)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 3487 y(in)m(v)-5 b(alid)31 -b(expression.)154 3623 y(15.)61 b(Non-in)m(teractiv)m(e)27 +(expansion)f(results)f(in)h(an)330 5099 y(in)m(v)-5 b(alid)31 +b(expression.)154 5230 y(15.)61 b(Non-in)m(teractiv)m(e)27 b(shells)c(exit)i(if)e(there)h(is)f(a)h(syn)m(tax)g(error)f(in)g(a)h (script)f(read)g(with)h(the)f Fs(.)g Ft(or)h Fs(source)330 -3733 y Ft(builtins,)30 b(or)g(in)g(a)h(string)g(pro)s(cessed)e(b)m(y)i -(the)f Fs(eval)f Ft(builtin.)154 3868 y(16.)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 3978 y(unless)30 -b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154 4114 y(17.)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 -4249 y(18.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5 +5340 y Ft(builtins,)30 b(or)g(in)g(a)h(string)g(pro)s(cessed)e(b)m(y)i +(the)f Fs(eval)f Ft(builtin.)p eop end +%%Page: 94 100 +TeXDict begin 94 99 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(94)154 299 y(16.)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 +408 y(unless)30 b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154 +542 y(17.)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 +676 y(18.)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 4359 y(other)e(than)g(letters,)h +g(not)g(con)m(tain)g(c)m(haracters)330 786 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 4468 y(a)31 b(function)f(with)g(an)g(in)m(v) +(digit.)49 b(Declaring)330 896 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 4604 y(19.)61 b(F)-8 +(non-in)m(teractiv)m(e)j(shells.)154 1029 y(19.)61 b(F)-8 b(unction)31 b(names)f(ma)m(y)h(not)g(b)s(e)f(the)g(same)h(as)g(one)f (of)h(the)f Fl(posix)g Ft(sp)s(ecial)h(builtins.)154 -4740 y(20.)61 b Fl(posix)30 b Ft(sp)s(ecial)h(builtins)e(are)i(found)e +1163 y(20.)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.)154 -4876 y(21.)61 b(The)29 b Fs(time)g Ft(reserv)m(ed)h(w)m(ord)g(ma)m(y)g +1297 y(21.)61 b(The)29 b Fs(time)g Ft(reserv)m(ed)h(w)m(ord)g(ma)m(y)g (b)s(e)g(used)f(b)m(y)h(itself)g(as)g(a)h(command.)40 -b(When)30 b(used)f(in)g(this)h(w)m(a)m(y)-8 b(,)330 4985 +b(When)30 b(used)f(in)g(this)h(w)m(a)m(y)-8 b(,)330 1407 y(it)33 b(displa)m(ys)g(timing)g(statistics)h(for)e(the)h(shell)g(and)f (its)g(completed)i(c)m(hildren.)47 b(The)32 b Fs(TIMEFORMAT)330 -5095 y Ft(v)-5 b(ariable)31 b(con)m(trols)h(the)e(format)h(of)g(the)f -(timing)h(information.)154 5230 y(22.)61 b(When)33 b(parsing)f(and)g +1517 y Ft(v)-5 b(ariable)31 b(con)m(trols)h(the)e(format)h(of)g(the)f +(timing)h(information.)154 1650 y(22.)61 b(When)33 b(parsing)f(and)g (expanding)g(a)i($)p Fs({)6 b Ft(.)22 b(.)g(.)11 b Fs(})33 b Ft(expansion)f(that)i(app)s(ears)e(within)g(double)g(quotes,)330 -5340 y(single)42 b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f -(cannot)i(b)s(e)e(used)g(to)h(quote)g(a)g(closing)h(brace)f(or)p -eop end -%%Page: 94 100 -TeXDict begin 94 99 bop 150 -116 a Ft(94)2572 b(Bash)31 -b(Reference)g(Man)m(ual)330 299 y(other)g(sp)s(ecial)h(c)m(haracter,)i -(unless)c(the)i(op)s(erator)f(is)g(one)h(of)f(those)h(de\014ned)e(to)i -(p)s(erform)e(pattern)330 408 y(remo)m(v)-5 b(al.)42 -b(In)30 b(this)g(case,)i(they)e(do)g(not)h(ha)m(v)m(e)h(to)f(app)s(ear) -e(as)i(matc)m(hed)g(pairs.)154 542 y(23.)61 b(The)29 -b(parser)g(do)s(es)g(not)h(recognize)h Fs(time)d Ft(as)i(a)g(reserv)m -(ed)f(w)m(ord)g(if)h(the)f(next)h(tok)m(en)h(b)s(egins)d(with)i(a)330 -652 y(`)p Fs(-)p Ft('.)154 786 y(24.)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 896 y(errors)30 b(are)h(those)f(listed)h(in)f(the)h -Fl(posix)e Ft(standard,)h(and)g(include)g(things)g(lik)m(e)i(passing)e -(incorrect)330 1005 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 1115 y(command)30 b(name,)h(and)f(so)g(on.)154 -1249 y(25.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e -(an)h(error)g(status)g(if)g(a)g(v)-5 b(ariable)32 b(assignmen)m(t)g -(error)e(o)s(ccurs)330 1358 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 1468 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 1602 -y(26.)61 b(A)28 b(non-in)m(teractiv)m(e)j(shell)e(exists)f(with)g(an)g -(error)g(status)h(if)f(a)g(v)-5 b(ariable)29 b(assignmen)m(t)g(error)f -(o)s(ccurs)330 1711 y(in)i(an)g(assignmen)m(t)i(statemen)m(t)g -(preceding)e(a)h(sp)s(ecial)g(builtin,)f(but)g(not)g(with)h(an)m(y)f -(other)h(simple)330 1821 y(command.)154 1955 y(27.)61 -b(A)43 b(non-in)m(teractiv)m(e)i(shell)e(exits)h(with)f(an)f(error)h -(status)g(if)g(the)g(iteration)h(v)-5 b(ariable)44 b(in)f(a)g -Fs(for)330 2064 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 2198 y(28.)61 b(Pro)s(cess)30 -b(substitution)g(is)h(not)f(a)m(v)-5 b(ailable.)154 2332 -y(29.)61 b(While)32 b(v)-5 b(ariable)32 b(indirection)f(is)g(a)m(v)-5 -b(ailable,)34 b(it)d(ma)m(y)h(not)f(b)s(e)g(applied)g(to)g(the)h(`)p +1760 y(single)42 b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f +(cannot)i(b)s(e)e(used)g(to)h(quote)g(a)g(closing)h(brace)f(or)330 +1870 y(other)31 b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s +(erator)f(is)g(one)h(of)f(those)h(de\014ned)e(to)i(p)s(erform)e +(pattern)330 1979 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they) +e(do)g(not)h(ha)m(v)m(e)h(to)f(app)s(ear)e(as)i(matc)m(hed)g(pairs.)154 +2113 y(23.)61 b(The)29 b(parser)g(do)s(es)g(not)h(recognize)h +Fs(time)d Ft(as)i(a)g(reserv)m(ed)f(w)m(ord)g(if)h(the)f(next)h(tok)m +(en)h(b)s(egins)d(with)i(a)330 2223 y(`)p Fs(-)p Ft('.)154 +2357 y(24.)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 2466 y(errors)30 b(are)h(those)f +(listed)h(in)f(the)h Fl(posix)e Ft(standard,)h(and)g(include)g(things)g +(lik)m(e)i(passing)e(incorrect)330 2576 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 2685 y(command)30 +b(name,)h(and)f(so)g(on.)154 2819 y(25.)61 b(A)31 b(non-in)m(teractiv)m +(e)j(shell)d(exits)h(with)e(an)h(error)g(status)g(if)g(a)g(v)-5 +b(ariable)32 b(assignmen)m(t)g(error)e(o)s(ccurs)330 +2929 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 +3039 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 3173 y(26.)61 b(A)28 b(non-in)m(teractiv)m(e)j(shell)e +(exists)f(with)g(an)g(error)g(status)h(if)f(a)g(v)-5 +b(ariable)29 b(assignmen)m(t)g(error)f(o)s(ccurs)330 +3282 y(in)i(an)g(assignmen)m(t)i(statemen)m(t)g(preceding)e(a)h(sp)s +(ecial)g(builtin,)f(but)g(not)g(with)h(an)m(y)f(other)h(simple)330 +3392 y(command.)154 3526 y(27.)61 b(A)43 b(non-in)m(teractiv)m(e)i +(shell)e(exits)h(with)f(an)f(error)h(status)g(if)g(the)g(iteration)h(v) +-5 b(ariable)44 b(in)f(a)g Fs(for)330 3635 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 3769 y(28.)61 b(Pro)s(cess)30 b(substitution)g(is)h(not) +f(a)m(v)-5 b(ailable.)154 3903 y(29.)61 b(While)32 b(v)-5 +b(ariable)32 b(indirection)f(is)g(a)m(v)-5 b(ailable,)34 +b(it)d(ma)m(y)h(not)f(b)s(e)g(applied)g(to)g(the)h(`)p Fs(#)p Ft(')f(and)f(`)p Fs(?)p Ft(')h(sp)s(ecial)330 -2442 y(parameters.)154 2576 y(30.)61 b(Assignmen)m(t)23 +4013 y(parameters.)154 4147 y(30.)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 2685 -y(after)31 b(the)f(builtin)g(completes.)154 2819 y(31.)61 +(ersist)g(in)f(the)i(shell)f(en)m(vironmen)m(t)330 4256 +y(after)31 b(the)f(builtin)g(completes.)154 4390 y(31.)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 -2929 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h +4500 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 3063 y(32.)61 b(The)38 b Fs(export)f Ft(and)g +(executed.)154 4634 y(32.)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 3173 y(quired)30 b(b)m(y)g Fl(posix)p -Ft(.)154 3306 y(33.)61 b(The)30 b Fs(trap)f Ft(builtin)h(displa)m(ys)g +g(the)h(format)g(re-)330 4743 y(quired)30 b(b)m(y)g Fl(posix)p +Ft(.)154 4877 y(33.)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 3440 y(34.)61 b(The)39 b Fs(trap)e Ft(builtin)i(do)s(esn't)g +Ft(.)154 5011 y(34.)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 3550 y(and)30 b(rev)m(ert)i(the)e +(signal)i(sp)s(eci\014cation)330 5121 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 3660 y(consists)e(solely)g(of)g +(is,)g(unless)f(that)h(argumen)m(t)330 5230 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 -3769 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s +5340 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 3903 y(35.)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 -4013 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 4147 y(36.)61 b(Subshells)20 b(spa)m(wned)h(to)h +f(argumen)m(t.)p eop end +%%Page: 95 101 +TeXDict begin 95 100 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(95)154 299 y(35.)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 408 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 547 y(36.)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 -4256 y(from)34 b(the)h(paren)m(t)g(shell.)55 b(When)34 +656 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 4366 y(subshells.)154 -4500 y(37.)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 4634 +Fs(-e)p Ft(')f(option)i(in)e(suc)m(h)330 766 y(subshells.)154 +904 y(37.)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 1042 y(38.)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 4743 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 4877 y(39.)61 +330 1151 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 1289 y(39.)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 4987 y(names)30 b(and)g(de\014nitions.)154 -5121 y(40.)61 b(When)36 b(the)g Fs(set)g Ft(builtin)g(is)g(in)m(v)m(ok) +(function)330 1399 y(names)30 b(and)g(de\014nitions.)154 +1537 y(40.)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 5230 y(quotes,)26 b(unless)d(they)i +b(v)-5 b(alues)37 b(without)330 1647 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 5340 y(c)m(haracters.)p -eop end -%%Page: 95 101 -TeXDict begin 95 100 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(95)154 299 y(41.)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 408 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 -518 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 -653 y(42.)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 762 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 897 y(43.)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 -1006 y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.) -154 1141 y(44.)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 1275 y(45.)61 b(The)37 +g(con)m(tains)i(nonprin)m(ting)330 1756 y(c)m(haracters.)154 +1894 y(41.)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 2004 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 2114 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 2252 y(42.)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 2361 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 2499 y(43.)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 2609 +y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154 +2747 y(44.)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 2885 y(45.)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 -1385 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g +2994 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 1494 y(found)i(in)h Fs($PATH)p Ft(.)154 -1629 y(46.)61 b(The)33 b Fs(vi)f Ft(editing)i(mo)s(de)f(will)g(in)m(v)m +g(\014le)330 3104 y(found)i(in)h Fs($PATH)p Ft(.)154 +3242 y(46.)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 1738 y(instead)e(of)f(c)m(hec)m -(king)i Fs($VISUAL)d Ft(and)g Fs($EDITOR)p Ft(.)154 1873 +Fs(v)p Ft(')f(command)g(is)g(run,)330 3352 y(instead)e(of)f(c)m(hec)m +(king)i Fs($VISUAL)d Ft(and)g Fs($EDITOR)p Ft(.)154 3490 y(47.)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 -1983 y(gumen)m(ts)35 b(to)g Fs(echo)e Ft(as)i(options.)54 +3599 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 2092 y(con)m(v)m(erted.)154 -2227 y(48.)61 b(The)30 b Fs(ulimit)f Ft(builtin)g(uses)h(a)h(blo)s(c)m +g(c)m(haracters)h(are)330 3709 y(con)m(v)m(erted.)154 +3847 y(48.)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.)154 2361 y(49.)61 +Ft(')f(and)g(`)p Fs(-f)p Ft(')g(options.)154 3985 y(49.)61 b(The)39 b(arriv)-5 b(al)41 b(of)f Fs(SIGCHLD)e Ft(when)h(a)h(trap)g (is)g(set)h(on)f Fs(SIGCHLD)e Ft(do)s(es)h(not)h(in)m(terrupt)g(the)g -Fs(wait)330 2471 y Ft(builtin)c(and)h(cause)g(it)h(to)f(return)f +Fs(wait)330 4095 y Ft(builtin)c(and)h(cause)g(it)h(to)f(return)f (immediately)-8 b(.)62 b(The)37 b(trap)f(command)h(is)g(run)e(once)j -(for)f(eac)m(h)330 2580 y(c)m(hild)31 b(that)g(exits.)154 -2715 y(50.)61 b(The)27 b Fs(read)f Ft(builtin)g(ma)m(y)i(b)s(e)e(in)m +(for)f(eac)m(h)330 4204 y(c)m(hild)31 b(that)g(exits.)154 +4342 y(50.)61 b(The)27 b Fs(read)f Ft(builtin)g(ma)m(y)i(b)s(e)e(in)m (terrupted)h(b)m(y)g(a)h(signal)f(for)g(whic)m(h)g(a)h(trap)f(has)g(b)s -(een)f(set.)40 b(If)27 b(Bash)330 2824 y(receiv)m(es)41 +(een)f(set.)40 b(If)27 b(Bash)330 4452 y(receiv)m(es)41 b(a)f(trapp)s(ed)e(signal)i(while)f(executing)h Fs(read)p Ft(,)h(the)e(trap)h(handler)e(executes)i(and)f Fs(read)330 -2934 y Ft(returns)29 b(an)h(exit)i(status)e(greater)i(than)e(128.)275 -3093 y(There)k(is)g(other)h Fl(posix)f Ft(b)s(eha)m(vior)h(that)g(Bash) +4561 y Ft(returns)29 b(an)h(exit)i(status)e(greater)i(than)e(128.)275 +4732 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 3203 y Fl(posix)d Ft(mo)s(de.)40 b(Sp)s(eci\014cally:)199 -3337 y(1.)61 b(The)30 b Fs(fc)f Ft(builtin)h(c)m(hec)m(ks)i +150 4841 y Fl(posix)d Ft(mo)s(de.)40 b(Sp)s(eci\014cally:)199 +4983 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 3447 y(rather)g(than)g(defaulting) +(if)f Fs(FCEDIT)f Ft(is)h(unset,)330 5092 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 3582 y(2.)61 +Fs(ed)g Ft(if)g Fs(EDITOR)f Ft(is)h(unset.)199 5230 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 3691 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275 -3851 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 3960 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 4070 y([Optional)31 b(F)-8 b(eatures],)32 -b(page)f(141\).)p eop end +Fs(echo)f Ft(builtin)330 5340 y(to)j(b)s(e)f(fully)g(conforman)m(t.)p +eop end %%Page: 96 102 -TeXDict begin 96 101 bop eop end +TeXDict begin 96 101 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(96)275 299 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 408 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 518 y([Optional)31 b(F)-8 b(eatures],)32 b(page)f(140\).)p +eop end %%Page: 97 103 TeXDict begin 97 102 bop 150 -116 a Ft(Chapter)30 b(7:)41 b(Job)30 b(Con)m(trol)2571 b(97)150 299 y Fo(7)80 b(Job)54 @@ -14384,10 +14496,10 @@ 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: 98 104 -TeXDict begin 98 103 bop 150 -116 a Ft(98)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 +TeXDict begin 98 103 bop 150 -116 a Ft(Chapter)30 b(7:)41 +b(Job)30 b(Con)m(trol)2571 b(98)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 @@ -14410,13 +14522,13 @@ g(to)g(not)g(in)m(terrupt)150 1334 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 1443 y(immediately)g(\(see)g(Section)g(4.3.1)g([The)f(Set)g -(Builtin],)i(page)f(58\).)40 b(An)m(y)24 b(trap)f(on)h +(Builtin],)i(page)f(57\).)40 b(An)m(y)24 b(trap)f(on)h Fs(SIGCHLD)e Ft(is)i(executed)150 1553 y(for)30 b(eac)m(h)i(c)m(hild)e (pro)s(cess)g(that)h(exits.)275 1687 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 1796 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(62\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150 +e(61\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150 1906 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 2016 y Ft(command)36 b(ma)m(y)h(then)f(b)s(e)f @@ -14464,113 +14576,116 @@ eop end %%Page: 99 105 TeXDict begin 99 104 bop 150 -116 a Ft(Chapter)30 b(7:)41 b(Job)30 b(Con)m(trol)2571 b(99)630 299 y Fs(-r)384 b -Ft(Displa)m(y)32 b(only)e(running)f(jobs.)630 447 y Fs(-s)384 -b Ft(Displa)m(y)32 b(only)e(stopp)s(ed)f(jobs.)630 594 +Ft(Displa)m(y)32 b(only)e(running)f(jobs.)630 461 y Fs(-s)384 +b Ft(Displa)m(y)32 b(only)e(stopp)s(ed)f(jobs.)630 622 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 704 y Ft(is)30 b(not)h(supplied,)e(the)i -(status)g(of)f(all)h(jobs)f(is)h(listed.)630 833 y(If)g(the)g(`)p +b(If)23 b Fq(jobsp)s(ec)630 732 y Ft(is)30 b(not)h(supplied,)e(the)i +(status)g(of)f(all)h(jobs)f(is)h(listed.)630 868 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 942 y Fq(argumen)m(ts)41 b Ft(with)36 b(the)i(corresp)s +Ft(or)630 977 y Fq(argumen)m(ts)41 b Ft(with)36 b(the)i(corresp)s (onding)d(pro)s(cess)i(group)f Fl(id)p Ft(,)j(and)d(executes)i -Fq(command)t Ft(,)630 1052 y(passing)30 b(it)h Fq(argumen)m(t)r -Ft(s,)g(returning)f(its)g(exit)i(status.)150 1199 y Fs(kill)870 -1328 y(kill)47 b([-s)g Fi(sigspec)11 b Fs(])45 b([-n)i +Fq(command)t Ft(,)630 1087 y(passing)30 b(it)h Fq(argumen)m(t)r +Ft(s,)g(returning)f(its)g(exit)i(status.)150 1249 y Fs(kill)870 +1384 y(kill)47 b([-s)g Fi(sigspec)11 b Fs(])45 b([-n)i Fi(signum)11 b Fs(])45 b([-)p Fi(sigspec)11 b Fs(])44 -b Fi(jobspec)57 b Fs(or)47 b Fi(pid)870 1438 y Fs(kill)g(-l)g([)p -Fi(exit_status)11 b Fs(])630 1566 y Ft(Send)22 b(a)i(signal)g(sp)s +b Fi(jobspec)57 b Fs(or)47 b Fi(pid)870 1494 y Fs(kill)g(-l)g([)p +Fi(exit_status)11 b Fs(])630 1630 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 -1676 y(cation)j Fq(jobsp)s(ec)k Ft(or)25 b(pro)s(cess)g +1739 y(cation)j Fq(jobsp)s(ec)k Ft(or)25 b(pro)s(cess)g Fl(id)g Fq(pid)t Ft(.)38 b Fq(sigsp)s(ec)31 b Ft(is)25 b(either)g(a)h(case-insensitiv)m(e)h(signal)f(name)630 -1785 y(suc)m(h)k(as)h Fs(SIGINT)d Ft(\(with)j(or)f(without)h(the)f +1849 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 1895 y(a)i(signal)g(n)m(um)m(b)s(er.)43 +Fq(sign)m(um)g Ft(is)630 1958 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 2005 y(`)p Fs(-l)p Ft(')34 b(option)g(lists)h(the)f(signal)h +b(The)630 2068 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 2114 y(giv)m(en,)e(the)g(names)e(of)i(the)f +p Fs(-l)p Ft(')h(is)630 2178 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 2224 y(the)c(return)f(status)h(is)g(zero.)41 -b Fq(exit)p 1796 2224 28 4 v 41 w(status)32 b Ft(is)c(a)g(n)m(um)m(b)s +(and)630 2287 y(the)c(return)f(status)h(is)g(zero.)41 +b Fq(exit)p 1796 2287 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 -2333 y(the)35 b(exit)h(status)f(of)g(a)g(pro)s(cess)g(terminated)g(b)m +2397 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 -2443 y(if)c(at)h(least)g(one)g(signal)f(w)m(as)h(successfully)f(sen)m +2506 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 -2553 y(in)m(v)-5 b(alid)31 b(option)g(is)f(encoun)m(tered.)150 -2700 y Fs(wait)870 2829 y(wait)47 b([)p Fi(jobspec)56 -b Fs(or)47 b Fi(pid)57 b Fs(...)o(])630 2958 y Ft(W)-8 +2616 y(in)m(v)-5 b(alid)31 b(option)g(is)f(encoun)m(tered.)150 +2778 y Fs(wait)870 2913 y(wait)47 b([)p Fi(jobspec)56 +b Fs(or)47 b Fi(pid)57 b Fs(...)o(])630 3049 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 3067 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 3177 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 3286 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 3396 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 3506 y(the)g(return)e(status)i(is)f(127.)150 -3653 y Fs(disown)870 3782 y(disown)46 b([-ar])g([-h])h([)p -Fi(jobspec)56 b Fs(...)o(])630 3911 y Ft(Without)30 b(options,)f(remo)m +(eci\014cation)630 3159 y Fq(jobsp)s(ec)j Ft(exits)c(and)f(return)g +(the)g(exit)h(status)g(of)g(the)f(last)h(command)g(w)m(aited)g(for.)39 +b(If)23 b(a)i(job)630 3268 y(sp)s(ec)j(is)g(giv)m(en,)i(all)f(pro)s +(cesses)f(in)g(the)g(job)g(are)h(w)m(aited)g(for.)40 +b(If)27 b(no)i(argumen)m(ts)f(are)h(giv)m(en,)630 3378 +y(all)f(curren)m(tly)g(activ)m(e)i(c)m(hild)e(pro)s(cesses)f(are)h(w)m +(aited)g(for,)g(and)f(the)h(return)e(status)i(is)g(zero.)630 +3487 y(If)k(the)h(`)p Fs(-n)p Ft(')f(option)h(is)g(supplied,)f +Fs(wait)f Ft(w)m(aits)i(for)g(an)m(y)f(job)h(to)g(terminate)g(and)f +(returns)630 3597 y(its)27 b(exit)h(status.)40 b(If)26 +b(neither)h Fq(jobsp)s(ec)k Ft(nor)c Fq(pid)i Ft(sp)s(eci\014es)e(an)f +(activ)m(e)j(c)m(hild)e(pro)s(cess)g(of)g(the)630 3707 +y(shell,)k(the)f(return)g(status)g(is)h(127.)150 3868 +y Fs(disown)870 4004 y(disown)46 b([-ar])g([-h])h([)p +Fi(jobspec)56 b Fs(...)o(])630 4140 y Ft(Without)30 b(options,)f(remo)m (v)m(e)i(eac)m(h)f Fq(jobsp)s(ec)k Ft(from)28 b(the)h(table)h(of)f (activ)m(e)i(jobs.)40 b(If)28 b(the)h(`)p Fs(-h)p Ft(')630 -4020 y(option)36 b(is)f(giv)m(en,)i(the)f(job)f(is)g(not)g(remo)m(v)m +4249 y(option)36 b(is)f(giv)m(en,)i(the)f(job)f(is)g(not)g(remo)m(v)m (ed)h(from)f(the)g(table,)j(but)c(is)i(mark)m(ed)f(so)g(that)630 -4130 y Fs(SIGHUP)e Ft(is)j(not)f(sen)m(t)h(to)g(the)f(job)g(if)g(the)g +4359 y Fs(SIGHUP)e Ft(is)j(not)f(sen)m(t)h(to)g(the)f(job)g(if)g(the)g (shell)h(receiv)m(es)h(a)e Fs(SIGHUP)p Ft(.)54 b(If)34 -b Fq(jobsp)s(ec)40 b Ft(is)c(not)630 4239 y(presen)m(t,)27 +b Fq(jobsp)s(ec)40 b Ft(is)c(not)630 4468 y(presen)m(t,)27 b(and)f(neither)g(the)g(`)p Fs(-a)p Ft(')g(nor)g(`)p Fs(-r)p Ft(')g(option)h(is)f(supplied,)g(the)g(curren)m(t)g(job)g(is)g -(used.)630 4349 y(If)i(no)g Fq(jobsp)s(ec)33 b Ft(is)28 +(used.)630 4578 y(If)i(no)g Fq(jobsp)s(ec)33 b Ft(is)28 b(supplied,)f(the)i(`)p Fs(-a)p Ft(')f(option)g(means)h(to)f(remo)m(v)m -(e)i(or)e(mark)g(all)h(jobs;)g(the)630 4458 y(`)p Fs(-r)p +(e)i(or)e(mark)g(all)h(jobs;)g(the)630 4688 y(`)p Fs(-r)p Ft(')h(option)h(without)f(a)h Fq(jobsp)s(ec)k Ft(argumen)m(t)c (restricts)g(op)s(eration)g(to)g(running)e(jobs.)150 -4606 y Fs(suspend)870 4735 y(suspend)46 b([-f])630 4864 +4849 y Fs(suspend)870 4985 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 4973 y(shell)24 b(cannot)h(b)s(e)e(susp)s(ended;)h(the)g(`) +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 5083 y(the)31 b(susp)s(ension.)275 -5230 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 5340 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.)p +(this)f(and)f(force)630 5340 y(the)31 b(susp)s(ension.)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)150 299 y Fr(7.3)68 b(Job)45 -b(Con)l(trol)h(V)-11 b(ariables)150 483 y Fs(auto_resume)630 -593 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 702 y(this)28 b(v)-5 b(ariable)30 b(exists)f(then)f(single)h +TeXDict begin 100 105 bop 150 -116 a Ft(Chapter)30 b(7:)41 +b(Job)30 b(Con)m(trol)2526 b(100)275 299 y(When)30 b(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 641 y Fr(7.3)68 b(Job)45 b(Con)l(trol)h(V)-11 +b(ariables)150 825 y Fs(auto_resume)630 935 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 1044 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 -812 y(treated)h(as)g(candidates)f(for)g(resumption)g(of)g(an)g +1154 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 -922 y(allo)m(w)m(ed;)f(if)d(there)g(is)g(more)g(than)f(one)h(job)g(b)s +1264 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 -1031 y(most)j(recen)m(tly)h(accessed)f(job)f(will)h(b)s(e)f(selected.) +1373 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 -1141 y(con)m(text,)h(is)e(the)g(command)g(line)g(used)f(to)h(start)g +1483 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 1250 y(`)p Fs(exact)p Ft(',)33 b(the)g(string)g(supplied)f +b(alue)630 1592 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 1360 y(set)29 b(to)h(`)p Fs(substring)p +(exactly;)j(if)630 1702 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 1469 y(of)38 b(a)f(stopp)s(ed)g(job.) +(substring)f(of)h(the)g(name)630 1812 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 -1579 y(the)f(`)p Fs(\045?)p Ft(')f(job)h Fl(id)f Ft(\(see)i(Section)f +1921 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(97\).)64 -b(If)37 b(set)h(to)h(an)m(y)630 1689 y(other)32 b(v)-5 +b(If)37 b(set)h(to)h(an)m(y)630 2031 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 1798 +(of)h(a)g(stopp)s(ed)e(job's)i(name;)g(this)630 2140 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: 101 107 @@ -14588,14 +14703,14 @@ Fs(--noediting)p Ft(')d(option)k(is)e(supplied)g(at)h(shell)g(in)m(v)m (o)s(cation.)42 b(Line)26 b(editing)150 1078 y(is)i(also)h(used)e(when) h(using)f(the)h(`)p Fs(-e)p Ft(')g(option)h(to)g(the)f Fs(read)f Ft(builtin)h(command)f(\(see)i(Section)g(4.2)h([Bash)150 -1188 y(Builtins],)36 b(page)f(48\).)52 b(By)35 b(default,)g(the)f(line) +1188 y(Builtins],)36 b(page)f(47\).)52 b(By)35 b(default,)g(the)f(line) h(editing)f(commands)g(are)h(similar)f(to)h(those)f(of)g(Emacs.)150 1297 y(A)h(vi-st)m(yle)h(line)f(editing)g(in)m(terface)h(is)e(also)i(a) m(v)-5 b(ailable.)55 b(Line)34 b(editing)h(can)g(b)s(e)f(enabled)g(at)h (an)m(y)g(time)150 1407 y(using)28 b(the)i(`)p Fs(-o)g(emacs)p Ft(')d(or)i(`)p Fs(-o)h(vi)p Ft(')f(options)g(to)h(the)f Fs(set)f Ft(builtin)h(command)g(\(see)h(Section)f(4.3.1)i([The)150 -1517 y(Set)g(Builtin],)g(page)g(58\),)h(or)e(disabled)g(using)g(the)h +1517 y(Set)g(Builtin],)g(page)g(57\),)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 1802 y Fr(8.1)68 b(In)l(tro)t(duction)45 b(to)g(Line)h(Editing)150 1962 y Ft(The)30 b(follo)m(wing)i(paragraphs) @@ -14660,15 +14775,15 @@ Fs(RET)p Ft(;)i(the)g(en)m(tire)g(line)f(is)h(accepted)g(regardless)g (of)f(the)h(lo)s(cation)h(of)e(the)h(cursor)150 5340 y(within)c(the)g(line.)p eop end %%Page: 102 108 -TeXDict begin 102 107 bop 150 -116 a Ft(102)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fj(8.2.1)63 b(Readline)40 -b(Bare)h(Essen)m(tials)150 446 y Ft(In)31 b(order)h(to)h(en)m(ter)g(c)m -(haracters)g(in)m(to)g(the)g(line,)g(simply)e(t)m(yp)s(e)i(them.)46 -b(The)31 b(t)m(yp)s(ed)h(c)m(haracter)i(app)s(ears)150 -555 y(where)e(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 665 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 +TeXDict begin 102 107 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(102)150 299 y Fj(8.2.1)63 +b(Readline)40 b(Bare)h(Essen)m(tials)150 446 y Ft(In)31 +b(order)h(to)h(en)m(ter)g(c)m(haracters)g(in)m(to)g(the)g(line,)g +(simply)e(t)m(yp)s(e)i(them.)46 b(The)31 b(t)m(yp)s(ed)h(c)m(haracter)i +(app)s(ears)150 555 y(where)e(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 665 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 806 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) @@ -14809,32 +14924,32 @@ i(a)e(sp)s(eci\014ed)f(string.)60 b(There)36 b(are)i(t)m(w)m(o)150 5340 y(searc)m(h)31 b(mo)s(des:)40 b Fq(incremen)m(tal)35 b Ft(and)30 b Fq(non-incremen)m(tal)p Ft(.)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)275 299 y(Incremen)m(tal)26 b(searc)m(hes)h(b)s -(egin)e(b)s(efore)g(the)h(user)f(has)h(\014nished)e(t)m(yping)i(the)g -(searc)m(h)g(string.)39 b(As)26 b(eac)m(h)150 408 y(c)m(haracter)37 -b(of)e(the)h(searc)m(h)g(string)f(is)h(t)m(yp)s(ed,)g(Readline)g -(displa)m(ys)g(the)f(next)h(en)m(try)g(from)e(the)i(history)150 -518 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 628 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 -737 y(string,)g(t)m(yp)s(e)f Fi(C-r)p Ft(.)40 b(T)m(yping)29 -b Fi(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 847 -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 956 y(searc)m(h.)71 b(If)40 b(that)h(v)-5 b(ariable)41 -b(has)f(not)h(b)s(een)e(assigned)i(a)f(v)-5 b(alue,)44 -b(the)c Fs(ESC)g Ft(and)f Fi(C-J)h Ft(c)m(haracters)i(will)150 -1066 y(terminate)h(an)g(incremen)m(tal)g(searc)m(h.)78 -b Fi(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 1176 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 1285 -y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 1428 y(T)-8 -b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e(the)h +TeXDict begin 104 109 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(104)275 299 y(Incremen)m(tal)26 +b(searc)m(hes)h(b)s(egin)e(b)s(efore)g(the)h(user)f(has)h(\014nished)e +(t)m(yping)i(the)g(searc)m(h)g(string.)39 b(As)26 b(eac)m(h)150 +408 y(c)m(haracter)37 b(of)e(the)h(searc)m(h)g(string)f(is)h(t)m(yp)s +(ed,)g(Readline)g(displa)m(ys)g(the)f(next)h(en)m(try)g(from)e(the)i +(history)150 518 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 628 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 737 y(string,)g(t)m(yp)s(e)f Fi(C-r)p +Ft(.)40 b(T)m(yping)29 b Fi(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 847 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 956 y(searc)m(h.)71 +b(If)40 b(that)h(v)-5 b(ariable)41 b(has)f(not)h(b)s(een)e(assigned)i +(a)f(v)-5 b(alue,)44 b(the)c Fs(ESC)g Ft(and)f Fi(C-J)h +Ft(c)m(haracters)i(will)150 1066 y(terminate)h(an)g(incremen)m(tal)g +(searc)m(h.)78 b Fi(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 1176 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 +1285 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 1428 +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 Fi(C-r)e Ft(or)h Fi(C-s)f Ft(as)h(appropriate.)43 b(This)150 1537 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 @@ -14915,7 +15030,7 @@ b(1.)39 b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v) 1422 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 1532 y(See)31 b(Section)g(4.2)g([Bash)g(Builtins],)g(page) -g(48.)630 1669 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g +g(47.)630 1669 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g (is)g(c)m(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5 b(ariables.)630 1833 y Fs(bell-style)1110 1943 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 @@ -14962,25 +15077,25 @@ Ft('\))i(as)f(equiv)-5 b(alen)m(t)32 b(when)e(p)s(erforming)1110 5340 y(case-insensitiv)m(e)j(\014lename)d(matc)m(hing)i(and)e (completion.)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)630 299 y Fs(completion-prefix-displa)o(y-le)o -(ngth)1110 408 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 -518 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 628 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 737 y(replaced)k(with)f(an)g -(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible)f(completions.)630 -902 y Fs(completion-query-items)1110 1011 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 1121 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)1110 1230 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)f -(completions)i(is)f(greater)h(than)e(this)h(v)-5 b(alue,)28 -b(Readline)1110 1340 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 1450 -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 +TeXDict begin 106 111 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(106)630 299 y Fs +(completion-prefix-displa)o(y-le)o(ngth)1110 408 y Ft(The)31 +b(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 518 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 +628 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 737 +y(replaced)k(with)f(an)g(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible) +f(completions.)630 902 y Fs(completion-query-items)1110 +1011 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 1121 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)1110 1230 y(n)m(um)m(b)s(er)d(of)h +(p)s(ossible)f(completions)i(is)f(greater)h(than)e(this)h(v)-5 +b(alue,)28 b(Readline)1110 1340 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 +1450 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 1559 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 1669 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g @@ -15036,48 +15151,53 @@ Fs(on)p Ft(',)i(the)c(history)h(co)s(de)g(attempts)h(to)f(place)h(the)f g(at)h(the)g(same)f(lo)s(cation)i(on)e(eac)m(h)h(history)g(line)1110 628 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 737 -y(is)30 b(`)p Fs(off)p Ft('.)630 920 y Fs(history-size)1110 -1029 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 1139 -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 -1249 y(limited.)630 1431 y Fs(horizontal-scroll-mode)1110 -1541 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 1650 y(means)26 b(that)h(the)f(text)h +y(is)30 b(`)p Fs(off)p Ft('.)630 883 y Fs(history-size)1110 +993 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 1103 +y(list.)51 b(If)34 b(set)g(to)h(zero,)g(an)m(y)f(existing)h(history)f +(en)m(tries)g(are)g(deleted)h(and)e(no)1110 1212 y(new)e(en)m(tries)i +(are)f(sa)m(v)m(ed.)46 b(If)31 b(set)h(to)h(a)f(v)-5 +b(alue)32 b(less)g(than)f(zero,)i(the)f(n)m(um)m(b)s(er)1110 +1322 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42 +b(By)30 b(default,)h(the)g(n)m(um)m(b)s(er)e(of)i(history)1110 +1431 y(en)m(tries)g(is)g(not)f(limited.)630 1577 y Fs +(horizontal-scroll-mode)1110 1687 y Ft(This)35 b(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 1797 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 1760 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 1870 +(tally)1110 1906 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 2016 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 1979 y(v)-5 +(line.)39 b(By)27 b(default,)g(this)1110 2125 y(v)-5 b(ariable)31 b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630 -2162 y Fs(input-meta)1110 2271 y Ft(If)f(set)g(to)h(`)p +2271 y Fs(input-meta)1110 2381 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 2381 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h +i(will)f(not)h(clear)1110 2491 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h (c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)1110 -2491 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68 +2600 y(terminal)g(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 2600 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 2783 y Fs(isearch-terminators) -1110 2892 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 3002 y(searc)m(h)25 +Ft('.)69 b(The)1110 2710 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 2856 y Fs(isearch-terminators) +1110 2966 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 3075 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 3112 y(\(see)38 b(Section)g(8.2.5)h([Searc)m(hing],)h +(command)1110 3185 y(\(see)38 b(Section)g(8.2.5)h([Searc)m(hing],)h (page)e(103\).)62 b(If)37 b(this)g(v)-5 b(ariable)38 -b(has)f(not)1110 3221 y(b)s(een)e(giv)m(en)h(a)g(v)-5 +b(has)f(not)1110 3294 y(b)s(een)e(giv)m(en)h(a)g(v)-5 b(alue,)37 b(the)f(c)m(haracters)h Fs(ESC)d Ft(and)h -Fi(C-J)g Ft(will)h(terminate)g(an)1110 3331 y(incremen)m(tal)c(searc)m -(h.)630 3513 y Fs(keymap)192 b Ft(Sets)39 b(Readline's)g(idea)h(of)f +Fi(C-J)g Ft(will)h(terminate)g(an)1110 3404 y(incremen)m(tal)c(searc)m +(h.)630 3550 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 -3623 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 3733 +3660 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 3769 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 -3842 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5 +3879 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 3952 y(to)33 b Fs(emacs-standard)p +Ft(is)i(equiv)-5 b(alen)m(t)1110 3988 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 4061 +Ft(.)44 b(The)31 b(v)-5 b(alue)33 b(of)f(the)1110 4098 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 4244 y Fs(keyseq-timeout)1110 4354 y Ft(Sp)s(eci\014es)25 b(the)g(duration)g(Readline)h(will)g(w)m @@ -15100,12 +15220,12 @@ f(pressed)g(to)h(decide)f(whic)m(h)g(k)m(ey)1110 5340 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5 b(alue)31 b(is)g Fs(500)p Ft(.)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 Fs(mark-directories)1110 -408 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 518 -y(The)30 b(default)g(is)h(`)p Fs(on)p Ft('.)630 676 y -Fs(mark-modified-lines)1110 786 y Ft(This)k(v)-5 b(ariable,)38 +TeXDict begin 108 113 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(108)630 299 y Fs(mark-directories) +1110 408 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 +518 y(The)30 b(default)g(is)h(`)p Fs(on)p Ft('.)630 676 +y Fs(mark-modified-lines)1110 786 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 896 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 @@ -15176,198 +15296,206 @@ Ft(.)41 b(If)24 b(set)i(to)f(`)p Fs(on)p Ft(',)i(w)m(ords)d(whic)m(h) f(share)g(a)h(common)1110 847 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 956 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 1117 y Fs(skip-completed-text) -1110 1226 y Ft(If)i(set)i(to)f(`)p Fs(on)p Ft(',)h(this)f(alters)g(the) -g(default)g(completion)h(b)s(eha)m(vior)f(when)f(in-)1110 -1336 y(serting)d(a)h(single)g(matc)m(h)f(in)m(to)h(the)g(line.)40 +b(alue)31 b(is)f(`)p Fs(off)p Ft('.)630 1113 y Fs(show-mode-in-prompt) +1110 1223 y Ft(If)35 b(set)i(to)f(`)p Fs(on)p Ft(',)h(add)e(a)h(c)m +(haracter)i(to)e(the)g(b)s(eginning)f(of)h(the)g(prompt)f(in-)1110 +1332 y(dicating)43 b(the)f(editing)h(mo)s(de:)63 b(emacs)43 +b(\(`)p Fs(@)p Ft('\),)i(vi)d(command)g(\(`)p Fs(:)p +Ft('\),)k(or)c(vi)1110 1442 y(insertion)30 b(\(`)p Fs(+)p +Ft('\).)42 b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p +Fs(off)p Ft('.)630 1598 y Fs(skip-completed-text)1110 +1708 y Ft(If)h(set)i(to)f(`)p Fs(on)p Ft(',)h(this)f(alters)g(the)g +(default)g(completion)h(b)s(eha)m(vior)f(when)f(in-)1110 +1817 y(serting)d(a)h(single)g(matc)m(h)f(in)m(to)h(the)g(line.)40 b(It's)30 b(only)f(activ)m(e)i(when)d(p)s(erform-)1110 -1445 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f(w)m(ord.)53 -b(If)35 b(enabled,)g(readline)g(do)s(es)1110 1555 y(not)41 +1927 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f(w)m(ord.)53 +b(If)35 b(enabled,)g(readline)g(do)s(es)1110 2037 y(not)41 b(insert)f(c)m(haracters)i(from)e(the)h(completion)h(that)f(matc)m(h)g -(c)m(haracters)1110 1665 y(after)c(p)s(oin)m(t)g(in)g(the)g(w)m(ord)f +(c)m(haracters)1110 2146 y(after)c(p)s(oin)m(t)g(in)g(the)g(w)m(ord)f (b)s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g(w)m(ord)1110 -1774 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g(duplicated.)45 +2256 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g(duplicated.)45 b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110 -1884 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g -(after)h(the)g(`)p Fs(e)p Ft(')f(in)1110 1993 y(`)p Fs(Makefile)p +2365 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g +(after)h(the)g(`)p Fs(e)p Ft(')f(in)1110 2475 y(`)p Fs(Makefile)p Ft(')c(will)i(result)f(in)g(`)p Fs(Makefile)p Ft(')f(rather)h(than)h(`) -p Fs(Makefilefile)p Ft(',)1110 2103 y(assuming)d(there)g(is)h(a)f +p Fs(Makefilefile)p Ft(',)1110 2585 y(assuming)d(there)g(is)h(a)f (single)h(p)s(ossible)f(completion.)56 b(The)35 b(default)g(v)-5 -b(alue)1110 2212 y(is)30 b(`)p Fs(off)p Ft('.)630 2373 -y Fs(visible-stats)1110 2482 y Ft(If)h(set)i(to)f(`)p +b(alue)1110 2694 y(is)30 b(`)p Fs(off)p Ft('.)630 2851 +y Fs(visible-stats)1110 2960 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 2592 y(\014lename)e(when)e +(e)g(is)g(app)s(ended)e(to)j(the)1110 3070 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 2752 y(Key)f(Bindings)630 2862 y(The)41 +Fs(off)p Ft('.)150 3226 y(Key)f(Bindings)630 3336 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 -2971 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i +3446 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 -3081 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j +3555 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 -3190 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h -(do)s(es.)630 3325 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g +3665 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h +(do)s(es.)630 3798 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 -3435 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h +3907 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 -3544 y(the)f(name)h(of)f(the)g(command.)46 b(There)32 +4017 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 3654 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m +(and)630 4127 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 3764 y(the)35 b(k)m(ey)g(can)g(b)s(e)f +b(The)40 b(name)h(of)630 4236 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 3873 y(comfortable.)630 -4008 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h +(what)h(y)m(ou)g(\014nd)e(most)630 4346 y(comfortable.)630 +4479 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 -4118 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 4253 y(The)42 b Fs(bind)30 +4589 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 4722 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 4362 y(format)37 b(that)h(can)f(put)f(directly) +f(bindings)g(in)h(a)630 4831 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 4472 y(Builtins],)31 b(page)g(48.)630 -4632 y Fq(k)m(eyname)5 b Ft(:)42 b Fq(function-name)35 -b Ft(or)c Fq(macro)1110 4741 y(k)m(eyname)k Ft(is)29 +b(Section)f(4.2)i([Bash)630 4941 y(Builtins],)31 b(page)g(47.)630 +5097 y Fq(k)m(eyname)5 b Ft(:)42 b Fq(function-name)35 +b Ft(or)c Fq(macro)1110 5207 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 4876 y Fs(Control-u:)45 -b(universal-argument)1350 4986 y(Meta-Rubout:)f(backward-kill-word)1350 -5096 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 Fi(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 Fi(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 +b(F)-8 b(or)30 b(example:)1350 5340 y Fs(Control-u:)45 +b(universal-argument)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)1110 299 y(and)38 b Fi(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)22 +TeXDict begin 110 115 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(110)1350 299 y Fs(Meta-Rubout:)44 +b(backward-kill-word)1350 408 y(Control-o:)h(">)i(output")1110 +542 y Ft(In)38 b(the)h(ab)s(o)m(v)m(e)h(example,)h Fi(C-u)d +Ft(is)h(b)s(ound)d(to)k(the)e(function)h Fs(universal-)1110 +652 y(argument)p Ft(,)f Fi(M-DEL)e Ft(is)i(b)s(ound)e(to)i(the)g +(function)g Fs(backward-kill-word)p Ft(,)1110 762 y(and)g +Fi(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 871 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 +1005 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 1115 y(cessing)22 b(this)g(k)m(ey)g(binding)e(syn)m(tax:)37 b Fq(DEL)p Ft(,)22 b Fq(ESC)8 b Ft(,)20 b Fq(ESCAPE)5 b Ft(,)21 -b Fq(LFD)5 b Ft(,)22 b Fq(NEW-)1110 763 y(LINE)5 b Ft(,)31 +b Fq(LFD)5 b Ft(,)22 b Fq(NEW-)1110 1224 y(LINE)5 b Ft(,)31 b Fq(RET)7 b Ft(,)29 b Fq(RETURN)10 b Ft(,)30 b Fq(R)m(UBOUT)7 b Ft(,)31 b Fq(SP)-8 b(A)m(CE)5 b Ft(,)31 b Fq(SPC)8 -b Ft(,)29 b(and)h Fq(T)-8 b(AB)5 b Ft(.)630 923 y Fs(")p +b Ft(,)29 b(and)h Fq(T)-8 b(AB)5 b Ft(.)630 1383 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 +Ft(or)30 b Fq(macro)1110 1492 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 +(denoting)g(an)g(en-)1110 1602 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 +1110 1711 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 +1110 1821 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 1931 y(recognized.)1350 +2064 y Fs("\\C-u":)46 b(universal-argument)1350 2174 +y("\\C-x\\C-r":)f(re-read-init-file)1350 2284 y("\\e[11~":)g("Function) +h(Key)g(1")1110 2418 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74 b Fi(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 Fi(C-x)1110 2179 +2527 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 Fi(C-x)1110 2637 y(C-r)p Ft(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f Fs(re-read-init-file)p Ft(,)c(and)j(`)p Fs(ESC)h([)g(1)g(1)1110 -2288 y(~)p Ft(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p -Fs(Function)e(Key)g(1)p Ft('.)630 2449 y(The)g(follo)m(wing)i +2746 y(~)p Ft(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p +Fs(Function)e(Key)g(1)p Ft('.)630 2905 y(The)g(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 Fi(\\C-)336 b Ft(con)m(trol)32 b(pre\014x)630 -2878 y Fi(\\M-)336 b Ft(meta)31 b(pre\014x)630 3039 y +b(ailable)32 b(when)d(sp)s(ecifying)630 3014 y(k)m(ey)i(sequences:)630 +3173 y Fi(\\C-)336 b Ft(con)m(trol)32 b(pre\014x)630 +3331 y Fi(\\M-)336 b Ft(meta)31 b(pre\014x)630 3489 y Fi(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630 -3199 y Fi(\\\\)384 b Ft(bac)m(kslash)630 3359 y Fi(\\)p +3647 y Fi(\\\\)384 b Ft(bac)m(kslash)630 3806 y Fi(\\)p Fs(")g(")p Ft(,)30 b(a)h(double)f(quotation)i(mark)630 -3519 y Fi(\\')384 b Fs(')p Ft(,)30 b(a)h(single)g(quote)g(or)f(ap)s -(ostrophe)630 3679 y(In)d(addition)h(to)g(the)g Fl(gnu)f +3964 y Fi(\\')384 b Fs(')p Ft(,)30 b(a)h(single)g(quote)g(or)f(ap)s +(ostrophe)630 4122 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 -Fi(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 +(bac)m(kslash)630 4232 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630 +4390 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 4548 +y Fs(\\b)384 b Ft(bac)m(kspace)630 4707 y Fs(\\d)g Ft(delete)630 +4865 y Fs(\\f)g Ft(form)30 b(feed)630 5023 y Fs(\\n)384 +b Ft(newline)630 5182 y Fs(\\r)g Ft(carriage)32 b(return)630 +5340 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)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)630 299 y Fs(\\x)p +b(Command)29 b(Line)i(Editing)2062 b(111)630 299 y Fs(\\v)384 +b Ft(v)m(ertical)32 b(tab)630 451 y Fs(\\)p Fi(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 561 y(three)c(digits\))630 713 y Fs(\\x)p Fi(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 -565 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e +Fq(HH)1110 823 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630 +975 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 -675 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21 +1085 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 784 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23 +b(In)630 1194 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 894 y(will)j(quote)h(an)m(y)f +(are)e(expanded.)37 b(Bac)m(kslash)630 1304 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 1003 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i +b(or)630 1414 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i (mak)m(e)h(`)p Fi(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 1137 y Fs("\\C-x\\\\":)45 -b("\\\\")150 1333 y Fj(8.3.2)63 b(Conditional)41 b(Init)g(Constructs) -150 1480 y Ft(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f +Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 1545 y Fs("\\C-x\\\\":)45 +b("\\\\")150 1737 y Fj(8.3.2)63 b(Conditional)41 b(Init)g(Constructs) +150 1884 y Ft(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f (in)g(spirit)f(to)i(the)f(conditional)h(compilation)g(features)f(of)150 -1590 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g +1993 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g (bindings)d(and)h(v)-5 b(ariable)32 b(settings)f(to)h(b)s(e)e(p)s -(erformed)f(as)i(the)150 1699 y(result)f(of)h(tests.)41 +(erformed)f(as)i(the)150 2103 y(result)f(of)h(tests.)41 b(There)30 b(are)h(four)f(parser)f(directiv)m(es)j(used.)150 -1856 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h +2255 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 1966 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g +(the)630 2365 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 2075 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m +630 2474 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 -2232 y Fs(mode)288 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g +2627 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 2341 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40 +1110 2736 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 -2451 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 2561 y(standard)23 +2846 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 2956 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 2670 y(in)k Fs(emacs)f Ft(mo)s(de.)630 -2827 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e +(starting)h(out)1110 3065 y(in)k Fs(emacs)f Ft(mo)s(de.)630 +3218 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 -2936 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 3046 y(function)24 +3327 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 3437 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 3156 +(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 3546 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 3265 y(name)k(b)s(efore)f(the)g +(ortion)e(of)h(the)g(terminal)1110 3656 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 -3375 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 3531 y -Fs(application)1110 3641 y Ft(The)21 b Fq(application)j +3766 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 3918 y +Fs(application)1110 4028 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 3751 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h +(set-)1110 4137 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 -3860 y(name)5 b Ft(,)25 b(and)d(y)m(ou)h(can)g(test)h(for)e(a)h +4247 y(name)5 b Ft(,)25 b(and)d(y)m(ou)h(can)g(test)h(for)e(a)h (particular)h(v)-5 b(alue.)38 b(This)22 b(could)h(b)s(e)f(used)g(to) -1110 3970 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g +1110 4356 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 -4079 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 4189 y(the)e(curren)m(t)f(or)g -(previous)g(w)m(ord)g(in)g(Bash:)1350 4322 y Fs($if)47 -b(Bash)1350 4432 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word) -1350 4541 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 4651 y($endif)150 -4807 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g +4466 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 4575 y(the)e(curren)m(t)f(or)g +(previous)g(w)m(ord)g(in)g(Bash:)1350 4706 y Fs($if)47 +b(Bash)1350 4816 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word) +1350 4926 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 5035 y($endif)150 +5188 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 -4964 y Fs($else)240 b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i +5340 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 +(fails.)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)870 299 y Fs($include)46 b(/etc/inputrc)150 -498 y Fj(8.3.3)63 b(Sample)41 b(Init)g(File)150 645 y -Ft(Here)27 b(is)f(an)h(example)g(of)f(an)h Fq(inputrc)k +TeXDict begin 112 117 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(112)150 299 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 408 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 +518 y(`)p Fs(/etc/inputrc)p Ft(':)870 653 y Fs($include)46 +b(/etc/inputrc)150 852 y Fj(8.3.3)63 b(Sample)41 b(Init)g(File)150 +999 y Ft(Here)27 b(is)f(an)h(example)g(of)f(an)h Fq(inputrc)k Ft(\014le.)39 b(This)26 b(illustrates)h(k)m(ey)h(binding,)e(v)-5 -b(ariable)27 b(assignmen)m(t,)i(and)150 755 y(conditional)j(syn)m(tax.) -p eop end +b(ariable)27 b(assignmen)m(t,)i(and)150 1108 y(conditional)j(syn)m +(tax.)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)390 408 y Fs(#)47 @@ -15400,9 +15528,9 @@ y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(keypad)f(mode)390 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: 114 120 -TeXDict begin 114 119 bop 150 -116 a Ft(114)2527 b(Bash)31 -b(Reference)g(Man)m(ual)390 299 y Fs(#"\\M-\\C-[A":)331 -b(previous-history)390 408 y(#"\\M-\\C-[B":)g(next-history)390 +TeXDict begin 114 119 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(114)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 @@ -15446,7 +15574,7 @@ b(Y)-8 b(ou)33 b(can)150 1344 y(list)40 b(y)m(our)f(k)m(ey)i(bindings)d (b)m(y)h(executing)i Fs(bind)29 b(-P)39 b Ft(or,)j(for)d(a)h(more)g (terse)g(format,)i(suitable)e(for)f(an)150 1454 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(48.\))41 b(Command)28 b(names)h(without) +([Bash)g(Builtins],)g(page)g(47.\))41 b(Command)28 b(names)h(without) 150 1563 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 1696 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 @@ -15484,12 +15612,12 @@ b(\(\))630 5322 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.)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 Fj(8.4.2)63 b(Commands)42 -b(F)-10 b(or)41 b(Manipulating)h(The)f(History)150 473 -y Fs(accept-line)27 b(\(Newline)h(or)i(Return\))630 582 -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 +TeXDict begin 116 121 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(116)150 299 y Fj(8.4.2)63 +b(Commands)42 b(F)-10 b(or)41 b(Manipulating)h(The)f(History)150 +473 y Fs(accept-line)27 b(\(Newline)h(or)i(Return\))630 +582 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 692 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 802 y Ft(v)-5 b(ariables.)42 b(If)30 @@ -15613,14 +15741,14 @@ y Ft(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)h 5230 y Fs(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o(\))630 5340 y Ft(Insert)g(y)m(ourself.)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)150 299 y Fs(transpose-chars)26 -b(\(C-t\))630 408 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 518 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 628 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 +TeXDict begin 118 123 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(118)150 299 y Fs(transpose-chars) +26 b(\(C-t\))630 408 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 518 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 628 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 737 y(ha)m(v)m(e)32 b(no)e(e\013ect.)150 907 y Fs(transpose-words)c(\(M-t\))630 1016 y Ft(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g @@ -15734,21 +15862,22 @@ Fi(M-1)p Fs(,)h(...)f Fi(M--)p Fs(\))630 4741 y Ft(Add)d(this)h(digit)g m(y)f(digits,)i(executing)f Fs(universal-argument)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(again)i(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 408 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 518 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 628 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 737 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 847 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 1052 -y Fj(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 1226 y Fs(complete)28 b(\(TAB\))630 +TeXDict begin 120 125 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(120)630 299 y(again)33 +b(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 408 +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 518 +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 +628 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 +737 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 +847 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 1052 y Fj(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 1226 y Fs(complete)28 b(\(TAB\))630 1336 y Ft(A)m(ttempt)c(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g (b)s(efore)f(p)s(oin)m(t.)39 b(The)22 b(actual)i(completion)630 1445 y(p)s(erformed)33 b(is)h(application-sp)s(eci\014c.)53 @@ -15861,21 +15990,21 @@ f(macro)h(de\014ned,)f(b)m(y)h(making)f(the)g(c)m(haracters)i(in)e(the) 630 5340 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.)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(print-last-kbd-macro)25 -b(\(\))630 408 y Ft(Prin)m(t)30 b(the)h(last)g(k)m(eb)s(oard)f(macro)h -(de\014ned)e(in)i(a)f(format)h(suitable)g(for)f(the)h -Fq(inputrc)k Ft(\014le.)150 604 y Fj(8.4.8)63 b(Some)41 -b(Miscellaneous)i(Commands)150 774 y Fs(re-read-init-file)26 -b(\(C-x)j(C-r\))630 884 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 994 y(assignmen)m(ts)31 -b(found)e(there.)150 1150 y Fs(abort)g(\(C-g\))630 1259 -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 -1369 y(setting)j(of)g Fs(bell-style)p Ft(\).)150 1525 -y Fs(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p Fi(x)11 -b Fs(,)29 b(...)o(\))630 1634 y Ft(If)e(the)h(meta\014ed)g(c)m +TeXDict begin 122 127 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(122)150 299 y Fs +(print-last-kbd-macro)25 b(\(\))630 408 y Ft(Prin)m(t)30 +b(the)h(last)g(k)m(eb)s(oard)f(macro)h(de\014ned)e(in)i(a)f(format)h +(suitable)g(for)f(the)h Fq(inputrc)k Ft(\014le.)150 604 +y Fj(8.4.8)63 b(Some)41 b(Miscellaneous)i(Commands)150 +774 y Fs(re-read-init-file)26 b(\(C-x)j(C-r\))630 884 +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 994 y(assignmen)m(ts)31 b(found)e(there.)150 +1150 y Fs(abort)g(\(C-g\))630 1259 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 1369 y(setting)j(of)g Fs(bell-style)p +Ft(\).)150 1525 y Fs(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p +Fi(x)11 b Fs(,)29 b(...)o(\))630 1634 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 1744 y(corresp)s(onding) g(upp)s(ercase)h(c)m(haracter.)150 1900 y Fs(prefix-meta)d(\(ESC\))630 @@ -15992,11 +16121,11 @@ Fs(*)p Ft(')630 4317 y(is)c(app)s(ended)f(b)s(efore)h(pathname)g b(\(M-^\))630 5340 y Ft(P)m(erform)30 b(history)h(expansion)f(on)g(the) h(curren)m(t)f(line.)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 Fs(magic-space)c(\(\))630 -408 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 -518 y([History)31 b(In)m(teraction],)i(page)e(135\).)150 +TeXDict begin 124 129 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(124)150 299 y Fs(magic-space)27 +b(\(\))630 408 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 518 y([History)31 b(In)m(teraction],)i(page)e(135\).)150 686 y Fs(alias-expand-line)26 b(\(\))630 796 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(87\).)150 964 y Fs(history-and-alias-expand)o @@ -16026,7 +16155,7 @@ 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 3114 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(58\).)83 b(The)150 3223 y(Readline)31 b(default)g(is)f +(page)e(57\).)83 b(The)150 3223 y(Readline)31 b(default)g(is)f Fs(emacs)f Ft(mo)s(de.)275 3367 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 3476 y(had)f(t)m(yp)s @@ -16081,7 +16210,7 @@ Fs(-d)p Ft(')g(option)h(is)f(used)g(for)g(\014lename)150 874 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 984 y(Section)31 b(5.2)h([Bash)e(V)-8 -b(ariables],)33 b(page)e(69,)g(for)f(a)h(description)g(of)f +b(ariables],)33 b(page)e(68,)g(for)f(a)h(description)g(of)f Fs(FIGNORE)p Ft(.)275 1121 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 1230 y(ated)h(next.)40 @@ -16115,7 +16244,7 @@ Fs(-F)p Ft(')g(and)f(`)p Fs(-C)p Ft(')h(options)g(is)g(in)m(v)m(ok)m 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 2819 y(ab)s(o)m(v)m(e)34 b(\(see)g(Section)g(5.2)g([Bash)f(V)-8 -b(ariables],)36 b(page)d(69\).)50 b(If)33 b(a)g(shell)g(function)g(is)g +b(ariables],)36 b(page)d(68\).)50 b(If)33 b(a)g(shell)g(function)g(is)g (b)s(eing)f(in)m(v)m(ok)m(ed,)k(the)150 2929 y Fs(COMP_WORDS)j Ft(and)i Fs(COMP_CWORD)d Ft(v)-5 b(ariables)42 b(are)g(also)h(set.)74 b(When)41 b(the)h(function)f(or)h(command)f(is)150 3039 @@ -16167,35 +16296,35 @@ Fs(-S)p Ft(')h(options)g(are)g(added)f(to)i(eac)m(h)150 150 5340 y(as)e(the)f(list)h(of)g(p)s(ossible)f(completions.)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)275 299 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 408 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 -518 y(is)h(attempted.)275 654 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 -764 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 -873 y(other)31 b(actions.)275 1010 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 1119 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 1229 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 -1338 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 1448 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 1557 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 -1667 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 -1803 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 +TeXDict begin 126 131 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(126)275 299 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 408 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 518 y(is)h(attempted.)275 +654 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 764 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 873 y(other)31 b(actions.)275 1010 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 1119 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 +1229 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 1338 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 1448 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 1557 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 1667 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 1803 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 1913 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 2022 y(b)s(olic)40 b(links)g(to)h(directories,)j(sub)5 @@ -16317,8 +16446,8 @@ b(the)c(`)p Fs(-P)p Ft(')h(and)e(`)p Fs(-S)p Ft(')h(options\))630 (completion)g(if)f(the)g(compsp)s(ec)1590 5340 y(generates)32 b(no)e(matc)m(hes.)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)1110 299 y Fs(filenames)1590 +TeXDict begin 128 133 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(128)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 @@ -16365,11 +16494,11 @@ 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 4743 y Fs(helptopic)1590 4853 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 4963 y(tion)31 -b(4.2)g([Bash)g(Builtins],)g(page)g(48\).)1110 5121 y +b(4.2)g([Bash)g(Builtins],)g(page)g(47\).)1110 5121 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 5230 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 5340 y(V)-8 b(ariables],)32 b(page)f(69\).)p +([Bash)1590 5340 y(V)-8 b(ariables],)32 b(page)f(68\).)p eop end %%Page: 129 135 TeXDict begin 129 134 bop 150 -116 a Ft(Chapter)30 b(8:)41 @@ -16385,10 +16514,10 @@ 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 1081 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 1190 y(\(see)g(Section)h(4.3.1)g([The)e(Set)g -(Builtin],)i(page)f(58\).)1110 1358 y Fs(shopt)240 b +(Builtin],)i(page)f(57\).)1110 1358 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 1468 y(\(see)31 b(Section)h(4.2)f([Bash)g -(Builtins],)g(page)g(48\).)1110 1636 y Fs(signal)192 +(Builtins],)g(page)g(47\).)1110 1636 y Fs(signal)192 b Ft(Signal)31 b(names.)1110 1804 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 1972 y Fs(user)288 b Ft(User)30 b(names.)41 @@ -16430,13 +16559,13 @@ b(delimiters,)i(and)e(eac)m(h)h(resultan)m(t)g(w)m(ord)e(is)h (matc)m(h)i(the)1110 5340 y(w)m(ord)f(b)s(eing)g(completed.)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)630 299 y Fs(-X)f Fi(filterpat)1110 -408 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 -518 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 628 y(and)d(argumen)m(ts,)i(and)e -(eac)m(h)i(completion)g(matc)m(hing)g Fq(\014lterpat)h +TeXDict begin 130 135 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(130)630 299 y Fs(-X)30 +b Fi(filterpat)1110 408 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 518 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 628 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 737 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 847 y(case,)i(an)m(y)e @@ -16501,10 +16630,10 @@ Ft(and)j Fs(compgen)e Ft(builtins)h(to)i(do)f(m)m(uc)m(h)g(of)g(the)h b(\(see)h(Section)g(3.5.2)h([Tilde)e(Expansion],)i(page)e(21\),)k (searc)m(hing)d(directories)g(in)f Fq($CDP)-8 b(A)g(TH)10 b Ft(,)150 4902 y(whic)m(h)21 b(is)h(describ)s(ed)e(ab)s(o)m(v)m(e)j -(\(see)f(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)j(page)e(41\),)j +(\(see)f(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)j(page)e(40\),)j (and)c(basic)h(supp)s(ort)150 5011 y(for)31 b(the)h Fs(cdable_vars)d Ft(shell)i(option)h(\(see)h(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],) -i(page)f(62\).)46 b Fs(_comp_)150 5121 y(cd)30 b Ft(mo)s(di\014es)g +i(page)f(61\).)46 b Fs(_comp_)150 5121 y(cd)30 b Ft(mo)s(di\014es)g (the)h(v)-5 b(alue)31 b(of)g Fq(IFS)36 b Ft(so)31 b(that)g(it)g(con)m (tains)h(only)f(a)g(newline)g(to)h(accommo)s(date)g(\014le)f(names)150 5230 y(con)m(taining)i(spaces)g(and)e(tabs)h({)g Fs(compgen)e @@ -16552,9 +16681,9 @@ y(else)772 3148 y(IFS=$'\\n')772 3258 y(_skipdot=false)772 (-eq)k(0)g(]];)g(then)772 5230 y(COMPREPLY=\()e($\(compgen)g(-v)i(--)g ("$cur"\))f(\))581 5340 y(fi)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)581 408 y Fs(return)46 b(0)390 -518 y(})275 653 y Ft(W)-8 b(e)31 b(install)g(the)g(completion)h +TeXDict begin 132 137 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(132)581 408 y Fs(return)46 +b(0)390 518 y(})275 653 y Ft(W)-8 b(e)31 b(install)g(the)g(completion)h (function)e(using)f(the)i(`)p Fs(-F)p Ft(')f(option)h(to)g Fs(complete)p Ft(:)390 787 y Fs(#)47 b(Tell)g(readline)f(to)h(quote)f (appropriate)f(and)i(append)f(slashes)g(to)h(directories;)390 @@ -16621,7 +16750,7 @@ y Fr(9.1)68 b(Bash)45 b(History)h(F)-11 b(acilities)150 1159 y Ft(When)40 b(the)h(`)p Fs(-o)30 b(history)p Ft(')38 b(option)j(to)g(the)g Fs(set)e Ft(builtin)h(is)h(enabled)f(\(see)h (Section)g(4.3.1)i([The)d(Set)150 1269 y(Builtin],)32 -b(page)g(58\),)h(the)e(shell)h(pro)m(vides)f(access)h(to)g(the)f +b(page)g(57\),)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 1378 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 @@ -16648,7 +16777,7 @@ h Fs($HISTSIZE)c Ft(lines)150 2393 y(are)35 b(copied)g(from)g(the)g (history)f(list)i(to)f(the)g(\014le)g(named)f(b)m(y)h Fs($HISTFILE)p Ft(.)51 b(If)35 b(the)g Fs(histappend)d Ft(shell)150 2502 y(option)26 b(is)g(set)g(\(see)h(Section)f(4.2)h -([Bash)f(Builtins],)h(page)g(48\),)h(the)e(lines)g(are)g(app)s(ended)e +([Bash)f(Builtins],)h(page)g(47\),)h(the)e(lines)g(are)g(app)s(ended)e (to)i(the)g(history)150 2612 y(\014le,)36 b(otherwise)f(the)g(history)f (\014le)h(is)f(o)m(v)m(erwritten.)55 b(If)34 b Fs(HISTFILE)e Ft(is)j(unset,)g(or)g(if)f(the)h(history)f(\014le)h(is)150 @@ -16693,20 +16822,21 @@ 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 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 4779 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(48,)h(for)e(a)h(description)f(of)h +(Builtins],)g(page)g(47,)h(for)e(a)h(description)f(of)h Fs(shopt)p Ft(.)150 5016 y Fr(9.2)68 b(Bash)45 b(History)h(Builtins)150 5176 y Ft(Bash)31 b(pro)m(vides)f(t)m(w)m(o)i(builtin)e(commands)g (whic)m(h)g(manipulate)g(the)h(history)f(list)h(and)f(history)g (\014le.)150 5340 y Fs(fc)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)870 299 y Fs(fc)47 b([-e)g Fi(ename)11 -b Fs(])46 b([-lnr])g([)p Fi(first)11 b Fs(])45 b([)p -Fi(last)11 b Fs(])870 408 y(fc)47 b(-s)g([)p Fi(pat)11 -b Fs(=)p Fi(rep)g Fs(])45 b([)p Fi(command)11 b Fs(])630 -557 y Ft(The)22 b(\014rst)g(form)f(selects)j(a)f(range)g(of)f(commands) -g(from)g Fq(\014rst)i Ft(to)f Fq(last)i Ft(from)d(the)h(history)f(list) -630 667 y(and)i(displa)m(ys)h(or)g(edits)h(and)e(re-executes)j(them.)39 +TeXDict begin 134 139 bop 150 -116 a Ft(Chapter)30 b(9:)41 +b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(134)870 +299 y Fs(fc)47 b([-e)g Fi(ename)11 b Fs(])46 b([-lnr])g([)p +Fi(first)11 b Fs(])45 b([)p Fi(last)11 b Fs(])870 408 +y(fc)47 b(-s)g([)p Fi(pat)11 b Fs(=)p Fi(rep)g Fs(])45 +b([)p Fi(command)11 b Fs(])630 557 y Ft(The)22 b(\014rst)g(form)f +(selects)j(a)f(range)g(of)f(commands)g(from)g Fq(\014rst)i +Ft(to)f Fq(last)i Ft(from)d(the)h(history)f(list)630 +667 y(and)i(displa)m(ys)h(or)g(edits)h(and)e(re-executes)j(them.)39 b(Both)25 b Fq(\014rst)h Ft(and)f Fq(last)j Ft(ma)m(y)d(b)s(e)g(sp)s (eci\014ed)630 776 y(as)31 b(a)g(string)f(\(to)i(lo)s(cate)h(the)d (most)h(recen)m(t)h(command)f(b)s(eginning)e(with)i(that)g(string\))g @@ -16831,7 +16961,7 @@ 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 3768 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 -3877 y(page)32 b(48\))h(ma)m(y)f(b)s(e)f(used)g(to)i(tailor)g(the)e(b)s +3877 y(page)32 b(47\))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 3987 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 @@ -16856,25 +16986,26 @@ y(Readline.)275 5011 y(The)33 b(shell)h(allo)m(ws)h(con)m(trol)h(of)e 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(69\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g +5230 y(page)32 b(68\).)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: 136 142 -TeXDict begin 136 141 bop 150 -116 a Ft(136)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fj(9.3.1)63 b(Ev)m(en)m(t)39 -b(Designators)150 446 y Ft(An)32 b(ev)m(en)m(t)j(designator)e(is)g(a)g -(reference)g(to)h(a)f(command)f(line)h(en)m(try)g(in)g(the)g(history)g -(list.)48 b(Unless)33 b(the)150 555 y(reference)e(is)f(absolute,)i(ev)m -(en)m(ts)f(are)g(relativ)m(e)i(to)e(the)f(curren)m(t)g(p)s(osition)h -(in)f(the)h(history)f(list.)150 712 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 822 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 931 y Ft(builtin\).)150 1088 y Fs(!)p Fi(n)384 -b Ft(Refer)30 b(to)i(command)e(line)g Fq(n)p Ft(.)150 -1245 y Fs(!-)p Fi(n)336 b Ft(Refer)30 b(to)i(the)e(command)g -Fq(n)g Ft(lines)h(bac)m(k.)150 1401 y Fs(!!)384 b Ft(Refer)30 +TeXDict begin 136 141 bop 150 -116 a Ft(Chapter)30 b(9:)41 +b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(136)150 +299 y Fj(9.3.1)63 b(Ev)m(en)m(t)39 b(Designators)150 +446 y Ft(An)32 b(ev)m(en)m(t)j(designator)e(is)g(a)g(reference)g(to)h +(a)f(command)f(line)h(en)m(try)g(in)g(the)g(history)g(list.)48 +b(Unless)33 b(the)150 555 y(reference)e(is)f(absolute,)i(ev)m(en)m(ts)f +(are)g(relativ)m(e)i(to)e(the)f(curren)m(t)g(p)s(osition)h(in)f(the)h +(history)f(list.)150 712 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 822 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 +931 y Ft(builtin\).)150 1088 y Fs(!)p Fi(n)384 b Ft(Refer)30 +b(to)i(command)e(line)g Fq(n)p Ft(.)150 1245 y Fs(!-)p +Fi(n)336 b Ft(Refer)30 b(to)i(the)e(command)g Fq(n)g +Ft(lines)h(bac)m(k.)150 1401 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 1558 y Fs(!)p Fi(string)144 b Ft(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g @@ -16982,10 +17113,8 @@ Fs(&)p Ft('.)150 4351 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: 138 144 -TeXDict begin 138 143 bop eop end -%%Page: 139 145 -TeXDict begin 139 144 bop 150 -116 a Ft(Chapter)30 b(10:)41 -b(Installing)31 b(Bash)2356 b(139)150 299 y Fo(10)80 +TeXDict begin 138 143 bop 150 -116 a Ft(Chapter)30 b(10:)41 +b(Installing)31 b(Bash)2356 b(138)150 299 y Fo(10)80 b(Installing)52 b(Bash)150 556 y Ft(This)31 b(c)m(hapter)h(pro)m(vides) g(basic)g(instructions)f(for)g(installing)i(Bash)f(on)f(the)h(v)-5 b(arious)31 b(supp)s(orted)f(plat-)150 665 y(forms.)40 @@ -17051,10 +17180,10 @@ g(Bash,)k(please)c(try)e(to)i(\014gure)e(out)h(ho)m(w)150 (to)h(do)e(them,)55 b(and)49 b(mail)h(di\013s)f(or)h(instructions)f(to) 150 4617 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 -4760 y(The)24 b(\014le)i(`)p Fs(configure.in)p Ft(')c(is)k(used)e(to)j +4760 y(The)24 b(\014le)i(`)p Fs(configure.ac)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 4869 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 +Fs(configure.ac)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 4979 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 @@ -17066,19 +17195,19 @@ 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: 140 146 -TeXDict begin 140 145 bop 150 -116 a Ft(140)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fr(10.2)68 b(Compilers)46 -b(and)f(Options)150 458 y Ft(Some)28 b(systems)h(require)f(un)m(usual)f -(options)i(for)f(compilation)i(or)f(linking)f(that)h(the)g -Fs(configure)d Ft(script)150 568 y(do)s(es)32 b(not)g(kno)m(w)g(ab)s -(out.)44 b(Y)-8 b(ou)33 b(can)f(giv)m(e)h Fs(configure)d -Ft(initial)j(v)-5 b(alues)32 b(for)g(v)-5 b(ariables)32 -b(b)m(y)g(setting)h(them)150 677 y(in)k(the)g(en)m(vironmen)m(t.)62 -b(Using)38 b(a)f(Bourne-compatible)i(shell,)g(y)m(ou)f(can)g(do)f(that) -h(on)f(the)g(command)150 787 y(line)31 b(lik)m(e)g(this:)390 -920 y Fs(CC=c89)46 b(CFLAGS=-O2)f(LIBS=-lposix)g(./configure)275 -1053 y Ft(On)29 b(systems)h(that)h(ha)m(v)m(e)h(the)f +%%Page: 139 145 +TeXDict begin 139 144 bop 150 -116 a Ft(Chapter)30 b(10:)41 +b(Installing)31 b(Bash)2356 b(139)150 299 y Fr(10.2)68 +b(Compilers)46 b(and)f(Options)150 458 y Ft(Some)28 b(systems)h +(require)f(un)m(usual)f(options)i(for)f(compilation)i(or)f(linking)f +(that)h(the)g Fs(configure)d Ft(script)150 568 y(do)s(es)32 +b(not)g(kno)m(w)g(ab)s(out.)44 b(Y)-8 b(ou)33 b(can)f(giv)m(e)h +Fs(configure)d Ft(initial)j(v)-5 b(alues)32 b(for)g(v)-5 +b(ariables)32 b(b)m(y)g(setting)h(them)150 677 y(in)k(the)g(en)m +(vironmen)m(t.)62 b(Using)38 b(a)f(Bourne-compatible)i(shell,)g(y)m(ou) +f(can)g(do)f(that)h(on)f(the)g(command)150 787 y(line)31 +b(lik)m(e)g(this:)390 920 y Fs(CC=c89)46 b(CFLAGS=-O2)f(LIBS=-lposix)g +(./configure)275 1053 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 1186 y Fs(env)47 b(CPPFLAGS=-I/usr/local/in)o(clud)o(e)42 b(LDFLAGS=-s)j(./configure)275 1318 y Ft(The)29 b(con\014guration)i @@ -17152,9 +17281,9 @@ b Fs(configure)d Ft(can)i(\014gure)g(that)g(out,)150 5340 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(')p eop end -%%Page: 141 147 -TeXDict begin 141 146 bop 150 -116 a Ft(Chapter)30 b(10:)41 -b(Installing)31 b(Bash)2356 b(141)150 299 y(option.)39 +%%Page: 140 146 +TeXDict begin 140 145 bop 150 -116 a Ft(Chapter)30 b(10:)41 +b(Installing)31 b(Bash)2356 b(140)150 299 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 408 y(name)30 @@ -17224,9 +17353,9 @@ Fs(lib/malloc)p Ft('.)39 b(This)30 b(is)h(not)g(the)630 5340 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)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)630 299 y(from)h(the)h(4.2)g +%%Page: 141 147 +TeXDict begin 141 146 bop 150 -116 a Ft(Chapter)30 b(10:)41 +b(Installing)31 b(Bash)2356 b(141)630 299 y(from)32 b(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 408 y(eac)m(h)g(allo)s(cation.)48 b(This)31 b(option)i(is)f(enabled)g @@ -17234,240 +17363,245 @@ Ft(is)i(v)m(ery)f(fast,)i(but)e(w)m(astes)h(some)g(space)g(on)630 (tains)i(a)630 518 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 628 y(option)j(automatically)i(for)d(a)h(n)m(um) -m(b)s(er)e(of)i(systems.)150 798 y Fs(--with-curses)630 -907 y Ft(Use)h(the)h(curses)e(library)h(instead)g(of)h(the)f(termcap)g +m(b)s(er)e(of)i(systems.)150 789 y Fs(--with-curses)630 +899 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 -1017 y(if)f(y)m(our)h(system)f(has)g(an)h(inadequate)g(or)f(incomplete) -i(termcap)e(database.)150 1187 y Fs(--with-gnu-malloc)630 -1297 y Ft(A)g(synon)m(ym)g(for)g Fs(--with-bash-malloc)p -Ft(.)150 1467 y Fs(--with-installed-readlin)o(e[=)p Fi(P)o(REFI)o(X)11 -b Fs(])630 1576 y Ft(De\014ne)26 b(this)f(to)h(mak)m(e)h(Bash)f(link)f +1008 y(if)f(y)m(our)h(system)f(has)g(an)h(inadequate)g(or)f(incomplete) +i(termcap)e(database.)150 1170 y Fs(--with-gnu-malloc)630 +1279 y Ft(A)g(synon)m(ym)g(for)g Fs(--with-bash-malloc)p +Ft(.)150 1441 y Fs(--with-installed-readlin)o(e[=)p Fi(P)o(REFI)o(X)11 +b Fs(])630 1550 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 1686 y(than)38 b(the)h(v)m(ersion)g(in)g(`)p Fs(lib/readline)p +630 1660 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 -1796 y(later)29 b(v)m(ersions.)40 b(If)28 b Fq(PREFIX)37 +1769 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 1905 y(the)c(mak)m(e)g(v)-5 +Ft(uses)h(the)h(v)-5 b(alues)29 b(of)630 1879 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 -2015 y Ft(b)m(y)32 b(default,)g(to)h(\014nd)d(the)i(installed)h(v)m +1989 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 -2124 y(system)j(include)f(and)g(library)g(directories.)54 +2098 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 2234 y(v)m(ersion)k(in)f(`)p Fs(lib/readline)p +f(the)630 2208 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 2344 y Ft(treats)27 +h(v)-5 b(alue,)39 b Fs(configure)630 2317 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 2453 y(in)34 +(installed)h(v)m(ersion)g(of)f(Readline)630 2427 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 -2563 y(library)c(in)g Fq(PREFIX)9 b Ft(/)p Fs(lib)p Ft(\).)150 -2733 y Fs(--with-purify)630 2843 y Ft(De\014ne)23 b(this)g(to)h(use)f +2536 y(library)c(in)g Fq(PREFIX)9 b Ft(/)p Fs(lib)p Ft(\).)150 +2698 y Fs(--with-purify)630 2807 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 3013 y Fs(--enable-minimal-config)630 -3122 y Ft(This)e(pro)s(duces)f(a)i(shell)g(with)f(minimal)h(features,)h +(Rational)i(Soft)m(w)m(are.)150 2969 y Fs(--enable-minimal-config)630 +3078 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 -3298 y(There)g(are)i(sev)m(eral)g(`)p Fs(--enable-)p +3241 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 3407 y(than)k(c)m(hanging)h(run-time)f -(features.)150 3583 y Fs(--enable-largefile)630 3693 +(link)m(ed,)j(rather)150 3350 y(than)k(c)m(hanging)h(run-time)f +(features.)150 3513 y Fs(--enable-largefile)630 3622 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 3802 +Fs(http://www.sas.com/standar)o(ds/l)o(arge)o(_)630 3732 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 3912 y(options)45 +(system)f(requires)g(sp)s(ecial)g(compiler)630 3842 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 4021 y(default,)31 +b(This)44 b(is)g(enabled)g(b)m(y)630 3951 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 4191 y Fs(--enable-profiling)630 4301 +(supp)s(ort.)150 4113 y Fs(--enable-profiling)630 4222 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 -4411 y(b)m(y)g Fs(gprof)f Ft(eac)m(h)j(time)f(it)g(is)f(executed.)150 -4581 y Fs(--enable-static-link)630 4690 y Ft(This)37 +4332 y(b)m(y)g Fs(gprof)f Ft(eac)m(h)j(time)f(it)g(is)f(executed.)150 +4493 y Fs(--enable-static-link)630 4603 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 4800 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 4976 +b(This)37 b(could)h(b)s(e)630 4712 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 4875 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 -5085 y(is)h(pro)s(cessed)g(\014rst,)g(so)h(individual)f(options)g(ma)m +4984 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 Fi(feature)11 -b Ft('.)275 5230 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 5340 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.)p eop end -%%Page: 143 149 -TeXDict begin 143 148 bop 150 -116 a Ft(Chapter)30 b(10:)41 -b(Installing)31 b(Bash)2356 b(143)150 299 y Fs(--enable-alias)630 +b Ft('.)275 5121 y(All)41 b(of)g(the)g(follo)m(wing)i(options)e(except) +h(for)f(`)p Fs(disabled-builtins)p Ft(',)e(`)p Fs(directpand-default)p +Ft(',)150 5230 y(and)45 b(`)p Fs(xpg-echo-default)p Ft(')c(are)k +(enabled)h(b)m(y)f(default,)k(unless)44 b(the)i(op)s(erating)f(system)h +(do)s(es)f(not)150 5340 y(pro)m(vide)30 b(the)h(necessary)g(supp)s +(ort.)p eop end +%%Page: 142 148 +TeXDict begin 142 147 bop 150 -116 a Ft(Chapter)30 b(10:)41 +b(Installing)31 b(Bash)2356 b(142)150 299 y Fs(--enable-alias)630 408 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 -518 y(tion)31 b(6.6)g([Aliases],)i(page)e(87\).)150 692 -y Fs(--enable-arith-for-comma)o(nd)630 801 y Ft(Include)21 +518 y(tion)31 b(6.6)g([Aliases],)i(page)e(87\).)150 682 +y Fs(--enable-arith-for-comma)o(nd)630 792 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 -911 y(C)30 b(language)i Fs(for)d Ft(statemen)m(t)j(\(see)g(Section)f +902 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 -1084 y Fs(--enable-array-variables)630 1194 y Ft(Include)h(supp)s(ort)g +1066 y Fs(--enable-array-variables)630 1176 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 1303 y(ra)m(ys],)c(page)g(88\).)150 -1477 y Fs(--enable-bang-history)630 1587 y Ft(Include)36 +b(\(see)h(Section)g(6.7)h([Ar-)630 1285 y(ra)m(ys],)c(page)g(88\).)150 +1450 y Fs(--enable-bang-history)630 1559 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 1696 y(teraction],)c(page)e -(135\).)150 1870 y Fs(--enable-brace-expansion)630 1979 +(\(see)h(Section)g(9.3)h([History)f(In-)630 1669 y(teraction],)c(page)e +(135\).)150 1833 y Fs(--enable-brace-expansion)630 1943 y Ft(Include)40 b Fs(csh)p Ft(-lik)m(e)h(brace)f(expansion)g(\()h Fs(b{a,b}c)d Fp(7!)i Fs(bac)30 b(bbc)39 b Ft(\).)71 b(See)40 -b(Section)h(3.5.1)630 2089 y([Brace)32 b(Expansion],)e(page)h(21,)h -(for)e(a)g(complete)i(description.)150 2262 y Fs -(--enable-casemod-attribu)o(tes)630 2372 y Ft(Include)37 +b(Section)h(3.5.1)630 2052 y([Brace)32 b(Expansion],)e(page)h(21,)h +(for)e(a)g(complete)i(description.)150 2217 y Fs +(--enable-casemod-attribu)o(tes)630 2326 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 2482 y(signmen)m(t)29 +Fs(declare)e Ft(builtin)i(and)f(as-)630 2436 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 -2591 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 2765 y Fs -(--enable-casemod-expansi)o(on)630 2874 y Ft(Include)h(supp)s(ort)e +2545 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 2710 y Fs +(--enable-casemod-expansi)o(on)630 2819 y Ft(Include)h(supp)s(ort)e (for)i(case-mo)s(difying)i(w)m(ord)e(expansions.)150 -3048 y Fs(--enable-command-timing)630 3157 y Ft(Include)43 +2984 y Fs(--enable-command-timing)630 3093 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 3267 y(timing)37 +(w)m(ord)f(and)g(for)h(displa)m(ying)630 3203 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 -3377 y(page)24 b(8\).)39 b(This)23 b(allo)m(ws)h(pip)s(elines)f(as)h(w) +3313 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 3550 y Fs(--enable-cond-command)630 3660 y Ft(Include)33 +150 3477 y Fs(--enable-cond-command)630 3587 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 3769 y(tional)c -(Constructs],)e(page)h(10\).)150 3943 y Fs(--enable-cond-regexp)630 -4052 y Ft(Include)k(supp)s(ort)f(for)i(matc)m(hing)h +b(\(see)34 b(Section)h(3.2.4.2)h([Condi-)630 3696 y(tional)c +(Constructs],)e(page)h(10\).)150 3861 y Fs(--enable-cond-regexp)630 +3970 y Ft(Include)k(supp)s(ort)f(for)i(matc)m(hing)h Fl(posix)e Ft(regular)h(expressions)g(using)f(the)h(`)p -Fs(=~)p Ft(')g(binary)630 4162 y(op)s(erator)25 b(in)f(the)h +Fs(=~)p Ft(')g(binary)630 4080 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 4271 y(structs],)31 b(page)g(10\).)150 -4445 y Fs(--enable-coprocesses)630 4555 y Ft(Include)23 +([Conditional)e(Con-)630 4189 y(structs],)31 b(page)g(10\).)150 +4354 y Fs(--enable-coprocesses)630 4463 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 -4664 y([Pip)s(elines],)31 b(page)g(8\).)150 4838 y Fs -(--enable-debugger)630 4947 y Ft(Include)f(supp)s(ort)e(for)i(the)h +4573 y([Pip)s(elines],)31 b(page)g(8\).)150 4737 y Fs +(--enable-debugger)630 4847 y Ft(Include)f(supp)s(ort)e(for)i(the)h (bash)f(debugger)g(\(distributed)g(separately\).)150 -5121 y Fs(--enable-directory-stack)630 5230 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 +5011 y Fs(--enable-direxpand-defau)o(lt)630 5121 y Ft(Cause)53 +b(the)g Fs(direxpand)d Ft(shell)j(option)h(\(see)g(Section)f(4.3.2)i +([The)e(Shopt)f(Builtin],)630 5230 y(page)29 b(61\))g(to)f(b)s(e)f +(enabled)h(b)m(y)g(default)g(when)e(the)i(shell)g(starts.)41 +b(It)27 b(is)h(normally)g(disabled)630 5340 y(b)m(y)i(default.)p +eop end +%%Page: 143 149 +TeXDict begin 143 148 bop 150 -116 a Ft(Chapter)30 b(10:)41 +b(Installing)31 b(Bash)2356 b(143)150 299 y Fs +(--enable-directory-stack)630 408 y Ft(Include)33 b(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 -5340 y Ft(builtins)d(\(see)h(Section)g(6.8)h([The)e(Directory)i(Stac)m -(k],)g(page)f(89\).)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)150 299 y Fs(--enable-disabled-builti)o(ns)630 -408 y Ft(Allo)m(w)40 b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m +518 y Ft(builtins)d(\(see)h(Section)g(6.8)h([The)e(Directory)i(Stac)m +(k],)g(page)f(90\).)150 673 y Fs(--enable-disabled-builti)o(ns)630 +783 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 518 y(b)s(een)31 b(disabled)g(using)g(`)p +Fs(xxx)e Ft(has)630 892 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(48,)630 628 y(for)e(details)i(of)e(the)h +(Builtins],)i(page)f(47,)630 1002 y(for)e(details)i(of)e(the)h Fs(builtin)d Ft(and)i Fs(enable)e Ft(builtin)i(commands.)150 -783 y Fs(--enable-dparen-arithmet)o(ic)630 892 y Ft(Include)42 +1157 y Fs(--enable-dparen-arithmet)o(ic)630 1267 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 1002 y(Constructs],)30 -b(page)h(10\).)150 1157 y Fs(--enable-extended-glob)630 -1267 y Ft(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h +(Section)f(3.2.4.2)i([Conditional)630 1377 y(Constructs],)30 +b(page)h(10\).)150 1532 y Fs(--enable-extended-glob)630 +1641 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 -1377 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i -(page)e(29.)150 1532 y Fs(--enable-extended-glob-d)o(efau)o(lt)630 -1641 y Ft(Set)40 b(the)g(default)g(v)-5 b(alue)41 b(of)f(the)g +1751 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i +(page)e(29.)150 1906 y Fs(--enable-extended-glob-d)o(efau)o(lt)630 +2016 y Ft(Set)40 b(the)g(default)g(v)-5 b(alue)41 b(of)f(the)g Fq(extglob)j Ft(shell)d(option)g(describ)s(ed)f(ab)s(o)m(v)m(e)i(under) -d(Sec-)630 1751 y(tion)31 b(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g -(62)g(to)h(b)s(e)d(enabled.)150 1906 y Fs(--enable-help-builtin)630 -2016 y Ft(Include)24 b(the)h Fs(help)f Ft(builtin,)h(whic)m(h)g(displa) +d(Sec-)630 2125 y(tion)31 b(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g +(61)g(to)h(b)s(e)d(enabled.)150 2281 y Fs(--enable-help-builtin)630 +2390 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 2125 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f -(48\).)150 2281 y Fs(--enable-history)630 2390 y Ft(Include)e(command)g +b(\(see)630 2500 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f +(47\).)150 2655 y Fs(--enable-history)630 2765 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 2500 y(tion)h(9.1)g([Bash)g +Ft(builtin)j(commands)f(\(see)h(Sec-)630 2874 y(tion)h(9.1)g([Bash)g (History)g(F)-8 b(acilities],)34 b(page)d(133\).)150 -2655 y Fs(--enable-job-control)630 2765 y Ft(This)e(enables)i(the)f +3029 y Fs(--enable-job-control)630 3139 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(97\),)h(if)630 2874 y(the)f(op)s(erating)f(system)h -(supp)s(orts)d(them.)150 3029 y Fs(--enable-multibyte)630 -3139 y Ft(This)h(enables)i(supp)s(ort)d(for)i(m)m(ultib)m(yte)h(c)m +(trol],)h(page)g(97\),)h(if)630 3249 y(the)f(op)s(erating)f(system)h +(supp)s(orts)d(them.)150 3404 y Fs(--enable-multibyte)630 +3513 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 -3249 y(the)h(necessary)f(supp)s(ort.)150 3404 y Fs -(--enable-net-redirection)o(s)630 3513 y Ft(This)21 b(enables)h(the)g +3623 y(the)h(necessary)f(supp)s(ort.)150 3778 y Fs +(--enable-net-redirection)o(s)630 3888 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 Fi(host)11 b Fs(/)p Fi(port)630 3623 y +Fs(/dev/tcp/)p Fi(host)11 b Fs(/)p Fi(port)630 3998 y Ft(and)29 b Fs(/dev/udp/)p Fi(host)11 b Fs(/)p Fi(port)34 b Ft(when)28 b(used)g(in)h(redirections)h(\(see)g(Section)g(3.6)g -([Redirec-)630 3733 y(tions],)h(page)g(31\).)150 3888 -y Fs(--enable-process-substit)o(utio)o(n)630 3998 y Ft(This)49 +([Redirec-)630 4107 y(tions],)h(page)g(31\).)150 4262 +y Fs(--enable-process-substit)o(utio)o(n)630 4372 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 4107 y(page)31 b(28\))h(if)e(the)h(op)s +s(cess)e(Substitution],)630 4482 y(page)31 b(28\))h(if)e(the)h(op)s (erating)f(system)h(pro)m(vides)f(the)h(necessary)g(supp)s(ort.)150 -4262 y Fs(--enable-progcomp)630 4372 y Ft(Enable)d(the)g(programmable)g +4637 y Fs(--enable-progcomp)630 4746 y Ft(Enable)d(the)g(programmable)g (completion)i(facilities)g(\(see)f(Section)g(8.6)g([Programmable)630 -4482 y(Completion],)i(page)h(124\).)42 b(If)30 b(Readline)h(is)f(not)h +4856 y(Completion],)i(page)h(124\).)42 b(If)30 b(Readline)h(is)f(not)h (enabled,)f(this)h(option)g(has)f(no)g(e\013ect.)150 -4637 y Fs(--enable-prompt-string-d)o(ecod)o(ing)630 4746 +5011 y Fs(--enable-prompt-string-d)o(ecod)o(ing)630 5121 y Ft(T)-8 b(urn)30 b(on)i(the)f(in)m(terpretation)i(of)f(a)g(n)m(um)m (b)s(er)e(of)i(bac)m(kslash-escap)s(ed)g(c)m(haracters)i(in)d(the)630 -4856 y Fs($PS1)p Ft(,)36 b Fs($PS2)p Ft(,)g Fs($PS3)p +5230 y Fs($PS1)p Ft(,)36 b Fs($PS2)p Ft(,)g Fs($PS3)p Ft(,)h(and)e Fs($PS4)f Ft(prompt)h(strings.)57 b(See)36 -b(Section)h(6.9)g([Con)m(trolling)g(the)630 4966 y(Prompt],)30 +b(Section)h(6.9)g([Con)m(trolling)g(the)630 5340 y(Prompt],)30 b(page)h(91,)h(for)e(a)h(complete)h(list)f(of)f(prompt)g(string)g -(escap)s(e)h(sequences.)150 5121 y Fs(--enable-readline)630 -5230 y Ft(Include)d(supp)s(ort)f(for)h(command-line)h(editing)g(and)f -(history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 5340 +(escap)s(e)h(sequences.)p eop end +%%Page: 144 150 +TeXDict begin 144 149 bop 150 -116 a Ft(Chapter)30 b(10:)41 +b(Installing)31 b(Bash)2356 b(144)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(101\).)p eop end -%%Page: 145 151 -TeXDict begin 145 150 bop 150 -116 a Ft(Chapter)30 b(10:)41 -b(Installing)31 b(Bash)2356 b(145)150 299 y Fs(--enable-restricted)630 -408 y Ft(Include)41 b(supp)s(ort)f(for)i(a)g Fq(restricted)g(shell)p +(Editing],)h(page)g(101\).)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 -518 y(as)f Fs(rbash)p Ft(,)h(en)m(ters)f(a)g(restricted)h(mo)s(de.)68 +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 -628 y(page)31 b(92,)h(for)e(a)g(description)h(of)f(restricted)h(mo)s -(de.)150 787 y Fs(--enable-select)630 897 y Ft(Include)25 +1006 y(page)31 b(92,)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)25 b(the)h Fs(select)f Ft(comp)s(ound)f(command,)j(whic)m(h)e(allo)m(ws)j -(the)e(generation)h(of)f(simple)630 1006 y(men)m(us)k(\(see)h(Section)g +(the)e(generation)h(of)f(simple)630 1385 y(men)m(us)k(\(see)h(Section)g (3.2.4.2)i([Conditional)e(Constructs],)g(page)g(10\).)150 -1166 y Fs(--enable-separate-helpfi)o(les)630 1275 y Ft(Use)h(external)h +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 1385 y(of)f(storing)f(the)h -(text)g(in)m(ternally)-8 b(.)150 1544 y Fs(--enable-single-help-str)o -(ings)630 1654 y Ft(Store)40 b(the)g(text)h(displa)m(y)m(ed)g(b)m(y)e +(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 1763 y(topic.)54 b(This)33 b(aids)i(in)f(translating)h(the)g +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 1873 y(to)c(disable)g(this)f(if)g(y)m(our)h +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 -2032 y Fs(--enable-strict-posix-de)o(faul)o(t)630 2142 +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 -2252 y(page)31 b(92\).)150 2411 y Fs(--enable-usg-echo-defaul)o(t)630 -2521 y Ft(A)f(synon)m(ym)g(for)g Fs(--enable-xpg-echo-default)p -Ft(.)150 2680 y Fs(--enable-xpg-echo-defaul)o(t)630 2790 +2630 y(page)31 b(93\).)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 -2899 y(requiring)41 b(the)g(`)p Fs(-e)p Ft(')g(option.)73 +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 3009 y(option)26 b(to)g Fs(on)p +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 -3118 y(in)41 b(the)h(Single)g(Unix)f(Sp)s(eci\014cation,)k(v)m(ersion)e +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 -3228 y(page)31 b(48,)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 3387 +3606 y(page)31 b(47,)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 3497 y(are)35 b(not)g(settable)i(from)d +(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 3606 +(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 3716 y(information)c(ab)s(out)f(its)h(e\013ect.)p +(for)g(more)150 4095 y(information)c(ab)s(out)f(its)h(e\013ect.)p eop end -%%Page: 146 152 -TeXDict begin 146 151 bop eop end -%%Page: 147 153 -TeXDict begin 147 152 bop 150 -116 a Ft(App)s(endix)29 -b(A:)h(Rep)s(orting)h(Bugs)2299 b(147)150 299 y Fo(App)t(endix)52 +%%Page: 145 151 +TeXDict begin 145 150 bop 150 -116 a Ft(App)s(endix)29 +b(A:)h(Rep)s(orting)h(Bugs)2299 b(145)150 299 y Fo(App)t(endix)52 b(A)81 b(Rep)t(orting)53 b(Bugs)150 533 y Ft(Please)33 b(rep)s(ort)e(all)h(bugs)f(y)m(ou)h(\014nd)e(in)i(Bash.)44 b(But)32 b(\014rst,)g(y)m(ou)g(should)e(mak)m(e)j(sure)e(that)h(it)g @@ -17495,13 +17629,11 @@ 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.ramey@case.edu)p Ft(.)p eop end -%%Page: 148 154 -TeXDict begin 148 153 bop eop end -%%Page: 149 155 -TeXDict begin 149 154 bop 150 -116 a Ft(App)s(endix)29 +(ual)f(to)h Fs(bug-bash@gnu.org)p Ft(.)p eop end +%%Page: 146 152 +TeXDict begin 146 151 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(149)150 141 y Fo(App)t(endix)58 +b(The)f(Bourne)g(Shell)1258 b(146)150 141 y Fo(App)t(endix)58 b(B)81 b(Ma)9 b(jor)54 b(Di\013erences)d(F)-13 b(rom)54 b(The)g(Bourne)1088 299 y(Shell)150 530 y Ft(Bash)26 b(implemen)m(ts)h(essen)m(tially)g(the)g(same)f(grammar,)h(parameter)f @@ -17522,7 +17654,7 @@ Fs(sh)f Ft(included)g(in)h(SVR4.2)h(\(the)f(last)h(v)m(ersion)f(of)g 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(92\).)225 1565 y Fp(\017)60 +(POSIX)g(Mo)s(de],)h(page)g(93\).)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 (79\).)225 1699 y Fp(\017)60 b Ft(Bash)40 b(has)f(command-line)h @@ -17587,10 +17719,11 @@ b Fs(;)30 b Fi(expr3)39 b Fs(\)\))23 b Ft(arithmetic)h(for)e(command,)j 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: 150 156 -TeXDict begin 150 155 bop 150 -116 a Ft(150)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 +%%Page: 147 153 +TeXDict begin 147 152 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(147)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 @@ -17670,129 +17803,134 @@ 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(69,)g(for)f +b(Section)g(5.2)h([Bash)e(V)-8 b(ariables],)33 b(page)e(68,)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(28\).)41 b(This)28 b(closes)h(a)g(longstanding)g(shell)f(securit)m(y)h(hole.)p eop end -%%Page: 151 157 -TeXDict begin 151 156 bop 150 -116 a Ft(App)s(endix)29 +%%Page: 148 154 +TeXDict begin 148 153 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(151)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)t Ft(,)h Fq(equiv)-5 -b(alence)39 b(classes)t Ft(,)h(and)d Fq(collating)j(sym)m(b)s(ols)g -Ft(\(see)f(Section)f(3.5.8)h([Filename)330 518 y(Expansion],)30 -b(page)h(29\).)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(29\).)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(48\).)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(37\).)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(31\).)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(31\).)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 Fi(word)11 b Ft(')26 b(and)j(`)p Fs([n]>&)p -Fi(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(31\).)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(31\).)225 3393 y Fp(\017)60 +b(The)f(Bourne)g(Shell)1258 b(148)225 299 y Fp(\017)60 +b Ft(The)36 b(\014lename)h(expansion)f(brac)m(k)m(et)i(expression)f(co) +s(de)f(uses)g(`)p Fs(!)p Ft(')h(and)f(`)p Fs(^)p Ft(')h(to)g(negate)h +(the)f(set)g(of)330 408 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)f +(brac)m(k)m(ets.)43 b(The)29 b(Bourne)i(shell)f(uses)g(only)h(`)p +Fs(!)p Ft('.)225 536 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 646 y(acter)i(classes)t +Ft(,)h Fq(equiv)-5 b(alence)39 b(classes)t Ft(,)h(and)d +Fq(collating)j(sym)m(b)s(ols)g Ft(\(see)f(Section)f(3.5.8)h([Filename) +330 756 y(Expansion],)30 b(page)h(29\).)225 883 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 +993 y(is)30 b(enabled)h(\(see)g(Section)g(3.5.8.1)i([P)m(attern)f(Matc) +m(hing],)g(page)f(29\).)225 1121 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 1230 y(the)31 b(t)m(w)m(o)g(name)g +(spaces.)225 1358 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 +1468 y(useful)i(recursiv)m(e)g(functions)g(ma)m(y)h(b)s(e)f(written)g +(\(see)i(Section)f(4.2)g([Bash)g(Builtins],)g(page)h(47\).)225 +1596 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 1705 y(functions)36 b(\(see)h(Section)g(3.7.4)h([En)m +(vironmen)m(t],)h(page)e(37\).)60 b(In)35 b Fs(sh)p Ft(,)j(all)f(v)-5 +b(ariable)37 b(assignmen)m(ts)330 1815 y(preceding)30 +b(commands)g(are)h(global)h(unless)d(the)i(command)f(is)h(executed)g +(from)f(the)g(\014le)h(system.)225 1943 y 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 +2052 y(output)30 b(redirection)h(op)s(erators)g(\(see)g(Section)g(3.6)h +([Redirections],)g(page)f(31\).)225 2180 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 2290 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 2399 y(standard)30 b(error)g(to)h(the)f(same)h +(\014le)f(\(see)i(Section)f(3.6)g([Redirections],)h(page)g(31\).)225 +2527 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 2637 y(input)29 +b(to)j(a)e(command.)225 2765 y Fp(\017)60 b Ft(Bash)29 +b(implemen)m(ts)h(the)f(`)p Fs([n]<&)p Fi(word)11 b Ft(')26 +b(and)j(`)p Fs([n]>&)p Fi(word)11 b Ft(')26 b(redirection)k(op)s +(erators,)g(whic)m(h)e(mo)m(v)m(e)330 2874 y(one)j(\014le)f(descriptor) +g(to)h(another.)225 3002 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 3112 y(\(see)31 +b(Section)h(3.6)f([Redirections],)h(page)f(31\).)225 +3240 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 3349 y(rection)e(op)s(erators)g(\(see)g(Section)g(3.6) +h([Redirections],)g(page)f(31\).)225 3477 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(58\).)66 +(\014les)e(with)h(output)f(redi-)330 3587 y(rection)39 +b(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)i(page)e(57\).)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 +3696 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 3824 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(41\))h(eac)m(h)330 -3864 y(tak)m(e)c(`)p Fs(-L)p Ft(')e(and)g(`)p Fs(-P)p +g([Bourne)g(Shell)f(Builtins],)h(page)g(40\))h(eac)m(h)330 +3934 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 +(ph)m(ysical)i(mo)s(des.)225 4061 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 +4171 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(48\).)225 4367 y Fp(\017)60 b Ft(The)35 b Fs(command)e +Ft(builtins)330 4281 y(\(see)f(Section)h(4.2)f([Bash)g(Builtins],)g +(page)g(47\).)225 4408 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(48\).)225 -4618 y Fp(\017)60 b Ft(Individual)23 b(builtins)g(ma)m(y)i(b)s(e)e +(when)g(command)g(lo)s(okup)g(is)330 4518 y(p)s(erformed)29 +b(\(see)i(Section)g(4.2)h([Bash)f(Builtins],)g(page)g(47\).)225 +4646 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(48\).)225 4869 y Fp(\017)60 b Ft(The)26 +Ft(builtin)g(\(see)i(Section)g(4.2)330 4756 y([Bash)31 +b(Builtins],)g(page)g(47\).)225 4883 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 +4993 y(of)35 b(the)f(en)m(vironmen)m(t)h(passed)f(to)h(the)g(executed)g (command,)h(and)d(what)i(the)f(zeroth)h(argumen)m(t)330 -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(41\).)225 5230 +5103 y(to)c(the)g(command)f(is)g(to)h(b)s(e)f(\(see)h(Section)h(4.1)f +([Bourne)f(Shell)h(Builtins],)g(page)g(40\).)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(16\).)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)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 +%%Page: 149 155 +TeXDict begin 149 154 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(149)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(41\).)225 +984 y(Section)i(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(40\).)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(48\).)225 +(\(see)f(Section)g(4.2)g([Bash)330 1230 y(Builtins],)j(page)g(47\).)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(48\).)225 +(4.2)g([Bash)330 1477 y(Builtins],)31 b(page)g(47\).)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(48\))g(will)f(read)g(a)g +(Section)g(4.2)g([Bash)f(Builtins],)h(page)g(47\))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 @@ -17815,23 +17953,23 @@ 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(41\).)225 +(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g(40\).)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(62\),)k(and)39 b(allo)m(ws)i(these)f(options)h(to)f +(Builtin],)k(page)d(61\),)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 (79\).)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(58\).)225 3477 +b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(57\).)225 3477 y Fp(\017)60 b Ft(The)45 b(`)p Fs(-x)p Ft(')g(\(`)p Fs(xtrace)p Ft('\))g(option)h(displa)m(ys)g(commands)f(other)h(than)f(simple)h (commands)f(when)330 3587 y(p)s(erforming)29 b(an)h(execution)i(trace)g -(\(see)f(Section)g(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(58\).)225 +(\(see)f(Section)g(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(57\).)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(41\))g(is)f(sligh)m(tly)h +f(4.1)h([Bourne)f(Shell)g(Builtins],)h(page)g(40\))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 @@ -17842,7 +17980,7 @@ 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(41\))h(allo)m(ws)g(a)e +f(4.1)h([Bourne)e(Shell)g(Builtins],)47 b(page)c(40\))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 @@ -17858,20 +17996,20 @@ Fs(functrace)d Ft(option)j(has)f(b)s(een)g(enabled)g(using)330 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(41\))g(allo)m(ws)g(an)f Fs(ERR)f Ft(pseudo-)330 +(page)e(40\))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: 153 159 -TeXDict begin 153 158 bop 150 -116 a Ft(App)s(endix)29 +%%Page: 150 156 +TeXDict begin 150 155 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(153)330 299 y(are)40 b(executed)g(after)g +b(The)f(Bourne)g(Shell)1258 b(150)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 650 y(The)g Fs(trap)g Ft(builtin)h(\(see)g(Section)h -(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(41\))g(allo)m(ws)g(a)g +(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(40\))g(allo)m(ws)g(a)g Fs(RETURN)330 760 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 869 y @@ -17886,17 +18024,17 @@ g(the)g Fs(shopt)f Ft(builtin.)225 1330 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 1440 y(it)h(\014nds)e(\(see)i(Section)g(4.2)h([Bash)e(Builtins],)i -(page)f(48\).)225 1571 y Fp(\017)60 b Ft(The)34 b(Bash)h +(page)f(47\).)225 1571 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 1681 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 1791 y(Shell)30 b(Builtins],)h(page)h -(41\).)225 1923 y Fp(\017)60 b Ft(Bash)34 b(implemen)m(ts)h(a)g +(40\).)225 1923 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 2032 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(89\).)56 b(Bash)35 +([The)f(Directory)h(Stac)m(k],)i(page)d(90\).)56 b(Bash)35 b(also)330 2142 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 2274 y Fp(\017)60 b Ft(Bash)28 b(in)m(terprets)h(sp)s @@ -17947,27 +18085,29 @@ 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: 154 160 -TeXDict begin 154 159 bop 150 -116 a Ft(154)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 +%%Page: 151 157 +TeXDict begin 151 156 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(151)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 @@ -17980,10 +18120,10 @@ 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: 155 161 -TeXDict begin 155 160 bop 150 -116 a Ft(App)s(endix)29 +%%Page: 152 158 +TeXDict begin 152 157 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(155)150 299 y Fo(App)t(endix)52 b(C)81 b(GNU)54 b(F)-13 +b(152)150 299 y Fo(App)t(endix)52 b(C)81 b(GNU)54 b(F)-13 b(ree)53 b(Do)t(cumen)l(tation)e(License)1359 502 y Ft(V)-8 b(ersion)31 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390 635 y(Cop)m(yrigh)m(t)842 632 y(c)817 635 y Fp(\015)e @@ -18064,10 +18204,11 @@ b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g 5340 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27 b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s (cumen)m(t)g(is)g(released)p eop end -%%Page: 156 162 -TeXDict begin 156 161 bop 150 -116 a Ft(156)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 +%%Page: 153 159 +TeXDict begin 153 158 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(153)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) @@ -18157,10 +18298,10 @@ 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 5189 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h (this)f(License.)199 5340 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)p eop end -%%Page: 157 163 -TeXDict begin 157 162 bop 150 -116 a Ft(App)s(endix)29 +%%Page: 154 160 +TeXDict begin 154 159 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(157)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h +b(154)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h (the)g(Do)s(cumen)m(t)h(in)f(an)m(y)g(medium,)h(either)g(commercially)h (or)330 408 y(noncommercially)-8 b(,)48 b(pro)m(vided)42 b(that)h(this)f(License,)47 b(the)42 b(cop)m(yrigh)m(t)i(notices,)j @@ -18250,21 +18391,21 @@ b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m(ers,)i(if)e 5340 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m (ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8 b(,)p eop end -%%Page: 158 164 -TeXDict begin 158 163 bop 150 -116 a Ft(158)2527 b(Bash)31 -b(Reference)g(Man)m(ual)510 299 y(b)s(e)g(listed)h(in)f(the)g(History)h -(section)g(of)g(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 -b(ma)m(y)g(use)f(the)g(same)h(title)h(as)510 408 y(a)e(previous)f(v)m -(ersion)g(if)h(the)f(original)i(publisher)d(of)h(that)h(v)m(ersion)g -(giv)m(es)h(p)s(ermission.)360 545 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 -655 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 765 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 874 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 1011 y(C.)60 +%%Page: 155 161 +TeXDict begin 155 160 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(155)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g +(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 b(ma)m(y)g(use)f(the)g(same) +h(title)h(as)510 408 y(a)e(previous)f(v)m(ersion)g(if)h(the)f(original) +i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s(ermission.)360 +545 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 655 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 765 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 874 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 1011 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 1121 y(publisher.)355 1258 y(D.)61 b(Preserv)m(e)31 @@ -18332,10 +18473,10 @@ b(arran)m(t)m(y)32 b(Disclaimers.)330 5121 y(If)h(the)g(Mo)s(di\014ed)g (designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e(in)m(v)-5 b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)p eop end -%%Page: 159 165 -TeXDict begin 159 164 bop 150 -116 a Ft(App)s(endix)29 +%%Page: 156 162 +TeXDict begin 156 161 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(159)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5 +b(156)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8 b(ersion's)36 b(license)g(notice.)57 b(These)330 408 y(titles)32 b(m)m(ust)e(b)s(e)g(distinct)h(from)e(an)m(y)i(other)g @@ -18420,18 +18561,18 @@ b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h 5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g (other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330 5340 y(that)d(do)s(cumen)m(t.)p eop end -%%Page: 160 166 -TeXDict begin 160 165 bop 150 -116 a Ft(160)2527 b(Bash)31 -b(Reference)g(Man)m(ual)199 299 y(7.)61 b(A)m(GGREGA)-8 -b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)330 441 y(A)d(compilation)i -(of)e(the)g(Do)s(cumen)m(t)h(or)f(its)g(deriv)-5 b(ativ)m(es)30 -b(with)d(other)i(separate)g(and)e(indep)s(enden)m(t)330 -551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h(on)f(a)g(v)m -(olume)h(of)g(a)f(storage)i(or)e(distribution)g(medium,)g(is)h(called) -330 661 y(an)c(\\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 -770 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 +%%Page: 157 163 +TeXDict begin 157 162 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(157)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h +(W)m(ORKS)330 441 y(A)d(compilation)i(of)e(the)g(Do)s(cumen)m(t)h(or)f +(its)g(deriv)-5 b(ativ)m(es)30 b(with)d(other)i(separate)g(and)e(indep) +s(enden)m(t)330 551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h +(on)f(a)g(v)m(olume)h(of)g(a)f(storage)i(or)e(distribution)g(medium,)g +(is)h(called)330 661 y(an)c(\\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 770 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 880 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 989 y(w)m(orks)30 b(in)g(the)h(aggregate)i(whic)m(h)d(are)h @@ -18508,10 +18649,10 @@ b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g (reinstated,)i(receipt)f(of)f(a)g(cop)m(y)h(of)f(some)h(or)f(all)h(of)f (the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f (an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end -%%Page: 161 167 -TeXDict begin 161 166 bop 150 -116 a Ft(App)s(endix)29 +%%Page: 158 164 +TeXDict begin 158 163 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(161)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE) +b(158)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE) 330 433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8 b(oundation)43 b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g (the)g(GNU)g(F)-8 b(ree)330 543 y(Do)s(cumen)m(tation)34 @@ -18575,84 +18716,84 @@ f(of)g(that)330 2944 y(license)31 b(published)e(b)m(y)h(that)h(same)g g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g (time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is) 330 4005 y(eligible)h(for)e(relicensing.)p eop end -%%Page: 162 168 -TeXDict begin 162 167 bop 150 -116 a Ft(162)2527 b(Bash)31 -b(Reference)g(Man)m(ual)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)150 -458 y Ft(T)-8 b(o)35 b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g -(y)m(ou)f(ha)m(v)m(e)i(written,)g(include)f(a)f(cop)m(y)i(of)f(the)f -(License)h(in)g(the)150 568 y(do)s(cumen)m(t)30 b(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 680 y Fe(Copyright)42 -b(\(C\))79 b Fd(year)88 b(your)40 b(name)9 b Fe(.)468 -767 y(Permission)42 b(is)e(granted)g(to)g(copy,)h(distribute)g(and/or)g -(modify)f(this)g(document)468 854 y(under)h(the)f(terms)g(of)g(the)g -(GNU)g(Free)g(Documentation)i(License,)f(Version)g(1.3)468 -941 y(or)f(any)g(later)g(version)h(published)h(by)d(the)h(Free)g -(Software)h(Foundation;)468 1029 y(with)g(no)e(Invariant)j(Sections,)f -(no)f(Front-Cover)h(Texts,)g(and)f(no)f(Back-Cover)468 -1116 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 1203 y(Free)g(Documentation) -h(License''.)275 1337 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 1447 y(\\with)6 b(.)22 b(.)g(.)12 -b(T)-8 b(exts.")41 b(line)31 b(with)f(this:)547 1559 -y Fe(with)40 b(the)g(Invariant)h(Sections)g(being)g Fd(list)f(their)g -(titles)9 b Fe(,)41 b(with)547 1646 y(the)f(Front-Cover)i(Texts)e -(being)g Fd(list)9 b Fe(,)40 b(and)g(with)g(the)g(Back-Cover)i(Texts) -547 1733 y(being)e Fd(list)9 b Fe(.)275 1868 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 1978 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 2112 -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 -2222 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 2331 y(General)31 b(Public)f(License,)i(to)f(p)s -(ermit)e(their)i(use)f(in)g(free)g(soft)m(w)m(are.)p -eop end -%%Page: 163 169 -TeXDict begin 163 168 bop 150 -116 a Ft(App)s(endix)29 -b(D:)i(Indexes)2623 b(163)150 299 y Fo(App)t(endix)52 +%%Page: 159 165 +TeXDict begin 159 164 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(159)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)150 458 y Ft(T)-8 b(o)35 +b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g(y)m(ou)f(ha)m(v)m(e) +i(written,)g(include)f(a)f(cop)m(y)i(of)f(the)f(License)h(in)g(the)150 +568 y(do)s(cumen)m(t)30 b(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 +680 y Fe(Copyright)42 b(\(C\))79 b Fd(year)88 b(your)40 +b(name)9 b Fe(.)468 767 y(Permission)42 b(is)e(granted)g(to)g(copy,)h +(distribute)g(and/or)g(modify)f(this)g(document)468 854 +y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i +(License,)f(Version)g(1.3)468 941 y(or)f(any)g(later)g(version)h +(published)h(by)d(the)h(Free)g(Software)h(Foundation;)468 +1029 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g +(and)f(no)f(Back-Cover)468 1116 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 +1203 y(Free)g(Documentation)h(License''.)275 1337 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 1447 y(\\with)6 +b(.)22 b(.)g(.)12 b(T)-8 b(exts.")41 b(line)31 b(with)f(this:)547 +1559 y Fe(with)40 b(the)g(Invariant)h(Sections)g(being)g +Fd(list)f(their)g(titles)9 b Fe(,)41 b(with)547 1646 +y(the)f(Front-Cover)i(Texts)e(being)g Fd(list)9 b Fe(,)40 +b(and)g(with)g(the)g(Back-Cover)i(Texts)547 1733 y(being)e +Fd(list)9 b Fe(.)275 1868 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 +1978 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 2112 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 2222 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 2331 y(General)31 +b(Public)f(License,)i(to)f(p)s(ermit)e(their)i(use)f(in)g(free)g(soft)m +(w)m(are.)p eop end +%%Page: 160 166 +TeXDict begin 160 165 bop 150 -116 a Ft(App)s(endix)29 +b(D:)i(Indexes)2623 b(160)150 299 y Fo(App)t(endix)52 b(D)81 b(Indexes)150 631 y Fr(D.1)68 b(Index)45 b(of)g(Shell)g(Builtin) g(Commands)150 868 y(.)150 984 y Fe(.)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)39 b Fb(41)150 1218 y Fr(:)150 1335 +(:)h(:)f(:)g(:)g(:)39 b Fb(40)150 1218 y Fr(:)150 1335 y Fe(:)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 -b Fb(41)150 1579 y Fr([)150 1695 y Fe([)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g +b Fb(40)150 1579 y Fr([)150 1695 y Fe([)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)39 b Fb(45)150 1938 y Fr(A)150 2055 +(:)h(:)f(:)g(:)g(:)39 b Fb(44)150 1938 y Fr(A)150 2055 y Fe(alias)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(48)150 +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(47)150 2289 y Fr(B)150 2405 y Fe(bg)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)37 b Fb(98)150 2493 y Fe(bind)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -49 b Fb(48)150 2580 y Fe(break)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f +49 b Fb(47)150 2580 y Fe(break)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 -b Fb(41)150 2668 y Fe(builtin)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g +b Fb(40)150 2668 y Fe(builtin)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 -b Fb(49)150 2902 y Fr(C)150 3019 y Fe(caller)17 b Fc(:)e(:)e(:)g(:)g(:) +b Fb(48)150 2902 y Fr(C)150 3019 y Fe(caller)17 b Fc(:)e(:)e(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -43 b Fb(49)150 3106 y Fe(cd)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g +43 b Fb(48)150 3106 y Fe(cd)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)37 b Fb(42)150 3194 y Fe(command)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g +(:)37 b Fb(41)150 3194 y Fe(command)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 -b Fb(50)150 3281 y Fe(compgen)12 b Fc(:)j(:)e(:)g(:)h(:)f(:)g(:)g(:)g +b Fb(49)150 3281 y Fe(compgen)12 b Fc(:)j(:)e(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)39 b Fb(126)150 3368 y Fe(complete)10 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:) @@ -18663,36 +18804,36 @@ f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)39 b Fb(130)150 3543 y Fe(continue)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(42)150 3778 y +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(41)150 3778 y Fr(D)150 3894 y Fe(declare)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b -Fb(50)150 3982 y Fe(dirs)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +Fb(49)150 3982 y Fe(dirs)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 -b Fb(89)150 4069 y Fe(disown)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:) +b Fb(90)150 4069 y Fe(disown)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(99)150 4303 y Fr(E)150 4420 y Fe(echo)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(51)150 4507 y Fe(enable)17 +g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(50)150 4507 y Fe(enable)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(52)150 4595 y Fe(eval)23 +(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(51)150 4595 y Fe(eval)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(42)150 4682 y +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(41)150 4682 y Fe(exec)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(42)150 +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(41)150 4770 y Fe(exit)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 -b Fb(43)150 4857 y Fe(export)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:) +b Fb(42)150 4857 y Fe(export)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 -b Fb(43)150 5110 y Fr(F)150 5227 y Fe(fc)8 b Fc(:)14 +b Fb(42)150 5110 y Fr(F)150 5227 y Fe(fc)8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)35 b Fb(133)150 5314 @@ -18702,13 +18843,13 @@ g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(98)2025 868 y Fr(G)2025 988 y Fe(getopts)15 b Fc(:)f(:)f(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 -b Fb(43)2025 1250 y Fr(H)2025 1370 y Fe(hash)23 b Fc(:)13 +b Fb(42)2025 1250 y Fr(H)2025 1370 y Fe(hash)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(44)2025 1459 y Fe(help)23 +h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(43)2025 1459 y Fe(help)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(53)2025 1549 +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(52)2025 1549 y Fe(history)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(134)2025 1811 @@ -18722,85 +18863,85 @@ h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(99)2025 2557 y Fr(L)2025 2677 y Fe(let)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 -b Fb(53)2025 2766 y Fe(local)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h +b Fb(52)2025 2766 y Fe(local)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 -b Fb(53)2025 2856 y Fe(logout)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g +b Fb(52)2025 2856 y Fe(logout)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 -b Fb(53)2025 3118 y Fr(M)2025 3238 y Fe(mapfile)15 b +b Fb(52)2025 3118 y Fr(M)2025 3238 y Fe(mapfile)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)41 b Fb(53)2025 3500 y Fr(P)2025 3620 +h(:)f(:)g(:)g(:)41 b Fb(52)2025 3500 y Fr(P)2025 3620 y Fe(popd)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(90)2025 3710 y Fe(printf)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(54)2025 +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(53)2025 3799 y Fe(pushd)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(90)2025 3888 y Fe(pwd)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 -b Fb(44)2025 4150 y Fr(R)2025 4270 y Fe(read)23 b Fc(:)13 +b Fb(43)2025 4150 y Fr(R)2025 4270 y Fe(read)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(55)2025 4360 y Fe(readarray)9 +h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(54)2025 4360 y Fe(readarray)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)36 b Fb(56)2025 4449 y Fe(readonly)12 b Fc(:)j(:)e(:)g(:)g +f(:)g(:)g(:)36 b Fb(55)2025 4449 y Fe(readonly)12 b Fc(:)j(:)e(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 -b Fb(44)2025 4538 y Fe(return)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g +b Fb(43)2025 4538 y Fe(return)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 -b Fb(45)2025 4782 y Fr(S)2025 4902 y Fe(set)8 b Fc(:)13 +b Fb(44)2025 4782 y Fr(S)2025 4902 y Fe(set)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(58)2025 4991 +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(57)2025 4991 y Fe(shift)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(45)2025 +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(44)2025 5080 y Fe(shopt)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b -Fb(62)2025 5169 y Fe(source)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g +Fb(61)2025 5169 y Fe(source)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 -b Fb(56)2025 5259 y Fe(suspend)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g +b Fb(55)2025 5259 y Fe(suspend)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(99)p eop end -%%Page: 164 170 -TeXDict begin 164 169 bop 150 -116 a Ft(164)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fr(T)150 428 y Fe(test)23 +%%Page: 161 167 +TeXDict begin 161 166 bop 150 -116 a Ft(App)s(endix)29 +b(D:)i(Indexes)2623 b(161)150 299 y Fr(T)150 428 y Fe(test)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(45)150 522 y +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(44)150 522 y Fe(times)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(46)150 +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(45)150 616 y Fe(trap)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 -b Fb(46)150 709 y Fe(type)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +b Fb(45)150 709 y Fe(type)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 -b Fb(56)150 803 y Fe(typeset)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:) +b Fb(55)150 803 y Fe(typeset)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 -b Fb(57)2025 299 y Fr(U)2025 415 y Fe(ulimit)17 b Fc(:)d(:)g(:)f(:)g(:) +b Fb(56)2025 299 y Fr(U)2025 415 y Fe(ulimit)17 b Fc(:)d(:)g(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -44 b Fb(57)2025 502 y Fe(umask)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g +44 b Fb(56)2025 502 y Fe(umask)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 -b Fb(47)2025 590 y Fe(unalias)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g +b Fb(46)2025 590 y Fe(unalias)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 -b Fb(58)2025 677 y Fe(unset)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h +b Fb(57)2025 677 y Fe(unset)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(47)2025 910 y Fr(W)2025 1026 y Fe(wait)23 b Fc(:)13 @@ -18893,16 +19034,16 @@ b Fb(20)2025 5067 y Fr(*)2025 5192 y Fe(*)13 b Fc(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)39 b Fb(19)p eop end -%%Page: 165 171 -TeXDict begin 165 170 bop 150 -116 a Ft(App)s(endix)29 -b(D:)i(Indexes)2623 b(165)150 299 y Fr(-)150 415 y Fe(-)13 +%%Page: 162 168 +TeXDict begin 162 167 bop 150 -116 a Ft(App)s(endix)29 +b(D:)i(Indexes)2623 b(162)150 299 y Fr(-)150 415 y Fe(-)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(19)150 +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(20)150 649 y Fr(?)150 765 y Fe(?)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)39 b Fb(19)150 999 y Fr(@)150 1115 y Fe(@)13 b +(:)g(:)39 b Fb(20)150 999 y Fr(@)150 1115 y Fe(@)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(19)p @@ -18919,947 +19060,955 @@ h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g 2409 y Fr(B)150 2525 y Fe(BASH)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 -b Fb(69)150 2612 y Fe(BASH_ALIASES)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g +b Fb(68)150 2612 y Fe(BASH_ALIASES)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(70)150 2700 +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(69)150 2700 y Fe(BASH_ARGC)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(70)150 2787 y +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(69)150 2787 y Fe(BASH_ARGV)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(70)150 2874 y Fe(BASH_CMDS)9 +g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(69)150 2874 y Fe(BASH_CMDS)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)36 b Fb(70)150 2962 y Fe(BASH_COMMAND)22 +g(:)g(:)g(:)36 b Fb(69)150 2962 y Fe(BASH_COMMAND)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 -b Fb(70)150 3049 y Fe(BASH_ENV)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b -Fb(70)150 3137 y Fe(BASH_EXECUTION_STRING)13 b Fc(:)18 -b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)39 b Fb(70)150 3224 y Fe(BASH_LINENO)24 +b Fb(69)150 3049 y Fe(BASH_COMPAT)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(69)150 +3137 y Fe(BASH_ENV)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(70)150 3224 +y Fe(BASH_EXECUTION_STRING)13 b Fc(:)18 b(:)13 b(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 +b Fb(70)150 3311 y Fe(BASH_LINENO)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(70)150 +3399 y Fe(BASH_REMATCH)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(70)150 3486 y Fe(BASH_SOURCE)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -48 b Fb(71)150 3311 y Fe(BASH_REMATCH)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(71)150 -3399 y Fe(BASH_SOURCE)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(71)150 3486 y Fe(BASH_SUBSHELL)16 -b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 -b Fb(71)150 3573 y Fe(BASH_VERSINFO)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(71)150 3661 y Fe(BASH_VERSION)22 -b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +48 b Fb(70)150 3573 y Fe(BASH_SUBSHELL)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(70)150 3661 y +Fe(BASH_VERSINFO)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)43 b Fb(70)150 3748 y Fe(BASH_VERSION)22 b +Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 -b Fb(71)150 3748 y Fe(BASH_XTRACEFD)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g +b Fb(71)150 3835 y Fe(BASH_XTRACEFD)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(71)150 3835 y Fe(BASHOPTS)12 +h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(71)150 3923 y Fe(BASHOPTS)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)38 b Fb(70)150 3923 y Fe(BASHPID)15 b +(:)g(:)h(:)f(:)38 b Fb(69)150 4010 y Fe(BASHPID)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)41 b Fb(70)150 4010 y Fe(bell-style)24 +f(:)g(:)g(:)g(:)41 b Fb(69)150 4098 y Fe(bell-style)24 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -49 b Fb(105)150 4098 y Fe(bind-tty-special-chars)8 b +49 b Fb(105)150 4185 y Fe(bind-tty-special-chars)8 b Fc(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)35 b Fb(105)150 4350 y Fr(C)150 4466 +(:)h(:)f(:)g(:)g(:)35 b Fb(105)150 4437 y Fr(C)150 4554 y Fe(CDPATH)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(69)150 4554 -y Fe(colored-stats)14 b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)41 b Fb(105)150 4641 y Fe(COLUMNS)15 b Fc(:)f(:)f(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 -b Fb(72)150 4728 y Fe(comment-begin)14 b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(68)150 4641 +y Fe(CHILD_MAX)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(71)150 4728 y +Fe(colored-stats)14 b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)41 b Fb(105)150 4816 y Fe(COLUMNS)15 b Fc(:)f(:)f(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 +b Fb(71)150 4903 y Fe(comment-begin)14 b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(105)150 4816 y Fe(COMP_CWORD)7 +g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(105)150 4991 y Fe(COMP_CWORD)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)33 b Fb(72)150 4903 y Fe(COMP_KEY)12 b Fc(:)j(:)e(:)g(:)g(:)g +f(:)g(:)33 b Fb(71)150 5078 y Fe(COMP_KEY)12 b Fc(:)j(:)e(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 -b Fb(72)150 4991 y Fe(COMP_LINE)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g +b Fb(72)150 5165 y Fe(COMP_LINE)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b -Fb(72)150 5078 y Fe(COMP_POINT)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:) +Fb(71)150 5253 y Fe(COMP_POINT)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(72)150 -5165 y Fe(COMP_TYPE)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(71)150 +5340 y Fe(COMP_TYPE)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(72)150 5253 -y Fe(COMP_WORDBREAKS)11 b Fc(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)38 b Fb(72)150 5340 y Fe(COMP_WORDS)7 b Fc(:)15 -b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -33 b Fb(72)2025 299 y Fe(completion-display-width)26 +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(72)2025 299 +y Fe(COMP_WORDBREAKS)11 b Fc(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)38 b Fb(72)2025 387 y Fe(COMP_WORDS)7 b Fc(:)15 +b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +33 b Fb(72)2025 474 y Fe(completion-display-width)26 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)47 b Fb(105)2025 387 y Fe(completion-ignore-case)8 +(:)g(:)47 b Fb(105)2025 562 y Fe(completion-ignore-case)8 b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(105)2025 474 y Fe(completion-map-case)16 +(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(105)2025 649 y Fe(completion-map-case)16 b Fc(:)h(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(105)2025 562 y Fe +g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(105)2025 737 y Fe (completion-prefix-display-leng)q(th)17 b Fc(:)i(:)13 -b(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(106)2025 649 y Fe +b(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(106)2025 825 y Fe (completion-query-items)8 b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b -Fb(106)2025 737 y Fe(COMPREPLY)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:) +Fb(106)2025 912 y Fe(COMPREPLY)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(73)2025 -825 y Fe(convert-meta)17 b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(72)2025 +1000 y Fe(convert-meta)17 b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)44 b Fb(106)2025 912 y Fe(COPROC)17 b -Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)44 b Fb(73)2025 1147 y Fr(D)2025 -1264 y Fe(DIRSTACK)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +g(:)g(:)g(:)g(:)44 b Fb(106)2025 1088 y Fe(COPROC)17 +b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(72)2025 1323 y Fr(D)2025 +1440 y Fe(DIRSTACK)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(73)2025 1352 +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(72)2025 1527 y Fe(disable-completion)22 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)45 -b Fb(106)2025 1606 y Fr(E)2025 1723 y Fe(editing-mode)17 +b Fb(106)2025 1781 y Fr(E)2025 1898 y Fe(editing-mode)17 b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 -b Fb(106)2025 1810 y Fe(EMACS)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:) +b Fb(106)2025 1985 y Fe(EMACS)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 -b Fb(73)2025 1898 y Fe(enable-keypad)14 b Fc(:)i(:)d(:)g(:)g(:)h(:)f(:) +b Fb(72)2025 2073 y Fe(enable-keypad)14 b Fc(:)i(:)d(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Fb(106)2025 1985 y Fe(ENV)8 +(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Fb(106)2025 2161 y Fe(ENV)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(73)2025 -2073 y Fe(EUID)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(72)2025 +2248 y Fe(EUID)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 -b Fb(73)2025 2161 y Fe(expand-tilde)17 b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g +b Fb(72)2025 2336 y Fe(expand-tilde)17 b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(106)2025 2415 y Fr(F)2025 -2531 y Fe(FCEDIT)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(106)2025 2590 y Fr(F)2025 +2707 y Fe(FCEDIT)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(73)2025 -2619 y Fe(FIGNORE)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(72)2025 +2794 y Fe(FIGNORE)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(73)2025 -2707 y Fe(FUNCNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +2882 y Fe(FUNCNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(73)2025 2794 +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(73)2025 2970 y Fe(FUNCNEST)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(73)2025 3029 -y Fr(G)2025 3146 y Fe(GLOBIGNORE)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(73)2025 3205 +y Fr(G)2025 3322 y Fe(GLOBIGNORE)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(73)2025 -3234 y Fe(GROUPS)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +3409 y Fe(GROUPS)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(74)2025 -3469 y Fr(H)2025 3586 y Fe(histchars)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(73)2025 +3644 y Fr(H)2025 3761 y Fe(histchars)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 -b Fb(74)2025 3674 y Fe(HISTCMD)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g +b Fb(73)2025 3849 y Fe(HISTCMD)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 -b Fb(74)2025 3761 y Fe(HISTCONTROL)24 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g +b Fb(73)2025 3936 y Fe(HISTCONTROL)24 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(74)2025 -3849 y Fe(HISTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(73)2025 +4024 y Fe(HISTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(74)2025 3936 +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(74)2025 4112 y Fe(HISTFILESIZE)21 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)45 b Fb(74)2025 4024 y Fe(HISTIGNORE)7 +(:)g(:)g(:)g(:)h(:)45 b Fb(74)2025 4199 y Fe(HISTIGNORE)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)33 b Fb(74)2025 4112 y Fe(history-preserve-point)8 +g(:)h(:)33 b Fb(74)2025 4287 y Fe(history-preserve-point)8 b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(107)2025 4199 y Fe(history-size)17 +(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(107)2025 4375 y Fe(history-size)17 b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 -b Fb(107)2025 4287 y Fe(HISTSIZE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:) +b Fb(107)2025 4462 y Fe(HISTSIZE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 -b Fb(75)2025 4375 y Fe(HISTTIMEFORMAT)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h +b Fb(74)2025 4550 y Fe(HISTTIMEFORMAT)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(75)2025 4462 y Fe(HOME)23 +g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(74)2025 4637 y Fe(HOME)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(69)2025 4550 +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(68)2025 4725 y Fe(horizontal-scroll-mode)8 b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 -b Fb(107)2025 4637 y Fe(HOSTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:) +b Fb(107)2025 4813 y Fe(HOSTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 -b Fb(75)2025 4725 y Fe(HOSTNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f +b Fb(74)2025 4900 y Fe(HOSTNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b -Fb(75)2025 4813 y Fe(HOSTTYPE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f +Fb(75)2025 4988 y Fe(HOSTTYPE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b -Fb(75)2025 5048 y Fr(I)2025 5165 y Fe(IFS)8 b Fc(:)13 +Fb(75)2025 5223 y Fr(I)2025 5340 y Fe(IFS)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(69)2025 5252 -y Fe(IGNOREEOF)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(75)2025 5340 y -Fe(input-meta)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)49 b Fb(107)p eop end -%%Page: 166 172 -TeXDict begin 166 171 bop 150 -116 a Ft(166)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fe(INPUTRC)15 b Fc(:)f(:)f(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 -b Fb(75)150 386 y Fe(isearch-terminators)16 b Fc(:)h(:)d(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(68)p eop end +%%Page: 163 169 +TeXDict begin 163 168 bop 150 -116 a Ft(App)s(endix)29 +b(D:)i(Indexes)2623 b(163)150 299 y Fe(IGNOREEOF)9 b +Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)36 b Fb(75)150 387 y Fe(input-meta)24 b Fc(:)13 +b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 +b Fb(107)150 475 y Fe(INPUTRC)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 +b Fb(75)150 563 y Fe(isearch-terminators)16 b Fc(:)h(:)d(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)43 b Fb(107)150 619 y Fr(K)150 736 y Fe(keymap)15 +(:)43 b Fb(107)150 800 y Fr(K)150 918 y Fe(keymap)15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)42 b Fb(107)150 988 y Fr(L)150 1104 +(:)g(:)g(:)g(:)g(:)42 b Fb(107)150 1173 y Fr(L)150 1291 y Fe(LANG)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(75)150 -1191 y Fe(LC_ALL)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +1379 y Fe(LC_ALL)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(75)150 -1278 y Fe(LC_COLLATE)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +1467 y Fe(LC_COLLATE)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(76)150 1366 y +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(75)150 1555 y Fe(LC_CTYPE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(76)150 1453 y Fe(LC_MESSAGES)13 +g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(75)150 1643 y Fe(LC_MESSAGES)13 b Fc(:)j(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40 -b Fb(7,)26 b(76)150 1540 y Fe(LC_NUMERIC)7 b Fc(:)15 +b Fb(7,)26 b(75)150 1731 y Fe(LC_NUMERIC)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -33 b Fb(76)150 1627 y Fe(LINENO)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h +33 b Fb(75)150 1819 y Fe(LINENO)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 -b Fb(76)150 1715 y Fe(LINES)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g +b Fb(75)150 1907 y Fe(LINES)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 -b Fb(76)150 1948 y Fr(M)150 2064 y Fe(MACHTYPE)12 b Fc(:)j(:)e(:)g(:)g +b Fb(75)150 2144 y Fr(M)150 2262 y Fe(MACHTYPE)12 b Fc(:)j(:)e(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 -b Fb(76)150 2151 y Fe(MAIL)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g +b Fb(75)150 2350 y Fe(MAIL)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 -b Fb(69)150 2239 y Fe(MAILCHECK)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g +b Fb(68)150 2438 y Fe(MAILCHECK)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b -Fb(76)150 2326 y Fe(MAILPATH)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:) +Fb(76)150 2526 y Fe(MAILPATH)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(69)150 -2413 y Fe(MAPFILE)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(68)150 +2614 y Fe(MAPFILE)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(76)150 -2501 y Fe(mark-modified-lines)16 b Fc(:)h(:)d(:)f(:)g(:)g(:)g(:)g(:)g +2702 y Fe(mark-modified-lines)16 b Fc(:)h(:)d(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 -b Fb(108)150 2588 y Fe(mark-symlinked-directories)16 +b Fb(108)150 2790 y Fe(mark-symlinked-directories)16 b Fc(:)i(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -42 b Fb(108)150 2675 y Fe(match-hidden-files)23 b Fc(:)13 +42 b Fb(108)150 2878 y Fe(match-hidden-files)23 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(108)150 2762 y Fe +(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(108)150 2966 y Fe (menu-complete-display-prefix)11 b Fc(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(108)150 2850 y Fe(meta-flag)7 +(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(108)150 3054 y Fe(meta-flag)7 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)34 b Fb(107)150 3102 y Fr(O)150 3218 y Fe(OLDPWD)17 +g(:)g(:)34 b Fb(107)150 3309 y Fr(O)150 3427 y Fe(OLDPWD)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(76)150 3305 y Fe(OPTARG)17 +(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(76)150 3515 y Fe(OPTARG)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(69)150 3392 y Fe(OPTERR)17 +(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(68)150 3603 y Fe(OPTERR)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(76)150 3480 y Fe(OPTIND)17 +(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(76)150 3691 y Fe(OPTIND)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(69)150 3567 y Fe(OSTYPE)17 +(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(68)150 3779 y Fe(OSTYPE)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(76)150 3654 y Fe(output-meta)22 +(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(76)150 3867 y Fe(output-meta)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)46 -b Fb(108)150 3906 y Fr(P)150 4022 y Fe(page-completions)7 +b Fb(108)150 4123 y Fr(P)150 4240 y Fe(page-completions)7 b Fc(:)16 b(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(108)150 -4110 y Fe(PATH)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 -b Fb(69)2025 299 y Fe(PIPESTATUS)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(108)2025 +299 y Fe(PATH)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 +b Fb(68)2025 386 y Fe(PIPESTATUS)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(76)2025 -387 y Fe(POSIXLY_CORRECT)11 b Fc(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h +473 y Fe(POSIXLY_CORRECT)11 b Fc(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)38 b Fb(76)2025 475 y Fe(PPID)23 b Fc(:)13 +g(:)g(:)g(:)38 b Fb(76)2025 560 y Fe(PPID)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(77)2025 563 y Fe(PROMPT_COMMAND)14 +h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(76)2025 648 y Fe(PROMPT_COMMAND)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 -b Fb(77)2025 651 y Fe(PROMPT_DIRTRIM)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h(:) +b Fb(76)2025 735 y Fe(PROMPT_DIRTRIM)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(77)2025 738 y Fe(PS1)8 +(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(76)2025 822 y Fe(PS1)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(69)2025 -826 y Fe(PS2)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(68)2025 +909 y Fe(PS2)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 -b Fb(69)2025 914 y Fe(PS3)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +b Fb(68)2025 996 y Fe(PS3)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 -b Fb(77)2025 1002 y Fe(PS4)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +b Fb(76)2025 1083 y Fe(PS4)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -34 b Fb(77)2025 1090 y Fe(PWD)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g +34 b Fb(76)2025 1171 y Fe(PWD)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)34 b Fb(77)2025 1327 y Fr(R)2025 1444 y Fe(RANDOM)17 +(:)34 b Fb(76)2025 1403 y Fr(R)2025 1519 y Fe(RANDOM)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(77)2025 1532 y Fe(READLINE_LINE)16 +(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(76)2025 1606 y Fe(READLINE_LINE)16 b Fc(:)g(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 -b Fb(77)2025 1620 y Fe(READLINE_POINT)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h +b Fb(77)2025 1694 y Fe(READLINE_POINT)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(77)2025 1708 y Fe(REPLY)21 +g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(77)2025 1781 y Fe(REPLY)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(77)2025 1796 y Fe +g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(77)2025 1868 y Fe (revert-all-at-newline)11 b Fc(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38 -b Fb(108)2025 2032 y Fr(S)2025 2150 y Fe(SECONDS)15 b +b Fb(108)2025 2101 y Fr(S)2025 2217 y Fe(SECONDS)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)41 b Fb(77)2025 2238 y Fe(SHELL)21 b +h(:)f(:)g(:)g(:)41 b Fb(77)2025 2304 y Fe(SHELL)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(77)2025 2326 y Fe(SHELLOPTS)9 +g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(77)2025 2391 y Fe(SHELLOPTS)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)36 b Fb(77)2025 2413 y Fe(SHLVL)21 b Fc(:)13 +f(:)g(:)g(:)36 b Fb(77)2025 2478 y Fe(SHLVL)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)46 b Fb(77)2025 2501 y Fe(show-all-if-ambiguous)11 +g(:)g(:)h(:)f(:)g(:)46 b Fb(77)2025 2565 y Fe(show-all-if-ambiguous)11 b Fc(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)38 b Fb(108)2025 2589 y Fe +(:)h(:)f(:)g(:)g(:)g(:)g(:)38 b Fb(108)2025 2653 y Fe (show-all-if-unmodified)8 b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b -Fb(109)2025 2677 y Fe(skip-completed-text)16 b Fc(:)h(:)c(:)g(:)h(:)f +Fb(109)2025 2740 y Fe(show-mode-in-prompt)16 b Fc(:)h(:)c(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)43 b Fb(109)2025 2933 y Fr(T)2025 3050 y Fe(TEXTDOMAIN)9 -b Fc(:)15 b(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)36 b Fb(7)2025 3138 y Fe(TEXTDOMAINDIR)21 -b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)46 -b Fb(7)2025 3226 y Fe(TIMEFORMAT)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(78)2025 -3314 y Fe(TMOUT)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b -Fb(78)2025 3402 y Fe(TMPDIR)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g +g(:)43 b Fb(109)2025 2827 y Fe(skip-completed-text)16 +b Fc(:)h(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(109)2025 3078 y Fr(T)2025 +3194 y Fe(TEXTDOMAIN)9 b Fc(:)15 b(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 -b Fb(78)2025 3638 y Fr(U)2025 3756 y Fe(UID)8 b Fc(:)13 -b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(7)2025 3282 +y Fe(TEXTDOMAINDIR)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(78)2025 3992 -y Fr(V)2025 4110 y Fe(visible-stats)14 b Fc(:)i(:)d(:)g(:)g(:)h(:)f(:)g +g(:)g(:)g(:)g(:)g(:)46 b Fb(7)2025 3369 y Fe(TIMEFORMAT)7 +b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)33 b Fb(77)2025 3456 y Fe(TMOUT)21 b Fc(:)13 +b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)41 b Fb(109)150 4342 y Fr(D.4)68 -b(F)-11 b(unction)44 b(Index)150 4579 y(A)150 4697 y -Fe(abort)27 b(\(C-g\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(122)150 4786 y Fe(accept-line)28 -b(\(Newline)g(or)e(Return\))e Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)50 b Fb(116)150 4874 y Fe(alias-expand-line)29 -b(\(\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(124)150 -5133 y Fr(B)150 5251 y Fe(backward-char)29 b(\(C-b\))23 -b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)49 b Fb(115)150 5340 y -Fe(backward-delete-char)30 b(\(Rubout\))14 b Fc(:)h(:)f(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(117)2025 4579 y Fe -(backward-kill-line)29 b(\(C-x)e(Rubout\))16 b Fc(:)f(:)e(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)43 b Fb(118)2025 4670 y Fe(backward-kill-word)29 -b(\(M-DEL\))24 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)49 b Fb(119)2025 4761 y Fe(backward-word)28 -b(\(M-b\))c Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)50 b Fb(115)2025 -4852 y Fe(beginning-of-history)30 b(\(M-<\))23 b Fc(:)13 +g(:)g(:)h(:)f(:)g(:)46 b Fb(78)2025 3543 y Fe(TMPDIR)17 +b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(78)2025 3776 y Fr(U)2025 +3892 y Fe(UID)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(78)2025 4124 y Fr(V)2025 4240 y Fe(visible-stats)14 +b Fc(:)i(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41 +b Fb(109)150 4489 y Fr(D.4)68 b(F)-11 b(unction)44 b(Index)150 +4726 y(A)150 4860 y Fe(abort)27 b(\(C-g\))9 b Fc(:)14 +b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 +b Fb(122)150 4956 y Fe(accept-line)28 b(\(Newline)g(or)e(Return\))e +Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)50 b +Fb(116)150 5051 y Fe(alias-expand-line)29 b(\(\))21 b +Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(124)2025 4726 y Fr(B)2025 +4860 y Fe(backward-char)28 b(\(C-b\))c Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)50 +b Fb(115)2025 4956 y Fe(backward-delete-char)30 b(\(Rubout\))14 +b Fc(:)h(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)41 +b Fb(117)2025 5052 y Fe(backward-kill-line)29 b(\(C-x)e(Rubout\))16 +b Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)43 b Fb(118)2025 +5148 y Fe(backward-kill-word)29 b(\(M-DEL\))24 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49 -b Fb(116)2025 4943 y Fe(beginning-of-line)29 b(\(C-a\))13 -b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)40 b Fb(115)2025 5216 y Fr(C)2025 5340 y -Fe(call-last-kbd-macro)30 b(\(C-x)c(e\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(121)p +b Fb(119)2025 5244 y Fe(backward-word)28 b(\(M-b\))c +Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)50 b Fb(115)2025 5340 +y Fe(beginning-of-history)30 b(\(M-<\))23 b Fc(:)13 b(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49 b Fb(116)p eop end -%%Page: 167 173 -TeXDict begin 167 172 bop 150 -116 a Ft(App)s(endix)29 -b(D:)i(Indexes)2623 b(167)150 299 y Fe(capitalize-word)29 -b(\(M-c\))18 b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(118)150 387 -y Fe(character-search)29 b(\(C-]\))15 b Fc(:)g(:)e(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42 -b Fb(122)150 475 y Fe(character-search-backward)31 b(\(M-C-]\))23 -b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(122)150 -564 y Fe(clear-screen)28 b(\(C-l\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)35 b Fb(115)150 652 y Fe(complete)27 b(\(TAB\))20 -b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 -b Fb(120)150 740 y Fe(complete-command)29 b(\(M-!\))15 -b Fc(:)g(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)42 b Fb(121)150 828 y Fe(complete-filename)29 -b(\(M-/\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(120)150 917 y Fe(complete-hostname) -29 b(\(M-@\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(121)150 1005 y Fe +%%Page: 164 170 +TeXDict begin 164 169 bop 150 -116 a Ft(App)s(endix)29 +b(D:)i(Indexes)2623 b(164)150 299 y Fe(beginning-of-line)29 +b(\(C-a\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(115)150 558 y Fr(C)150 +677 y Fe(call-last-kbd-macro)30 b(\(C-x)c(e\))9 b Fc(:)14 +b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 +b Fb(121)150 765 y Fe(capitalize-word)29 b(\(M-c\))18 +b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)44 b Fb(118)150 854 y Fe(character-search)29 +b(\(C-]\))15 b Fc(:)g(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42 b Fb(122)150 943 y +Fe(character-search-backward)31 b(\(M-C-]\))23 b Fc(:)13 +b(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(122)150 1031 y Fe(clear-screen)28 +b(\(C-l\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 +b Fb(115)150 1120 y Fe(complete)27 b(\(TAB\))20 b Fc(:)13 +b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(120)150 +1208 y Fe(complete-command)29 b(\(M-!\))15 b Fc(:)g(:)e(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42 +b Fb(121)150 1297 y Fe(complete-filename)29 b(\(M-/\))13 +b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)39 b Fb(120)150 1386 y Fe(complete-hostname)29 +b(\(M-@\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(121)150 1474 y Fe (complete-into-braces)30 b(\(M-{\))23 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(121)150 -1093 y Fe(complete-username)29 b(\(M-~\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:) +1563 y Fe(complete-username)29 b(\(M-~\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 -b Fb(121)150 1181 y Fe(complete-variable)29 b(\(M-$\))13 +b Fb(121)150 1652 y Fe(complete-variable)29 b(\(M-$\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)39 b Fb(121)150 1270 y Fe(copy-backward-word)30 +g(:)h(:)f(:)39 b Fb(121)150 1740 y Fe(copy-backward-word)30 b(\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(119)150 1358 +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(119)150 1829 y Fe(copy-forward-word)29 b(\(\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 -b Fb(119)150 1446 y Fe(copy-region-as-kill)30 b(\(\))15 +b Fb(119)150 1917 y Fe(copy-region-as-kill)30 b(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)42 b Fb(119)150 1703 y Fr(D)150 1821 +g(:)g(:)g(:)g(:)42 b Fb(119)150 2176 y Fr(D)150 2295 y Fe(dabbrev-expand)29 b(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)38 b Fb(121)150 1909 y Fe(delete-char)28 b(\(C-d\))11 +g(:)38 b Fb(121)150 2384 y Fe(delete-char)28 b(\(C-d\))11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(117)150 -1998 y Fe(delete-char-or-list)30 b(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g +2472 y Fe(delete-char-or-list)30 b(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42 -b Fb(120)150 2086 y Fe(delete-horizontal-space)31 b(\(\))22 +b Fb(120)150 2561 y Fe(delete-horizontal-space)31 b(\(\))22 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -49 b Fb(119)150 2174 y Fe(digit-argument)29 b(\()p Fd(M-0)p +49 b Fb(119)150 2650 y Fe(digit-argument)29 b(\()p Fd(M-0)p Fe(,)e Fd(M-1)p Fe(,)f(...)g Fd(M--)p Fe(\))d Fc(:)13 -b(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(119)150 2262 y Fe +b(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(119)150 2738 y Fe (display-shell-version)30 b(\(C-x)d(C-v\))16 b Fc(:)e(:)f(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)43 b Fb(123)150 2351 y Fe(do-uppercase-version) +(:)f(:)g(:)g(:)g(:)g(:)43 b Fb(123)150 2827 y Fe(do-uppercase-version) 30 b(\(M-a,)d(M-b,)f(M-)p Fd(x)9 b Fe(,)27 b(...\))325 -2438 y Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +2914 y Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)48 b Fb(122)150 2526 +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)48 b Fb(122)150 3003 y Fe(downcase-word)29 b(\(M-l\))23 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)49 -b Fb(118)150 2614 y Fe(dump-functions)29 b(\(\))11 b +b Fb(118)150 3091 y Fe(dump-functions)29 b(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(123)150 -2702 y Fe(dump-macros)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g +3180 y Fe(dump-macros)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)45 b Fb(123)150 2791 y Fe(dump-variables)29 +g(:)g(:)h(:)f(:)g(:)45 b Fb(123)150 3269 y Fe(dump-variables)29 b(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 -b Fb(123)150 2879 y Fe(dynamic-complete-history)31 b(\(M-TAB\))7 +b Fb(123)150 3357 y Fe(dynamic-complete-history)31 b(\(M-TAB\))7 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(121)150 -3136 y Fr(E)150 3254 y Fe(edit-and-execute-command)e(\(C-xC-e\))23 +3616 y Fr(E)150 3735 y Fe(edit-and-execute-command)e(\(C-xC-e\))23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(124)150 -3342 y Fe(end-kbd-macro)29 b(\(C-x)d(\)\))7 b Fc(:)14 +3824 y Fe(end-kbd-macro)29 b(\(C-x)d(\)\))7 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)34 b Fb(121)150 3431 y Fe(end-of-history)29 +(:)g(:)h(:)f(:)g(:)34 b Fb(121)150 3912 y Fe(end-of-history)29 b(\(M->\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(116)150 -3519 y Fe(end-of-line)28 b(\(C-e\))11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g +4001 y Fe(end-of-line)28 b(\(C-e\))11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)38 b Fb(115)150 3607 y Fe(exchange-point-and-mark)31 +g(:)g(:)38 b Fb(115)150 4090 y Fe(exchange-point-and-mark)31 b(\(C-x)26 b(C-x\))11 b Fc(:)j(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)38 -b Fb(122)150 3864 y Fr(F)150 3982 y Fe(forward-backward-delete-char)32 +b Fb(122)150 4349 y Fr(F)150 4467 y Fe(forward-backward-delete-char)32 b(\(\))9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 -b Fb(117)150 4071 y Fe(forward-char)28 b(\(C-f\))8 b +b Fb(117)150 4556 y Fe(forward-char)28 b(\(C-f\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(115)150 -4159 y Fe(forward-search-history)c(\(C-s\))17 b Fc(:)d(:)f(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(116)150 4247 +4645 y Fe(forward-search-history)c(\(C-s\))17 b Fc(:)d(:)f(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(116)150 4733 y Fe(forward-word)28 b(\(M-f\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)35 b Fb(115)150 4494 y Fr(G)150 4612 y Fe(glob-complete-word)30 +(:)35 b Fb(115)150 4982 y Fr(G)150 5101 y Fe(glob-complete-word)30 b(\(M-g\))10 b Fc(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(123)150 4700 y Fe(glob-expand-word)29 +(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(123)150 5189 y Fe(glob-expand-word)29 b(\(C-x)e(*\))17 b Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(123)150 4788 y Fe +(:)g(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(123)150 5278 y Fe (glob-list-expansions)30 b(\(C-x)d(g\))7 b Fc(:)13 b(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(123)150 5045 -y Fr(H)150 5163 y Fe(history-and-alias-expand-line)f(\(\))7 -b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(124)150 -5252 y Fe(history-expand-line)d(\(M-^\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 -b Fb(123)150 5340 y Fe(history-search-backward)d(\(\))22 -b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -49 b Fb(116)2025 299 y Fe(history-search-forward)30 b(\(\))8 +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(123)2025 +299 y Fr(H)2025 419 y Fe(history-and-alias-expand-line)f(\(\))7 +b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(124)2025 +508 y Fe(history-expand-line)c(\(M-^\))8 b Fc(:)13 b(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)34 b +Fb(123)2025 597 y Fe(history-search-backward)d(\(\))22 +b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +49 b Fb(116)2025 686 y Fe(history-search-forward)30 b(\(\))8 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)34 b Fb(116)2025 387 y Fe(history-substr-search-backward)e(\(\)) +(:)h(:)34 b Fb(116)2025 775 y Fe(history-substr-search-backward)e(\(\)) 22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)48 b Fb(117)2025 -474 y Fe(history-substr-search-forward)32 b(\(\))7 b +864 y Fe(history-substr-search-forward)32 b(\(\))7 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(116)2025 -729 y Fr(I)2025 846 y Fe(insert-comment)29 b(\(M-#\))21 +1125 y Fr(I)2025 1244 y Fe(insert-comment)29 b(\(M-#\))21 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(123)2025 934 y Fe +(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(123)2025 1333 y Fe (insert-completions)29 b(\(M-*\))10 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37 b Fb(120)2025 -1022 y Fe(insert-last-argument)30 b(\(M-.)c(or)g(M-_\))18 +1422 y Fe(insert-last-argument)30 b(\(M-.)c(or)g(M-_\))18 b Fc(:)c(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(124)2025 -1277 y Fr(K)2025 1394 y Fe(kill-line)27 b(\(C-k\))16 +1683 y Fr(K)2025 1803 y Fe(kill-line)27 b(\(C-k\))16 b Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b -Fb(118)2025 1482 y Fe(kill-region)28 b(\(\))19 b Fc(:)13 +Fb(118)2025 1892 y Fe(kill-region)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(119)2025 -1569 y Fe(kill-whole-line)29 b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g +1981 y Fe(kill-whole-line)29 b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)35 b Fb(118)2025 1657 y Fe(kill-word)27 b(\(M-d\))16 +f(:)g(:)35 b Fb(118)2025 2070 y Fe(kill-word)27 b(\(M-d\))16 b Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b -Fb(118)2025 1901 y Fr(M)2025 2019 y Fe(magic-space)28 +Fb(118)2025 2321 y Fr(M)2025 2440 y Fe(magic-space)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 -b Fb(124)2025 2106 y Fe(menu-complete)28 b(\(\))13 b +b Fb(124)2025 2529 y Fe(menu-complete)28 b(\(\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(120)2025 -2194 y Fe(menu-complete-backward)30 b(\(\))8 b Fc(:)13 +2618 y Fe(menu-complete-backward)30 b(\(\))8 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)34 -b Fb(120)2025 2449 y Fr(N)2025 2566 y Fe(next-history)28 +b Fb(120)2025 2880 y Fr(N)2025 2999 y Fe(next-history)28 b(\(C-n\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 -b Fb(116)2025 2654 y Fe(non-incremental-forward-search)q(-hist)q(ory)d -(\(M-n\))2200 2741 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +b Fb(116)2025 3088 y Fe(non-incremental-forward-search)q(-hist)q(ory)d +(\(M-n\))2200 3175 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 b -Fb(116)2025 2829 y Fe(non-incremental-reverse-search)q(-hist)q(ory)32 -b(\(M-p\))2200 2916 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +Fb(116)2025 3264 y Fe(non-incremental-reverse-search)q(-hist)q(ory)32 +b(\(M-p\))2200 3352 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 b -Fb(116)2025 3152 y Fr(O)2025 3269 y Fe(operate-and-get-next)30 +Fb(116)2025 3594 y Fr(O)2025 3714 y Fe(operate-and-get-next)30 b(\(C-o\))23 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)49 b Fb(124)2025 3357 y Fe(overwrite-mode)29 +g(:)g(:)g(:)49 b Fb(124)2025 3803 y Fe(overwrite-mode)29 b(\(\))11 b Fc(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38 -b Fb(118)2025 3601 y Fr(P)2025 3718 y Fe(possible-command-completions) +b Fb(118)2025 4053 y Fr(P)2025 4173 y Fe(possible-command-completions) 32 b(\(C-x)26 b(!\))21 b Fc(:)13 b(:)g(:)h(:)f(:)47 b -Fb(121)2025 3806 y Fe(possible-completions)30 b(\(M-?\))23 +Fb(121)2025 4262 y Fe(possible-completions)30 b(\(M-?\))23 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -49 b Fb(120)2025 3894 y Fe(possible-filename-completions)32 +49 b Fb(120)2025 4351 y Fe(possible-filename-completions)32 b(\(C-x)26 b(/\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(120)2025 -3982 y Fe(possible-hostname-completions)32 b(\(C-x)26 -b(@\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(121)2025 4070 y Fe +4440 y Fe(possible-hostname-completions)32 b(\(C-x)26 +b(@\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(121)2025 4529 y Fe (possible-username-completions)32 b(\(C-x)26 b(~\))18 -b Fc(:)c(:)f(:)g(:)45 b Fb(121)2025 4157 y Fe +b Fc(:)c(:)f(:)g(:)45 b Fb(121)2025 4618 y Fe (possible-variable-completions)32 b(\(C-x)26 b($\))18 -b Fc(:)c(:)f(:)g(:)45 b Fb(121)2025 4245 y Fe(prefix-meta)28 +b Fc(:)c(:)f(:)g(:)45 b Fb(121)2025 4707 y Fe(prefix-meta)28 b(\(ESC\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38 -b Fb(122)2025 4333 y Fe(previous-history)29 b(\(C-p\))15 +b Fb(122)2025 4796 y Fe(previous-history)29 b(\(C-p\))15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)42 b Fb(116)2025 4421 y Fe(print-last-kbd-macro)30 +h(:)f(:)g(:)g(:)42 b Fb(116)2025 4885 y Fe(print-last-kbd-macro)30 b(\(\))13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(122)2025 4675 y Fr(Q)2025 -4793 y Fe(quoted-insert)28 b(\(C-q)f(or)f(C-v\))19 b +(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(122)2025 5146 y Fr(Q)2025 +5266 y Fe(quoted-insert)28 b(\(C-q)f(or)f(C-v\))19 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)46 b Fb(117)2025 5047 y Fr(R)2025 5164 y Fe(re-read-init-file)29 -b(\(C-x)e(C-r\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)36 b Fb(122)2025 5252 y Fe(redraw-current-line)30 -b(\(\))15 b Fc(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(115)2025 5340 y Fe -(reverse-search-history)30 b(\(C-r\))17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(116)p eop end -%%Page: 168 174 -TeXDict begin 168 173 bop 150 -116 a Ft(168)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fe(revert-line)d(\(M-r\))11 -b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(122)150 -540 y Fr(S)150 656 y Fe(self-insert)28 b(\(a,)e(b,)g(A,)g(1,)h(!,)f -(...\))7 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 -b Fb(117)150 743 y Fe(set-mark)27 b(\(C-@\))20 b Fc(:)13 +(:)46 b Fb(117)p eop end +%%Page: 165 171 +TeXDict begin 165 170 bop 150 -116 a Ft(App)s(endix)29 +b(D:)i(Indexes)2623 b(165)150 299 y Fr(R)150 426 y Fe +(re-read-init-file)29 b(\(C-x)e(C-r\))9 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(122)150 +519 y Fe(redraw-current-line)30 b(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42 +b Fb(115)150 612 y Fe(reverse-search-history)31 b(\(C-r\))17 +b Fc(:)d(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 +b Fb(116)150 705 y Fe(revert-line)28 b(\(M-r\))11 b Fc(:)j(:)f(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)38 b Fb(122)150 975 y Fr(S)150 1103 +y Fe(self-insert)28 b(\(a,)e(b,)g(A,)g(1,)h(!,)f(...\))7 +b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 +b Fb(117)150 1195 y Fe(set-mark)27 b(\(C-@\))20 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(122)150 -830 y Fe(shell-backward-kill-word)31 b(\(\))20 b Fc(:)13 +1288 y Fe(shell-backward-kill-word)31 b(\(\))20 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 -b Fb(119)150 917 y Fe(shell-backward-word)30 b(\(\))15 +b Fb(119)150 1381 y Fe(shell-backward-word)30 b(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)42 b Fb(115)150 1005 y Fe(shell-expand-line)29 +g(:)g(:)g(:)g(:)42 b Fb(115)150 1474 y Fe(shell-expand-line)29 b(\(M-C-e\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(123)150 1092 y Fe(shell-forward-word)c +(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(123)150 1567 y Fe(shell-forward-word)c (\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(115)150 1179 +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(115)150 1659 y Fe(shell-kill-word)29 b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)35 b Fb(119)150 1266 y Fe(skip-csi-sequence)29 b(\(\))21 +(:)35 b Fb(119)150 1752 y Fe(skip-csi-sequence)29 b(\(\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(122)150 1353 y Fe(start-kbd-macro)29 +(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(122)150 1845 y Fe(start-kbd-macro)29 b(\(C-x)e(\(\))19 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(121)150 1594 -y Fr(T)150 1710 y Fe(tilde-expand)28 b(\(M-&\))8 b Fc(:)15 -b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(122)150 1798 y -Fe(transpose-chars)29 b(\(C-t\))18 b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 -b Fb(118)2025 299 y Fe(transpose-words)29 b(\(M-t\))18 +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(121)2025 299 +y Fr(T)2025 415 y Fe(tilde-expand)28 b(\(M-&\))8 b Fc(:)15 +b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(122)2025 503 y +Fe(transpose-chars)29 b(\(C-t\))18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 +b Fb(118)2025 590 y Fe(transpose-words)29 b(\(M-t\))18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)45 b Fb(118)2025 566 y Fr(U)2025 -688 y Fe(undo)26 b(\(C-_)h(or)f(C-x)g(C-u\))c Fc(:)13 +g(:)g(:)g(:)g(:)g(:)45 b Fb(118)2025 843 y Fr(U)2025 +959 y Fe(undo)26 b(\(C-_)h(or)f(C-x)g(C-u\))c Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)48 b Fb(122)2025 778 y Fe(universal-argument)29 +(:)h(:)f(:)g(:)g(:)48 b Fb(122)2025 1047 y Fe(universal-argument)29 b(\(\))18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(119)2025 868 y -Fe(unix-filename-rubout)30 b(\(\))13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(119)2025 1134 +y Fe(unix-filename-rubout)30 b(\(\))13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40 -b Fb(119)2025 958 y Fe(unix-line-discard)29 b(\(C-u\))13 +b Fb(119)2025 1222 y Fe(unix-line-discard)29 b(\(C-u\))13 b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)40 b Fb(118)2025 1048 y Fe(unix-word-rubout)29 +g(:)g(:)g(:)40 b Fb(118)2025 1309 y Fe(unix-word-rubout)29 b(\(C-w\))15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(119)2025 1138 +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(119)2025 1396 y Fe(upcase-word)28 b(\(M-u\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)38 b Fb(118)2025 1405 y Fr(Y)2025 1527 y Fe(yank)26 +g(:)38 b Fb(118)2025 1649 y Fr(Y)2025 1766 y Fe(yank)26 b(\(C-y\))12 b Fc(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)39 b Fb(119)2025 1617 y Fe(yank-last-arg)28 +g(:)g(:)g(:)g(:)39 b Fb(119)2025 1853 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))19 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)46 b Fb(117)2025 1707 y Fe(yank-nth-arg)28 +(:)g(:)g(:)g(:)g(:)g(:)g(:)46 b Fb(117)2025 1940 y Fe(yank-nth-arg)28 b(\(M-C-y\))22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(117)2025 -1798 y Fe(yank-pop)27 b(\(M-y\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f +2028 y Fe(yank-pop)27 b(\(M-y\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)45 b Fb(119)150 2030 y Fr(D.5)68 -b(Concept)45 b(Index)150 2290 y(A)150 2408 y Fb(alias)27 +g(:)g(:)g(:)g(:)h(:)45 b Fb(119)150 2260 y Fr(D.5)68 +b(Concept)45 b(Index)150 2520 y(A)150 2640 y Fb(alias)27 b(expansion)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)44 b Fb(87)150 2496 y(arithmetic)26 b(ev)l(aluation)16 +h(:)44 b Fb(87)150 2729 y(arithmetic)26 b(ev)l(aluation)16 b Fc(:)e(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(86)150 2584 +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(86)150 2818 y(arithmetic)26 b(expansion)d Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 -b Fb(28)150 2672 y(arithmetic,)27 b(shell)17 b Fc(:)d(:)f(:)g(:)g(:)g +b Fb(28)150 2907 y(arithmetic,)27 b(shell)17 b Fc(:)d(:)f(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(86)150 2760 y(arra)n(ys)15 +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(86)150 2996 y(arra)n(ys)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)41 b Fb(88)150 3015 y Fr(B)150 -3133 y Fb(bac)n(kground)9 b Fc(:)j(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)g(:)g(:)g(:)g(:)h(:)f(:)41 b Fb(88)150 3255 y Fr(B)150 +3375 y Fb(bac)n(kground)9 b Fc(:)j(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(97)150 3221 y(Bash)26 +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(97)150 3464 y(Bash)26 b(con\014guration)d Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 -b Fb(139)150 3309 y(Bash)26 b(installation)c Fc(:)13 +b Fb(138)150 3553 y(Bash)26 b(installation)c Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Fb(139)150 -3397 y(Bourne)26 b(shell)13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Fb(138)150 +3642 y(Bourne)26 b(shell)13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(5)150 3486 +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(5)150 3731 y(brace)26 b(expansion)20 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)47 b Fb(21)150 3574 y(builtin)9 b Fc(:)k(:)g(:)g(:)g(:) +g(:)g(:)g(:)g(:)47 b Fb(21)150 3820 y(builtin)9 b Fc(:)k(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)36 b Fb(3)150 3812 y Fr(C)150 3930 y Fb(command)26 +g(:)g(:)36 b Fb(3)150 4063 y Fr(C)150 4182 y Fb(command)26 b(editing)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40 -b Fb(102)150 4018 y(command)26 b(execution)d Fc(:)13 +b Fb(102)150 4272 y(command)26 b(execution)d Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Fb(35)150 4106 +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Fb(35)150 4361 y(command)26 b(expansion)16 b Fc(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42 -b Fb(34)150 4194 y(command)26 b(history)12 b Fc(:)h(:)g(:)g(:)g(:)g(:)h +b Fb(34)150 4450 y(command)26 b(history)12 b Fc(:)h(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)39 b Fb(133)150 4282 y(command)26 +g(:)g(:)g(:)g(:)g(:)39 b Fb(133)150 4539 y(command)26 b(searc)n(h)10 b Fc(:)j(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -36 b Fb(35)150 4370 y(command)26 b(substitution)15 b +36 b Fb(35)150 4628 y(command)26 b(substitution)15 b Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Fb(27)150 4458 y(command)26 +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Fb(27)150 4717 y(command)26 b(timing)7 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)34 b Fb(8)150 4547 y(commands,)26 b(comp)r(ound)18 +g(:)34 b Fb(8)150 4806 y(commands,)26 b(comp)r(ound)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(9)150 4635 +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(9)150 4895 y(commands,)26 b(conditional)d Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 -b Fb(10)150 4723 y(commands,)26 b(grouping)9 b Fc(:)14 +b Fb(10)150 4984 y(commands,)26 b(grouping)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(14)150 4811 +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(14)150 5073 y(commands,)26 b(lists)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(9)150 4899 y(commands,)26 +(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(9)150 5162 y(commands,)26 b(lo)r(oping)16 b Fc(:)f(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42 -b Fb(10)150 4987 y(commands,)26 b(pip)r(elines)12 b Fc(:)i(:)f(:)g(:)g +b Fb(10)150 5251 y(commands,)26 b(pip)r(elines)12 b Fc(:)i(:)f(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(8)150 5076 y(commands,)26 +g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(8)150 5340 y(commands,)26 b(shell)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -42 b Fb(8)150 5164 y(commands,)26 b(simple)17 b Fc(:)d(:)g(:)f(:)g(:)g +42 b Fb(8)2025 2520 y(commands,)26 b(simple)17 b Fc(:)d(:)f(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)44 b Fb(8)2025 2609 y(commen)n(ts,)26 +b(shell)7 b Fc(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(8)150 5252 y(commen)n(ts,)26 -b(shell)7 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)34 b Fb(7)150 5340 y(completion)27 b(builtins)15 -b Fc(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42 b Fb(126)2025 -2290 y(con\014guration)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +g(:)g(:)35 b Fb(7)2025 2698 y(completion)26 b(builtins)15 +b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(126)2025 +2787 y(con\014guration)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)42 b Fb(139)2025 2380 y(con)n(trol)26 +g(:)g(:)h(:)f(:)g(:)42 b Fb(138)2025 2875 y(con)n(trol)26 b(op)r(erator)20 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)h(:)46 b Fb(3)2025 2470 y(copro)r(cess)12 b Fc(:)i(:)f(:)g(:)h +(:)g(:)h(:)46 b Fb(3)2025 2964 y(copro)r(cess)12 b Fc(:)i(:)f(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)38 -b Fb(15)2025 2733 y Fr(D)2025 2854 y Fb(directory)26 +b Fb(15)2025 3222 y Fr(D)2025 3342 y Fb(directory)26 b(stac)n(k)c Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)49 b Fb(89)2025 3118 y Fr(E)2025 3239 y Fb(editing)26 +g(:)49 b Fb(90)2025 3600 y Fr(E)2025 3719 y Fb(editing)26 b(command)g(lines)11 b Fc(:)i(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38 -b Fb(102)2025 3329 y(en)n(vironmen)n(t)12 b Fc(:)g(:)h(:)g(:)h(:)f(:)g +b Fb(102)2025 3808 y(en)n(vironmen)n(t)12 b Fc(:)g(:)h(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(37)2025 -3419 y(ev)l(aluation,)26 b(arithmetic)e Fc(:)13 b(:)g(:)g(:)g(:)g(:)g +3897 y(ev)l(aluation,)26 b(arithmetic)e Fc(:)13 b(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)49 b Fb(86)2025 3509 y(ev)n(en)n(t)24 b(designators)14 +g(:)49 b Fb(86)2025 3985 y(ev)n(en)n(t)24 b(designators)14 b Fc(:)h(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)41 b -Fb(136)2025 3599 y(execution)25 b(en)n(vironmen)n(t)11 +Fb(136)2025 4074 y(execution)25 b(en)n(vironmen)n(t)11 b Fc(:)i(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)37 b Fb(36)2025 3688 +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)37 b Fb(36)2025 4163 y(exit)25 b(status)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)45 b Fb(3,)26 b(37)2025 3778 y(expansion)20 +h(:)f(:)g(:)g(:)g(:)45 b Fb(3,)26 b(37)2025 4252 y(expansion)20 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)47 b Fb(20)2025 3868 y(expansion,)26 b(arithmetic)12 +g(:)g(:)g(:)47 b Fb(20)2025 4341 y(expansion,)26 b(arithmetic)12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(28)2025 3958 +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(28)2025 4430 y(expansion,)26 b(brace)10 b Fc(:)j(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)36 b Fb(21)2025 4048 y(expansion,)26 b(\014lename)12 +h(:)f(:)g(:)36 b Fb(21)2025 4518 y(expansion,)26 b(\014lename)12 b Fc(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)38 b Fb(29)2025 -4138 y(expansion,)26 b(parameter)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:) +4607 y(expansion,)26 b(parameter)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)40 b Fb(22)2025 4228 y(expansion,)26 b(pathname)18 +(:)40 b Fb(22)2025 4696 y(expansion,)26 b(pathname)18 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(29)2025 -4317 y(expansion,)26 b(tilde)8 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g +4785 y(expansion,)26 b(tilde)8 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(21)2025 4407 y(expressions,)27 +g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(21)2025 4874 y(expressions,)27 b(arithmetic)7 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 -b Fb(86)2025 4497 y(expressions,)27 b(conditional)11 +b Fb(86)2025 4963 y(expressions,)27 b(conditional)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 b Fb(84)2025 4760 y Fr(F)2025 -4882 y Fb(\014eld)15 b Fc(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 b Fb(84)2025 5221 y Fr(F)2025 +5340 y Fb(\014eld)15 b Fc(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42 -b Fb(3)2025 4972 y(\014lename)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)42 -b Fb(3)2025 5062 y(\014lename)26 b(expansion)c Fc(:)14 -b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Fb(29)2025 -5151 y(foreground)23 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)49 b Fb(97)2025 5241 y(functions,)26 -b(shell)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)47 b Fb(16)p eop end -%%Page: 169 175 -TeXDict begin 169 174 bop 150 -116 a Ft(App)s(endix)29 -b(D:)i(Indexes)2623 b(169)150 299 y Fr(H)150 415 y Fb(history)26 -b(builtins)14 b Fc(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -40 b Fb(133)150 502 y(history)26 b(ev)n(en)n(ts)18 b -Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)46 -b Fb(136)150 589 y(history)26 b(expansion)8 b Fc(:)13 -b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(135)150 -676 y(history)26 b(list)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(133)150 764 y(History)-6 -b(,)26 b(ho)n(w)g(to)f(use)13 b Fc(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -39 b Fb(132)150 1013 y Fr(I)150 1129 y Fb(iden)n(ti\014er)22 -b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +b Fb(3)p eop end +%%Page: 166 172 +TeXDict begin 166 171 bop 150 -116 a Ft(App)s(endix)29 +b(D:)i(Indexes)2623 b(166)150 299 y Fb(\014lename)15 +b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)42 b Fb(3)150 386 y(\014lename)26 +b(expansion)d Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 +b Fb(29)150 473 y(foreground)24 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)50 b Fb(3)150 1216 y(initialization)28 -b(\014le,)e(readline)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(104)150 -1304 y(installation)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(139)150 1391 y(in)n(teraction,)27 -b(readline)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)45 -b Fb(101)150 1478 y(in)n(teractiv)n(e)26 b(shell)14 b -Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(81,)26 -b(82)150 1565 y(in)n(ternationalization)14 b Fc(:)h(:)f(:)f(:)g(:)g(:)g +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49 b Fb(97)150 +561 y(functions,)26 b(shell)21 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)47 b Fb(16)150 811 y Fr(H)150 +927 y Fb(history)26 b(builtins)14 b Fc(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)40 b Fb(133)150 1014 y(history)26 +b(ev)n(en)n(ts)18 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)46 b Fb(136)150 1101 y(history)26 b(expansion)8 +b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 +b Fb(135)150 1189 y(history)26 b(list)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(133)150 +1276 y(History)-6 b(,)26 b(ho)n(w)g(to)f(use)13 b Fc(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)39 b Fb(132)150 1526 y Fr(I)150 1642 +y Fb(iden)n(ti\014er)22 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)50 b Fb(3)150 +1729 y(initialization)28 b(\014le,)e(readline)11 b Fc(:)j(:)f(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)38 +b Fb(104)150 1816 y(installation)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(138)150 +1904 y(in)n(teraction,)27 b(readline)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)45 b Fb(101)150 1991 y(in)n(teractiv)n(e)26 b(shell)14 +b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(81,)26 +b(82)150 2078 y(in)n(ternationalization)14 b Fc(:)h(:)f(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)41 b Fb(7)150 1798 y Fr(J)150 1914 +g(:)h(:)f(:)g(:)g(:)41 b Fb(7)150 2311 y Fr(J)150 2428 y Fb(job)16 b Fc(:)e(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)43 -b Fb(3)150 2001 y(job)26 b(con)n(trol)13 b Fc(:)h(:)f(:)g(:)g(:)h(:)f +b Fb(3)150 2515 y(job)26 b(con)n(trol)13 b Fc(:)h(:)f(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)40 b Fb(3,)26 -b(97)150 2251 y Fr(K)150 2367 y Fb(kill)g(ring)19 b Fc(:)13 +b(97)150 2765 y Fr(K)150 2881 y Fb(kill)g(ring)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)45 b Fb(103)150 2454 y(killing)27 b(text)17 b +f(:)g(:)45 b Fb(103)150 2968 y(killing)27 b(text)17 b Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -44 b Fb(103)150 2704 y Fr(L)150 2820 y Fb(lo)r(calization)14 +44 b Fb(103)150 3218 y Fr(L)150 3334 y Fb(lo)r(calization)14 b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)41 b Fb(7)150 2907 y(login)27 b(shell)17 b +(:)f(:)g(:)41 b Fb(7)150 3421 y(login)27 b(shell)17 b Fc(:)d(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)44 b Fb(81)150 3156 y Fr(M)150 3272 y Fb(matc)n(hing,)26 +g(:)g(:)44 b Fb(81)150 3671 y Fr(M)150 3788 y Fb(matc)n(hing,)26 b(pattern)20 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 -b Fb(29)150 3360 y(metac)n(haracter)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)g +b Fb(29)150 3875 y(metac)n(haracter)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(3)150 3592 -y Fr(N)150 3708 y Fb(name)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(3)150 4108 +y Fr(N)150 4224 y Fb(name)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)40 -b Fb(3)150 3796 y(nativ)n(e)25 b(languages)13 b Fc(:)i(:)e(:)g(:)h(:)f +b Fb(3)150 4311 y(nativ)n(e)25 b(languages)13 b Fc(:)i(:)e(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40 b Fb(7)150 3883 +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40 b Fb(7)150 4399 y(notation,)27 b(readline)7 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)33 b Fb(102)150 4132 y Fr(O)150 4248 y Fb(op)r(erator,)27 +g(:)h(:)33 b Fb(102)150 4649 y Fr(O)150 4765 y Fb(op)r(erator,)27 b(shell)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)43 b Fb(3)150 4498 y Fr(P)150 4614 y Fb(parameter)26 +g(:)g(:)43 b Fb(3)150 5015 y Fr(P)150 5131 y Fb(parameter)26 b(expansion)7 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)34 -b Fb(22)150 4701 y(parameters)17 b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g +b Fb(22)150 5218 y(parameters)17 b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)43 b Fb(18)150 -4788 y(parameters,)27 b(p)r(ositional)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g +5305 y(parameters,)27 b(p)r(ositional)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)44 b Fb(19)150 4876 y(parameters,)27 b(sp)r(ecial)18 -b Fc(:)c(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)44 b Fb(19)150 -4963 y(pathname)25 b(expansion)12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)38 b Fb(29)150 5050 y(pattern)25 b(matc)n(hing)14 -b Fc(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)40 -b Fb(29)2025 299 y(pip)r(eline)23 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g +g(:)44 b Fb(19)2025 299 y(parameters,)27 b(sp)r(ecial)18 +b Fc(:)c(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(19)2025 +386 y(pathname)25 b(expansion)12 b Fc(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)38 b Fb(29)2025 474 y(pattern)25 b(matc)n(hing)14 +b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)41 +b Fb(29)2025 561 y(pip)r(eline)23 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)50 -b Fb(8)2025 386 y(POSIX)17 b Fc(:)12 b(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g +b Fb(8)2025 649 y(POSIX)17 b Fc(:)12 b(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)44 -b Fb(3)2025 474 y(POSIX)24 b(Mo)r(de)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)g(:) +b Fb(3)2025 736 y(POSIX)24 b(Mo)r(de)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37 b Fb(92)2025 -562 y(pro)r(cess)26 b(group)9 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37 b Fb(93)2025 +824 y(pro)r(cess)26 b(group)9 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(3)2025 649 +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(3)2025 911 y(pro)r(cess)26 b(group)g(ID)21 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)49 b Fb(3)2025 737 y(pro)r(cess)26 +f(:)g(:)g(:)g(:)g(:)49 b Fb(3)2025 999 y(pro)r(cess)26 b(substitution)c Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)48 -b Fb(28)2025 824 y(programmable)27 b(completion)20 b +b Fb(28)2025 1086 y(programmable)27 b(completion)20 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)46 b Fb(124)2025 912 y(prompting)11 b +(:)g(:)h(:)f(:)46 b Fb(124)2025 1174 y(prompting)11 b Fc(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)38 b Fb(91)2025 1163 y Fr(Q)2025 1280 y Fb(quoting)10 +g(:)g(:)38 b Fb(91)2025 1425 y Fr(Q)2025 1541 y Fb(quoting)10 b Fc(:)j(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)37 b Fb(6)2025 1368 y(quoting,)26 +(:)g(:)g(:)g(:)h(:)f(:)g(:)37 b Fb(6)2025 1629 y(quoting,)26 b(ANSI)13 b Fc(:)e(:)j(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)40 b Fb(6)2025 1619 y Fr(R)2025 1736 y Fb(Readline,)26 +h(:)f(:)40 b Fb(6)2025 1880 y Fr(R)2025 1997 y Fb(Readline,)26 b(ho)n(w)g(to)g(use)c Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49 -b Fb(100)2025 1824 y(redirection)7 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g +b Fb(100)2025 2084 y(redirection)7 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b -Fb(31)2025 1911 y(reserv)n(ed)25 b(w)n(ord)7 b Fc(:)14 +Fb(31)2025 2172 y(reserv)n(ed)25 b(w)n(ord)7 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34 -b Fb(3)2025 1999 y(restricted)26 b(shell)8 b Fc(:)14 +b Fb(3)2025 2259 y(restricted)26 b(shell)8 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)35 -b Fb(92)2025 2086 y(return)25 b(status)c Fc(:)13 b(:)h(:)f(:)g(:)g(:)g +b Fb(92)2025 2346 y(return)25 b(status)c Fc(:)13 b(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)48 b Fb(4)2025 -2321 y Fr(S)2025 2438 y Fb(shell)26 b(arithmetic)11 b +2581 y Fr(S)2025 2697 y Fb(shell)26 b(arithmetic)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)37 -b Fb(86)2025 2526 y(shell)26 b(function)12 b Fc(:)h(:)g(:)h(:)f(:)g(:)g +b Fb(86)2025 2785 y(shell)26 b(function)12 b Fc(:)h(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)38 b Fb(16)2025 -2613 y(shell)26 b(script)c Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +2872 y(shell)26 b(script)c Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(38)2025 2701 +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(38)2025 2960 y(shell)26 b(v)l(ariable)18 b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(18)2025 2788 y(shell,)26 +(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(18)2025 3047 y(shell,)26 b(in)n(teractiv)n(e)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)h(:)40 b Fb(82)2025 2876 y(signal)7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h +g(:)h(:)40 b Fb(82)2025 3135 y(signal)7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)34 b Fb(4)2025 2964 y(signal)27 b(handling)17 +(:)g(:)34 b Fb(4)2025 3222 y(signal)27 b(handling)17 b Fc(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)44 -b Fb(38)2025 3051 y(sp)r(ecial)27 b(builtin)10 b Fc(:)j(:)g(:)g(:)g(:)g +b Fb(38)2025 3310 y(sp)r(ecial)27 b(builtin)10 b Fc(:)j(:)g(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(4,)26 b(67)2025 -3139 y(startup)f(\014les)d Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +3397 y(startup)f(\014les)d Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(81)2025 3226 y(susp)r(ending)25 +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(81)2025 3485 y(susp)r(ending)25 b(jobs)6 b Fc(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)33 b Fb(97)2025 3478 y Fr(T)2025 3595 y Fb(tilde)26 +(:)33 b Fb(97)2025 3736 y Fr(T)2025 3853 y Fb(tilde)26 b(expansion)18 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)45 b Fb(21)2025 3682 y(tok)n(en)11 b Fc(:)h(:)i(:)f(:)g(:)g(:)g +g(:)g(:)45 b Fb(21)2025 3940 y(tok)n(en)11 b Fc(:)h(:)i(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)38 b Fb(4)2025 3770 y(translation,)27 b(nativ)n(e)e(languages)13 +(:)g(:)38 b Fb(4)2025 4027 y(translation,)27 b(nativ)n(e)e(languages)13 b Fc(:)i(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)40 b Fb(7)2025 4021 y Fr(V)2025 4138 y Fb(v)l(ariable,)26 +g(:)g(:)g(:)40 b Fb(7)2025 4279 y Fr(V)2025 4395 y Fb(v)l(ariable,)26 b(shell)8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)34 b Fb(18)2025 4226 y(v)l(ariables,)27 b(readline)18 +f(:)g(:)g(:)34 b Fb(18)2025 4483 y(v)l(ariables,)27 b(readline)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)45 b Fb(105)2025 -4477 y Fr(W)2025 4594 y Fb(w)n(ord)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h +4734 y Fr(W)2025 4850 y Fb(w)n(ord)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)48 b Fb(4)2025 4682 y(w)n(ord)26 b(splitting)21 +(:)g(:)48 b Fb(4)2025 4938 y(w)n(ord)26 b(splitting)21 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 -b Fb(28)2025 4933 y Fr(Y)2025 5050 y Fb(y)n(anking)25 +b Fb(28)2025 5189 y Fr(Y)2025 5305 y Fb(y)n(anking)25 b(text)7 b Fc(:)12 b(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)34 b Fb(103)p eop end -%%Page: 170 176 -TeXDict begin 170 175 bop eop end %%Trailer userdict /end-hook known{end-hook}if diff --git a/doc/bashref.texi b/doc/bashref.texi index 4463ec0e..f2f5838d 100644 --- a/doc/bashref.texi +++ b/doc/bashref.texi @@ -3615,7 +3615,7 @@ 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 following the @code{if} or @code{elif} reserved words, part of a command executed in a @code{&&} or @code{||} list -except the command following the final @code{&&) or @code{||}, +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{!}. @@ -5314,7 +5314,7 @@ in which case it is the command executing at the time of the trap. @item BASH_COMPAT The value is used to set the shell's compatibility level. -@xref{The Shopt Builtin} for a description of the various compatibility +@xref{The Shopt Builtin}, for a description of the various compatibility levels and their effects. The value may be a decimal number (e.g., 4.2) or an integer (e.g., 42) corresponding to the desired compatibility level. @@ -5419,8 +5419,9 @@ The minimum value is system-dependent. @item COLUMNS Used by the @code{select} command to determine the terminal width -when printing selection lists. Automatically set by an interactive shell -upon receipt of a +when printing selection lists. +Automatically set if the @code{checkwinsize} option is enabled +(@pxref{The Shopt Builtin}), or in an interactive shell upon receipt of a @code{SIGWINCH}. @item COMP_CWORD @@ -5716,8 +5717,9 @@ The line number in the script or shell function currently executing. @item LINES Used by the @code{select} command to determine the column length -for printing selection lists. Automatically set by an interactive shell -upon receipt of a +for printing selection lists. +Automatically set if the @code{checkwinsize} option is enabled +(@pxref{The Shopt Builtin}), or in an interactive shell upon receipt of a @code{SIGWINCH}. @item MACHTYPE diff --git a/doc/bashref.tmp b/doc/bashref.tmp index 21d0d90f..e37dd0c9 100644 --- a/doc/bashref.tmp +++ b/doc/bashref.tmp @@ -6,11 +6,7 @@ This is Edition @value{EDITION}, last updated @value{UPDATED}, of @cite{The GNU Bash Reference Manual}, for @code{Bash}, Version @value{VERSION}. -Copyright @copyright{} 1988--2012 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 preserved on all copies. +Copyright @copyright{} 1988--2013 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -19,6 +15,5 @@ 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''. - @end quotation @endinput diff --git a/doc/bashref.toc b/doc/bashref.toc index ff69f3ce..882988cb 100644 --- a/doc/bashref.toc +++ b/doc/bashref.toc @@ -36,7 +36,7 @@ @numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{28} @numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{29} @numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{29} -@numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{30} +@numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{31} @numsecentry{Redirections}{3.6}{Redirections}{31} @numsubsecentry{Redirecting Input}{3.6.1}{}{32} @numsubsecentry{Redirecting Output}{3.6.2}{}{32} @@ -45,7 +45,7 @@ @numsubsecentry{Appending Standard Output and Standard Error}{3.6.5}{}{33} @numsubsecentry{Here Documents}{3.6.6}{}{33} @numsubsecentry{Here Strings}{3.6.7}{}{33} -@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{33} +@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{34} @numsubsecentry{Moving File Descriptors}{3.6.9}{}{34} @numsubsecentry{Opening File Descriptors for Reading and Writing}{3.6.10}{}{34} @numsecentry{Executing Commands}{3.7}{Executing Commands}{34} @@ -56,16 +56,16 @@ @numsubsecentry{Exit Status}{3.7.5}{Exit Status}{37} @numsubsecentry{Signals}{3.7.6}{Signals}{38} @numsecentry{Shell Scripts}{3.8}{Shell Scripts}{38} -@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{41} -@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{41} -@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{48} -@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{58} -@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{58} -@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{62} +@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{40} +@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{40} +@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{47} +@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{57} +@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{57} +@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{61} @numsecentry{Special Builtins}{4.4}{Special Builtins}{67} -@numchapentry{Shell Variables}{5}{Shell Variables}{69} -@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{69} -@numsecentry{Bash Variables}{5.2}{Bash Variables}{69} +@numchapentry{Shell Variables}{5}{Shell Variables}{68} +@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{68} +@numsecentry{Bash Variables}{5.2}{Bash Variables}{68} @numchapentry{Bash Features}{6}{Bash Features}{79} @numsecentry{Invoking Bash}{6.1}{Invoking Bash}{79} @numsecentry{Bash Startup Files}{6.2}{Bash Startup Files}{81} @@ -77,11 +77,11 @@ @numsecentry{Shell Arithmetic}{6.5}{Shell Arithmetic}{86} @numsecentry{Aliases}{6.6}{Aliases}{87} @numsecentry{Arrays}{6.7}{Arrays}{88} -@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{89} -@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{89} +@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{90} +@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{90} @numsecentry{Controlling the Prompt}{6.9}{Controlling the Prompt}{91} @numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{92} -@numsecentry{Bash POSIX Mode}{6.11}{Bash POSIX Mode}{92} +@numsecentry{Bash POSIX Mode}{6.11}{Bash POSIX Mode}{93} @numchapentry{Job Control}{7}{Job Control}{97} @numsecentry{Job Control Basics}{7.1}{Job Control Basics}{97} @numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{98} @@ -118,22 +118,22 @@ @numsubsecentry{Event Designators}{9.3.1}{Event Designators}{136} @numsubsecentry{Word Designators}{9.3.2}{Word Designators}{136} @numsubsecentry{Modifiers}{9.3.3}{Modifiers}{137} -@numchapentry{Installing Bash}{10}{Installing Bash}{139} -@numsecentry{Basic Installation}{10.1}{Basic Installation}{139} -@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{140} -@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{140} -@numsecentry{Installation Names}{10.4}{Installation Names}{140} -@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{140} -@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{141} -@numsecentry{Operation Controls}{10.7}{Operation Controls}{141} -@numsecentry{Optional Features}{10.8}{Optional Features}{141} -@appentry{Reporting Bugs}{A}{Reporting Bugs}{147} -@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{149} -@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{153} -@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{155} -@appentry{Indexes}{D}{Indexes}{163} -@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{163} -@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{164} -@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{164} -@appsecentry{Function Index}{D.4}{Function Index}{166} -@appsecentry{Concept Index}{D.5}{Concept Index}{168} +@numchapentry{Installing Bash}{10}{Installing Bash}{138} +@numsecentry{Basic Installation}{10.1}{Basic Installation}{138} +@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{139} +@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{139} +@numsecentry{Installation Names}{10.4}{Installation Names}{139} +@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{139} +@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{140} +@numsecentry{Operation Controls}{10.7}{Operation Controls}{140} +@numsecentry{Optional Features}{10.8}{Optional Features}{140} +@appentry{Reporting Bugs}{A}{Reporting Bugs}{145} +@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{146} +@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{150} +@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{152} +@appentry{Indexes}{D}{Indexes}{160} +@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{160} +@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{161} +@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{161} +@appsecentry{Function Index}{D.4}{Function Index}{163} +@appsecentry{Concept Index}{D.5}{Concept Index}{165} diff --git a/doc/bashref.vr b/doc/bashref.vr index d5064ceb..0107c8f0 100644 --- a/doc/bashref.vr +++ b/doc/bashref.vr @@ -4,81 +4,83 @@ \entry{*}{19}{\code {*}} \entry{@}{19}{\code {@}} \entry{#}{19}{\code {#}} -\entry{?}{19}{\code {?}} -\entry{-}{19}{\code {-}} +\entry{?}{20}{\code {?}} +\entry{-}{20}{\code {-}} \entry{$}{20}{\code {$}} \entry{!}{20}{\code {!}} \entry{0}{20}{\code {0}} \entry{_}{20}{\code {_}} -\entry{CDPATH}{69}{\code {CDPATH}} -\entry{HOME}{69}{\code {HOME}} -\entry{IFS}{69}{\code {IFS}} -\entry{MAIL}{69}{\code {MAIL}} -\entry{MAILPATH}{69}{\code {MAILPATH}} -\entry{OPTARG}{69}{\code {OPTARG}} -\entry{OPTIND}{69}{\code {OPTIND}} -\entry{PATH}{69}{\code {PATH}} -\entry{PS1}{69}{\code {PS1}} -\entry{PS2}{69}{\code {PS2}} -\entry{BASH}{69}{\code {BASH}} -\entry{BASHOPTS}{70}{\code {BASHOPTS}} -\entry{BASHPID}{70}{\code {BASHPID}} -\entry{BASH_ALIASES}{70}{\code {BASH_ALIASES}} -\entry{BASH_ARGC}{70}{\code {BASH_ARGC}} -\entry{BASH_ARGV}{70}{\code {BASH_ARGV}} -\entry{BASH_CMDS}{70}{\code {BASH_CMDS}} -\entry{BASH_COMMAND}{70}{\code {BASH_COMMAND}} +\entry{CDPATH}{68}{\code {CDPATH}} +\entry{HOME}{68}{\code {HOME}} +\entry{IFS}{68}{\code {IFS}} +\entry{MAIL}{68}{\code {MAIL}} +\entry{MAILPATH}{68}{\code {MAILPATH}} +\entry{OPTARG}{68}{\code {OPTARG}} +\entry{OPTIND}{68}{\code {OPTIND}} +\entry{PATH}{68}{\code {PATH}} +\entry{PS1}{68}{\code {PS1}} +\entry{PS2}{68}{\code {PS2}} +\entry{BASH}{68}{\code {BASH}} +\entry{BASHOPTS}{69}{\code {BASHOPTS}} +\entry{BASHPID}{69}{\code {BASHPID}} +\entry{BASH_ALIASES}{69}{\code {BASH_ALIASES}} +\entry{BASH_ARGC}{69}{\code {BASH_ARGC}} +\entry{BASH_ARGV}{69}{\code {BASH_ARGV}} +\entry{BASH_CMDS}{69}{\code {BASH_CMDS}} +\entry{BASH_COMMAND}{69}{\code {BASH_COMMAND}} +\entry{BASH_COMPAT}{69}{\code {BASH_COMPAT}} \entry{BASH_ENV}{70}{\code {BASH_ENV}} \entry{BASH_EXECUTION_STRING}{70}{\code {BASH_EXECUTION_STRING}} -\entry{BASH_LINENO}{71}{\code {BASH_LINENO}} -\entry{BASH_REMATCH}{71}{\code {BASH_REMATCH}} -\entry{BASH_SOURCE}{71}{\code {BASH_SOURCE}} -\entry{BASH_SUBSHELL}{71}{\code {BASH_SUBSHELL}} -\entry{BASH_VERSINFO}{71}{\code {BASH_VERSINFO}} +\entry{BASH_LINENO}{70}{\code {BASH_LINENO}} +\entry{BASH_REMATCH}{70}{\code {BASH_REMATCH}} +\entry{BASH_SOURCE}{70}{\code {BASH_SOURCE}} +\entry{BASH_SUBSHELL}{70}{\code {BASH_SUBSHELL}} +\entry{BASH_VERSINFO}{70}{\code {BASH_VERSINFO}} \entry{BASH_VERSION}{71}{\code {BASH_VERSION}} \entry{BASH_XTRACEFD}{71}{\code {BASH_XTRACEFD}} -\entry{COLUMNS}{72}{\code {COLUMNS}} -\entry{COMP_CWORD}{72}{\code {COMP_CWORD}} -\entry{COMP_LINE}{72}{\code {COMP_LINE}} -\entry{COMP_POINT}{72}{\code {COMP_POINT}} +\entry{CHILD_MAX}{71}{\code {CHILD_MAX}} +\entry{COLUMNS}{71}{\code {COLUMNS}} +\entry{COMP_CWORD}{71}{\code {COMP_CWORD}} +\entry{COMP_LINE}{71}{\code {COMP_LINE}} +\entry{COMP_POINT}{71}{\code {COMP_POINT}} \entry{COMP_TYPE}{72}{\code {COMP_TYPE}} \entry{COMP_KEY}{72}{\code {COMP_KEY}} \entry{COMP_WORDBREAKS}{72}{\code {COMP_WORDBREAKS}} \entry{COMP_WORDS}{72}{\code {COMP_WORDS}} -\entry{COMPREPLY}{73}{\code {COMPREPLY}} -\entry{COPROC}{73}{\code {COPROC}} -\entry{DIRSTACK}{73}{\code {DIRSTACK}} -\entry{EMACS}{73}{\code {EMACS}} -\entry{ENV}{73}{\code {ENV}} -\entry{EUID}{73}{\code {EUID}} -\entry{FCEDIT}{73}{\code {FCEDIT}} +\entry{COMPREPLY}{72}{\code {COMPREPLY}} +\entry{COPROC}{72}{\code {COPROC}} +\entry{DIRSTACK}{72}{\code {DIRSTACK}} +\entry{EMACS}{72}{\code {EMACS}} +\entry{ENV}{72}{\code {ENV}} +\entry{EUID}{72}{\code {EUID}} +\entry{FCEDIT}{72}{\code {FCEDIT}} \entry{FIGNORE}{73}{\code {FIGNORE}} \entry{FUNCNAME}{73}{\code {FUNCNAME}} \entry{FUNCNEST}{73}{\code {FUNCNEST}} \entry{GLOBIGNORE}{73}{\code {GLOBIGNORE}} -\entry{GROUPS}{74}{\code {GROUPS}} -\entry{histchars}{74}{\code {histchars}} -\entry{HISTCMD}{74}{\code {HISTCMD}} -\entry{HISTCONTROL}{74}{\code {HISTCONTROL}} +\entry{GROUPS}{73}{\code {GROUPS}} +\entry{histchars}{73}{\code {histchars}} +\entry{HISTCMD}{73}{\code {HISTCMD}} +\entry{HISTCONTROL}{73}{\code {HISTCONTROL}} \entry{HISTFILE}{74}{\code {HISTFILE}} \entry{HISTFILESIZE}{74}{\code {HISTFILESIZE}} \entry{HISTIGNORE}{74}{\code {HISTIGNORE}} -\entry{HISTSIZE}{75}{\code {HISTSIZE}} -\entry{HISTTIMEFORMAT}{75}{\code {HISTTIMEFORMAT}} -\entry{HOSTFILE}{75}{\code {HOSTFILE}} +\entry{HISTSIZE}{74}{\code {HISTSIZE}} +\entry{HISTTIMEFORMAT}{74}{\code {HISTTIMEFORMAT}} +\entry{HOSTFILE}{74}{\code {HOSTFILE}} \entry{HOSTNAME}{75}{\code {HOSTNAME}} \entry{HOSTTYPE}{75}{\code {HOSTTYPE}} \entry{IGNOREEOF}{75}{\code {IGNOREEOF}} \entry{INPUTRC}{75}{\code {INPUTRC}} \entry{LANG}{75}{\code {LANG}} \entry{LC_ALL}{75}{\code {LC_ALL}} -\entry{LC_COLLATE}{76}{\code {LC_COLLATE}} -\entry{LC_CTYPE}{76}{\code {LC_CTYPE}} -\entry{LC_MESSAGES}{76}{\code {LC_MESSAGES}} -\entry{LC_NUMERIC}{76}{\code {LC_NUMERIC}} -\entry{LINENO}{76}{\code {LINENO}} -\entry{LINES}{76}{\code {LINES}} -\entry{MACHTYPE}{76}{\code {MACHTYPE}} +\entry{LC_COLLATE}{75}{\code {LC_COLLATE}} +\entry{LC_CTYPE}{75}{\code {LC_CTYPE}} +\entry{LC_MESSAGES}{75}{\code {LC_MESSAGES}} +\entry{LC_NUMERIC}{75}{\code {LC_NUMERIC}} +\entry{LINENO}{75}{\code {LINENO}} +\entry{LINES}{75}{\code {LINES}} +\entry{MACHTYPE}{75}{\code {MACHTYPE}} \entry{MAILCHECK}{76}{\code {MAILCHECK}} \entry{MAPFILE}{76}{\code {MAPFILE}} \entry{OLDPWD}{76}{\code {OLDPWD}} @@ -86,13 +88,13 @@ \entry{OSTYPE}{76}{\code {OSTYPE}} \entry{PIPESTATUS}{76}{\code {PIPESTATUS}} \entry{POSIXLY_CORRECT}{76}{\code {POSIXLY_CORRECT}} -\entry{PPID}{77}{\code {PPID}} -\entry{PROMPT_COMMAND}{77}{\code {PROMPT_COMMAND}} -\entry{PROMPT_DIRTRIM}{77}{\code {PROMPT_DIRTRIM}} -\entry{PS3}{77}{\code {PS3}} -\entry{PS4}{77}{\code {PS4}} -\entry{PWD}{77}{\code {PWD}} -\entry{RANDOM}{77}{\code {RANDOM}} +\entry{PPID}{76}{\code {PPID}} +\entry{PROMPT_COMMAND}{76}{\code {PROMPT_COMMAND}} +\entry{PROMPT_DIRTRIM}{76}{\code {PROMPT_DIRTRIM}} +\entry{PS3}{76}{\code {PS3}} +\entry{PS4}{76}{\code {PS4}} +\entry{PWD}{76}{\code {PWD}} +\entry{RANDOM}{76}{\code {RANDOM}} \entry{READLINE_LINE}{77}{\code {READLINE_LINE}} \entry{READLINE_POINT}{77}{\code {READLINE_POINT}} \entry{REPLY}{77}{\code {REPLY}} @@ -100,7 +102,7 @@ \entry{SHELL}{77}{\code {SHELL}} \entry{SHELLOPTS}{77}{\code {SHELLOPTS}} \entry{SHLVL}{77}{\code {SHLVL}} -\entry{TIMEFORMAT}{78}{\code {TIMEFORMAT}} +\entry{TIMEFORMAT}{77}{\code {TIMEFORMAT}} \entry{TMOUT}{78}{\code {TMOUT}} \entry{TMPDIR}{78}{\code {TMPDIR}} \entry{UID}{78}{\code {UID}} @@ -135,5 +137,6 @@ \entry{revert-all-at-newline}{108}{\code {revert-all-at-newline}} \entry{show-all-if-ambiguous}{108}{\code {show-all-if-ambiguous}} \entry{show-all-if-unmodified}{109}{\code {show-all-if-unmodified}} +\entry{show-mode-in-prompt}{109}{\code {show-mode-in-prompt}} \entry{skip-completed-text}{109}{\code {skip-completed-text}} \entry{visible-stats}{109}{\code {visible-stats}} diff --git a/doc/bashref.vrs b/doc/bashref.vrs index 4d0b2c09..0b52c8ac 100644 --- a/doc/bashref.vrs +++ b/doc/bashref.vrs @@ -7,9 +7,9 @@ \initial {*} \entry {\code {*}}{19} \initial {-} -\entry {\code {-}}{19} +\entry {\code {-}}{20} \initial {?} -\entry {\code {?}}{19} +\entry {\code {?}}{20} \initial {@} \entry {\code {@}}{19} \initial {_} @@ -19,34 +19,36 @@ \initial {A} \entry {\code {auto_resume}}{100} \initial {B} -\entry {\code {BASH}}{69} -\entry {\code {BASH_ALIASES}}{70} -\entry {\code {BASH_ARGC}}{70} -\entry {\code {BASH_ARGV}}{70} -\entry {\code {BASH_CMDS}}{70} -\entry {\code {BASH_COMMAND}}{70} +\entry {\code {BASH}}{68} +\entry {\code {BASH_ALIASES}}{69} +\entry {\code {BASH_ARGC}}{69} +\entry {\code {BASH_ARGV}}{69} +\entry {\code {BASH_CMDS}}{69} +\entry {\code {BASH_COMMAND}}{69} +\entry {\code {BASH_COMPAT}}{69} \entry {\code {BASH_ENV}}{70} \entry {\code {BASH_EXECUTION_STRING}}{70} -\entry {\code {BASH_LINENO}}{71} -\entry {\code {BASH_REMATCH}}{71} -\entry {\code {BASH_SOURCE}}{71} -\entry {\code {BASH_SUBSHELL}}{71} -\entry {\code {BASH_VERSINFO}}{71} +\entry {\code {BASH_LINENO}}{70} +\entry {\code {BASH_REMATCH}}{70} +\entry {\code {BASH_SOURCE}}{70} +\entry {\code {BASH_SUBSHELL}}{70} +\entry {\code {BASH_VERSINFO}}{70} \entry {\code {BASH_VERSION}}{71} \entry {\code {BASH_XTRACEFD}}{71} -\entry {\code {BASHOPTS}}{70} -\entry {\code {BASHPID}}{70} +\entry {\code {BASHOPTS}}{69} +\entry {\code {BASHPID}}{69} \entry {\code {bell-style}}{105} \entry {\code {bind-tty-special-chars}}{105} \initial {C} -\entry {\code {CDPATH}}{69} +\entry {\code {CDPATH}}{68} +\entry {\code {CHILD_MAX}}{71} \entry {\code {colored-stats}}{105} -\entry {\code {COLUMNS}}{72} +\entry {\code {COLUMNS}}{71} \entry {\code {comment-begin}}{105} -\entry {\code {COMP_CWORD}}{72} +\entry {\code {COMP_CWORD}}{71} \entry {\code {COMP_KEY}}{72} -\entry {\code {COMP_LINE}}{72} -\entry {\code {COMP_POINT}}{72} +\entry {\code {COMP_LINE}}{71} +\entry {\code {COMP_POINT}}{71} \entry {\code {COMP_TYPE}}{72} \entry {\code {COMP_WORDBREAKS}}{72} \entry {\code {COMP_WORDS}}{72} @@ -55,45 +57,45 @@ \entry {\code {completion-map-case}}{105} \entry {\code {completion-prefix-display-length}}{106} \entry {\code {completion-query-items}}{106} -\entry {\code {COMPREPLY}}{73} +\entry {\code {COMPREPLY}}{72} \entry {\code {convert-meta}}{106} -\entry {\code {COPROC}}{73} +\entry {\code {COPROC}}{72} \initial {D} -\entry {\code {DIRSTACK}}{73} +\entry {\code {DIRSTACK}}{72} \entry {\code {disable-completion}}{106} \initial {E} \entry {\code {editing-mode}}{106} -\entry {\code {EMACS}}{73} +\entry {\code {EMACS}}{72} \entry {\code {enable-keypad}}{106} -\entry {\code {ENV}}{73} -\entry {\code {EUID}}{73} +\entry {\code {ENV}}{72} +\entry {\code {EUID}}{72} \entry {\code {expand-tilde}}{106} \initial {F} -\entry {\code {FCEDIT}}{73} +\entry {\code {FCEDIT}}{72} \entry {\code {FIGNORE}}{73} \entry {\code {FUNCNAME}}{73} \entry {\code {FUNCNEST}}{73} \initial {G} \entry {\code {GLOBIGNORE}}{73} -\entry {\code {GROUPS}}{74} +\entry {\code {GROUPS}}{73} \initial {H} -\entry {\code {histchars}}{74} -\entry {\code {HISTCMD}}{74} -\entry {\code {HISTCONTROL}}{74} +\entry {\code {histchars}}{73} +\entry {\code {HISTCMD}}{73} +\entry {\code {HISTCONTROL}}{73} \entry {\code {HISTFILE}}{74} \entry {\code {HISTFILESIZE}}{74} \entry {\code {HISTIGNORE}}{74} \entry {\code {history-preserve-point}}{107} \entry {\code {history-size}}{107} -\entry {\code {HISTSIZE}}{75} -\entry {\code {HISTTIMEFORMAT}}{75} -\entry {\code {HOME}}{69} +\entry {\code {HISTSIZE}}{74} +\entry {\code {HISTTIMEFORMAT}}{74} +\entry {\code {HOME}}{68} \entry {\code {horizontal-scroll-mode}}{107} -\entry {\code {HOSTFILE}}{75} +\entry {\code {HOSTFILE}}{74} \entry {\code {HOSTNAME}}{75} \entry {\code {HOSTTYPE}}{75} \initial {I} -\entry {\code {IFS}}{69} +\entry {\code {IFS}}{68} \entry {\code {IGNOREEOF}}{75} \entry {\code {input-meta}}{107} \entry {\code {INPUTRC}}{75} @@ -103,17 +105,17 @@ \initial {L} \entry {\code {LANG}}{75} \entry {\code {LC_ALL}}{75} -\entry {\code {LC_COLLATE}}{76} -\entry {\code {LC_CTYPE}}{76} -\entry {\code {LC_MESSAGES}}{7, 76} -\entry {\code {LC_NUMERIC}}{76} -\entry {\code {LINENO}}{76} -\entry {\code {LINES}}{76} +\entry {\code {LC_COLLATE}}{75} +\entry {\code {LC_CTYPE}}{75} +\entry {\code {LC_MESSAGES}}{7, 75} +\entry {\code {LC_NUMERIC}}{75} +\entry {\code {LINENO}}{75} +\entry {\code {LINES}}{75} \initial {M} -\entry {\code {MACHTYPE}}{76} -\entry {\code {MAIL}}{69} +\entry {\code {MACHTYPE}}{75} +\entry {\code {MAIL}}{68} \entry {\code {MAILCHECK}}{76} -\entry {\code {MAILPATH}}{69} +\entry {\code {MAILPATH}}{68} \entry {\code {MAPFILE}}{76} \entry {\code {mark-modified-lines}}{108} \entry {\code {mark-symlinked-directories}}{108} @@ -122,26 +124,26 @@ \entry {\code {meta-flag}}{107} \initial {O} \entry {\code {OLDPWD}}{76} -\entry {\code {OPTARG}}{69} +\entry {\code {OPTARG}}{68} \entry {\code {OPTERR}}{76} -\entry {\code {OPTIND}}{69} +\entry {\code {OPTIND}}{68} \entry {\code {OSTYPE}}{76} \entry {\code {output-meta}}{108} \initial {P} \entry {\code {page-completions}}{108} -\entry {\code {PATH}}{69} +\entry {\code {PATH}}{68} \entry {\code {PIPESTATUS}}{76} \entry {\code {POSIXLY_CORRECT}}{76} -\entry {\code {PPID}}{77} -\entry {\code {PROMPT_COMMAND}}{77} -\entry {\code {PROMPT_DIRTRIM}}{77} -\entry {\code {PS1}}{69} -\entry {\code {PS2}}{69} -\entry {\code {PS3}}{77} -\entry {\code {PS4}}{77} -\entry {\code {PWD}}{77} +\entry {\code {PPID}}{76} +\entry {\code {PROMPT_COMMAND}}{76} +\entry {\code {PROMPT_DIRTRIM}}{76} +\entry {\code {PS1}}{68} +\entry {\code {PS2}}{68} +\entry {\code {PS3}}{76} +\entry {\code {PS4}}{76} +\entry {\code {PWD}}{76} \initial {R} -\entry {\code {RANDOM}}{77} +\entry {\code {RANDOM}}{76} \entry {\code {READLINE_LINE}}{77} \entry {\code {READLINE_POINT}}{77} \entry {\code {REPLY}}{77} @@ -153,11 +155,12 @@ \entry {\code {SHLVL}}{77} \entry {\code {show-all-if-ambiguous}}{108} \entry {\code {show-all-if-unmodified}}{109} +\entry {\code {show-mode-in-prompt}}{109} \entry {\code {skip-completed-text}}{109} \initial {T} \entry {\code {TEXTDOMAIN}}{7} \entry {\code {TEXTDOMAINDIR}}{7} -\entry {\code {TIMEFORMAT}}{78} +\entry {\code {TIMEFORMAT}}{77} \entry {\code {TMOUT}}{78} \entry {\code {TMPDIR}}{78} \initial {U} diff --git a/doc/builtins.0 b/doc/builtins.0 index f37aab9e..1eaf9a22 100644 --- a/doc/builtins.0 +++ b/doc/builtins.0 @@ -866,67 +866,70 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS The corresponding _a_r_g_u_m_e_n_t is an integer representing the number of seconds since the epoch. Two special argument values may be used: -1 represents the current time, and - -2 represents the time the shell was invoked. + -2 represents the time the shell was invoked. If no + argument is specified, conversion behaves as if -1 had + been given. This is an exception to the usual pprriinnttff + behavior. - Arguments to non-string format specifiers are treated as C con- + Arguments to non-string format specifiers are treated as C con- stants, except that a leading plus or minus sign is allowed, and - if the leading character is a single or double quote, the value + if the leading character is a single or double quote, the value is the ASCII value of the following character. - The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_- + The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_- _m_e_n_t_s. If the _f_o_r_m_a_t requires more _a_r_g_u_m_e_n_t_s than are supplied, - the extra format specifications behave as if a zero value or - null string, as appropriate, had been supplied. The return + the extra format specifications behave as if a zero value or + null string, as appropriate, had been supplied. The return value is zero on success, non-zero on failure. ppuusshhdd [--nn] [+_n] [-_n] ppuusshhdd [--nn] [_d_i_r] - Adds a directory to the top of the directory stack, or rotates - the stack, making the new top of the stack the current working + 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, + and returns 0, unless the directory stack is empty. Arguments, if supplied, have the following meanings: - --nn Suppresses the normal change of directory when adding - directories to the stack, so that only the stack is + --nn Suppresses the normal change of directory when adding + directories to the stack, so that only the stack is manipulated. - ++_n Rotates the stack so that the _nth directory (counting - from the left of the list shown by ddiirrss, starting with + ++_n Rotates the stack so that the _nth directory (counting + from the left of the list shown by ddiirrss, starting with zero) is at the top. - --_n Rotates the stack so that the _nth directory (counting - from the right of the list shown by ddiirrss, starting with + --_n Rotates the stack so that the _nth directory (counting + from the right of the list shown by ddiirrss, starting with zero) is at the top. _d_i_r Adds _d_i_r to the directory stack at the top, making it the - new current working directory as if it had been supplied + new current working directory as if it had been supplied as the argument to the ccdd builtin. If the ppuusshhdd command is successful, a ddiirrss is performed as well. - If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r - fails. With the second form, ppuusshhdd returns 0 unless the direc- - tory stack is empty, a non-existent directory stack element is - specified, or the directory change to the specified new current + If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r + fails. With the second form, ppuusshhdd returns 0 unless the direc- + tory stack is empty, a non-existent directory stack element is + specified, or the directory change to the specified new current directory fails. ppwwdd [--LLPP] - Print the absolute pathname of the current working directory. + Print the absolute pathname of the current working directory. The pathname printed contains no symbolic links if the --PP option is supplied or the --oo pphhyyssiiccaall option to the sseett builtin command - is enabled. If the --LL option is used, the pathname printed may - contain symbolic links. The return status is 0 unless an error - occurs while reading the name of the current directory or an + is enabled. If the --LL option is used, the pathname printed may + contain symbolic links. The return status is 0 unless an error + occurs while reading the name of the current directory or an invalid option is supplied. rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--NN _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...] - One line is read from the standard input, or from the file - descriptor _f_d supplied as an argument to the --uu option, and the + One line is read from the standard input, or from the file + descriptor _f_d supplied as an argument to the --uu option, and the first word is assigned to the first _n_a_m_e, the second word to the - second _n_a_m_e, and so on, with leftover words and their interven- - ing separators assigned to the last _n_a_m_e. If there are fewer + second _n_a_m_e, and so on, with leftover words and their interven- + ing separators assigned to the last _n_a_m_e. If there are fewer words read from the input stream than names, the remaining names - are assigned empty values. The characters in IIFFSS are used to - split the line into words. The backslash character (\\) may be - used to remove any special meaning for the next character read - and for line continuation. Options, if supplied, have the fol- + are assigned empty values. The characters in IIFFSS are used to + split the line into words. The backslash character (\\) 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: --aa _a_n_a_m_e The words are assigned to sequential indices of the array @@ -934,133 +937,138 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS new values are assigned. Other _n_a_m_e arguments are ignored. --dd _d_e_l_i_m - The first character of _d_e_l_i_m is used to terminate the + The first character of _d_e_l_i_m is used to terminate the input line, rather than newline. --ee If the standard input is coming from a terminal, rreeaaddlliinnee - (see RREEAADDLLIINNEE above) is used to obtain the line. Read- - line uses the current (or default, if line editing was + (see RREEAADDLLIINNEE above) is used to obtain the line. Read- + line uses the current (or default, if line editing was not previously active) editing settings. --ii _t_e_x_t - If rreeaaddlliinnee is being used to read the line, _t_e_x_t is + If rreeaaddlliinnee is being used to read the line, _t_e_x_t is placed into the editing buffer before editing begins. --nn _n_c_h_a_r_s - rreeaadd returns after reading _n_c_h_a_r_s characters rather than - waiting for a complete line of input, but honor a delim- - iter if fewer than _n_c_h_a_r_s characters are read before the + rreeaadd returns after reading _n_c_h_a_r_s characters rather than + waiting for a complete line of input, but honor a delim- + iter if fewer than _n_c_h_a_r_s characters are read before the delimiter. --NN _n_c_h_a_r_s - rreeaadd returns after reading exactly _n_c_h_a_r_s characters - rather than waiting for a complete line of input, unless - EOF is encountered or rreeaadd times out. Delimiter charac- - ters encountered in the input are not treated specially - and do not cause rreeaadd to return until _n_c_h_a_r_s characters + rreeaadd returns after reading exactly _n_c_h_a_r_s characters + rather than waiting for a complete line of input, unless + EOF is encountered or rreeaadd times out. Delimiter charac- + ters encountered in the input are not treated specially + and do not cause rreeaadd to return until _n_c_h_a_r_s characters are read. --pp _p_r_o_m_p_t Display _p_r_o_m_p_t 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. --rr Backslash does not act as an escape character. The back- - slash is considered to be part of the line. In particu- - lar, a backslash-newline pair may not be used as a line + slash is considered to be part of the line. In particu- + lar, a backslash-newline pair may not be used as a line continuation. --ss Silent mode. If input is coming from a terminal, charac- ters are not echoed. --tt _t_i_m_e_o_u_t - Cause rreeaadd to time out and return failure if a complete - line of input is not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_- - _o_u_t may be a decimal number with a fractional portion - following the decimal point. This option is only effec- - tive if rreeaadd is reading input from a terminal, pipe, or - other special file; it has no effect when reading from - regular files. If _t_i_m_e_o_u_t is 0, rreeaadd returns immedi- - ately, without trying to read any data. The exit statis - is 0 if input is available on the specified file descrip- - tor, non-zero otherwise. The exit status is greater than - 128 if the timeout is exceeded. + Cause rreeaadd to time out and return failure if a complete + line of input (or a specified number of characters) is + not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_o_u_t may be a deci- + mal number with a fractional portion following the deci- + mal point. This option is only effective if rreeaadd is + reading input from a terminal, pipe, or other special + file; it has no effect when reading from regular files. + If rreeaadd times out, rreeaadd saves any partial input read into + the specified variable _n_a_m_e. If _t_i_m_e_o_u_t is 0, rreeaadd + returns immediately, without trying to read any data. + The exit status is 0 if input is available on the speci- + fied file descriptor, non-zero otherwise. The exit sta- + tus is greater than 128 if the timeout is exceeded. --uu _f_d Read input from file descriptor _f_d. If no _n_a_m_e_s are supplied, the line read is assigned to the vari- - able RREEPPLLYY. The return code is zero, unless end-of-file is - encountered, rreeaadd times out (in which case the return code is - greater than 128), a variable assignment error (such as assign- - ing to a readonly variable) occurs, or an invalid file descrip- + able RREEPPLLYY. The return code is zero, unless end-of-file is + encountered, rreeaadd times out (in which case the return code is + greater than 128), a variable assignment error (such as assign- + ing to a readonly variable) occurs, or an invalid file descrip- tor is supplied as the argument to --uu. rreeaaddoonnllyy [--aaAAff] [--pp] [_n_a_m_e[=_w_o_r_d] ...] - The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s - may not be changed by subsequent assignment. If the --ff option - is supplied, the functions corresponding to the _n_a_m_e_s are so - marked. The --aa option restricts the variables to indexed - arrays; the --AA option restricts the variables to associative - arrays. If both options are supplied, --AA takes precedence. If - no _n_a_m_e arguments are given, or if the --pp option is supplied, a + The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s + may not be changed by subsequent assignment. If the --ff option + is supplied, the functions corresponding to the _n_a_m_e_s are so + marked. The --aa option restricts the variables to indexed + arrays; the --AA option restricts the variables to associative + arrays. If both options are supplied, --AA takes precedence. If + no _n_a_m_e arguments are given, or if the --pp option is supplied, a list of all readonly names is printed. The other options may be - used to restrict the output to a subset of the set of readonly - names. The --pp option causes output to be displayed in a format - that may be reused as input. If a variable name is followed by - =_w_o_r_d, the value of the variable is set to _w_o_r_d. The return - status is 0 unless an invalid option is encountered, one of the + used to restrict the output to a subset of the set of readonly + names. The --pp option causes output to be displayed in a format + that may be reused as input. If a variable name is followed by + =_w_o_r_d, the value of the variable is set to _w_o_r_d. The return + status is 0 unless an invalid option is encountered, one of the _n_a_m_e_s is not a valid shell variable name, or --ff is supplied with a _n_a_m_e that is not a function. rreettuurrnn [_n] - Causes a function to stop executing and return the value speci- - fied by _n to its caller. If _n is omitted, the return status is - that of the last command executed in the function body. If - rreettuurrnn is used outside a function, but during execution of a - script by the .. (ssoouurrccee) command, it causes the shell to stop - executing that script and return either _n or the exit status of - the last command executed within the script as the exit status - of the script. If _n is supplied, the return value is its least - significant 8 bits. The return status is non-zero if rreettuurrnn is - supplied a non-numeric argument, or is used outside a function - and not during execution of a script by .. or ssoouurrccee. Any com- - mand associated with the RREETTUURRNN trap is executed before execu- + Causes a function to stop executing and return the value speci- + fied by _n to its caller. If _n is omitted, the return status is + that of the last command executed in the function body. If + rreettuurrnn is used outside a function, but during execution of a + script by the .. (ssoouurrccee) command, it causes the shell to stop + executing that script and return either _n or the exit status of + the last command executed within the script as the exit status + of the script. If _n is supplied, the return value is its least + significant 8 bits. The return status is non-zero if rreettuurrnn is + supplied a non-numeric argument, or is used outside a function + and not during execution of a script by .. or ssoouurrccee. Any com- + mand associated with the RREETTUURRNN trap is executed before execu- tion resumes after the function or script. sseett [----aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...] sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...] - Without options, the name and value of each shell variable are + Without options, the name and value of each shell variable are displayed in a format that can be reused as input for setting or resetting the currently-set variables. Read-only variables can- - not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. - The output is sorted according to the current locale. When - options are specified, they set or unset shell attributes. Any - arguments remaining after option processing are treated as val- + not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. + The output is sorted according to the current locale. When + 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 - $$11, $$22, ...... $$_n. Options, if specified, have the following + $$11, $$22, ...... $$_n. Options, if specified, have the following meanings: - --aa Automatically mark variables and functions which are - modified or created for export to the environment of + --aa Automatically mark variables and functions which are + modified or created for export to the environment of subsequent commands. - --bb Report the status of terminated background jobs immedi- + --bb Report the status of terminated background jobs immedi- ately, rather than before the next primary prompt. This is effective only when job control is enabled. - --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a - single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _l_i_s_t, or a _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d - (see SSHHEELLLL GGRRAAMMMMAARR above), exits with a non-zero sta- - tus. The shell does not exit if the command that fails - is part of the command list immediately following a - wwhhiillee or uunnttiill keyword, part of the test following the - iiff or eelliiff reserved words, part of any command executed - in a &&&& or |||| list except the command following the - final &&&& or ||||, any command in a pipeline but the last, - or if the command's return value is being inverted with - !!. If a compound command other than a subshell returns - a non-zero status because a command failed while --ee was - being ignored, the shell does not exit. A trap on EERRRR, + --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a + single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _l_i_s_t, or a _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d + (see SSHHEELLLL GGRRAAMMMMAARR above), exits with a non-zero sta- + tus. The shell does not exit if the command that fails + is part of the command list immediately following a + wwhhiillee or uunnttiill keyword, part of the test following the + iiff or eelliiff reserved words, part of any command executed + in a &&&& or |||| list except the command following the + final &&&& or ||||, any command in a pipeline but the last, + or if the command's return value is being inverted with + !!. If a compound command other than a subshell returns + a non-zero status because a command failed while --ee was + being ignored, the shell does not exit. A trap on EERRRR, if set, is executed before the shell exits. This option applies to the shell environment and each subshell envi- - ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT + ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT above), and may cause subshells to exit before executing - all the commands in the subshell. If a shell function - executes in a context where --ee is being ignored, even if - --ee is set, none of the commands executed within the - function body will be affected by the --ee setting. If a - shell function sets --ee while executing in a context - where --ee is ignored, that setting will not have any - effect until the command containing the function call - completes. + all the commands in the subshell. + + If a compound command or shell function executes in a + context where --ee is being ignored, none of the commands + executed within the compound command or function body + will be affected by the --ee setting, even if --ee is set + and a command returns a failure status. If a compound + command or shell function sets --ee while executing in a + context where --ee is ignored, that setting will not have + any effect until the compound command or the command + containing the function call completes. --ff Disable pathname expansion. --hh Remember the location of commands as they are looked up for execution. This is enabled by default. @@ -1298,6 +1306,10 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS considered quoted. This is the behavior of posix mode through version 4.1. The default bash behavior remains as in previous versions. + ccoommppaatt4422 + If set, bbaasshh does not process the replacement string in + the pattern substitution word expansion using quote + removal. ccoommpplleettee__ffuullllqquuoottee If set, bbaasshh quotes all shell metacharacters in file- names and directory names when performing completion. @@ -1573,55 +1585,58 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS function or a script executed with the .. or ssoouurrccee builtins fin- ishes executing. - If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a sim- - ple command has a non-zero exit status, subject to the following - conditions. The EERRRR trap is not executed if the failed command - is part of the command list immediately following a wwhhiillee or - uunnttiill keyword, part of the test in an _i_f statement, part of a - command executed in a &&&& or |||| list, or if the command's return - value is being inverted via !!. These are the same conditions - obeyed by the eerrrreexxiitt option. - - Signals ignored upon entry to the shell cannot be trapped or - reset. Trapped signals that are not being ignored are reset to + If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a a + pipeline (which may consist of a single simple command), a list, + or a compound command returns a non-zero exit status, subject to + the following conditions. The EERRRR trap is not executed if the + failed command is part of the command list immediately following + a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement, + part of a command executed in a &&&& or |||| list except the command + following the final &&&& or ||||, any command in a pipeline but the + last, or if the command's return value is being inverted using + !!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) + option. + + 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 subshell or subshell environment when - one is created. The return status is false if any _s_i_g_s_p_e_c is + one is created. The return status is false if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true. ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...] - With no options, indicate how each _n_a_m_e would be interpreted if + With no options, indicate how each _n_a_m_e would be interpreted if used as a command name. If the --tt option is used, ttyyppee prints a - string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or - _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function, - builtin, or disk file, respectively. If the _n_a_m_e is not found, - then nothing is printed, and an exit status of false is - returned. If the --pp option is used, ttyyppee either returns the + string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or + _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function, + builtin, or disk file, respectively. If the _n_a_m_e is not found, + then nothing is printed, and an exit status of false is + returned. If the --pp option is used, ttyyppee either returns the name of the disk file that would be executed if _n_a_m_e were speci- fied as a command name, or nothing if ``type -t name'' would not - return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e, + return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e, even if ``type -t name'' would not return _f_i_l_e. If a command is hashed, --pp and --PP print the hashed value, which is not necessar- - ily the file that appears first in PPAATTHH. If the --aa option is - used, ttyyppee prints all of the places that contain an executable + ily the file that appears first in PPAATTHH. If the --aa option is + used, ttyyppee prints all of the places that contain an executable named _n_a_m_e. This includes aliases and functions, if and only if the --pp option is not also used. The table of hashed commands is - not consulted when using --aa. The --ff option suppresses shell + not consulted when using --aa. The --ff option suppresses shell function lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if all of the arguments are found, false if any are not found. uulliimmiitt [--HHSSTTaabbccddeeffiillmmnnppqqrrssttuuvvxx [_l_i_m_i_t]] - Provides control over the resources available to the shell and - to processes started by it, on systems that allow such control. + Provides control over the resources available to the shell and + to processes started by it, on systems that allow such control. The --HH and --SS options specify that the hard or soft limit is set - for the given resource. A hard limit cannot be increased by a - non-root user once it is set; a soft limit may be increased up - to the value of the hard limit. If neither --HH nor --SS is speci- + for the given resource. A hard limit cannot be increased by a + non-root user once it is set; a soft limit may be increased up + to the value of the hard limit. If neither --HH nor --SS is speci- fied, both the soft and hard limits are set. The value of _l_i_m_i_t can be a number in the unit specified for the resource or one of the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the - current hard limit, the current soft limit, and no limit, - respectively. If _l_i_m_i_t is omitted, the current value of the - soft limit of the resource is printed, unless the --HH option is + current hard limit, the current soft limit, and no limit, + respectively. If _l_i_m_i_t is omitted, the current value of the + soft limit of the resource is printed, unless the --HH option is given. When more than one resource is specified, the limit name and unit are printed before the value. Other options are inter- preted as follows: @@ -1630,11 +1645,11 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS --cc The maximum size of core files created --dd The maximum size of a process's data segment --ee The maximum scheduling priority ("nice") - --ff The maximum size of files written by the shell and its + --ff The maximum size of files written by the shell and its children --ii The maximum number of pending signals --ll The maximum size that may be locked into memory - --mm The maximum resident set size (many systems do not honor + --mm The maximum resident set size (many systems do not honor this limit) --nn The maximum number of open file descriptors (most systems do not allow this value to be set) @@ -1643,65 +1658,66 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS --rr The maximum real-time scheduling priority --ss The maximum stack size --tt The maximum amount of cpu time in seconds - --uu The maximum number of processes available to a single + --uu The maximum number of processes available to a single user - --vv The maximum amount of virtual memory available to the + --vv The maximum amount of virtual memory available to the shell and, on some systems, to its children --xx The maximum number of file locks --TT The maximum number of threads - If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the - new value of the specified resource. If no option is given, - then --ff is assumed. Values are in 1024-byte increments, except - for --tt, which is in seconds; --pp, which is in units of 512-byte - blocks; and --TT, --bb, --nn, and --uu, which are unscaled values. The - return status is 0 unless an invalid option or argument is sup- + If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the + new value of the specified resource. If no option is given, + then --ff is assumed. Values are in 1024-byte increments, except + for --tt, which is in seconds; --pp, which is in units of 512-byte + blocks; and --TT, --bb, --nn, and --uu, which are unscaled values. The + return status is 0 unless an invalid option or argument is sup- plied, or an error occurs while setting a new limit. uummaasskk [--pp] [--SS] [_m_o_d_e] The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with - a digit, it is interpreted as an octal number; otherwise it is - interpreted as a symbolic mode mask similar to that accepted by - _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is - printed. The --SS option causes the mask to be printed in sym- - bolic form; the default output is an octal number. If the --pp + a digit, it is interpreted as an octal number; otherwise it is + interpreted as a symbolic mode mask similar to that accepted by + _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is + printed. The --SS option causes the mask to be printed in sym- + bolic form; the default output is an octal number. If the --pp option is supplied, and _m_o_d_e is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode - was successfully changed or if no _m_o_d_e argument was supplied, + was successfully changed or if no _m_o_d_e argument was supplied, and false otherwise. uunnaalliiaass [-aa] [_n_a_m_e ...] - Remove each _n_a_m_e from the list of defined aliases. If --aa is - supplied, all alias definitions are removed. The return value + Remove each _n_a_m_e from the list of defined aliases. If --aa is + supplied, all alias definitions are removed. The return value is true unless a supplied _n_a_m_e is not a defined alias. uunnsseett [-ffvv] [-nn] [_n_a_m_e ...] - For each _n_a_m_e, remove the corresponding variable or function. + For each _n_a_m_e, remove the corresponding variable or function. If the --vv option is given, each _n_a_m_e refers to a shell variable, - and that variable is removed. Read-only variables may not be - unset. If --ff is specified, each _n_a_m_e refers to a shell func- - tion, and the function definition is removed. If the --nn option - is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute, - _n_a_m_e will be unset rather than the variable it references. --nn - has no effect if the --ff option is supplied. If no options are - supplied, each _n_a_m_e refers to a variable; if there is no vari- - able by that name, any function with that name is unset. Each - unset variable or function is removed from the environment - passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN-- + and that variable is removed. Read-only variables may not be + unset. If --ff is specified, each _n_a_m_e refers to a shell func- + tion, and the function definition is removed. If the --nn option + is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute, + _n_a_m_e will be unset rather than the variable it references. --nn + has no effect if the --ff option is supplied. If no options are + supplied, each _n_a_m_e refers to a variable; if there is no vari- + able by that name, any function with that name is unset. Each + unset variable or function is removed from the environment + passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN-- DDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they lose their special properties, even if they are sub- sequently reset. The exit status is true unless a _n_a_m_e is read- only. - wwaaiitt [_n _._._.] - Wait for each specified process and return its termination sta- - tus. Each _n 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 _n is not given, all currently active child pro- - cesses are waited for, and the return status is zero. If _n - 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. + wwaaiitt [----nn] [_n _._._.] + Wait for each specified process and return its termination sta- + tus. Each _n 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 _n is not given, all currently active child pro- + cesses are waited for, and the return status is zero. If the + ----nn option is supplied, wwaaiitt waits for any job to terminate and + returns its exit status. If _n 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. SSEEEE AALLSSOO bash(1), sh(1) diff --git a/doc/builtins.ps b/doc/builtins.ps index c1c4e33e..b07ec598 100644 --- a/doc/builtins.ps +++ b/doc/builtins.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.19.2 -%%CreationDate: Mon Jul 16 16:12:25 2012 +%%CreationDate: Fri Jan 11 16:34:25 2013 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic @@ -1613,348 +1613,354 @@ E(gument)-.37 E F0 .01(in a format that can be reused as shell)2.51 F 2.881 E(gument)-.37 E F0 .381(is an inte)2.881 F .381 (ger representing the number)-.15 F .457(of seconds since the epoch.)180 240 R -1 -.8(Tw o)5.458 H .458(special ar)3.758 F .458(gument v)-.18 F -.458(alues may be used: -1 represents the)-.25 F -(current time, and -2 represents the time the shell w)180 252 Q(as in) --.1 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E(Ar)144 268.8 Q .464(guments to n\ -on-string format speci\214ers are treated as C constants, e)-.18 F .463 -(xcept that a leading plus or)-.15 F 1.258(minus sign is allo)144 280.8 +.458(alues may be used: -1 represents the)-.25 F .848 +(current time, and -2 represents the time the shell w)180 252 R .847 +(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.347(d. If).1 F .847(no ar)3.347 +F .847(gument is speci-)-.18 F .354(\214ed, con)180 264 R -.15(ve)-.4 G +.354(rsion beha).15 F -.15(ve)-.2 G 2.854(sa).15 G 2.854(si)-2.854 G +2.854(f-)-2.854 G 2.854(1h)-2.854 G .354(ad been gi)-2.854 F -.15(ve) +-.25 G 2.854(n. This).15 F .355(is an e)2.854 F .355 +(xception to the usual)-.15 F F2(printf)2.855 E F0(beha)180 276 Q(vior) +-.2 E(.)-.55 E(Ar)144 292.8 Q .464(guments to non-string format speci\ +\214ers are treated as C constants, e)-.18 F .463 +(xcept that a leading plus or)-.15 F 1.258(minus sign is allo)144 304.8 R 1.259 (wed, and if the leading character is a single or double quote, the v) --.25 F 1.259(alue is the)-.25 F(ASCII v)144 292.8 Q(alue of the follo) --.25 E(wing character)-.25 E(.)-.55 E(The)144 309.6 Q F1(format)3.424 E +-.25 F 1.259(alue is the)-.25 F(ASCII v)144 316.8 Q(alue of the follo) +-.25 E(wing character)-.25 E(.)-.55 E(The)144 333.6 Q F1(format)3.424 E F0 .923(is reused as necessary to consume all of the)3.424 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 .923(requires more)3.423 F F1(ar)144 321.6 Q(guments)-.37 E +3.423 E F0 .923(requires more)3.423 F F1(ar)144 345.6 Q(guments)-.37 E F0 .033(than are supplied, the e)2.533 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 .034(alue or null string,) --.25 F(as appropriate, had been supplied.)144 333.6 Q(The return v)5 E +-.25 F(as appropriate, had been supplied.)144 357.6 Q(The return v)5 E (alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F2(pushd) -108 350.4 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 362.4 Q F0([)2.5 E F2<ad6e>A F0 +108 374.4 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 386.4 Q F0([)2.5 E F2<ad6e>A F0 2.5(][)C F1(dir)-2.5 E F0(])A .64(Adds a directory to the top of the di\ -rectory stack, or rotates the stack, making the ne)144 374.4 R 3.139(wt) --.25 G .639(op of the)-3.139 F 1.315(stack the current w)144 386.4 R +rectory stack, or rotates the stack, making the ne)144 398.4 R 3.139(wt) +-.25 G .639(op of the)-3.139 F 1.315(stack the current w)144 410.4 R 1.315(orking directory)-.1 F 6.315(.W)-.65 G 1.315(ith no ar)-6.715 F 1.315(guments, e)-.18 F 1.316(xchanges the top tw)-.15 F 3.816(od)-.1 G 1.316(irectories and)-3.816 F .872 -(returns 0, unless the directory stack is empty)144 398.4 R 5.871(.A) +(returns 0, unless the directory stack is empty)144 422.4 R 5.871(.A) -.65 G -.18(rg)-5.871 G .871(uments, if supplied, ha).18 F 1.171 -.15 -(ve t)-.2 H .871(he follo).15 F .871(wing mean-)-.25 F(ings:)144 410.4 Q -F2<ad6e>144 422.4 Q F0 .902(Suppresses the normal change of directory w\ +(ve t)-.2 H .871(he follo).15 F .871(wing mean-)-.25 F(ings:)144 434.4 Q +F2<ad6e>144 446.4 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 434.4 Q F2(+)144 446.4 Q F1(n)A F0 +(only the stack is manipulated.)180 458.4 Q F2(+)144 470.4 Q F1(n)A F0 1.268(Rotates the stack so that the)25.3 F F1(n)3.768 E F0 1.267 (th directory \(counting from the left of the list sho)B 1.267(wn by) --.25 F F2(dirs)180 458.4 Q F0 2.5(,s)C -(tarting with zero\) is at the top.)-2.5 E F2<ad>144 470.4 Q F1(n)A F0 +-.25 F F2(dirs)180 482.4 Q F0 2.5(,s)C +(tarting with zero\) is at the top.)-2.5 E F2<ad>144 494.4 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 482.4 Q F0 2.5(,s)C(tarting with zero\) is at the top.) --2.5 E F1(dir)144.35 494.4 Q F0(Adds)23.98 E F1(dir)3.138 E F0 .288 +F F2(dirs)180 506.4 Q F0 2.5(,s)C(tarting with zero\) is at the top.) +-2.5 E F1(dir)144.35 518.4 Q F0(Adds)23.98 E F1(dir)3.138 E F0 .288 (to the directory stack at the top, making it the ne)3.518 F 2.787(wc) -.25 G .287(urrent w)-2.787 F .287(orking directory as)-.1 F -(if it had been supplied as the ar)180 506.4 Q(gument to the)-.18 E F2 -(cd)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .488(If the)144 523.2 R F2(pushd) +(if it had been supplied as the ar)180 530.4 Q(gument to the)-.18 E F2 +(cd)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .488(If the)144 547.2 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 535.2 R F1(dir) +F2(pushd)2.989 E F0 1.04(returns 0 unless the cd to)144 559.2 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 547.2 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent\ +(stack is empty)144 571.2 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent\ directory stack element is speci\214ed, or the directory change to the) --.15 F(speci\214ed ne)144 559.2 Q 2.5(wc)-.25 G(urrent directory f)-2.5 -E(ails.)-.1 E F2(pwd)108 576 Q F0([)2.5 E F2(\255LP)A F0(])A .845 -(Print the absolute pathname of the current w)144 588 R .845 +-.15 F(speci\214ed ne)144 583.2 Q 2.5(wc)-.25 G(urrent directory f)-2.5 +E(ails.)-.1 E F2(pwd)108 600 Q F0([)2.5 E F2(\255LP)A F0(])A .845 +(Print the absolute pathname of the current w)144 612 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 -600 R F2<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F2 .181 +624 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 612 R(the)3.264 E F2<ad4c>3.264 E F0 .763 +144 636 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 624 R -.25(va) --.4 G(lid).25 E(option is supplied.)144 636 Q F2 -.18(re)108 652.8 S(ad) + reading the name of the current directory or an in)144 648 R -.25(va) +-.4 G(lid).25 E(option is supplied.)144 660 Q F2 -.18(re)108 676.8 S(ad) .18 E F0([)3.817 E F2(\255ers)A F0 3.817(][)C F2<ad61>-3.817 E F1(aname) 3.817 E F0 3.817(][)C F2<ad64>-3.817 E F1(delim)3.817 E F0 3.817(][)C F2 <ad69>-3.817 E F1(te)3.817 E(xt)-.2 E F0 3.817(][)C F2<ad6e>-3.817 E F1 (nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F2<ad4e>-3.816 E F1(nc) 3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F2<ad70>-3.816 E F1(pr)3.816 E (ompt)-.45 E F0 3.816(][)C F2<ad74>-3.816 E F1(timeout)3.816 E F0 3.816 -(][)C F2<ad75>-3.816 E F1(fd)3.816 E F0(])A([)108 664.8 Q F1(name)A F0 +(][)C F2<ad75>-3.816 E F1(fd)3.816 E F0(])A([)108 688.8 Q F1(name)A F0 (...])2.5 E .516(One line is read from the standard input, or from the \ -\214le descriptor)144 676.8 R F1(fd)3.016 E F0 .516(supplied as an ar) -3.016 F .516(gument to)-.18 F(the)144 688.8 Q F2<ad75>2.538 E F0 .038 +\214le descriptor)144 700.8 R F1(fd)3.016 E F0 .516(supplied as an ar) +3.016 F .516(gument to)-.18 F(the)144 712.8 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 700.8 R -.15(ve)-.15 G 2.92(rw).15 G .42 +(and so on, with lefto)144 724.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 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 712.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 724.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 F2(\\)A F0 2.51(\)m)C(ay)-2.51 E -(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(12)198.725 E 0 Cg EP +.18 G 2.92(ft)-5.42 G(here)-2.92 E(GNU Bash-4.2)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 1.89 -(be used to remo)144 84 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 96 Q .3 -.15(ve t)-.2 H(he follo).15 E -(wing meanings:)-.25 E/F1 10/Times-Bold@0 SF<ad61>144 108 Q/F2 10 -/Times-Italic@0 SF(aname)2.5 E F0 1.05(The w)180 120 R 1.049 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .54(are fe) +144 84 R .54(wer w)-.25 F .541(ords read from the input stream than nam\ +es, the remaining names are assigned empty)-.1 F -.25(va)144 96 S 2.511 +(lues. The).25 F .011(characters in)2.511 F/F1 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 10/Times-Bold@0 +SF(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89(be used to remo)144 108 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 120 Q .3 -.15(ve t)-.2 H(he follo).15 E +(wing meanings:)-.25 E F2<ad61>144 132 Q/F3 10/Times-Italic@0 SF(aname) +2.5 E F0 1.05(The w)180 144 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 132 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 144 Q F2(delim)2.5 E F0 -(The \214rst character of)180 156 Q F2(delim)2.5 E F0 +-.25 E F3(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F +F3(aname)180.33 156 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 F3(name)2.5 E F0(ar)2.5 +E(guments are ignored.)-.18 E F2<ad64>144 168 Q F3(delim)2.5 E F0 +(The \214rst character of)180 180 Q F3(delim)2.5 E F0 (is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E -F1<ad65>144 168 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 9/Times-Bold@0 SF(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 180 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 192 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E F1 -<ad69>144 204 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 216 Q(gins.)-.15 E F1<ad6e>144 -228 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 240 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, b)180 252 Q -(ut honor a delimiter if fe)-.2 E(wer than)-.25 E F2(nc)2.5 E(har)-.15 E -(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F1 -<ad4e>144 264 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 276 S(ad) -.18 E F0 1.269(returns after reading e)3.769 F(xactly)-.15 E F2(nc)3.769 -E(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.27 +F2<ad65>144 192 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 F1(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 204 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 216 Q -.15(ve)-.25 G 2.5(\)e).15 G +(diting settings.)-2.5 E F2<ad69>144 228 Q F3(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 F3(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 240 Q(gins.)-.15 E F2<ad6e>144 252 Q F3(nc)2.5 E(har) +-.15 E(s)-.1 E F2 -.18(re)180 264 S(ad).18 E F0 1.395 +(returns after reading)3.895 F F3(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, b)180 276 Q(ut honor a delimiter if fe)-.2 E(wer than)-.25 +E F3(nc)2.5 E(har)-.15 E(s)-.1 E F0 +(characters are read before the delimiter)2.5 E(.)-.55 E F2<ad4e>144 288 +Q F3(nc)2.5 E(har)-.15 E(s)-.1 E F2 -.18(re)180 300 S(ad).18 E F0 1.269 +(returns after reading e)3.769 F(xactly)-.15 E F3(nc)3.769 E(har)-.15 E +(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.27 (aiting for a complete)-.1 F .275 -(line of input, unless EOF is encountered or)180 288 R F1 -.18(re)2.775 +(line of input, unless EOF is encountered or)180 312 R F2 -.18(re)2.775 G(ad).18 E F0 .274(times out.)2.774 F .274(Delimiter characters encoun-) 5.274 F 1.002 -(tered in the input are not treated specially and do not cause)180 300 R -F1 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F2(nc)3.503 -E(har)-.15 E(s)-.1 E F0(characters are read.)180 312 Q F1<ad70>144 324 Q -F2(pr)2.5 E(ompt)-.45 E F0(Display)180 336 Q F2(pr)3.661 E(ompt)-.45 E +(tered in the input are not treated specially and do not cause)180 324 R +F2 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F3(nc)3.503 +E(har)-.15 E(s)-.1 E F0(characters are read.)180 336 Q F2<ad70>144 348 Q +F3(pr)2.5 E(ompt)-.45 E F0(Display)180 360 Q F3(pr)3.661 E(ompt)-.45 E F0 1.161(on standard error)3.661 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 348 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 360 Q F0 .543(Backslash does not act as an escape character) +-.25 F(an)180 372 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 384 Q F0 .543(Backslash does not act as an escape character) 25.86 F 5.543(.T)-.55 G .544(he backslash is considered to be part of) --5.543 F(the line.)180 372 Q(In particular)5 E 2.5(,ab)-.4 G +-5.543 F(the line.)180 396 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 384 Q F0(Silent mode.)26.41 E -(If input is coming from a terminal, characters are not echoed.)5 E F1 -<ad74>144 396 Q F2(timeout)2.5 E F0(Cause)180 408 Q F1 -.18(re)3.549 G -(ad).18 E F0 1.048(to time out and return f)3.549 F 1.048 -(ailure if a complete line of input is not read within)-.1 F F2(timeout) -180 420 Q F0(seconds.)3.496 E F2(timeout)5.996 E F0 .997 -(may be a decimal number with a fractional portion follo)3.496 F(wing) --.25 E .576(the decimal point.)180 432 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 .141 -(pipe, or other special \214le; it has no ef)180 444 R .142 -(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.142 E -F2(timeout)2.642 E F0 .142(is 0,)2.642 F F1 -.18(re)180 456 S(ad).18 E -F0 .61(returns immediately)3.11 F 3.11(,w)-.65 G .61 -(ithout trying to read an)-3.11 F 3.11(yd)-.15 G 3.11(ata. The)-3.11 F --.15(ex)3.11 G .61(it statis is 0 if input is).15 F -.2(av)180 468 S -1.223(ailable on the speci\214ed \214le descriptor)-.05 F 3.723(,n)-.4 G -1.223(on-zero otherwise.)-3.723 F 1.224(The e)6.223 F 1.224 -(xit status is greater)-.15 F(than 128 if the timeout is e)180 480 Q -(xceeded.)-.15 E F1<ad75>144 492 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 508.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(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 520.8 R F1 -.18(re)3.843 G(ad) +-.25 E F2<ad73>144 408 Q F0(Silent mode.)26.41 E +(If input is coming from a terminal, characters are not echoed.)5 E F2 +<ad74>144 420 Q F3(timeout)2.5 E F0(Cause)180 432 Q F2 -.18(re)2.929 G +(ad).18 E F0 .428(to time out and return f)2.929 F .428 +(ailure if a complete line of input \(or a speci\214ed num-)-.1 F .56 +(ber of characters\) is not read within)180 444 R F3(timeout)3.061 E F0 +(seconds.)3.061 E F3(timeout)5.561 E F0 .561(may be a decimal number) +3.061 F(with a fractional portion follo)180 456 Q +(wing the decimal point.)-.25 E(This option is only ef)5 E(fecti)-.25 E +.3 -.15(ve i)-.25 H(f).15 E F2 -.18(re)2.5 G(ad).18 E F0 .506(is readin\ +g input from a terminal, pipe, or other special \214le; it has no ef)180 +468 R .506(fect when reading)-.25 F .59(from re)180 480 R .59 +(gular \214les.)-.15 F(If)5.59 E F2 -.18(re)3.09 G(ad).18 E F0 .589 +(times out,)3.09 F F2 -.18(re)3.089 G(ad).18 E F0(sa)3.089 E -.15(ve)-.2 +G 3.089(sa).15 G .889 -.15(ny p)-3.089 H .589 +(artial input read into the speci\214ed).15 F -.25(va)180 492 S(riable) +.25 E F3(name)2.77 E F0 5.27(.I)C(f)-5.27 E F3(timeout)2.77 E F0 .27 +(is 0,)2.77 F F2 -.18(re)2.77 G(ad).18 E F0 .27(returns immediately)2.77 +F 2.77(,w)-.65 G .27(ithout trying to read an)-2.77 F 2.77(yd)-.15 G +(ata.)-2.77 E 1.12(The e)180 504 R 1.12(xit status is 0 if input is a) +-.15 F -.25(va)-.2 G 1.12(ilable on the speci\214ed \214le descriptor) +.25 F 3.62(,n)-.4 G 1.12(on-zero other)-3.62 F(-)-.2 E 2.5(wise. The)180 +516 R -.15(ex)2.5 G(it status is greater than 128 if the timeout is e) +.15 E(xceeded.)-.15 E F2<ad75>144 528 Q F3(fd)2.5 E F0 +(Read input from \214le descriptor)14.46 E F3(fd)2.5 E F0(.)A .191 +(If no)144 544.8 R F3(names)3.051 E F0 .191 +(are supplied, the line read is assigned to the v)2.961 F(ariable)-.25 E +F1(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .192 +(The return code is zero,)4.692 F 1.344 +(unless end-of-\214le is encountered,)144 556.8 R F2 -.18(re)3.844 G(ad) .18 E F0 1.343 -(times out \(in which case the return code is greater than)3.843 F .872 -(128\), a v)144 532.8 R .871 +(times out \(in which case the return code is greater than)3.844 F .871 +(128\), a v)144 568.8 R .871 (ariable assignment error \(such as assigning to a readonly v)-.25 F -.871(ariable\) occurs, or an in)-.25 F -.25(va)-.4 G(lid).25 E -(\214le descriptor is supplied as the ar)144 544.8 Q(gument to)-.18 E F1 -<ad75>2.5 E F0(.)A F1 -.18(re)108 561.6 S(adonly).18 E F0([)2.5 E F1 -(\255aAf)A F0 2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A -F2(wor)A(d)-.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 573.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.097(quent assignment.)144 -585.6 R 1.097(If the)6.097 F F1<ad66>3.597 E F0 1.097 -(option is supplied, the functions corresponding to the)3.597 F F2 -(names)3.596 E F0 1.096(are so)3.596 F(mark)144 597.6 Q 3.334(ed. The) --.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834 +.872(ariable\) occurs, or an in)-.25 F -.25(va)-.4 G(lid).25 E +(\214le descriptor is supplied as the ar)144 580.8 Q(gument to)-.18 E F2 +<ad75>2.5 E F0(.)A F2 -.18(re)108 597.6 S(adonly).18 E F0([)2.5 E F2 +(\255aAf)A F0 2.5(][)C F2<ad70>-2.5 E F0 2.5(][)C F3(name)-2.5 E F0([=)A +F3(wor)A(d)-.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 609.6 R -.15(ve) +-.25 G(n).15 E F3(names)3.27 E F0 .77(are mark)3.27 F .77 +(ed readonly; the v)-.1 F .77(alues of these)-.25 F F3(names)3.63 E F0 +.77(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 +621.6 R 1.096(If the)6.096 F F2<ad66>3.596 E F0 1.097 +(option is supplied, the functions corresponding to the)3.596 F F3 +(names)3.597 E F0 1.097(are so)3.597 F(mark)144 633.6 Q 3.334(ed. The) +-.1 F F2<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 .777(ables to associati)144 609.6 R 1.077 -.15(ve a)-.25 H 3.277 -(rrays. If).15 F .777(both options are supplied,)3.277 F F1<ad41>3.277 E -F0(tak)3.277 E .776(es precedence.)-.1 F .776(If no)5.776 F F2(name) -3.636 E F0(ar)3.456 E(gu-)-.18 E .521(ments are gi)144 621.6 R -.15(ve) --.25 G .521(n, or if the).15 F F1<ad70>3.021 E F0 .521 +-3.334 F F2<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-) +-.25 E .776(ables to associati)144 645.6 R 1.076 -.15(ve a)-.25 H 3.276 +(rrays. If).15 F .777(both options are supplied,)3.276 F F2<ad41>3.277 E +F0(tak)3.277 E .777(es precedence.)-.1 F .777(If no)5.777 F F3(name) +3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 657.6 R -.15(ve) +-.25 G .521(n, or if the).15 F F2<ad70>3.021 E F0 .521 (option is supplied, a list of all readonly names is printed.)3.021 F -.522(The other)5.521 F .295(options may be used to restrict the output \ -to a subset of the set of readonly names.)144 633.6 R(The)5.295 E F1 -<ad70>2.795 E F0(option)2.795 E .786 +.521(The other)5.521 F .295(options may be used to restrict the output \ +to a subset of the set of readonly names.)144 669.6 R(The)5.296 E F2 +<ad70>2.796 E F0(option)2.796 E .786 (causes output to be displayed in a format that may be reused as input.) -144 645.6 R .786(If a v)5.786 F .786(ariable name is fol-)-.25 F(lo)144 -657.6 Q .718(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v) --3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F2(wor) +144 681.6 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144 +693.6 Q .717(wed by =)-.25 F F3(wor)A(d)-.37 E F0 3.218(,t)C .718(he v) +-3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F3(wor) 3.218 E(d)-.37 E F0 5.718(.T)C .718(he return status is 0 unless an in) -5.718 F -.25(va)-.4 G(lid).25 E .26(option is encountered, one of the) -144 669.6 R F2(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v) --.25 F .26(ariable name, or)-.25 F F1<ad66>2.76 E F0 .26 -(is supplied with a)2.76 F F2(name)144.36 681.6 Q F0 -(that is not a function.)2.68 E F1 -.18(re)108 698.4 S(tur).18 E(n)-.15 -E F0([)2.5 E F2(n)A F0(])A .021(Causes a function to stop e)144 710.4 R --.15(xe)-.15 G .021(cuting and return the v).15 F .021 -(alue speci\214ed by)-.25 F F2(n)2.88 E F0 .02(to its caller)2.76 F 5.02 -(.I)-.55 G(f)-5.02 E F2(n)2.88 E F0 .02(is omitted,)2.76 F 1.591 -(the return status is that of the last command e)144 722.4 R -.15(xe) --.15 G 1.591(cuted in the function body).15 F 6.591(.I)-.65 G(f)-6.591 E -F1 -.18(re)4.092 G(tur).18 E(n)-.15 E F0 1.592(is used)4.092 F -(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg EP +144 705.6 R F3(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v) +-.25 F .26(ariable name, or)-.25 F F2<ad66>2.76 E F0 .26 +(is supplied with a)2.76 F F3(name)144.36 717.6 Q F0 +(that is not a function.)2.68 E(GNU Bash-4.2)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 .347 -(outside a function, b)144 84 R .347(ut during e)-.2 F -.15(xe)-.15 G -.347(cution of a script by the).15 F/F1 10/Times-Bold@0 SF(.)2.847 E F0 -(\()5.347 E F1(sour)A(ce)-.18 E F0 2.847(\)c)C .347 -(ommand, it causes the shell)-2.847 F 1.132(to stop e)144 96 R -.15(xe) --.15 G 1.133(cuting that script and return either).15 F/F2 10 -/Times-Italic@0 SF(n)3.993 E F0 1.133(or the e)3.873 F 1.133 -(xit status of the last command e)-.15 F -.15(xe)-.15 G(cuted).15 E .252 -(within the script as the e)144 108 R .252(xit status of the script.) --.15 F(If)5.252 E F2(n)2.751 E F0 .251(is supplied, the return v)2.751 F -.251(alue is its least signi\214-)-.25 F .288(cant 8 bits.)144 120 R -.288(The return status is non-zero if)5.288 F F1 -.18(re)2.788 G(tur).18 -E(n)-.15 E F0 .288(is supplied a non-numeric ar)2.788 F .289 -(gument, or is used)-.18 F .661(outside a function and not during e)144 -132 R -.15(xe)-.15 G .661(cution of a script by).15 F F1(.)3.161 E F0 -(or)3.994 E F1(sour)3.161 E(ce)-.18 E F0 5.661(.A)C .961 -.15(ny c) --5.661 H .661(ommand associated).15 F(with the)144 144 Q F1(RETURN)2.5 E -F0(trap is e)2.5 E -.15(xe)-.15 G(cuted before e).15 E -.15(xe)-.15 G -(cution resumes after the function or script.).15 E F1(set)108 160.8 Q +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Bold@0 SF -.18(re)108 84 S(tur).18 E(n)-.15 E F0([)2.5 E/F2 10 +/Times-Italic@0 SF(n)A F0(])A .02(Causes a function to stop e)144 96 R +-.15(xe)-.15 G .02(cuting and return the v).15 F .021 +(alue speci\214ed by)-.25 F F2(n)2.881 E F0 .021(to its caller)2.761 F +5.021(.I)-.55 G(f)-5.021 E F2(n)2.881 E F0 .021(is omitted,)2.761 F .469 +(the return status is that of the last command e)144 108 R -.15(xe)-.15 +G .469(cuted in the function body).15 F 5.469(.I)-.65 G(f)-5.469 E F1 +-.18(re)2.969 G(tur).18 E(n)-.15 E F0 .468(is used out-)2.969 F .466 +(side a function, b)144 120 R .466(ut during e)-.2 F -.15(xe)-.15 G .467 +(cution of a script by the).15 F F1(.)2.967 E F0(\()5.467 E F1(sour)A +(ce)-.18 E F0 2.967(\)c)C .467(ommand, it causes the shell to)-2.967 F +.088(stop e)144 132 R -.15(xe)-.15 G .087 +(cuting that script and return either).15 F F2(n)2.947 E F0 .087 +(or the e)2.827 F .087(xit status of the last command e)-.15 F -.15(xe) +-.15 G .087(cuted within).15 F .613(the script as the e)144 144 R .613 +(xit status of the script.)-.15 F(If)5.613 E F2(n)3.113 E F0 .613 +(is supplied, the return v)3.113 F .613 +(alue is its least signi\214cant 8)-.25 F 2.511(bits. The)144 156 R .011 +(return status is non-zero if)2.511 F F1 -.18(re)2.511 G(tur).18 E(n) +-.15 E F0 .011(is supplied a non-numeric ar)2.511 F .01 +(gument, or is used outside)-.18 F 2.909(af)144 168 S .409 +(unction and not during e)-2.909 F -.15(xe)-.15 G .41 +(cution of a script by).15 F F1(.)2.91 E F0(or)3.743 E F1(sour)2.91 E +(ce)-.18 E F0 5.41(.A)C .71 -.15(ny c)-5.41 H .41 +(ommand associated with the).15 F F1(RETURN)144 180 Q F0(trap is e)2.5 E +-.15(xe)-.15 G(cuted before e).15 E -.15(xe)-.15 G +(cution resumes after the function or script.).15 E F1(set)108 196.8 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -F1(set)108 172.8 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1 +F1(set)108 208.8 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1 (+o)-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0 -(...])2.5 E -.4(Wi)144 184.8 S .835(thout options, the name and v).4 F -.835(alue of each shell v)-.25 F .836 +(...])2.5 E -.4(Wi)144 220.8 S .836(thout options, the name and v).4 F +.835(alue of each shell v)-.25 F .835 (ariable are displayed in a format that can be)-.25 F .784 -(reused as input for setting or resetting the currently-set v)144 196.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 208.8 R F2 .447(posix mode) -2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447 +(reused as input for setting or resetting the currently-set v)144 232.8 +R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784 +(riables cannot be).25 F 2.947(reset. In)144 244.8 R F2 .447(posix mode) +2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447 (ariables are listed.)-.25 F .447 -(The output is sorted according to the current)5.447 F 3.531 -(locale. When)144 220.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 232.8 R 1.624 +(The output is sorted according to the current)5.447 F 3.53 +(locale. When)144 256.8 R 1.031(options are speci\214ed, the)3.53 F +3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An) +-.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F +1.624(after option processing are treated as v)144 268.8 R 1.623 (alues for the positional parameters and are assigned, in)-.25 F(order) -144 244.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 +144 280.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 256.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 268.8 Q -(vironment of subsequent commands.)-.4 E F1<ad62>144 280.8 Q F0 .131 +-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 292.8 Q +F0 .539(Automatically mark v)29.3 F .539 +(ariables and functions which are modi\214ed or created for e)-.25 F .54 +(xport to)-.15 F(the en)184 304.8 Q(vironment of subsequent commands.) +-.4 E F1<ad62>144 316.8 Q F0 .132 (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 292.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 304.8 Q F0 -.088(Exit immediately if a)29.86 F F2(pipeline)2.588 E F0 .087 -(\(which may consist of a single)2.588 F F2 .087(simple command)2.587 F -F0 .087(\), a)B F2(list)2.587 E F0 2.587(,o)C(r)-2.587 E(a)184 316.8 Q -F2 1.293(compound command)3.793 F F0(\(see)3.793 E/F3 9/Times-Bold@0 SF -1.293(SHELL GRAMMAR)3.793 F F0(abo)3.544 E -.15(ve)-.15 G 3.794(\), e) -.15 F 1.294(xits with a non-zero status.)-.15 F .08 -(The shell does not e)184 328.8 R .079(xit if the command that f)-.15 F -.079(ails is part of the command list immediately)-.1 F(follo)184 340.8 -Q 1.654(wing a)-.25 F F1(while)4.154 E F0(or)4.154 E F1(until)4.154 E F0 --.1(ke)4.154 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.655 -(wing the)-.25 F F1(if)4.155 E F0(or)4.155 E F1(elif)4.155 E F0(reserv) -4.155 E(ed)-.15 E -.1(wo)184 352.8 S .582(rds, part of an).1 F 3.082(yc) --.15 G .582(ommand e)-3.082 F -.15(xe)-.15 G .581(cuted in a).15 F F1 -(&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .581(list e)3.081 F .581 -(xcept the command follo)-.15 F(wing)-.25 E .917(the \214nal)184 364.8 R -F1(&&)3.417 E F0(or)3.417 E F1(||)3.417 E F0 3.417(,a)C 1.217 -.15(ny c) --3.417 H .918(ommand in a pipeline b).15 F .918 -(ut the last, or if the command')-.2 F 3.418(sr)-.55 G(eturn)-3.418 E --.25(va)184 376.8 S .661(lue is being in).25 F -.15(ve)-.4 G .661 -(rted with).15 F F1(!)3.161 E F0 5.661(.I)C 3.161(fac)-5.661 G .66 -(ompound command other than a subshell returns a)-3.161 F 1.112 -(non-zero status because a command f)184 388.8 R 1.112(ailed while)-.1 F -F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.113 -(eing ignored, the shell does)-3.612 F .178(not e)184 400.8 R 2.678 -(xit. A)-.15 F .178(trap on)2.678 F F1(ERR)2.678 E F0 2.678(,i)C 2.678 -(fs)-2.678 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178 -(cuted before the shell e).15 F 2.677(xits. This)-.15 F .177 -(option applies to)2.677 F .617(the shell en)184 412.8 R .617 +2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E +(primary prompt.)184 328.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 340.8 Q F0 +.087(Exit immediately if a)29.86 F F2(pipeline)2.587 E F0 .087 +(\(which may consist of a single)2.587 F F2 .088(simple command)2.588 F +F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 352.8 Q +F2 1.294(compound command)3.794 F F0(\(see)3.794 E/F3 9/Times-Bold@0 SF +1.294(SHELL GRAMMAR)3.794 F F0(abo)3.544 E -.15(ve)-.15 G 3.793(\), e) +.15 F 1.293(xits with a non-zero status.)-.15 F .079 +(The shell does not e)184 364.8 R .079(xit if the command that f)-.15 F +.08(ails is part of the command list immediately)-.1 F(follo)184 376.8 Q +1.655(wing a)-.25 F F1(while)4.155 E F0(or)4.155 E F1(until)4.155 E F0 +-.1(ke)4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654 +(wing the)-.25 F F1(if)4.154 E F0(or)4.154 E F1(elif)4.154 E F0(reserv) +4.154 E(ed)-.15 E -.1(wo)184 388.8 S .581(rds, part of an).1 F 3.081(yc) +-.15 G .581(ommand e)-3.081 F -.15(xe)-.15 G .581(cuted in a).15 F F1 +(&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .582(list e)3.082 F .582 +(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 400.8 R +F1(&&)3.418 E F0(or)3.418 E F1(||)3.418 E F0 3.418(,a)C 1.218 -.15(ny c) +-3.418 H .918(ommand in a pipeline b).15 F .917 +(ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417 E +-.25(va)184 412.8 S .66(lue is being in).25 F -.15(ve)-.4 G .66 +(rted with).15 F F1(!)3.16 E F0 5.661(.I)C 3.161(fac)-5.661 G .661 +(ompound command other than a subshell returns a)-3.161 F 1.113 +(non-zero status because a command f)184 424.8 R 1.112(ailed while)-.1 F +F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.112 +(eing ignored, the shell does)-3.612 F .177(not e)184 436.8 R 2.677 +(xit. A)-.15 F .177(trap on)2.677 F F1(ERR)2.677 E F0 2.677(,i)C 2.678 +(fs)-2.677 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178 +(cuted before the shell e).15 F 2.678(xits. This)-.15 F .178 +(option applies to)2.678 F .618(the shell en)184 448.8 R .617 (vironment and each subshell en)-.4 F .617(vironment separately \(see) --.4 F F3 .618(COMMAND EXE-)3.118 F .643(CUTION ENVIR)184 424.8 R(ONMENT) +-.4 F F3 .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)184 460.8 R(ONMENT) -.27 E F0(abo)2.893 E -.15(ve)-.15 G .643 (\), and may cause subshells to e).15 F .643(xit before e)-.15 F -.15 -(xe)-.15 G .642(cuting all).15 F .015(the commands in the subshell.)184 -436.8 R .016(If a shell function e)5.015 F -.15(xe)-.15 G .016 -(cutes in a conte).15 F .016(xt where)-.15 F F1<ad65>2.516 E F0 .016 -(is being)2.516 F .348(ignored, e)184 448.8 R -.15(ve)-.25 G 2.848(ni) -.15 G(f)-2.848 E F1<ad65>2.848 E F0 .347(is set, none of the commands e) -2.848 F -.15(xe)-.15 G .347(cuted within the function body will).15 F -1.238(be af)184 460.8 R 1.238(fected by the)-.25 F F1<ad65>3.738 E F0 -3.738(setting. If)3.738 F 3.738(as)3.738 G 1.238(hell function sets) --3.738 F F1<ad65>3.738 E F0 1.238(while e)3.738 F -.15(xe)-.15 G 1.239 -(cuting in a conte).15 F(xt)-.15 E(where)184 472.8 Q F1<ad65>3.154 E F0 -.654(is ignored, that setting will not ha)3.154 F .953 -.15(ve a)-.2 H -.953 -.15(ny e).15 H -.25(ff).15 G .653 -(ect until the command containing).25 F(the function call completes.)184 -484.8 Q F1<ad66>144 496.8 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 -E F1<ad68>144 508.8 Q F0 2.238(Remember the location of commands as the) +(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 472.8 +Q 2.042(If a compound command or shell function e)184 490.8 R -.15(xe) +-.15 G 2.042(cutes in a conte).15 F 2.042(xt where)-.15 F F1<ad65>4.542 +E F0 2.042(is being)4.542 F 1.435(ignored, none of the commands e)184 +502.8 R -.15(xe)-.15 G 1.436 +(cuted within the compound command or function).15 F .194 +(body will be af)184 514.8 R .194(fected by the)-.25 F F1<ad65>2.694 E +F0 .193(setting, e)2.693 F -.15(ve)-.25 G 2.693(ni).15 G(f)-2.693 E F1 +<ad65>2.693 E F0 .193(is set and a command returns a f)2.693 F(ailure) +-.1 E 3.39(status. If)184 526.8 R 3.39(ac)3.39 G .89 +(ompound command or shell function sets)-3.39 F F1<ad65>3.39 E F0 .89 +(while e)3.39 F -.15(xe)-.15 G .89(cuting in a conte).15 F(xt)-.15 E +(where)184 538.8 Q F1<ad65>3.154 E F0 .654 +(is ignored, that setting will not ha)3.154 F .953 -.15(ve a)-.2 H .953 +-.15(ny e).15 H -.25(ff).15 G .653(ect until the compound command).25 F +(or the command containing the function call completes.)184 550.8 Q F1 +<ad66>144 562.8 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 E F1 +<ad68>144 574.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 -520.8 Q(ault.)-.1 E F1<ad6b>144 532.8 Q F0 .514(All ar)28.74 F .514 +586.8 Q(ault.)-.1 E F1<ad6b>144 598.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 544.8 Q F1 -<ad6d>144 556.8 Q F0 .148(Monitor mode.)25.97 F .148 +(command, not just those that precede the command name.)184 610.8 Q F1 +<ad6d>144 622.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 .651 -(on systems that support it \(see)184 568.8 R F3 .651(JOB CONTR)3.151 F +(on systems that support it \(see)184 634.8 R F3 .651(JOB CONTR)3.151 F (OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .65 -(processes run in a separate)3.151 F .678(process group.)184 580.8 R +(processes run in a separate)3.151 F .678(process group.)184 646.8 R .679(When a background job completes, the shell prints a line containin\ -g its)5.678 F -.15(ex)184 592.8 S(it status.).15 E F1<ad6e>144 604.8 Q +g its)5.678 F -.15(ex)184 658.8 S(it status.).15 E F1<ad6e>144 670.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 616.8 Q(This is ignored by interacti)5 E .3 --.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 628.8 Q F2(option\255name)2.5 -E F0(The)184 640.8 Q F2(option\255name)2.5 E F0(can be one of the follo) -2.5 E(wing:)-.25 E F1(allexport)184 652.8 Q F0(Same as)224 664.8 Q F1 -<ad61>2.5 E F0(.)A F1(braceexpand)184 676.8 Q F0(Same as)224 688.8 Q F1 -<ad42>2.5 E F0(.)A F1(emacs)184 700.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 712.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 724.8 R(also af)2.5 E -(fects the editing interf)-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G -(ad \255e).18 E F0(.)A(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(14) +5.653 F(syntax errors.)184 682.8 Q(This is ignored by interacti)5 E .3 +-.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 694.8 Q F2(option\255name)2.5 +E F0(The)184 706.8 Q F2(option\255name)2.5 E F0(can be one of the follo) +2.5 E(wing:)-.25 E(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(14) 198.725 E 0 Cg EP %%Page: 15 15 %%BeginPageSetup @@ -1962,909 +1968,929 @@ 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(err)184 84 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 -E F0(.)A F1(errtrace)184 96 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1 -(functrace)184 108 Q F0(Same as)224 120 Q F1<ad54>2.5 E F0(.)A F1 -(hashall)184 132 Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand) -184 144 Q F0(Same as)224 156 Q F1<ad48>2.5 E F0(.)A F1(history)184 168 Q -F0 .586(Enable command history)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 9 +/Times-Bold@0 SF(allexport)184 84 Q F0(Same as)224 96 Q F1<ad61>2.5 E F0 +(.)A F1(braceexpand)184 108 Q F0(Same as)224 120 Q F1<ad42>2.5 E F0(.)A +F1(emacs)184 132 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 144 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 156 R(also af)2.5 E(fects the editing interf) +-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(err) +184 168 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1 +(errtrace)184 180 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1(functrace) +184 192 Q F0(Same as)224 204 Q F1<ad54>2.5 E F0(.)A F1(hashall)184 216 Q +F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)184 228 Q F0 +(Same as)224 240 Q F1<ad48>2.5 E F0(.)A F1(history)184 252 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/F2 9 /Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F3 9/Times-Roman@0 SF -(.)A F0 .587(This option is)5.087 F(on by def)224 180 Q +(.)A F0 .587(This option is)5.087 F(on by def)224 264 Q (ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184 -192 Q(eeof)-.18 E F0 1.657(The ef)224 204 R 1.657 +276 Q(eeof)-.18 E F0 1.657(The ef)224 288 R 1.657 (fect is as if the shell command)-.25 F/F4 10/Courier@0 SF(IGNOREEOF=10) 4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224 -216 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).) -.15 E F1 -.1(ke)184 228 S(yw).1 E(ord)-.1 E F0(Same as)224 240 Q F1 -<ad6b>2.5 E F0(.)A F1(monitor)184 252 Q F0(Same as)5.56 E F1<ad6d>2.5 E -F0(.)A F1(noclob)184 264 Q(ber)-.1 E F0(Same as)224 276 Q F1<ad43>2.5 E -F0(.)A F1(noexec)184 288 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1 -(noglob)184 300 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184 -312 Q F0(Currently ignored.)16.66 E F1(notify)184 324 Q F0(Same as)15 E -F1<ad62>2.5 E F0(.)A F1(nounset)184 336 Q F0(Same as)6.66 E F1<ad75>2.5 -E F0(.)A F1(onecmd)184 348 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1 -(ph)184 360 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1 -(pipefail)184 372 Q F0 1.029(If set, the return v)7.77 F 1.029 +300 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 312 S(yw).1 E(ord)-.1 E F0(Same as)224 324 Q F1 +<ad6b>2.5 E F0(.)A F1(monitor)184 336 Q F0(Same as)5.56 E F1<ad6d>2.5 E +F0(.)A F1(noclob)184 348 Q(ber)-.1 E F0(Same as)224 360 Q F1<ad43>2.5 E +F0(.)A F1(noexec)184 372 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1 +(noglob)184 384 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184 +396 Q F0(Currently ignored.)16.66 E F1(notify)184 408 Q F0(Same as)15 E +F1<ad62>2.5 E F0(.)A F1(nounset)184 420 Q F0(Same as)6.66 E F1<ad75>2.5 +E F0(.)A F1(onecmd)184 432 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1 +(ph)184 444 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1 +(pipefail)184 456 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 384 R +(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 468 R 1.136 (xit with a non-zero status, or zero if all commands in the pipeline) --.15 F -.15(ex)224 396 S(it successfully).15 E 5(.T)-.65 G -(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 408 Q F0 +-.15 F -.15(ex)224 480 S(it successfully).15 E 5(.T)-.65 G +(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 492 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 420 Q -/F5 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 432 Q(vileged) --.1 E F0(Same as)224 444 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 456 S -(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 468 Q F0 +(fers from the)-.25 F(POSIX standard to match the standard \()224 504 Q +/F5 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 516 Q(vileged) +-.1 E F0(Same as)224 528 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 540 S +(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 552 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 480 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0 -(.)A F1(xtrace)184 492 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 -510 Q F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F5 +(interf)224 564 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0 +(.)A F1(xtrace)184 576 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 +594 Q F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F5 (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 -522 Q F0 1.072(is supplied with no)3.572 F F5(option\255name)3.572 E F0 +606 Q F0 1.072(is supplied with no)3.572 F F5(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 534 Q F1<ad70> -144 546 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F5(privile)4.821 E -.1 +(option settings is displayed on the standard output.)184 618 Q F1<ad70> +144 630 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F5(privile)4.821 E -.1 (ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F F2($ENV)3.572 E F0(and)3.322 E F2($B)3.572 E(ASH_ENV)-.27 E F0 1.072 (\214les are not pro-)3.322 F 1.501 -(cessed, shell functions are not inherited from the en)184 558 R 1.5 -(vironment, and the)-.4 F F2(SHELLOPTS)4 E F3(,)A F2 -.27(BA)184 570 S +(cessed, shell functions are not inherited from the en)184 642 R 1.5 +(vironment, and the)-.4 F F2(SHELLOPTS)4 E F3(,)A F2 -.27(BA)184 654 S (SHOPTS).27 E F3(,)A F2(CDP)2.774 E -.855(AT)-.666 G(H).855 E F3(,)A F0 (and)2.774 E F2(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G .524 (riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F -(vironment,)-.4 E .38(are ignored.)184 582 R .38 +(vironment,)-.4 E .38(are ignored.)184 666 R .38 (If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u) -.25 H .379(ser \(group\) id not equal to the real).15 F .461 -(user \(group\) id, and the)184 594 R F1<ad70>2.961 E F0 .461 +(user \(group\) id, and the)184 678 R F1<ad70>2.961 E F0 .461 (option is not supplied, these actions are tak)2.961 F .462 -(en and the ef)-.1 F(fec-)-.25 E(ti)184 606 Q .695 -.15(ve u)-.25 H .395 +(en and the ef)-.1 F(fec-)-.25 E(ti)184 690 Q .695 -.15(ve u)-.25 H .395 (ser id is set to the real user id.).15 F .395(If the)5.395 F F1<ad70> 2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25 -E -.15(ve)-.25 G .386(user id is not reset.)184 618 R -.45(Tu)5.386 G +E -.15(ve)-.25 G .386(user id is not reset.)184 702 R -.45(Tu)5.386 G .386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886 F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F -(set to the real user and group ids.)184 630 Q F1<ad74>144 642 Q F0 -(Exit after reading and e)30.97 E -.15(xe)-.15 G(cuting one command.).15 -E F1<ad75>144 654 Q F0 -.35(Tr)28.74 G .044(eat unset v).35 F .044(aria\ -bles and parameters other than the special parameters "@" and "*" as an) --.25 F .182(error when performing parameter e)184 666 R 2.682 -(xpansion. If)-.15 F -.15(ex)2.682 G .183 -(pansion is attempted on an unset v).15 F(ari-)-.25 E .746 -(able or parameter)184 678 R 3.246(,t)-.4 G .746 -(he shell prints an error message, and, if not interacti)-3.246 F -.15 -(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184 -690 Q F1<ad76>144 702 Q F0(Print shell input lines as the)29.3 E 2.5(ya) --.15 G(re read.)-2.5 E F1<ad78>144 714 Q F0 .315(After e)29.3 F .315 -(xpanding each)-.15 F F5 .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 3.26(or arithmetic)184 726 R F1 --.25(fo)5.76 G(r).25 E F0 3.26(command, display the e)5.76 F 3.26 -(xpanded v)-.15 F 3.26(alue of)-.25 F F2(PS4)5.76 E F3(,)A F0(follo) -5.509 E 3.259(wed by the)-.25 F(GNU Bash-4.2)72 768 Q(2004 Apr 20) -148.735 E(15)198.725 E 0 Cg EP +(set to the real user and group ids.)184 714 Q(GNU Bash-4.2)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 -(command and its e)184 84 Q(xpanded ar)-.15 E(guments or associated w) --.18 E(ord list.)-.1 E/F1 10/Times-Bold@0 SF<ad42>144 96 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 108 Q(ault.)-.1 E F1<ad43>144 120 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 132 R .553 -(may be o)3.053 F -.15(ve)-.15 G .553 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Bold@0 SF<ad74>144 84 Q F0(Exit after reading and e)30.97 E -.15 +(xe)-.15 G(cuting one command.).15 E F1<ad75>144 96 Q F0 -.35(Tr)28.74 G +.044(eat unset v).35 F .044(ariables and parameters other than the spec\ +ial parameters "@" and "*" as an)-.25 F .182 +(error when performing parameter e)184 108 R 2.682(xpansion. If)-.15 F +-.15(ex)2.682 G .183(pansion is attempted on an unset v).15 F(ari-)-.25 +E .746(able or parameter)184 120 R 3.246(,t)-.4 G .746 +(he shell prints an error message, and, if not interacti)-3.246 F -.15 +(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184 +132 Q F1<ad76>144 144 Q F0(Print shell input lines as the)29.3 E 2.5(ya) +-.15 G(re read.)-2.5 E F1<ad78>144 156 Q F0 .315(After e)29.3 F .315 +(xpanding each)-.15 F/F2 10/Times-Italic@0 SF .315(simple command)2.815 +F F0(,)A F1 -.25(fo)2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E +F0(command,)2.815 E F1(select)2.815 E F0(command,)2.815 E 1.236 +(or arithmetic)184 168 R F1 -.25(fo)3.736 G(r).25 E F0 1.236 +(command, display the e)3.736 F 1.236(xpanded v)-.15 F 1.236(alue of) +-.25 F/F3 9/Times-Bold@0 SF(PS4)3.736 E/F4 9/Times-Roman@0 SF(,)A F0 +(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 180 Q +(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1 +<ad42>144 192 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 204 Q +(ault.)-.1 E F1<ad43>144 216 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 228 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 144 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1 -<ad45>144 156 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on) +.15 F(tor)184 240 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1 +<ad45>144 252 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 168 R -.15(xe)-.15 G .838(cuted in a subshell en).15 +F .838(mands e)184 264 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 180 Q F1 -<ad48>144 192 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532 +(trap is normally not inherited in)3.339 F(such cases.)184 276 Q F1 +<ad48>144 288 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 204 Q -.15 -(ve)-.25 G(.).15 E F1<ad50>144 216 Q F0 .959 +F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 300 Q -.15 +(ve)-.25 G(.).15 E F1<ad50>144 312 Q F0 .959 (If set, the shell does not resolv)28.19 F 3.459(es)-.15 G .959 (ymbolic links when e)-3.459 F -.15(xe)-.15 G .96 (cuting commands such as).15 F F1(cd)3.46 E F0 2.822 -(that change the current w)184 228 R 2.822(orking directory)-.1 F 7.822 +(that change the current w)184 324 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 240 R(def)2.685 +(ysical directory structure)-.05 F 2.685(instead. By)184 336 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 252 Q(.)-.65 E F1<ad54>144 -264 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1 +(mands which change the current directory)184 348 Q(.)-.65 E F1<ad54>144 +360 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 276 R -.15(xe)-.15 G 1.932 +(substitutions, and commands e)184 372 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 288 Q F0 -(traps are normally not inherited in such cases.)2.5 E F1<adad>144 300 Q +(UG)-.1 E F0(and)4.432 E F1(RETURN)184 384 Q F0 +(traps are normally not inherited in such cases.)2.5 E F1<adad>144 396 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 312 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 324 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 336 R F1 -<ad78>3.446 E F0(and)3.446 E F1<ad76>3.446 E F0 .945 +(Otherwise,)5.4 E(the positional parameters are set to the)184 408 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 +420 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 432 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 348 Q .425(The options are of)144 -364.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425 +(parameters remain unchanged.)184 444 Q .425(The options are of)144 +460.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 376.8 R 2.678(f. The)-.25 F .178 +(to be turned of)144 472.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 388.8 R F1<24ad>2.566 E F0 +(current set of options may be found in)144 484.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 400.8 Q F1(shift)108 417.6 Q F0([)2.5 E F2(n)A F0 -(])A .429(The positional parameters from)144 429.6 R F2(n)2.929 E F0 +(is encountered.)144 496.8 Q F1(shift)108 513.6 Q F0([)2.5 E F2(n)A F0 +(])A .429(The positional parameters from)144 525.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 441.6 Q F1($#)2.582 +.428(rameters represented by the num-).15 F(bers)144 537.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 453.6 R(If)5.06 E F2(n)2.92 E F0 +(is 0, no parameters are changed.)144 549.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 465.6 R +(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 561.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 477.6 Q F1(shopt)108 494.4 Q F0([) +(or less than zero; otherwise 0.)144 573.6 Q F1(shopt)108 590.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 506.4 S .222(ggle the v).8 F .222 +-2.5 E F0(...])2.5 E -.8(To)144 602.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 518.4 R(The) -144 530.4 Q F1<ad70>2.828 E F0 .327(option causes output to be displaye\ +ed, with an indication of whether or not each is set.)144 614.4 R(The) +144 626.4 Q F1<ad70>2.828 E F0 .327(option causes output to be displaye\ d in a form that may be reused as input.)2.828 F .327(Other options) -5.327 F(ha)144 542.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:) --.25 E F1<ad73>144 554.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5 -E F0(.)A F1<ad75>144 566.4 Q F0(Disable \(unset\) each)24.74 E F2 -(optname)2.5 E F0(.)A F1<ad71>144 578.4 Q F0 .003(Suppresses normal out\ +5.327 F(ha)144 638.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:) +-.25 E F1<ad73>144 650.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5 +E F0(.)A F1<ad75>144 662.4 Q F0(Disable \(unset\) each)24.74 E F2 +(optname)2.5 E F0(.)A F1<ad71>144 674.4 Q F0 .003(Suppresses normal out\ put \(quiet mode\); the return status indicates whether the)24.74 F F2 -(optname)2.504 E F0(is)2.504 E .256(set or unset.)180 590.4 R .256 +(optname)2.504 E F0(is)2.504 E .256(set or unset.)180 686.4 R .256 (If multiple)5.256 F F2(optname)2.756 E F0(ar)2.756 E .256 (guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1 <ad71>2.756 E F0 2.755(,t)C .255(he return status is zero if)-2.755 F -(all)180 602.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.) -2.5 E F1<ad6f>144 614.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2 +(all)180 698.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.) +2.5 E F1<ad6f>144 710.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 .624 -(If either)144 631.2 R F1<ad73>3.124 E F0(or)3.124 E F1<ad75>3.124 E F0 +(If either)144 727.2 R F1<ad73>3.124 E F0(or)3.124 E F1<ad75>3.124 E F0 .624(is used with no)3.124 F F2(optname)3.124 E F0(ar)3.124 E(guments,) -.18 E F1(shopt)3.124 E F0(sho)3.124 E .624 -(ws only those options which are)-.25 F 2.234(set or unset, respecti)144 -643.2 R -.15(ve)-.25 G(ly).15 E 7.234(.U)-.65 G 2.234 -(nless otherwise noted, the)-7.234 F F1(shopt)4.734 E F0 2.234 -(options are disabled \(unset\) by)4.734 F(def)144 655.2 Q(ault.)-.1 E -1.544(The return status when listing options is zero if all)144 672 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 684 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell) --.25 F(option.)144 696 Q(The list of)144 712.8 Q F1(shopt)2.5 E F0 -(options is:)2.5 E(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(16) -198.725 E 0 Cg EP +(ws only those options which are)-.25 F(GNU Bash-4.2)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(autocd)144 84 Q F0 .199 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 2.234 +(set or unset, respecti)144 84 R -.15(ve)-.25 G(ly).15 E 7.234(.U)-.65 G +2.234(nless otherwise noted, the)-7.234 F/F1 10/Times-Bold@0 SF(shopt) +4.734 E F0 2.234(options are disabled \(unset\) by)4.734 F(def)144 96 Q +(ault.)-.1 E 1.544 +(The return status when listing options is zero if all)144 112.8 R/F2 10 +/Times-Italic@0 SF(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 124.8 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695 +(alid shell)-.25 F(option.)144 136.8 Q(The list of)144 153.6 Q F1(shopt) +2.5 E F0(options is:)2.5 E F1(autocd)144 171.6 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 96 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F +(ment to the)184 183.6 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 108 Q(ars)-.1 E F0 .156(If set, an ar)184 120 R .156 +F1(cdable_v)144 195.6 Q(ars)-.1 E F0 .156(If set, an ar)184 207.6 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 132 Q(ariable whose v)-.25 E -(alue is the directory to change to.)-.25 E F1(cdspell)144 144 Q F0 +(name of a v)184 219.6 Q(ariable whose v)-.25 E +(alue is the directory to change to.)-.25 E F1(cdspell)144 231.6 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 156 R 1.488(errors check)3.988 F 1.487 +(corrected. The)184 243.6 R 1.488(errors check)3.988 F 1.487 (ed for are transposed characters, a missing character)-.1 F 3.987(,a) --.4 G(nd)-3.987 E .77(one character too man)184 168 R 4.57 -.65(y. I) +-.4 G(nd)-3.987 E .77(one character too man)184 255.6 R 4.57 -.65(y. I) -.15 H 3.27(fac).65 G .77 (orrection is found, the corrected \214lename is printed, and)-3.27 F -(the command proceeds.)184 180 Q(This option is only used by interacti)5 -E .3 -.15(ve s)-.25 H(hells.).15 E F1(checkhash)144 192 Q F0 2.08 -(If set,)184 204 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 216 S(cute it.).15 E +(the command proceeds.)184 267.6 Q +(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.) +.15 E F1(checkhash)144 279.6 Q F0 2.08(If set,)184 291.6 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 303.6 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 228 Q -F0 .448(If set,)184 240 R F1(bash)2.948 E F0 .448 +(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 315.6 +Q F0 .448(If set,)184 327.6 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 252 R(an)3.439 E 3.439(yj)-.15 G +F -.15(ve)-.25 G 3.439(shell. If)184 339.6 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 2.203 -(attempted without an interv)184 264 R 2.203(ening command \(see)-.15 F -/F2 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E --.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(al)184 276 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 288 Q F0 .797(If set,)184 -300 R F1(bash)3.297 E F0 .797(checks the windo)3.297 F 3.297(ws)-.25 G +(attempted without an interv)184 351.6 R 2.203(ening command \(see)-.15 +F/F3 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E +-.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(al)184 363.6 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 375.6 Q F0 .797(If set,)184 +387.6 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 312 S(lues of).25 E F2(LINES)2.5 E -F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A F1(cmdhist)144 -324 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 +.796(pdates the)-3.296 F -.25(va)184 399.6 S(lues of).25 E F3(LINES)2.5 +E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A F1(cmdhist) +144 411.6 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 -336 Q 5(.T)-.65 G(his allo)-5 E -(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 348 Q -F0 .42(If set,)184 360 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 .461(to the)184 372 R F1([[)2.961 E F0 .462 -(conditional command')2.962 F(s)-.55 E F1(=~)2.962 E F0 .462 +423.6 Q 5(.T)-.65 G(his allo)-5 E +(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 435.6 +Q F0 .42(If set,)184 447.6 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 .461(to the) +184 459.6 R F1([[)2.961 E F0 .462(conditional command')2.962 F(s)-.55 E +F1(=~)2.962 E F0 .462 (operator and locale-speci\214c string comparison when)2.962 F .71 -(using the)184 384 R F1([[)3.21 E F0 .71(conditional command')3.21 F(s) --.55 E F1(<)3.21 E F0(and)3.21 E F1(>)3.21 E F0 3.21(operators. Bash) +(using the)184 471.6 R F1([[)3.21 E F0 .71(conditional command')3.21 F +(s)-.55 E F1(<)3.21 E F0(and)3.21 E F1(>)3.21 E F0 3.21(operators. Bash) 3.21 F -.15(ve)3.21 G .71(rsions prior to bash-4.1).15 F .82 -(use ASCII collation and)184 396 R/F4 10/Times-Italic@0 SF(str)3.321 E -(cmp)-.37 E F0 .821(\(3\); bash-4.1 and later use the current locale') -.19 F 3.321(sc)-.55 G(ollation)-3.321 E(sequence and)184 408 Q F4(str) -2.5 E(coll)-.37 E F0(\(3\).).51 E F1(compat32)144 420 Q F0 1.41(If set,) -184 432 R F1(bash)3.91 E F0 1.41(changes its beha)3.91 F 1.409 -(vior to that of v)-.2 F 1.409 -(ersion 3.2 with respect to locale-speci\214c)-.15 F .422 -(string comparison when using the)184 444 R F1([[)2.922 E F0 .422 +(use ASCII collation and)184 483.6 R F2(str)3.321 E(cmp)-.37 E F0 .821 +(\(3\); bash-4.1 and later use the current locale').19 F 3.321(sc)-.55 G +(ollation)-3.321 E(sequence and)184 495.6 Q F2(str)2.5 E(coll)-.37 E F0 +(\(3\).).51 E F1(compat32)144 507.6 Q F0 1.41(If set,)184 519.6 R F1 +(bash)3.91 E F0 1.41(changes its beha)3.91 F 1.409(vior to that of v)-.2 +F 1.409(ersion 3.2 with respect to locale-speci\214c)-.15 F .422 +(string comparison when using the)184 531.6 R F1([[)2.922 E F0 .422 (conditional command')2.922 F(s)-.55 E F1(<)2.922 E F0(and)2.922 E F1(>) -2.923 E F0 .423(operators \(see pre-)2.923 F(vious item\).)184 456 Q F1 -(compat40)144 468 Q F0 1.41(If set,)184 480 R F1(bash)3.91 E F0 1.41 -(changes its beha)3.91 F 1.409(vior to that of v)-.2 F 1.409 +2.923 E F0 .423(operators \(see pre-)2.923 F(vious item\).)184 543.6 Q +F1(compat40)144 555.6 Q F0 1.41(If set,)184 567.6 R F1(bash)3.91 E F0 +1.41(changes its beha)3.91 F 1.409(vior to that of v)-.2 F 1.409 (ersion 4.0 with respect to locale-speci\214c)-.15 F 2.007 -(string comparison when using the)184 492 R F1([[)4.507 E F0 2.008 +(string comparison when using the)184 579.6 R F1([[)4.507 E F0 2.008 (conditional command')4.507 F(s)-.55 E F1(<)4.508 E F0(and)4.508 E F1(>) -4.508 E F0 2.008(operators \(see)4.508 F .77(description of)184 504 R F1 -(compat31)3.27 E F0 3.269(\)a)C .769(nd the ef)-3.269 F .769 +4.508 E F0 2.008(operators \(see)4.508 F .77(description of)184 591.6 R +F1(compat31)3.27 E F0 3.269(\)a)C .769(nd the ef)-3.269 F .769 (fect of interrupting a command list.)-.25 F .769(Bash v)5.769 F (ersions)-.15 E .086 -(4.0 and later interrupt the list as if the shell recei)184 516 R -.15 +(4.0 and later interrupt the list as if the shell recei)184 603.6 R -.15 (ve)-.25 G 2.587(dt).15 G .087(he interrupt; pre)-2.587 F .087(vious v) --.25 F .087(ersions con-)-.15 F(tinue with the ne)184 528 Q -(xt command in the list.)-.15 E F1(compat41)144 540 Q F0 1.444(If set,) -184 552 R F1(bash)3.944 E F0 3.944(,w)C 1.443 +-.25 F .087(ersions con-)-.15 F(tinue with the ne)184 615.6 Q +(xt command in the list.)-.15 E F1(compat41)144 627.6 Q F0 1.444 +(If set,)184 639.6 R F1(bash)3.944 E F0 3.944(,w)C 1.443 (hen in posix mode, treats a single quote in a double-quoted parameter) --3.944 F -.15(ex)184 564 S .958(pansion as a special character).15 F +-3.944 F -.15(ex)184 651.6 S .958(pansion as a special character).15 F 5.958(.T)-.55 G .959(he single quotes must match \(an e)-5.958 F -.15 (ve)-.25 G 3.459(nn).15 G .959(umber\) and)-3.459 F .59 -(the characters between the single quotes are considered quoted.)184 576 -R .59(This is the beha)5.59 F .59(vior of)-.2 F .589 -(posix mode through v)184 588 R .589(ersion 4.1.)-.15 F .589(The def) +(the characters between the single quotes are considered quoted.)184 +663.6 R .59(This is the beha)5.59 F .59(vior of)-.2 F .589 +(posix mode through v)184 675.6 R .589(ersion 4.1.)-.15 F .589(The def) 5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .59 -(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 600 Q F1 -(complete_fullquote)144 612 Q F0 .654(If set,)184 624 R F1(bash)3.153 E -F0 .653(quotes all shell metacharacters in \214lenames and directory na\ -mes when per)3.153 F(-)-.2 E 1.524(forming completion.)184 636 R 1.524 -(If not set,)6.524 F F1(bash)4.024 E F0(remo)4.024 E -.15(ve)-.15 G -4.024(sm).15 G 1.524(etacharacters such as the dollar sign)-4.024 F -2.667(from the set of characters that will be quoted in completed \214l\ -enames when these)184 648 R .028(metacharacters appear in shell v)184 -660 R .028(ariable references in w)-.25 F .029(ords to be completed.)-.1 -F .029(This means)5.029 F 1.073(that dollar signs in v)184 672 R 1.073 -(ariable names that e)-.25 F 1.073 -(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25 -(ev e)184 684 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123 -(ollar signs appearing in \214lenames will not be quoted, either).15 F -6.123(.T)-.55 G 1.123(his is acti)-6.123 F -.15(ve)-.25 G .59 -(only when bash is using backslashes to quote completed \214lenames.)184 -696 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 708 Q -(ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E -(ersions through 4.2.)-.15 E(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E -(17)198.725 E 0 Cg EP +(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 687.6 Q F1(compat42)144 +699.6 Q F0 1.797(If set,)184 711.6 R F1(bash)4.297 E F0 1.796 +(does not process the replacement string in the pattern substitution w) +4.296 F(ord)-.1 E -.15(ex)184 723.6 S(pansion using quote remo).15 E +-.25(va)-.15 G(l.).25 E(GNU Bash-4.2)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(dir)144 84 Q(expand)-.18 E F0 .486(If set,)184 96 R F1 -(bash)2.986 E F0 .486(replaces directory names with the results of w) -2.986 F .486(ord e)-.1 F .487(xpansion when perform-)-.15 F .18 -(ing \214lename completion.)184 108 R .179 -(This changes the contents of the readline editing b)5.18 F(uf)-.2 E -(fer)-.25 E 5.179(.I)-.55 G 2.679(fn)-5.179 G(ot)-2.679 E(set,)184 120 Q -F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G -(hat the user typed.)-2.5 E F1(dirspell)144 132 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 +/Times-Bold@0 SF(complete_fullquote)144 84 Q F0 .653(If set,)184 96 R F1 +(bash)3.153 E F0 .653(quotes all shell metacharacters in \214lenames an\ +d directory names when per)3.153 F(-)-.2 E 1.525(forming completion.)184 +108 R 1.524(If not set,)6.525 F F1(bash)4.024 E F0(remo)4.024 E -.15(ve) +-.15 G 4.024(sm).15 G 1.524(etacharacters such as the dollar sign)-4.024 +F 2.667(from the set of characters that will be quoted in completed \ +\214lenames when these)184 120 R .029(metacharacters appear in shell v) +184 132 R .028(ariable references in w)-.25 F .028 +(ords to be completed.)-.1 F .028(This means)5.028 F 1.072 +(that dollar signs in v)184 144 R 1.073(ariable names that e)-.25 F +1.073(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 +-.25(ev e)184 156 T 1.923 -.4(r, a).25 H 1.423 -.15(ny d).4 H 1.123 +(ollar signs appearing in \214lenames will not be quoted, either).15 F +6.123(.T)-.55 G 1.122(his is acti)-6.123 F -.15(ve)-.25 G .59 +(only when bash is using backslashes to quote completed \214lenames.)184 +168 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 180 Q +(ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E +(ersions through 4.2.)-.15 E F1(dir)144 192 Q(expand)-.18 E F0 .487 +(If set,)184 204 R F1(bash)2.987 E F0 .486 +(replaces directory names with the results of w)2.986 F .486(ord e)-.1 F +.486(xpansion when perform-)-.15 F .179(ing \214lename completion.)184 +216 R .179(This changes the contents of the readline editing b)5.179 F +(uf)-.2 E(fer)-.25 E 5.18(.I)-.55 G 2.68(fn)-5.18 G(ot)-2.68 E(set,)184 +228 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G +(hat the user typed.)-2.5 E F1(dirspell)144 240 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 144 Q(xist.)-.15 E -F1(dotglob)144 156 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165 +(the directory name initially supplied does not e)184 252 Q(xist.)-.15 E +F1(dotglob)144 264 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 168 Q F0 1.386 -(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H 1.386 +(xpansion.)-.15 E F1(execfail)144 276 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.387(cute the \214le speci\214ed as an).15 F(ar)184 180 Q +1.386(cute the \214le speci\214ed as an).15 F(ar)184 288 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 192 Q F0 -.717(If set, aliases are e)184 204 R .717(xpanded as described abo)-.15 +E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 300 Q F0 +.716(If set, aliases are e)184 312 R .717(xpanded as described abo)-.15 F 1.017 -.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(ALIASES)3.217 E -/F3 9/Times-Roman@0 SF(.)A F0 .716(This option is enabled)5.217 F -(by def)184 216 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.) -.15 E F1(extdeb)144 228 Q(ug)-.2 E F0(If set, beha)184 240 Q +/F3 9/Times-Roman@0 SF(.)A F0 .717(This option is enabled)5.217 F +(by def)184 324 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.) +.15 E F1(extdeb)144 336 Q(ug)-.2 E F0(If set, beha)184 348 Q (vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184 -252 Q F0(The)28.5 E F1<ad46>4.25 E F0 1.75(option to the)4.25 F F1 +360 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 264 Q -(gument.)-.18 E F1(2.)184 276 Q F0 1.667(If the command run by the)28.5 +(number corresponding to each function name supplied as an ar)220 372 Q +(gument.)-.18 E F1(2.)184 384 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 288 -Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 300 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 312 S .488 +1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 396 +Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 408 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 420 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 324 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(4.)184 336 Q -F2 -.27(BA)28.5 G(SH_ARGC).27 E F0(and)3.153 E F2 -.27(BA)3.403 G +(sour)220 432 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(4.)184 444 Q +F2 -.27(BA)28.5 G(SH_ARGC).27 E F0(and)3.154 E F2 -.27(BA)3.404 G (SH_ARGV).27 E F0 .904(are updated as described in their descriptions) -3.154 F(abo)220 348 Q -.15(ve)-.15 G(.).15 E F1(5.)184 360 Q F0 1.359 +3.154 F(abo)220 456 Q -.15(ve)-.15 G(.).15 E F1(5.)184 468 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 -372 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10 +480 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 384 Q F0 .804(Error tracing is enabled:)28.5 F .805 -(command substitution, shell functions, and subshells)5.804 F(in)220 396 +184 492 Q F0 .805(Error tracing is enabled:)28.5 F .804 +(command substitution, shell functions, and subshells)5.805 F(in)220 504 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4 (command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E F0(trap.) -2.5 E F1(extglob)144 408 Q F0 .4(If set, the e)8.89 F .4 +2.5 E F1(extglob)144 516 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 420 Q -F0(are enabled.)2.5 E F1(extquote)144 432 Q F0 2.473(If set,)184 444 R +-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 528 Q +F0(are enabled.)2.5 E F1(extquote)144 540 Q F0 2.473(If set,)184 552 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 456 Q -(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 468 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 480 S(pansion error).15 E(.) --.55 E F1 -.25(fo)144 492 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0 -.936(If set, the suf)184 504 R<8c78>-.25 E .936(es speci\214ed by the) +(pansions).15 E(enclosed in double quotes.)184 564 Q +(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 576 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 588 S(pansion error).15 E(.) +-.55 E F1 -.25(fo)144 600 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0 +.937(If set, the suf)184 612 R<8c78>-.25 E .936(es speci\214ed by the) -.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w) --.25 F .937(ords to be ignored)-.1 F .32(when performing w)184 516 R .32 +-.25 F .936(ords to be ignored)-.1 F .32(when performing w)184 624 R .32 (ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32 -(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.947 -(pletions. See)184 528 R F2 .447(SHELL V)2.947 F(ARIABLES)-1.215 E F0 -(abo)2.697 E .747 -.15(ve f)-.15 H .448(or a description of).15 F F2 -(FIGNORE)2.948 E F3(.)A F0 .448(This option is)4.948 F(enabled by def) -184 540 Q(ault.)-.1 E F1(globasciiranges)144 552 Q F0 .806 -(If set, range e)184 564 R .806 -(xpressions used in pattern matching \(see)-.15 F F2 -.09(Pa)3.305 G -(tter).09 E 3.055(nM)-.135 G(atching)-3.055 E F0(abo)3.055 E -.15(ve) --.15 G 3.305(\)b).15 G(eha)-3.305 E -.15(ve)-.2 G 2.089 -(as if in the traditional C locale when performing comparisons.)184 576 -R 2.09(That is, the current)7.089 F(locale')184 588 Q 2.614(sc)-.55 G -.114(ollating sequence is not tak)-2.614 F .113(en into account, so)-.1 -F F1(b)2.613 E F0 .113(will not collate between)2.613 F F1(A)2.613 E F0 -(and)2.613 E F1(B)184 600 Q F0 2.5(,a)C(nd upper)-2.5 E(-case and lo)-.2 +(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.948 +(pletions. See)184 636 R F2 .448(SHELL V)2.948 F(ARIABLES)-1.215 E F0 +(abo)2.698 E .748 -.15(ve f)-.15 H .448(or a description of).15 F F2 +(FIGNORE)2.947 E F3(.)A F0 .447(This option is)4.947 F(enabled by def) +184 648 Q(ault.)-.1 E F1(globasciiranges)144 660 Q F0 .805 +(If set, range e)184 672 R .806 +(xpressions used in pattern matching \(see)-.15 F F2 -.09(Pa)3.306 G +(tter).09 E 3.056(nM)-.135 G(atching)-3.056 E F0(abo)3.056 E -.15(ve) +-.15 G 3.306(\)b).15 G(eha)-3.306 E -.15(ve)-.2 G 2.089 +(as if in the traditional C locale when performing comparisons.)184 684 +R 2.089(That is, the current)7.089 F(locale')184 696 Q 2.613(sc)-.55 G +.113(ollating sequence is not tak)-2.613 F .113(en into account, so)-.1 +F F1(b)2.613 E F0 .114(will not collate between)2.613 F F1(A)2.614 E F0 +(and)2.614 E F1(B)184 708 Q F0 2.5(,a)C(nd upper)-2.5 E(-case and lo)-.2 E(wer)-.25 E(-case ASCII characters will collate together)-.2 E(.)-.55 E -F1(globstar)144 612 Q F0 .518(If set, the pattern)5 F F1(**)3.018 E F0 -.519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .519 -(xt will match all \214les and zero)-.15 F .432 -(or more directories and subdirectories.)184 624 R .431 -(If the pattern is follo)5.432 F .431(wed by a)-.25 F F1(/)2.931 E F0 -2.931(,o)C .431(nly directories)-2.931 F(and subdirectories match.)184 -636 Q F1(gnu_errfmt)144 648 Q F0(If set, shell error messages are writt\ -en in the standard GNU error message format.)184 660 Q F1(histappend)144 -672 Q F0 .676 -(If set, the history list is appended to the \214le named by the v)184 -684 R .676(alue of the)-.25 F F2(HISTFILE)3.177 E F0 -.25(va)2.927 G -(ri-).25 E(able when the shell e)184 696 Q(xits, rather than o)-.15 E --.15(ve)-.15 G(rwriting the \214le.).15 E(GNU Bash-4.2)72 768 Q -(2004 Apr 20)148.735 E(18)198.725 E 0 Cg EP +(GNU Bash-4.2)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(histr)144 84 Q(eedit)-.18 E F0 .576(If set, and)184 96 -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 108 Q F1(histv)144 120 Q(erify)-.1 E F0 .402 -(If set, and)184 132 R F1 -.18(re)2.903 G(adline).18 E F0 .403 +/Times-Bold@0 SF(globstar)144 84 Q F0 .519(If set, the pattern)5 F F1 +(**)3.019 E F0 .519(used in a pathname e)3.019 F .519(xpansion conte) +-.15 F .518(xt will match all \214les and zero)-.15 F .431 +(or more directories and subdirectories.)184 96 R .431 +(If the pattern is follo)5.431 F .432(wed by a)-.25 F F1(/)2.932 E F0 +2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184 +108 Q F1(gnu_errfmt)144 120 Q F0(If set, shell error messages are writt\ +en in the standard GNU error message format.)184 132 Q F1(histappend)144 +144 Q F0 .676 +(If set, the history list is appended to the \214le named by the v)184 +156 R .676(alue of the)-.25 F/F2 9/Times-Bold@0 SF(HISTFILE)3.176 E F0 +-.25(va)2.926 G(ri-).25 E(able when the shell e)184 168 Q +(xits, rather than o)-.15 E -.15(ve)-.15 G(rwriting the \214le.).15 E F1 +(histr)144 180 Q(eedit)-.18 E F0 .575(If set, and)184 192 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 204 Q F1(histv)144 216 Q +(erify)-.1 E F0 .403(If set, and)184 228 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 144 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 156 S -.25(ff).2 G(er).25 E +2.903 F .661(passed to the shell parser)184 240 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 252 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 168 Q F0 1.181(If set, and)184 180 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 -192 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 204 Q -.15(ve)-.15 G -2.5(\). This).15 F(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 -216 Q F0(If set,)184 228 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 240 Q -.1(ve)-.1 G -(_comments).1 E F0 .33(If set, allo)184 252 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 264 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 -276 Q(ault.)-.1 E F1(lastpipe)144 288 Q F0 1.211 +(hostcomplete)144 264 Q F0 1.182(If set, and)184 276 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 +288 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381 +(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E +F2(READLINE)3.881 E F0(abo)184 300 Q -.15(ve)-.15 G 2.5(\). This).15 F +(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 312 Q F0(If set,) +184 324 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 336 Q -.1(ve)-.1 G(_comments).1 E F0 +.33(If set, allo)184 348 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 360 R 1.267 -.15(ve s)-.25 +H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15 +G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 372 Q +(ault.)-.1 E F1(lastpipe)144 384 Q F0 1.212 (If set, and job control is not acti)6.66 F -.15(ve)-.25 G 3.712(,t).15 G 1.212(he shell runs the last command of a pipeline not)-3.712 F -.15 -(exe)184 300 S(cuted in the background in the current shell en).15 E -(vironment.)-.4 E F1(lithist)144 312 Q F0 .655(If set, and the)15.55 F -F1(cmdhist)3.155 E F0 .654 +(exe)184 396 S(cuted in the background in the current shell en).15 E +(vironment.)-.4 E F1(lithist)144 408 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.154(dt).15 G 3.154(ot)-3.154 G .654(he history)-3.154 F -(with embedded ne)184 324 Q +3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F +(with embedded ne)184 420 Q (wlines rather than using semicolon separators where possible.)-.25 E F1 -(login_shell)144 336 Q F0 .486 +(login_shell)144 432 Q F0 .486 (The shell sets this option if it is started as a login shell \(see)184 -348 R F2(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(abo)2.737 E -.15(ve) --.15 G 2.987(\). The).15 F -.25(va)184 360 S(lue may not be changed.).25 -E F1(mailwar)144 372 Q(n)-.15 E F0 .815(If set, and a \214le that)184 -384 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 396 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E +444 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 456 S(lue may not be changed.).25 +E F1(mailwar)144 468 Q(n)-.15 E F0 .814(If set, and a \214le that)184 +480 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 492 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 408 Q F0 .324(If set, and)184 420 R F1 -.18 -(re)2.824 G(adline).18 E F0 .324(is being used,)2.824 F F1(bash)2.824 E -F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.825 G(TH) --.189 E F0 .325(for possible)2.575 F -(completions when completion is attempted on an empty line.)184 432 Q F1 -(nocaseglob)144 444 Q F0 .437(If set,)184 456 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 468 S +(no_empty_cmd_completion)144 504 Q F0 .325(If set, and)184 516 R F1 -.18 +(re)2.825 G(adline).18 E F0 .325(is being used,)2.825 F F1(bash)2.824 E +F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.824 G(TH) +-.189 E F0 .324(for possible)2.574 F +(completions when completion is attempted on an empty line.)184 528 Q F1 +(nocaseglob)144 540 Q F0 .436(If set,)184 552 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 564 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 480 Q F0 1.193(If set,)184 -492 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 504 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 516 Q F0 -.855(If set,)184 528 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 540 S(pand to a null string, rather than themselv) -.15 E(es.)-.15 E F1(pr)144 552 Q(ogcomp)-.18 E F0 .676 -(If set, the programmable completion f)184 564 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 576 Q -(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 588 Q(omptv) --.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 600 R 1.448 -(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic) --.15 F -.15(ex)184 612 S .17(pansion, and quote remo).15 F -.25(va)-.15 +-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 576 Q F0 1.194(If set,)184 +588 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 600 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 612 Q F0 +.854(If set,)184 624 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 636 S(pand to a null string, rather than themselv) +.15 E(es.)-.15 E F1(pr)144 648 Q(ogcomp)-.18 E F0 .677 +(If set, the programmable completion f)184 660 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 672 Q +(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 684 Q(omptv) +-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 696 R 1.448 +(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic) +-.15 F -.15(ex)184 708 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.671 E(OMPTING)-.27 E F0(abo)2.421 E -.15(ve)-.15 G(.).15 -E(This option is enabled by def)184 624 Q(ault.)-.1 E F1 -.18(re)144 636 -S(stricted_shell).18 E F0 1.069 -(The shell sets this option if it is started in restricted mode \(see) -184 648 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 660 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 672 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 684 Q(erbose)-.1 E F0 .502(If set, the)184 696 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 708 Q -(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(19)198.725 E 0 Cg EP +-.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 720 Q(ault.)-.1 E(GNU Bash-4.2)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(sour)144 84 Q(cepath)-.18 E F0 .77(If set, the)184 96 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 9/Times-Bold@0 SF --.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 108 Q 2.5(gument. This)-.18 F -(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 120 Q F0 -(If set, the)184 132 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 148.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 160.8 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 172.8 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 184.8 S(nless the shell is a login shell and)-2.5 E +/Times-Bold@0 SF -.18(re)144 84 S(stricted_shell).18 E F0 1.069 +(The shell sets this option if it is started in restricted mode \(see) +184 96 R/F2 9/Times-Bold@0 SF 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 +108 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 120 +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 132 Q(erbose)-.1 E F0 .501(If set, the)184 144 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 156 Q F1(sour) +144 168 Q(cepath)-.18 E F0 .771(If set, the)184 180 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 -.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 192 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.) +-.1 E F1(xpg_echo)144 204 Q F0(If set, the)184 216 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 232.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.001 +(Suspend the e)144 244.8 R -.15(xe)-.15 G 1.001 +(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G +F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be) +3.502 F .023(suspended; the)144 256.8 R F1<ad66>2.523 E F0 .023 +(option can be used to o)2.523 F -.15(ve)-.15 G .022 +(rride this and force the suspension.).15 F .022(The return status is) +5.022 F 2.5(0u)144 268.8 S(nless the shell is a login shell and)-2.5 E F1<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5 -E F1(test)108 201.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([) -108 213.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .878 -(Return a status of 0 \(true\) or 1 \(f)6.77 F .877 -(alse\) depending on the e)-.1 F -.25(va)-.25 G .877 -(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 225.6 +E F1(test)108 285.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([) +108 297.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .877 +(Return a status of 0 \(true\) or 1 \(f)6.77 F .878 +(alse\) depending on the e)-.1 F -.25(va)-.25 G .878 +(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 309.6 S(pr).2 E F0 5.53(.E).73 G .53 (ach operator and operand must be a separate ar)-5.53 F 3.03 -(gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.08 -(primaries described abo)144 237.6 R 3.38 -.15(ve u)-.15 H(nder).15 E F2 -(CONDITION)5.58 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A -F1(test)7.579 E F0 3.079(does not accept an)5.579 F(y)-.15 E -(options, nor does it accept and ignore an ar)144 249.6 Q(gument of)-.18 -E F1<adad>2.5 E F0(as signifying the end of options.)2.5 E .785 -(Expressions may be combined using the follo)144 267.6 R .786 -(wing operators, listed in decreasing order of prece-)-.25 F 3.412 -(dence. The)144 279.6 R -.25(eva)3.412 G .912 -(luation depends on the number of ar).25 F .911(guments; see belo)-.18 F -4.711 -.65(w. O)-.25 H .911(perator precedence is).65 F -(used when there are \214v)144 291.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G -(ore ar)-2.5 E(guments.)-.18 E F1(!)144 303.6 Q F3 -.2(ex)2.5 G(pr).2 E +(gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.079 +(primaries described abo)144 321.6 R 3.379 -.15(ve u)-.15 H(nder).15 E +F2(CONDITION)5.579 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF +(.)A F1(test)7.579 E F0 3.08(does not accept an)5.58 F(y)-.15 E +(options, nor does it accept and ignore an ar)144 333.6 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 351.6 R .785 +(wing operators, listed in decreasing order of prece-)-.25 F 3.411 +(dence. The)144 363.6 R -.25(eva)3.411 G .911 +(luation depends on the number of ar).25 F .912(guments; see belo)-.18 F +4.712 -.65(w. O)-.25 H .912(perator precedence is).65 F +(used when there are \214v)144 375.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G +(ore ar)-2.5 E(guments.)-.18 E F1(!)144 387.6 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 315.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 +(alse.)-.1 E F1(\()144 399.6 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 327.6 Q F3 -.2 -(ex)144 339.6 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 --.35(Tr)180 351.6 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 -E F3 -.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 363.6 S +(rride the normal precedence of opera-).15 F(tors.)180 411.6 Q F3 -.2 +(ex)144 423.6 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 +-.35(Tr)180 435.6 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 +E F3 -.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 447.6 S (pr1).2 E F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 -375.6 S(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2 -(ex)2.5 G(pr2).2 E F0(is true.)2.52 E F1(test)144 392.4 Q F0(and)2.5 E +459.6 S(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2 +(ex)2.5 G(pr2).2 E F0(is true.)2.52 E F1(test)144 476.4 Q F0(and)2.5 E F1([)2.5 E F0 -.25(eva)2.5 G(luate conditional e).25 E (xpressions using a set of rules based on the number of ar)-.15 E -(guments.)-.18 E 2.5(0a)144 410.4 S -.18(rg)-2.5 G(uments).18 E(The e) -180 422.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 434.4 S -.18 -(rg)-2.5 G(ument).18 E(The e)180 446.4 Q +(guments.)-.18 E 2.5(0a)144 494.4 S -.18(rg)-2.5 G(uments).18 E(The e) +180 506.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 518.4 S -.18 +(rg)-2.5 G(ument).18 E(The e)180 530.4 Q (xpression is true if and only if the ar)-.15 E(gument is not null.)-.18 -E 2.5(2a)144 458.4 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar) -180 470.4 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87 +E 2.5(2a)144 542.4 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar) +180 554.4 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87 F .37(xpression is true if and only if the second ar)-.15 F .37 -(gument is null.)-.18 F .379(If the \214rst ar)180 482.4 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 494.4 Q .553 +(gument is null.)-.18 F .38(If the \214rst ar)180 566.4 R .38 +(gument is one of the unary conditional operators listed abo)-.18 F .679 +-.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.879 E(TION)180 578.4 Q .552 (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 506.4 Q +(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 590.4 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 518.4 S -.18(rg)-2.5 G -(uments).18 E .236(The follo)180 530.4 R .236 +(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 602.4 S -.18(rg)-2.5 G +(uments).18 E .236(The follo)180 614.4 R .236 (wing conditions are applied in the order listed.)-.25 F .236 (If the second ar)5.236 F .236(gument is one of)-.18 F .855 -(the binary conditional operators listed abo)180 542.4 R 1.155 -.15 +(the binary conditional operators listed abo)180 626.4 R 1.155 -.15 (ve u)-.15 H(nder).15 E F2(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F -F4(,)A F0(the)3.104 E .578(result of the e)180 554.4 R .578(xpression i\ +F4(,)A F0(the)3.105 E .579(result of the e)180 638.4 R .578(xpression i\ s the result of the binary test using the \214rst and third ar)-.15 F -(guments)-.18 E 1.333(as operands.)180 566.4 R(The)6.333 E F1<ad61>3.833 -E F0(and)3.833 E F1<ad6f>3.832 E F0 1.332 +(guments)-.18 E 1.332(as operands.)180 650.4 R(The)6.332 E F1<ad61>3.832 +E F0(and)3.832 E F1<ad6f>3.832 E F0 1.333 (operators are considered binary operators when there are)3.832 F .558 -(three ar)180 578.4 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058 +(three ar)180 662.4 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058 F .558(gument is)-.18 F F1(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F .558(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F -(o-ar)-.1 E(gument)-.18 E .521(test using the second and third ar)180 -590.4 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .52 -(gument is e)-.18 F(xactly)-.15 E F1(\()3.02 E F0 .52(and the third)3.02 -F(ar)180 602.4 Q .485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 E F0 -2.985(,t)C .485(he result is the one-ar)-2.985 F .485 +(o-ar)-.1 E(gument)-.18 E .52(test using the second and third ar)180 +674.4 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .521 +(gument is e)-.18 F(xactly)-.15 E F1(\()3.021 E F0 .521(and the third) +3.021 F(ar)180 686.4 Q .485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 +E F0 2.985(,t)C .485(he result is the one-ar)-2.985 F .485 (gument test of the second ar)-.18 F 2.985(gument. Other)-.18 F(-)-.2 E -(wise, the e)180 614.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144 -626.4 S -.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 638.4 R -.385(gument is)-.18 F F1(!)2.885 E F0 2.885(,t)C .385 -(he result is the ne)-2.885 F -.05(ga)-.15 G .384(tion of the three-ar) -.05 F .384(gument e)-.18 F .384(xpression com-)-.15 F 1.647 -(posed of the remaining ar)180 650.4 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 -662.4 Q -.15(ve)-.15 G(.).15 E 2.5(5o)144 674.4 S 2.5(rm)-2.5 G(ore ar) --2.5 E(guments)-.18 E 1.635(The e)180 686.4 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 -698.4 Q -.15(ve)-.15 G(.).15 E(When used with)144 716.4 Q F1(test)2.5 E -F0(or)2.5 E F1([)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E F0(and)2.5 E F1 -(>)2.5 E F0(operators sort le)2.5 E -(xicographically using ASCII ordering.)-.15 E(GNU Bash-4.2)72 768 Q -(2004 Apr 20)148.735 E(20)198.725 E 0 Cg EP +(wise, the e)180 698.4 Q(xpression is f)-.15 E(alse.)-.1 E(GNU Bash-4.2) +72 768 Q(2004 Apr 20)148.735 E(20)198.725 E 0 Cg EP %%Page: 21 21 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(times)108 84 Q F0 1.229(Print the accumulated user and\ - system times for the shell and for processes run from the shell.)13.23 -F(The return status is 0.)144 96 Q F1(trap)108 112.8 Q F0([)2.5 E F1 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 2.5(4a)144 +84 S -.18(rg)-2.5 G(uments).18 E .384(If the \214rst ar)180 96 R .384 +(gument is)-.18 F/F1 10/Times-Bold@0 SF(!)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 108 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 +120 Q -.15(ve)-.15 G(.).15 E 2.5(5o)144 132 S 2.5(rm)-2.5 G(ore ar)-2.5 +E(guments)-.18 E 1.635(The e)180 144 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 156 +Q -.15(ve)-.15 G(.).15 E(When used with)144 174 Q F1(test)2.5 E F0(or) +2.5 E F1([)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E F0(and)2.5 E F1(>)2.5 +E F0(operators sort le)2.5 E(xicographically using ASCII ordering.)-.15 +E F1(times)108 190.8 Q F0 1.229(Print the accumulated user and system t\ +imes for the shell and for processes run from the shell.)13.23 F +(The return status is 0.)144 202.8 Q F1(trap)108 219.6 Q F0([)2.5 E F1 (\255lp)A F0 2.5(][)C([)-2.5 E/F2 10/Times-Italic@0 SF(ar)A(g)-.37 E F0 -(])A F2(sigspec)2.5 E F0(...])2.5 E .703(The command)144 124.8 R F2(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 F2(sigspec)3.202 E F0 5.702(.I).31 G(f)-5.702 E F2 -(ar)3.532 E(g)-.37 E F0(is)3.422 E .608(absent \(and there is a single) -144 136.8 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E +(])A F2(sigspec)2.5 E F0(...])2.5 E .702(The command)144 231.6 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 243.6 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E F0 3.108(,e)C .608 (ach speci\214ed signal is reset to its original disposition)-3.108 F -.659(\(the v)144 148.8 R .659(alue it had upon entrance to the shell\).) --.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .658 +.658(\(the v)144 255.6 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 160.8 Q F0 .58(is ignored by the shell and by the commands it in) -3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F2(ar)3.411 E(g)-.37 E -F0 .581(is not present and)3.301 F F1<ad70>3.081 E F0(has)3.081 E 1.215 -(been supplied, then the trap commands associated with each)144 172.8 R -F2(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214 -F(gu-)-.18 E .86(ments are supplied or if only)144 184.8 R F1<ad70>3.36 +144.34 267.6 Q F0 .581 +(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G +-.1(ke).2 G 3.08(s. If).1 F 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 279.6 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 291.6 R F1<ad70>3.36 E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86 (prints the list of commands associated with each)3.36 F 2.83 -(signal. The)144 196.8 R F1<ad6c>2.83 E F0 .33(option causes the shell \ -to print a list of signal names and their corresponding num-)2.83 F 4.31 -(bers. Each)144 208.8 R F2(sigspec)4.65 E F0 1.811 -(is either a signal name de\214ned in <)4.62 F F2(signal.h)A F0 1.811 -(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E -(names are case insensiti)144 220.8 Q .3 -.15(ve a)-.25 H(nd the).15 E -/F3 9/Times-Bold@0 SF(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.649 -(If a)144 238.8 R F2(sigspec)4.489 E F0(is)4.459 E F3(EXIT)4.149 E F0 -1.649(\(0\) the command)3.899 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e) -4.369 F -.15(xe)-.15 G 1.649(cuted on e).15 F 1.648(xit from the shell.) --.15 F 1.648(If a)6.648 F F2(sigspec)4.488 E F0(is)4.458 E F3(DEB)144 -250.8 Q(UG)-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.167(the command)3.417 F -F2(ar)3.997 E(g)-.37 E F0 1.167(is e)3.887 F -.15(xe)-.15 G 1.167 -(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.168(simple command) -3.667 F F0(,)A F2(for)3.668 E F0(command,)3.668 E F2(case)3.668 E F0 -(com-)3.668 E(mand,)144 262.8 Q F2(select)2.647 E F0 .147(command, e) -2.647 F -.15(ve)-.25 G .147(ry arithmetic).15 F F2(for)2.647 E F0 .146 -(command, and before the \214rst command e)2.647 F -.15(xe)-.15 G .146 -(cutes in a).15 F .145(shell function \(see)144 274.8 R F3 .145 -(SHELL GRAMMAR)2.645 F F0(abo)2.395 E -.15(ve)-.15 G 2.646(\). Refer).15 -F .146(to the description of the)2.646 F F1(extdeb)2.646 E(ug)-.2 E F0 -.146(option to)2.646 F(the)144 286.8 Q F1(shopt)3.201 E F0 -.2(bu)3.201 -G .7(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E -(UG)-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E -F3(RETURN)3.2 E F4(,)A F0 .7(the com-)2.95 F(mand)144 298.8 Q F2(ar) -3.473 E(g)-.37 E F0 .643(is e)3.363 F -.15(xe)-.15 G .643 +(signal. The)144 303.6 R F1<ad6c>2.83 E F0 .33(option causes the shell \ +to print a list of signal names and their corresponding num-)2.83 F +4.311(bers. Each)144 315.6 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 +(names are case insensiti)144 327.6 Q .3 -.15(ve a)-.25 H(nd the).15 E +/F3 9/Times-Bold@0 SF(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.648 +(If a)144 345.6 R F2(sigspec)4.488 E F0(is)4.458 E F3(EXIT)4.148 E F0 +1.648(\(0\) the command)3.898 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e) +4.369 F -.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.) +-.15 F 1.649(If a)6.649 F F2(sigspec)4.489 E F0(is)4.459 E F3(DEB)144 +357.6 Q(UG)-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.168(the command)3.418 F +F2(ar)3.998 E(g)-.37 E F0 1.168(is e)3.888 F -.15(xe)-.15 G 1.167 +(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.167(simple command) +3.667 F F0(,)A F2(for)3.667 E F0(command,)3.667 E F2(case)3.667 E F0 +(com-)3.667 E(mand,)144 369.6 Q F2(select)2.646 E F0 .146(command, e) +2.646 F -.15(ve)-.25 G .146(ry arithmetic).15 F F2(for)2.646 E F0 .147 +(command, and before the \214rst command e)2.646 F -.15(xe)-.15 G .147 +(cutes in a).15 F .146(shell function \(see)144 381.6 R F3 .146 +(SHELL GRAMMAR)2.646 F F0(abo)2.396 E -.15(ve)-.15 G 2.646(\). Refer).15 +F .146(to the description of the)2.646 F F1(extdeb)2.645 E(ug)-.2 E F0 +.145(option to)2.645 F(the)144 393.6 Q F1(shopt)3.2 E F0 -.2(bu)3.2 G .7 +(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E(UG) +-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E F3 +(RETURN)3.2 E F4(,)A F0 .701(the com-)2.951 F(mand)144 405.6 Q F2(ar) +3.474 E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643 (cuted each time a shell function or a script e).15 F -.15(xe)-.15 G -.644(cuted with the).15 F F1(.)3.144 E F0(or)3.144 E F1(sour)3.144 E(ce) --.18 E F0 -.2(bu)3.144 G(iltins).2 E(\214nishes e)144 310.8 Q -.15(xe) --.15 G(cuting.).15 E .929(If a)144 328.8 R F2(sigspec)3.769 E F0(is) -3.739 E F3(ERR)3.429 E F4(,)A F0 .929(the command)3.179 F F2(ar)3.759 E -(g)-.37 E F0 .929(is e)3.649 F -.15(xe)-.15 G .929(cuted whene).15 F --.15(ve)-.25 G 3.429(ras).15 G .928(imple command has a non\255zero) --3.429 F -.15(ex)144 340.8 S 1.008(it status, subject to the follo).15 F -1.009(wing conditions.)-.25 F(The)6.009 E F3(ERR)3.509 E F0 1.009 -(trap is not e)3.259 F -.15(xe)-.15 G 1.009(cuted if the f).15 F 1.009 -(ailed com-)-.1 F .324 -(mand is part of the command list immediately follo)144 352.8 R .324 -(wing a)-.25 F F1(while)2.824 E F0(or)2.824 E F1(until)2.824 E F0 -.1 -(ke)2.824 G(yw)-.05 E .324(ord, part of the test)-.1 F .151(in an)144 -364.8 R F2(if)2.661 E F0 .151(statement, part of a command e)4.611 F --.15(xe)-.15 G .151(cuted in a).15 F F1(&&)2.651 E F0(or)2.651 E F1(||) -2.651 E F0 .151(list, or if the command')2.651 F 2.651(sr)-.55 G .151 -(eturn v)-2.651 F(alue)-.25 E(is being in)144 376.8 Q -.15(ve)-.4 G -(rted via).15 E F1(!)2.5 E F0 5(.T)C(hese are the same conditions obe)-5 -E(yed by the)-.15 E F1(err)2.5 E(exit)-.18 E F0(option.)2.5 E 1.095 +.643(cuted with the).15 F F1(.)3.143 E F0(or)3.143 E F1(sour)3.143 E(ce) +-.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 417.6 Q -.15(xe) +-.15 G(cuting.).15 E .521(If a)144 435.6 R F2(sigspec)3.361 E F0(is) +3.331 E F3(ERR)3.021 E F4(,)A F0 .522(the command)2.771 F F2(ar)3.352 E +(g)-.37 E F0 .522(is e)3.242 F -.15(xe)-.15 G .522(cuted whene).15 F +-.15(ve)-.25 G 3.022(raap).15 G .522(ipeline \(which may consist of a) +-3.022 F .185(single simple command\), a list, or a compound command re\ +turns a non\255zero e)144 447.6 R .184(xit status, subject to)-.15 F +.451(the follo)144 459.6 R .451(wing conditions.)-.25 F(The)5.451 E F3 +(ERR)2.951 E F0 .451(trap is not e)2.701 F -.15(xe)-.15 G .451 +(cuted if the f).15 F .452(ailed command is part of the com-)-.1 F .388 +(mand list immediately follo)144 471.6 R .388(wing a)-.25 F F1(while) +2.888 E F0(or)2.888 E F1(until)2.888 E F0 -.1(ke)2.888 G(yw)-.05 E .388 +(ord, part of the test in an)-.1 F F2(if)2.897 E F0 .387 +(statement, part)4.847 F .777(of a command e)144 483.6 R -.15(xe)-.15 G +.778(cuted in a).15 F F1(&&)3.278 E F0(or)3.278 E F1(||)3.278 E F0 .778 +(list e)3.278 F .778(xcept the command follo)-.15 F .778 +(wing the \214nal)-.25 F F1(&&)3.278 E F0(or)3.278 E F1(||)3.278 E F0 +3.278(,a)C -.15(ny)-3.278 G 1.28(command in a pipeline b)144 495.6 R +1.28(ut the last, or if the command')-.2 F 3.78(sr)-.55 G 1.28(eturn v) +-3.78 F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F +F1(!)3.78 E F0(.)A(These are the same conditions obe)144 507.6 Q +(yed by the)-.15 E F1(err)2.5 E(exit)-.18 E F0(\()2.5 E F1<ad65>A F0 2.5 +(\)o)C(ption.)-2.5 E 1.095 (Signals ignored upon entry to the shell cannot be trapped or reset.)144 -394.8 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662 -(being ignored are reset to their original v)144 406.8 R .662 -(alues in a subshell or subshell en)-.25 F .662(vironment when one is) --.4 F 2.5(created. The)144 418.8 R(return status is f)2.5 E(alse if an) +525.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662 +(being ignored are reset to their original v)144 537.6 R .662 +(alues in a subshell or subshell en)-.25 F .661(vironment when one is) +-.4 F 2.5(created. The)144 549.6 R(return status is f)2.5 E(alse if an) -.1 E(y)-.15 E F2(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G (lid; otherwise).25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108 -435.6 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 447.6 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 459.6 Q F0 .842(option is used,)3.342 F F1(type)3.342 E F0 +566.4 Q F0([)2.5 E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2 +(name)A F0(...])2.5 E -.4(Wi)144 578.4 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 590.4 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.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 471.6 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 483.6 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 495.6 R .855 +(,).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 602.4 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 614.4 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 626.4 R .855 (ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0 -.855(were speci\214ed as a com-)3.535 F .64(mand name, or nothing if)144 -507.6 R/F5 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 F3 -.666(PA)3.141 G(TH) --.189 E F0 .113(search for each)144 519.6 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 F5 .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 531.6 Q F1<ad50>3.23 E F0 .73(print the hashed v)3.23 -F .731 -(alue, which is not necessarily the \214le that appears \214rst in)-.25 -F F3 -.666(PA)3.231 G(TH)-.189 E F4(.)A F0 .731(If the)5.231 F F1<ad61> -144 543.6 Q F0 1.749(option is used,)4.249 F F1(type)4.248 E F0 1.748 -(prints all of the places that contain an e)4.248 F -.15(xe)-.15 G 1.748 -(cutable named).15 F F2(name)4.248 E F0 6.748(.T).18 G(his)-6.748 E .744 -(includes aliases and functions, if and only if the)144 555.6 R F1<ad70> -3.244 E F0 .744(option is not also used.)3.244 F .744 +.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if) +144 638.4 R/F5 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 650.4 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 F5 .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 662.4 Q F1<ad50>3.231 E F0 .731(print the hashed v)3.231 F +.73(alue, which is not necessarily the \214le that appears \214rst in) +-.25 F F3 -.666(PA)3.23 G(TH)-.189 E F4(.)A F0 .73(If the)5.23 F F1 +<ad61>144 674.4 Q F0 1.748(option is used,)4.248 F F1(type)4.248 E F0 +1.748(prints all of the places that contain an e)4.248 F -.15(xe)-.15 G +1.748(cutable named).15 F F2(name)4.249 E F0 6.749(.T).18 G(his)-6.749 E +.744(includes aliases and functions, if and only if the)144 686.4 R F1 +<ad70>3.244 E F0 .744(option is not also used.)3.244 F .743 (The table of hashed)5.744 F 1.223(commands is not consulted when using) -144 567.6 R F1<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F1<ad66>3.723 E F0 -1.223(option suppresses shell function lookup, as)3.723 F .325(with the) -144 579.6 R F1(command)2.825 E F0 -.2(bu)2.825 G(iltin.).2 E F1(type) -5.325 E F0 .325(returns true if all of the ar)2.825 F .326 -(guments are found, f)-.18 F .326(alse if an)-.1 F 2.826(ya)-.15 G .326 -(re not)-2.826 F(found.)144 591.6 Q F1(ulimit)108 608.4 Q F0([)2.5 E F1 -(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2(limit)A F0(]])A -(Pro)144 620.4 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 +144 698.4 R F1<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F1<ad66>3.723 E F0 +1.223(option suppresses shell function lookup, as)3.723 F .326(with the) +144 710.4 R F1(command)2.826 E F0 -.2(bu)2.826 G(iltin.).2 E F1(type) +5.326 E F0 .326(returns true if all of the ar)2.826 F .325 +(guments are found, f)-.18 F .325(alse if an)-.1 F 2.825(ya)-.15 G .325 +(re not)-2.825 F(found.)144 722.4 Q(GNU Bash-4.2)72 768 Q(2004 Apr 20) +148.735 E(21)198.725 E 0 Cg EP +%%Page: 22 22 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Bold@0 SF(ulimit)108 84 Q F0([)2.5 E F1(\255HST)A +(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E/F2 10/Times-Italic@0 SF(limit)A +F0(]])A(Pro)144 96 Q .243(vides control o)-.15 F -.15(ve)-.15 G 2.743 +(rt).15 G .243(he resources a)-2.743 F -.25(va)-.2 G .244 (ilable to the shell and to processes started by it, on systems).25 F -.943(that allo)144 632.4 R 3.443(ws)-.25 G .943(uch control.)-3.443 F -(The)5.943 E F1<ad48>3.443 E F0(and)3.443 E F1<ad53>3.444 E F0 .944 +.944(that allo)144 108 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 644.4 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 656.4 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 -668.4 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139 +144 120 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 sof\ +t limit may)2.708 F .426(be increased up to the v)144 132 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 +144 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 680.4 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1 +.742(of the special v)144 156 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 692.4 R -.15(ve)-.25 G(ly).15 E +(soft limit, and no limit, respecti)144 168 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 704.4 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 +F .499(resource is printed, unless the)144 180 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 716.4 Q 2.5 -(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E -(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(21)198.725 E 0 Cg EP -%%Page: 22 22 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF<ad61>144 84 Q F0(All current limits are reported)25.3 E -F1<ad62>144 96 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E -(fer size)-.25 E F1<ad63>144 108 Q F0 -(The maximum size of core \214les created)25.86 E F1<ad64>144 120 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 132 Q F0 -(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 144 Q F0 +(limit name and unit are printed before the v)144 192 Q 2.5(alue. Other) +-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1<ad61>144 204 +Q F0(All current limits are reported)25.3 E F1<ad62>144 216 Q F0 +(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E F1<ad63> +144 228 Q F0(The maximum size of core \214les created)25.86 E F1<ad64> +144 240 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 252 Q F0 +(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 264 Q F0 (The maximum size of \214les written by the shell and its children)26.97 -E F1<ad69>144 156 Q F0(The maximum number of pending signals)27.52 E F1 -<ad6c>144 168 Q F0(The maximum size that may be lock)27.52 E -(ed into memory)-.1 E F1<ad6d>144 180 Q F0 +E F1<ad69>144 276 Q F0(The maximum number of pending signals)27.52 E F1 +<ad6c>144 288 Q F0(The maximum size that may be lock)27.52 E +(ed into memory)-.1 E F1<ad6d>144 300 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 192 Q F0 .791(The \ +(ystems do not honor this limit\))-2.5 E F1<ad6e>144 312 Q F0 .791(The \ maximum 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 -204 Q F1<ad70>144 216 Q F0 +24.74 F 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F +(be set\))180 324 Q F1<ad70>144 336 Q F0 (The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1 -<ad71>144 228 Q F0(The maximum number of bytes in POSIX message queues) -24.74 E F1<ad72>144 240 Q F0(The maximum real-time scheduling priority) -25.86 E F1<ad73>144 252 Q F0(The maximum stack size)26.41 E F1<ad74>144 -264 Q F0(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144 -276 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 288 Q F0 .47 +<ad71>144 348 Q F0(The maximum number of bytes in POSIX message queues) +24.74 E F1<ad72>144 360 Q F0(The maximum real-time scheduling priority) +25.86 E F1<ad73>144 372 Q F0(The maximum stack size)26.41 E F1<ad74>144 +384 Q F0(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144 +396 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 408 Q F0 .47 (The maximum amount of virtual memory a)25.3 F -.25(va)-.2 G .47 -(ilable to the shell and, on some systems, to).25 F(its children)180 300 -Q F1<ad78>144 312 Q F0(The maximum number of \214le locks)25.3 E F1 -<ad54>144 324 Q F0(The maximum number of threads)23.63 E(If)144 340.8 Q -/F2 10/Times-Italic@0 SF(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve) --.25 G .468(n, and the).15 F F1<ad61>2.968 E F0 .468 -(option is not used,)2.968 F F2(limit)2.968 E F0 .468(is the ne)2.968 F -2.968(wv)-.25 G .468(alue of the speci\214ed resource.)-3.218 F(If)5.468 -E .044(no option is gi)144 352.8 R -.15(ve)-.25 G .044(n, then).15 F F1 -<ad66>2.544 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045 -(lues are in 1024-byte increments, e)1.11 F .045(xcept for)-.15 F F1 -<ad74>2.545 E F0 2.545(,w)C .045(hich is)-2.545 F .403(in seconds;)144 -364.8 R F1<ad70>2.903 E F0 2.903(,w)C .402 -(hich is in units of 512-byte blocks; and)-2.903 F F1<ad54>2.902 E F0(,) +(ilable to the shell and, on some systems, to).25 F(its children)180 420 +Q F1<ad78>144 432 Q F0(The maximum number of \214le locks)25.3 E F1 +<ad54>144 444 Q F0(The maximum number of threads)23.63 E(If)144 460.8 Q +F2(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)-.25 G .468(n, and the) +.15 F F1<ad61>2.968 E F0 .468(option is not used,)2.968 F F2(limit)2.968 +E F0 .468(is the ne)2.968 F 2.968(wv)-.25 G .468 +(alue of the speci\214ed resource.)-3.218 F(If)5.468 E .045 +(no option is gi)144 472.8 R -.15(ve)-.25 G .045(n, then).15 F F1<ad66> +2.545 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045 +(lues are in 1024-byte increments, e)1.11 F .044(xcept for)-.15 F F1 +<ad74>2.544 E F0 2.544(,w)C .044(hich is)-2.544 F .402(in seconds;)144 +484.8 R F1<ad70>2.902 E F0 2.902(,w)C .402 +(hich is in units of 512-byte blocks; and)-2.902 F F1<ad54>2.902 E F0(,) A F1<ad62>2.902 E F0(,)A F1<ad6e>2.902 E F0 2.902(,a)C(nd)-2.902 E F1 -<ad75>2.902 E F0 2.902(,w)C .402(hich are unscaled)-2.902 F -.25(va)144 -376.8 S 3.082(lues. The).25 F .583(return status is 0 unless an in)3.083 +<ad75>2.903 E F0 2.903(,w)C .403(hich are unscaled)-2.903 F -.25(va)144 +496.8 S 3.083(lues. The).25 F .583(return status is 0 unless an in)3.083 F -.25(va)-.4 G .583(lid option or ar).25 F .583 (gument is supplied, or an error occurs)-.18 F(while setting a ne)144 -388.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 405.6 Q F0([)2.5 E F1 +508.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 525.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 417.6 R F2(mode)2.7 E F0 +(The user \214le-creation mask is set to)144 537.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 429.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144 -441.6 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382 +pted by)144 549.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144 +561.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 453.6 R .547 +(printed in symbolic form; the def)144 573.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 465.6 Q F0 .552 -(is omitted, the output is in a form that may be reused as input.)3.232 -F .551(The return status is 0 if the)5.551 F(mode w)144 477.6 Q +(mode)144.38 585.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 597.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 494.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 506.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name) +(unalias)108 614.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 626.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 518.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E +F(remo)144 638.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 535.2 Q F0<5bad>2.5 E F1 +(is not a de\214ned alias.)2.68 E F1(unset)108 655.2 Q F0<5bad>2.5 E F1 (fv)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0 2.5(][)C F2(name)-2.5 E F0(...]) -2.5 E -.15(Fo)144 547.2 S 3.828(re).15 G(ach)-3.828 E F2(name)3.828 E F0 -3.828(,r).18 G(emo)-3.828 E 1.628 -.15(ve t)-.15 H 1.328 +2.5 E -.15(Fo)144 667.2 S 3.827(re).15 G(ach)-3.827 E F2(name)3.827 E F0 +3.827(,r).18 G(emo)-3.827 E 1.627 -.15(ve t)-.15 H 1.327 (he corresponding v).15 F 1.327(ariable or function.)-.25 F 1.327 -(If the)6.327 F F1<ad76>3.827 E F0 1.327(option is gi)3.827 F -.15(ve) --.25 G 1.327(n, each).15 F F2(name)144.36 559.2 Q F0 1.55 -(refers to a shell v)4.23 F 1.551(ariable, and that v)-.25 F 1.551 -(ariable is remo)-.25 F -.15(ve)-.15 G 4.051(d. Read-only).15 F -.25(va) -4.051 G 1.551(riables may not be).25 F 4.642(unset. If)144 571.2 R F1 -<ad66>4.642 E F0 2.142(is speci\214ed, each)4.642 F F2(name)5.001 E F0 +(If the)6.327 F F1<ad76>3.828 E F0 1.328(option is gi)3.828 F -.15(ve) +-.25 G 1.328(n, each).15 F F2(name)144.36 679.2 Q F0 1.551 +(refers to a shell v)4.231 F 1.551(ariable, and that v)-.25 F 1.551 +(ariable is remo)-.25 F -.15(ve)-.15 G 4.05(d. Read-only).15 F -.25(va) +4.05 G 1.55(riables may not be).25 F 4.641(unset. If)144 691.2 R F1 +<ad66>4.641 E F0 2.141(is speci\214ed, each)4.641 F F2(name)5.001 E F0 2.141(refers to a shell function, and the function de\214nition is)4.821 -F(remo)144 583.2 Q -.15(ve)-.15 G 2.537(d. If).15 F(the)2.537 E F1<ad6e> +F(remo)144 703.2 Q -.15(ve)-.15 G 2.538(d. If).15 F(the)2.537 E F1<ad6e> 2.537 E F0 .037(option is supplied, and)2.537 F F2(name)2.537 E F0 .037 (is a v)2.537 F .037(ariable with the)-.25 F F2(namer)2.537 E(ef)-.37 E -F0(attrib)2.537 E(ute,)-.2 E F2(name)2.537 E F0(will)2.538 E .492 -(be unset rather than the v)144 595.2 R .492(ariable it references.)-.25 +F0(attrib)2.537 E(ute,)-.2 E F2(name)2.537 E F0(will)2.537 E .492 +(be unset rather than the v)144 715.2 R .492(ariable it references.)-.25 F F1<ad6e>5.492 E F0 .492(has no ef)2.992 F .492(fect if the)-.25 F F1 -<ad66>2.992 E F0 .492(option is supplied.)2.992 F .492(If no)5.492 F .22 -(options are supplied, each)144 607.2 R F2(name)2.72 E F0 .22 -(refers to a v)2.72 F .221(ariable; if there is no v)-.25 F .221 -(ariable by that name, an)-.25 F 2.721(yf)-.15 G(unc-)-2.721 E 1.189 -(tion with that name is unset.)144 619.2 R 1.189(Each unset v)6.189 F -1.189(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.688(df).15 G -1.188(rom the en)-3.688 F(vironment)-.4 E 3.205 -(passed to subsequent commands.)144 631.2 R 3.206(If an)8.206 F 5.706 -(yo)-.15 G(f)-5.706 E/F3 9/Times-Bold@0 SF(COMP_W)5.706 E(ORDBREAKS)-.09 -E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)5.456 E F4(,)A F3(SECONDS)5.456 E -F4(,)A F3(LINENO)144 643.2 Q F4(,)A F3(HISTCMD)4.348 E F4(,)A F3(FUNCN) -4.348 E(AME)-.18 E F4(,)A F3(GR)4.348 E(OUPS)-.27 E F4(,)A F0(or)4.348 E -F3(DIRST)4.598 E -.495(AC)-.81 G(K).495 E F0 2.098(are unset, the)4.348 -F 4.597(yl)-.15 G 2.097(ose their special)-4.597 F(properties, e)144 -655.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15 -G(re subsequently reset.)-2.5 E(The e)5 E(xit status is true unless a) --.15 E F2(name)2.86 E F0(is readonly)2.68 E(.)-.65 E F1(wait)108 672 Q -F0([)2.5 E F2 2.5(n.)C(..)-2.5 E F0(])A -.8(Wa)144 684 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 696 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 708 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 720 R .457 -(xistent process or job, the return status is 127.)-.15 F .457 -(Otherwise, the return status is the)5.457 F(GNU Bash-4.2)72 768 Q +<ad66>2.992 E F0 .492(option is supplied.)2.992 F .493(If no)5.493 F +1.622(options are supplied, each)144 727.2 R F2(name)4.122 E F0 1.622 +(refers to a v)4.122 F 1.622(ariable; if there is no v)-.25 F 1.621 +(ariable by that name, an)-.25 F(y)-.15 E(GNU Bash-4.2)72 768 Q (2004 Apr 20)148.735 E(22)198.725 E 0 Cg EP %%Page: 23 23 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E -.15(ex)144 -84 S(it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 -E/F1 10.95/Times-Bold@0 SF(SEE ALSO)72 100.8 Q F0(bash\(1\), sh\(1\))108 -112.8 Q(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(23)198.725 E 0 Cg EP +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .004 +(function with that name is unset.)144 84 R .004(Each unset v)5.004 F +.004(ariable or function is remo)-.25 F -.15(ve)-.15 G 2.504(df).15 G +.004(rom the en)-2.504 F(vironment)-.4 E 3.206 +(passed to subsequent commands.)144 96 R 3.206(If an)8.206 F 5.706(yo) +-.15 G(f)-5.706 E/F1 9/Times-Bold@0 SF(COMP_W)5.706 E(ORDBREAKS)-.09 E +/F2 9/Times-Roman@0 SF(,)A F1(RANDOM)5.455 E F2(,)A F1(SECONDS)5.455 E +F2(,)A F1(LINENO)144 108 Q F2(,)A F1(HISTCMD)4.347 E F2(,)A F1(FUNCN) +4.347 E(AME)-.18 E F2(,)A F1(GR)4.347 E(OUPS)-.27 E F2(,)A F0(or)4.348 E +F1(DIRST)4.598 E -.495(AC)-.81 G(K).495 E F0 2.098(are unset, the)4.348 +F 4.598(yl)-.15 G 2.098(ose their special)-4.598 F(properties, e)144 120 +Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15 G +(re subsequently reset.)-2.5 E(The e)5 E(xit status is true unless a) +-.15 E/F3 10/Times-Italic@0 SF(name)2.86 E F0(is readonly)2.68 E(.)-.65 +E/F4 10/Times-Bold@0 SF(wait)108 136.8 Q F0([)2.5 E F4(\255-n)A F0 2.5 +(][)C F3 2.5(n.)-2.5 G(..)-2.5 E F0(])A -.8(Wa)144 148.8 S .288 +(it for each speci\214ed process and return its termination status.).8 F +(Each)5.288 E F3(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 160.8 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 +F3(n)3.583 E F0(is)3.463 E .876(not gi)144 172.8 R -.15(ve)-.25 G .876 +(n, all currently acti).15 F 1.176 -.15(ve c)-.25 H .876 +(hild processes are w).15 F .876(aited for)-.1 F 3.376(,a)-.4 G .876 +(nd the return status is zero.)-3.376 F .875(If the)5.875 F F4(\255-n) +144 184.8 Q F0 .176(option is supplied,)2.676 F F4(wait)2.676 E F0 -.1 +(wa)2.676 G .176(its for an).1 F 2.677(yj)-.15 G .177 +(ob to terminate and returns its e)-2.677 F .177(xit status.)-.15 F(If) +5.177 E F3(n)3.037 E F0(speci\214es)2.917 E 2.596(an)144 196.8 S(on-e) +-2.596 E .096(xistent process or job, the return status is 127.)-.15 F +.095(Otherwise, the return status is the e)5.095 F .095(xit status)-.15 +F(of the last process or job w)144 208.8 Q(aited for)-.1 E(.)-.55 E/F5 +10.95/Times-Bold@0 SF(SEE ALSO)72 225.6 Q F0(bash\(1\), sh\(1\))108 +237.6 Q(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(23)198.725 E 0 Cg EP %%Trailer end %%EOF diff --git a/doc/rbash.ps b/doc/rbash.ps index dc733fcf..f5b8a74b 100644 --- a/doc/rbash.ps +++ b/doc/rbash.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.19.2 -%%CreationDate: Mon Jul 16 16:12:25 2012 +%%CreationDate: Fri Jan 11 16:34:25 2013 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%DocumentSuppliedResources: procset grops 1.19 2 diff --git a/doc/version.texi b/doc/version.texi index 0e4921cb..17bfd8a2 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -2,9 +2,9 @@ Copyright (C) 1988-2013 Free Software Foundation, Inc. @end ignore -@set LASTCHANGE Sat Jan 5 17:38:56 EST 2013 +@set LASTCHANGE Tue Jan 8 15:50:49 EST 2013 @set EDITION 4.2 @set VERSION 4.2 -@set UPDATED 5 January 2013 +@set UPDATED 8 January 2013 @set UPDATED-MONTH January 2013 diff --git a/execute_cmd.c b/execute_cmd.c index 5a768fd9..2b1b9f1e 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -4259,9 +4259,10 @@ execute_builtin (builtin, words, flags, subshell) /* The temporary environment for a builtin is supposed to apply to all commands executed by that builtin. Currently, this is a - problem only with the `unset', `source' and `eval' builtins. */ - - isbltinenv = (builtin == source_builtin || builtin == eval_builtin || builtin == unset_builtin); + problem only with the `unset', `source' and `eval' builtins. + `mapfile' is a special case because it uses evalstring (same as + eval or source) to run its callbacks. */ + isbltinenv = (builtin == source_builtin || builtin == eval_builtin || builtin == unset_builtin || builtin == mapfile_builtin); if (isbltinenv) { diff --git a/execute_cmd.c~ b/execute_cmd.c~ index 23499c61..a89c6afe 100644 --- a/execute_cmd.c~ +++ b/execute_cmd.c~ @@ -1493,7 +1493,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) if (user_subshell) { stdin_redir = stdin_redirects (command->redirects); - restore_default_signal (0); + restore_default_signal (EXIT_TRAP); } /* If this is an asynchronous command (command &), we want to @@ -4259,9 +4259,10 @@ execute_builtin (builtin, words, flags, subshell) /* The temporary environment for a builtin is supposed to apply to all commands executed by that builtin. Currently, this is a - problem only with the `unset', `source' and `eval' builtins. */ - - isbltinenv = (builtin == source_builtin || builtin == eval_builtin || builtin == unset_builtin); + problem only with the `unset', `source' and `eval' builtins. + `mapfile' is a special case because it uses evalstring (same as + eval or source) to run its callbacks. */ + isbltinenv = (builtin == source_builtin || builtin == eval_builtin || builtin == unset_builtin || builtin == mapfile_builtin); if (isbltinenv) { @@ -4875,6 +4876,7 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out, reset_terminating_signals (); /* XXX */ /* Cancel traps, in trap.c. */ +itrace("execute_disk_command: calling restore_original_signals"); restore_original_signals (); /* restore_original_signals may have undone the work done @@ -1,6 +1,6 @@ /* expr.c -- arithmetic expression evaluation. */ -/* Copyright (C) 1990-2012 Free Software Foundation, Inc. +/* Copyright (C) 1990-2013 Free Software Foundation, Inc. This file is part of GNU Bash, the Bourne Again SHell. @@ -558,6 +558,9 @@ expassign () #endif expr_bind_variable (lhs, rhs); } + if (curlval.tokstr && curlval.tokstr == tokstr) + init_lvalue (&curlval); + free (rhs); free (lhs); FREE (tokstr); diff --git a/init-termsigs.patch b/init-termsigs.patch new file mode 100644 index 00000000..426c3d7d --- /dev/null +++ b/init-termsigs.patch @@ -0,0 +1,11 @@ +*** ../bash-4.2-patched/sig.c 2011-03-12 13:14:06.000000000 -0500 +--- sig.c 2013-01-05 18:00:28.000000000 -0500 +*************** +*** 359,362 **** +--- 359,364 ---- + } + #endif /* !HAVE_POSIX_SIGNALS */ ++ ++ termsigs_initialized = 0; + } + #undef XSIG diff --git a/init-termsigs.patch~ b/init-termsigs.patch~ new file mode 100644 index 00000000..94f87d53 --- /dev/null +++ b/init-termsigs.patch~ @@ -0,0 +1,123 @@ +*** ../bash-4.2-patched/sig.c 2011-03-12 13:14:06.000000000 -0500 +--- sig.c 2013-01-05 18:00:28.000000000 -0500 +*************** +*** 1,5 **** + /* sig.c - interface for shell signal handlers and signal initialization. */ + +! /* Copyright (C) 1994-2010 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* sig.c - interface for shell signal handlers and signal initialization. */ + +! /* Copyright (C) 1994-2013 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 359,362 **** +--- 359,364 ---- + } + #endif /* !HAVE_POSIX_SIGNALS */ ++ ++ termsigs_initialized = 0; + } + #undef XSIG +*************** +*** 390,393 **** +--- 392,397 ---- + if (interrupt_state) + { ++ if (last_command_exit_value < 128) ++ last_command_exit_value = 128 + SIGINT; + print_newline = 1; + DELINTERRUPT; +*************** +*** 517,520 **** +--- 521,532 ---- + } + ++ #if defined (READLINE) ++ /* Set the event hook so readline will call it after the signal handlers ++ finish executing, so if this interrupted character input we can get ++ quick response. */ ++ if (interactive_shell && interactive && no_line_editing == 0) ++ bashline_set_event_hook (); ++ #endif ++ + SIGRETURN (0); + } +*************** +*** 538,545 **** + run_interrupt_trap (); + + #if defined (HISTORY) +! if (interactive_shell && sig != SIGABRT) + maybe_save_shell_history (); + #endif /* HISTORY */ + + #if defined (JOB_CONTROL) +--- 550,559 ---- + run_interrupt_trap (); + ++ #if 0 + #if defined (HISTORY) +! if (interactive_shell && (sig != SIGABRT && sig != SIGINT && sig != SIGHUP && sig != SIGTERM)) + maybe_save_shell_history (); + #endif /* HISTORY */ ++ #endif + + #if defined (JOB_CONTROL) +*************** +*** 582,585 **** +--- 596,606 ---- + throw_to_top_level (); + } ++ #if defined (READLINE) ++ /* Set the event hook so readline will call it after the signal handlers ++ finish executing, so if this interrupted character input we can get ++ quick response. */ ++ else if (RL_ISSTATE (RL_STATE_SIGHANDLER)) ++ bashline_set_event_hook (); ++ #endif + + SIGRETURN (0); +*************** +*** 618,622 **** + #if !defined (HAVE_POSIX_SIGNALS) + +- #if defined (JOB_CONTROL) + /* Perform OPERATION on NEWSET, perhaps leaving information in OLDSET. */ + sigprocmask (operation, newset, oldset) +--- 639,642 ---- +*************** +*** 637,641 **** + + case SIG_SETMASK: +! sigsetmask (new); + break; + +--- 657,661 ---- + + case SIG_SETMASK: +! old = sigsetmask (new); + break; + +*************** +*** 647,651 **** + *oldset = old; + } +- #endif /* JOB_CONTROL */ + + #else +--- 667,670 ---- +*************** +*** 672,677 **** +--- 691,698 ---- + /* We don't want a child death to interrupt interruptible system calls, even + if we take the time to reap children */ ++ #if defined (SIGCHLD) + if (sig == SIGCHLD) + act.sa_flags |= SA_RESTART; /* XXX */ ++ #endif + + sigemptyset (&act.sa_mask); @@ -156,14 +156,12 @@ redirection_error (temp, error) else if (expandable_redirection_filename (temp)) { expandable_filename: + oflags = temp->redirectee.filename->flags; if (posixly_correct && interactive_shell == 0) - { - oflags = temp->redirectee.filename->flags; - temp->redirectee.filename->flags |= W_NOGLOB; - } + temp->redirectee.filename->flags |= W_NOGLOB; + temp->redirectee.filename->flags |= W_NOCOMSUB; filename = allocname = redirection_expand (temp->redirectee.filename); - if (posixly_correct && interactive_shell == 0) - temp->redirectee.filename->flags = oflags; + temp->redirectee.filename->flags = oflags; if (filename == 0) filename = temp->redirectee.filename->word; } diff --git a/redir.c~ b/redir.c~ new file mode 100644 index 00000000..e7a0c038 --- /dev/null +++ b/redir.c~ @@ -0,0 +1,1339 @@ +/* redir.c -- Functions to perform input and output redirection. */ + +/* Copyright (C) 1997-2012 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "config.h" + +#if !defined (__GNUC__) && !defined (HAVE_ALLOCA_H) && defined (_AIX) + #pragma alloca +#endif /* _AIX && RISC6000 && !__GNUC__ */ + +#include <stdio.h> +#include "bashtypes.h" +#if !defined (_MINIX) && defined (HAVE_SYS_FILE_H) +# include <sys/file.h> +#endif +#include "filecntl.h" +#include "posixstat.h" + +#if defined (HAVE_UNISTD_H) +# include <unistd.h> +#endif + +#include <errno.h> + +#if !defined (errno) +extern int errno; +#endif + +#include "bashansi.h" +#include "bashintl.h" +#include "memalloc.h" + +#define NEED_FPURGE_DECL + +#include "shell.h" +#include "flags.h" +#include "execute_cmd.h" +#include "redir.h" + +#if defined (BUFFERED_INPUT) +# include "input.h" +#endif + +#define SHELL_FD_BASE 10 + +int expanding_redir; + +extern int posixly_correct; +extern int last_command_exit_value; +extern REDIRECT *redirection_undo_list; +extern REDIRECT *exec_redirection_undo_list; + +/* Static functions defined and used in this file. */ +static void add_exec_redirect __P((REDIRECT *)); +static int add_undo_redirect __P((int, enum r_instruction, int)); +static int add_undo_close_redirect __P((int)); +static int expandable_redirection_filename __P((REDIRECT *)); +static int stdin_redirection __P((enum r_instruction, int)); +static int undoablefd __P((int)); +static int do_redirection_internal __P((REDIRECT *, int)); + +static int write_here_document __P((int, WORD_DESC *)); +static int write_here_string __P((int, WORD_DESC *)); +static int here_document_to_fd __P((WORD_DESC *, enum r_instruction)); + +static int redir_special_open __P((int, char *, int, int, enum r_instruction)); +static int noclobber_open __P((char *, int, int, enum r_instruction)); +static int redir_open __P((char *, int, int, enum r_instruction)); + +static int redir_varassign __P((REDIRECT *, int)); +static int redir_varvalue __P((REDIRECT *)); + +/* Spare redirector used when translating [N]>&WORD[-] or [N]<&WORD[-] to + a new redirection and when creating the redirection undo list. */ +static REDIRECTEE rd; + +/* Set to errno when a here document cannot be created for some reason. + Used to print a reasonable error message. */ +static int heredoc_errno; + +#define REDIRECTION_ERROR(r, e, fd) \ +do { \ + if ((r) < 0) \ + { \ + if (fd >= 0) \ + close (fd); \ + last_command_exit_value = EXECUTION_FAILURE;\ + return ((e) == 0 ? EINVAL : (e));\ + } \ +} while (0) + +void +redirection_error (temp, error) + REDIRECT *temp; + int error; +{ + char *filename, *allocname; + int oflags; + + allocname = 0; + if (temp->rflags & REDIR_VARASSIGN) + filename = allocname = savestring (temp->redirector.filename->word); + else if (temp->redirector.dest < 0) + /* This can happen when read_token_word encounters overflow, like in + exec 4294967297>x */ + filename = _("file descriptor out of range"); +#ifdef EBADF + /* This error can never involve NOCLOBBER */ + else if (error != NOCLOBBER_REDIRECT && temp->redirector.dest >= 0 && error == EBADF) + { + /* If we're dealing with two file descriptors, we have to guess about + which one is invalid; in the cases of r_{duplicating,move}_input and + r_{duplicating,move}_output we're here because dup2() failed. */ + switch (temp->instruction) + { + case r_duplicating_input: + case r_duplicating_output: + case r_move_input: + case r_move_output: + filename = allocname = itos (temp->redirectee.dest); + break; + case r_duplicating_input_word: + if (temp->redirector.dest == 0) /* Guess */ + filename = temp->redirectee.filename->word; /* XXX */ + else + filename = allocname = itos (temp->redirector.dest); + break; + case r_duplicating_output_word: + if (temp->redirector.dest == 1) /* Guess */ + filename = temp->redirectee.filename->word; /* XXX */ + else + filename = allocname = itos (temp->redirector.dest); + break; + default: + filename = allocname = itos (temp->redirector.dest); + break; + } + } +#endif + else if (expandable_redirection_filename (temp)) + { +expandable_filename: + if (posixly_correct && interactive_shell == 0) + { + oflags = temp->redirectee.filename->flags; + temp->redirectee.filename->flags |= W_NOGLOB; + } + filename = allocname = redirection_expand (temp->redirectee.filename); + if (posixly_correct && interactive_shell == 0) + temp->redirectee.filename->flags = oflags; + if (filename == 0) + filename = temp->redirectee.filename->word; + } + else if (temp->redirectee.dest < 0) + filename = _("file descriptor out of range"); + else + filename = allocname = itos (temp->redirectee.dest); + + switch (error) + { + case AMBIGUOUS_REDIRECT: + internal_error (_("%s: ambiguous redirect"), filename); + break; + + case NOCLOBBER_REDIRECT: + internal_error (_("%s: cannot overwrite existing file"), filename); + break; + +#if defined (RESTRICTED_SHELL) + case RESTRICTED_REDIRECT: + internal_error (_("%s: restricted: cannot redirect output"), filename); + break; +#endif /* RESTRICTED_SHELL */ + + case HEREDOC_REDIRECT: + internal_error (_("cannot create temp file for here-document: %s"), strerror (heredoc_errno)); + break; + + case BADVAR_REDIRECT: + internal_error (_("%s: cannot assign fd to variable"), filename); + break; + + default: + internal_error ("%s: %s", filename, strerror (error)); + break; + } + + FREE (allocname); +} + +/* Perform the redirections on LIST. If flags & RX_ACTIVE, then actually + make input and output file descriptors, otherwise just do whatever is + neccessary for side effecting. flags & RX_UNDOABLE says to remember + how to undo the redirections later, if non-zero. If flags & RX_CLEXEC + is non-zero, file descriptors opened in do_redirection () have their + close-on-exec flag set. */ +int +do_redirections (list, flags) + REDIRECT *list; + int flags; +{ + int error; + REDIRECT *temp; + + if (flags & RX_UNDOABLE) + { + if (redirection_undo_list) + { + dispose_redirects (redirection_undo_list); + redirection_undo_list = (REDIRECT *)NULL; + } + if (exec_redirection_undo_list) + dispose_exec_redirects (); + } + + for (temp = list; temp; temp = temp->next) + { + error = do_redirection_internal (temp, flags); + if (error) + { + redirection_error (temp, error); + return (error); + } + } + return (0); +} + +/* Return non-zero if the redirection pointed to by REDIRECT has a + redirectee.filename that can be expanded. */ +static int +expandable_redirection_filename (redirect) + REDIRECT *redirect; +{ + switch (redirect->instruction) + { + case r_output_direction: + case r_appending_to: + case r_input_direction: + case r_inputa_direction: + case r_err_and_out: + case r_append_err_and_out: + case r_input_output: + case r_output_force: + case r_duplicating_input_word: + case r_duplicating_output_word: + case r_move_input_word: + case r_move_output_word: + return 1; + + default: + return 0; + } +} + +/* Expand the word in WORD returning a string. If WORD expands to + multiple words (or no words), then return NULL. */ +char * +redirection_expand (word) + WORD_DESC *word; +{ + char *result; + WORD_LIST *tlist1, *tlist2; + WORD_DESC *w; + + w = copy_word (word); + if (posixly_correct) + w->flags |= W_NOSPLIT; + + tlist1 = make_word_list (w, (WORD_LIST *)NULL); + expanding_redir = 1; + tlist2 = expand_words_no_vars (tlist1); + expanding_redir = 0; + dispose_words (tlist1); + + if (!tlist2 || tlist2->next) + { + /* We expanded to no words, or to more than a single word. + Dispose of the word list and return NULL. */ + if (tlist2) + dispose_words (tlist2); + return ((char *)NULL); + } + result = string_list (tlist2); /* XXX savestring (tlist2->word->word)? */ + dispose_words (tlist2); + return (result); +} + +static int +write_here_string (fd, redirectee) + int fd; + WORD_DESC *redirectee; +{ + char *herestr; + int herelen, n, e; + + expanding_redir = 1; + herestr = expand_string_to_string (redirectee->word, 0); + expanding_redir = 0; + herelen = STRLEN (herestr); + + n = write (fd, herestr, herelen); + if (n == herelen) + { + n = write (fd, "\n", 1); + herelen = 1; + } + e = errno; + FREE (herestr); + if (n != herelen) + { + if (e == 0) + e = ENOSPC; + return e; + } + return 0; +} + +/* Write the text of the here document pointed to by REDIRECTEE to the file + descriptor FD, which is already open to a temp file. Return 0 if the + write is successful, otherwise return errno. */ +static int +write_here_document (fd, redirectee) + int fd; + WORD_DESC *redirectee; +{ + char *document; + int document_len, fd2; + FILE *fp; + register WORD_LIST *t, *tlist; + + /* Expand the text if the word that was specified had + no quoting. The text that we expand is treated + exactly as if it were surrounded by double quotes. */ + + if (redirectee->flags & W_QUOTED) + { + document = redirectee->word; + document_len = strlen (document); + /* Set errno to something reasonable if the write fails. */ + if (write (fd, document, document_len) < document_len) + { + if (errno == 0) + errno = ENOSPC; + return (errno); + } + else + return 0; + } + + expanding_redir = 1; + tlist = expand_string (redirectee->word, Q_HERE_DOCUMENT); + expanding_redir = 0; + + if (tlist) + { + /* Try using buffered I/O (stdio) and writing a word + at a time, letting stdio do the work of buffering + for us rather than managing our own strings. Most + stdios are not particularly fast, however -- this + may need to be reconsidered later. */ + if ((fd2 = dup (fd)) < 0 || (fp = fdopen (fd2, "w")) == NULL) + { + if (fd2 >= 0) + close (fd2); + return (errno); + } + errno = 0; + for (t = tlist; t; t = t->next) + { + /* This is essentially the body of + string_list_internal expanded inline. */ + document = t->word->word; + document_len = strlen (document); + if (t != tlist) + putc (' ', fp); /* separator */ + fwrite (document, document_len, 1, fp); + if (ferror (fp)) + { + if (errno == 0) + errno = ENOSPC; + fd2 = errno; + fclose(fp); + dispose_words (tlist); + return (fd2); + } + } + dispose_words (tlist); + if (fclose (fp) != 0) + { + if (errno == 0) + errno = ENOSPC; + return (errno); + } + } + return 0; +} + +/* Create a temporary file holding the text of the here document pointed to + by REDIRECTEE, and return a file descriptor open for reading to the temp + file. Return -1 on any error, and make sure errno is set appropriately. */ +static int +here_document_to_fd (redirectee, ri) + WORD_DESC *redirectee; + enum r_instruction ri; +{ + char *filename; + int r, fd, fd2; + + fd = sh_mktmpfd ("sh-thd", MT_USERANDOM|MT_USETMPDIR, &filename); + + /* If we failed for some reason other than the file existing, abort */ + if (fd < 0) + { + FREE (filename); + return (fd); + } + + errno = r = 0; /* XXX */ + /* write_here_document returns 0 on success, errno on failure. */ + if (redirectee->word) + r = (ri != r_reading_string) ? write_here_document (fd, redirectee) + : write_here_string (fd, redirectee); + + if (r) + { + close (fd); + unlink (filename); + free (filename); + errno = r; + return (-1); + } + + /* In an attempt to avoid races, we close the first fd only after opening + the second. */ + /* Make the document really temporary. Also make it the input. */ + fd2 = open (filename, O_RDONLY|O_BINARY, 0600); + + if (fd2 < 0) + { + r = errno; + unlink (filename); + free (filename); + close (fd); + errno = r; + return -1; + } + + close (fd); + if (unlink (filename) < 0) + { + r = errno; + close (fd2); + free (filename); + errno = r; + return (-1); + } + + free (filename); + return (fd2); +} + +#define RF_DEVFD 1 +#define RF_DEVSTDERR 2 +#define RF_DEVSTDIN 3 +#define RF_DEVSTDOUT 4 +#define RF_DEVTCP 5 +#define RF_DEVUDP 6 + +/* A list of pattern/value pairs for filenames that the redirection + code handles specially. */ +static STRING_INT_ALIST _redir_special_filenames[] = { +#if !defined (HAVE_DEV_FD) + { "/dev/fd/[0-9]*", RF_DEVFD }, +#endif +#if !defined (HAVE_DEV_STDIN) + { "/dev/stderr", RF_DEVSTDERR }, + { "/dev/stdin", RF_DEVSTDIN }, + { "/dev/stdout", RF_DEVSTDOUT }, +#endif +#if defined (NETWORK_REDIRECTIONS) + { "/dev/tcp/*/*", RF_DEVTCP }, + { "/dev/udp/*/*", RF_DEVUDP }, +#endif + { (char *)NULL, -1 } +}; + +static int +redir_special_open (spec, filename, flags, mode, ri) + int spec; + char *filename; + int flags, mode; + enum r_instruction ri; +{ + int fd; +#if !defined (HAVE_DEV_FD) + intmax_t lfd; +#endif + + fd = -1; + switch (spec) + { +#if !defined (HAVE_DEV_FD) + case RF_DEVFD: + if (all_digits (filename+8) && legal_number (filename+8, &lfd) && lfd == (int)lfd) + { + fd = lfd; + fd = fcntl (fd, F_DUPFD, SHELL_FD_BASE); + } + else + fd = AMBIGUOUS_REDIRECT; + break; +#endif + +#if !defined (HAVE_DEV_STDIN) + case RF_DEVSTDIN: + fd = fcntl (0, F_DUPFD, SHELL_FD_BASE); + break; + case RF_DEVSTDOUT: + fd = fcntl (1, F_DUPFD, SHELL_FD_BASE); + break; + case RF_DEVSTDERR: + fd = fcntl (2, F_DUPFD, SHELL_FD_BASE); + break; +#endif + +#if defined (NETWORK_REDIRECTIONS) + case RF_DEVTCP: + case RF_DEVUDP: +#if defined (HAVE_NETWORK) + fd = netopen (filename); +#else + internal_warning (_("/dev/(tcp|udp)/host/port not supported without networking")); + fd = open (filename, flags, mode); +#endif + break; +#endif /* NETWORK_REDIRECTIONS */ + } + + return fd; +} + +/* Open FILENAME with FLAGS in noclobber mode, hopefully avoiding most + race conditions and avoiding the problem where the file is replaced + between the stat(2) and open(2). */ +static int +noclobber_open (filename, flags, mode, ri) + char *filename; + int flags, mode; + enum r_instruction ri; +{ + int r, fd; + struct stat finfo, finfo2; + + /* If the file exists and is a regular file, return an error + immediately. */ + r = stat (filename, &finfo); + if (r == 0 && (S_ISREG (finfo.st_mode))) + return (NOCLOBBER_REDIRECT); + + /* If the file was not present (r != 0), make sure we open it + exclusively so that if it is created before we open it, our open + will fail. Make sure that we do not truncate an existing file. + Note that we don't turn on O_EXCL unless the stat failed -- if + the file was not a regular file, we leave O_EXCL off. */ + flags &= ~O_TRUNC; + if (r != 0) + { + fd = open (filename, flags|O_EXCL, mode); + return ((fd < 0 && errno == EEXIST) ? NOCLOBBER_REDIRECT : fd); + } + fd = open (filename, flags, mode); + + /* If the open failed, return the file descriptor right away. */ + if (fd < 0) + return (errno == EEXIST ? NOCLOBBER_REDIRECT : fd); + + /* OK, the open succeeded, but the file may have been changed from a + non-regular file to a regular file between the stat and the open. + We are assuming that the O_EXCL open handles the case where FILENAME + did not exist and is symlinked to an existing file between the stat + and open. */ + + /* If we can open it and fstat the file descriptor, and neither check + revealed that it was a regular file, and the file has not been replaced, + return the file descriptor. */ + if ((fstat (fd, &finfo2) == 0) && (S_ISREG (finfo2.st_mode) == 0) && + r == 0 && (S_ISREG (finfo.st_mode) == 0) && + same_file (filename, filename, &finfo, &finfo2)) + return fd; + + /* The file has been replaced. badness. */ + close (fd); + errno = EEXIST; + return (NOCLOBBER_REDIRECT); +} + +static int +redir_open (filename, flags, mode, ri) + char *filename; + int flags, mode; + enum r_instruction ri; +{ + int fd, r; + + r = find_string_in_alist (filename, _redir_special_filenames, 1); + if (r >= 0) + return (redir_special_open (r, filename, flags, mode, ri)); + + /* If we are in noclobber mode, you are not allowed to overwrite + existing files. Check before opening. */ + if (noclobber && CLOBBERING_REDIRECT (ri)) + { + fd = noclobber_open (filename, flags, mode, ri); + if (fd == NOCLOBBER_REDIRECT) + return (NOCLOBBER_REDIRECT); + } + else + { + fd = open (filename, flags, mode); +#if defined (AFS) + if ((fd < 0) && (errno == EACCES)) + { + fd = open (filename, flags & ~O_CREAT, mode); + errno = EACCES; /* restore errno */ + } +#endif /* AFS */ + } + + return fd; +} + +static int +undoablefd (fd) + int fd; +{ + int clexec; + + clexec = fcntl (fd, F_GETFD, 0); + if (clexec == -1 || (fd >= SHELL_FD_BASE && clexec == 1)) + return 0; + return 1; +} + +/* Do the specific redirection requested. Returns errno or one of the + special redirection errors (*_REDIRECT) in case of error, 0 on success. + If flags & RX_ACTIVE is zero, then just do whatever is neccessary to + produce the appropriate side effects. flags & RX_UNDOABLE, if non-zero, + says to remember how to undo each redirection. If flags & RX_CLEXEC is + non-zero, then we set all file descriptors > 2 that we open to be + close-on-exec. */ +static int +do_redirection_internal (redirect, flags) + REDIRECT *redirect; + int flags; +{ + WORD_DESC *redirectee; + int redir_fd, fd, redirector, r, oflags; + intmax_t lfd; + char *redirectee_word; + enum r_instruction ri; + REDIRECT *new_redirect; + REDIRECTEE sd; + + redirectee = redirect->redirectee.filename; + redir_fd = redirect->redirectee.dest; + redirector = redirect->redirector.dest; + ri = redirect->instruction; + + if (redirect->flags & RX_INTERNAL) + flags |= RX_INTERNAL; + + if (TRANSLATE_REDIRECT (ri)) + { + /* We have [N]>&WORD[-] or [N]<&WORD[-] (or {V}>&WORD[-] or {V}<&WORD-). + and WORD, then translate the redirection into a new one and + continue. */ + redirectee_word = redirection_expand (redirectee); + + /* XXX - what to do with [N]<&$w- where w is unset or null? ksh93 + closes N. */ + if (redirectee_word == 0) + return (AMBIGUOUS_REDIRECT); + else if (redirectee_word[0] == '-' && redirectee_word[1] == '\0') + { + sd = redirect->redirector; + rd.dest = 0; + new_redirect = make_redirection (sd, r_close_this, rd, 0); + } + else if (all_digits (redirectee_word)) + { + sd = redirect->redirector; + if (legal_number (redirectee_word, &lfd) && (int)lfd == lfd) + rd.dest = lfd; + else + rd.dest = -1; /* XXX */ + switch (ri) + { + case r_duplicating_input_word: + new_redirect = make_redirection (sd, r_duplicating_input, rd, 0); + break; + case r_duplicating_output_word: + new_redirect = make_redirection (sd, r_duplicating_output, rd, 0); + break; + case r_move_input_word: + new_redirect = make_redirection (sd, r_move_input, rd, 0); + break; + case r_move_output_word: + new_redirect = make_redirection (sd, r_move_output, rd, 0); + break; + } + } + else if (ri == r_duplicating_output_word && (redirect->rflags & REDIR_VARASSIGN) == 0 && redirector == 1) + { + sd = redirect->redirector; + rd.filename = make_bare_word (redirectee_word); + new_redirect = make_redirection (sd, r_err_and_out, rd, 0); + } + else + { + free (redirectee_word); + return (AMBIGUOUS_REDIRECT); + } + + free (redirectee_word); + + /* Set up the variables needed by the rest of the function from the + new redirection. */ + if (new_redirect->instruction == r_err_and_out) + { + char *alloca_hack; + + /* Copy the word without allocating any memory that must be + explicitly freed. */ + redirectee = (WORD_DESC *)alloca (sizeof (WORD_DESC)); + xbcopy ((char *)new_redirect->redirectee.filename, + (char *)redirectee, sizeof (WORD_DESC)); + + alloca_hack = (char *) + alloca (1 + strlen (new_redirect->redirectee.filename->word)); + redirectee->word = alloca_hack; + strcpy (redirectee->word, new_redirect->redirectee.filename->word); + } + else + /* It's guaranteed to be an integer, and shouldn't be freed. */ + redirectee = new_redirect->redirectee.filename; + + redir_fd = new_redirect->redirectee.dest; + redirector = new_redirect->redirector.dest; + ri = new_redirect->instruction; + + /* Overwrite the flags element of the old redirect with the new value. */ + redirect->flags = new_redirect->flags; + dispose_redirects (new_redirect); + } + + switch (ri) + { + case r_output_direction: + case r_appending_to: + case r_input_direction: + case r_inputa_direction: + case r_err_and_out: /* command &>filename */ + case r_append_err_and_out: /* command &>> filename */ + case r_input_output: + case r_output_force: + if (posixly_correct && interactive_shell == 0) + { + oflags = redirectee->flags; + redirectee->flags |= W_NOGLOB; + } + redirectee_word = redirection_expand (redirectee); + if (posixly_correct && interactive_shell == 0) + redirectee->flags = oflags; + + if (redirectee_word == 0) + return (AMBIGUOUS_REDIRECT); + +#if defined (RESTRICTED_SHELL) + if (restricted && (WRITE_REDIRECT (ri))) + { + free (redirectee_word); + return (RESTRICTED_REDIRECT); + } +#endif /* RESTRICTED_SHELL */ + + fd = redir_open (redirectee_word, redirect->flags, 0666, ri); + free (redirectee_word); + + if (fd == NOCLOBBER_REDIRECT) + return (fd); + + if (fd < 0) + return (errno); + + if (flags & RX_ACTIVE) + { + if (redirect->rflags & REDIR_VARASSIGN) + { + redirector = fcntl (fd, F_DUPFD, SHELL_FD_BASE); /* XXX try this for now */ + r = errno; + if (redirector < 0) + sys_error (_("redirection error: cannot duplicate fd")); + REDIRECTION_ERROR (redirector, r, fd); + } + + if ((flags & RX_UNDOABLE) && (redirect->rflags & REDIR_VARASSIGN) == 0) + { + /* Only setup to undo it if the thing to undo is active. */ + if ((fd != redirector) && (fcntl (redirector, F_GETFD, 0) != -1)) + r = add_undo_redirect (redirector, ri, -1); + else + r = add_undo_close_redirect (redirector); + REDIRECTION_ERROR (r, errno, fd); + } + +#if defined (BUFFERED_INPUT) + check_bash_input (redirector); +#endif + + /* Make sure there is no pending output before we change the state + of the underlying file descriptor, since the builtins use stdio + for output. */ + if (redirector == 1 && fileno (stdout) == redirector) + { + fflush (stdout); + fpurge (stdout); + } + else if (redirector == 2 && fileno (stderr) == redirector) + { + fflush (stderr); + fpurge (stderr); + } + + if (redirect->rflags & REDIR_VARASSIGN) + { + if ((r = redir_varassign (redirect, redirector)) < 0) + { + close (redirector); + close (fd); + return (r); /* XXX */ + } + } + else if ((fd != redirector) && (dup2 (fd, redirector) < 0)) + return (errno); + +#if defined (BUFFERED_INPUT) + /* Do not change the buffered stream for an implicit redirection + of /dev/null to fd 0 for asynchronous commands without job + control (r_inputa_direction). */ + if (ri == r_input_direction || ri == r_input_output) + duplicate_buffered_stream (fd, redirector); +#endif /* BUFFERED_INPUT */ + + /* + * If we're remembering, then this is the result of a while, for + * or until loop with a loop redirection, or a function/builtin + * executing in the parent shell with a redirection. In the + * function/builtin case, we want to set all file descriptors > 2 + * to be close-on-exec to duplicate the effect of the old + * for i = 3 to NOFILE close(i) loop. In the case of the loops, + * both sh and ksh leave the file descriptors open across execs. + * The Posix standard mentions only the exec builtin. + */ + if ((flags & RX_CLEXEC) && (redirector > 2)) + SET_CLOSE_ON_EXEC (redirector); + } + + if (fd != redirector) + { +#if defined (BUFFERED_INPUT) + if (INPUT_REDIRECT (ri)) + close_buffered_fd (fd); + else +#endif /* !BUFFERED_INPUT */ + close (fd); /* Don't close what we just opened! */ + } + + /* If we are hacking both stdout and stderr, do the stderr + redirection here. XXX - handle {var} here? */ + if (ri == r_err_and_out || ri == r_append_err_and_out) + { + if (flags & RX_ACTIVE) + { + if (flags & RX_UNDOABLE) + add_undo_redirect (2, ri, -1); + if (dup2 (1, 2) < 0) + return (errno); + } + } + break; + + case r_reading_until: + case r_deblank_reading_until: + case r_reading_string: + /* REDIRECTEE is a pointer to a WORD_DESC containing the text of + the new input. Place it in a temporary file. */ + if (redirectee) + { + fd = here_document_to_fd (redirectee, ri); + + if (fd < 0) + { + heredoc_errno = errno; + return (HEREDOC_REDIRECT); + } + + if (redirect->rflags & REDIR_VARASSIGN) + { + redirector = fcntl (fd, F_DUPFD, SHELL_FD_BASE); /* XXX try this for now */ + r = errno; + if (redirector < 0) + sys_error (_("redirection error: cannot duplicate fd")); + REDIRECTION_ERROR (redirector, r, fd); + } + + if (flags & RX_ACTIVE) + { + if ((flags & RX_UNDOABLE) && (redirect->rflags & REDIR_VARASSIGN) == 0) + { + /* Only setup to undo it if the thing to undo is active. */ + if ((fd != redirector) && (fcntl (redirector, F_GETFD, 0) != -1)) + r = add_undo_redirect (redirector, ri, -1); + else + r = add_undo_close_redirect (redirector); + REDIRECTION_ERROR (r, errno, fd); + } + +#if defined (BUFFERED_INPUT) + check_bash_input (redirector); +#endif + if (redirect->rflags & REDIR_VARASSIGN) + { + if ((r = redir_varassign (redirect, redirector)) < 0) + { + close (redirector); + close (fd); + return (r); /* XXX */ + } + } + else if (fd != redirector && dup2 (fd, redirector) < 0) + { + r = errno; + close (fd); + return (r); + } + +#if defined (BUFFERED_INPUT) + duplicate_buffered_stream (fd, redirector); +#endif + + if ((flags & RX_CLEXEC) && (redirector > 2)) + SET_CLOSE_ON_EXEC (redirector); + } + + if (fd != redirector) +#if defined (BUFFERED_INPUT) + close_buffered_fd (fd); +#else + close (fd); +#endif + } + break; + + case r_duplicating_input: + case r_duplicating_output: + case r_move_input: + case r_move_output: + if ((flags & RX_ACTIVE) && (redirect->rflags & REDIR_VARASSIGN)) + { + redirector = fcntl (redir_fd, F_DUPFD, SHELL_FD_BASE); /* XXX try this for now */ + r = errno; + if (redirector < 0) + sys_error (_("redirection error: cannot duplicate fd")); + REDIRECTION_ERROR (redirector, r, -1); + } + + if ((flags & RX_ACTIVE) && (redir_fd != redirector)) + { + if ((flags & RX_UNDOABLE) && (redirect->rflags & REDIR_VARASSIGN) == 0) + { + /* Only setup to undo it if the thing to undo is active. */ + if (fcntl (redirector, F_GETFD, 0) != -1) + r = add_undo_redirect (redirector, ri, redir_fd); + else + r = add_undo_close_redirect (redirector); + REDIRECTION_ERROR (r, errno, -1); + } +#if defined (BUFFERED_INPUT) + check_bash_input (redirector); +#endif + if (redirect->rflags & REDIR_VARASSIGN) + { + if ((r = redir_varassign (redirect, redirector)) < 0) + { + close (redirector); + return (r); /* XXX */ + } + } + /* This is correct. 2>&1 means dup2 (1, 2); */ + else if (dup2 (redir_fd, redirector) < 0) + return (errno); + +#if defined (BUFFERED_INPUT) + if (ri == r_duplicating_input || ri == r_move_input) + duplicate_buffered_stream (redir_fd, redirector); +#endif /* BUFFERED_INPUT */ + + /* First duplicate the close-on-exec state of redirectee. dup2 + leaves the flag unset on the new descriptor, which means it + stays open. Only set the close-on-exec bit for file descriptors + greater than 2 in any case, since 0-2 should always be open + unless closed by something like `exec 2<&-'. It should always + be safe to set fds > 2 to close-on-exec if they're being used to + save file descriptors < 2, since we don't need to preserve the + state of the close-on-exec flag for those fds -- they should + always be open. */ + /* if ((already_set || set_unconditionally) && (ok_to_set)) + set_it () */ +#if 0 + if (((fcntl (redir_fd, F_GETFD, 0) == 1) || redir_fd < 2 || (flags & RX_CLEXEC)) && + (redirector > 2)) +#else + if (((fcntl (redir_fd, F_GETFD, 0) == 1) || (redir_fd < 2 && (flags & RX_INTERNAL)) || (flags & RX_CLEXEC)) && + (redirector > 2)) +#endif + SET_CLOSE_ON_EXEC (redirector); + + /* When undoing saving of non-standard file descriptors (>=3) using + file descriptors >= SHELL_FD_BASE, we set the saving fd to be + close-on-exec and use a flag to decide how to set close-on-exec + when the fd is restored. */ + if ((redirect->flags & RX_INTERNAL) && (redirect->flags & RX_SAVCLEXEC) && redirector >= 3 && (redir_fd >= SHELL_FD_BASE || (redirect->flags & RX_SAVEFD))) + SET_OPEN_ON_EXEC (redirector); + + /* dup-and-close redirection */ + if (ri == r_move_input || ri == r_move_output) + { + xtrace_fdchk (redir_fd); + + close (redir_fd); +#if defined (COPROCESS_SUPPORT) + coproc_fdchk (redir_fd); /* XXX - loses coproc fds */ +#endif + } + } + break; + + case r_close_this: + if (flags & RX_ACTIVE) + { + if (redirect->rflags & REDIR_VARASSIGN) + { + redirector = redir_varvalue (redirect); + if (redirector < 0) + return AMBIGUOUS_REDIRECT; + } + + r = 0; + /* XXX - only if REDIR_VARASSIGN not set? */ + if ((flags & RX_UNDOABLE) && (fcntl (redirector, F_GETFD, 0) != -1)) + { + r = add_undo_redirect (redirector, ri, -1); + REDIRECTION_ERROR (r, errno, redirector); + } + +#if defined (COPROCESS_SUPPORT) + coproc_fdchk (redirector); +#endif + xtrace_fdchk (redirector); + +#if defined (BUFFERED_INPUT) + check_bash_input (redirector); + r = close_buffered_fd (redirector); +#else /* !BUFFERED_INPUT */ + r = close (redirector); +#endif /* !BUFFERED_INPUT */ +#if 0 /* bash-4.3 */ + if (r < 0 && (flags & RX_INTERNAL) && (errno == EIO || errno == ENOSPC)) + REDIRECTION_ERROR (r, errno, -1); +#endif + } + break; + + case r_duplicating_input_word: + case r_duplicating_output_word: + break; + } + return (0); +} + +/* Remember the file descriptor associated with the slot FD, + on REDIRECTION_UNDO_LIST. Note that the list will be reversed + before it is executed. Any redirections that need to be undone + even if REDIRECTION_UNDO_LIST is discarded by the exec builtin + are also saved on EXEC_REDIRECTION_UNDO_LIST. FDBASE says where to + start the duplicating. If it's less than SHELL_FD_BASE, we're ok, + and can use SHELL_FD_BASE (-1 == don't care). If it's >= SHELL_FD_BASE, + we have to make sure we don't use fdbase to save a file descriptor, + since we're going to use it later (e.g., make sure we don't save fd 0 + to fd 10 if we have a redirection like 0<&10). If the value of fdbase + puts the process over its fd limit, causing fcntl to fail, we try + again with SHELL_FD_BASE. Return 0 on success, -1 on error. */ +static int +add_undo_redirect (fd, ri, fdbase) + int fd; + enum r_instruction ri; + int fdbase; +{ + int new_fd, clexec_flag, savefd_flag; + REDIRECT *new_redirect, *closer, *dummy_redirect; + REDIRECTEE sd; + + savefd_flag = 0; + new_fd = fcntl (fd, F_DUPFD, (fdbase < SHELL_FD_BASE) ? SHELL_FD_BASE : fdbase+1); + if (new_fd < 0) + new_fd = fcntl (fd, F_DUPFD, SHELL_FD_BASE); + if (new_fd < 0) + { + new_fd = fcntl (fd, F_DUPFD, 0); + savefd_flag = 1; + } + + if (new_fd < 0) + { + sys_error (_("redirection error: cannot duplicate fd")); + return (-1); + } + + clexec_flag = fcntl (fd, F_GETFD, 0); + + sd.dest = new_fd; + rd.dest = 0; + closer = make_redirection (sd, r_close_this, rd, 0); + closer->flags |= RX_INTERNAL; + dummy_redirect = copy_redirects (closer); + + sd.dest = fd; + rd.dest = new_fd; + if (fd == 0) + new_redirect = make_redirection (sd, r_duplicating_input, rd, 0); + else + new_redirect = make_redirection (sd, r_duplicating_output, rd, 0); + new_redirect->flags |= RX_INTERNAL; + if (savefd_flag) + new_redirect->flags |= RX_SAVEFD; + if (clexec_flag == 0 && fd >= 3 && (new_fd >= SHELL_FD_BASE || savefd_flag)) + new_redirect->flags |= RX_SAVCLEXEC; + new_redirect->next = closer; + + closer->next = redirection_undo_list; + redirection_undo_list = new_redirect; + + /* Save redirections that need to be undone even if the undo list + is thrown away by the `exec' builtin. */ + add_exec_redirect (dummy_redirect); + + /* experimental: if we're saving a redirection to undo for a file descriptor + above SHELL_FD_BASE, add a redirection to be undone if the exec builtin + causes redirections to be discarded. There needs to be a difference + between fds that are used to save other fds and then are the target of + user redirections and fds that are just the target of user redirections. + We use the close-on-exec flag to tell the difference; fds > SHELL_FD_BASE + that have the close-on-exec flag set are assumed to be fds used internally + to save others. */ + if (fd >= SHELL_FD_BASE && ri != r_close_this && clexec_flag) + { + sd.dest = fd; + rd.dest = new_fd; + new_redirect = make_redirection (sd, r_duplicating_output, rd, 0); + new_redirect->flags |= RX_INTERNAL; + + add_exec_redirect (new_redirect); + } + + /* File descriptors used only for saving others should always be + marked close-on-exec. Unfortunately, we have to preserve the + close-on-exec state of the file descriptor we are saving, since + fcntl (F_DUPFD) sets the new file descriptor to remain open + across execs. If, however, the file descriptor whose state we + are saving is <= 2, we can just set the close-on-exec flag, + because file descriptors 0-2 should always be open-on-exec, + and the restore above in do_redirection() will take care of it. */ + if (clexec_flag || fd < 3) + SET_CLOSE_ON_EXEC (new_fd); + else if (redirection_undo_list->flags & RX_SAVCLEXEC) + SET_CLOSE_ON_EXEC (new_fd); + + return (0); +} + +/* Set up to close FD when we are finished with the current command + and its redirections. Return 0 on success, -1 on error. */ +static int +add_undo_close_redirect (fd) + int fd; +{ + REDIRECT *closer; + REDIRECTEE sd; + + sd.dest = fd; + rd.dest = 0; + closer = make_redirection (sd, r_close_this, rd, 0); + closer->flags |= RX_INTERNAL; + closer->next = redirection_undo_list; + redirection_undo_list = closer; + + return 0; +} + +static void +add_exec_redirect (dummy_redirect) + REDIRECT *dummy_redirect; +{ + dummy_redirect->next = exec_redirection_undo_list; + exec_redirection_undo_list = dummy_redirect; +} + +/* Return 1 if the redirection specified by RI and REDIRECTOR alters the + standard input. */ +static int +stdin_redirection (ri, redirector) + enum r_instruction ri; + int redirector; +{ + switch (ri) + { + case r_input_direction: + case r_inputa_direction: + case r_input_output: + case r_reading_until: + case r_deblank_reading_until: + case r_reading_string: + return (1); + case r_duplicating_input: + case r_duplicating_input_word: + case r_close_this: + return (redirector == 0); + case r_output_direction: + case r_appending_to: + case r_duplicating_output: + case r_err_and_out: + case r_append_err_and_out: + case r_output_force: + case r_duplicating_output_word: + return (0); + } + return (0); +} + +/* Return non-zero if any of the redirections in REDIRS alter the standard + input. */ +int +stdin_redirects (redirs) + REDIRECT *redirs; +{ + REDIRECT *rp; + int n; + + for (n = 0, rp = redirs; rp; rp = rp->next) + if ((rp->rflags & REDIR_VARASSIGN) == 0) + n += stdin_redirection (rp->instruction, rp->redirector.dest); + return n; +} +/* bind_var_to_int handles array references */ +static int +redir_varassign (redir, fd) + REDIRECT *redir; + int fd; +{ + WORD_DESC *w; + SHELL_VAR *v; + + w = redir->redirector.filename; + v = bind_var_to_int (w->word, fd); + if (v == 0 || readonly_p (v) || noassign_p (v)) + return BADVAR_REDIRECT; + + stupidly_hack_special_variables (w->word); + return 0; +} + +/* Handles {array[ind]} for redirection words */ +static int +redir_varvalue (redir) + REDIRECT *redir; +{ + SHELL_VAR *v; + char *val, *w; + intmax_t vmax; + int i; +#if defined (ARRAY_VARS) + char *sub; + int len, vr; +#endif + + w = redir->redirector.filename->word; /* shorthand */ + /* XXX - handle set -u here? */ +#if defined (ARRAY_VARS) + if (vr = valid_array_reference (w)) + v = array_variable_part (w, &sub, &len); + else +#endif + v = find_variable (w); + if (v == 0 || invisible_p (v)) + return -1; + +#if defined (ARRAY_VARS) + /* get_variable_value handles references to array variables without + subscripts */ + if (vr && (array_p (v) || assoc_p (v))) + val = get_array_value (w, 0, (int *)NULL, (arrayind_t *)0); + else +#endif + val = get_variable_value (v); + if (val == 0 || *val == 0) + return -1; + + if (legal_number (val, &vmax) < 0) + return -1; + + i = vmax; /* integer truncation */ + return i; +} @@ -5935,6 +5935,11 @@ parameter_brace_expand_rhs (name, value, c, quoted, qdollaratp, hasdollarat) else #endif /* ARRAY_VARS */ bind_variable (name, t1, 0); + if (STREQ (name, "IFS") == 0) + stupidly_hack_special_variables (name); + else + /* XXX - what to do? Set a flag in w->flags to call setifs() later? */ + ; /* From Posix group discussion Feb-March 2010. Issue 7 0000221 */ free (temp); @@ -8364,6 +8369,17 @@ add_string: { SCOPY_CHAR_I (twochars, CTLESC, c, string, sindex, string_size); } + /* This is the fix for " $@\ " */ + else if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && ((sh_syntaxtab[c] & tflag) == 0) & isexp == 0 && isifs (c)) + { + RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, + DEFAULT_ARRAY_SIZE); + istring[istring_index++] = CTLESC; + istring[istring_index++] = '\\'; + istring[istring_index] = '\0'; + + SCOPY_CHAR_I (twochars, CTLESC, c, string, sindex, string_size); + } else if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && ((sh_syntaxtab[c] & tflag) == 0)) { SCOPY_CHAR_I (twochars, '\\', c, string, sindex, string_size); diff --git a/subst.c~ b/subst.c~ new file mode 100644 index 00000000..28144614 --- /dev/null +++ b/subst.c~ @@ -0,0 +1,9604 @@ +/* subst.c -- The part of the shell that does parameter, command, arithmetic, + and globbing substitutions. */ + +/* ``Have a little faith, there's magic in the night. You ain't a + beauty, but, hey, you're alright.'' */ + +/* Copyright (C) 1987-2012 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "config.h" + +#include "bashtypes.h" +#include <stdio.h> +#include "chartypes.h" +#if defined (HAVE_PWD_H) +# include <pwd.h> +#endif +#include <signal.h> +#include <errno.h> + +#if defined (HAVE_UNISTD_H) +# include <unistd.h> +#endif + +#include "bashansi.h" +#include "posixstat.h" +#include "bashintl.h" + +#include "shell.h" +#include "parser.h" +#include "flags.h" +#include "jobs.h" +#include "execute_cmd.h" +#include "filecntl.h" +#include "trap.h" +#include "pathexp.h" +#include "mailcheck.h" + +#include "shmbutil.h" +#include "typemax.h" + +#include "builtins/getopt.h" +#include "builtins/common.h" + +#include "builtins/builtext.h" + +#include <tilde/tilde.h> +#include <glob/strmatch.h> + +#if !defined (errno) +extern int errno; +#endif /* !errno */ + +/* The size that strings change by. */ +#define DEFAULT_INITIAL_ARRAY_SIZE 112 +#define DEFAULT_ARRAY_SIZE 128 + +/* Variable types. */ +#define VT_VARIABLE 0 +#define VT_POSPARMS 1 +#define VT_ARRAYVAR 2 +#define VT_ARRAYMEMBER 3 +#define VT_ASSOCVAR 4 + +#define VT_STARSUB 128 /* $* or ${array[*]} -- used to split */ + +/* Flags for quoted_strchr */ +#define ST_BACKSL 0x01 +#define ST_CTLESC 0x02 +#define ST_SQUOTE 0x04 /* unused yet */ +#define ST_DQUOTE 0x08 /* unused yet */ + +/* Flags for the `pflags' argument to param_expand() */ +#define PF_NOCOMSUB 0x01 /* Do not perform command substitution */ +#define PF_IGNUNBOUND 0x02 /* ignore unbound vars even if -u set */ +#define PF_NOSPLIT2 0x04 /* same as W_NOSPLIT2 */ +#define PF_ASSIGNRHS 0x08 /* same as W_ASSIGNRHS */ + +/* These defs make it easier to use the editor. */ +#define LBRACE '{' +#define RBRACE '}' +#define LPAREN '(' +#define RPAREN ')' + +#if defined (HANDLE_MULTIBYTE) +#define WLPAREN L'(' +#define WRPAREN L')' +#endif + +/* Evaluates to 1 if C is one of the shell's special parameters whose length + can be taken, but is also one of the special expansion characters. */ +#define VALID_SPECIAL_LENGTH_PARAM(c) \ + ((c) == '-' || (c) == '?' || (c) == '#') + +/* Evaluates to 1 if C is one of the shell's special parameters for which an + indirect variable reference may be made. */ +#define VALID_INDIR_PARAM(c) \ + ((posixly_correct == 0 && (c) == '#') || (posixly_correct == 0 && (c) == '?') || (c) == '@' || (c) == '*') + +/* Evaluates to 1 if C is one of the OP characters that follows the parameter + in ${parameter[:]OPword}. */ +#define VALID_PARAM_EXPAND_CHAR(c) (sh_syntaxtab[(unsigned char)c] & CSUBSTOP) + +/* Evaluates to 1 if this is one of the shell's special variables. */ +#define SPECIAL_VAR(name, wi) \ + ((DIGIT (*name) && all_digits (name)) || \ + (name[1] == '\0' && (sh_syntaxtab[(unsigned char)*name] & CSPECVAR)) || \ + (wi && name[2] == '\0' && VALID_INDIR_PARAM (name[1]))) + +/* An expansion function that takes a string and a quoted flag and returns + a WORD_LIST *. Used as the type of the third argument to + expand_string_if_necessary(). */ +typedef WORD_LIST *EXPFUNC __P((char *, int)); + +/* Process ID of the last command executed within command substitution. */ +pid_t last_command_subst_pid = NO_PID; +pid_t current_command_subst_pid = NO_PID; + +/* Variables used to keep track of the characters in IFS. */ +SHELL_VAR *ifs_var; +char *ifs_value; +unsigned char ifs_cmap[UCHAR_MAX + 1]; + +#if defined (HANDLE_MULTIBYTE) +unsigned char ifs_firstc[MB_LEN_MAX]; +size_t ifs_firstc_len; +#else +unsigned char ifs_firstc; +#endif + +/* Sentinel to tell when we are performing variable assignments preceding a + command name and putting them into the environment. Used to make sure + we use the temporary environment when looking up variable values. */ +int assigning_in_environment; + +/* Used to hold a list of variable assignments preceding a command. Global + so the SIGCHLD handler in jobs.c can unwind-protect it when it runs a + SIGCHLD trap and so it can be saved and restored by the trap handlers. */ +WORD_LIST *subst_assign_varlist = (WORD_LIST *)NULL; + +/* Extern functions and variables from different files. */ +extern int last_command_exit_value, last_command_exit_signal; +extern int subshell_environment, line_number; +extern int subshell_level, parse_and_execute_level, sourcelevel; +extern int eof_encountered; +extern int return_catch_flag, return_catch_value; +extern pid_t dollar_dollar_pid; +extern int posixly_correct; +extern char *this_command_name; +extern struct fd_bitmap *current_fds_to_close; +extern int wordexp_only; +extern int expanding_redir; +extern int tempenv_assign_error; +extern int builtin_ignoring_errexit; + +#if !defined (HAVE_WCSDUP) && defined (HANDLE_MULTIBYTE) +extern wchar_t *wcsdup __P((const wchar_t *)); +#endif + +/* Non-zero means to allow unmatched globbed filenames to expand to + a null file. */ +int allow_null_glob_expansion; + +/* Non-zero means to throw an error when globbing fails to match anything. */ +int fail_glob_expansion; + +#if 0 +/* Variables to keep track of which words in an expanded word list (the + output of expand_word_list_internal) are the result of globbing + expansions. GLOB_ARGV_FLAGS is used by execute_cmd.c. + (CURRENTLY UNUSED). */ +char *glob_argv_flags; +static int glob_argv_flags_size; +#endif + +static WORD_LIST expand_word_error, expand_word_fatal; +static WORD_DESC expand_wdesc_error, expand_wdesc_fatal; +static char expand_param_error, expand_param_fatal; +static char extract_string_error, extract_string_fatal; + +/* Tell the expansion functions to not longjmp back to top_level on fatal + errors. Enabled when doing completion and prompt string expansion. */ +static int no_longjmp_on_fatal_error = 0; + +/* Set by expand_word_unsplit; used to inhibit splitting and re-joining + $* on $IFS, primarily when doing assignment statements. */ +static int expand_no_split_dollar_star = 0; + +/* A WORD_LIST of words to be expanded by expand_word_list_internal, + without any leading variable assignments. */ +static WORD_LIST *garglist = (WORD_LIST *)NULL; + +static char *quoted_substring __P((char *, int, int)); +static int quoted_strlen __P((char *)); +static char *quoted_strchr __P((char *, int, int)); + +static char *expand_string_if_necessary __P((char *, int, EXPFUNC *)); +static inline char *expand_string_to_string_internal __P((char *, int, EXPFUNC *)); +static WORD_LIST *call_expand_word_internal __P((WORD_DESC *, int, int, int *, int *)); +static WORD_LIST *expand_string_internal __P((char *, int)); +static WORD_LIST *expand_string_leave_quoted __P((char *, int)); +static WORD_LIST *expand_string_for_rhs __P((char *, int, int *, int *)); + +static WORD_LIST *list_quote_escapes __P((WORD_LIST *)); +static char *make_quoted_char __P((int)); +static WORD_LIST *quote_list __P((WORD_LIST *)); + +static int unquoted_substring __P((char *, char *)); +static int unquoted_member __P((int, char *)); + +#if defined (ARRAY_VARS) +static SHELL_VAR *do_compound_assignment __P((char *, char *, int)); +#endif +static int do_assignment_internal __P((const WORD_DESC *, int)); + +static char *string_extract_verbatim __P((char *, size_t, int *, char *, int)); +static char *string_extract __P((char *, int *, char *, int)); +static char *string_extract_double_quoted __P((char *, int *, int)); +static inline char *string_extract_single_quoted __P((char *, int *)); +static inline int skip_single_quoted __P((const char *, size_t, int)); +static int skip_double_quoted __P((char *, size_t, int)); +static char *extract_delimited_string __P((char *, int *, char *, char *, char *, int)); +static char *extract_dollar_brace_string __P((char *, int *, int, int)); +static int skip_matched_pair __P((const char *, int, int, int, int)); + +static char *pos_params __P((char *, int, int, int)); + +static unsigned char *mb_getcharlens __P((char *, int)); + +static char *remove_upattern __P((char *, char *, int)); +#if defined (HANDLE_MULTIBYTE) +static wchar_t *remove_wpattern __P((wchar_t *, size_t, wchar_t *, int)); +#endif +static char *remove_pattern __P((char *, char *, int)); + +static int match_upattern __P((char *, char *, int, char **, char **)); +#if defined (HANDLE_MULTIBYTE) +static int match_wpattern __P((wchar_t *, char **, size_t, wchar_t *, int, char **, char **)); +#endif +static int match_pattern __P((char *, char *, int, char **, char **)); +static int getpatspec __P((int, char *)); +static char *getpattern __P((char *, int, int)); +static char *variable_remove_pattern __P((char *, char *, int, int)); +static char *list_remove_pattern __P((WORD_LIST *, char *, int, int, int)); +static char *parameter_list_remove_pattern __P((int, char *, int, int)); +#ifdef ARRAY_VARS +static char *array_remove_pattern __P((SHELL_VAR *, char *, int, char *, int)); +#endif +static char *parameter_brace_remove_pattern __P((char *, char *, int, char *, int, int, int)); + +static char *process_substitute __P((char *, int)); + +static char *read_comsub __P((int, int, int *)); + +#ifdef ARRAY_VARS +static arrayind_t array_length_reference __P((char *)); +#endif + +static int valid_brace_expansion_word __P((char *, int)); +static int chk_atstar __P((char *, int, int *, int *)); +static int chk_arithsub __P((const char *, int)); + +static WORD_DESC *parameter_brace_expand_word __P((char *, int, int, int, arrayind_t *)); +static WORD_DESC *parameter_brace_expand_indir __P((char *, int, int, int *, int *)); +static WORD_DESC *parameter_brace_expand_rhs __P((char *, char *, int, int, int *, int *)); +static void parameter_brace_expand_error __P((char *, char *)); + +static int valid_length_expression __P((char *)); +static intmax_t parameter_brace_expand_length __P((char *)); + +static char *skiparith __P((char *, int)); +static int verify_substring_values __P((SHELL_VAR *, char *, char *, int, intmax_t *, intmax_t *)); +static int get_var_and_type __P((char *, char *, arrayind_t, int, int, SHELL_VAR **, char **)); +static char *mb_substring __P((char *, int, int)); +static char *parameter_brace_substring __P((char *, char *, int, char *, int, int)); + +static int shouldexp_replacement __P((char *)); + +static char *pos_params_pat_subst __P((char *, char *, char *, int)); + +static char *parameter_brace_patsub __P((char *, char *, int, char *, int, int)); + +static char *pos_params_casemod __P((char *, char *, int, int)); +static char *parameter_brace_casemod __P((char *, char *, int, int, char *, int, int)); + +static WORD_DESC *parameter_brace_expand __P((char *, int *, int, int, int *, int *)); +static WORD_DESC *param_expand __P((char *, int *, int, int *, int *, int *, int *, int)); + +static WORD_LIST *expand_word_internal __P((WORD_DESC *, int, int, int *, int *)); + +static WORD_LIST *word_list_split __P((WORD_LIST *)); + +static void exp_jump_to_top_level __P((int)); + +static WORD_LIST *separate_out_assignments __P((WORD_LIST *)); +static WORD_LIST *glob_expand_word_list __P((WORD_LIST *, int)); +#ifdef BRACE_EXPANSION +static WORD_LIST *brace_expand_word_list __P((WORD_LIST *, int)); +#endif +#if defined (ARRAY_VARS) +static int make_internal_declare __P((char *, char *)); +#endif +static WORD_LIST *shell_expand_word_list __P((WORD_LIST *, int)); +static WORD_LIST *expand_word_list_internal __P((WORD_LIST *, int)); + +/* **************************************************************** */ +/* */ +/* Utility Functions */ +/* */ +/* **************************************************************** */ + +#if defined (DEBUG) +void +dump_word_flags (flags) + int flags; +{ + int f; + + f = flags; + fprintf (stderr, "%d -> ", f); + if (f & W_ASSIGNASSOC) + { + f &= ~W_ASSIGNASSOC; + fprintf (stderr, "W_ASSIGNASSOC%s", f ? "|" : ""); + } + if (f & W_ASSIGNARRAY) + { + f &= ~W_ASSIGNARRAY; + fprintf (stderr, "W_ASSIGNARRAY%s", f ? "|" : ""); + } + if (f & W_HASCTLESC) + { + f &= ~W_HASCTLESC; + fprintf (stderr, "W_HASCTLESC%s", f ? "|" : ""); + } + if (f & W_NOPROCSUB) + { + f &= ~W_NOPROCSUB; + fprintf (stderr, "W_NOPROCSUB%s", f ? "|" : ""); + } + if (f & W_DQUOTE) + { + f &= ~W_DQUOTE; + fprintf (stderr, "W_DQUOTE%s", f ? "|" : ""); + } + if (f & W_HASQUOTEDNULL) + { + f &= ~W_HASQUOTEDNULL; + fprintf (stderr, "W_HASQUOTEDNULL%s", f ? "|" : ""); + } + if (f & W_ASSIGNARG) + { + f &= ~W_ASSIGNARG; + fprintf (stderr, "W_ASSIGNARG%s", f ? "|" : ""); + } + if (f & W_ASSNBLTIN) + { + f &= ~W_ASSNBLTIN; + fprintf (stderr, "W_ASSNBLTIN%s", f ? "|" : ""); + } + if (f & W_ASSNGLOBAL) + { + f &= ~W_ASSNGLOBAL; + fprintf (stderr, "W_ASSNGLOBAL%s", f ? "|" : ""); + } + if (f & W_COMPASSIGN) + { + f &= ~W_COMPASSIGN; + fprintf (stderr, "W_COMPASSIGN%s", f ? "|" : ""); + } + if (f & W_NOEXPAND) + { + f &= ~W_NOEXPAND; + fprintf (stderr, "W_NOEXPAND%s", f ? "|" : ""); + } + if (f & W_ITILDE) + { + f &= ~W_ITILDE; + fprintf (stderr, "W_ITILDE%s", f ? "|" : ""); + } + if (f & W_NOTILDE) + { + f &= ~W_NOTILDE; + fprintf (stderr, "W_NOTILDE%s", f ? "|" : ""); + } + if (f & W_ASSIGNRHS) + { + f &= ~W_ASSIGNRHS; + fprintf (stderr, "W_ASSIGNRHS%s", f ? "|" : ""); + } + if (f & W_NOCOMSUB) + { + f &= ~W_NOCOMSUB; + fprintf (stderr, "W_NOCOMSUB%s", f ? "|" : ""); + } + if (f & W_DOLLARSTAR) + { + f &= ~W_DOLLARSTAR; + fprintf (stderr, "W_DOLLARSTAR%s", f ? "|" : ""); + } + if (f & W_DOLLARAT) + { + f &= ~W_DOLLARAT; + fprintf (stderr, "W_DOLLARAT%s", f ? "|" : ""); + } + if (f & W_TILDEEXP) + { + f &= ~W_TILDEEXP; + fprintf (stderr, "W_TILDEEXP%s", f ? "|" : ""); + } + if (f & W_NOSPLIT2) + { + f &= ~W_NOSPLIT2; + fprintf (stderr, "W_NOSPLIT2%s", f ? "|" : ""); + } + if (f & W_NOSPLIT) + { + f &= ~W_NOSPLIT; + fprintf (stderr, "W_NOSPLIT%s", f ? "|" : ""); + } + if (f & W_NOBRACE) + { + f &= ~W_NOBRACE; + fprintf (stderr, "W_NOBRACE%s", f ? "|" : ""); + } + if (f & W_NOGLOB) + { + f &= ~W_NOGLOB; + fprintf (stderr, "W_NOGLOB%s", f ? "|" : ""); + } + if (f & W_GLOBEXP) + { + f &= ~W_GLOBEXP; + fprintf (stderr, "W_GLOBEXP%s", f ? "|" : ""); + } + if (f & W_ASSIGNMENT) + { + f &= ~W_ASSIGNMENT; + fprintf (stderr, "W_ASSIGNMENT%s", f ? "|" : ""); + } + if (f & W_QUOTED) + { + f &= ~W_QUOTED; + fprintf (stderr, "W_QUOTED%s", f ? "|" : ""); + } + if (f & W_HASDOLLAR) + { + f &= ~W_HASDOLLAR; + fprintf (stderr, "W_HASDOLLAR%s", f ? "|" : ""); + } + fprintf (stderr, "\n"); + fflush (stderr); +} +#endif + +#ifdef INCLUDE_UNUSED +static char * +quoted_substring (string, start, end) + char *string; + int start, end; +{ + register int len, l; + register char *result, *s, *r; + + len = end - start; + + /* Move to string[start], skipping quoted characters. */ + for (s = string, l = 0; *s && l < start; ) + { + if (*s == CTLESC) + { + s++; + continue; + } + l++; + if (*s == 0) + break; + } + + r = result = (char *)xmalloc (2*len + 1); /* save room for quotes */ + + /* Copy LEN characters, including quote characters. */ + s = string + l; + for (l = 0; l < len; s++) + { + if (*s == CTLESC) + *r++ = *s++; + *r++ = *s; + l++; + if (*s == 0) + break; + } + *r = '\0'; + return result; +} +#endif + +#ifdef INCLUDE_UNUSED +/* Return the length of S, skipping over quoted characters */ +static int +quoted_strlen (s) + char *s; +{ + register char *p; + int i; + + i = 0; + for (p = s; *p; p++) + { + if (*p == CTLESC) + { + p++; + if (*p == 0) + return (i + 1); + } + i++; + } + + return i; +} +#endif + +/* Find the first occurrence of character C in string S, obeying shell + quoting rules. If (FLAGS & ST_BACKSL) is non-zero, backslash-escaped + characters are skipped. If (FLAGS & ST_CTLESC) is non-zero, characters + escaped with CTLESC are skipped. */ +static char * +quoted_strchr (s, c, flags) + char *s; + int c, flags; +{ + register char *p; + + for (p = s; *p; p++) + { + if (((flags & ST_BACKSL) && *p == '\\') + || ((flags & ST_CTLESC) && *p == CTLESC)) + { + p++; + if (*p == '\0') + return ((char *)NULL); + continue; + } + else if (*p == c) + return p; + } + return ((char *)NULL); +} + +/* Return 1 if CHARACTER appears in an unquoted portion of + STRING. Return 0 otherwise. CHARACTER must be a single-byte character. */ +static int +unquoted_member (character, string) + int character; + char *string; +{ + size_t slen; + int sindex, c; + DECLARE_MBSTATE; + + slen = strlen (string); + sindex = 0; + while (c = string[sindex]) + { + if (c == character) + return (1); + + switch (c) + { + default: + ADVANCE_CHAR (string, slen, sindex); + break; + + case '\\': + sindex++; + if (string[sindex]) + ADVANCE_CHAR (string, slen, sindex); + break; + + case '\'': + sindex = skip_single_quoted (string, slen, ++sindex); + break; + + case '"': + sindex = skip_double_quoted (string, slen, ++sindex); + break; + } + } + return (0); +} + +/* Return 1 if SUBSTR appears in an unquoted portion of STRING. */ +static int +unquoted_substring (substr, string) + char *substr, *string; +{ + size_t slen; + int sindex, c, sublen; + DECLARE_MBSTATE; + + if (substr == 0 || *substr == '\0') + return (0); + + slen = strlen (string); + sublen = strlen (substr); + for (sindex = 0; c = string[sindex]; ) + { + if (STREQN (string + sindex, substr, sublen)) + return (1); + + switch (c) + { + case '\\': + sindex++; + if (string[sindex]) + ADVANCE_CHAR (string, slen, sindex); + break; + + case '\'': + sindex = skip_single_quoted (string, slen, ++sindex); + break; + + case '"': + sindex = skip_double_quoted (string, slen, ++sindex); + break; + + default: + ADVANCE_CHAR (string, slen, sindex); + break; + } + } + return (0); +} + +/* Most of the substitutions must be done in parallel. In order + to avoid using tons of unclear goto's, I have some functions + for manipulating malloc'ed strings. They all take INDX, a + pointer to an integer which is the offset into the string + where manipulation is taking place. They also take SIZE, a + pointer to an integer which is the current length of the + character array for this string. */ + +/* Append SOURCE to TARGET at INDEX. SIZE is the current amount + of space allocated to TARGET. SOURCE can be NULL, in which + case nothing happens. Gets rid of SOURCE by freeing it. + Returns TARGET in case the location has changed. */ +INLINE char * +sub_append_string (source, target, indx, size) + char *source, *target; + int *indx, *size; +{ + if (source) + { + int srclen, n; + + srclen = STRLEN (source); + if (srclen >= (int)(*size - *indx)) + { + n = srclen + *indx; + n = (n + DEFAULT_ARRAY_SIZE) - (n % DEFAULT_ARRAY_SIZE); + target = (char *)xrealloc (target, (*size = n)); + } + + FASTCOPY (source, target + *indx, srclen); + *indx += srclen; + target[*indx] = '\0'; + + free (source); + } + return (target); +} + +#if 0 +/* UNUSED */ +/* Append the textual representation of NUMBER to TARGET. + INDX and SIZE are as in SUB_APPEND_STRING. */ +char * +sub_append_number (number, target, indx, size) + intmax_t number; + int *indx, *size; + char *target; +{ + char *temp; + + temp = itos (number); + return (sub_append_string (temp, target, indx, size)); +} +#endif + +/* Extract a substring from STRING, starting at SINDEX and ending with + one of the characters in CHARLIST. Don't make the ending character + part of the string. Leave SINDEX pointing at the ending character. + Understand about backslashes in the string. If (flags & SX_VARNAME) + is non-zero, and array variables have been compiled into the shell, + everything between a `[' and a corresponding `]' is skipped over. + If (flags & SX_NOALLOC) is non-zero, don't return the substring, just + update SINDEX. If (flags & SX_REQMATCH) is non-zero, the string must + contain a closing character from CHARLIST. */ +static char * +string_extract (string, sindex, charlist, flags) + char *string; + int *sindex; + char *charlist; + int flags; +{ + register int c, i; + int found; + size_t slen; + char *temp; + DECLARE_MBSTATE; + + slen = (MB_CUR_MAX > 1) ? strlen (string + *sindex) + *sindex : 0; + i = *sindex; + found = 0; + while (c = string[i]) + { + if (c == '\\') + { + if (string[i + 1]) + i++; + else + break; + } +#if defined (ARRAY_VARS) + else if ((flags & SX_VARNAME) && c == '[') + { + int ni; + /* If this is an array subscript, skip over it and continue. */ + ni = skipsubscript (string, i, 0); + if (string[ni] == ']') + i = ni; + } +#endif + else if (MEMBER (c, charlist)) + { + found = 1; + break; + } + + ADVANCE_CHAR (string, slen, i); + } + + /* If we had to have a matching delimiter and didn't find one, return an + error and let the caller deal with it. */ + if ((flags & SX_REQMATCH) && found == 0) + { + *sindex = i; + return (&extract_string_error); + } + + temp = (flags & SX_NOALLOC) ? (char *)NULL : substring (string, *sindex, i); + *sindex = i; + + return (temp); +} + +/* Extract the contents of STRING as if it is enclosed in double quotes. + SINDEX, when passed in, is the offset of the character immediately + following the opening double quote; on exit, SINDEX is left pointing after + the closing double quote. If STRIPDQ is non-zero, unquoted double + quotes are stripped and the string is terminated by a null byte. + Backslashes between the embedded double quotes are processed. If STRIPDQ + is zero, an unquoted `"' terminates the string. */ +static char * +string_extract_double_quoted (string, sindex, stripdq) + char *string; + int *sindex, stripdq; +{ + size_t slen; + char *send; + int j, i, t; + unsigned char c; + char *temp, *ret; /* The new string we return. */ + int pass_next, backquote, si; /* State variables for the machine. */ + int dquote; + DECLARE_MBSTATE; + + slen = strlen (string + *sindex) + *sindex; + send = string + slen; + + pass_next = backquote = dquote = 0; + temp = (char *)xmalloc (1 + slen - *sindex); + + j = 0; + i = *sindex; + while (c = string[i]) + { + /* Process a character that was quoted by a backslash. */ + if (pass_next) + { + /* XXX - take another look at this in light of Interp 221 */ + /* Posix.2 sez: + + ``The backslash shall retain its special meaning as an escape + character only when followed by one of the characters: + $ ` " \ <newline>''. + + If STRIPDQ is zero, we handle the double quotes here and let + expand_word_internal handle the rest. If STRIPDQ is non-zero, + we have already been through one round of backslash stripping, + and want to strip these backslashes only if DQUOTE is non-zero, + indicating that we are inside an embedded double-quoted string. */ + + /* If we are in an embedded quoted string, then don't strip + backslashes before characters for which the backslash + retains its special meaning, but remove backslashes in + front of other characters. If we are not in an + embedded quoted string, don't strip backslashes at all. + This mess is necessary because the string was already + surrounded by double quotes (and sh has some really weird + quoting rules). + The returned string will be run through expansion as if + it were double-quoted. */ + if ((stripdq == 0 && c != '"') || + (stripdq && ((dquote && (sh_syntaxtab[c] & CBSDQUOTE)) || dquote == 0))) + temp[j++] = '\\'; + pass_next = 0; + +add_one_character: + COPY_CHAR_I (temp, j, string, send, i); + continue; + } + + /* A backslash protects the next character. The code just above + handles preserving the backslash in front of any character but + a double quote. */ + if (c == '\\') + { + pass_next++; + i++; + continue; + } + + /* Inside backquotes, ``the portion of the quoted string from the + initial backquote and the characters up to the next backquote + that is not preceded by a backslash, having escape characters + removed, defines that command''. */ + if (backquote) + { + if (c == '`') + backquote = 0; + temp[j++] = c; + i++; + continue; + } + + if (c == '`') + { + temp[j++] = c; + backquote++; + i++; + continue; + } + + /* Pass everything between `$(' and the matching `)' or a quoted + ${ ... } pair through according to the Posix.2 specification. */ + if (c == '$' && ((string[i + 1] == LPAREN) || (string[i + 1] == LBRACE))) + { + int free_ret = 1; + + si = i + 2; + if (string[i + 1] == LPAREN) + ret = extract_command_subst (string, &si, 0); + else + ret = extract_dollar_brace_string (string, &si, Q_DOUBLE_QUOTES, 0); + + temp[j++] = '$'; + temp[j++] = string[i + 1]; + + /* Just paranoia; ret will not be 0 unless no_longjmp_on_fatal_error + is set. */ + if (ret == 0 && no_longjmp_on_fatal_error) + { + free_ret = 0; + ret = string + i + 2; + } + + for (t = 0; ret[t]; t++, j++) + temp[j] = ret[t]; + temp[j] = string[si]; + + if (string[si]) + { + j++; + i = si + 1; + } + else + i = si; + + if (free_ret) + free (ret); + continue; + } + + /* Add any character but a double quote to the quoted string we're + accumulating. */ + if (c != '"') + goto add_one_character; + + /* c == '"' */ + if (stripdq) + { + dquote ^= 1; + i++; + continue; + } + + break; + } + temp[j] = '\0'; + + /* Point to after the closing quote. */ + if (c) + i++; + *sindex = i; + + return (temp); +} + +/* This should really be another option to string_extract_double_quoted. */ +static int +skip_double_quoted (string, slen, sind) + char *string; + size_t slen; + int sind; +{ + int c, i; + char *ret; + int pass_next, backquote, si; + DECLARE_MBSTATE; + + pass_next = backquote = 0; + i = sind; + while (c = string[i]) + { + if (pass_next) + { + pass_next = 0; + ADVANCE_CHAR (string, slen, i); + continue; + } + else if (c == '\\') + { + pass_next++; + i++; + continue; + } + else if (backquote) + { + if (c == '`') + backquote = 0; + ADVANCE_CHAR (string, slen, i); + continue; + } + else if (c == '`') + { + backquote++; + i++; + continue; + } + else if (c == '$' && ((string[i + 1] == LPAREN) || (string[i + 1] == LBRACE))) + { + si = i + 2; + if (string[i + 1] == LPAREN) + ret = extract_command_subst (string, &si, SX_NOALLOC); + else + ret = extract_dollar_brace_string (string, &si, Q_DOUBLE_QUOTES, SX_NOALLOC); + + i = si + 1; + continue; + } + else if (c != '"') + { + ADVANCE_CHAR (string, slen, i); + continue; + } + else + break; + } + + if (c) + i++; + + return (i); +} + +/* Extract the contents of STRING as if it is enclosed in single quotes. + SINDEX, when passed in, is the offset of the character immediately + following the opening single quote; on exit, SINDEX is left pointing after + the closing single quote. */ +static inline char * +string_extract_single_quoted (string, sindex) + char *string; + int *sindex; +{ + register int i; + size_t slen; + char *t; + DECLARE_MBSTATE; + + /* Don't need slen for ADVANCE_CHAR unless multibyte chars possible. */ + slen = (MB_CUR_MAX > 1) ? strlen (string + *sindex) + *sindex : 0; + i = *sindex; + while (string[i] && string[i] != '\'') + ADVANCE_CHAR (string, slen, i); + + t = substring (string, *sindex, i); + + if (string[i]) + i++; + *sindex = i; + + return (t); +} + +static inline int +skip_single_quoted (string, slen, sind) + const char *string; + size_t slen; + int sind; +{ + register int c; + DECLARE_MBSTATE; + + c = sind; + while (string[c] && string[c] != '\'') + ADVANCE_CHAR (string, slen, c); + + if (string[c]) + c++; + return c; +} + +/* Just like string_extract, but doesn't hack backslashes or any of + that other stuff. Obeys CTLESC quoting. Used to do splitting on $IFS. */ +static char * +string_extract_verbatim (string, slen, sindex, charlist, flags) + char *string; + size_t slen; + int *sindex; + char *charlist; + int flags; +{ + register int i; +#if defined (HANDLE_MULTIBYTE) + size_t clen; + wchar_t *wcharlist; +#endif + int c; + char *temp; + DECLARE_MBSTATE; + + if (charlist[0] == '\'' && charlist[1] == '\0') + { + temp = string_extract_single_quoted (string, sindex); + --*sindex; /* leave *sindex at separator character */ + return temp; + } + + i = *sindex; +#if 0 + /* See how the MBLEN and ADVANCE_CHAR macros work to understand why we need + this only if MB_CUR_MAX > 1. */ + slen = (MB_CUR_MAX > 1) ? strlen (string + *sindex) + *sindex : 1; +#endif +#if defined (HANDLE_MULTIBYTE) + clen = strlen (charlist); + wcharlist = 0; +#endif + while (c = string[i]) + { +#if defined (HANDLE_MULTIBYTE) + size_t mblength; +#endif + if ((flags & SX_NOCTLESC) == 0 && c == CTLESC) + { + i += 2; + continue; + } + /* Even if flags contains SX_NOCTLESC, we let CTLESC quoting CTLNUL + through, to protect the CTLNULs from later calls to + remove_quoted_nulls. */ + else if ((flags & SX_NOESCCTLNUL) == 0 && c == CTLESC && string[i+1] == CTLNUL) + { + i += 2; + continue; + } + +#if defined (HANDLE_MULTIBYTE) + mblength = MBLEN (string + i, slen - i); + if (mblength > 1) + { + wchar_t wc; + mblength = mbtowc (&wc, string + i, slen - i); + if (MB_INVALIDCH (mblength)) + { + if (MEMBER (c, charlist)) + break; + } + else + { + if (wcharlist == 0) + { + size_t len; + len = mbstowcs (wcharlist, charlist, 0); + if (len == -1) + len = 0; + wcharlist = (wchar_t *)xmalloc (sizeof (wchar_t) * (len + 1)); + mbstowcs (wcharlist, charlist, len + 1); + } + + if (wcschr (wcharlist, wc)) + break; + } + } + else +#endif + if (MEMBER (c, charlist)) + break; + + ADVANCE_CHAR (string, slen, i); + } + +#if defined (HANDLE_MULTIBYTE) + FREE (wcharlist); +#endif + + temp = substring (string, *sindex, i); + *sindex = i; + + return (temp); +} + +/* Extract the $( construct in STRING, and return a new string. + Start extracting at (SINDEX) as if we had just seen "$(". + Make (SINDEX) get the position of the matching ")". ) + XFLAGS is additional flags to pass to other extraction functions. */ +char * +extract_command_subst (string, sindex, xflags) + char *string; + int *sindex; + int xflags; +{ + if (string[*sindex] == LPAREN) + return (extract_delimited_string (string, sindex, "$(", "(", ")", xflags|SX_COMMAND)); /*)*/ + else + { + xflags |= (no_longjmp_on_fatal_error ? SX_NOLONGJMP : 0); + return (xparse_dolparen (string, string+*sindex, sindex, xflags)); + } +} + +/* Extract the $[ construct in STRING, and return a new string. (]) + Start extracting at (SINDEX) as if we had just seen "$[". + Make (SINDEX) get the position of the matching "]". */ +char * +extract_arithmetic_subst (string, sindex) + char *string; + int *sindex; +{ + return (extract_delimited_string (string, sindex, "$[", "[", "]", 0)); /*]*/ +} + +#if defined (PROCESS_SUBSTITUTION) +/* Extract the <( or >( construct in STRING, and return a new string. + Start extracting at (SINDEX) as if we had just seen "<(". + Make (SINDEX) get the position of the matching ")". */ /*))*/ +char * +extract_process_subst (string, starter, sindex) + char *string; + char *starter; + int *sindex; +{ + return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND)); +} +#endif /* PROCESS_SUBSTITUTION */ + +#if defined (ARRAY_VARS) +/* This can be fooled by unquoted right parens in the passed string. If + each caller verifies that the last character in STRING is a right paren, + we don't even need to call extract_delimited_string. */ +char * +extract_array_assignment_list (string, sindex) + char *string; + int *sindex; +{ + int slen; + char *ret; + + slen = strlen (string); /* ( */ + if (string[slen - 1] == ')') + { + ret = substring (string, *sindex, slen - 1); + *sindex = slen - 1; + return ret; + } + return 0; +} +#endif + +/* Extract and create a new string from the contents of STRING, a + character string delimited with OPENER and CLOSER. SINDEX is + the address of an int describing the current offset in STRING; + it should point to just after the first OPENER found. On exit, + SINDEX gets the position of the last character of the matching CLOSER. + If OPENER is more than a single character, ALT_OPENER, if non-null, + contains a character string that can also match CLOSER and thus + needs to be skipped. */ +static char * +extract_delimited_string (string, sindex, opener, alt_opener, closer, flags) + char *string; + int *sindex; + char *opener, *alt_opener, *closer; + int flags; +{ + int i, c, si; + size_t slen; + char *t, *result; + int pass_character, nesting_level, in_comment; + int len_closer, len_opener, len_alt_opener; + DECLARE_MBSTATE; + + slen = strlen (string + *sindex) + *sindex; + len_opener = STRLEN (opener); + len_alt_opener = STRLEN (alt_opener); + len_closer = STRLEN (closer); + + pass_character = in_comment = 0; + + nesting_level = 1; + i = *sindex; + + while (nesting_level) + { + c = string[i]; + + if (c == 0) + break; + + if (in_comment) + { + if (c == '\n') + in_comment = 0; + ADVANCE_CHAR (string, slen, i); + continue; + } + + if (pass_character) /* previous char was backslash */ + { + pass_character = 0; + ADVANCE_CHAR (string, slen, i); + continue; + } + + /* Not exactly right yet; should handle shell metacharacters and + multibyte characters, too. See COMMENT_BEGIN define in parse.y */ + if ((flags & SX_COMMAND) && c == '#' && (i == 0 || string[i - 1] == '\n' || shellblank (string[i - 1]))) + { + in_comment = 1; + ADVANCE_CHAR (string, slen, i); + continue; + } + + if (c == CTLESC || c == '\\') + { + pass_character++; + i++; + continue; + } + + /* Process a nested command substitution, but only if we're parsing an + arithmetic substitution. */ + if ((flags & SX_COMMAND) && string[i] == '$' && string[i+1] == LPAREN) + { + si = i + 2; + t = extract_command_subst (string, &si, flags|SX_NOALLOC); + i = si + 1; + continue; + } + + /* Process a nested OPENER. */ + if (STREQN (string + i, opener, len_opener)) + { + si = i + len_opener; + t = extract_delimited_string (string, &si, opener, alt_opener, closer, flags|SX_NOALLOC); + i = si + 1; + continue; + } + + /* Process a nested ALT_OPENER */ + if (len_alt_opener && STREQN (string + i, alt_opener, len_alt_opener)) + { + si = i + len_alt_opener; + t = extract_delimited_string (string, &si, alt_opener, alt_opener, closer, flags|SX_NOALLOC); + i = si + 1; + continue; + } + + /* If the current substring terminates the delimited string, decrement + the nesting level. */ + if (STREQN (string + i, closer, len_closer)) + { + i += len_closer - 1; /* move to last byte of the closer */ + nesting_level--; + if (nesting_level == 0) + break; + } + + /* Pass old-style command substitution through verbatim. */ + if (c == '`') + { + si = i + 1; + t = string_extract (string, &si, "`", flags|SX_NOALLOC); + i = si + 1; + continue; + } + + /* Pass single-quoted and double-quoted strings through verbatim. */ + if (c == '\'' || c == '"') + { + si = i + 1; + i = (c == '\'') ? skip_single_quoted (string, slen, si) + : skip_double_quoted (string, slen, si); + continue; + } + + /* move past this character, which was not special. */ + ADVANCE_CHAR (string, slen, i); + } + + if (c == 0 && nesting_level) + { + if (no_longjmp_on_fatal_error == 0) + { + last_command_exit_value = EXECUTION_FAILURE; + report_error (_("bad substitution: no closing `%s' in %s"), closer, string); + exp_jump_to_top_level (DISCARD); + } + else + { + *sindex = i; + return (char *)NULL; + } + } + + si = i - *sindex - len_closer + 1; + if (flags & SX_NOALLOC) + result = (char *)NULL; + else + { + result = (char *)xmalloc (1 + si); + strncpy (result, string + *sindex, si); + result[si] = '\0'; + } + *sindex = i; + + return (result); +} + +/* Extract a parameter expansion expression within ${ and } from STRING. + Obey the Posix.2 rules for finding the ending `}': count braces while + skipping over enclosed quoted strings and command substitutions. + SINDEX is the address of an int describing the current offset in STRING; + it should point to just after the first `{' found. On exit, SINDEX + gets the position of the matching `}'. QUOTED is non-zero if this + occurs inside double quotes. */ +/* XXX -- this is very similar to extract_delimited_string -- XXX */ +static char * +extract_dollar_brace_string (string, sindex, quoted, flags) + char *string; + int *sindex, quoted, flags; +{ + register int i, c; + size_t slen; + int pass_character, nesting_level, si, dolbrace_state; + char *result, *t; + DECLARE_MBSTATE; + + pass_character = 0; + nesting_level = 1; + slen = strlen (string + *sindex) + *sindex; + + /* The handling of dolbrace_state needs to agree with the code in parse.y: + parse_matched_pair(). The different initial value is to handle the + case where this function is called to parse the word in + ${param op word} (SX_WORD). */ + dolbrace_state = (flags & SX_WORD) ? DOLBRACE_WORD : DOLBRACE_PARAM; + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && (flags & SX_POSIXEXP)) + dolbrace_state = DOLBRACE_QUOTE; + + i = *sindex; + while (c = string[i]) + { + if (pass_character) + { + pass_character = 0; + ADVANCE_CHAR (string, slen, i); + continue; + } + + /* CTLESCs and backslashes quote the next character. */ + if (c == CTLESC || c == '\\') + { + pass_character++; + i++; + continue; + } + + if (string[i] == '$' && string[i+1] == LBRACE) + { + nesting_level++; + i += 2; + continue; + } + + if (c == RBRACE) + { + nesting_level--; + if (nesting_level == 0) + break; + i++; + continue; + } + + /* Pass the contents of old-style command substitutions through + verbatim. */ + if (c == '`') + { + si = i + 1; + t = string_extract (string, &si, "`", flags|SX_NOALLOC); + i = si + 1; + continue; + } + + /* Pass the contents of new-style command substitutions and + arithmetic substitutions through verbatim. */ + if (string[i] == '$' && string[i+1] == LPAREN) + { + si = i + 2; + t = extract_command_subst (string, &si, flags|SX_NOALLOC); + i = si + 1; + continue; + } + +#if 0 + /* Pass the contents of single-quoted and double-quoted strings + through verbatim. */ + if (c == '\'' || c == '"') + { + si = i + 1; + i = (c == '\'') ? skip_single_quoted (string, slen, si) + : skip_double_quoted (string, slen, si); + /* skip_XXX_quoted leaves index one past close quote */ + continue; + } +#else /* XXX - bash-4.2 */ + /* Pass the contents of double-quoted strings through verbatim. */ + if (c == '"') + { + si = i + 1; + i = skip_double_quoted (string, slen, si); + /* skip_XXX_quoted leaves index one past close quote */ + continue; + } + + if (c == '\'') + { +/*itrace("extract_dollar_brace_string: c == single quote flags = %d quoted = %d dolbrace_state = %d", flags, quoted, dolbrace_state);*/ + if (posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ADVANCE_CHAR (string, slen, i); + else + { + si = i + 1; + i = skip_single_quoted (string, slen, si); + } + + continue; + } +#endif + + /* move past this character, which was not special. */ + ADVANCE_CHAR (string, slen, i); + + /* This logic must agree with parse.y:parse_matched_pair, since they + share the same defines. */ + if (dolbrace_state == DOLBRACE_PARAM && c == '%' && (i - *sindex) > 1) + dolbrace_state = DOLBRACE_QUOTE; + else if (dolbrace_state == DOLBRACE_PARAM && c == '#' && (i - *sindex) > 1) + dolbrace_state = DOLBRACE_QUOTE; + else if (dolbrace_state == DOLBRACE_PARAM && c == '/' && (i - *sindex) > 1) + dolbrace_state = DOLBRACE_QUOTE; + else if (dolbrace_state == DOLBRACE_PARAM && c == '^' && (i - *sindex) > 1) + dolbrace_state = DOLBRACE_QUOTE; + else if (dolbrace_state == DOLBRACE_PARAM && c == ',' && (i - *sindex) > 1) + dolbrace_state = DOLBRACE_QUOTE; + else if (dolbrace_state == DOLBRACE_PARAM && strchr ("#%^,~:-=?+/", c) != 0) + dolbrace_state = DOLBRACE_OP; + else if (dolbrace_state == DOLBRACE_OP && strchr ("#%^,~:-=?+/", c) == 0) + dolbrace_state = DOLBRACE_WORD; + } + + if (c == 0 && nesting_level) + { + if (no_longjmp_on_fatal_error == 0) + { /* { */ + last_command_exit_value = EXECUTION_FAILURE; + report_error (_("bad substitution: no closing `%s' in %s"), "}", string); + exp_jump_to_top_level (DISCARD); + } + else + { + *sindex = i; + return ((char *)NULL); + } + } + + result = (flags & SX_NOALLOC) ? (char *)NULL : substring (string, *sindex, i); + *sindex = i; + + return (result); +} + +/* Remove backslashes which are quoting backquotes from STRING. Modifies + STRING, and returns a pointer to it. */ +char * +de_backslash (string) + char *string; +{ + register size_t slen; + register int i, j, prev_i; + DECLARE_MBSTATE; + + slen = strlen (string); + i = j = 0; + + /* Loop copying string[i] to string[j], i >= j. */ + while (i < slen) + { + if (string[i] == '\\' && (string[i + 1] == '`' || string[i + 1] == '\\' || + string[i + 1] == '$')) + i++; + prev_i = i; + ADVANCE_CHAR (string, slen, i); + if (j < prev_i) + do string[j++] = string[prev_i++]; while (prev_i < i); + else + j = i; + } + string[j] = '\0'; + + return (string); +} + +#if 0 +/*UNUSED*/ +/* Replace instances of \! in a string with !. */ +void +unquote_bang (string) + char *string; +{ + register int i, j; + register char *temp; + + temp = (char *)xmalloc (1 + strlen (string)); + + for (i = 0, j = 0; (temp[j] = string[i]); i++, j++) + { + if (string[i] == '\\' && string[i + 1] == '!') + { + temp[j] = '!'; + i++; + } + } + strcpy (string, temp); + free (temp); +} +#endif + +#define CQ_RETURN(x) do { no_longjmp_on_fatal_error = 0; return (x); } while (0) + +/* This function assumes s[i] == open; returns with s[ret] == close; used to + parse array subscripts. FLAGS & 1 means to not attempt to skip over + matched pairs of quotes or backquotes, or skip word expansions; it is + intended to be used after expansion has been performed and during final + assignment parsing (see arrayfunc.c:assign_compound_array_list()). */ +static int +skip_matched_pair (string, start, open, close, flags) + const char *string; + int start, open, close, flags; +{ + int i, pass_next, backq, si, c, count; + size_t slen; + char *temp, *ss; + DECLARE_MBSTATE; + + slen = strlen (string + start) + start; + no_longjmp_on_fatal_error = 1; + + i = start + 1; /* skip over leading bracket */ + count = 1; + pass_next = backq = 0; + ss = (char *)string; + while (c = string[i]) + { + if (pass_next) + { + pass_next = 0; + if (c == 0) + CQ_RETURN(i); + ADVANCE_CHAR (string, slen, i); + continue; + } + else if (c == '\\') + { + pass_next = 1; + i++; + continue; + } + else if (backq) + { + if (c == '`') + backq = 0; + ADVANCE_CHAR (string, slen, i); + continue; + } + else if ((flags & 1) == 0 && c == '`') + { + backq = 1; + i++; + continue; + } + else if ((flags & 1) == 0 && c == open) + { + count++; + i++; + continue; + } + else if (c == close) + { + count--; + if (count == 0) + break; + i++; + continue; + } + else if ((flags & 1) == 0 && (c == '\'' || c == '"')) + { + i = (c == '\'') ? skip_single_quoted (ss, slen, ++i) + : skip_double_quoted (ss, slen, ++i); + /* no increment, the skip functions increment past the closing quote. */ + } + else if ((flags&1) == 0 && c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE)) + { + si = i + 2; + if (string[si] == '\0') + CQ_RETURN(si); + + if (string[i+1] == LPAREN) + temp = extract_delimited_string (ss, &si, "$(", "(", ")", SX_NOALLOC|SX_COMMAND); /* ) */ + else + temp = extract_dollar_brace_string (ss, &si, 0, SX_NOALLOC); + i = si; + if (string[i] == '\0') /* don't increment i past EOS in loop */ + break; + i++; + continue; + } + else + ADVANCE_CHAR (string, slen, i); + } + + CQ_RETURN(i); +} + +#if defined (ARRAY_VARS) +int +skipsubscript (string, start, flags) + const char *string; + int start, flags; +{ + return (skip_matched_pair (string, start, '[', ']', flags)); +} +#endif + +/* Skip characters in STRING until we find a character in DELIMS, and return + the index of that character. START is the index into string at which we + begin. This is similar in spirit to strpbrk, but it returns an index into + STRING and takes a starting index. This little piece of code knows quite + a lot of shell syntax. It's very similar to skip_double_quoted and other + functions of that ilk. */ +int +skip_to_delim (string, start, delims, flags) + char *string; + int start; + char *delims; + int flags; +{ + int i, pass_next, backq, si, c, invert, skipquote, skipcmd; + size_t slen; + char *temp, open[3]; + DECLARE_MBSTATE; + + slen = strlen (string + start) + start; + if (flags & SD_NOJMP) + no_longjmp_on_fatal_error = 1; + invert = (flags & SD_INVERT); + skipcmd = (flags & SD_NOSKIPCMD) == 0; + + i = start; + pass_next = backq = 0; + while (c = string[i]) + { + /* If this is non-zero, we should not let quote characters be delimiters + and the current character is a single or double quote. We should not + test whether or not it's a delimiter until after we skip single- or + double-quoted strings. */ + skipquote = ((flags & SD_NOQUOTEDELIM) && (c == '\'' || c =='"')); + if (pass_next) + { + pass_next = 0; + if (c == 0) + CQ_RETURN(i); + ADVANCE_CHAR (string, slen, i); + continue; + } + else if (c == '\\') + { + pass_next = 1; + i++; + continue; + } + else if (backq) + { + if (c == '`') + backq = 0; + ADVANCE_CHAR (string, slen, i); + continue; + } + else if (c == '`') + { + backq = 1; + i++; + continue; + } + else if (skipquote == 0 && invert == 0 && member (c, delims)) + break; + else if (c == '\'' || c == '"') + { + i = (c == '\'') ? skip_single_quoted (string, slen, ++i) + : skip_double_quoted (string, slen, ++i); + /* no increment, the skip functions increment past the closing quote. */ + } + else if (c == '$' && ((skipcmd && string[i+1] == LPAREN) || string[i+1] == LBRACE)) + { + si = i + 2; + if (string[si] == '\0') + CQ_RETURN(si); + + if (string[i+1] == LPAREN) + temp = extract_delimited_string (string, &si, "$(", "(", ")", SX_NOALLOC|SX_COMMAND); /* ) */ + else + temp = extract_dollar_brace_string (string, &si, 0, SX_NOALLOC); + i = si; + if (string[i] == '\0') /* don't increment i past EOS in loop */ + break; + i++; + continue; + } +#if defined (PROCESS_SUBSTITUTION) + else if (skipcmd && (c == '<' || c == '>') && string[i+1] == LPAREN) + { + si = i + 2; + if (string[si] == '\0') + CQ_RETURN(si); + temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si); + free (temp); /* no SX_ALLOC here */ + i = si; + if (string[i] == '\0') + break; + i++; + continue; + } +#endif /* PROCESS_SUBSTITUTION */ +#if defined (EXTENDED_GLOB) + else if ((flags & SD_EXTGLOB) && extended_glob && string[i+1] == LPAREN && member (c, "?*+!@")) + { + si = i + 2; + if (string[si] == '\0') + CQ_RETURN(si); + + open[0] = c; + open[1] = LPAREN; + open[2] = '\0'; + temp = extract_delimited_string (string, &si, open, "(", ")", SX_NOALLOC); /* ) */ + + i = si; + if (string[i] == '\0') /* don't increment i past EOS in loop */ + break; + i++; + continue; + } +#endif + else if ((skipquote || invert) && (member (c, delims) == 0)) + break; + else + ADVANCE_CHAR (string, slen, i); + } + + CQ_RETURN(i); +} + +#if defined (READLINE) +/* Return 1 if the portion of STRING ending at EINDEX is quoted (there is + an unclosed quoted string), or if the character at EINDEX is quoted + by a backslash. NO_LONGJMP_ON_FATAL_ERROR is used to flag that the various + single and double-quoted string parsing functions should not return an + error if there are unclosed quotes or braces. The characters that this + recognizes need to be the same as the contents of + rl_completer_quote_characters. */ + +int +char_is_quoted (string, eindex) + char *string; + int eindex; +{ + int i, pass_next, c; + size_t slen; + DECLARE_MBSTATE; + + slen = strlen (string); + no_longjmp_on_fatal_error = 1; + i = pass_next = 0; + while (i <= eindex) + { + c = string[i]; + + if (pass_next) + { + pass_next = 0; + if (i >= eindex) /* XXX was if (i >= eindex - 1) */ + CQ_RETURN(1); + ADVANCE_CHAR (string, slen, i); + continue; + } + else if (c == '\\') + { + pass_next = 1; + i++; + continue; + } + else if (c == '\'' || c == '"') + { + i = (c == '\'') ? skip_single_quoted (string, slen, ++i) + : skip_double_quoted (string, slen, ++i); + if (i > eindex) + CQ_RETURN(1); + /* no increment, the skip_xxx functions go one past end */ + } + else + ADVANCE_CHAR (string, slen, i); + } + + CQ_RETURN(0); +} + +int +unclosed_pair (string, eindex, openstr) + char *string; + int eindex; + char *openstr; +{ + int i, pass_next, openc, olen; + size_t slen; + DECLARE_MBSTATE; + + slen = strlen (string); + olen = strlen (openstr); + i = pass_next = openc = 0; + while (i <= eindex) + { + if (pass_next) + { + pass_next = 0; + if (i >= eindex) /* XXX was if (i >= eindex - 1) */ + return 0; + ADVANCE_CHAR (string, slen, i); + continue; + } + else if (string[i] == '\\') + { + pass_next = 1; + i++; + continue; + } + else if (STREQN (string + i, openstr, olen)) + { + openc = 1 - openc; + i += olen; + } + else if (string[i] == '\'' || string[i] == '"') + { + i = (string[i] == '\'') ? skip_single_quoted (string, slen, i) + : skip_double_quoted (string, slen, i); + if (i > eindex) + return 0; + } + else + ADVANCE_CHAR (string, slen, i); + } + return (openc); +} + +/* Split STRING (length SLEN) at DELIMS, and return a WORD_LIST with the + individual words. If DELIMS is NULL, the current value of $IFS is used + to split the string, and the function follows the shell field splitting + rules. SENTINEL is an index to look for. NWP, if non-NULL, + gets the number of words in the returned list. CWP, if non-NULL, gets + the index of the word containing SENTINEL. Non-whitespace chars in + DELIMS delimit separate fields. */ +WORD_LIST * +split_at_delims (string, slen, delims, sentinel, flags, nwp, cwp) + char *string; + int slen; + char *delims; + int sentinel, flags; + int *nwp, *cwp; +{ + int ts, te, i, nw, cw, ifs_split, dflags; + char *token, *d, *d2; + WORD_LIST *ret, *tl; + + if (string == 0 || *string == '\0') + { + if (nwp) + *nwp = 0; + if (cwp) + *cwp = 0; + return ((WORD_LIST *)NULL); + } + + d = (delims == 0) ? ifs_value : delims; + ifs_split = delims == 0; + + /* Make d2 the non-whitespace characters in delims */ + d2 = 0; + if (delims) + { + size_t slength; +#if defined (HANDLE_MULTIBYTE) + size_t mblength = 1; +#endif + DECLARE_MBSTATE; + + slength = strlen (delims); + d2 = (char *)xmalloc (slength + 1); + i = ts = 0; + while (delims[i]) + { +#if defined (HANDLE_MULTIBYTE) + mbstate_t state_bak; + state_bak = state; + mblength = MBRLEN (delims + i, slength, &state); + if (MB_INVALIDCH (mblength)) + state = state_bak; + else if (mblength > 1) + { + memcpy (d2 + ts, delims + i, mblength); + ts += mblength; + i += mblength; + slength -= mblength; + continue; + } +#endif + if (whitespace (delims[i]) == 0) + d2[ts++] = delims[i]; + + i++; + slength--; + } + d2[ts] = '\0'; + } + + ret = (WORD_LIST *)NULL; + + /* Remove sequences of whitespace characters at the start of the string, as + long as those characters are delimiters. */ + for (i = 0; member (string[i], d) && spctabnl (string[i]); i++) + ; + if (string[i] == '\0') + return (ret); + + ts = i; + nw = 0; + cw = -1; + dflags = flags|SD_NOJMP; + while (1) + { + te = skip_to_delim (string, ts, d, dflags); + + /* If we have a non-whitespace delimiter character, use it to make a + separate field. This is just about what $IFS splitting does and + is closer to the behavior of the shell parser. */ + if (ts == te && d2 && member (string[ts], d2)) + { + te = ts + 1; + /* If we're using IFS splitting, the non-whitespace delimiter char + and any additional IFS whitespace delimits a field. */ + if (ifs_split) + while (member (string[te], d) && spctabnl (string[te])) + te++; + else + while (member (string[te], d2)) + te++; + } + + token = substring (string, ts, te); + + ret = add_string_to_list (token, ret); + free (token); + nw++; + + if (sentinel >= ts && sentinel <= te) + cw = nw; + + /* If the cursor is at whitespace just before word start, set the + sentinel word to the current word. */ + if (cwp && cw == -1 && sentinel == ts-1) + cw = nw; + + /* If the cursor is at whitespace between two words, make a new, empty + word, add it before (well, after, since the list is in reverse order) + the word we just added, and set the current word to that one. */ + if (cwp && cw == -1 && sentinel < ts) + { + tl = make_word_list (make_word (""), ret->next); + ret->next = tl; + cw = nw; + nw++; + } + + if (string[te] == 0) + break; + + i = te; + while (member (string[i], d) && (ifs_split || spctabnl(string[i]))) + i++; + + if (string[i]) + ts = i; + else + break; + } + + /* Special case for SENTINEL at the end of STRING. If we haven't found + the word containing SENTINEL yet, and the index we're looking for is at + the end of STRING (or past the end of the previously-found token, + possible if the end of the line is composed solely of IFS whitespace) + add an additional null argument and set the current word pointer to that. */ + if (cwp && cw == -1 && (sentinel >= slen || sentinel >= te)) + { + if (whitespace (string[sentinel - 1])) + { + token = ""; + ret = add_string_to_list (token, ret); + nw++; + } + cw = nw; + } + + if (nwp) + *nwp = nw; + if (cwp) + *cwp = cw; + + FREE (d2); + + return (REVERSE_LIST (ret, WORD_LIST *)); +} +#endif /* READLINE */ + +#if 0 +/* UNUSED */ +/* Extract the name of the variable to bind to from the assignment string. */ +char * +assignment_name (string) + char *string; +{ + int offset; + char *temp; + + offset = assignment (string, 0); + if (offset == 0) + return (char *)NULL; + temp = substring (string, 0, offset); + return (temp); +} +#endif + +/* **************************************************************** */ +/* */ +/* Functions to convert strings to WORD_LISTs and vice versa */ +/* */ +/* **************************************************************** */ + +/* Return a single string of all the words in LIST. SEP is the separator + to put between individual elements of LIST in the output string. */ +char * +string_list_internal (list, sep) + WORD_LIST *list; + char *sep; +{ + register WORD_LIST *t; + char *result, *r; + int word_len, sep_len, result_size; + + if (list == 0) + return ((char *)NULL); + + /* Short-circuit quickly if we don't need to separate anything. */ + if (list->next == 0) + return (savestring (list->word->word)); + + /* This is nearly always called with either sep[0] == 0 or sep[1] == 0. */ + sep_len = STRLEN (sep); + result_size = 0; + + for (t = list; t; t = t->next) + { + if (t != list) + result_size += sep_len; + result_size += strlen (t->word->word); + } + + r = result = (char *)xmalloc (result_size + 1); + + for (t = list; t; t = t->next) + { + if (t != list && sep_len) + { + if (sep_len > 1) + { + FASTCOPY (sep, r, sep_len); + r += sep_len; + } + else + *r++ = sep[0]; + } + + word_len = strlen (t->word->word); + FASTCOPY (t->word->word, r, word_len); + r += word_len; + } + + *r = '\0'; + return (result); +} + +/* Return a single string of all the words present in LIST, separating + each word with a space. */ +char * +string_list (list) + WORD_LIST *list; +{ + return (string_list_internal (list, " ")); +} + +/* An external interface that can be used by the rest of the shell to + obtain a string containing the first character in $IFS. Handles all + the multibyte complications. If LENP is non-null, it is set to the + length of the returned string. */ +char * +ifs_firstchar (lenp) + int *lenp; +{ + char *ret; + int len; + + ret = xmalloc (MB_LEN_MAX + 1); +#if defined (HANDLE_MULTIBYTE) + if (ifs_firstc_len == 1) + { + ret[0] = ifs_firstc[0]; + ret[1] = '\0'; + len = ret[0] ? 1 : 0; + } + else + { + memcpy (ret, ifs_firstc, ifs_firstc_len); + ret[len = ifs_firstc_len] = '\0'; + } +#else + ret[0] = ifs_firstc; + ret[1] = '\0'; + len = ret[0] ? 0 : 1; +#endif + + if (lenp) + *lenp = len; + + return ret; +} + +/* Return a single string of all the words present in LIST, obeying the + quoting rules for "$*", to wit: (P1003.2, draft 11, 3.5.2) "If the + expansion [of $*] appears within a double quoted string, it expands + to a single field with the value of each parameter separated by the + first character of the IFS variable, or by a <space> if IFS is unset." */ +char * +string_list_dollar_star (list) + WORD_LIST *list; +{ + char *ret; +#if defined (HANDLE_MULTIBYTE) +# if defined (__GNUC__) + char sep[MB_CUR_MAX + 1]; +# else + char *sep = 0; +# endif +#else + char sep[2]; +#endif + +#if defined (HANDLE_MULTIBYTE) +# if !defined (__GNUC__) + sep = (char *)xmalloc (MB_CUR_MAX + 1); +# endif /* !__GNUC__ */ + if (ifs_firstc_len == 1) + { + sep[0] = ifs_firstc[0]; + sep[1] = '\0'; + } + else + { + memcpy (sep, ifs_firstc, ifs_firstc_len); + sep[ifs_firstc_len] = '\0'; + } +#else + sep[0] = ifs_firstc; + sep[1] = '\0'; +#endif + + ret = string_list_internal (list, sep); +#if defined (HANDLE_MULTIBYTE) && !defined (__GNUC__) + free (sep); +#endif + return ret; +} + +/* Turn $@ into a string. If (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + is non-zero, the $@ appears within double quotes, and we should quote + the list before converting it into a string. If IFS is unset, and the + word is not quoted, we just need to quote CTLESC and CTLNUL characters + in the words in the list, because the default value of $IFS is + <space><tab><newline>, IFS characters in the words in the list should + also be split. If IFS is null, and the word is not quoted, we need + to quote the words in the list to preserve the positional parameters + exactly. */ +char * +string_list_dollar_at (list, quoted) + WORD_LIST *list; + int quoted; +{ + char *ifs, *ret; +#if defined (HANDLE_MULTIBYTE) +# if defined (__GNUC__) + char sep[MB_CUR_MAX + 1]; +# else + char *sep = 0; +# endif /* !__GNUC__ */ +#else + char sep[2]; +#endif + WORD_LIST *tlist; + + /* XXX this could just be ifs = ifs_value; */ + ifs = ifs_var ? value_cell (ifs_var) : (char *)0; + +#if defined (HANDLE_MULTIBYTE) +# if !defined (__GNUC__) + sep = (char *)xmalloc (MB_CUR_MAX + 1); +# endif /* !__GNUC__ */ + if (ifs && *ifs) + { + if (ifs_firstc_len == 1) + { + sep[0] = ifs_firstc[0]; + sep[1] = '\0'; + } + else + { + memcpy (sep, ifs_firstc, ifs_firstc_len); + sep[ifs_firstc_len] = '\0'; + } + } + else + { + sep[0] = ' '; + sep[1] = '\0'; + } +#else + sep[0] = (ifs == 0 || *ifs == 0) ? ' ' : *ifs; + sep[1] = '\0'; +#endif + + /* XXX -- why call quote_list if ifs == 0? we can get away without doing + it now that quote_escapes quotes spaces */ + tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES|Q_PATQUOTE)) + ? quote_list (list) + : list_quote_escapes (list); + + ret = string_list_internal (tlist, sep); +#if defined (HANDLE_MULTIBYTE) && !defined (__GNUC__) + free (sep); +#endif + return ret; +} + +/* Turn the positional paramters into a string, understanding quoting and + the various subtleties of using the first character of $IFS as the + separator. Calls string_list_dollar_at, string_list_dollar_star, and + string_list as appropriate. */ +char * +string_list_pos_params (pchar, list, quoted) + int pchar; + WORD_LIST *list; + int quoted; +{ + char *ret; + WORD_LIST *tlist; + + if (pchar == '*' && (quoted & Q_DOUBLE_QUOTES)) + { + tlist = quote_list (list); + word_list_remove_quoted_nulls (tlist); + ret = string_list_dollar_star (tlist); + } + else if (pchar == '*' && (quoted & Q_HERE_DOCUMENT)) + { + tlist = quote_list (list); + word_list_remove_quoted_nulls (tlist); + ret = string_list (tlist); + } + else if (pchar == '*') + { + /* Even when unquoted, string_list_dollar_star does the right thing + making sure that the first character of $IFS is used as the + separator. */ + ret = string_list_dollar_star (list); + } + else if (pchar == '@' && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + /* We use string_list_dollar_at, but only if the string is quoted, since + that quotes the escapes if it's not, which we don't want. We could + use string_list (the old code did), but that doesn't do the right + thing if the first character of $IFS is not a space. We use + string_list_dollar_star if the string is unquoted so we make sure that + the elements of $@ are separated by the first character of $IFS for + later splitting. */ + ret = string_list_dollar_at (list, quoted); + else if (pchar == '@') + ret = string_list_dollar_star (list); + else + ret = string_list ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? quote_list (list) : list); + + return ret; +} + +/* Return the list of words present in STRING. Separate the string into + words at any of the characters found in SEPARATORS. If QUOTED is + non-zero then word in the list will have its quoted flag set, otherwise + the quoted flag is left as make_word () deemed fit. + + This obeys the P1003.2 word splitting semantics. If `separators' is + exactly <space><tab><newline>, then the splitting algorithm is that of + the Bourne shell, which treats any sequence of characters from `separators' + as a delimiter. If IFS is unset, which results in `separators' being set + to "", no splitting occurs. If separators has some other value, the + following rules are applied (`IFS white space' means zero or more + occurrences of <space>, <tab>, or <newline>, as long as those characters + are in `separators'): + + 1) IFS white space is ignored at the start and the end of the + string. + 2) Each occurrence of a character in `separators' that is not + IFS white space, along with any adjacent occurrences of + IFS white space delimits a field. + 3) Any nonzero-length sequence of IFS white space delimits a field. + */ + +/* BEWARE! list_string strips null arguments. Don't call it twice and + expect to have "" preserved! */ + +/* This performs word splitting and quoted null character removal on + STRING. */ +#define issep(c) \ + (((separators)[0]) ? ((separators)[1] ? isifs(c) \ + : (c) == (separators)[0]) \ + : 0) + +WORD_LIST * +list_string (string, separators, quoted) + register char *string, *separators; + int quoted; +{ + WORD_LIST *result; + WORD_DESC *t; + char *current_word, *s; + int sindex, sh_style_split, whitesep, xflags; + size_t slen; + + if (!string || !*string) + return ((WORD_LIST *)NULL); + + sh_style_split = separators && separators[0] == ' ' && + separators[1] == '\t' && + separators[2] == '\n' && + separators[3] == '\0'; + for (xflags = 0, s = ifs_value; s && *s; s++) + { + if (*s == CTLESC) xflags |= SX_NOCTLESC; + else if (*s == CTLNUL) xflags |= SX_NOESCCTLNUL; + } + + slen = 0; + /* Remove sequences of whitespace at the beginning of STRING, as + long as those characters appear in IFS. Do not do this if + STRING is quoted or if there are no separator characters. */ + if (!quoted || !separators || !*separators) + { + for (s = string; *s && spctabnl (*s) && issep (*s); s++); + + if (!*s) + return ((WORD_LIST *)NULL); + + string = s; + } + + /* OK, now STRING points to a word that does not begin with white space. + The splitting algorithm is: + extract a word, stopping at a separator + skip sequences of spc, tab, or nl as long as they are separators + This obeys the field splitting rules in Posix.2. */ + slen = (MB_CUR_MAX > 1) ? strlen (string) : 1; + for (result = (WORD_LIST *)NULL, sindex = 0; string[sindex]; ) + { + /* Don't need string length in ADVANCE_CHAR or string_extract_verbatim + unless multibyte chars are possible. */ + current_word = string_extract_verbatim (string, slen, &sindex, separators, xflags); + if (current_word == 0) + break; + + /* If we have a quoted empty string, add a quoted null argument. We + want to preserve the quoted null character iff this is a quoted + empty string; otherwise the quoted null characters are removed + below. */ + if (QUOTED_NULL (current_word)) + { + t = alloc_word_desc (); + t->word = make_quoted_char ('\0'); + t->flags |= W_QUOTED|W_HASQUOTEDNULL; + result = make_word_list (t, result); + } + else if (current_word[0] != '\0') + { + /* If we have something, then add it regardless. However, + perform quoted null character removal on the current word. */ + remove_quoted_nulls (current_word); + result = add_string_to_list (current_word, result); + result->word->flags &= ~W_HASQUOTEDNULL; /* just to be sure */ + if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) + result->word->flags |= W_QUOTED; + } + + /* If we're not doing sequences of separators in the traditional + Bourne shell style, then add a quoted null argument. */ + else if (!sh_style_split && !spctabnl (string[sindex])) + { + t = alloc_word_desc (); + t->word = make_quoted_char ('\0'); + t->flags |= W_QUOTED|W_HASQUOTEDNULL; + result = make_word_list (t, result); + } + + free (current_word); + + /* Note whether or not the separator is IFS whitespace, used later. */ + whitesep = string[sindex] && spctabnl (string[sindex]); + + /* Move past the current separator character. */ + if (string[sindex]) + { + DECLARE_MBSTATE; + ADVANCE_CHAR (string, slen, sindex); + } + + /* Now skip sequences of space, tab, or newline characters if they are + in the list of separators. */ + while (string[sindex] && spctabnl (string[sindex]) && issep (string[sindex])) + sindex++; + + /* If the first separator was IFS whitespace and the current character + is a non-whitespace IFS character, it should be part of the current + field delimiter, not a separate delimiter that would result in an + empty field. Look at POSIX.2, 3.6.5, (3)(b). */ + if (string[sindex] && whitesep && issep (string[sindex]) && !spctabnl (string[sindex])) + { + sindex++; + /* An IFS character that is not IFS white space, along with any + adjacent IFS white space, shall delimit a field. (SUSv3) */ + while (string[sindex] && spctabnl (string[sindex]) && isifs (string[sindex])) + sindex++; + } + } + return (REVERSE_LIST (result, WORD_LIST *)); +} + +/* Parse a single word from STRING, using SEPARATORS to separate fields. + ENDPTR is set to the first character after the word. This is used by + the `read' builtin. This is never called with SEPARATORS != $IFS; + it should be simplified. + + XXX - this function is very similar to list_string; they should be + combined - XXX */ +char * +get_word_from_string (stringp, separators, endptr) + char **stringp, *separators, **endptr; +{ + register char *s; + char *current_word; + int sindex, sh_style_split, whitesep, xflags; + size_t slen; + + if (!stringp || !*stringp || !**stringp) + return ((char *)NULL); + + sh_style_split = separators && separators[0] == ' ' && + separators[1] == '\t' && + separators[2] == '\n' && + separators[3] == '\0'; + for (xflags = 0, s = ifs_value; s && *s; s++) + { + if (*s == CTLESC) xflags |= SX_NOCTLESC; + if (*s == CTLNUL) xflags |= SX_NOESCCTLNUL; + } + + s = *stringp; + slen = 0; + + /* Remove sequences of whitespace at the beginning of STRING, as + long as those characters appear in IFS. */ + if (sh_style_split || !separators || !*separators) + { + for (; *s && spctabnl (*s) && isifs (*s); s++); + + /* If the string is nothing but whitespace, update it and return. */ + if (!*s) + { + *stringp = s; + if (endptr) + *endptr = s; + return ((char *)NULL); + } + } + + /* OK, S points to a word that does not begin with white space. + Now extract a word, stopping at a separator, save a pointer to + the first character after the word, then skip sequences of spc, + tab, or nl as long as they are separators. + + This obeys the field splitting rules in Posix.2. */ + sindex = 0; + /* Don't need string length in ADVANCE_CHAR or string_extract_verbatim + unless multibyte chars are possible. */ + slen = (MB_CUR_MAX > 1) ? strlen (s) : 1; + current_word = string_extract_verbatim (s, slen, &sindex, separators, xflags); + + /* Set ENDPTR to the first character after the end of the word. */ + if (endptr) + *endptr = s + sindex; + + /* Note whether or not the separator is IFS whitespace, used later. */ + whitesep = s[sindex] && spctabnl (s[sindex]); + + /* Move past the current separator character. */ + if (s[sindex]) + { + DECLARE_MBSTATE; + ADVANCE_CHAR (s, slen, sindex); + } + + /* Now skip sequences of space, tab, or newline characters if they are + in the list of separators. */ + while (s[sindex] && spctabnl (s[sindex]) && isifs (s[sindex])) + sindex++; + + /* If the first separator was IFS whitespace and the current character is + a non-whitespace IFS character, it should be part of the current field + delimiter, not a separate delimiter that would result in an empty field. + Look at POSIX.2, 3.6.5, (3)(b). */ + if (s[sindex] && whitesep && isifs (s[sindex]) && !spctabnl (s[sindex])) + { + sindex++; + /* An IFS character that is not IFS white space, along with any adjacent + IFS white space, shall delimit a field. */ + while (s[sindex] && spctabnl (s[sindex]) && isifs (s[sindex])) + sindex++; + } + + /* Update STRING to point to the next field. */ + *stringp = s + sindex; + return (current_word); +} + +/* Remove IFS white space at the end of STRING. Start at the end + of the string and walk backwards until the beginning of the string + or we find a character that's not IFS white space and not CTLESC. + Only let CTLESC escape a white space character if SAW_ESCAPE is + non-zero. */ +char * +strip_trailing_ifs_whitespace (string, separators, saw_escape) + char *string, *separators; + int saw_escape; +{ + char *s; + + s = string + STRLEN (string) - 1; + while (s > string && ((spctabnl (*s) && isifs (*s)) || + (saw_escape && *s == CTLESC && spctabnl (s[1])))) + s--; + *++s = '\0'; + return string; +} + +#if 0 +/* UNUSED */ +/* Split STRING into words at whitespace. Obeys shell-style quoting with + backslashes, single and double quotes. */ +WORD_LIST * +list_string_with_quotes (string) + char *string; +{ + WORD_LIST *list; + char *token, *s; + size_t s_len; + int c, i, tokstart, len; + + for (s = string; s && *s && spctabnl (*s); s++) + ; + if (s == 0 || *s == 0) + return ((WORD_LIST *)NULL); + + s_len = strlen (s); + tokstart = i = 0; + list = (WORD_LIST *)NULL; + while (1) + { + c = s[i]; + if (c == '\\') + { + i++; + if (s[i]) + i++; + } + else if (c == '\'') + i = skip_single_quoted (s, s_len, ++i); + else if (c == '"') + i = skip_double_quoted (s, s_len, ++i); + else if (c == 0 || spctabnl (c)) + { + /* We have found the end of a token. Make a word out of it and + add it to the word list. */ + token = substring (s, tokstart, i); + list = add_string_to_list (token, list); + free (token); + while (spctabnl (s[i])) + i++; + if (s[i]) + tokstart = i; + else + break; + } + else + i++; /* normal character */ + } + return (REVERSE_LIST (list, WORD_LIST *)); +} +#endif + +/********************************************************/ +/* */ +/* Functions to perform assignment statements */ +/* */ +/********************************************************/ + +#if defined (ARRAY_VARS) +static SHELL_VAR * +do_compound_assignment (name, value, flags) + char *name, *value; + int flags; +{ + SHELL_VAR *v; + int mklocal, mkassoc, mkglobal; + WORD_LIST *list; + + mklocal = flags & ASS_MKLOCAL; + mkassoc = flags & ASS_MKASSOC; + mkglobal = flags & ASS_MKGLOBAL; + + if (mklocal && variable_context) + { + v = find_variable (name); + list = expand_compound_array_assignment (v, value, flags); + if (mkassoc) + v = make_local_assoc_variable (name); + else if (v == 0 || (array_p (v) == 0 && assoc_p (v) == 0) || v->context != variable_context) + v = make_local_array_variable (name, 0); + assign_compound_array_list (v, list, flags); + } + /* In a function but forcing assignment in global context */ + else if (mkglobal && variable_context) + { + v = find_global_variable (name); + list = expand_compound_array_assignment (v, value, flags); + if (v == 0 && mkassoc) + v = make_new_assoc_variable (name); + else if (v && mkassoc && assoc_p (v) == 0) + v = convert_var_to_assoc (v); + else if (v == 0) + v = make_new_array_variable (name); + else if (v && array_p (v) == 0) + v = convert_var_to_array (v); + assign_compound_array_list (v, list, flags); + } + else + v = assign_array_from_string (name, value, flags); + + return (v); +} +#endif + +/* Given STRING, an assignment string, get the value of the right side + of the `=', and bind it to the left side. If EXPAND is true, then + perform parameter expansion, command substitution, and arithmetic + expansion on the right-hand side. Perform tilde expansion in any + case. Do not perform word splitting on the result of expansion. */ +static int +do_assignment_internal (word, expand) + const WORD_DESC *word; + int expand; +{ + int offset, appendop, assign_list, aflags, retval; + char *name, *value, *temp; + SHELL_VAR *entry; +#if defined (ARRAY_VARS) + char *t; + int ni; +#endif + const char *string; + + if (word == 0 || word->word == 0) + return 0; + + appendop = assign_list = aflags = 0; + string = word->word; + offset = assignment (string, 0); + name = savestring (string); + value = (char *)NULL; + + if (name[offset] == '=') + { + if (name[offset - 1] == '+') + { + appendop = 1; + name[offset - 1] = '\0'; + } + + name[offset] = 0; /* might need this set later */ + temp = name + offset + 1; + +#if defined (ARRAY_VARS) + if (expand && (word->flags & W_COMPASSIGN)) + { + assign_list = ni = 1; + value = extract_array_assignment_list (temp, &ni); + } + else +#endif + if (expand && temp[0]) + value = expand_string_if_necessary (temp, 0, expand_string_assignment); + else + value = savestring (temp); + } + + if (value == 0) + { + value = (char *)xmalloc (1); + value[0] = '\0'; + } + + if (echo_command_at_execute) + { + if (appendop) + name[offset - 1] = '+'; + xtrace_print_assignment (name, value, assign_list, 1); + if (appendop) + name[offset - 1] = '\0'; + } + +#define ASSIGN_RETURN(r) do { FREE (value); free (name); return (r); } while (0) + + if (appendop) + aflags |= ASS_APPEND; + +#if defined (ARRAY_VARS) + if (t = mbschr (name, '[')) /*]*/ + { + if (assign_list) + { + report_error (_("%s: cannot assign list to array member"), name); + ASSIGN_RETURN (0); + } + entry = assign_array_element (name, value, aflags); + if (entry == 0) + ASSIGN_RETURN (0); + } + else if (assign_list) + { + if ((word->flags & W_ASSIGNARG) && (word->flags & W_ASSNGLOBAL) == 0) + aflags |= ASS_MKLOCAL; + if ((word->flags & W_ASSIGNARG) && (word->flags & W_ASSNGLOBAL)) + aflags |= ASS_MKGLOBAL; + if (word->flags & W_ASSIGNASSOC) + aflags |= ASS_MKASSOC; + entry = do_compound_assignment (name, value, aflags); + } + else +#endif /* ARRAY_VARS */ + entry = bind_variable (name, value, aflags); + + stupidly_hack_special_variables (name); + + /* Return 1 if the assignment seems to have been performed correctly. */ + if (entry == 0 || readonly_p (entry)) + retval = 0; /* assignment failure */ + else if (noassign_p (entry)) + { + last_command_exit_value = EXECUTION_FAILURE; + retval = 1; /* error status, but not assignment failure */ + } + else + retval = 1; + + if (entry && retval != 0 && noassign_p (entry) == 0) + VUNSETATTR (entry, att_invisible); + + ASSIGN_RETURN (retval); +} + +/* Perform the assignment statement in STRING, and expand the + right side by doing tilde, command and parameter expansion. */ +int +do_assignment (string) + char *string; +{ + WORD_DESC td; + + td.flags = W_ASSIGNMENT; + td.word = string; + + return do_assignment_internal (&td, 1); +} + +int +do_word_assignment (word, flags) + WORD_DESC *word; + int flags; +{ + return do_assignment_internal (word, 1); +} + +/* Given STRING, an assignment string, get the value of the right side + of the `=', and bind it to the left side. Do not perform any word + expansions on the right hand side. */ +int +do_assignment_no_expand (string) + char *string; +{ + WORD_DESC td; + + td.flags = W_ASSIGNMENT; + td.word = string; + + return (do_assignment_internal (&td, 0)); +} + +/*************************************************** + * * + * Functions to manage the positional parameters * + * * + ***************************************************/ + +/* Return the word list that corresponds to `$*'. */ +WORD_LIST * +list_rest_of_args () +{ + register WORD_LIST *list, *args; + int i; + + /* Break out of the loop as soon as one of the dollar variables is null. */ + for (i = 1, list = (WORD_LIST *)NULL; i < 10 && dollar_vars[i]; i++) + list = make_word_list (make_bare_word (dollar_vars[i]), list); + + for (args = rest_of_args; args; args = args->next) + list = make_word_list (make_bare_word (args->word->word), list); + + return (REVERSE_LIST (list, WORD_LIST *)); +} + +int +number_of_args () +{ + register WORD_LIST *list; + int n; + + for (n = 0; n < 9 && dollar_vars[n+1]; n++) + ; + for (list = rest_of_args; list; list = list->next) + n++; + return n; +} + +/* Return the value of a positional parameter. This handles values > 10. */ +char * +get_dollar_var_value (ind) + intmax_t ind; +{ + char *temp; + WORD_LIST *p; + + if (ind < 10) + temp = dollar_vars[ind] ? savestring (dollar_vars[ind]) : (char *)NULL; + else /* We want something like ${11} */ + { + ind -= 10; + for (p = rest_of_args; p && ind--; p = p->next) + ; + temp = p ? savestring (p->word->word) : (char *)NULL; + } + return (temp); +} + +/* Make a single large string out of the dollar digit variables, + and the rest_of_args. If DOLLAR_STAR is 1, then obey the special + case of "$*" with respect to IFS. */ +char * +string_rest_of_args (dollar_star) + int dollar_star; +{ + register WORD_LIST *list; + char *string; + + list = list_rest_of_args (); + string = dollar_star ? string_list_dollar_star (list) : string_list (list); + dispose_words (list); + return (string); +} + +/* Return a string containing the positional parameters from START to + END, inclusive. If STRING[0] == '*', we obey the rules for $*, + which only makes a difference if QUOTED is non-zero. If QUOTED includes + Q_HERE_DOCUMENT or Q_DOUBLE_QUOTES, this returns a quoted list, otherwise + no quoting chars are added. */ +static char * +pos_params (string, start, end, quoted) + char *string; + int start, end, quoted; +{ + WORD_LIST *save, *params, *h, *t; + char *ret; + int i; + + /* see if we can short-circuit. if start == end, we want 0 parameters. */ + if (start == end) + return ((char *)NULL); + + save = params = list_rest_of_args (); + if (save == 0) + return ((char *)NULL); + + if (start == 0) /* handle ${@:0[:x]} specially */ + { + t = make_word_list (make_word (dollar_vars[0]), params); + save = params = t; + } + + for (i = start ? 1 : 0; params && i < start; i++) + params = params->next; + if (params == 0) + return ((char *)NULL); + for (h = t = params; params && i < end; i++) + { + t = params; + params = params->next; + } + + t->next = (WORD_LIST *)NULL; + + ret = string_list_pos_params (string[0], h, quoted); + + if (t != params) + t->next = params; + + dispose_words (save); + return (ret); +} + +/******************************************************************/ +/* */ +/* Functions to expand strings to strings or WORD_LISTs */ +/* */ +/******************************************************************/ + +#if defined (PROCESS_SUBSTITUTION) +#define EXP_CHAR(s) (s == '$' || s == '`' || s == '<' || s == '>' || s == CTLESC || s == '~') +#else +#define EXP_CHAR(s) (s == '$' || s == '`' || s == CTLESC || s == '~') +#endif + +/* If there are any characters in STRING that require full expansion, + then call FUNC to expand STRING; otherwise just perform quote + removal if necessary. This returns a new string. */ +static char * +expand_string_if_necessary (string, quoted, func) + char *string; + int quoted; + EXPFUNC *func; +{ + WORD_LIST *list; + size_t slen; + int i, saw_quote; + char *ret; + DECLARE_MBSTATE; + + /* Don't need string length for ADVANCE_CHAR unless multibyte chars possible. */ + slen = (MB_CUR_MAX > 1) ? strlen (string) : 0; + i = saw_quote = 0; + while (string[i]) + { + if (EXP_CHAR (string[i])) + break; + else if (string[i] == '\'' || string[i] == '\\' || string[i] == '"') + saw_quote = 1; + ADVANCE_CHAR (string, slen, i); + } + + if (string[i]) + { + list = (*func) (string, quoted); + if (list) + { + ret = string_list (list); + dispose_words (list); + } + else + ret = (char *)NULL; + } + else if (saw_quote && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0)) + ret = string_quote_removal (string, quoted); + else + ret = savestring (string); + + return ret; +} + +static inline char * +expand_string_to_string_internal (string, quoted, func) + char *string; + int quoted; + EXPFUNC *func; +{ + WORD_LIST *list; + char *ret; + + if (string == 0 || *string == '\0') + return ((char *)NULL); + + list = (*func) (string, quoted); + if (list) + { + ret = string_list (list); + dispose_words (list); + } + else + ret = (char *)NULL; + + return (ret); +} + +char * +expand_string_to_string (string, quoted) + char *string; + int quoted; +{ + return (expand_string_to_string_internal (string, quoted, expand_string)); +} + +char * +expand_string_unsplit_to_string (string, quoted) + char *string; + int quoted; +{ + return (expand_string_to_string_internal (string, quoted, expand_string_unsplit)); +} + +char * +expand_assignment_string_to_string (string, quoted) + char *string; + int quoted; +{ + return (expand_string_to_string_internal (string, quoted, expand_string_assignment)); +} + +char * +expand_arith_string (string, quoted) + char *string; + int quoted; +{ + return (expand_string_if_necessary (string, quoted, expand_string)); +} + +#if defined (COND_COMMAND) +/* Just remove backslashes in STRING. Returns a new string. */ +char * +remove_backslashes (string) + char *string; +{ + char *r, *ret, *s; + + r = ret = (char *)xmalloc (strlen (string) + 1); + for (s = string; s && *s; ) + { + if (*s == '\\') + s++; + if (*s == 0) + break; + *r++ = *s++; + } + *r = '\0'; + return ret; +} + +/* This needs better error handling. */ +/* Expand W for use as an argument to a unary or binary operator in a + [[...]] expression. If SPECIAL is 1, this is the rhs argument + to the != or == operator, and should be treated as a pattern. In + this case, we quote the string specially for the globbing code. If + SPECIAL is 2, this is an rhs argument for the =~ operator, and should + be quoted appropriately for regcomp/regexec. The caller is responsible + for removing the backslashes if the unquoted word is needed later. */ +char * +cond_expand_word (w, special) + WORD_DESC *w; + int special; +{ + char *r, *p; + WORD_LIST *l; + int qflags; + + if (w->word == 0 || w->word[0] == '\0') + return ((char *)NULL); + + w->flags |= W_NOSPLIT2; + l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0); + if (l) + { + if (special == 0) + { + dequote_list (l); + r = string_list (l); + } + else + { + qflags = QGLOB_CVTNULL; + if (special == 2) + qflags |= QGLOB_REGEXP; + p = string_list (l); + r = quote_string_for_globbing (p, qflags); + free (p); + } + dispose_words (l); + } + else + r = (char *)NULL; + + return r; +} +#endif + +/* Call expand_word_internal to expand W and handle error returns. + A convenience function for functions that don't want to handle + any errors or free any memory before aborting. */ +static WORD_LIST * +call_expand_word_internal (w, q, i, c, e) + WORD_DESC *w; + int q, i, *c, *e; +{ + WORD_LIST *result; + + result = expand_word_internal (w, q, i, c, e); + if (result == &expand_word_error || result == &expand_word_fatal) + { + /* By convention, each time this error is returned, w->word has + already been freed (it sometimes may not be in the fatal case, + but that doesn't result in a memory leak because we're going + to exit in most cases). */ + w->word = (char *)NULL; + last_command_exit_value = EXECUTION_FAILURE; + exp_jump_to_top_level ((result == &expand_word_error) ? DISCARD : FORCE_EOF); + /* NOTREACHED */ + } + else + return (result); +} + +/* Perform parameter expansion, command substitution, and arithmetic + expansion on STRING, as if it were a word. Leave the result quoted. + Since this does not perform word splitting, it leaves quoted nulls + in the result. */ +static WORD_LIST * +expand_string_internal (string, quoted) + char *string; + int quoted; +{ + WORD_DESC td; + WORD_LIST *tresult; + + if (string == 0 || *string == 0) + return ((WORD_LIST *)NULL); + + td.flags = 0; + td.word = savestring (string); + + tresult = call_expand_word_internal (&td, quoted, 0, (int *)NULL, (int *)NULL); + + FREE (td.word); + return (tresult); +} + +/* Expand STRING by performing parameter expansion, command substitution, + and arithmetic expansion. Dequote the resulting WORD_LIST before + returning it, but do not perform word splitting. The call to + remove_quoted_nulls () is in here because word splitting normally + takes care of quote removal. */ +WORD_LIST * +expand_string_unsplit (string, quoted) + char *string; + int quoted; +{ + WORD_LIST *value; + + if (string == 0 || *string == '\0') + return ((WORD_LIST *)NULL); + + expand_no_split_dollar_star = 1; + value = expand_string_internal (string, quoted); + expand_no_split_dollar_star = 0; + + if (value) + { + if (value->word) + { + remove_quoted_nulls (value->word->word); + value->word->flags &= ~W_HASQUOTEDNULL; + } + dequote_list (value); + } + return (value); +} + +/* Expand the rhs of an assignment statement */ +WORD_LIST * +expand_string_assignment (string, quoted) + char *string; + int quoted; +{ + WORD_DESC td; + WORD_LIST *value; + + if (string == 0 || *string == '\0') + return ((WORD_LIST *)NULL); + + expand_no_split_dollar_star = 1; + + td.flags = W_ASSIGNRHS; + td.word = savestring (string); + value = call_expand_word_internal (&td, quoted, 0, (int *)NULL, (int *)NULL); + FREE (td.word); + + expand_no_split_dollar_star = 0; + + if (value) + { + if (value->word) + { + remove_quoted_nulls (value->word->word); + value->word->flags &= ~W_HASQUOTEDNULL; + } + dequote_list (value); + } + return (value); +} + + +/* Expand one of the PS? prompt strings. This is a sort of combination of + expand_string_unsplit and expand_string_internal, but returns the + passed string when an error occurs. Might want to trap other calls + to jump_to_top_level here so we don't endlessly loop. */ +WORD_LIST * +expand_prompt_string (string, quoted, wflags) + char *string; + int quoted; + int wflags; +{ + WORD_LIST *value; + WORD_DESC td; + + if (string == 0 || *string == 0) + return ((WORD_LIST *)NULL); + + td.flags = wflags; + td.word = savestring (string); + + no_longjmp_on_fatal_error = 1; + value = expand_word_internal (&td, quoted, 0, (int *)NULL, (int *)NULL); + no_longjmp_on_fatal_error = 0; + + if (value == &expand_word_error || value == &expand_word_fatal) + { + value = make_word_list (make_bare_word (string), (WORD_LIST *)NULL); + return value; + } + FREE (td.word); + if (value) + { + if (value->word) + { + remove_quoted_nulls (value->word->word); + value->word->flags &= ~W_HASQUOTEDNULL; + } + dequote_list (value); + } + return (value); +} + +/* Expand STRING just as if you were expanding a word, but do not dequote + the resultant WORD_LIST. This is called only from within this file, + and is used to correctly preserve quoted characters when expanding + things like ${1+"$@"}. This does parameter expansion, command + substitution, arithmetic expansion, and word splitting. */ +static WORD_LIST * +expand_string_leave_quoted (string, quoted) + char *string; + int quoted; +{ + WORD_LIST *tlist; + WORD_LIST *tresult; + + if (string == 0 || *string == '\0') + return ((WORD_LIST *)NULL); + + tlist = expand_string_internal (string, quoted); + + if (tlist) + { + tresult = word_list_split (tlist); + dispose_words (tlist); + return (tresult); + } + return ((WORD_LIST *)NULL); +} + +/* This does not perform word splitting or dequote the WORD_LIST + it returns. */ +static WORD_LIST * +expand_string_for_rhs (string, quoted, dollar_at_p, has_dollar_at) + char *string; + int quoted, *dollar_at_p, *has_dollar_at; +{ + WORD_DESC td; + WORD_LIST *tresult; + + if (string == 0 || *string == '\0') + return (WORD_LIST *)NULL; + + td.flags = W_NOSPLIT2; /* no splitting, remove "" and '' */ + td.word = string; + tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at); + return (tresult); +} + +/* Expand STRING just as if you were expanding a word. This also returns + a list of words. Note that filename globbing is *NOT* done for word + or string expansion, just when the shell is expanding a command. This + does parameter expansion, command substitution, arithmetic expansion, + and word splitting. Dequote the resultant WORD_LIST before returning. */ +WORD_LIST * +expand_string (string, quoted) + char *string; + int quoted; +{ + WORD_LIST *result; + + if (string == 0 || *string == '\0') + return ((WORD_LIST *)NULL); + + result = expand_string_leave_quoted (string, quoted); + return (result ? dequote_list (result) : result); +} + +/*************************************************** + * * + * Functions to handle quoting chars * + * * + ***************************************************/ + +/* Conventions: + + A string with s[0] == CTLNUL && s[1] == 0 is a quoted null string. + The parser passes CTLNUL as CTLESC CTLNUL. */ + +/* Quote escape characters in string s, but no other characters. This is + used to protect CTLESC and CTLNUL in variable values from the rest of + the word expansion process after the variable is expanded (word splitting + and filename generation). If IFS is null, we quote spaces as well, just + in case we split on spaces later (in the case of unquoted $@, we will + eventually attempt to split the entire word on spaces). Corresponding + code exists in dequote_escapes. Even if we don't end up splitting on + spaces, quoting spaces is not a problem. This should never be called on + a string that is quoted with single or double quotes or part of a here + document (effectively double-quoted). */ +char * +quote_escapes (string) + char *string; +{ + register char *s, *t; + size_t slen; + char *result, *send; + int quote_spaces, skip_ctlesc, skip_ctlnul; + DECLARE_MBSTATE; + + slen = strlen (string); + send = string + slen; + + quote_spaces = (ifs_value && *ifs_value == 0); + + for (skip_ctlesc = skip_ctlnul = 0, s = ifs_value; s && *s; s++) + skip_ctlesc |= *s == CTLESC, skip_ctlnul |= *s == CTLNUL; + + t = result = (char *)xmalloc ((slen * 2) + 1); + s = string; + + while (*s) + { + if ((skip_ctlesc == 0 && *s == CTLESC) || (skip_ctlnul == 0 && *s == CTLNUL) || (quote_spaces && *s == ' ')) + *t++ = CTLESC; + COPY_CHAR_P (t, s, send); + } + *t = '\0'; + return (result); +} + +static WORD_LIST * +list_quote_escapes (list) + WORD_LIST *list; +{ + register WORD_LIST *w; + char *t; + + for (w = list; w; w = w->next) + { + t = w->word->word; + w->word->word = quote_escapes (t); + free (t); + } + return list; +} + +/* Inverse of quote_escapes; remove CTLESC protecting CTLESC or CTLNUL. + + The parser passes us CTLESC as CTLESC CTLESC and CTLNUL as CTLESC CTLNUL. + This is necessary to make unquoted CTLESC and CTLNUL characters in the + data stream pass through properly. + + We need to remove doubled CTLESC characters inside quoted strings before + quoting the entire string, so we do not double the number of CTLESC + characters. + + Also used by parts of the pattern substitution code. */ +char * +dequote_escapes (string) + char *string; +{ + register char *s, *t, *s1; + size_t slen; + char *result, *send; + int quote_spaces; + DECLARE_MBSTATE; + + if (string == 0) + return string; + + slen = strlen (string); + send = string + slen; + + t = result = (char *)xmalloc (slen + 1); + + if (strchr (string, CTLESC) == 0) + return (strcpy (result, string)); + + quote_spaces = (ifs_value && *ifs_value == 0); + + s = string; + while (*s) + { + if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' '))) + { + s++; + if (*s == '\0') + break; + } + COPY_CHAR_P (t, s, send); + } + *t = '\0'; + return result; +} + +/* Return a new string with the quoted representation of character C. + This turns "" into QUOTED_NULL, so the W_HASQUOTEDNULL flag needs to be + set in any resultant WORD_DESC where this value is the word. */ +static char * +make_quoted_char (c) + int c; +{ + char *temp; + + temp = (char *)xmalloc (3); + if (c == 0) + { + temp[0] = CTLNUL; + temp[1] = '\0'; + } + else + { + temp[0] = CTLESC; + temp[1] = c; + temp[2] = '\0'; + } + return (temp); +} + +/* Quote STRING, returning a new string. This turns "" into QUOTED_NULL, so + the W_HASQUOTEDNULL flag needs to be set in any resultant WORD_DESC where + this value is the word. */ +char * +quote_string (string) + char *string; +{ + register char *t; + size_t slen; + char *result, *send; + + if (*string == 0) + { + result = (char *)xmalloc (2); + result[0] = CTLNUL; + result[1] = '\0'; + } + else + { + DECLARE_MBSTATE; + + slen = strlen (string); + send = string + slen; + + result = (char *)xmalloc ((slen * 2) + 1); + + for (t = result; string < send; ) + { + *t++ = CTLESC; + COPY_CHAR_P (t, string, send); + } + *t = '\0'; + } + return (result); +} + +/* De-quote quoted characters in STRING. */ +char * +dequote_string (string) + char *string; +{ + register char *s, *t; + size_t slen; + char *result, *send; + DECLARE_MBSTATE; + + slen = strlen (string); + + t = result = (char *)xmalloc (slen + 1); + + if (QUOTED_NULL (string)) + { + result[0] = '\0'; + return (result); + } + + /* If no character in the string can be quoted, don't bother examining + each character. Just return a copy of the string passed to us. */ + if (strchr (string, CTLESC) == NULL) + return (strcpy (result, string)); + + send = string + slen; + s = string; + while (*s) + { + if (*s == CTLESC) + { + s++; + if (*s == '\0') + break; + } + COPY_CHAR_P (t, s, send); + } + + *t = '\0'; + return (result); +} + +/* Quote the entire WORD_LIST list. */ +static WORD_LIST * +quote_list (list) + WORD_LIST *list; +{ + register WORD_LIST *w; + char *t; + + for (w = list; w; w = w->next) + { + t = w->word->word; + w->word->word = quote_string (t); + if (*t == 0) + w->word->flags |= W_HASQUOTEDNULL; /* XXX - turn on W_HASQUOTEDNULL here? */ + w->word->flags |= W_QUOTED; + free (t); + } + return list; +} + +/* De-quote quoted characters in each word in LIST. */ +WORD_LIST * +dequote_list (list) + WORD_LIST *list; +{ + register char *s; + register WORD_LIST *tlist; + + for (tlist = list; tlist; tlist = tlist->next) + { + s = dequote_string (tlist->word->word); + if (QUOTED_NULL (tlist->word->word)) + tlist->word->flags &= ~W_HASQUOTEDNULL; + free (tlist->word->word); + tlist->word->word = s; + } + return list; +} + +/* Remove CTLESC protecting a CTLESC or CTLNUL in place. Return the passed + string. */ +char * +remove_quoted_escapes (string) + char *string; +{ + char *t; + + if (string) + { + t = dequote_escapes (string); + strcpy (string, t); + free (t); + } + + return (string); +} + +/* Perform quoted null character removal on STRING. We don't allow any + quoted null characters in the middle or at the ends of strings because + of how expand_word_internal works. remove_quoted_nulls () turns + STRING into an empty string iff it only consists of a quoted null, + and removes all unquoted CTLNUL characters. */ +char * +remove_quoted_nulls (string) + char *string; +{ + register size_t slen; + register int i, j, prev_i; + DECLARE_MBSTATE; + + if (strchr (string, CTLNUL) == 0) /* XXX */ + return string; /* XXX */ + + slen = strlen (string); + i = j = 0; + + while (i < slen) + { + if (string[i] == CTLESC) + { + /* Old code had j++, but we cannot assume that i == j at this + point -- what if a CTLNUL has already been removed from the + string? We don't want to drop the CTLESC or recopy characters + that we've already copied down. */ + i++; string[j++] = CTLESC; + if (i == slen) + break; + } + else if (string[i] == CTLNUL) + { + i++; + continue; + } + + prev_i = i; + ADVANCE_CHAR (string, slen, i); + if (j < prev_i) + { + do string[j++] = string[prev_i++]; while (prev_i < i); + } + else + j = i; + } + string[j] = '\0'; + + return (string); +} + +/* Perform quoted null character removal on each element of LIST. + This modifies LIST. */ +void +word_list_remove_quoted_nulls (list) + WORD_LIST *list; +{ + register WORD_LIST *t; + + for (t = list; t; t = t->next) + { + remove_quoted_nulls (t->word->word); + t->word->flags &= ~W_HASQUOTEDNULL; + } +} + +/* **************************************************************** */ +/* */ +/* Functions for Matching and Removing Patterns */ +/* */ +/* **************************************************************** */ + +#if defined (HANDLE_MULTIBYTE) +#if 0 /* Currently unused */ +static unsigned char * +mb_getcharlens (string, len) + char *string; + int len; +{ + int i, offset, last; + unsigned char *ret; + char *p; + DECLARE_MBSTATE; + + i = offset = 0; + last = 0; + ret = (unsigned char *)xmalloc (len); + memset (ret, 0, len); + while (string[last]) + { + ADVANCE_CHAR (string, len, offset); + ret[last] = offset - last; + last = offset; + } + return ret; +} +#endif +#endif + +/* Remove the portion of PARAM matched by PATTERN according to OP, where OP + can have one of 4 values: + RP_LONG_LEFT remove longest matching portion at start of PARAM + RP_SHORT_LEFT remove shortest matching portion at start of PARAM + RP_LONG_RIGHT remove longest matching portion at end of PARAM + RP_SHORT_RIGHT remove shortest matching portion at end of PARAM +*/ + +#define RP_LONG_LEFT 1 +#define RP_SHORT_LEFT 2 +#define RP_LONG_RIGHT 3 +#define RP_SHORT_RIGHT 4 + +/* Returns its first argument if nothing matched; new memory otherwise */ +static char * +remove_upattern (param, pattern, op) + char *param, *pattern; + int op; +{ + register int len; + register char *end; + register char *p, *ret, c; + + len = STRLEN (param); + end = param + len; + + switch (op) + { + case RP_LONG_LEFT: /* remove longest match at start */ + for (p = end; p >= param; p--) + { + c = *p; *p = '\0'; + if (strmatch (pattern, param, FNMATCH_EXTFLAG) != FNM_NOMATCH) + { + *p = c; + return (savestring (p)); + } + *p = c; + + } + break; + + case RP_SHORT_LEFT: /* remove shortest match at start */ + for (p = param; p <= end; p++) + { + c = *p; *p = '\0'; + if (strmatch (pattern, param, FNMATCH_EXTFLAG) != FNM_NOMATCH) + { + *p = c; + return (savestring (p)); + } + *p = c; + } + break; + + case RP_LONG_RIGHT: /* remove longest match at end */ + for (p = param; p <= end; p++) + { + if (strmatch (pattern, p, FNMATCH_EXTFLAG) != FNM_NOMATCH) + { + c = *p; *p = '\0'; + ret = savestring (param); + *p = c; + return (ret); + } + } + break; + + case RP_SHORT_RIGHT: /* remove shortest match at end */ + for (p = end; p >= param; p--) + { + if (strmatch (pattern, p, FNMATCH_EXTFLAG) != FNM_NOMATCH) + { + c = *p; *p = '\0'; + ret = savestring (param); + *p = c; + return (ret); + } + } + break; + } + + return (param); /* no match, return original string */ +} + +#if defined (HANDLE_MULTIBYTE) +/* Returns its first argument if nothing matched; new memory otherwise */ +static wchar_t * +remove_wpattern (wparam, wstrlen, wpattern, op) + wchar_t *wparam; + size_t wstrlen; + wchar_t *wpattern; + int op; +{ + wchar_t wc, *ret; + int n; + + switch (op) + { + case RP_LONG_LEFT: /* remove longest match at start */ + for (n = wstrlen; n >= 0; n--) + { + wc = wparam[n]; wparam[n] = L'\0'; + if (wcsmatch (wpattern, wparam, FNMATCH_EXTFLAG) != FNM_NOMATCH) + { + wparam[n] = wc; + return (wcsdup (wparam + n)); + } + wparam[n] = wc; + } + break; + + case RP_SHORT_LEFT: /* remove shortest match at start */ + for (n = 0; n <= wstrlen; n++) + { + wc = wparam[n]; wparam[n] = L'\0'; + if (wcsmatch (wpattern, wparam, FNMATCH_EXTFLAG) != FNM_NOMATCH) + { + wparam[n] = wc; + return (wcsdup (wparam + n)); + } + wparam[n] = wc; + } + break; + + case RP_LONG_RIGHT: /* remove longest match at end */ + for (n = 0; n <= wstrlen; n++) + { + if (wcsmatch (wpattern, wparam + n, FNMATCH_EXTFLAG) != FNM_NOMATCH) + { + wc = wparam[n]; wparam[n] = L'\0'; + ret = wcsdup (wparam); + wparam[n] = wc; + return (ret); + } + } + break; + + case RP_SHORT_RIGHT: /* remove shortest match at end */ + for (n = wstrlen; n >= 0; n--) + { + if (wcsmatch (wpattern, wparam + n, FNMATCH_EXTFLAG) != FNM_NOMATCH) + { + wc = wparam[n]; wparam[n] = L'\0'; + ret = wcsdup (wparam); + wparam[n] = wc; + return (ret); + } + } + break; + } + + return (wparam); /* no match, return original string */ +} +#endif /* HANDLE_MULTIBYTE */ + +static char * +remove_pattern (param, pattern, op) + char *param, *pattern; + int op; +{ + char *xret; + + if (param == NULL) + return (param); + if (*param == '\0' || pattern == NULL || *pattern == '\0') /* minor optimization */ + return (savestring (param)); + +#if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1) + { + wchar_t *ret, *oret; + size_t n; + wchar_t *wparam, *wpattern; + mbstate_t ps; + + n = xdupmbstowcs (&wpattern, NULL, pattern); + if (n == (size_t)-1) + { + xret = remove_upattern (param, pattern, op); + return ((xret == param) ? savestring (param) : xret); + } + n = xdupmbstowcs (&wparam, NULL, param); + if (n == (size_t)-1) + { + free (wpattern); + xret = remove_upattern (param, pattern, op); + return ((xret == param) ? savestring (param) : xret); + } + oret = ret = remove_wpattern (wparam, n, wpattern, op); + /* Don't bother to convert wparam back to multibyte string if nothing + matched; just return copy of original string */ + if (ret == wparam) + { + free (wparam); + free (wpattern); + return (savestring (param)); + } + + free (wparam); + free (wpattern); + + n = strlen (param); + xret = (char *)xmalloc (n + 1); + memset (&ps, '\0', sizeof (mbstate_t)); + n = wcsrtombs (xret, (const wchar_t **)&ret, n, &ps); + xret[n] = '\0'; /* just to make sure */ + free (oret); + return xret; + } + else +#endif + { + xret = remove_upattern (param, pattern, op); + return ((xret == param) ? savestring (param) : xret); + } +} + +/* Match PAT anywhere in STRING and return the match boundaries. + This returns 1 in case of a successful match, 0 otherwise. SP + and EP are pointers into the string where the match begins and + ends, respectively. MTYPE controls what kind of match is attempted. + MATCH_BEG and MATCH_END anchor the match at the beginning and end + of the string, respectively. The longest match is returned. */ +static int +match_upattern (string, pat, mtype, sp, ep) + char *string, *pat; + int mtype; + char **sp, **ep; +{ + int c, len, mlen; + register char *p, *p1, *npat; + char *end; + int n1; + + /* If the pattern doesn't match anywhere in the string, go ahead and + short-circuit right away. A minor optimization, saves a bunch of + unnecessary calls to strmatch (up to N calls for a string of N + characters) if the match is unsuccessful. To preserve the semantics + of the substring matches below, we make sure that the pattern has + `*' as first and last character, making a new pattern if necessary. */ + /* XXX - check this later if I ever implement `**' with special meaning, + since this will potentially result in `**' at the beginning or end */ + len = STRLEN (pat); + if (pat[0] != '*' || (pat[0] == '*' && pat[1] == LPAREN && extended_glob) || pat[len - 1] != '*') + { + p = npat = (char *)xmalloc (len + 3); + p1 = pat; + if (*p1 != '*' || (*p1 == '*' && p1[1] == LPAREN && extended_glob)) + *p++ = '*'; + while (*p1) + *p++ = *p1++; + if (p1[-1] != '*' || p[-2] == '\\') + *p++ = '*'; + *p = '\0'; + } + else + npat = pat; + c = strmatch (npat, string, FNMATCH_EXTFLAG); + if (npat != pat) + free (npat); + if (c == FNM_NOMATCH) + return (0); + + len = STRLEN (string); + end = string + len; + + mlen = umatchlen (pat, len); + + switch (mtype) + { + case MATCH_ANY: + for (p = string; p <= end; p++) + { + if (match_pattern_char (pat, p)) + { +#if 0 + for (p1 = end; p1 >= p; p1--) +#else + p1 = (mlen == -1) ? end : p + mlen; + /* p1 - p = length of portion of string to be considered + p = current position in string + mlen = number of characters consumed by match (-1 for entire string) + end = end of string + we want to break immediately if the potential match len + is greater than the number of characters remaining in the + string + */ + if (p1 > end) + break; + for ( ; p1 >= p; p1--) +#endif + { + c = *p1; *p1 = '\0'; + if (strmatch (pat, p, FNMATCH_EXTFLAG) == 0) + { + *p1 = c; + *sp = p; + *ep = p1; + return 1; + } + *p1 = c; +#if 1 + /* If MLEN != -1, we have a fixed length pattern. */ + if (mlen != -1) + break; +#endif + } + } + } + + return (0); + + case MATCH_BEG: + if (match_pattern_char (pat, string) == 0) + return (0); + +#if 0 + for (p = end; p >= string; p--) +#else + for (p = (mlen == -1) ? end : string + mlen; p >= string; p--) +#endif + { + c = *p; *p = '\0'; + if (strmatch (pat, string, FNMATCH_EXTFLAG) == 0) + { + *p = c; + *sp = string; + *ep = p; + return 1; + } + *p = c; +#if 1 + /* If MLEN != -1, we have a fixed length pattern. */ + if (mlen != -1) + break; +#endif + } + + return (0); + + case MATCH_END: +#if 0 + for (p = string; p <= end; p++) +#else + for (p = end - ((mlen == -1) ? len : mlen); p <= end; p++) +#endif + { + if (strmatch (pat, p, FNMATCH_EXTFLAG) == 0) + { + *sp = p; + *ep = end; + return 1; + } +#if 1 + /* If MLEN != -1, we have a fixed length pattern. */ + if (mlen != -1) + break; +#endif + } + + return (0); + } + + return (0); +} + +#if defined (HANDLE_MULTIBYTE) +/* Match WPAT anywhere in WSTRING and return the match boundaries. + This returns 1 in case of a successful match, 0 otherwise. Wide + character version. */ +static int +match_wpattern (wstring, indices, wstrlen, wpat, mtype, sp, ep) + wchar_t *wstring; + char **indices; + size_t wstrlen; + wchar_t *wpat; + int mtype; + char **sp, **ep; +{ + wchar_t wc, *wp, *nwpat, *wp1; + size_t len; + int mlen; + int n, n1, n2, simple; + + simple = (wpat[0] != L'\\' && wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'['); +#if defined (EXTENDED_GLOB) + if (extended_glob) + simple &= (wpat[1] != L'(' || (wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'+' && wpat[0] != L'!' && wpat[0] != L'@')); /*)*/ +#endif + + /* If the pattern doesn't match anywhere in the string, go ahead and + short-circuit right away. A minor optimization, saves a bunch of + unnecessary calls to strmatch (up to N calls for a string of N + characters) if the match is unsuccessful. To preserve the semantics + of the substring matches below, we make sure that the pattern has + `*' as first and last character, making a new pattern if necessary. */ + len = wcslen (wpat); + if (wpat[0] != L'*' || (wpat[0] == L'*' && wpat[1] == WLPAREN && extended_glob) || wpat[len - 1] != L'*') + { + wp = nwpat = (wchar_t *)xmalloc ((len + 3) * sizeof (wchar_t)); + wp1 = wpat; + if (*wp1 != L'*' || (*wp1 == '*' && wp1[1] == WLPAREN && extended_glob)) + *wp++ = L'*'; + while (*wp1 != L'\0') + *wp++ = *wp1++; + if (wp1[-1] != L'*' || wp1[-2] == L'\\') + *wp++ = L'*'; + *wp = '\0'; + } + else + nwpat = wpat; + len = wcsmatch (nwpat, wstring, FNMATCH_EXTFLAG); + if (nwpat != wpat) + free (nwpat); + if (len == FNM_NOMATCH) + return (0); + + mlen = wmatchlen (wpat, wstrlen); + +/* itrace("wmatchlen (%ls) -> %d", wpat, mlen); */ + switch (mtype) + { + case MATCH_ANY: + for (n = 0; n <= wstrlen; n++) + { +#if 1 + n2 = simple ? (*wpat == wstring[n]) : match_pattern_wchar (wpat, wstring + n); +#else + n2 = match_pattern_wchar (wpat, wstring + n); +#endif + if (n2) + { +#if 0 + for (n1 = wstrlen; n1 >= n; n1--) +#else + n1 = (mlen == -1) ? wstrlen : n + mlen; + if (n1 > wstrlen) + break; + + for ( ; n1 >= n; n1--) +#endif + { + wc = wstring[n1]; wstring[n1] = L'\0'; + if (wcsmatch (wpat, wstring + n, FNMATCH_EXTFLAG) == 0) + { + wstring[n1] = wc; + *sp = indices[n]; + *ep = indices[n1]; + return 1; + } + wstring[n1] = wc; +#if 1 + /* If MLEN != -1, we have a fixed length pattern. */ + if (mlen != -1) + break; +#endif + } + } + } + + return (0); + + case MATCH_BEG: + if (match_pattern_wchar (wpat, wstring) == 0) + return (0); + +#if 0 + for (n = wstrlen; n >= 0; n--) +#else + for (n = (mlen == -1) ? wstrlen : mlen; n >= 0; n--) +#endif + { + wc = wstring[n]; wstring[n] = L'\0'; + if (wcsmatch (wpat, wstring, FNMATCH_EXTFLAG) == 0) + { + wstring[n] = wc; + *sp = indices[0]; + *ep = indices[n]; + return 1; + } + wstring[n] = wc; +#if 1 + /* If MLEN != -1, we have a fixed length pattern. */ + if (mlen != -1) + break; +#endif + } + + return (0); + + case MATCH_END: +#if 0 + for (n = 0; n <= wstrlen; n++) +#else + for (n = wstrlen - ((mlen == -1) ? wstrlen : mlen); n <= wstrlen; n++) +#endif + { + if (wcsmatch (wpat, wstring + n, FNMATCH_EXTFLAG) == 0) + { + *sp = indices[n]; + *ep = indices[wstrlen]; + return 1; + } +#if 1 + /* If MLEN != -1, we have a fixed length pattern. */ + if (mlen != -1) + break; +#endif + } + + return (0); + } + + return (0); +} +#endif /* HANDLE_MULTIBYTE */ + +static int +match_pattern (string, pat, mtype, sp, ep) + char *string, *pat; + int mtype; + char **sp, **ep; +{ +#if defined (HANDLE_MULTIBYTE) + int ret; + size_t n; + wchar_t *wstring, *wpat; + char **indices; + size_t slen, plen, mslen, mplen; +#endif + + if (string == 0 || *string == 0 || pat == 0 || *pat == 0) + return (0); + +#if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1) + { +#if 0 + slen = STRLEN (string); + mslen = MBSLEN (string); + plen = STRLEN (pat); + mplen = MBSLEN (pat); + if (slen == mslen && plen == mplen) +#else + if (mbsmbchar (string) == 0 && mbsmbchar (pat) == 0) +#endif + return (match_upattern (string, pat, mtype, sp, ep)); + + n = xdupmbstowcs (&wpat, NULL, pat); + if (n == (size_t)-1) + return (match_upattern (string, pat, mtype, sp, ep)); + n = xdupmbstowcs (&wstring, &indices, string); + if (n == (size_t)-1) + { + free (wpat); + return (match_upattern (string, pat, mtype, sp, ep)); + } + ret = match_wpattern (wstring, indices, n, wpat, mtype, sp, ep); + + free (wpat); + free (wstring); + free (indices); + + return (ret); + } + else +#endif + return (match_upattern (string, pat, mtype, sp, ep)); +} + +static int +getpatspec (c, value) + int c; + char *value; +{ + if (c == '#') + return ((*value == '#') ? RP_LONG_LEFT : RP_SHORT_LEFT); + else /* c == '%' */ + return ((*value == '%') ? RP_LONG_RIGHT : RP_SHORT_RIGHT); +} + +/* Posix.2 says that the WORD should be run through tilde expansion, + parameter expansion, command substitution and arithmetic expansion. + This leaves the result quoted, so quote_string_for_globbing () has + to be called to fix it up for strmatch (). If QUOTED is non-zero, + it means that the entire expression was enclosed in double quotes. + This means that quoting characters in the pattern do not make any + special pattern characters quoted. For example, the `*' in the + following retains its special meaning: "${foo#'*'}". */ +static char * +getpattern (value, quoted, expandpat) + char *value; + int quoted, expandpat; +{ + char *pat, *tword; + WORD_LIST *l; +#if 0 + int i; +#endif + /* There is a problem here: how to handle single or double quotes in the + pattern string when the whole expression is between double quotes? + POSIX.2 says that enclosing double quotes do not cause the pattern to + be quoted, but does that leave us a problem with @ and array[@] and their + expansions inside a pattern? */ +#if 0 + if (expandpat && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && *tword) + { + i = 0; + pat = string_extract_double_quoted (tword, &i, 1); + free (tword); + tword = pat; + } +#endif + + /* expand_string_for_rhs () leaves WORD quoted and does not perform + word splitting. */ + l = *value ? expand_string_for_rhs (value, + (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? Q_PATQUOTE : quoted, + (int *)NULL, (int *)NULL) + : (WORD_LIST *)0; + pat = string_list (l); + dispose_words (l); + if (pat) + { + tword = quote_string_for_globbing (pat, QGLOB_CVTNULL); + free (pat); + pat = tword; + } + return (pat); +} + +#if 0 +/* Handle removing a pattern from a string as a result of ${name%[%]value} + or ${name#[#]value}. */ +static char * +variable_remove_pattern (value, pattern, patspec, quoted) + char *value, *pattern; + int patspec, quoted; +{ + char *tword; + + tword = remove_pattern (value, pattern, patspec); + + return (tword); +} +#endif + +static char * +list_remove_pattern (list, pattern, patspec, itype, quoted) + WORD_LIST *list; + char *pattern; + int patspec, itype, quoted; +{ + WORD_LIST *new, *l; + WORD_DESC *w; + char *tword; + + for (new = (WORD_LIST *)NULL, l = list; l; l = l->next) + { + tword = remove_pattern (l->word->word, pattern, patspec); + w = alloc_word_desc (); + w->word = tword ? tword : savestring (""); + new = make_word_list (w, new); + } + + l = REVERSE_LIST (new, WORD_LIST *); + tword = string_list_pos_params (itype, l, quoted); + dispose_words (l); + + return (tword); +} + +static char * +parameter_list_remove_pattern (itype, pattern, patspec, quoted) + int itype; + char *pattern; + int patspec, quoted; +{ + char *ret; + WORD_LIST *list; + + list = list_rest_of_args (); + if (list == 0) + return ((char *)NULL); + ret = list_remove_pattern (list, pattern, patspec, itype, quoted); + dispose_words (list); + return (ret); +} + +#if defined (ARRAY_VARS) +static char * +array_remove_pattern (var, pattern, patspec, varname, quoted) + SHELL_VAR *var; + char *pattern; + int patspec; + char *varname; /* so we can figure out how it's indexed */ + int quoted; +{ + ARRAY *a; + HASH_TABLE *h; + int itype; + char *ret; + WORD_LIST *list; + SHELL_VAR *v; + + /* compute itype from varname here */ + v = array_variable_part (varname, &ret, 0); + itype = ret[0]; + + a = (v && array_p (v)) ? array_cell (v) : 0; + h = (v && assoc_p (v)) ? assoc_cell (v) : 0; + + list = a ? array_to_word_list (a) : (h ? assoc_to_word_list (h) : 0); + if (list == 0) + return ((char *)NULL); + ret = list_remove_pattern (list, pattern, patspec, itype, quoted); + dispose_words (list); + + return ret; +} +#endif /* ARRAY_VARS */ + +static char * +parameter_brace_remove_pattern (varname, value, ind, patstr, rtype, quoted, flags) + char *varname, *value; + int ind; + char *patstr; + int rtype, quoted, flags; +{ + int vtype, patspec, starsub; + char *temp1, *val, *pattern; + SHELL_VAR *v; + + if (value == 0) + return ((char *)NULL); + + this_command_name = varname; + + vtype = get_var_and_type (varname, value, ind, quoted, flags, &v, &val); + if (vtype == -1) + return ((char *)NULL); + + starsub = vtype & VT_STARSUB; + vtype &= ~VT_STARSUB; + + patspec = getpatspec (rtype, patstr); + if (patspec == RP_LONG_LEFT || patspec == RP_LONG_RIGHT) + patstr++; + + /* Need to pass getpattern newly-allocated memory in case of expansion -- + the expansion code will free the passed string on an error. */ + temp1 = savestring (patstr); + pattern = getpattern (temp1, quoted, 1); + free (temp1); + + temp1 = (char *)NULL; /* shut up gcc */ + switch (vtype) + { + case VT_VARIABLE: + case VT_ARRAYMEMBER: + temp1 = remove_pattern (val, pattern, patspec); + if (vtype == VT_VARIABLE) + FREE (val); + if (temp1) + { + val = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + ? quote_string (temp1) + : quote_escapes (temp1); + free (temp1); + temp1 = val; + } + break; +#if defined (ARRAY_VARS) + case VT_ARRAYVAR: + temp1 = array_remove_pattern (v, pattern, patspec, varname, quoted); + if (temp1 && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0)) + { + val = quote_escapes (temp1); + free (temp1); + temp1 = val; + } + break; +#endif + case VT_POSPARMS: + temp1 = parameter_list_remove_pattern (varname[0], pattern, patspec, quoted); + if (temp1 && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0)) + { + val = quote_escapes (temp1); + free (temp1); + temp1 = val; + } + break; + } + + FREE (pattern); + return temp1; +} + +/******************************************* + * * + * Functions to expand WORD_DESCs * + * * + *******************************************/ + +/* Expand WORD, performing word splitting on the result. This does + parameter expansion, command substitution, arithmetic expansion, + word splitting, and quote removal. */ + +WORD_LIST * +expand_word (word, quoted) + WORD_DESC *word; + int quoted; +{ + WORD_LIST *result, *tresult; + + tresult = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL); + result = word_list_split (tresult); + dispose_words (tresult); + return (result ? dequote_list (result) : result); +} + +/* Expand WORD, but do not perform word splitting on the result. This + does parameter expansion, command substitution, arithmetic expansion, + and quote removal. */ +WORD_LIST * +expand_word_unsplit (word, quoted) + WORD_DESC *word; + int quoted; +{ + WORD_LIST *result; + + expand_no_split_dollar_star = 1; +#if defined (HANDLE_MULTIBYTE) + if (ifs_firstc[0] == 0) +#else + if (ifs_firstc == 0) +#endif + word->flags |= W_NOSPLIT; + word->flags |= W_NOSPLIT2; + result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL); + expand_no_split_dollar_star = 0; + + return (result ? dequote_list (result) : result); +} + +/* Perform shell expansions on WORD, but do not perform word splitting or + quote removal on the result. Virtually identical to expand_word_unsplit; + could be combined if implementations don't diverge. */ +WORD_LIST * +expand_word_leave_quoted (word, quoted) + WORD_DESC *word; + int quoted; +{ + WORD_LIST *result; + + expand_no_split_dollar_star = 1; +#if defined (HANDLE_MULTIBYTE) + if (ifs_firstc[0] == 0) +#else + if (ifs_firstc == 0) +#endif + word->flags |= W_NOSPLIT; + word->flags |= W_NOSPLIT2; + result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL); + expand_no_split_dollar_star = 0; + + return result; +} + +#if defined (PROCESS_SUBSTITUTION) + +/*****************************************************************/ +/* */ +/* Hacking Process Substitution */ +/* */ +/*****************************************************************/ + +#if !defined (HAVE_DEV_FD) +/* Named pipes must be removed explicitly with `unlink'. This keeps a list + of FIFOs the shell has open. unlink_fifo_list will walk the list and + unlink all of them. add_fifo_list adds the name of an open FIFO to the + list. NFIFO is a count of the number of FIFOs in the list. */ +#define FIFO_INCR 20 + +struct temp_fifo { + char *file; + pid_t proc; +}; + +static struct temp_fifo *fifo_list = (struct temp_fifo *)NULL; +static int nfifo; +static int fifo_list_size; + +char * +copy_fifo_list (sizep) + int *sizep; +{ + if (sizep) + *sizep = 0; + return (char *)NULL; +} + +static void +add_fifo_list (pathname) + char *pathname; +{ + if (nfifo >= fifo_list_size - 1) + { + fifo_list_size += FIFO_INCR; + fifo_list = (struct temp_fifo *)xrealloc (fifo_list, + fifo_list_size * sizeof (struct temp_fifo)); + } + + fifo_list[nfifo].file = savestring (pathname); + nfifo++; +} + +void +unlink_fifo (i) + int i; +{ + if ((fifo_list[i].proc == -1) || (kill(fifo_list[i].proc, 0) == -1)) + { + unlink (fifo_list[i].file); + free (fifo_list[i].file); + fifo_list[i].file = (char *)NULL; + fifo_list[i].proc = -1; + } +} + +void +unlink_fifo_list () +{ + int saved, i, j; + + if (nfifo == 0) + return; + + for (i = saved = 0; i < nfifo; i++) + { + if ((fifo_list[i].proc == -1) || (kill(fifo_list[i].proc, 0) == -1)) + { + unlink (fifo_list[i].file); + free (fifo_list[i].file); + fifo_list[i].file = (char *)NULL; + fifo_list[i].proc = -1; + } + else + saved++; + } + + /* If we didn't remove some of the FIFOs, compact the list. */ + if (saved) + { + for (i = j = 0; i < nfifo; i++) + if (fifo_list[i].file) + { + fifo_list[j].file = fifo_list[i].file; + fifo_list[j].proc = fifo_list[i].proc; + j++; + } + nfifo = j; + } + else + nfifo = 0; +} + +/* Take LIST, which is a bitmap denoting active FIFOs in fifo_list + from some point in the past, and close all open FIFOs in fifo_list + that are not marked as active in LIST. If LIST is NULL, close + everything in fifo_list. LSIZE is the number of elements in LIST, in + case it's larger than fifo_list_size (size of fifo_list). */ +void +close_new_fifos (list, lsize) + char *list; + int lsize; +{ + int i; + + if (list == 0) + { + unlink_fifo_list (); + return; + } + + for (i = 0; i < lsize; i++) + if (list[i] == 0 && i < fifo_list_size && fifo_list[i].proc != -1) + unlink_fifo (i); + + for (i = lsize; i < fifo_list_size; i++) + unlink_fifo (i); +} + +int +fifos_pending () +{ + return nfifo; +} + +int +num_fifos () +{ + return nfifo; +} + +static char * +make_named_pipe () +{ + char *tname; + + tname = sh_mktmpname ("sh-np", MT_USERANDOM|MT_USETMPDIR); + if (mkfifo (tname, 0600) < 0) + { + free (tname); + return ((char *)NULL); + } + + add_fifo_list (tname); + return (tname); +} + +#else /* HAVE_DEV_FD */ + +/* DEV_FD_LIST is a bitmap of file descriptors attached to pipes the shell + has open to children. NFDS is a count of the number of bits currently + set in DEV_FD_LIST. TOTFDS is a count of the highest possible number + of open files. */ +static char *dev_fd_list = (char *)NULL; +static int nfds; +static int totfds; /* The highest possible number of open files. */ + +char * +copy_fifo_list (sizep) + int *sizep; +{ + char *ret; + + if (nfds == 0 || totfds == 0) + { + if (sizep) + *sizep = 0; + return (char *)NULL; + } + + if (sizep) + *sizep = totfds; + ret = (char *)xmalloc (totfds); + return (memcpy (ret, dev_fd_list, totfds)); +} + +static void +add_fifo_list (fd) + int fd; +{ + if (dev_fd_list == 0 || fd >= totfds) + { + int ofds; + + ofds = totfds; + totfds = getdtablesize (); + if (totfds < 0 || totfds > 256) + totfds = 256; + if (fd >= totfds) + totfds = fd + 2; + + dev_fd_list = (char *)xrealloc (dev_fd_list, totfds); + memset (dev_fd_list + ofds, '\0', totfds - ofds); + } + + dev_fd_list[fd] = 1; + nfds++; +} + +int +fifos_pending () +{ + return 0; /* used for cleanup; not needed with /dev/fd */ +} + +int +num_fifos () +{ + return nfds; +} + +void +unlink_fifo (fd) + int fd; +{ + if (dev_fd_list[fd]) + { + close (fd); + dev_fd_list[fd] = 0; + nfds--; + } +} + +void +unlink_fifo_list () +{ + register int i; + + if (nfds == 0) + return; + + for (i = 0; nfds && i < totfds; i++) + unlink_fifo (i); + + nfds = 0; +} + +/* Take LIST, which is a snapshot copy of dev_fd_list from some point in + the past, and close all open fds in dev_fd_list that are not marked + as open in LIST. If LIST is NULL, close everything in dev_fd_list. + LSIZE is the number of elements in LIST, in case it's larger than + totfds (size of dev_fd_list). */ +void +close_new_fifos (list, lsize) + char *list; + int lsize; +{ + int i; + + if (list == 0) + { + unlink_fifo_list (); + return; + } + + for (i = 0; i < lsize; i++) + if (list[i] == 0 && i < totfds && dev_fd_list[i]) + unlink_fifo (i); + + for (i = lsize; i < totfds; i++) + unlink_fifo (i); +} + +#if defined (NOTDEF) +print_dev_fd_list () +{ + register int i; + + fprintf (stderr, "pid %ld: dev_fd_list:", (long)getpid ()); + fflush (stderr); + + for (i = 0; i < totfds; i++) + { + if (dev_fd_list[i]) + fprintf (stderr, " %d", i); + } + fprintf (stderr, "\n"); +} +#endif /* NOTDEF */ + +static char * +make_dev_fd_filename (fd) + int fd; +{ + char *ret, intbuf[INT_STRLEN_BOUND (int) + 1], *p; + + ret = (char *)xmalloc (sizeof (DEV_FD_PREFIX) + 8); + + strcpy (ret, DEV_FD_PREFIX); + p = inttostr (fd, intbuf, sizeof (intbuf)); + strcpy (ret + sizeof (DEV_FD_PREFIX) - 1, p); + + add_fifo_list (fd); + return (ret); +} + +#endif /* HAVE_DEV_FD */ + +/* Return a filename that will open a connection to the process defined by + executing STRING. HAVE_DEV_FD, if defined, means open a pipe and return + a filename in /dev/fd corresponding to a descriptor that is one of the + ends of the pipe. If not defined, we use named pipes on systems that have + them. Systems without /dev/fd and named pipes are out of luck. + + OPEN_FOR_READ_IN_CHILD, if 1, means open the named pipe for reading or + use the read end of the pipe and dup that file descriptor to fd 0 in + the child. If OPEN_FOR_READ_IN_CHILD is 0, we open the named pipe for + writing or use the write end of the pipe in the child, and dup that + file descriptor to fd 1 in the child. The parent does the opposite. */ + +static char * +process_substitute (string, open_for_read_in_child) + char *string; + int open_for_read_in_child; +{ + char *pathname; + int fd, result; + pid_t old_pid, pid; +#if defined (HAVE_DEV_FD) + int parent_pipe_fd, child_pipe_fd; + int fildes[2]; +#endif /* HAVE_DEV_FD */ +#if defined (JOB_CONTROL) + pid_t old_pipeline_pgrp; +#endif + + if (!string || !*string || wordexp_only) + return ((char *)NULL); + +#if !defined (HAVE_DEV_FD) + pathname = make_named_pipe (); +#else /* HAVE_DEV_FD */ + if (pipe (fildes) < 0) + { + sys_error (_("cannot make pipe for process substitution")); + return ((char *)NULL); + } + /* If OPEN_FOR_READ_IN_CHILD == 1, we want to use the write end of + the pipe in the parent, otherwise the read end. */ + parent_pipe_fd = fildes[open_for_read_in_child]; + child_pipe_fd = fildes[1 - open_for_read_in_child]; + /* Move the parent end of the pipe to some high file descriptor, to + avoid clashes with FDs used by the script. */ + parent_pipe_fd = move_to_high_fd (parent_pipe_fd, 1, 64); + + pathname = make_dev_fd_filename (parent_pipe_fd); +#endif /* HAVE_DEV_FD */ + + if (pathname == 0) + { + sys_error (_("cannot make pipe for process substitution")); + return ((char *)NULL); + } + + old_pid = last_made_pid; + +#if defined (JOB_CONTROL) + old_pipeline_pgrp = pipeline_pgrp; + pipeline_pgrp = shell_pgrp; + save_pipeline (1); +#endif /* JOB_CONTROL */ + + pid = make_child ((char *)NULL, 1); + if (pid == 0) + { + reset_terminating_signals (); /* XXX */ + free_pushed_string_input (); + /* Cancel traps, in trap.c. */ + restore_original_signals (); /* XXX - what about special builtins? bash-4.2 */ + setup_async_signals (); + subshell_environment |= SUBSHELL_COMSUB|SUBSHELL_PROCSUB; + } + +#if defined (JOB_CONTROL) + set_sigchld_handler (); + stop_making_children (); + /* XXX - should we only do this in the parent? (as in command subst) */ + pipeline_pgrp = old_pipeline_pgrp; +#endif /* JOB_CONTROL */ + + if (pid < 0) + { + sys_error (_("cannot make child for process substitution")); + free (pathname); +#if defined (HAVE_DEV_FD) + close (parent_pipe_fd); + close (child_pipe_fd); +#endif /* HAVE_DEV_FD */ + return ((char *)NULL); + } + + if (pid > 0) + { +#if defined (JOB_CONTROL) + restore_pipeline (1); +#endif + +#if !defined (HAVE_DEV_FD) + fifo_list[nfifo-1].proc = pid; +#endif + + last_made_pid = old_pid; + +#if defined (JOB_CONTROL) && defined (PGRP_PIPE) + close_pgrp_pipe (); +#endif /* JOB_CONTROL && PGRP_PIPE */ + +#if defined (HAVE_DEV_FD) + close (child_pipe_fd); +#endif /* HAVE_DEV_FD */ + + return (pathname); + } + + set_sigint_handler (); + +#if defined (JOB_CONTROL) + set_job_control (0); +#endif /* JOB_CONTROL */ + +#if !defined (HAVE_DEV_FD) + /* Open the named pipe in the child. */ + fd = open (pathname, open_for_read_in_child ? O_RDONLY|O_NONBLOCK : O_WRONLY); + if (fd < 0) + { + /* Two separate strings for ease of translation. */ + if (open_for_read_in_child) + sys_error (_("cannot open named pipe %s for reading"), pathname); + else + sys_error (_("cannot open named pipe %s for writing"), pathname); + + exit (127); + } + if (open_for_read_in_child) + { + if (sh_unset_nodelay_mode (fd) < 0) + { + sys_error (_("cannot reset nodelay mode for fd %d"), fd); + exit (127); + } + } +#else /* HAVE_DEV_FD */ + fd = child_pipe_fd; +#endif /* HAVE_DEV_FD */ + + if (dup2 (fd, open_for_read_in_child ? 0 : 1) < 0) + { + sys_error (_("cannot duplicate named pipe %s as fd %d"), pathname, + open_for_read_in_child ? 0 : 1); + exit (127); + } + + if (fd != (open_for_read_in_child ? 0 : 1)) + close (fd); + + /* Need to close any files that this process has open to pipes inherited + from its parent. */ + if (current_fds_to_close) + { + close_fd_bitmap (current_fds_to_close); + current_fds_to_close = (struct fd_bitmap *)NULL; + } + +#if defined (HAVE_DEV_FD) + /* Make sure we close the parent's end of the pipe and clear the slot + in the fd list so it is not closed later, if reallocated by, for + instance, pipe(2). */ + close (parent_pipe_fd); + dev_fd_list[parent_pipe_fd] = 0; +#endif /* HAVE_DEV_FD */ + + /* subshells shouldn't have this flag, which controls using the temporary + environment for variable lookups. */ + expanding_redir = 0; + + result = parse_and_execute (string, "process substitution", (SEVAL_NONINT|SEVAL_NOHIST)); + +#if !defined (HAVE_DEV_FD) + /* Make sure we close the named pipe in the child before we exit. */ + close (open_for_read_in_child ? 0 : 1); +#endif /* !HAVE_DEV_FD */ + + exit (result); + /*NOTREACHED*/ +} +#endif /* PROCESS_SUBSTITUTION */ + +/***********************************/ +/* */ +/* Command Substitution */ +/* */ +/***********************************/ + +static char * +read_comsub (fd, quoted, rflag) + int fd, quoted; + int *rflag; +{ + char *istring, buf[128], *bufp, *s; + int istring_index, istring_size, c, tflag, skip_ctlesc, skip_ctlnul; + ssize_t bufn; + + istring = (char *)NULL; + istring_index = istring_size = bufn = tflag = 0; + + for (skip_ctlesc = skip_ctlnul = 0, s = ifs_value; s && *s; s++) + skip_ctlesc |= *s == CTLESC, skip_ctlnul |= *s == CTLNUL; + + /* Read the output of the command through the pipe. This may need to be + changed to understand multibyte characters in the future. */ + while (1) + { + if (fd < 0) + break; + if (--bufn <= 0) + { + bufn = zread (fd, buf, sizeof (buf)); + if (bufn <= 0) + break; + bufp = buf; + } + c = *bufp++; + + if (c == 0) + { +#if 0 + internal_warning ("read_comsub: ignored null byte in input"); +#endif + continue; + } + + /* Add the character to ISTRING, possibly after resizing it. */ + RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE); + + /* This is essentially quote_string inline */ + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) /* || c == CTLESC || c == CTLNUL */) + istring[istring_index++] = CTLESC; + /* Escape CTLESC and CTLNUL in the output to protect those characters + from the rest of the word expansions (word splitting and globbing.) + This is essentially quote_escapes inline. */ + else if (skip_ctlesc == 0 && c == CTLESC) + { + tflag |= W_HASCTLESC; + istring[istring_index++] = CTLESC; + } + else if ((skip_ctlnul == 0 && c == CTLNUL) || (c == ' ' && (ifs_value && *ifs_value == 0))) + istring[istring_index++] = CTLESC; + + istring[istring_index++] = c; + +#if 0 +#if defined (__CYGWIN__) + if (c == '\n' && istring_index > 1 && istring[istring_index - 2] == '\r') + { + istring_index--; + istring[istring_index - 1] = '\n'; + } +#endif +#endif + } + + if (istring) + istring[istring_index] = '\0'; + + /* If we read no output, just return now and save ourselves some + trouble. */ + if (istring_index == 0) + { + FREE (istring); + if (rflag) + *rflag = tflag; + return (char *)NULL; + } + + /* Strip trailing newlines from the output of the command. */ + if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + { + while (istring_index > 0) + { + if (istring[istring_index - 1] == '\n') + { + --istring_index; + + /* If the newline was quoted, remove the quoting char. */ + if (istring[istring_index - 1] == CTLESC) + --istring_index; + } + else + break; + } + istring[istring_index] = '\0'; + } + else + strip_trailing (istring, istring_index - 1, 1); + + if (rflag) + *rflag = tflag; + return istring; +} + +/* Perform command substitution on STRING. This returns a WORD_DESC * with the + contained string possibly quoted. */ +WORD_DESC * +command_substitute (string, quoted) + char *string; + int quoted; +{ + pid_t pid, old_pid, old_pipeline_pgrp, old_async_pid; + char *istring; + int result, fildes[2], function_value, pflags, rc, tflag; + WORD_DESC *ret; + + istring = (char *)NULL; + + /* Don't fork () if there is no need to. In the case of no command to + run, just return NULL. */ + if (!string || !*string || (string[0] == '\n' && !string[1])) + return ((WORD_DESC *)NULL); + + if (wordexp_only && read_but_dont_execute) + { + last_command_exit_value = EX_WEXPCOMSUB; + jump_to_top_level (EXITPROG); + } + + /* We're making the assumption here that the command substitution will + eventually run a command from the file system. Since we'll run + maybe_make_export_env in this subshell before executing that command, + the parent shell and any other shells it starts will have to remake + the environment. If we make it before we fork, other shells won't + have to. Don't bother if we have any temporary variable assignments, + though, because the export environment will be remade after this + command completes anyway, but do it if all the words to be expanded + are variable assignments. */ + if (subst_assign_varlist == 0 || garglist == 0) + maybe_make_export_env (); /* XXX */ + + /* Flags to pass to parse_and_execute() */ + pflags = (interactive && sourcelevel == 0) ? SEVAL_RESETLINE : 0; + + /* Pipe the output of executing STRING into the current shell. */ + if (pipe (fildes) < 0) + { + sys_error (_("cannot make pipe for command substitution")); + goto error_exit; + } + + old_pid = last_made_pid; +#if defined (JOB_CONTROL) + old_pipeline_pgrp = pipeline_pgrp; + /* Don't reset the pipeline pgrp if we're already a subshell in a pipeline. */ + if ((subshell_environment & SUBSHELL_PIPE) == 0) + pipeline_pgrp = shell_pgrp; + cleanup_the_pipeline (); +#endif /* JOB_CONTROL */ + + old_async_pid = last_asynchronous_pid; + pid = make_child ((char *)NULL, subshell_environment&SUBSHELL_ASYNC); + last_asynchronous_pid = old_async_pid; + + if (pid == 0) + { + /* Reset the signal handlers in the child, but don't free the + trap strings. Set a flag noting that we have to free the + trap strings if we run trap to change a signal disposition. */ + reset_signal_handlers (); + subshell_environment |= SUBSHELL_RESETTRAP; + } + +#if defined (JOB_CONTROL) + /* XXX DO THIS ONLY IN PARENT ? XXX */ + set_sigchld_handler (); + stop_making_children (); + if (pid != 0) + pipeline_pgrp = old_pipeline_pgrp; +#else + stop_making_children (); +#endif /* JOB_CONTROL */ + + if (pid < 0) + { + sys_error (_("cannot make child for command substitution")); + error_exit: + + last_made_pid = old_pid; + + FREE (istring); + close (fildes[0]); + close (fildes[1]); + return ((WORD_DESC *)NULL); + } + + if (pid == 0) + { + set_sigint_handler (); /* XXX */ + + free_pushed_string_input (); + + if (dup2 (fildes[1], 1) < 0) + { + sys_error (_("command_substitute: cannot duplicate pipe as fd 1")); + exit (EXECUTION_FAILURE); + } + + /* If standard output is closed in the parent shell + (such as after `exec >&-'), file descriptor 1 will be + the lowest available file descriptor, and end up in + fildes[0]. This can happen for stdin and stderr as well, + but stdout is more important -- it will cause no output + to be generated from this command. */ + if ((fildes[1] != fileno (stdin)) && + (fildes[1] != fileno (stdout)) && + (fildes[1] != fileno (stderr))) + close (fildes[1]); + + if ((fildes[0] != fileno (stdin)) && + (fildes[0] != fileno (stdout)) && + (fildes[0] != fileno (stderr))) + close (fildes[0]); + +#ifdef __CYGWIN__ + /* Let stdio know the fd may have changed from text to binary mode, and + make sure to preserve stdout line buffering. */ + freopen (NULL, "w", stdout); + sh_setlinebuf (stdout); +#endif /* __CYGWIN__ */ + + /* The currently executing shell is not interactive. */ + interactive = 0; + + /* This is a subshell environment. */ + subshell_environment |= SUBSHELL_COMSUB; + + /* When not in POSIX mode, command substitution does not inherit + the -e flag. */ + if (posixly_correct == 0) + { + builtin_ignoring_errexit = 0; + change_flag ('e', FLAG_OFF); + set_shellopts (); + } + + remove_quoted_escapes (string); + + startup_state = 2; /* see if we can avoid a fork */ + /* Give command substitution a place to jump back to on failure, + so we don't go back up to main (). */ + result = setjmp_nosigs (top_level); + + /* If we're running a command substitution inside a shell function, + trap `return' so we don't return from the function in the subshell + and go off to never-never land. */ + if (result == 0 && return_catch_flag) + function_value = setjmp_nosigs (return_catch); + else + function_value = 0; + + if (result == ERREXIT) + rc = last_command_exit_value; + else if (result == EXITPROG) + rc = last_command_exit_value; + else if (result) + rc = EXECUTION_FAILURE; + else if (function_value) + rc = return_catch_value; + else + { + subshell_level++; + rc = parse_and_execute (string, "command substitution", pflags|SEVAL_NOHIST); + subshell_level--; + } + + last_command_exit_value = rc; + rc = run_exit_trap (); +#if defined (PROCESS_SUBSTITUTION) + unlink_fifo_list (); +#endif + exit (rc); + } + else + { +#if defined (JOB_CONTROL) && defined (PGRP_PIPE) + close_pgrp_pipe (); +#endif /* JOB_CONTROL && PGRP_PIPE */ + + close (fildes[1]); + + tflag = 0; + istring = read_comsub (fildes[0], quoted, &tflag); + + close (fildes[0]); + + current_command_subst_pid = pid; + last_command_exit_value = wait_for (pid); + last_command_subst_pid = pid; + last_made_pid = old_pid; + +#if defined (JOB_CONTROL) + /* If last_command_exit_value > 128, then the substituted command + was terminated by a signal. If that signal was SIGINT, then send + SIGINT to ourselves. This will break out of loops, for instance. */ + if (last_command_exit_value == (128 + SIGINT) && last_command_exit_signal == SIGINT) + kill (getpid (), SIGINT); + + /* wait_for gives the terminal back to shell_pgrp. If some other + process group should have it, give it away to that group here. + pipeline_pgrp is non-zero only while we are constructing a + pipline, so what we are concerned about is whether or not that + pipeline was started in the background. A pipeline started in + the background should never get the tty back here. */ + if (interactive && pipeline_pgrp != (pid_t)0 && (subshell_environment & SUBSHELL_ASYNC) == 0) + give_terminal_to (pipeline_pgrp, 0); +#endif /* JOB_CONTROL */ + + ret = alloc_word_desc (); + ret->word = istring; + ret->flags = tflag; + + return ret; + } +} + +/******************************************************** + * * + * Utility functions for parameter expansion * + * * + ********************************************************/ + +#if defined (ARRAY_VARS) + +static arrayind_t +array_length_reference (s) + char *s; +{ + int len; + arrayind_t ind; + char *akey; + char *t, c; + ARRAY *array; + HASH_TABLE *h; + SHELL_VAR *var; + + var = array_variable_part (s, &t, &len); + + /* If unbound variables should generate an error, report one and return + failure. */ + if ((var == 0 || (assoc_p (var) == 0 && array_p (var) == 0)) && unbound_vars_is_error) + { + c = *--t; + *t = '\0'; + last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (s); + *t = c; + return (-1); + } + else if (var == 0) + return 0; + + /* We support a couple of expansions for variables that are not arrays. + We'll return the length of the value for v[0], and 1 for v[@] or + v[*]. Return 0 for everything else. */ + + array = array_p (var) ? array_cell (var) : (ARRAY *)NULL; + h = assoc_p (var) ? assoc_cell (var) : (HASH_TABLE *)NULL; + + if (ALL_ELEMENT_SUB (t[0]) && t[1] == ']') + { + if (assoc_p (var)) + return (h ? assoc_num_elements (h) : 0); + else if (array_p (var)) + return (array ? array_num_elements (array) : 0); + else + return (var_isset (var) ? 1 : 0); + } + + if (assoc_p (var)) + { + t[len - 1] = '\0'; + akey = expand_assignment_string_to_string (t, 0); /* [ */ + t[len - 1] = ']'; + if (akey == 0 || *akey == 0) + { + err_badarraysub (t); + FREE (akey); + return (-1); + } + t = assoc_reference (assoc_cell (var), akey); + free (akey); + } + else + { + ind = array_expand_index (var, t, len); + /* negative subscripts to indexed arrays count back from end */ + if (var && array_p (var) && ind < 0) + ind = array_max_index (array_cell (var)) + 1 + ind; + if (ind < 0) + { + err_badarraysub (t); + return (-1); + } + if (array_p (var)) + t = array_reference (array, ind); + else + t = (ind == 0) ? value_cell (var) : (char *)NULL; + } + + len = MB_STRLEN (t); + return (len); +} +#endif /* ARRAY_VARS */ + +static int +valid_brace_expansion_word (name, var_is_special) + char *name; + int var_is_special; +{ + if (DIGIT (*name) && all_digits (name)) + return 1; + else if (var_is_special) + return 1; +#if defined (ARRAY_VARS) + else if (valid_array_reference (name)) + return 1; +#endif /* ARRAY_VARS */ + else if (legal_identifier (name)) + return 1; + else + return 0; +} + +static int +chk_atstar (name, quoted, quoted_dollar_atp, contains_dollar_at) + char *name; + int quoted; + int *quoted_dollar_atp, *contains_dollar_at; +{ + char *temp1; + + if (name == 0) + { + if (quoted_dollar_atp) + *quoted_dollar_atp = 0; + if (contains_dollar_at) + *contains_dollar_at = 0; + return 0; + } + + /* check for $@ and $* */ + if (name[0] == '@' && name[1] == 0) + { + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) + *quoted_dollar_atp = 1; + if (contains_dollar_at) + *contains_dollar_at = 1; + return 1; + } + else if (name[0] == '*' && name[1] == '\0' && quoted == 0) + { + if (contains_dollar_at) + *contains_dollar_at = 1; + return 1; + } + + /* Now check for ${array[@]} and ${array[*]} */ +#if defined (ARRAY_VARS) + else if (valid_array_reference (name)) + { + temp1 = mbschr (name, '['); + if (temp1 && temp1[1] == '@' && temp1[2] == ']') + { + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) + *quoted_dollar_atp = 1; + if (contains_dollar_at) + *contains_dollar_at = 1; + return 1; + } /* [ */ + /* ${array[*]}, when unquoted, should be treated like ${array[@]}, + which should result in separate words even when IFS is unset. */ + if (temp1 && temp1[1] == '*' && temp1[2] == ']' && quoted == 0) + { + if (contains_dollar_at) + *contains_dollar_at = 1; + return 1; + } + } +#endif + return 0; +} + +/* Parameter expand NAME, and return a new string which is the expansion, + or NULL if there was no expansion. + VAR_IS_SPECIAL is non-zero if NAME is one of the special variables in + the shell, e.g., "@", "$", "*", etc. QUOTED, if non-zero, means that + NAME was found inside of a double-quoted expression. */ +static WORD_DESC * +parameter_brace_expand_word (name, var_is_special, quoted, pflags, indp) + char *name; + int var_is_special, quoted, pflags; + arrayind_t *indp; +{ + WORD_DESC *ret; + char *temp, *tt; + intmax_t arg_index; + SHELL_VAR *var; + int atype, rflags; + arrayind_t ind; + + ret = 0; + temp = 0; + rflags = 0; + + if (indp) + *indp = INTMAX_MIN; + + /* Handle multiple digit arguments, as in ${11}. */ + if (legal_number (name, &arg_index)) + { + tt = get_dollar_var_value (arg_index); + if (tt) + temp = (*tt && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) + ? quote_string (tt) + : quote_escapes (tt); + else + temp = (char *)NULL; + FREE (tt); + } + else if (var_is_special) /* ${@} */ + { + int sindex; + tt = (char *)xmalloc (2 + strlen (name)); + tt[sindex = 0] = '$'; + strcpy (tt + 1, name); + + ret = param_expand (tt, &sindex, quoted, (int *)NULL, (int *)NULL, + (int *)NULL, (int *)NULL, pflags); + free (tt); + } +#if defined (ARRAY_VARS) + else if (valid_array_reference (name)) + { +expand_arrayref: + /* XXX - does this leak if name[@] or name[*]? */ + temp = array_value (name, quoted, 0, &atype, &ind); + if (atype == 0 && temp) + { + temp = (*temp && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) + ? quote_string (temp) + : quote_escapes (temp); + rflags |= W_ARRAYIND; + if (indp) + *indp = ind; + } + else if (atype == 1 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) + rflags |= W_HASQUOTEDNULL; + } +#endif + else if (var = find_variable (name)) + { + if (var_isset (var) && invisible_p (var) == 0) + { +#if defined (ARRAY_VARS) + if (assoc_p (var)) + temp = assoc_reference (assoc_cell (var), "0"); + else if (array_p (var)) + temp = array_reference (array_cell (var), 0); + else + temp = value_cell (var); +#else + temp = value_cell (var); +#endif + + if (temp) + temp = (*temp && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) + ? quote_string (temp) + : quote_escapes (temp); + } + else + temp = (char *)NULL; + } + else if (var = find_variable_last_nameref (name)) + { + temp = nameref_cell (var); +#if defined (ARRAY_VARS) + /* Handle expanding nameref whose value is x[n] */ + if (temp && *temp && valid_array_reference (temp)) + { + name = temp; + goto expand_arrayref; + } +#endif + /* y=2 ; typeset -n x=y; echo ${x} is not the same as echo ${2} in ksh */ + else if (temp && *temp && legal_identifier (temp) == 0) + { + last_command_exit_value = EXECUTION_FAILURE; + report_error (_("%s: invalid variable name for name reference"), temp); + temp = &expand_param_error; + } + else + temp = (char *)NULL; + } + else + temp = (char *)NULL; + + if (ret == 0) + { + ret = alloc_word_desc (); + ret->word = temp; + ret->flags |= rflags; + } + return ret; +} + +/* Expand an indirect reference to a variable: ${!NAME} expands to the + value of the variable whose name is the value of NAME. */ +static WORD_DESC * +parameter_brace_expand_indir (name, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at) + char *name; + int var_is_special, quoted; + int *quoted_dollar_atp, *contains_dollar_at; +{ + char *temp, *t; + WORD_DESC *w; + SHELL_VAR *v; + + /* See if it's a nameref first, behave in ksh93-compatible fashion. + There is at least one incompatibility: given ${!foo[0]} where foo=bar, + bash performs an indirect lookup on foo[0] and expands the result; + ksh93 expands bar[0]. We could do that here -- there are enough usable + primitives to do that -- but do not at this point. */ + if (var_is_special == 0 && (v = find_variable_last_nameref (name))) + { + if (nameref_p (v) && (t = nameref_cell (v)) && *t) + { + w = alloc_word_desc (); + w->word = savestring (t); + w->flags = 0; + return w; + } + } + + /* If var_is_special == 0, and name is not an array reference, this does + more expansion than necessary. It should really look up the variable's + value and not try to expand it. */ + w = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND, 0); + t = w->word; + /* Have to dequote here if necessary */ + if (t) + { + temp = (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) + ? dequote_string (t) + : dequote_escapes (t); + free (t); + t = temp; + } + dispose_word_desc (w); + + chk_atstar (t, quoted, quoted_dollar_atp, contains_dollar_at); + if (t == 0) + return (WORD_DESC *)NULL; + + w = parameter_brace_expand_word (t, SPECIAL_VAR(t, 0), quoted, 0, 0); + free (t); + + return w; +} + +/* Expand the right side of a parameter expansion of the form ${NAMEcVALUE}, + depending on the value of C, the separating character. C can be one of + "-", "+", or "=". QUOTED is true if the entire brace expression occurs + between double quotes. */ +static WORD_DESC * +parameter_brace_expand_rhs (name, value, c, quoted, qdollaratp, hasdollarat) + char *name, *value; + int c, quoted, *qdollaratp, *hasdollarat; +{ + WORD_DESC *w; + WORD_LIST *l; + char *t, *t1, *temp; + int hasdol; + + /* If the entire expression is between double quotes, we want to treat + the value as a double-quoted string, with the exception that we strip + embedded unescaped double quotes (for sh backwards compatibility). */ + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && *value) + { + hasdol = 0; + temp = string_extract_double_quoted (value, &hasdol, 1); + } + else + temp = value; + + w = alloc_word_desc (); + hasdol = 0; + /* XXX was 0 not quoted */ + l = *temp ? expand_string_for_rhs (temp, quoted, &hasdol, (int *)NULL) + : (WORD_LIST *)0; + if (hasdollarat) + *hasdollarat = hasdol || (l && l->next); + if (temp != value) + free (temp); + if (l) + { + /* The expansion of TEMP returned something. We need to treat things + slightly differently if HASDOL is non-zero. If we have "$@", the + individual words have already been quoted. We need to turn them + into a string with the words separated by the first character of + $IFS without any additional quoting, so string_list_dollar_at won't + do the right thing. We use string_list_dollar_star instead. */ + temp = (hasdol || l->next) ? string_list_dollar_star (l) : string_list (l); + + /* If l->next is not null, we know that TEMP contained "$@", since that + is the only expansion that creates more than one word. */ + if (qdollaratp && ((hasdol && quoted) || l->next)) + *qdollaratp = 1; + /* If we have a quoted null result (QUOTED_NULL(temp)) and the word is + a quoted null (l->next == 0 && QUOTED_NULL(l->word->word)), the + flags indicate it (l->word->flags & W_HASQUOTEDNULL), and the + expansion is quoted (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + (which is more paranoia than anything else), we need to return the + quoted null string and set the flags to indicate it. */ + if (l->next == 0 && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && QUOTED_NULL (temp) && QUOTED_NULL (l->word->word) && (l->word->flags & W_HASQUOTEDNULL)) + { + w->flags |= W_HASQUOTEDNULL; + } + dispose_words (l); + } + else if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && hasdol) + { + /* The brace expansion occurred between double quotes and there was + a $@ in TEMP. It does not matter if the $@ is quoted, as long as + it does not expand to anything. In this case, we want to return + a quoted empty string. */ + temp = make_quoted_char ('\0'); + w->flags |= W_HASQUOTEDNULL; + } + else + temp = (char *)NULL; + + if (c == '-' || c == '+') + { + w->word = temp; + return w; + } + + /* c == '=' */ + t = temp ? savestring (temp) : savestring (""); + t1 = dequote_string (t); + free (t); +#if defined (ARRAY_VARS) + if (valid_array_reference (name)) + assign_array_element (name, t1, 0); + else +#endif /* ARRAY_VARS */ + bind_variable (name, t1, 0); + stupidly_hack_special_variables (name); + + /* From Posix group discussion Feb-March 2010. Issue 7 0000221 */ + free (temp); + + w->word = t1; + return w; +} + +/* Deal with the right hand side of a ${name:?value} expansion in the case + that NAME is null or not set. If VALUE is non-null it is expanded and + used as the error message to print, otherwise a standard message is + printed. */ +static void +parameter_brace_expand_error (name, value) + char *name, *value; +{ + WORD_LIST *l; + char *temp; + + last_command_exit_value = EXECUTION_FAILURE; /* ensure it's non-zero */ + if (value && *value) + { + l = expand_string (value, 0); + temp = string_list (l); + report_error ("%s: %s", name, temp ? temp : ""); /* XXX was value not "" */ + FREE (temp); + dispose_words (l); + } + else + report_error (_("%s: parameter null or not set"), name); + + /* Free the data we have allocated during this expansion, since we + are about to longjmp out. */ + free (name); + FREE (value); +} + +/* Return 1 if NAME is something for which parameter_brace_expand_length is + OK to do. */ +static int +valid_length_expression (name) + char *name; +{ + return (name[1] == '\0' || /* ${#} */ + ((sh_syntaxtab[(unsigned char) name[1]] & CSPECVAR) && name[2] == '\0') || /* special param */ + (DIGIT (name[1]) && all_digits (name + 1)) || /* ${#11} */ +#if defined (ARRAY_VARS) + valid_array_reference (name + 1) || /* ${#a[7]} */ +#endif + legal_identifier (name + 1)); /* ${#PS1} */ +} + +/* Handle the parameter brace expansion that requires us to return the + length of a parameter. */ +static intmax_t +parameter_brace_expand_length (name) + char *name; +{ + char *t, *newname; + intmax_t number, arg_index; + WORD_LIST *list; +#if defined (ARRAY_VARS) + SHELL_VAR *var; +#endif + + if (name[1] == '\0') /* ${#} */ + number = number_of_args (); + else if ((name[1] == '@' || name[1] == '*') && name[2] == '\0') /* ${#@}, ${#*} */ + number = number_of_args (); + else if ((sh_syntaxtab[(unsigned char) name[1]] & CSPECVAR) && name[2] == '\0') + { + /* Take the lengths of some of the shell's special parameters. */ + switch (name[1]) + { + case '-': + t = which_set_flags (); + break; + case '?': + t = itos (last_command_exit_value); + break; + case '$': + t = itos (dollar_dollar_pid); + break; + case '!': + if (last_asynchronous_pid == NO_PID) + t = (char *)NULL; /* XXX - error if set -u set? */ + else + t = itos (last_asynchronous_pid); + break; + case '#': + t = itos (number_of_args ()); + break; + } + number = STRLEN (t); + FREE (t); + } +#if defined (ARRAY_VARS) + else if (valid_array_reference (name + 1)) + number = array_length_reference (name + 1); +#endif /* ARRAY_VARS */ + else + { + number = 0; + + if (legal_number (name + 1, &arg_index)) /* ${#1} */ + { + t = get_dollar_var_value (arg_index); + if (t == 0 && unbound_vars_is_error) + return INTMAX_MIN; + number = MB_STRLEN (t); + FREE (t); + } +#if defined (ARRAY_VARS) + else if ((var = find_variable (name + 1)) && (invisible_p (var) == 0) && (array_p (var) || assoc_p (var))) + { + if (assoc_p (var)) + t = assoc_reference (assoc_cell (var), "0"); + else + t = array_reference (array_cell (var), 0); + if (t == 0 && unbound_vars_is_error) + return INTMAX_MIN; + number = MB_STRLEN (t); + } +#endif + else /* ${#PS1} */ + { + newname = savestring (name); + newname[0] = '$'; + list = expand_string (newname, Q_DOUBLE_QUOTES); + t = list ? string_list (list) : (char *)NULL; + free (newname); + if (list) + dispose_words (list); + + number = t ? MB_STRLEN (t) : 0; + FREE (t); + } + } + + return (number); +} + +/* Skip characters in SUBSTR until DELIM. SUBSTR is an arithmetic expression, + so we do some ad-hoc parsing of an arithmetic expression to find + the first DELIM, instead of using strchr(3). Two rules: + 1. If the substring contains a `(', read until closing `)'. + 2. If the substring contains a `?', read past one `:' for each `?'. +*/ + +static char * +skiparith (substr, delim) + char *substr; + int delim; +{ + size_t sublen; + int skipcol, pcount, i; + DECLARE_MBSTATE; + + sublen = strlen (substr); + i = skipcol = pcount = 0; + while (substr[i]) + { + /* Balance parens */ + if (substr[i] == LPAREN) + { + pcount++; + i++; + continue; + } + if (substr[i] == RPAREN && pcount) + { + pcount--; + i++; + continue; + } + if (pcount) + { + ADVANCE_CHAR (substr, sublen, i); + continue; + } + + /* Skip one `:' for each `?' */ + if (substr[i] == ':' && skipcol) + { + skipcol--; + i++; + continue; + } + if (substr[i] == delim) + break; + if (substr[i] == '?') + { + skipcol++; + i++; + continue; + } + ADVANCE_CHAR (substr, sublen, i); + } + + return (substr + i); +} + +/* Verify and limit the start and end of the desired substring. If + VTYPE == 0, a regular shell variable is being used; if it is 1, + then the positional parameters are being used; if it is 2, then + VALUE is really a pointer to an array variable that should be used. + Return value is 1 if both values were OK, 0 if there was a problem + with an invalid expression, or -1 if the values were out of range. */ +static int +verify_substring_values (v, value, substr, vtype, e1p, e2p) + SHELL_VAR *v; + char *value, *substr; + int vtype; + intmax_t *e1p, *e2p; +{ + char *t, *temp1, *temp2; + arrayind_t len; + int expok; +#if defined (ARRAY_VARS) + ARRAY *a; + HASH_TABLE *h; +#endif + + /* duplicate behavior of strchr(3) */ + t = skiparith (substr, ':'); + if (*t && *t == ':') + *t = '\0'; + else + t = (char *)0; + + temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES); + *e1p = evalexp (temp1, &expok); + free (temp1); + if (expok == 0) + return (0); + + len = -1; /* paranoia */ + switch (vtype) + { + case VT_VARIABLE: + case VT_ARRAYMEMBER: + len = MB_STRLEN (value); + break; + case VT_POSPARMS: + len = number_of_args () + 1; + if (*e1p == 0) + len++; /* add one arg if counting from $0 */ + break; +#if defined (ARRAY_VARS) + case VT_ARRAYVAR: + /* For arrays, the first value deals with array indices. Negative + offsets count from one past the array's maximum index. Associative + arrays treat the number of elements as the maximum index. */ + if (assoc_p (v)) + { + h = assoc_cell (v); + len = assoc_num_elements (h) + (*e1p < 0); + } + else + { + a = (ARRAY *)value; + len = array_max_index (a) + (*e1p < 0); /* arrays index from 0 to n - 1 */ + } + break; +#endif + } + + if (len == -1) /* paranoia */ + return -1; + + if (*e1p < 0) /* negative offsets count from end */ + *e1p += len; + + if (*e1p > len || *e1p < 0) + return (-1); + +#if defined (ARRAY_VARS) + /* For arrays, the second offset deals with the number of elements. */ + if (vtype == VT_ARRAYVAR) + len = assoc_p (v) ? assoc_num_elements (h) : array_num_elements (a); +#endif + + if (t) + { + t++; + temp2 = savestring (t); + temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + t[-1] = ':'; + *e2p = evalexp (temp1, &expok); + free (temp1); + if (expok == 0) + return (0); +#if 1 + if ((vtype == VT_ARRAYVAR || vtype == VT_POSPARMS) && *e2p < 0) +#else + /* bash-4.3: allow positional parameter length < 0 to count backwards + from end of positional parameters */ + if (vtype == VT_ARRAYVAR && *e2p < 0) +#endif + { + internal_error (_("%s: substring expression < 0"), t); + return (0); + } +#if defined (ARRAY_VARS) + /* In order to deal with sparse arrays, push the intelligence about how + to deal with the number of elements desired down to the array- + specific functions. */ + if (vtype != VT_ARRAYVAR) +#endif + { + if (*e2p < 0) + { + *e2p += len; + if (*e2p < 0 || *e2p < *e1p) + { + internal_error (_("%s: substring expression < 0"), t); + return (0); + } + } + else + *e2p += *e1p; /* want E2 chars starting at E1 */ + if (*e2p > len) + *e2p = len; + } + } + else + *e2p = len; + + return (1); +} + +/* Return the type of variable specified by VARNAME (simple variable, + positional param, or array variable). Also return the value specified + by VARNAME (value of a variable or a reference to an array element). + QUOTED is the standard description of quoting state, using Q_* defines. + FLAGS is currently a set of flags to pass to array_value. If IND is + non-null and not INTMAX_MIN, and FLAGS includes AV_USEIND, IND is + passed to array_value so the array index is not computed again. + If this returns VT_VARIABLE, the caller assumes that CTLESC and CTLNUL + characters in the value are quoted with CTLESC and takes appropriate + steps. For convenience, *VALP is set to the dequoted VALUE. */ +static int +get_var_and_type (varname, value, ind, quoted, flags, varp, valp) + char *varname, *value; + arrayind_t ind; + int quoted, flags; + SHELL_VAR **varp; + char **valp; +{ + int vtype; + char *temp; +#if defined (ARRAY_VARS) + SHELL_VAR *v; +#endif + arrayind_t lind; + + /* This sets vtype to VT_VARIABLE or VT_POSPARMS */ + vtype = (varname[0] == '@' || varname[0] == '*') && varname[1] == '\0'; + if (vtype == VT_POSPARMS && varname[0] == '*') + vtype |= VT_STARSUB; + *varp = (SHELL_VAR *)NULL; + +#if defined (ARRAY_VARS) + if (valid_array_reference (varname)) + { + v = array_variable_part (varname, &temp, (int *)0); + /* If we want to signal array_value to use an already-computed index, + set LIND to that index */ + lind = (ind != INTMAX_MIN && (flags & AV_USEIND)) ? ind : 0; + if (v && (array_p (v) || assoc_p (v))) + { /* [ */ + if (ALL_ELEMENT_SUB (temp[0]) && temp[1] == ']') + { + /* Callers have to differentiate betwen indexed and associative */ + vtype = VT_ARRAYVAR; + if (temp[0] == '*') + vtype |= VT_STARSUB; + *valp = array_p (v) ? (char *)array_cell (v) : (char *)assoc_cell (v); + } + else + { + vtype = VT_ARRAYMEMBER; + *valp = array_value (varname, Q_DOUBLE_QUOTES, flags, (int *)NULL, &lind); + } + *varp = v; + } + else if (v && (ALL_ELEMENT_SUB (temp[0]) && temp[1] == ']')) + { + vtype = VT_VARIABLE; + *varp = v; + if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) + *valp = dequote_string (value); + else + *valp = dequote_escapes (value); + } + else + { + vtype = VT_ARRAYMEMBER; + *varp = v; + *valp = array_value (varname, Q_DOUBLE_QUOTES, flags, (int *)NULL, &lind); + } + } + else if ((v = find_variable (varname)) && (invisible_p (v) == 0) && (assoc_p (v) || array_p (v))) + { + vtype = VT_ARRAYMEMBER; + *varp = v; + *valp = assoc_p (v) ? assoc_reference (assoc_cell (v), "0") : array_reference (array_cell (v), 0); + } + else +#endif + { + if (value && vtype == VT_VARIABLE) + { + if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) + *valp = dequote_string (value); + else + *valp = dequote_escapes (value); + } + else + *valp = value; + } + + return vtype; +} + +/******************************************************/ +/* */ +/* Functions to extract substrings of variable values */ +/* */ +/******************************************************/ + +#if defined (HANDLE_MULTIBYTE) +/* Character-oriented rather than strictly byte-oriented substrings. S and + E, rather being strict indices into STRING, indicate character (possibly + multibyte character) positions that require calculation. + Used by the ${param:offset[:length]} expansion. */ +static char * +mb_substring (string, s, e) + char *string; + int s, e; +{ + char *tt; + int start, stop, i, slen; + DECLARE_MBSTATE; + + start = 0; + /* Don't need string length in ADVANCE_CHAR unless multibyte chars possible. */ + slen = (MB_CUR_MAX > 1) ? STRLEN (string) : 0; + + i = s; + while (string[start] && i--) + ADVANCE_CHAR (string, slen, start); + stop = start; + i = e - s; + while (string[stop] && i--) + ADVANCE_CHAR (string, slen, stop); + tt = substring (string, start, stop); + return tt; +} +#endif + +/* Process a variable substring expansion: ${name:e1[:e2]}. If VARNAME + is `@', use the positional parameters; otherwise, use the value of + VARNAME. If VARNAME is an array variable, use the array elements. */ + +static char * +parameter_brace_substring (varname, value, ind, substr, quoted, flags) + char *varname, *value; + int ind; + char *substr; + int quoted, flags; +{ + intmax_t e1, e2; + int vtype, r, starsub; + char *temp, *val, *tt, *oname; + SHELL_VAR *v; + + if (value == 0) + return ((char *)NULL); + + oname = this_command_name; + this_command_name = varname; + + vtype = get_var_and_type (varname, value, ind, quoted, flags, &v, &val); + if (vtype == -1) + { + this_command_name = oname; + return ((char *)NULL); + } + + starsub = vtype & VT_STARSUB; + vtype &= ~VT_STARSUB; + + r = verify_substring_values (v, val, substr, vtype, &e1, &e2); + this_command_name = oname; + if (r <= 0) + { + if (vtype == VT_VARIABLE) + FREE (val); + return ((r == 0) ? &expand_param_error : (char *)NULL); + } + + switch (vtype) + { + case VT_VARIABLE: + case VT_ARRAYMEMBER: +#if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1) + tt = mb_substring (val, e1, e2); + else +#endif + tt = substring (val, e1, e2); + + if (vtype == VT_VARIABLE) + FREE (val); + if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) + temp = quote_string (tt); + else + temp = tt ? quote_escapes (tt) : (char *)NULL; + FREE (tt); + break; + case VT_POSPARMS: + tt = pos_params (varname, e1, e2, quoted); + if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0) + { + temp = tt ? quote_escapes (tt) : (char *)NULL; + FREE (tt); + } + else + temp = tt; + break; +#if defined (ARRAY_VARS) + case VT_ARRAYVAR: + if (assoc_p (v)) + /* we convert to list and take first e2 elements starting at e1th + element -- officially undefined for now */ + temp = assoc_subrange (assoc_cell (v), e1, e2, starsub, quoted); + else + /* We want E2 to be the number of elements desired (arrays can be sparse, + so verify_substring_values just returns the numbers specified and we + rely on array_subrange to understand how to deal with them). */ + temp = array_subrange (array_cell (v), e1, e2, starsub, quoted); + /* array_subrange now calls array_quote_escapes as appropriate, so the + caller no longer needs to. */ + break; +#endif + default: + temp = (char *)NULL; + } + + return temp; +} + +/****************************************************************/ +/* */ +/* Functions to perform pattern substitution on variable values */ +/* */ +/****************************************************************/ + +static int +shouldexp_replacement (s) + char *s; +{ + register char *p; + + for (p = s; p && *p; p++) + { + if (*p == '\\') + p++; + else if (*p == '&') + return 1; + } + return 0; +} + +char * +pat_subst (string, pat, rep, mflags) + char *string, *pat, *rep; + int mflags; +{ + char *ret, *s, *e, *str, *rstr, *mstr; + int rsize, rptr, l, replen, mtype, rxpand, rslen, mlen; + + if (string == 0) + return (savestring ("")); + + mtype = mflags & MATCH_TYPEMASK; + +#if 0 /* bash-4.2 ? */ + rxpand = (rep && *rep) ? shouldexp_replacement (rep) : 0; +#else + rxpand = 0; +#endif + + /* Special cases: + * 1. A null pattern with mtype == MATCH_BEG means to prefix STRING + * with REP and return the result. + * 2. A null pattern with mtype == MATCH_END means to append REP to + * STRING and return the result. + * These don't understand or process `&' in the replacement string. + */ + if ((pat == 0 || *pat == 0) && (mtype == MATCH_BEG || mtype == MATCH_END)) + { + replen = STRLEN (rep); + l = STRLEN (string); + ret = (char *)xmalloc (replen + l + 2); + if (replen == 0) + strcpy (ret, string); + else if (mtype == MATCH_BEG) + { + strcpy (ret, rep); + strcpy (ret + replen, string); + } + else + { + strcpy (ret, string); + strcpy (ret + l, rep); + } + return (ret); + } + + ret = (char *)xmalloc (rsize = 64); + ret[0] = '\0'; + + for (replen = STRLEN (rep), rptr = 0, str = string;;) + { + if (match_pattern (str, pat, mtype, &s, &e) == 0) + break; + l = s - str; + + if (rxpand) + { + int x; + mlen = e - s; + mstr = xmalloc (mlen + 1); + for (x = 0; x < mlen; x++) + mstr[x] = s[x]; + mstr[mlen] = '\0'; + rstr = strcreplace (rep, '&', mstr, 0); + rslen = strlen (rstr); + } + else + { + rstr = rep; + rslen = replen; + } + + RESIZE_MALLOCED_BUFFER (ret, rptr, (l + rslen), rsize, 64); + + /* OK, now copy the leading unmatched portion of the string (from + str to s) to ret starting at rptr (the current offset). Then copy + the replacement string at ret + rptr + (s - str). Increment + rptr (if necessary) and str and go on. */ + if (l) + { + strncpy (ret + rptr, str, l); + rptr += l; + } + if (replen) + { + strncpy (ret + rptr, rstr, rslen); + rptr += rslen; + } + str = e; /* e == end of match */ + + if (rstr != rep) + free (rstr); + + if (((mflags & MATCH_GLOBREP) == 0) || mtype != MATCH_ANY) + break; + + if (s == e) + { + /* On a zero-length match, make sure we copy one character, since + we increment one character to avoid infinite recursion. */ + RESIZE_MALLOCED_BUFFER (ret, rptr, 1, rsize, 64); + ret[rptr++] = *str++; + e++; /* avoid infinite recursion on zero-length match */ + } + } + + /* Now copy the unmatched portion of the input string */ + if (str && *str) + { + RESIZE_MALLOCED_BUFFER (ret, rptr, STRLEN(str) + 1, rsize, 64); + strcpy (ret + rptr, str); + } + else + ret[rptr] = '\0'; + + return ret; +} + +/* Do pattern match and replacement on the positional parameters. */ +static char * +pos_params_pat_subst (string, pat, rep, mflags) + char *string, *pat, *rep; + int mflags; +{ + WORD_LIST *save, *params; + WORD_DESC *w; + char *ret; + int pchar, qflags; + + save = params = list_rest_of_args (); + if (save == 0) + return ((char *)NULL); + + for ( ; params; params = params->next) + { + ret = pat_subst (params->word->word, pat, rep, mflags); + w = alloc_word_desc (); + w->word = ret ? ret : savestring (""); + dispose_word (params->word); + params->word = w; + } + + pchar = (mflags & MATCH_STARSUB) == MATCH_STARSUB ? '*' : '@'; + qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0; + +#if 0 + if ((mflags & (MATCH_QUOTED|MATCH_STARSUB)) == (MATCH_QUOTED|MATCH_STARSUB)) + ret = string_list_dollar_star (quote_list (save)); + else if ((mflags & MATCH_STARSUB) == MATCH_STARSUB) + ret = string_list_dollar_star (save); + else if ((mflags & MATCH_QUOTED) == MATCH_QUOTED) + ret = string_list_dollar_at (save, qflags); + else + ret = string_list_dollar_star (save); +#else + ret = string_list_pos_params (pchar, save, qflags); +#endif + + dispose_words (save); + + return (ret); +} + +/* Perform pattern substitution on VALUE, which is the expansion of + VARNAME. PATSUB is an expression supplying the pattern to match + and the string to substitute. QUOTED is a flags word containing + the type of quoting currently in effect. */ +static char * +parameter_brace_patsub (varname, value, ind, patsub, quoted, flags) + char *varname, *value; + int ind; + char *patsub; + int quoted, flags; +{ + int vtype, mflags, starsub, delim; + char *val, *temp, *pat, *rep, *p, *lpatsub, *tt; + SHELL_VAR *v; + + if (value == 0) + return ((char *)NULL); + + this_command_name = varname; + + vtype = get_var_and_type (varname, value, ind, quoted, flags, &v, &val); + if (vtype == -1) + return ((char *)NULL); + + starsub = vtype & VT_STARSUB; + vtype &= ~VT_STARSUB; + + mflags = 0; + /* PATSUB is never NULL when this is called. */ + if (*patsub == '/') + { + mflags |= MATCH_GLOBREP; + patsub++; + } + + /* Malloc this because expand_string_if_necessary or one of the expansion + functions in its call chain may free it on a substitution error. */ + lpatsub = savestring (patsub); + + if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + mflags |= MATCH_QUOTED; + + if (starsub) + mflags |= MATCH_STARSUB; + + /* If the pattern starts with a `/', make sure we skip over it when looking + for the replacement delimiter. */ + delim = skip_to_delim (lpatsub, ((*patsub == '/') ? 1 : 0), "/", 0); + if (lpatsub[delim] == '/') + { + lpatsub[delim] = 0; + rep = lpatsub + delim + 1; + } + else + rep = (char *)NULL; + + if (rep && *rep == '\0') + rep = (char *)NULL; + + /* Perform the same expansions on the pattern as performed by the + pattern removal expansions. */ + pat = getpattern (lpatsub, quoted, 1); + + if (rep) + { + /* We want to perform quote removal on the expanded replacement even if + the entire expansion is double-quoted because the parser and string + extraction functions treated quotes in the replacement string as + special. THIS IS NOT BACKWARDS COMPATIBLE WITH BASH-4.2. */ + if (shell_compatibility_level > 42) + rep = expand_string_if_necessary (rep, quoted & ~(Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT), expand_string_unsplit); + /* This is the bash-4.2 code. */ + else if ((mflags & MATCH_QUOTED) == 0) + rep = expand_string_if_necessary (rep, quoted, expand_string_unsplit); + else + rep = expand_string_to_string_internal (rep, quoted, expand_string_unsplit); + } + + /* ksh93 doesn't allow the match specifier to be a part of the expanded + pattern. This is an extension. Make sure we don't anchor the pattern + at the beginning or end of the string if we're doing global replacement, + though. */ + p = pat; + if (mflags & MATCH_GLOBREP) + mflags |= MATCH_ANY; + else if (pat && pat[0] == '#') + { + mflags |= MATCH_BEG; + p++; + } + else if (pat && pat[0] == '%') + { + mflags |= MATCH_END; + p++; + } + else + mflags |= MATCH_ANY; + + /* OK, we now want to substitute REP for PAT in VAL. If + flags & MATCH_GLOBREP is non-zero, the substitution is done + everywhere, otherwise only the first occurrence of PAT is + replaced. The pattern matching code doesn't understand + CTLESC quoting CTLESC and CTLNUL so we use the dequoted variable + values passed in (VT_VARIABLE) so the pattern substitution + code works right. We need to requote special chars after + we're done for VT_VARIABLE and VT_ARRAYMEMBER, and for the + other cases if QUOTED == 0, since the posparams and arrays + indexed by * or @ do special things when QUOTED != 0. */ + + switch (vtype) + { + case VT_VARIABLE: + case VT_ARRAYMEMBER: + temp = pat_subst (val, p, rep, mflags); + if (vtype == VT_VARIABLE) + FREE (val); + if (temp) + { + tt = (mflags & MATCH_QUOTED) ? quote_string (temp) : quote_escapes (temp); + free (temp); + temp = tt; + } + break; + case VT_POSPARMS: + temp = pos_params_pat_subst (val, p, rep, mflags); + if (temp && (mflags & MATCH_QUOTED) == 0) + { + tt = quote_escapes (temp); + free (temp); + temp = tt; + } + break; +#if defined (ARRAY_VARS) + case VT_ARRAYVAR: + temp = assoc_p (v) ? assoc_patsub (assoc_cell (v), p, rep, mflags) + : array_patsub (array_cell (v), p, rep, mflags); + /* Don't call quote_escapes anymore; array_patsub calls + array_quote_escapes as appropriate before adding the + space separators; ditto for assoc_patsub. */ + break; +#endif + } + + FREE (pat); + FREE (rep); + free (lpatsub); + + return temp; +} + +/****************************************************************/ +/* */ +/* Functions to perform case modification on variable values */ +/* */ +/****************************************************************/ + +/* Do case modification on the positional parameters. */ + +static char * +pos_params_modcase (string, pat, modop, mflags) + char *string, *pat; + int modop; + int mflags; +{ + WORD_LIST *save, *params; + WORD_DESC *w; + char *ret; + int pchar, qflags; + + save = params = list_rest_of_args (); + if (save == 0) + return ((char *)NULL); + + for ( ; params; params = params->next) + { + ret = sh_modcase (params->word->word, pat, modop); + w = alloc_word_desc (); + w->word = ret ? ret : savestring (""); + dispose_word (params->word); + params->word = w; + } + + pchar = (mflags & MATCH_STARSUB) == MATCH_STARSUB ? '*' : '@'; + qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0; + + ret = string_list_pos_params (pchar, save, qflags); + dispose_words (save); + + return (ret); +} + +/* Perform case modification on VALUE, which is the expansion of + VARNAME. MODSPEC is an expression supplying the type of modification + to perform. QUOTED is a flags word containing the type of quoting + currently in effect. */ +static char * +parameter_brace_casemod (varname, value, ind, modspec, patspec, quoted, flags) + char *varname, *value; + int ind, modspec; + char *patspec; + int quoted, flags; +{ + int vtype, starsub, modop, mflags, x; + char *val, *temp, *pat, *p, *lpat, *tt; + SHELL_VAR *v; + + if (value == 0) + return ((char *)NULL); + + this_command_name = varname; + + vtype = get_var_and_type (varname, value, ind, quoted, flags, &v, &val); + if (vtype == -1) + return ((char *)NULL); + + starsub = vtype & VT_STARSUB; + vtype &= ~VT_STARSUB; + + modop = 0; + mflags = 0; + if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + mflags |= MATCH_QUOTED; + if (starsub) + mflags |= MATCH_STARSUB; + + p = patspec; + if (modspec == '^') + { + x = p && p[0] == modspec; + modop = x ? CASE_UPPER : CASE_UPFIRST; + p += x; + } + else if (modspec == ',') + { + x = p && p[0] == modspec; + modop = x ? CASE_LOWER : CASE_LOWFIRST; + p += x; + } + else if (modspec == '~') + { + x = p && p[0] == modspec; + modop = x ? CASE_TOGGLEALL : CASE_TOGGLE; + p += x; + } + + lpat = p ? savestring (p) : 0; + /* Perform the same expansions on the pattern as performed by the + pattern removal expansions. FOR LATER */ + pat = lpat ? getpattern (lpat, quoted, 1) : 0; + + /* OK, now we do the case modification. */ + switch (vtype) + { + case VT_VARIABLE: + case VT_ARRAYMEMBER: + temp = sh_modcase (val, pat, modop); + if (vtype == VT_VARIABLE) + FREE (val); + if (temp) + { + tt = (mflags & MATCH_QUOTED) ? quote_string (temp) : quote_escapes (temp); + free (temp); + temp = tt; + } + break; + + case VT_POSPARMS: + temp = pos_params_modcase (val, pat, modop, mflags); + if (temp && (mflags & MATCH_QUOTED) == 0) + { + tt = quote_escapes (temp); + free (temp); + temp = tt; + } + break; + +#if defined (ARRAY_VARS) + case VT_ARRAYVAR: + temp = assoc_p (v) ? assoc_modcase (assoc_cell (v), pat, modop, mflags) + : array_modcase (array_cell (v), pat, modop, mflags); + /* Don't call quote_escapes; array_modcase calls array_quote_escapes + as appropriate before adding the space separators; ditto for + assoc_modcase. */ + break; +#endif + } + + FREE (pat); + free (lpat); + + return temp; +} + +/* Check for unbalanced parens in S, which is the contents of $(( ... )). If + any occur, this must be a nested command substitution, so return 0. + Otherwise, return 1. A valid arithmetic expression must always have a + ( before a matching ), so any cases where there are more right parens + means that this must not be an arithmetic expression, though the parser + will not accept it without a balanced total number of parens. */ +static int +chk_arithsub (s, len) + const char *s; + int len; +{ + int i, count; + DECLARE_MBSTATE; + + i = count = 0; + while (i < len) + { + if (s[i] == LPAREN) + count++; + else if (s[i] == RPAREN) + { + count--; + if (count < 0) + return 0; + } + + switch (s[i]) + { + default: + ADVANCE_CHAR (s, len, i); + break; + + case '\\': + i++; + if (s[i]) + ADVANCE_CHAR (s, len, i); + break; + + case '\'': + i = skip_single_quoted (s, len, ++i); + break; + + case '"': + i = skip_double_quoted ((char *)s, len, ++i); + break; + } + } + + return (count == 0); +} + +/****************************************************************/ +/* */ +/* Functions to perform parameter expansion on a string */ +/* */ +/****************************************************************/ + +/* ${[#][!]name[[:][^[^]][,[,]]#[#]%[%]-=?+[word][:e1[:e2]]]} */ +static WORD_DESC * +parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, contains_dollar_at) + char *string; + int *indexp, quoted, *quoted_dollar_atp, *contains_dollar_at, pflags; +{ + int check_nullness, var_is_set, var_is_null, var_is_special; + int want_substring, want_indir, want_patsub, want_casemod; + char *name, *value, *temp, *temp1; + WORD_DESC *tdesc, *ret; + int t_index, sindex, c, tflag, modspec; + intmax_t number; + arrayind_t ind; + + temp = temp1 = value = (char *)NULL; + var_is_set = var_is_null = var_is_special = check_nullness = 0; + want_substring = want_indir = want_patsub = want_casemod = 0; + + sindex = *indexp; + t_index = ++sindex; + /* ${#var} doesn't have any of the other parameter expansions on it. */ + if (string[t_index] == '#' && legal_variable_starter (string[t_index+1])) /* {{ */ + name = string_extract (string, &t_index, "}", SX_VARNAME); + else +#if defined (CASEMOD_EXPANSIONS) + /* To enable case-toggling expansions using the `~' operator character + change the 1 to 0. */ +# if defined (CASEMOD_CAPCASE) + name = string_extract (string, &t_index, "#%^,~:-=?+/}", SX_VARNAME); +# else + name = string_extract (string, &t_index, "#%^,:-=?+/}", SX_VARNAME); +# endif /* CASEMOD_CAPCASE */ +#else + name = string_extract (string, &t_index, "#%:-=?+/}", SX_VARNAME); +#endif /* CASEMOD_EXPANSIONS */ + + ret = 0; + tflag = 0; + + ind = INTMAX_MIN; + + /* If the name really consists of a special variable, then make sure + that we have the entire name. We don't allow indirect references + to special variables except `#', `?', `@' and `*'. */ + if ((sindex == t_index && VALID_SPECIAL_LENGTH_PARAM (string[t_index])) || + (sindex == t_index - 1 && string[sindex] == '!' && VALID_INDIR_PARAM (string[t_index]))) + { + t_index++; + temp1 = string_extract (string, &t_index, "#%:-=?+/}", 0); + name = (char *)xrealloc (name, 3 + (strlen (temp1))); + *name = string[sindex]; + if (string[sindex] == '!') + { + /* indirect reference of $#, $?, $@, or $* */ + name[1] = string[sindex + 1]; + strcpy (name + 2, temp1); + } + else + strcpy (name + 1, temp1); + free (temp1); + } + sindex = t_index; + + /* Find out what character ended the variable name. Then + do the appropriate thing. */ + if (c = string[sindex]) + sindex++; + + /* If c is followed by one of the valid parameter expansion + characters, move past it as normal. If not, assume that + a substring specification is being given, and do not move + past it. */ + if (c == ':' && VALID_PARAM_EXPAND_CHAR (string[sindex])) + { + check_nullness++; + if (c = string[sindex]) + sindex++; + } + else if (c == ':' && string[sindex] != RBRACE) + want_substring = 1; + else if (c == '/' /* && string[sindex] != RBRACE */) /* XXX */ + want_patsub = 1; +#if defined (CASEMOD_EXPANSIONS) + else if (c == '^' || c == ',' || c == '~') + { + modspec = c; + want_casemod = 1; + } +#endif + + /* Catch the valid and invalid brace expressions that made it through the + tests above. */ + /* ${#-} is a valid expansion and means to take the length of $-. + Similarly for ${#?} and ${##}... */ + if (name[0] == '#' && name[1] == '\0' && check_nullness == 0 && + VALID_SPECIAL_LENGTH_PARAM (c) && string[sindex] == RBRACE) + { + name = (char *)xrealloc (name, 3); + name[1] = c; + name[2] = '\0'; + c = string[sindex++]; + } + + /* ...but ${#%}, ${#:}, ${#=}, ${#+}, and ${#/} are errors. */ + if (name[0] == '#' && name[1] == '\0' && check_nullness == 0 && + member (c, "%:=+/") && string[sindex] == RBRACE) + { + temp = (char *)NULL; + goto bad_substitution; + } + + /* Indirect expansion begins with a `!'. A valid indirect expansion is + either a variable name, one of the positional parameters or a special + variable that expands to one of the positional parameters. */ + want_indir = *name == '!' && + (legal_variable_starter ((unsigned char)name[1]) || DIGIT (name[1]) + || VALID_INDIR_PARAM (name[1])); + + /* Determine the value of this variable. */ + + /* Check for special variables, directly referenced. */ + if (SPECIAL_VAR (name, want_indir)) + var_is_special++; + + /* Check for special expansion things, like the length of a parameter */ + if (*name == '#' && name[1]) + { + /* If we are not pointing at the character just after the + closing brace, then we haven't gotten all of the name. + Since it begins with a special character, this is a bad + substitution. Also check NAME for validity before trying + to go on. */ + if (string[sindex - 1] != RBRACE || (valid_length_expression (name) == 0)) + { + temp = (char *)NULL; + goto bad_substitution; + } + + number = parameter_brace_expand_length (name); + if (number == INTMAX_MIN && unbound_vars_is_error) + { + last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (name+1); + free (name); + return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); + } + free (name); + + *indexp = sindex; + if (number < 0) + return (&expand_wdesc_error); + else + { + ret = alloc_word_desc (); + ret->word = itos (number); + return ret; + } + } + + /* ${@} is identical to $@. */ + if (name[0] == '@' && name[1] == '\0') + { + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) + *quoted_dollar_atp = 1; + + if (contains_dollar_at) + *contains_dollar_at = 1; + + tflag |= W_DOLLARAT; + } + + /* Process ${!PREFIX*} expansion. */ + if (want_indir && string[sindex - 1] == RBRACE && + (string[sindex - 2] == '*' || string[sindex - 2] == '@') && + legal_variable_starter ((unsigned char) name[1])) + { + char **x; + WORD_LIST *xlist; + + temp1 = savestring (name + 1); + number = strlen (temp1); + temp1[number - 1] = '\0'; + x = all_variables_matching_prefix (temp1); + xlist = strvec_to_word_list (x, 0, 0); + if (string[sindex - 2] == '*') + temp = string_list_dollar_star (xlist); + else + { + temp = string_list_dollar_at (xlist, quoted); + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) + *quoted_dollar_atp = 1; + if (contains_dollar_at) + *contains_dollar_at = 1; + + tflag |= W_DOLLARAT; + } + free (x); + dispose_words (xlist); + free (temp1); + *indexp = sindex; + + free (name); + + ret = alloc_word_desc (); + ret->word = temp; + ret->flags = tflag; /* XXX */ + return ret; + } + +#if defined (ARRAY_VARS) + /* Process ${!ARRAY[@]} and ${!ARRAY[*]} expansion. */ /* [ */ + if (want_indir && string[sindex - 1] == RBRACE && + string[sindex - 2] == ']' && valid_array_reference (name+1)) + { + char *x, *x1; + + temp1 = savestring (name + 1); + x = array_variable_name (temp1, &x1, (int *)0); /* [ */ + FREE (x); + if (ALL_ELEMENT_SUB (x1[0]) && x1[1] == ']') + { + temp = array_keys (temp1, quoted); /* handles assoc vars too */ + if (x1[0] == '@') + { + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) + *quoted_dollar_atp = 1; + if (contains_dollar_at) + *contains_dollar_at = 1; + + tflag |= W_DOLLARAT; + } + + free (temp1); + *indexp = sindex; + + ret = alloc_word_desc (); + ret->word = temp; + ret->flags = tflag; /* XXX */ + return ret; + } + + free (temp1); + } +#endif /* ARRAY_VARS */ + + /* Make sure that NAME is valid before trying to go on. */ + if (valid_brace_expansion_word (want_indir ? name + 1 : name, + var_is_special) == 0) + { + temp = (char *)NULL; + goto bad_substitution; + } + + if (want_indir) + tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); + else + tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&PF_NOSPLIT2), &ind); + + if (tdesc) + { + temp = tdesc->word; + tflag = tdesc->flags; + dispose_word_desc (tdesc); + } + else + temp = (char *)0; + + if (temp == &expand_param_error || temp == &expand_param_fatal) + { + FREE (name); + FREE (value); + return (temp == &expand_param_error ? &expand_wdesc_error : &expand_wdesc_fatal); + } + +#if defined (ARRAY_VARS) + if (valid_array_reference (name)) + chk_atstar (name, quoted, quoted_dollar_atp, contains_dollar_at); +#endif + + var_is_set = temp != (char *)0; + var_is_null = check_nullness && (var_is_set == 0 || *temp == 0); + /* XXX - this may not need to be restricted to special variables */ + if (check_nullness) + var_is_null |= var_is_set && var_is_special && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && QUOTED_NULL (temp); + + /* Get the rest of the stuff inside the braces. */ + if (c && c != RBRACE) + { + /* Extract the contents of the ${ ... } expansion + according to the Posix.2 rules. */ + value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#' || c =='/' || c == '^' || c == ',' || c ==':') ? SX_POSIXEXP|SX_WORD : SX_WORD); + if (string[sindex] == RBRACE) + sindex++; + else + goto bad_substitution; + } + else + value = (char *)NULL; + + *indexp = sindex; + + /* All the cases where an expansion can possibly generate an unbound + variable error. */ + if (want_substring || want_patsub || want_casemod || c == '#' || c == '%' || c == RBRACE) + { + if (var_is_set == 0 && unbound_vars_is_error && ((name[0] != '@' && name[0] != '*') || name[1])) + { + last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (name); + FREE (value); + FREE (temp); + free (name); + return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); + } + } + + /* If this is a substring spec, process it and add the result. */ + if (want_substring) + { + temp1 = parameter_brace_substring (name, temp, ind, value, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0); + FREE (name); + FREE (value); + FREE (temp); + + if (temp1 == &expand_param_error) + return (&expand_wdesc_error); + else if (temp1 == &expand_param_fatal) + return (&expand_wdesc_fatal); + + ret = alloc_word_desc (); + ret->word = temp1; + if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ret->flags |= W_QUOTED|W_HASQUOTEDNULL; + return ret; + } + else if (want_patsub) + { + temp1 = parameter_brace_patsub (name, temp, ind, value, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0); + FREE (name); + FREE (value); + FREE (temp); + + if (temp1 == &expand_param_error) + return (&expand_wdesc_error); + else if (temp1 == &expand_param_fatal) + return (&expand_wdesc_fatal); + + ret = alloc_word_desc (); + ret->word = temp1; + if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ret->flags |= W_QUOTED|W_HASQUOTEDNULL; + return ret; + } +#if defined (CASEMOD_EXPANSIONS) + else if (want_casemod) + { + temp1 = parameter_brace_casemod (name, temp, ind, modspec, value, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0); + FREE (name); + FREE (value); + FREE (temp); + + if (temp1 == &expand_param_error) + return (&expand_wdesc_error); + else if (temp1 == &expand_param_fatal) + return (&expand_wdesc_fatal); + + ret = alloc_word_desc (); + ret->word = temp1; + if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ret->flags |= W_QUOTED|W_HASQUOTEDNULL; + return ret; + } +#endif + + /* Do the right thing based on which character ended the variable name. */ + switch (c) + { + default: + case '\0': + bad_substitution: + last_command_exit_value = EXECUTION_FAILURE; + report_error (_("%s: bad substitution"), string ? string : "??"); + FREE (value); + FREE (temp); + free (name); + return &expand_wdesc_error; + + case RBRACE: + break; + + case '#': /* ${param#[#]pattern} */ + case '%': /* ${param%[%]pattern} */ + if (value == 0 || *value == '\0' || temp == 0 || *temp == '\0') + { + FREE (value); + break; + } + temp1 = parameter_brace_remove_pattern (name, temp, ind, value, c, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0); + free (temp); + free (value); + free (name); + + ret = alloc_word_desc (); + ret->word = temp1; + if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ret->flags |= W_QUOTED|W_HASQUOTEDNULL; + return ret; + + case '-': + case '=': + case '?': + case '+': + if (var_is_set && var_is_null == 0) + { + /* If the operator is `+', we don't want the value of the named + variable for anything, just the value of the right hand side. */ + if (c == '+') + { + /* XXX -- if we're double-quoted and the named variable is "$@", + we want to turn off any special handling of "$@" -- + we're not using it, so whatever is on the rhs applies. */ + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) + *quoted_dollar_atp = 0; + if (contains_dollar_at) + *contains_dollar_at = 0; + + FREE (temp); + if (value) + { + /* From Posix discussion on austin-group list. Issue 221 + requires that backslashes escaping `}' inside + double-quoted ${...} be removed. */ + if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + quoted |= Q_DOLBRACE; + ret = parameter_brace_expand_rhs (name, value, c, + quoted, + quoted_dollar_atp, + contains_dollar_at); + /* XXX - fix up later, esp. noting presence of + W_HASQUOTEDNULL in ret->flags */ + free (value); + } + else + temp = (char *)NULL; + } + else + { + FREE (value); + } + /* Otherwise do nothing; just use the value in TEMP. */ + } + else /* VAR not set or VAR is NULL. */ + { + FREE (temp); + temp = (char *)NULL; + if (c == '=' && var_is_special) + { + last_command_exit_value = EXECUTION_FAILURE; + report_error (_("$%s: cannot assign in this way"), name); + free (name); + free (value); + return &expand_wdesc_error; + } + else if (c == '?') + { + parameter_brace_expand_error (name, value); + return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); + } + else if (c != '+') + { + /* XXX -- if we're double-quoted and the named variable is "$@", + we want to turn off any special handling of "$@" -- + we're not using it, so whatever is on the rhs applies. */ + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) + *quoted_dollar_atp = 0; + if (contains_dollar_at) + *contains_dollar_at = 0; + + /* From Posix discussion on austin-group list. Issue 221 requires + that backslashes escaping `}' inside double-quoted ${...} be + removed. */ + if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + quoted |= Q_DOLBRACE; + ret = parameter_brace_expand_rhs (name, value, c, quoted, + quoted_dollar_atp, + contains_dollar_at); + /* XXX - fix up later, esp. noting presence of + W_HASQUOTEDNULL in tdesc->flags */ + } + free (value); + } + + break; + } + free (name); + + if (ret == 0) + { + ret = alloc_word_desc (); + ret->flags = tflag; + ret->word = temp; + } + return (ret); +} + +/* Expand a single ${xxx} expansion. The braces are optional. When + the braces are used, parameter_brace_expand() does the work, + possibly calling param_expand recursively. */ +static WORD_DESC * +param_expand (string, sindex, quoted, expanded_something, + contains_dollar_at, quoted_dollar_at_p, had_quoted_null_p, + pflags) + char *string; + int *sindex, quoted, *expanded_something, *contains_dollar_at; + int *quoted_dollar_at_p, *had_quoted_null_p, pflags; +{ + char *temp, *temp1, uerror[3]; + int zindex, t_index, expok; + unsigned char c; + intmax_t number; + SHELL_VAR *var; + WORD_LIST *list; + WORD_DESC *tdesc, *ret; + int tflag; + + zindex = *sindex; + c = string[++zindex]; + + temp = (char *)NULL; + ret = tdesc = (WORD_DESC *)NULL; + tflag = 0; + + /* Do simple cases first. Switch on what follows '$'. */ + switch (c) + { + /* $0 .. $9? */ + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + temp1 = dollar_vars[TODIGIT (c)]; + if (unbound_vars_is_error && temp1 == (char *)NULL) + { + uerror[0] = '$'; + uerror[1] = c; + uerror[2] = '\0'; + last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (uerror); + return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); + } + if (temp1) + temp = (*temp1 && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ? quote_string (temp1) + : quote_escapes (temp1); + else + temp = (char *)NULL; + + break; + + /* $$ -- pid of the invoking shell. */ + case '$': + temp = itos (dollar_dollar_pid); + break; + + /* $# -- number of positional parameters. */ + case '#': + temp = itos (number_of_args ()); + break; + + /* $? -- return value of the last synchronous command. */ + case '?': + temp = itos (last_command_exit_value); + break; + + /* $- -- flags supplied to the shell on invocation or by `set'. */ + case '-': + temp = which_set_flags (); + break; + + /* $! -- Pid of the last asynchronous command. */ + case '!': + /* If no asynchronous pids have been created, expand to nothing. + If `set -u' has been executed, and no async processes have + been created, this is an expansion error. */ + if (last_asynchronous_pid == NO_PID) + { + if (expanded_something) + *expanded_something = 0; + temp = (char *)NULL; + if (unbound_vars_is_error) + { + uerror[0] = '$'; + uerror[1] = c; + uerror[2] = '\0'; + last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (uerror); + return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); + } + } + else + temp = itos (last_asynchronous_pid); + break; + + /* The only difference between this and $@ is when the arg is quoted. */ + case '*': /* `$*' */ + list = list_rest_of_args (); + +#if 0 + /* According to austin-group posix proposal by Geoff Clare in + <20090505091501.GA10097@squonk.masqnet> of 5 May 2009: + + "The shell shall write a message to standard error and + immediately exit when it tries to expand an unset parameter + other than the '@' and '*' special parameters." + */ + + if (list == 0 && unbound_vars_is_error && (pflags & PF_IGNUNBOUND) == 0) + { + uerror[0] = '$'; + uerror[1] = '*'; + uerror[2] = '\0'; + last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (uerror); + return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); + } +#endif + + /* If there are no command-line arguments, this should just + disappear if there are other characters in the expansion, + even if it's quoted. */ + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && list == 0) + temp = (char *)NULL; + else if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES|Q_PATQUOTE)) + { + /* If we have "$*" we want to make a string of the positional + parameters, separated by the first character of $IFS, and + quote the whole string, including the separators. If IFS + is unset, the parameters are separated by ' '; if $IFS is + null, the parameters are concatenated. */ + temp = (quoted & (Q_DOUBLE_QUOTES|Q_PATQUOTE)) ? string_list_dollar_star (list) : string_list (list); + if (temp) + { + temp1 = quote_string (temp); + if (*temp == 0) + tflag |= W_HASQUOTEDNULL; + free (temp); + temp = temp1; + } + } + else + { + /* We check whether or not we're eventually going to split $* here, + for example when IFS is empty and we are processing the rhs of + an assignment statement. In that case, we don't separate the + arguments at all. Otherwise, if the $* is not quoted it is + identical to $@ */ +#if 1 +# if defined (HANDLE_MULTIBYTE) + if (expand_no_split_dollar_star && ifs_firstc[0] == 0) +# else + if (expand_no_split_dollar_star && ifs_firstc == 0) +# endif + temp = string_list_dollar_star (list); + else + temp = string_list_dollar_at (list, quoted); +#else + temp = string_list_dollar_at (list, quoted); +#endif + if (expand_no_split_dollar_star == 0 && contains_dollar_at) + *contains_dollar_at = 1; + } + + dispose_words (list); + break; + + /* When we have "$@" what we want is "$1" "$2" "$3" ... This + means that we have to turn quoting off after we split into + the individually quoted arguments so that the final split + on the first character of $IFS is still done. */ + case '@': /* `$@' */ + list = list_rest_of_args (); + +#if 0 + /* According to austin-group posix proposal by Geoff Clare in + <20090505091501.GA10097@squonk.masqnet> of 5 May 2009: + + "The shell shall write a message to standard error and + immediately exit when it tries to expand an unset parameter + other than the '@' and '*' special parameters." + */ + + if (list == 0 && unbound_vars_is_error && (pflags & PF_IGNUNBOUND) == 0) + { + uerror[0] = '$'; + uerror[1] = '@'; + uerror[2] = '\0'; + last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (uerror); + return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); + } +#endif + + /* We want to flag the fact that we saw this. We can't turn + off quoting entirely, because other characters in the + string might need it (consider "\"$@\""), but we need some + way to signal that the final split on the first character + of $IFS should be done, even though QUOTED is 1. */ + /* XXX - should this test include Q_PATQUOTE? */ + if (quoted_dollar_at_p && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + *quoted_dollar_at_p = 1; + if (contains_dollar_at) + *contains_dollar_at = 1; + + /* We want to separate the positional parameters with the first + character of $IFS in case $IFS is something other than a space. + We also want to make sure that splitting is done no matter what -- + according to POSIX.2, this expands to a list of the positional + parameters no matter what IFS is set to. */ + temp = string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ? (quoted|Q_DOUBLE_QUOTES) : quoted); + + tflag |= W_DOLLARAT; + dispose_words (list); + break; + + case LBRACE: + tdesc = parameter_brace_expand (string, &zindex, quoted, pflags, + quoted_dollar_at_p, + contains_dollar_at); + + if (tdesc == &expand_wdesc_error || tdesc == &expand_wdesc_fatal) + return (tdesc); + temp = tdesc ? tdesc->word : (char *)0; + + /* XXX */ + /* Quoted nulls should be removed if there is anything else + in the string. */ + /* Note that we saw the quoted null so we can add one back at + the end of this function if there are no other characters + in the string, discard TEMP, and go on. The exception to + this is when we have "${@}" and $1 is '', since $@ needs + special handling. */ + if (tdesc && tdesc->word && (tdesc->flags & W_HASQUOTEDNULL) && QUOTED_NULL (temp)) + { + if (had_quoted_null_p) + *had_quoted_null_p = 1; + if (*quoted_dollar_at_p == 0) + { + free (temp); + tdesc->word = temp = (char *)NULL; + } + + } + + ret = tdesc; + goto return0; + + /* Do command or arithmetic substitution. */ + case LPAREN: + /* We have to extract the contents of this paren substitution. */ + t_index = zindex + 1; + temp = extract_command_subst (string, &t_index, 0); + zindex = t_index; + + /* For Posix.2-style `$(( ))' arithmetic substitution, + extract the expression and pass it to the evaluator. */ + if (temp && *temp == LPAREN) + { + char *temp2; + temp1 = temp + 1; + temp2 = savestring (temp1); + t_index = strlen (temp2) - 1; + + if (temp2[t_index] != RPAREN) + { + free (temp2); + goto comsub; + } + + /* Cut off ending `)' */ + temp2[t_index] = '\0'; + + if (chk_arithsub (temp2, t_index) == 0) + { + free (temp2); +#if 0 + internal_warning (_("future versions of the shell will force evaluation as an arithmetic substitution")); +#endif + goto comsub; + } + + /* Expand variables found inside the expression. */ + temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + +arithsub: + /* No error messages. */ + this_command_name = (char *)NULL; + number = evalexp (temp1, &expok); + free (temp); + free (temp1); + if (expok == 0) + { + if (interactive_shell == 0 && posixly_correct) + { + last_command_exit_value = EXECUTION_FAILURE; + return (&expand_wdesc_fatal); + } + else + return (&expand_wdesc_error); + } + temp = itos (number); + break; + } + +comsub: + if (pflags & PF_NOCOMSUB) + /* we need zindex+1 because string[zindex] == RPAREN */ + temp1 = substring (string, *sindex, zindex+1); + else + { + tdesc = command_substitute (temp, quoted); + temp1 = tdesc ? tdesc->word : (char *)NULL; + if (tdesc) + dispose_word_desc (tdesc); + } + FREE (temp); + temp = temp1; + break; + + /* Do POSIX.2d9-style arithmetic substitution. This will probably go + away in a future bash release. */ + case '[': + /* Extract the contents of this arithmetic substitution. */ + t_index = zindex + 1; + temp = extract_arithmetic_subst (string, &t_index); + zindex = t_index; + if (temp == 0) + { + temp = savestring (string); + if (expanded_something) + *expanded_something = 0; + goto return0; + } + + /* Do initial variable expansion. */ + temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES); + + goto arithsub; + + default: + /* Find the variable in VARIABLE_LIST. */ + temp = (char *)NULL; + + for (t_index = zindex; (c = string[zindex]) && legal_variable_char (c); zindex++) + ; + temp1 = (zindex > t_index) ? substring (string, t_index, zindex) : (char *)NULL; + + /* If this isn't a variable name, then just output the `$'. */ + if (temp1 == 0 || *temp1 == '\0') + { + FREE (temp1); + temp = (char *)xmalloc (2); + temp[0] = '$'; + temp[1] = '\0'; + if (expanded_something) + *expanded_something = 0; + goto return0; + } + + /* If the variable exists, return its value cell. */ + var = find_variable (temp1); + + if (var && invisible_p (var) == 0 && var_isset (var)) + { +#if defined (ARRAY_VARS) + if (assoc_p (var) || array_p (var)) + { + temp = array_p (var) ? array_reference (array_cell (var), 0) + : assoc_reference (assoc_cell (var), "0"); + if (temp) + temp = (*temp && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ? quote_string (temp) + : quote_escapes (temp); + else if (unbound_vars_is_error) + goto unbound_variable; + } + else +#endif + { + temp = value_cell (var); + + temp = (*temp && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ? quote_string (temp) + : quote_escapes (temp); + } + + free (temp1); + + goto return0; + } + else if (var = find_variable_last_nameref (temp1)) + { + temp = nameref_cell (var); +#if defined (ARRAY_VARS) + if (temp && *temp && valid_array_reference (temp)) + { + tdesc = parameter_brace_expand_word (temp, SPECIAL_VAR (temp, 0), quoted, pflags, (arrayind_t *)NULL); + if (tdesc == &expand_wdesc_error || tdesc == &expand_wdesc_fatal) + return (tdesc); + ret = tdesc; + goto return0; + } + else +#endif + /* y=2 ; typeset -n x=y; echo $x is not the same as echo $2 in ksh */ + if (temp && *temp && legal_identifier (temp) == 0) + { + last_command_exit_value = EXECUTION_FAILURE; + report_error (_("%s: invalid variable name for name reference"), temp); + return (&expand_wdesc_error); /* XXX */ + } + else + temp = (char *)NULL; + } + + temp = (char *)NULL; + +unbound_variable: + if (unbound_vars_is_error) + { + last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (temp1); + } + else + { + free (temp1); + goto return0; + } + + free (temp1); + last_command_exit_value = EXECUTION_FAILURE; + return ((unbound_vars_is_error && interactive_shell == 0) + ? &expand_wdesc_fatal + : &expand_wdesc_error); + } + + if (string[zindex]) + zindex++; + +return0: + *sindex = zindex; + + if (ret == 0) + { + ret = alloc_word_desc (); + ret->flags = tflag; /* XXX */ + ret->word = temp; + } + return ret; +} + +/* Make a word list which is the result of parameter and variable + expansion, command substitution, arithmetic substitution, and + quote removal of WORD. Return a pointer to a WORD_LIST which is + the result of the expansion. If WORD contains a null word, the + word list returned is also null. + + QUOTED contains flag values defined in shell.h. + + ISEXP is used to tell expand_word_internal that the word should be + treated as the result of an expansion. This has implications for + how IFS characters in the word are treated. + + CONTAINS_DOLLAR_AT and EXPANDED_SOMETHING are return values; when non-null + they point to an integer value which receives information about expansion. + CONTAINS_DOLLAR_AT gets non-zero if WORD contained "$@", else zero. + EXPANDED_SOMETHING get non-zero if WORD contained any parameter expansions, + else zero. + + This only does word splitting in the case of $@ expansion. In that + case, we split on ' '. */ + +/* Values for the local variable quoted_state. */ +#define UNQUOTED 0 +#define PARTIALLY_QUOTED 1 +#define WHOLLY_QUOTED 2 + +static WORD_LIST * +expand_word_internal (word, quoted, isexp, contains_dollar_at, expanded_something) + WORD_DESC *word; + int quoted, isexp; + int *contains_dollar_at; + int *expanded_something; +{ + WORD_LIST *list; + WORD_DESC *tword; + + /* The intermediate string that we build while expanding. */ + char *istring; + + /* The current size of the above object. */ + int istring_size; + + /* Index into ISTRING. */ + int istring_index; + + /* Temporary string storage. */ + char *temp, *temp1; + + /* The text of WORD. */ + register char *string; + + /* The size of STRING. */ + size_t string_size; + + /* The index into STRING. */ + int sindex; + + /* This gets 1 if we see a $@ while quoted. */ + int quoted_dollar_at; + + /* One of UNQUOTED, PARTIALLY_QUOTED, or WHOLLY_QUOTED, depending on + whether WORD contains no quoting characters, a partially quoted + string (e.g., "xx"ab), or is fully quoted (e.g., "xxab"). */ + int quoted_state; + + /* State flags */ + int had_quoted_null; + int has_dollar_at, temp_has_dollar_at; + int tflag; + int pflags; /* flags passed to param_expand */ + + int assignoff; /* If assignment, offset of `=' */ + + register unsigned char c; /* Current character. */ + int t_index; /* For calls to string_extract_xxx. */ + + char twochars[2]; + + DECLARE_MBSTATE; + + istring = (char *)xmalloc (istring_size = DEFAULT_INITIAL_ARRAY_SIZE); + istring[istring_index = 0] = '\0'; + quoted_dollar_at = had_quoted_null = has_dollar_at = 0; + quoted_state = UNQUOTED; + + string = word->word; + if (string == 0) + goto finished_with_string; + /* Don't need the string length for the SADD... and COPY_ macros unless + multibyte characters are possible. */ + string_size = (MB_CUR_MAX > 1) ? strlen (string) : 1; + + if (contains_dollar_at) + *contains_dollar_at = 0; + + assignoff = -1; + + /* Begin the expansion. */ + + for (sindex = 0; ;) + { + c = string[sindex]; + + /* Case on toplevel character. */ + switch (c) + { + case '\0': + goto finished_with_string; + + case CTLESC: + sindex++; +#if HANDLE_MULTIBYTE + if (MB_CUR_MAX > 1 && string[sindex]) + { + SADD_MBQCHAR_BODY(temp, string, sindex, string_size); + } + else +#endif + { + temp = (char *)xmalloc (3); + temp[0] = CTLESC; + temp[1] = c = string[sindex]; + temp[2] = '\0'; + } + +dollar_add_string: + if (string[sindex]) + sindex++; + +add_string: + if (temp) + { + istring = sub_append_string (temp, istring, &istring_index, &istring_size); + temp = (char *)0; + } + + break; + +#if defined (PROCESS_SUBSTITUTION) + /* Process substitution. */ + case '<': + case '>': + { + if (string[++sindex] != LPAREN || (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (word->flags & (W_DQUOTE|W_NOPROCSUB)) || posixly_correct) + { + sindex--; /* add_character: label increments sindex */ + goto add_character; + } + else + t_index = sindex + 1; /* skip past both '<' and LPAREN */ + + temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index); /*))*/ + sindex = t_index; + + /* If the process substitution specification is `<()', we want to + open the pipe for writing in the child and produce output; if + it is `>()', we want to open the pipe for reading in the child + and consume input. */ + temp = temp1 ? process_substitute (temp1, (c == '>')) : (char *)0; + + FREE (temp1); + + goto dollar_add_string; + } +#endif /* PROCESS_SUBSTITUTION */ + + case '=': + /* Posix.2 section 3.6.1 says that tildes following `=' in words + which are not assignment statements are not expanded. If the + shell isn't in posix mode, though, we perform tilde expansion + on `likely candidate' unquoted assignment statements (flags + include W_ASSIGNMENT but not W_QUOTED). A likely candidate + contains an unquoted :~ or =~. Something to think about: we + now have a flag that says to perform tilde expansion on arguments + to `assignment builtins' like declare and export that look like + assignment statements. We now do tilde expansion on such words + even in POSIX mode. */ + if (word->flags & (W_ASSIGNRHS|W_NOTILDE)) + { + if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 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 `='. */ + if ((word->flags & W_ASSIGNMENT) && + (posixly_correct == 0 || (word->flags & W_TILDEEXP)) && + assignoff == -1 && sindex > 0) + assignoff = sindex; + if (sindex == assignoff && string[sindex+1] == '~') /* XXX */ + word->flags |= W_ITILDE; +#if 0 + else if ((word->flags & W_ASSIGNMENT) && + (posixly_correct == 0 || (word->flags & W_TILDEEXP)) && + string[sindex+1] == '~') + word->flags |= W_ITILDE; +#endif + if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c)) + goto add_ifs_character; + else + goto add_character; + + case ':': + if (word->flags & W_NOTILDE) + { + if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 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; + + if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 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 + at the start of a word or after an unquoted : or = in an + assignment statement, we don't do tilde expansion. */ + if ((word->flags & (W_NOTILDE|W_DQUOTE)) || + (sindex > 0 && ((word->flags & W_ITILDE) == 0)) || + (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) + { + word->flags &= ~W_ITILDE; + if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0) + goto add_ifs_character; + else + goto add_character; + } + + if (word->flags & W_ASSIGNRHS) + tflag = 2; + else if (word->flags & (W_ASSIGNMENT|W_TILDEEXP)) + tflag = 1; + else + tflag = 0; + + temp = bash_tilde_find_word (string + sindex, tflag, &t_index); + + word->flags &= ~W_ITILDE; + + if (temp && *temp && t_index > 0) + { + temp1 = bash_tilde_expand (temp, tflag); + if (temp1 && *temp1 == '~' && STREQ (temp, temp1)) + { + FREE (temp); + FREE (temp1); + goto add_character; /* tilde expansion failed */ + } + free (temp); + temp = temp1; + sindex += t_index; + goto add_quoted_string; /* XXX was add_string */ + } + else + { + FREE (temp); + goto add_character; + } + + case '$': + if (expanded_something) + *expanded_something = 1; + + temp_has_dollar_at = 0; + pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0; + if (word->flags & W_NOSPLIT2) + pflags |= PF_NOSPLIT2; + if (word->flags & W_ASSIGNRHS) + pflags |= PF_ASSIGNRHS; + tword = param_expand (string, &sindex, quoted, expanded_something, + &temp_has_dollar_at, "ed_dollar_at, + &had_quoted_null, pflags); + has_dollar_at += temp_has_dollar_at; + + if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal) + { + free (string); + free (istring); + return ((tword == &expand_wdesc_error) ? &expand_word_error + : &expand_word_fatal); + } + if (contains_dollar_at && has_dollar_at) + *contains_dollar_at = 1; + + if (tword && (tword->flags & W_HASQUOTEDNULL)) + had_quoted_null = 1; + + temp = tword ? tword->word : (char *)NULL; + dispose_word_desc (tword); + + /* Kill quoted nulls; we will add them back at the end of + expand_word_internal if nothing else in the string */ + if (had_quoted_null && temp && QUOTED_NULL (temp)) + { + FREE (temp); + temp = (char *)NULL; + } + + goto add_string; + break; + + case '`': /* Backquoted command substitution. */ + { + t_index = sindex++; + + temp = string_extract (string, &sindex, "`", SX_REQMATCH); + /* The test of sindex against t_index is to allow bare instances of + ` to pass through, for backwards compatibility. */ + if (temp == &extract_string_error || temp == &extract_string_fatal) + { + if (sindex - 1 == t_index) + { + sindex = t_index; + goto add_character; + } + last_command_exit_value = EXECUTION_FAILURE; + report_error (_("bad substitution: no closing \"`\" in %s") , string+t_index); + free (string); + free (istring); + return ((temp == &extract_string_error) ? &expand_word_error + : &expand_word_fatal); + } + + if (expanded_something) + *expanded_something = 1; + + if (word->flags & W_NOCOMSUB) + /* sindex + 1 because string[sindex] == '`' */ + temp1 = substring (string, t_index, sindex + 1); + else + { + de_backslash (temp); + tword = command_substitute (temp, quoted); + temp1 = tword ? tword->word : (char *)NULL; + if (tword) + dispose_word_desc (tword); + } + FREE (temp); + temp = temp1; + goto dollar_add_string; + } + + case '\\': + if (string[sindex + 1] == '\n') + { + sindex += 2; + continue; + } + + c = string[++sindex]; + + if (quoted & Q_HERE_DOCUMENT) + tflag = CBSHDOC; + else if (quoted & Q_DOUBLE_QUOTES) + tflag = CBSDQUOTE; + else + tflag = 0; + + /* From Posix discussion on austin-group list: Backslash escaping + a } in ${...} is removed. Issue 0000221 */ + if ((quoted & Q_DOLBRACE) && c == RBRACE) + { + SCOPY_CHAR_I (twochars, CTLESC, c, string, sindex, string_size); + } + /* This is the fix for " $@\ " */ + else if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && ((sh_syntaxtab[c] & tflag) == 0) & isexp == 0 && isifs (c)) + { + RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, + DEFAULT_ARRAY_SIZE); + istring[istring_index++] = CTLESC; + istring[istring_index++] = '\\'; + istring[istring_index] = '\0'; + + SCOPY_CHAR_I (twochars, CTLESC, c, string, sindex, string_size); + } + else if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && ((sh_syntaxtab[c] & tflag) == 0)) + { + SCOPY_CHAR_I (twochars, '\\', c, string, sindex, string_size); + } + else if (c == 0) + { + c = CTLNUL; + sindex--; /* add_character: label increments sindex */ + goto add_character; + } + else + { + SCOPY_CHAR_I (twochars, CTLESC, c, string, sindex, string_size); + } + + sindex++; +add_twochars: + /* BEFORE jumping here, we need to increment sindex if appropriate */ + RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, + DEFAULT_ARRAY_SIZE); + istring[istring_index++] = twochars[0]; + istring[istring_index++] = twochars[1]; + istring[istring_index] = '\0'; + + break; + + case '"': +#if 0 + if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (word->flags & W_DQUOTE)) +#else + if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) +#endif + goto add_character; + + t_index = ++sindex; + temp = string_extract_double_quoted (string, &sindex, 0); + + /* If the quotes surrounded the entire string, then the + whole word was quoted. */ + quoted_state = (t_index == 1 && string[sindex] == '\0') + ? WHOLLY_QUOTED + : PARTIALLY_QUOTED; + + if (temp && *temp) + { + tword = alloc_word_desc (); + tword->word = temp; + + temp = (char *)NULL; + + temp_has_dollar_at = 0; /* XXX */ + /* Need to get W_HASQUOTEDNULL flag through this function. */ + list = expand_word_internal (tword, Q_DOUBLE_QUOTES, 0, &temp_has_dollar_at, (int *)NULL); + has_dollar_at += temp_has_dollar_at; + + if (list == &expand_word_error || list == &expand_word_fatal) + { + free (istring); + free (string); + /* expand_word_internal has already freed temp_word->word + for us because of the way it prints error messages. */ + tword->word = (char *)NULL; + dispose_word (tword); + return list; + } + + dispose_word (tword); + + /* "$@" (a double-quoted dollar-at) expands into nothing, + not even a NULL word, when there are no positional + parameters. */ + if (list == 0 && has_dollar_at) + { + quoted_dollar_at++; + break; + } + + /* If we get "$@", we know we have expanded something, so we + need to remember it for the final split on $IFS. This is + a special case; it's the only case where a quoted string + can expand into more than one word. It's going to come back + from the above call to expand_word_internal as a list with + a single word, in which all characters are quoted and + separated by blanks. What we want to do is to turn it back + into a list for the next piece of code. */ + if (list) + dequote_list (list); + + if (list && list->word && (list->word->flags & W_HASQUOTEDNULL)) + had_quoted_null = 1; /* XXX */ + + if (has_dollar_at) + { + quoted_dollar_at++; + if (contains_dollar_at) + *contains_dollar_at = 1; + if (expanded_something) + *expanded_something = 1; + } + } + else + { + /* What we have is "". This is a minor optimization. */ + FREE (temp); + list = (WORD_LIST *)NULL; + } + + /* The code above *might* return a list (consider the case of "$@", + where it returns "$1", "$2", etc.). We can't throw away the + rest of the list, and we have to make sure each word gets added + as quoted. We test on tresult->next: if it is non-NULL, we + quote the whole list, save it to a string with string_list, and + add that string. We don't need to quote the results of this + (and it would be wrong, since that would quote the separators + as well), so we go directly to add_string. */ + if (list) + { + if (list->next) + { +#if 0 + if (quoted_dollar_at && (word->flags & W_NOSPLIT2)) + temp = string_list_internal (quote_list (list), " "); + else +#endif + /* Testing quoted_dollar_at makes sure that "$@" is + split correctly when $IFS does not contain a space. */ + temp = quoted_dollar_at + ? string_list_dollar_at (list, Q_DOUBLE_QUOTES) + : string_list (quote_list (list)); + dispose_words (list); + goto add_string; + } + else + { + temp = savestring (list->word->word); + tflag = list->word->flags; + dispose_words (list); + + /* If the string is not a quoted null string, we want + to remove any embedded unquoted CTLNUL characters. + We do not want to turn quoted null strings back into + the empty string, though. We do this because we + want to remove any quoted nulls from expansions that + contain other characters. For example, if we have + x"$*"y or "x$*y" and there are no positional parameters, + the $* should expand into nothing. */ + /* We use the W_HASQUOTEDNULL flag to differentiate the + cases: a quoted null character as above and when + CTLNUL is contained in the (non-null) expansion + of some variable. We use the had_quoted_null flag to + pass the value through this function to its caller. */ + if ((tflag & W_HASQUOTEDNULL) && QUOTED_NULL (temp) == 0) + remove_quoted_nulls (temp); /* XXX */ + } + } + else + temp = (char *)NULL; + + /* We do not want to add quoted nulls to strings that are only + partially quoted; we can throw them away. The exception to + this is when we are going to be performing word splitting, + since we have to preserve a null argument if the next character + will cause word splitting. */ + if (temp == 0 && quoted_state == PARTIALLY_QUOTED && (word->flags & (W_NOSPLIT|W_NOSPLIT2))) + continue; + + add_quoted_string: + + if (temp) + { + temp1 = temp; + temp = quote_string (temp); + free (temp1); + goto add_string; + } + else + { + /* Add NULL arg. */ + c = CTLNUL; + sindex--; /* add_character: label increments sindex */ + goto add_character; + } + + /* break; */ + + case '\'': +#if 0 + if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (word->flags & W_DQUOTE)) +#else + if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) +#endif + goto add_character; + + t_index = ++sindex; + temp = string_extract_single_quoted (string, &sindex); + + /* If the entire STRING was surrounded by single quotes, + then the string is wholly quoted. */ + quoted_state = (t_index == 1 && string[sindex] == '\0') + ? WHOLLY_QUOTED + : PARTIALLY_QUOTED; + + /* If all we had was '', it is a null expansion. */ + if (*temp == '\0') + { + free (temp); + temp = (char *)NULL; + } + else + remove_quoted_escapes (temp); /* ??? */ + + /* We do not want to add quoted nulls to strings that are only + partially quoted; such nulls are discarded. */ + if (temp == 0 && (quoted_state == PARTIALLY_QUOTED)) + continue; + + /* If we have a quoted null expansion, add a quoted NULL to istring. */ + if (temp == 0) + { + c = CTLNUL; + sindex--; /* add_character: label increments sindex */ + goto add_character; + } + else + goto add_quoted_string; + + /* break; */ + + 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 */ + sindex++; + if (c == 0) + { + c = CTLNUL; + goto add_character; + } + else + { +#if HANDLE_MULTIBYTE + if (MB_CUR_MAX > 1) + sindex--; + + if (MB_CUR_MAX > 1) + { + SADD_MBQCHAR_BODY(temp, string, sindex, string_size); + } + else +#endif + { + twochars[0] = CTLESC; + twochars[1] = c; + goto add_twochars; + } + } + } + + SADD_MBCHAR (temp, string, sindex, string_size); + + add_character: + RESIZE_MALLOCED_BUFFER (istring, istring_index, 1, istring_size, + DEFAULT_ARRAY_SIZE); + istring[istring_index++] = c; + istring[istring_index] = '\0'; + + /* Next character. */ + sindex++; + } + } + +finished_with_string: + /* OK, we're ready to return. If we have a quoted string, and + quoted_dollar_at is not set, we do no splitting at all; otherwise + we split on ' '. The routines that call this will handle what to + do if nothing has been expanded. */ + + /* Partially and wholly quoted strings which expand to the empty + string are retained as an empty arguments. Unquoted strings + which expand to the empty string are discarded. The single + exception is the case of expanding "$@" when there are no + positional parameters. In that case, we discard the expansion. */ + + /* Because of how the code that handles "" and '' in partially + quoted strings works, we need to make ISTRING into a QUOTED_NULL + if we saw quoting characters, but the expansion was empty. + "" and '' are tossed away before we get to this point when + processing partially quoted strings. This makes "" and $xxx"" + equivalent when xxx is unset. We also look to see whether we + saw a quoted null from a ${} expansion and add one back if we + need to. */ + + /* If we expand to nothing and there were no single or double quotes + in the word, we throw it away. Otherwise, we return a NULL word. + The single exception is for $@ surrounded by double quotes when + there are no positional parameters. In that case, we also throw + the word away. */ + + if (*istring == '\0') + { + if (quoted_dollar_at == 0 && (had_quoted_null || quoted_state == PARTIALLY_QUOTED)) + { + istring[0] = CTLNUL; + istring[1] = '\0'; + tword = make_bare_word (istring); + tword->flags |= W_HASQUOTEDNULL; /* XXX */ + list = make_word_list (tword, (WORD_LIST *)NULL); + if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + tword->flags |= W_QUOTED; + } + /* According to sh, ksh, and Posix.2, if a word expands into nothing + and a double-quoted "$@" appears anywhere in it, then the entire + word is removed. */ + else if (quoted_state == UNQUOTED || quoted_dollar_at) + list = (WORD_LIST *)NULL; +#if 0 + else + { + tword = make_bare_word (istring); + if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + tword->flags |= W_QUOTED; + list = make_word_list (tword, (WORD_LIST *)NULL); + } +#else + else + list = (WORD_LIST *)NULL; +#endif + } + else if (word->flags & W_NOSPLIT) + { + tword = make_bare_word (istring); + if (word->flags & W_ASSIGNMENT) + tword->flags |= W_ASSIGNMENT; /* XXX */ + if (word->flags & W_COMPASSIGN) + tword->flags |= W_COMPASSIGN; /* XXX */ + if (word->flags & W_NOGLOB) + tword->flags |= W_NOGLOB; /* XXX */ + if (word->flags & W_NOBRACE) + tword->flags |= W_NOBRACE; /* XXX */ + if (word->flags & W_NOEXPAND) + tword->flags |= W_NOEXPAND; /* XXX */ + if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + tword->flags |= W_QUOTED; + if (had_quoted_null && QUOTED_NULL (istring)) + tword->flags |= W_HASQUOTEDNULL; + list = make_word_list (tword, (WORD_LIST *)NULL); + } + else + { + char *ifs_chars; + + ifs_chars = (quoted_dollar_at || has_dollar_at) ? ifs_value : (char *)NULL; + + /* If we have $@, we need to split the results no matter what. If + IFS is unset or NULL, string_list_dollar_at has separated the + positional parameters with a space, so we split on space (we have + set ifs_chars to " \t\n" above if ifs is unset). If IFS is set, + string_list_dollar_at has separated the positional parameters + with the first character of $IFS, so we split on $IFS. */ + if (has_dollar_at && ifs_chars) + list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1); + else + { + tword = make_bare_word (istring); + if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED)) + tword->flags |= W_QUOTED; + if (word->flags & W_ASSIGNMENT) + tword->flags |= W_ASSIGNMENT; + if (word->flags & W_COMPASSIGN) + tword->flags |= W_COMPASSIGN; + if (word->flags & W_NOGLOB) + tword->flags |= W_NOGLOB; + if (word->flags & W_NOBRACE) + tword->flags |= W_NOBRACE; + if (word->flags & W_NOEXPAND) + tword->flags |= W_NOEXPAND; + if (had_quoted_null && QUOTED_NULL (istring)) + tword->flags |= W_HASQUOTEDNULL; /* XXX */ + list = make_word_list (tword, (WORD_LIST *)NULL); + } + } + + free (istring); + return (list); +} + +/* **************************************************************** */ +/* */ +/* Functions for Quote Removal */ +/* */ +/* **************************************************************** */ + +/* Perform quote removal on STRING. If QUOTED > 0, assume we are obeying the + backslash quoting rules for within double quotes or a here document. */ +char * +string_quote_removal (string, quoted) + char *string; + int quoted; +{ + size_t slen; + char *r, *result_string, *temp, *send; + int sindex, tindex, dquote; + unsigned char c; + DECLARE_MBSTATE; + + /* The result can be no longer than the original string. */ + slen = strlen (string); + send = string + slen; + + r = result_string = (char *)xmalloc (slen + 1); + + for (dquote = sindex = 0; c = string[sindex];) + { + switch (c) + { + case '\\': + c = string[++sindex]; + if (c == 0) + { + *r++ = '\\'; + break; + } + if (((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || dquote) && (sh_syntaxtab[c] & CBSDQUOTE) == 0) + *r++ = '\\'; + /* FALLTHROUGH */ + + default: + SCOPY_CHAR_M (r, string, send, sindex); + break; + + case '\'': + if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || dquote) + { + *r++ = c; + sindex++; + break; + } + tindex = sindex + 1; + temp = string_extract_single_quoted (string, &tindex); + if (temp) + { + strcpy (r, temp); + r += strlen (r); + free (temp); + } + sindex = tindex; + break; + + case '"': + dquote = 1 - dquote; + sindex++; + break; + } + } + *r = '\0'; + return (result_string); +} + +#if 0 +/* UNUSED */ +/* Perform quote removal on word WORD. This allocates and returns a new + WORD_DESC *. */ +WORD_DESC * +word_quote_removal (word, quoted) + WORD_DESC *word; + int quoted; +{ + WORD_DESC *w; + char *t; + + t = string_quote_removal (word->word, quoted); + w = alloc_word_desc (); + w->word = t ? t : savestring (""); + return (w); +} + +/* Perform quote removal on all words in LIST. If QUOTED is non-zero, + the members of the list are treated as if they are surrounded by + double quotes. Return a new list, or NULL if LIST is NULL. */ +WORD_LIST * +word_list_quote_removal (list, quoted) + WORD_LIST *list; + int quoted; +{ + WORD_LIST *result, *t, *tresult, *e; + + for (t = list, result = (WORD_LIST *)NULL; t; t = t->next) + { + tresult = make_word_list (word_quote_removal (t->word, quoted), (WORD_LIST *)NULL); +#if 0 + result = (WORD_LIST *) list_append (result, tresult); +#else + if (result == 0) + result = e = tresult; + else + { + e->next = tresult; + while (e->next) + e = e->next; + } +#endif + } + return (result); +} +#endif + +/******************************************* + * * + * Functions to perform word splitting * + * * + *******************************************/ + +void +setifs (v) + SHELL_VAR *v; +{ + char *t; + unsigned char uc; + + ifs_var = v; + ifs_value = (v && value_cell (v)) ? value_cell (v) : " \t\n"; + + /* Should really merge ifs_cmap with sh_syntaxtab. XXX - doesn't yet + handle multibyte chars in IFS */ + memset (ifs_cmap, '\0', sizeof (ifs_cmap)); + for (t = ifs_value ; t && *t; t++) + { + uc = *t; + ifs_cmap[uc] = 1; + } + +#if defined (HANDLE_MULTIBYTE) + if (ifs_value == 0) + { + ifs_firstc[0] = '\0'; + ifs_firstc_len = 1; + } + else + { + size_t ifs_len; + ifs_len = strnlen (ifs_value, MB_CUR_MAX); + ifs_firstc_len = MBLEN (ifs_value, ifs_len); + if (ifs_firstc_len == 1 || ifs_firstc_len == 0 || MB_INVALIDCH (ifs_firstc_len)) + { + ifs_firstc[0] = ifs_value[0]; + ifs_firstc[1] = '\0'; + ifs_firstc_len = 1; + } + else + memcpy (ifs_firstc, ifs_value, ifs_firstc_len); + } +#else + ifs_firstc = ifs_value ? *ifs_value : 0; +#endif +} + +char * +getifs () +{ + return ifs_value; +} + +/* This splits a single word into a WORD LIST on $IFS, but only if the word + is not quoted. list_string () performs quote removal for us, even if we + don't do any splitting. */ +WORD_LIST * +word_split (w, ifs_chars) + WORD_DESC *w; + char *ifs_chars; +{ + WORD_LIST *result; + + if (w) + { + char *xifs; + + xifs = ((w->flags & W_QUOTED) || ifs_chars == 0) ? "" : ifs_chars; + result = list_string (w->word, xifs, w->flags & W_QUOTED); + } + else + result = (WORD_LIST *)NULL; + + return (result); +} + +/* Perform word splitting on LIST and return the RESULT. It is possible + to return (WORD_LIST *)NULL. */ +static WORD_LIST * +word_list_split (list) + WORD_LIST *list; +{ + WORD_LIST *result, *t, *tresult, *e; + + for (t = list, result = (WORD_LIST *)NULL; t; t = t->next) + { + tresult = word_split (t->word, ifs_value); + if (result == 0) + result = e = tresult; + else + { + e->next = tresult; + while (e->next) + e = e->next; + } + } + return (result); +} + +/************************************************** + * * + * Functions to expand an entire WORD_LIST * + * * + **************************************************/ + +/* Do any word-expansion-specific cleanup and jump to top_level */ +static void +exp_jump_to_top_level (v) + int v; +{ + set_pipestatus_from_exit (last_command_exit_value); + + /* Cleanup code goes here. */ + expand_no_split_dollar_star = 0; /* XXX */ + expanding_redir = 0; + assigning_in_environment = 0; + + if (parse_and_execute_level == 0) + top_level_cleanup (); /* from sig.c */ + + jump_to_top_level (v); +} + +/* Put NLIST (which is a WORD_LIST * of only one element) at the front of + ELIST, and set ELIST to the new list. */ +#define PREPEND_LIST(nlist, elist) \ + do { nlist->next = elist; elist = nlist; } while (0) + +/* Separate out any initial variable assignments from TLIST. If set -k has + been executed, remove all assignment statements from TLIST. Initial + variable assignments and other environment assignments are placed + on SUBST_ASSIGN_VARLIST. */ +static WORD_LIST * +separate_out_assignments (tlist) + WORD_LIST *tlist; +{ + register WORD_LIST *vp, *lp; + + if (tlist == 0) + return ((WORD_LIST *)NULL); + + if (subst_assign_varlist) + dispose_words (subst_assign_varlist); /* Clean up after previous error */ + + subst_assign_varlist = (WORD_LIST *)NULL; + vp = lp = tlist; + + /* Separate out variable assignments at the start of the command. + Loop invariant: vp->next == lp + Loop postcondition: + lp = list of words left after assignment statements skipped + tlist = original list of words + */ + while (lp && (lp->word->flags & W_ASSIGNMENT)) + { + vp = lp; + lp = lp->next; + } + + /* If lp != tlist, we have some initial assignment statements. + We make SUBST_ASSIGN_VARLIST point to the list of assignment + words and TLIST point to the remaining words. */ + if (lp != tlist) + { + subst_assign_varlist = tlist; + /* ASSERT(vp->next == lp); */ + vp->next = (WORD_LIST *)NULL; /* terminate variable list */ + tlist = lp; /* remainder of word list */ + } + + /* vp == end of variable list */ + /* tlist == remainder of original word list without variable assignments */ + if (!tlist) + /* All the words in tlist were assignment statements */ + return ((WORD_LIST *)NULL); + + /* ASSERT(tlist != NULL); */ + /* ASSERT((tlist->word->flags & W_ASSIGNMENT) == 0); */ + + /* If the -k option is in effect, we need to go through the remaining + words, separate out the assignment words, and place them on + SUBST_ASSIGN_VARLIST. */ + if (place_keywords_in_env) + { + WORD_LIST *tp; /* tp == running pointer into tlist */ + + tp = tlist; + lp = tlist->next; + + /* Loop Invariant: tp->next == lp */ + /* Loop postcondition: tlist == word list without assignment statements */ + while (lp) + { + if (lp->word->flags & W_ASSIGNMENT) + { + /* Found an assignment statement, add this word to end of + subst_assign_varlist (vp). */ + if (!subst_assign_varlist) + subst_assign_varlist = vp = lp; + else + { + vp->next = lp; + vp = lp; + } + + /* Remove the word pointed to by LP from TLIST. */ + tp->next = lp->next; + /* ASSERT(vp == lp); */ + lp->next = (WORD_LIST *)NULL; + lp = tp->next; + } + else + { + tp = lp; + lp = lp->next; + } + } + } + return (tlist); +} + +#define WEXP_VARASSIGN 0x001 +#define WEXP_BRACEEXP 0x002 +#define WEXP_TILDEEXP 0x004 +#define WEXP_PARAMEXP 0x008 +#define WEXP_PATHEXP 0x010 + +/* All of the expansions, including variable assignments at the start of + the list. */ +#define WEXP_ALL (WEXP_VARASSIGN|WEXP_BRACEEXP|WEXP_TILDEEXP|WEXP_PARAMEXP|WEXP_PATHEXP) + +/* All of the expansions except variable assignments at the start of + the list. */ +#define WEXP_NOVARS (WEXP_BRACEEXP|WEXP_TILDEEXP|WEXP_PARAMEXP|WEXP_PATHEXP) + +/* All of the `shell expansions': brace expansion, tilde expansion, parameter + expansion, command substitution, arithmetic expansion, word splitting, and + quote removal. */ +#define WEXP_SHELLEXP (WEXP_BRACEEXP|WEXP_TILDEEXP|WEXP_PARAMEXP) + +/* Take the list of words in LIST and do the various substitutions. Return + a new list of words which is the expanded list, and without things like + variable assignments. */ + +WORD_LIST * +expand_words (list) + WORD_LIST *list; +{ + return (expand_word_list_internal (list, WEXP_ALL)); +} + +/* Same as expand_words (), but doesn't hack variable or environment + variables. */ +WORD_LIST * +expand_words_no_vars (list) + WORD_LIST *list; +{ + return (expand_word_list_internal (list, WEXP_NOVARS)); +} + +WORD_LIST * +expand_words_shellexp (list) + WORD_LIST *list; +{ + return (expand_word_list_internal (list, WEXP_SHELLEXP)); +} + +static WORD_LIST * +glob_expand_word_list (tlist, eflags) + WORD_LIST *tlist; + int eflags; +{ + char **glob_array, *temp_string; + register int glob_index; + WORD_LIST *glob_list, *output_list, *disposables, *next; + WORD_DESC *tword; + + output_list = disposables = (WORD_LIST *)NULL; + glob_array = (char **)NULL; + while (tlist) + { + /* For each word, either globbing is attempted or the word is + added to orig_list. If globbing succeeds, the results are + added to orig_list and the word (tlist) is added to the list + of disposable words. If globbing fails and failed glob + expansions are left unchanged (the shell default), the + original word is added to orig_list. If globbing fails and + failed glob expansions are removed, the original word is + added to the list of disposable words. orig_list ends up + in reverse order and requires a call to REVERSE_LIST to + be set right. After all words are examined, the disposable + words are freed. */ + next = tlist->next; + + /* If the word isn't an assignment and contains an unquoted + pattern matching character, then glob it. */ + if ((tlist->word->flags & W_NOGLOB) == 0 && + unquoted_glob_pattern_p (tlist->word->word)) + { + glob_array = shell_glob_filename (tlist->word->word); + + /* Handle error cases. + I don't think we should report errors like "No such file + or directory". However, I would like to report errors + like "Read failed". */ + + if (glob_array == 0 || GLOB_FAILED (glob_array)) + { + glob_array = (char **)xmalloc (sizeof (char *)); + glob_array[0] = (char *)NULL; + } + + /* Dequote the current word in case we have to use it. */ + if (glob_array[0] == NULL) + { + temp_string = dequote_string (tlist->word->word); + free (tlist->word->word); + tlist->word->word = temp_string; + } + + /* Make the array into a word list. */ + glob_list = (WORD_LIST *)NULL; + for (glob_index = 0; glob_array[glob_index]; glob_index++) + { + tword = make_bare_word (glob_array[glob_index]); + tword->flags |= W_GLOBEXP; /* XXX */ + glob_list = make_word_list (tword, glob_list); + } + + if (glob_list) + { + output_list = (WORD_LIST *)list_append (glob_list, output_list); + PREPEND_LIST (tlist, disposables); + } + else if (fail_glob_expansion != 0) + { + last_command_exit_value = EXECUTION_FAILURE; + report_error (_("no match: %s"), tlist->word->word); + exp_jump_to_top_level (DISCARD); + } + else if (allow_null_glob_expansion == 0) + { + /* Failed glob expressions are left unchanged. */ + PREPEND_LIST (tlist, output_list); + } + else + { + /* Failed glob expressions are removed. */ + PREPEND_LIST (tlist, disposables); + } + } + else + { + /* Dequote the string. */ + temp_string = dequote_string (tlist->word->word); + free (tlist->word->word); + tlist->word->word = temp_string; + PREPEND_LIST (tlist, output_list); + } + + strvec_dispose (glob_array); + glob_array = (char **)NULL; + + tlist = next; + } + + if (disposables) + dispose_words (disposables); + + if (output_list) + output_list = REVERSE_LIST (output_list, WORD_LIST *); + + return (output_list); +} + +#if defined (BRACE_EXPANSION) +static WORD_LIST * +brace_expand_word_list (tlist, eflags) + WORD_LIST *tlist; + int eflags; +{ + register char **expansions; + char *temp_string; + WORD_LIST *disposables, *output_list, *next; + WORD_DESC *w; + int eindex; + + for (disposables = output_list = (WORD_LIST *)NULL; tlist; tlist = next) + { + next = tlist->next; + + if (tlist->word->flags & W_NOBRACE) + { +/*itrace("brace_expand_word_list: %s: W_NOBRACE", tlist->word->word);*/ + PREPEND_LIST (tlist, output_list); + continue; + } + + if ((tlist->word->flags & (W_COMPASSIGN|W_ASSIGNARG)) == (W_COMPASSIGN|W_ASSIGNARG)) + { +/*itrace("brace_expand_word_list: %s: W_COMPASSIGN|W_ASSIGNARG", tlist->word->word);*/ + PREPEND_LIST (tlist, output_list); + continue; + } + + /* Only do brace expansion if the word has a brace character. If + not, just add the word list element to BRACES and continue. In + the common case, at least when running shell scripts, this will + degenerate to a bunch of calls to `mbschr', and then what is + basically a reversal of TLIST into BRACES, which is corrected + by a call to REVERSE_LIST () on BRACES when the end of TLIST + is reached. */ + if (mbschr (tlist->word->word, LBRACE)) + { + expansions = brace_expand (tlist->word->word); + + for (eindex = 0; temp_string = expansions[eindex]; eindex++) + { + w = alloc_word_desc (); + w->word = temp_string; + + /* If brace expansion didn't change the word, preserve + the flags. We may want to preserve the flags + unconditionally someday -- XXX */ + if (STREQ (temp_string, tlist->word->word)) + w->flags = tlist->word->flags; + else + w = make_word_flags (w, temp_string); + + output_list = make_word_list (w, output_list); + } + free (expansions); + + /* Add TLIST to the list of words to be freed after brace + expansion has been performed. */ + PREPEND_LIST (tlist, disposables); + } + else + PREPEND_LIST (tlist, output_list); + } + + if (disposables) + dispose_words (disposables); + + if (output_list) + output_list = REVERSE_LIST (output_list, WORD_LIST *); + + return (output_list); +} +#endif + +#if defined (ARRAY_VARS) +/* Take WORD, a compound associative array assignment, and internally run + 'declare -A w', where W is the variable name portion of WORD. */ +static int +make_internal_declare (word, option) + char *word; + char *option; +{ + int t; + WORD_LIST *wl; + WORD_DESC *w; + + w = make_word (word); + + t = assignment (w->word, 0); + w->word[t] = '\0'; + + wl = make_word_list (w, (WORD_LIST *)NULL); + wl = make_word_list (make_word (option), wl); + + return (declare_builtin (wl)); +} +#endif + +static WORD_LIST * +shell_expand_word_list (tlist, eflags) + WORD_LIST *tlist; + int eflags; +{ + WORD_LIST *expanded, *orig_list, *new_list, *next, *temp_list; + int expanded_something, has_dollar_at; + char *temp_string; + + /* We do tilde expansion all the time. This is what 1003.2 says. */ + new_list = (WORD_LIST *)NULL; + for (orig_list = tlist; tlist; tlist = next) + { + temp_string = tlist->word->word; + + next = tlist->next; + +#if defined (ARRAY_VARS) + /* If this is a compound array assignment to a builtin that accepts + such assignments (e.g., `declare'), take the assignment and perform + it separately, handling the semantics of declarations inside shell + functions. This avoids the double-evaluation of such arguments, + because `declare' does some evaluation of compound assignments on + its own. */ + if ((tlist->word->flags & (W_COMPASSIGN|W_ASSIGNARG)) == (W_COMPASSIGN|W_ASSIGNARG)) + { + int t; + + if ((tlist->word->flags & (W_ASSIGNASSOC|W_ASSNGLOBAL)) == (W_ASSIGNASSOC|W_ASSNGLOBAL)) + make_internal_declare (tlist->word->word, "-gA"); + else if (tlist->word->flags & W_ASSIGNASSOC) + make_internal_declare (tlist->word->word, "-A"); + if ((tlist->word->flags & (W_ASSIGNARRAY|W_ASSNGLOBAL)) == (W_ASSIGNARRAY|W_ASSNGLOBAL)) + make_internal_declare (tlist->word->word, "-ga"); + else if (tlist->word->flags & W_ASSIGNARRAY) + make_internal_declare (tlist->word->word, "-a"); + else if (tlist->word->flags & W_ASSNGLOBAL) + make_internal_declare (tlist->word->word, "-g"); + + t = do_word_assignment (tlist->word, 0); + if (t == 0) + { + last_command_exit_value = EXECUTION_FAILURE; + exp_jump_to_top_level (DISCARD); + } + + /* Now transform the word as ksh93 appears to do and go on */ + t = assignment (tlist->word->word, 0); + tlist->word->word[t] = '\0'; + tlist->word->flags &= ~(W_ASSIGNMENT|W_NOSPLIT|W_COMPASSIGN|W_ASSIGNARG|W_ASSIGNASSOC|W_ASSIGNARRAY); + } +#endif + + expanded_something = 0; + expanded = expand_word_internal + (tlist->word, 0, 0, &has_dollar_at, &expanded_something); + + if (expanded == &expand_word_error || expanded == &expand_word_fatal) + { + /* By convention, each time this error is returned, + tlist->word->word has already been freed. */ + tlist->word->word = (char *)NULL; + + /* Dispose our copy of the original list. */ + dispose_words (orig_list); + /* Dispose the new list we're building. */ + dispose_words (new_list); + + last_command_exit_value = EXECUTION_FAILURE; + if (expanded == &expand_word_error) + exp_jump_to_top_level (DISCARD); + else + exp_jump_to_top_level (FORCE_EOF); + } + + /* Don't split words marked W_NOSPLIT. */ + if (expanded_something && (tlist->word->flags & W_NOSPLIT) == 0) + { + temp_list = word_list_split (expanded); + dispose_words (expanded); + } + else + { + /* If no parameter expansion, command substitution, process + substitution, or arithmetic substitution took place, then + do not do word splitting. We still have to remove quoted + null characters from the result. */ + word_list_remove_quoted_nulls (expanded); + temp_list = expanded; + } + + expanded = REVERSE_LIST (temp_list, WORD_LIST *); + new_list = (WORD_LIST *)list_append (expanded, new_list); + } + + if (orig_list) + dispose_words (orig_list); + + if (new_list) + new_list = REVERSE_LIST (new_list, WORD_LIST *); + + return (new_list); +} + +/* The workhorse for expand_words () and expand_words_no_vars (). + First arg is LIST, a WORD_LIST of words. + Second arg EFLAGS is a flags word controlling which expansions are + performed. + + This does all of the substitutions: brace expansion, tilde expansion, + parameter expansion, command substitution, arithmetic expansion, + process substitution, word splitting, and pathname expansion, according + to the bits set in EFLAGS. Words with the W_QUOTED or W_NOSPLIT bits + set, or for which no expansion is done, do not undergo word splitting. + Words with the W_NOGLOB bit set do not undergo pathname expansion; words + with W_NOBRACE set do not undergo brace expansion (see + brace_expand_word_list above). */ +static WORD_LIST * +expand_word_list_internal (list, eflags) + WORD_LIST *list; + int eflags; +{ + WORD_LIST *new_list, *temp_list; + int tint; + + if (list == 0) + return ((WORD_LIST *)NULL); + + garglist = new_list = copy_word_list (list); + if (eflags & WEXP_VARASSIGN) + { + garglist = new_list = separate_out_assignments (new_list); + if (new_list == 0) + { + if (subst_assign_varlist) + { + /* All the words were variable assignments, so they are placed + into the shell's environment. */ + for (temp_list = subst_assign_varlist; temp_list; temp_list = temp_list->next) + { + this_command_name = (char *)NULL; /* no arithmetic errors */ + tint = do_word_assignment (temp_list->word, 0); + /* Variable assignment errors in non-interactive shells + running in Posix.2 mode cause the shell to exit. */ + if (tint == 0) + { + last_command_exit_value = EXECUTION_FAILURE; + if (interactive_shell == 0 && posixly_correct) + exp_jump_to_top_level (FORCE_EOF); + else + exp_jump_to_top_level (DISCARD); + } + } + dispose_words (subst_assign_varlist); + subst_assign_varlist = (WORD_LIST *)NULL; + } + return ((WORD_LIST *)NULL); + } + } + + /* Begin expanding the words that remain. The expansions take place on + things that aren't really variable assignments. */ + +#if defined (BRACE_EXPANSION) + /* Do brace expansion on this word if there are any brace characters + in the string. */ + if ((eflags & WEXP_BRACEEXP) && brace_expansion && new_list) + new_list = brace_expand_word_list (new_list, eflags); +#endif /* BRACE_EXPANSION */ + + /* Perform the `normal' shell expansions: tilde expansion, parameter and + variable substitution, command substitution, arithmetic expansion, + and word splitting. */ + new_list = shell_expand_word_list (new_list, eflags); + + /* Okay, we're almost done. Now let's just do some filename + globbing. */ + if (new_list) + { + if ((eflags & WEXP_PATHEXP) && disallow_filename_globbing == 0) + /* Glob expand the word list unless globbing has been disabled. */ + new_list = glob_expand_word_list (new_list, eflags); + else + /* Dequote the words, because we're not performing globbing. */ + new_list = dequote_list (new_list); + } + + if ((eflags & WEXP_VARASSIGN) && subst_assign_varlist) + { + sh_wassign_func_t *assign_func; + int is_special_builtin, is_builtin_or_func; + + /* If the remainder of the words expand to nothing, Posix.2 requires + that the variable and environment assignments affect the shell's + environment. */ + assign_func = new_list ? assign_in_env : do_word_assignment; + tempenv_assign_error = 0; + + is_builtin_or_func = (new_list && new_list->word && (find_shell_builtin (new_list->word->word) || find_function (new_list->word->word))); + /* Posix says that special builtins exit if a variable assignment error + occurs in an assignment preceding it. */ + is_special_builtin = (posixly_correct && new_list && new_list->word && find_special_builtin (new_list->word->word)); + + for (temp_list = subst_assign_varlist; temp_list; temp_list = temp_list->next) + { + this_command_name = (char *)NULL; + assigning_in_environment = (assign_func == assign_in_env); + tint = (*assign_func) (temp_list->word, is_builtin_or_func); + assigning_in_environment = 0; + /* Variable assignment errors in non-interactive shells running + in Posix.2 mode cause the shell to exit. */ + if (tint == 0) + { + if (assign_func == do_word_assignment) + { + last_command_exit_value = EXECUTION_FAILURE; + if (interactive_shell == 0 && posixly_correct && is_special_builtin) + exp_jump_to_top_level (FORCE_EOF); + else + exp_jump_to_top_level (DISCARD); + } + else + tempenv_assign_error++; + } + } + + dispose_words (subst_assign_varlist); + subst_assign_varlist = (WORD_LIST *)NULL; + } + +#if 0 + tint = list_length (new_list) + 1; + RESIZE_MALLOCED_BUFFER (glob_argv_flags, 0, tint, glob_argv_flags_size, 16); + for (tint = 0, temp_list = new_list; temp_list; temp_list = temp_list->next) + glob_argv_flags[tint++] = (temp_list->word->flags & W_GLOBEXP) ? '1' : '0'; + glob_argv_flags[tint] = '\0'; +#endif + + return (new_list); +} diff --git a/tests/arith.right b/tests/arith.right index fdf405ec..680d9a95 100644 --- a/tests/arith.right +++ b/tests/arith.right @@ -231,6 +231,9 @@ ok 1 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +0 +0, 0 +0, 1 8 12 ./arith.tests: line 286: ((: x=9 y=41 : syntax error in expression (error token is "y=41 ") ./arith.tests: line 290: a b: syntax error in expression (error token is "b") diff --git a/tests/arith6.sub b/tests/arith6.sub index 52e55669..630e917e 100644 --- a/tests/arith6.sub +++ b/tests/arith6.sub @@ -44,3 +44,9 @@ n=0 ; (( (a[n]=++n)<7&&a[0])); echo "${a[@]:1}" n=0 a="(a[n]=++n)<7&&a[0]"; ((a[0])); echo "${a[@]:1}" n=0 a="(a[n]=n++)<7&&a"; ((a)); echo "${a[@]:1}" + +# bugs with lvalue caching and pointer aliasing through bash-4.2 +echo $(( a=(y[0] + y[1]) & 0xff, b=(y[2] + y[3]) & 0xff, a << 8 | b)) +echo $a, $b +((a = y[0], b = 1 )) +echo $a, $b @@ -970,7 +970,6 @@ run_debug_trap () void run_error_trap () { -itrace("run_error_trap"); if ((sigmodes[ERROR_TRAP] & SIG_TRAPPED) && ((sigmodes[ERROR_TRAP] & SIG_IGNORED) == 0) && (sigmodes[ERROR_TRAP] & SIG_INPROGRESS) == 0) _run_trap_internal (ERROR_TRAP, "error trap"); } @@ -1048,6 +1047,7 @@ restore_signal (sig) int sig; { set_signal_handler (sig, original_signals[sig]); +itrace("restore_signal_handler: setting signal for %d to 0x%x", sig, original_signals[sig]); change_signal (sig, (char *)DEFAULT_SIG); sigmodes[sig] &= ~SIG_TRAPPED; } @@ -1074,7 +1074,10 @@ reset_or_restore_signal_handlers (reset) if (sigmodes[i] & SIG_TRAPPED) { if (trap_list[i] == (char *)IGNORE_SIG) +{ +itrace("trap_list[%d] == IGNORE_SIG", i); set_signal_handler (i, SIG_IGN); +} else (*reset) (i); } @@ -1093,11 +1096,8 @@ reset_or_restore_signal_handlers (reset) sigmodes[RETURN_TRAP] &= ~SIG_TRAPPED; } if (error_trace_mode == 0) -{ -itrace("turning off SIG_TRAPPED for ERROR_TRAP"); sigmodes[ERROR_TRAP] &= ~SIG_TRAPPED; } -} /* Reset trapped signals to their original values, but don't free the trap strings. Called by the command substitution code and other places |