From 955543877583837c85470f7fb8a97b7aa8d45e6c Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Mon, 22 Aug 2016 15:58:43 -0400 Subject: [PATCH] bash-4.4-rc2 release --- CHANGES | 50 + CHANGES-4.4 | 176 + CWRU/changelog | 196 +- MANIFEST | 2 + arrayfunc.c | 3 +- arrayfunc.h | 2 + bashline.c | 15 +- command.h | 11 +- configure | 20 +- configure.ac | 2 +- doc/bash.0 | 782 ++-- doc/bash.1 | 9 +- doc/bash.html | 11 +- doc/bash.pdf | Bin 362252 -> 362250 bytes doc/bash.ps | 6796 ++++++++++++++++----------------- doc/bashref.dvi | Bin 743632 -> 743852 bytes doc/bashref.html | 5 +- doc/bashref.info | 181 +- doc/bashref.pdf | Bin 733317 -> 733442 bytes doc/bashref.ps | 65 +- doc/bashref.texi | 5 +- doc/builtins.ps | 2 +- doc/rbash.ps | 2 +- execute_cmd.c | 35 +- general.c | 2 +- jobs.c | 2 + lib/readline/bind.c | 4 +- lib/readline/callback.c | 19 +- lib/readline/display.c | 10 +- lib/readline/doc/rltech.texi | 32 +- lib/readline/doc/version.texi | 6 +- lib/readline/readline.h | 12 +- lib/readline/signals.c | 7 +- nojobs.c | 13 +- subst.c | 107 +- subst.h | 1 + tests/dollar-at-star | 5 + tests/dollar-at-star8.sub | 14 + tests/dollar.right | 5 + tests/exp.right | 100 + tests/exp.tests | 1 + tests/exp9.sub | 69 + trap.c | 9 + 43 files changed, 4796 insertions(+), 3992 deletions(-) create mode 100644 tests/dollar-at-star8.sub create mode 100644 tests/exp9.sub diff --git a/CHANGES b/CHANGES index b27a753db..0a565b458 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,53 @@ +This document details the changes between this version, bash-4.4-rc2, and +the previous version, bash-4.4-beta2. + +1. Changes to Bash + +a. Fixed an out-of-bounds read in the redirection operator completion code. + +b. Fixed execution context so `until continue' doesn't disable execution for + subsequent commands. + +c. Fixed trap handling code so traps don't inherit a command's temporary + environment. + +d. Fixed a bug that resulted in incorrect line numbers when a function is defined + as part of another function's execution. + +e. Fixed a bug in the expansion of ${a[@]} in contexts where word splitting is not + performed and $IFS is not the default. + +f. Fixed a bug that caused ''"$@" to not expand to an empty argument when there are + no positional parameters. + +g. Fixed a bug that caused a shell compiled without job control to use the incorrect + exit status for builtin commands preceded by a command executed from the file + system that causes the shell to call waitpid(). + +h. Improved word completion for quoted strings containing unterminated command + substitutions with embedded double quotes. + +2. Changes to Readline + +a. Fixed a bug that caused mode strings to be displayed incorrectly if the prompt was + shorter than the mode string. + +3. New Features in Bash + +a. Using ${a[@]} or ${a[*]} with an array without any assigned elements when + the nounset option is enabled no longer throws an unbound variable error. + +4. New Features in Readline + +a. New application-callable function: rl_pending_signal(): returns the signal + number of any signal readline has caught but not yet handled. + +b. New application-settable variable: rl_persistent_signal_handlers: if set to a + non-zero value, readline will enable the readline-6.2 signal handler behavior + in callback mode: handlers are installed when rl_callback_handler_install is + called and removed removed when a complete line has been read. + +------------------------------------------------------------------------------ This document details the changes between this version, bash-4.4-beta2, and the previous version, bash-4.4-rc1. diff --git a/CHANGES-4.4 b/CHANGES-4.4 index 71ef959c8..2349a429f 100644 --- a/CHANGES-4.4 +++ b/CHANGES-4.4 @@ -1,3 +1,179 @@ +This document details the changes between this version, bash-4.4-rc2, and +the previous version, bash-4.4-beta2. + +1. Changes to Bash + +a. Fixed an out-of-bounds read in the redirection operator completion code. + +b. Fixed execution context so `until continue' doesn't disable execution for + subsequent commands. + +c. Fixed trap handling code so traps don't inherit a command's temporary + environment. + +d. Fixed a bug that resulted in incorrect line numbers when a function is defined + as part of another function's execution. + +e. Fixed a bug in the expansion of ${a[@]} in contexts where word splitting is not + performed and $IFS is not the default. + +f. Fixed a bug that caused ''"$@" to not expand to an empty argument when there are + no positional parameters. + +g. Fixed a bug that caused a shell compiled without job control to use the incorrect + exit status for builtin commands preceded by a command executed from the file + system that causes the shell to call waitpid(). + +h. Improved word completion for quoted strings containing unterminated command + substitutions with embedded double quotes. + +2. Changes to Readline + +a. Fixed a bug that caused mode strings to be displayed incorrectly if the prompt was + shorter than the mode string. + +3. New Features in Bash + +a. Using ${a[@]} or ${a[*]} with an array without any assigned elements when + the nounset option is enabled no longer throws an unbound variable error. + +4. New Features in Readline + +a. New application-callable function: rl_pending_signal(): returns the signal + number of any signal readline has caught but not yet handled. + +b. New application-settable variable: rl_persistent_signal_handlers: if set to a + non-zero value, readline will enable the readline-6.2 signal handler behavior + in callback mode: handlers are installed when rl_callback_handler_install is + called and removed removed when a complete line has been read. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-4.4-beta2, and +the previous version, bash-4.4-rc1. + +1. Changes to Bash + +a. Fixed a memory leak when processing ${!var[@]}. + +b. Fixed a bug that caused subshells to free trap strings associated with + inherited signals. + +c. Inheriting BASHOPTS from the environment now works to force actions + associated with enabling an option, instead of just marking the option + as enabled. + +d. Fixed a bug that allowed assignments to BASH_CMDS when the shell was in + restricted mode. + +e. Fixed a bug caused by an accidental omission of part of the original patch + for EXECIGNORE. + +e. Prompt expansion now quotes the results of the \s, \h, and \H expansions. + +f. Fixed a bug that caused parsing errors in command substitutions with + consecutive case statements separated by newlines. + +g. Updated logic used to decide whether bash is running inside an emacs + terminal emulator to work with future emacs versions. + +h. Fixed two extended pattern matching bugs caused by premature short- + circuiting. + +i. Fixed a memory leak in the code that removes duplicate history entries. + +j. There are a number of bug fixes to coproc, mapfile, declare, unset, + and assignment statements that prevent nameref variables from creating + and unsetting variables with invalid names. + +k. Fixed a bug that caused variables to be inadvertently marked as both an + associative and an indexed array. + +l. Fixed a bug that caused `bash -c' to not run a trap specified in the + command string. + +j. There are a number of bug fixes to coproc, mapfile, declare, and assignment + statements that prevent nameref variables from overwriting or modifying + attributes of readonly variables. + +k. Fixed a bug that caused command substitution to attempt to set the + terminal's process group incorrectly. + +l. Fixed a bug that could cause prompt string expansion to display error + messages when the `nounset' shell option is set. + +m. Fixed a bug that caused "$@" to not expand to an empty string under the + circumstances when Posix says it should ("${@-${@-$@}}"). + +n. Fixed several bugs caused by referencing nameref variables whose values + are names of unset variables (or names that are valid for referencing + but not assignment), including creating variables in the temporary + environment. + +o. Function tracing and error tracing are disabled if --debugger is supplied + at startup but the shell can't find the debugger start file. + +p. Fixed a bug when IFS is used as the control variable in a for statement. + +q. Fixed a bug with SIGINT received by a command substitution in an interactive + shell. + +r. The checks for nameref variable self-references are more thorough. + +s. Fixed several bugs with multi-line aliases. + +t. Fixed `test' to handle the four-argument case where $1 == '(' and + $4 == ')'. + +u. Fixed a bug in the expansion of $* in the cases where word splitting is + not performed. + +v. Fixed a bug in execution of case statements where IFS includes the + pattern matching characters. + +2. Changes to Readline + +a. When refreshing the line as the result of a key sequence, Readline attempts + to redraw only the last line of a multiline prompt. + +b. Fixed an issue that caused completion of git commands to display + incorrectly when using colored-completion-prefix. + +c. Fixed several redisplay bugs having to do with multibyte characters and + invisible characters in prompt strings. + +3. New Features in Bash + +a. Value conversions (arithmetic expansions, case modification, etc.) now + happen when assigning elements of an array using compound assignment. + +b. There is a new option settable in config-top.h that makes multiple + directory arguments to `cd' a fatal error. + +c. Bash now uses mktemp() when creating internal temporary files; it produces + a warning at build time on many Linux systems. + +4. New Features in Readline + +a. The default binding for ^W in vi mode now uses word boundaries specified + by Posix (vi-unix-word-rubout is bindable command name). + +b. rl_clear_visible_line: new application-callable function; clears all + screen lines occupied by the current visible readline line. + +c. rl_tty_set_echoing: application-callable function that controls whether + or not readline thinks it is echoing terminal output. + +d. Handle >| and strings of digits preceding and following redirection + specifications as single tokens when tokenizing the line for history + expansion. + +e. Fixed a bug with displaying completions when the prefix display length + is greater than the length of the completions to be displayed. + +f. The :p history modifier now applies to the entire line, so any expansion + specifying :p causes the line to be printed instead of expanded. + +------------------------------------------------------------------------------ This document details the changes between this version, bash-4.4-rc1, and the previous version, bash-4.4-beta. diff --git a/CWRU/changelog b/CWRU/changelog index 3274a2c34..36336794e 100644 --- a/CWRU/changelog +++ b/CWRU/changelog @@ -10342,7 +10342,7 @@ lib/readline/bind.c 1/11 ---- -execute_cmd.c +subst.c - process_substitute: when compiled without job control (JOB_CONTROL not defined), make sure we call stop_making_children like we do in the job control code branch, so already_making_children is reset to 0. This @@ -11303,7 +11303,7 @@ execute_cmd.c 6/23 ---- -execute_cmd.c +subst.c - param_expand: when expanding $* in a context where splitting is not desired (pflags & PF_ASSIGNRHS), make sure to quote the word and the included separators. Reported by Dan Douglas @@ -11331,3 +11331,195 @@ subst.c subst.[ch],arrayfunc.c - string_list_dollar_at: now takes a new third argument, currently reserved for future use; changed callers and declaration + + 7/7 + --- +[bash-4.4-beta2 frozen] + + 7/9 + --- +bashline.c + - check_redir: make sure that index is > 0 before checking previous + char; fixes out of bounds read reported by Hanno Böck + + + 7/16 + ---- +subst.c + - parameter_brace_expand: if ${array[@]} or ${array[*]} is supplied + with an unset (or empty) array, and -u is enabled, don't make it + an unbound variable error, like $@ or $* when there are no + positional parameters. Based on report from Ian Allen + + +lib/readline/signals.c + - rl_pending_signal(): return the number of any signal readline has + caught but is waiting to handle + +lib/readline/callback.c + - rl_persistent_signal_handlers: new variable, restores readline-6.2 + signal handler semantics: installed at rl_callback_handler_install + time and removed with rl_clear_signals when a complete line has + been read + - _rl_callback_newline: call rl_set_signals if rl_persistent_signal_handlers + is non-zero + - rl_callback_read_char: install signal handlers with rl_set_signals + if rl_persistent_signal_handlers is 0 (the default) + - CALLBACK_READ_RETURN: uninstall signal handlers with rl_clear_signals + only if rl_persistent_signal_handlers is 0 (the default) + +lib/readline/readline.h + - rl_pending_signal: new extern declaration + - rl_persistent_signal_handlers: new extern declaration + + 7/19 + ---- +execute_cmd.c + - execute_while_or_until: make sure we decrement `continuing' the way + we decrement `breaking' if the loop test indicates we will be + breaking out of the loop. That keeps `until continue' from + keeping `continuing' set to 1. Reported by Dan Douglas + + + 7/20 + ---- +trap.c + - run_pending_traps,_run_trap_internal: save and restore temporary_env, + set temporary_env to 0 before trap runs so traps don't inherit a + command's temporary env. Fixes bug with IFS assignment in tempenv + and trap reported by Andriy Martynets + +jobs.c + - run_sigchld_trap: save and restore temporary_env, set temporary_env + to 0 before trap runs so traps don't inherit a command's temporary + env (see above) + + 7/21 + ---- +execute_cmd.c + - execute_function: unwind-protect function_line_number, in case we + are executing a function inside another function. Reported by + Grisha Levit in context of evaled functions + and DEBUG traps + - execute_arith_for_command,execute_arith_command,execute_simple_command, + execute_cond_command: make sure line_number doesn't go < 0 when + adjusting it by function_line_number + + 7/23 + ---- +subst.c,command.h + - move the PF_ constants to command.h so other files can see them, now + that PF_ASSIGNRHS has meaning to string_list_dollar_at + +arrayfunc.h + - AV_ASSIGNRHS: new flag, indicate that ${a[@]} is being expanded on + the RHS of an assignment statement + +arrayfunc.c + - array_value_internal: if AV_ASSIGNRHS passed for ${a[@]}, pass + PF_ASSIGNRHS to string_list_dollar_at to support args separated by + spaces even if $IFS does not have the default value. Reported by + Dan Douglas + +subst.c + - string_list_dollar_at: if FLAGS argument includes PF_ASSIGNRHS, obey + rules for $@ on the RHS of an assignment statement: expand to + postitional parameters separated by spaces no matter what the first + character of $IFS is. Reported by Dan Douglas + - parameter_brace_expand_word: pass AV_ASSIGNRHS as flags value to + array_value if PF_ASSIGNRHS is set and we are expanding an array + variable subscripted by @ or * + - param_expand: pass pflags to string_list_dollar_at in case it contains + PF_ASSIGNRHS + - expand_word_internal: if we have an assignment statement argument to + a declaration builtin (W_ASSIGNARG), turn on W_ASSIGNRHS when we see + the `=' to enable special $@ behavior + - expand_word_internal: if W_ASSIGNARG enabled in word flags, pass that + flag and W_ASSIGNRHS to recursive call to expand_word_internal when + expanding double-quoted string; handles "$@" when IFS is not the + default value and word splitting will not be performed + +subst.c + - expand_word_internal: change case that handles '' (single-quoted + empty string) to only discard it if we will not be performing word + splitting (W_NOSPLIT|W_NOSPLIT2), since we need to add a quoted null + argument if the subsequent characters will cause word splitting. + This is how "" (double-quoted empty string) is handled after a bug + fix back in August 2010. Reported by Grisha Levit + , fix for Posix interp 888 + + 7/27 + ---- +subst.c + - param_expand: change fix from 6/23 (expanding $* in a context where + word splitting is not performed) to make sure that $* expands to + something before trying to quote the string. Bug and fix from + Andreas Schwab + +lib/readline/bind.c + - _rl_get_string_variable_value: fix a cut-and-paste error that caused + the emacs mode string to be displayed for both vi insert and command + mode strings. Report and fix from Steve Jones + + 7/28 + ---- +lib/readline/display.c + - update_line: we can't use PROMPT_ENDING_INDEX unless we're testing + against _rl_last_c_pos; if we are testing buffer indices, we need to + use prompt_last_invisible directly. Fixes mode string redisplay issue + with short prompt strings reported by Steve Jones + + 8/4 + --- +nojobs.c + - without_job_control: new function, resets child state that's eventually + used to decide whether or not to wait_for children + +execute_cmd.c + - initialize_subshell: call without_job_control in both the JOB_CONTROL and + no job control paths so we can reset the state in subshells that will not + cause them to wait_for children inappropriately. Fixes bug reported by + Dan Cross + + 8/5 + --- +configure.ac + - release version is now `rc2' + +bashline.c + - command_word_completion_function: if direxpand is set, make sure to + run hint_text through bash_directory_completion_hook, since + readline will do that and we want to be able to match the results + readline returns. Fixes bug reported by Pat Somaru + + +command.h + - W_COMPLETE: new flag word value + - PF_COMPLETE: new flags value for param_expand + +subst.h + - SX_STRIPDQ: new flag, used for string_extract_double_quoted + +bashline.c + - bash_filename_stat_hook,bash_directory_completion_hook: pass W_COMPLETE + flag to expand_prompt_string + +subst.c + - expand_word_internal: if W_COMPLETE in word->flags, pass PF_COMPLETE + to param_expand + - param_expand: if PF_COMPLETE in pflags, pass SX_COMPLETE to + extract_command_subst. This allows `"$(echo ~/' to perform + completion successfully + - string_extract_double_quoted: turn third argument into a flags arg, + old STRIPDQ is now set if flags&SX_STRIPDQ + - string_extract_double_quoted: changed callers, if third argument was + 1, pass SX_STRIPDQ instead + - expand_word_internal: if W_COMPLETE in word->flags, pass SX_COMPLETE + in flags to string_extract_double_quoted for case '"' + - string_extract_double_quoted: if SX_COMPLETE in flags, pass it to + extract_command_subst + - expand_word_internal: if W_COMPLETE in word->flags, make sure W_COMPLETE + is in temp word passed to recursive call to expand_word_internal to + expand double-quoted string. Fixes bug reported by John Passaro + + diff --git a/MANIFEST b/MANIFEST index 00ae485d7..5c6d0bcf7 100644 --- a/MANIFEST +++ b/MANIFEST @@ -924,6 +924,7 @@ tests/dollar-at-star4.sub f tests/dollar-at-star5.sub f tests/dollar-at-star6.sub f tests/dollar-at-star7.sub f +tests/dollar-at-star8.sub f tests/dollar-at1.sub f tests/dollar-at2.sub f tests/dollar-at3.sub f @@ -975,6 +976,7 @@ tests/exp5.sub f tests/exp6.sub f tests/exp7.sub f tests/exp8.sub f +tests/exp9.sub f tests/exportfunc.tests f tests/exportfunc.right f tests/exportfunc1.sub f diff --git a/arrayfunc.c b/arrayfunc.c index fb8711228..c65229e03 100644 --- a/arrayfunc.c +++ b/arrayfunc.c @@ -1087,7 +1087,8 @@ array_value_internal (s, quoted, flags, rtype, indp) free (temp); } else /* ${name[@]} or unquoted ${name[*]} */ - retval = string_list_dollar_at (l, quoted, 0); /* XXX - leak here */ + /* XXX - bash-4.4/bash-5.0 test AV_ASSIGNRHS and pass PF_ASSIGNRHS */ + retval = string_list_dollar_at (l, quoted, (flags & AV_ASSIGNRHS) ? PF_ASSIGNRHS : 0); /* XXX - leak here */ dispose_words (l); } diff --git a/arrayfunc.h b/arrayfunc.h index 3a29a594e..2811f45b6 100644 --- a/arrayfunc.h +++ b/arrayfunc.h @@ -30,6 +30,7 @@ #define AV_QUOTED 0x002 #define AV_USEIND 0x004 #define AV_USEVAL 0x008 /* XXX - should move this */ +#define AV_ASSIGNRHS 0x010 /* no splitting, special case ${a[@]} */ extern SHELL_VAR *convert_var_to_array __P((SHELL_VAR *)); extern SHELL_VAR *convert_var_to_assoc __P((SHELL_VAR *)); @@ -72,6 +73,7 @@ extern SHELL_VAR *array_variable_part __P((char *, char **, int *)); #define AV_ALLOWALL 0 #define AV_QUOTED 0 #define AV_USEIND 0 +#define AV_ASSIGNRHS 0 #endif diff --git a/bashline.c b/bashline.c index eb7194438..f4fe9f1b0 100644 --- a/bashline.c +++ b/bashline.c @@ -1279,7 +1279,7 @@ check_redir (ti) /* Handle the two character tokens `>&', `<&', and `>|'. We are not in a command position after one of these. */ this_char = rl_line_buffer[ti]; - prev_char = rl_line_buffer[ti - 1]; + prev_char = (ti > 0) ? rl_line_buffer[ti - 1] : 0; if ((this_char == '&' && (prev_char == '<' || prev_char == '>')) || (this_char == '|' && prev_char == '>')) @@ -1845,7 +1845,9 @@ command_word_completion_function (hint_text, state) if (globpat || absolute_program (hint_text)) { /* Perform tilde expansion on what's passed, so we don't end up - passing filenames with tildes directly to stat(). */ + passing filenames with tildes directly to stat(). The rest of + the shell doesn't do variable expansion on the word following + the tilde, so we don't do it here even if direxpand is set. */ if (*hint_text == '~') { hint = bash_tilde_expand (hint_text, 0); @@ -1859,6 +1861,11 @@ command_word_completion_function (hint_text, state) directory_part = (char *)NULL; } } + else if (dircomplete_expand) + { + hint = savestring (hint_text); + bash_directory_completion_hook (&hint); + } else hint = savestring (hint_text); @@ -3148,7 +3155,7 @@ bash_filename_stat_hook (dirname) have to worry about restoring this setting. */ global_nounset = unbound_vars_is_error; unbound_vars_is_error = 0; - wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB); /* does the right thing */ + wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB|W_COMPLETE); /* does the right thing */ unbound_vars_is_error = global_nounset; if (wl) { @@ -3243,7 +3250,7 @@ bash_directory_completion_hook (dirname) if (should_expand_dirname) { new_dirname = savestring (local_dirname); - wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB); /* does the right thing */ + wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB|W_COMPLETE); /* does the right thing */ if (wl) { *dirname = string_list (wl); diff --git a/command.h b/command.h index dac6b85ad..3da5b77da 100644 --- a/command.h +++ b/command.h @@ -1,7 +1,7 @@ /* command.h -- The structures used internally to represent commands, and the extern declarations of the functions used to create them. */ -/* Copyright (C) 1993-2010 Free Software Foundation, Inc. +/* Copyright (C) 1993-2016 Free Software Foundation, Inc. This file is part of GNU Bash, the Bourne Again SHell. @@ -100,6 +100,15 @@ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, #define W_ARRAYIND 0x1000000 /* word is an array index being expanded */ #define W_ASSNGLOBAL 0x2000000 /* word is a global assignment to declare (declare/typeset -g) */ #define W_NOBRACE 0x4000000 /* Don't perform brace expansion */ +#define W_COMPLETE 0x8000000 /* word is being expanded for completion */ + +/* Flags for the `pflags' argument to param_expand() and various + parameter_brace_expand_xxx functions; also used for string_list_dollar_at */ +#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 */ +#define PF_COMPLETE 0x10 /* same as W_COMPLETE, sets SX_COMPLETE */ /* Possible values for subshell_environment */ #define SUBSHELL_ASYNC 0x01 /* subshell caused by `command &' */ diff --git a/configure b/configure index b4d51498e..3fed91efd 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac for Bash 4.4, version 4.080. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for bash 4.4-beta2. +# Generated by GNU Autoconf 2.69 for bash 4.4-rc2. # # Report bugs to . # @@ -581,8 +581,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bash' PACKAGE_TARNAME='bash' -PACKAGE_VERSION='4.4-beta2' -PACKAGE_STRING='bash 4.4-beta2' +PACKAGE_VERSION='4.4-rc2' +PACKAGE_STRING='bash 4.4-rc2' PACKAGE_BUGREPORT='bug-bash@gnu.org' PACKAGE_URL='' @@ -1393,7 +1393,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bash 4.4-beta2 to adapt to many kinds of systems. +\`configure' configures bash 4.4-rc2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1458,7 +1458,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bash 4.4-beta2:";; + short | recursive ) echo "Configuration of bash 4.4-rc2:";; esac cat <<\_ACEOF @@ -1651,7 +1651,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bash configure 4.4-beta2 +bash configure 4.4-rc2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2360,7 +2360,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bash $as_me 4.4-beta2, which was +It was created by bash $as_me 4.4-rc2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2754,7 +2754,7 @@ ac_config_headers="$ac_config_headers config.h" BASHVERS=4.4 -RELSTATUS=beta2 +RELSTATUS=rc2 case "$RELSTATUS" in alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; @@ -16666,7 +16666,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bash $as_me 4.4-beta2, which was +This file was extended by bash $as_me 4.4-rc2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16732,7 +16732,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -bash config.status 4.4-beta2 +bash config.status 4.4-rc2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 23f8678d4..62d00582a 100644 --- a/configure.ac +++ b/configure.ac @@ -24,7 +24,7 @@ dnl Process this file with autoconf to produce a configure script. AC_REVISION([for Bash 4.4, version 4.080])dnl define(bashvers, 4.4) -define(relstatus, beta2) +define(relstatus, rc2) AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org]) diff --git a/doc/bash.0 b/doc/bash.0 index 63490df2c..38b70e445 100644 --- a/doc/bash.0 +++ b/doc/bash.0 @@ -1225,59 +1225,60 @@ PPAARRAAMMEETTEERRSS name of the current mailfile. Example: MMAAIILLPPAATTHH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"' - BBaasshh supplies a default value for this variable, but the loca- - tion of the user mail files that it uses is system dependent - (e.g., /var/mail/$$UUSSEERR). + BBaasshh can be configured to supply a default value for this vari- + able (there is no value by default), but the location of the + user mail files that it uses is system dependent (e.g., + /var/mail/$$UUSSEERR). OOPPTTEERRRR If set to the value 1, bbaasshh displays error messages generated by - the ggeettooppttss builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). - OOPPTTEERRRR is initialized to 1 each time the shell is invoked or a + the ggeettooppttss builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). + OOPPTTEERRRR is initialized to 1 each time the shell is invoked or a shell script is executed. - PPAATTHH The search path for commands. It is a colon-separated list of - directories in which the shell looks for commands (see CCOOMMMMAANNDD - EEXXEECCUUTTIIOONN below). A zero-length (null) directory name in the + PPAATTHH The search path for commands. It is a colon-separated list of + directories in which the shell looks for commands (see CCOOMMMMAANNDD + EEXXEECCUUTTIIOONN below). A zero-length (null) directory name in the value of PPAATTHH indicates the current directory. A null directory - name may appear as two adjacent colons, or as an initial or - trailing colon. The default path is system-dependent, and is + name may appear as two adjacent colons, or as an initial or + trailing colon. The default path is system-dependent, and is set by the administrator who installs bbaasshh. A common value is ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''. PPOOSSIIXXLLYY__CCOORRRREECCTT - If this variable is in the environment when bbaasshh starts, the - shell enters _p_o_s_i_x _m_o_d_e before reading the startup files, as if - the ----ppoossiixx invocation option had been supplied. If it is set - while the shell is running, bbaasshh enables _p_o_s_i_x _m_o_d_e, as if the + If this variable is in the environment when bbaasshh starts, the + shell enters _p_o_s_i_x _m_o_d_e before reading the startup files, as if + the ----ppoossiixx invocation option had been supplied. If it is set + while the shell is running, bbaasshh enables _p_o_s_i_x _m_o_d_e, as if the command _s_e_t _-_o _p_o_s_i_x had been executed. PPRROOMMPPTT__CCOOMMMMAANNDD If set, the value is executed as a command prior to issuing each primary prompt. PPRROOMMPPTT__DDIIRRTTRRIIMM - If set to a number greater than zero, the value is used as the + If set to a number greater than zero, the value is used as the number of trailing directory components to retain when expanding - the \\ww and \\WW prompt string escapes (see PPRROOMMPPTTIINNGG below). + the \\ww and \\WW prompt string escapes (see PPRROOMMPPTTIINNGG below). Characters removed are replaced with an ellipsis. - PPSS00 The value of this parameter is expanded (see PPRROOMMPPTTIINNGG below) - and displayed by interactive shells after reading a command and + PPSS00 The value of this parameter is expanded (see PPRROOMMPPTTIINNGG below) + and displayed by interactive shells after reading a command and before the command is executed. - PPSS11 The value of this parameter is expanded (see PPRROOMMPPTTIINNGG below) - and used as the primary prompt string. The default value is + PPSS11 The value of this parameter is expanded (see PPRROOMMPPTTIINNGG below) + and used as the primary prompt string. The default value is ``\\ss--\\vv\\$$ ''. - PPSS22 The value of this parameter is expanded as with PPSS11 and used as + PPSS22 The value of this parameter is expanded as with PPSS11 and used as the secondary prompt string. The default is ``>> ''. PPSS33 The value of this parameter is used as the prompt for the sseelleecctt command (see SSHHEELLLL GGRRAAMMMMAARR above). - PPSS44 The value of this parameter is expanded as with PPSS11 and the - value is printed before each command bbaasshh displays during an - execution trace. The first character of PPSS44 is replicated mul- - tiple times, as necessary, to indicate multiple levels of indi- + PPSS44 The value of this parameter is expanded as with PPSS11 and the + value is printed before each command bbaasshh displays during an + execution trace. The first character of PPSS44 is replicated mul- + tiple times, as necessary, to indicate multiple levels of indi- rection. The default is ``++ ''. SSHHEELLLL The full pathname to the shell is kept in this environment vari- - able. If it is not set when the shell starts, bbaasshh assigns to + able. If it is not set when the shell starts, bbaasshh assigns to it the full pathname of the current user's login shell. TTIIMMEEFFOORRMMAATT - The value of this parameter is used as a format string specify- - ing how the timing information for pipelines prefixed with the - ttiimmee reserved word should be displayed. The %% character intro- - duces an escape sequence that is expanded to a time value or - other information. The escape sequences and their meanings are + The value of this parameter is used as a format string specify- + ing how the timing information for pipelines prefixed with the + ttiimmee reserved word should be displayed. The %% character intro- + duces an escape sequence that is expanded to a time value or + other information. The escape sequences and their meanings are as follows; the braces denote optional portions. %%%% A literal %%. %%[[_p]][[ll]]RR The elapsed time in seconds. @@ -1285,77 +1286,77 @@ PPAARRAAMMEETTEERRSS %%[[_p]][[ll]]SS The number of CPU seconds spent in system mode. %%PP The CPU percentage, computed as (%U + %S) / %R. - The optional _p is a digit specifying the _p_r_e_c_i_s_i_o_n, the number + The optional _p is a digit specifying the _p_r_e_c_i_s_i_o_n, the number of fractional digits after a decimal point. A value of 0 causes no decimal point or fraction to be output. At most three places - after the decimal point may be specified; values of _p greater - than 3 are changed to 3. If _p is not specified, the value 3 is + after the decimal point may be specified; values of _p greater + than 3 are changed to 3. If _p is not specified, the value 3 is used. - The optional ll specifies a longer format, including minutes, of - the form _M_Mm_S_S._F_Fs. The value of _p determines whether or not + The optional ll specifies a longer format, including minutes, of + the form _M_Mm_S_S._F_Fs. The value of _p determines whether or not 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\\tt%%33llSS''. If the value is null, + If this variable is not set, bbaasshh acts as if it had the value + $$''\\nnrreeaall\\tt%%33llRR\\nnuusseerr\\tt%%33llUU\\nnssyyss\\tt%%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 + TTMMOOUUTT If set to a value greater than zero, TTMMOOUUTT is treated as the default timeout for the rreeaadd builtin. The sseelleecctt command termi- nates if input does not arrive after TTMMOOUUTT seconds when input is - coming from a terminal. In an interactive shell, the value is + coming from a terminal. In an interactive shell, the value is interpreted as the number of seconds to wait for a line of input after issuing the primary prompt. BBaasshh terminates after waiting - for that number of seconds if a complete line of input does not + for that number of seconds if a complete line of input does not arrive. - TTMMPPDDIIRR If set, bbaasshh uses its value as the name of a directory in which + TTMMPPDDIIRR If set, bbaasshh uses its value as the name of a directory in which bbaasshh creates temporary files for the shell's use. aauuttoo__rreessuummee This variable controls how the shell interacts with the user and - job control. If this variable is set, single word simple com- + job control. If this variable is set, single word simple com- mands without redirections are treated as candidates for resump- tion of an existing stopped job. There is no ambiguity allowed; - if there is more than one job beginning with the string typed, - the job most recently accessed is selected. The _n_a_m_e of a - stopped job, in this context, is the command line used to start - it. If set to the value _e_x_a_c_t, the string supplied must match - the name of a stopped job exactly; if set to _s_u_b_s_t_r_i_n_g, the - string supplied needs to match a substring of the name of a - stopped job. The _s_u_b_s_t_r_i_n_g value provides functionality analo- - gous to the %%?? job identifier (see JJOOBB CCOONNTTRROOLL below). If set - to any other value, the supplied string must be a prefix of a + if there is more than one job beginning with the string typed, + the job most recently accessed is selected. The _n_a_m_e of a + stopped job, in this context, is the command line used to start + it. If set to the value _e_x_a_c_t, the string supplied must match + the name of a stopped job exactly; if set to _s_u_b_s_t_r_i_n_g, the + string supplied needs to match a substring of the name of a + stopped job. The _s_u_b_s_t_r_i_n_g value provides functionality analo- + gous to the %%?? job identifier (see JJOOBB CCOONNTTRROOLL below). If set + to any other value, the supplied string must be a prefix of a stopped job's name; this provides functionality analogous to the %%_s_t_r_i_n_g job identifier. hhiissttcchhaarrss - The two or three characters which control history expansion and + The two or three characters which control history expansion and tokenization (see HHIISSTTOORRYY EEXXPPAANNSSIIOONN below). The first character - is the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, the character which signals - the start of a history expansion, normally `!!'. The second - character is the _q_u_i_c_k _s_u_b_s_t_i_t_u_t_i_o_n character, which is used as - shorthand for re-running the previous command entered, substi- - tuting one string for another in the command. The default is - `^^'. The optional third character is the character which indi- - cates that the remainder of the line is a comment when found as - the first character of a word, normally `##'. The history com- + is the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, the character which signals + the start of a history expansion, normally `!!'. The second + character is the _q_u_i_c_k _s_u_b_s_t_i_t_u_t_i_o_n character, which is used as + shorthand for re-running the previous command entered, substi- + tuting one string for another in the command. The default is + `^^'. The optional third character is the character which indi- + cates that the remainder of the line is a comment when found as + the first character of a word, normally `##'. The history com- ment character causes history substitution to be skipped for the - remaining words on the line. It does not necessarily cause the + remaining words on the line. It does not necessarily cause the shell parser to treat the rest of the line as a comment. AArrrraayyss - BBaasshh provides one-dimensional indexed and associative array variables. - Any variable may be used as an indexed array; the ddeeccllaarree builtin will - explicitly declare an array. There is no maximum limit on the size of - an array, nor any requirement that members be indexed or assigned con- - tiguously. Indexed arrays are referenced using integers (including + BBaasshh provides one-dimensional indexed and associative array variables. + Any variable may be used as an indexed array; the ddeeccllaarree builtin will + explicitly declare an array. There is no maximum limit on the size of + an array, nor any requirement that members be indexed or assigned con- + tiguously. Indexed arrays are referenced using integers (including arithmetic expressions) and are zero-based; associative arrays are ref- erenced using arbitrary strings. Unless otherwise noted, indexed array indices must be non-negative integers. - An indexed array is created automatically if any variable is assigned + An indexed array is created automatically if any variable is assigned to using the syntax _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e. The _s_u_b_s_c_r_i_p_t is treated as an arithmetic expression that must evaluate to a number. To explicitly - declare an indexed array, use ddeeccllaarree --aa _n_a_m_e (see SSHHEELLLL BBUUIILLTTIINN CCOOMM-- - MMAANNDDSS below). ddeeccllaarree --aa _n_a_m_e[[_s_u_b_s_c_r_i_p_t]] is also accepted; the _s_u_b_- + declare an indexed array, use ddeeccllaarree --aa _n_a_m_e (see SSHHEELLLL BBUUIILLTTIINN CCOOMM-- + MMAANNDDSS below). ddeeccllaarree --aa _n_a_m_e[[_s_u_b_s_c_r_i_p_t]] is also accepted; the _s_u_b_- _s_c_r_i_p_t is ignored. Associative arrays are created using ddeeccllaarree --AA _n_a_m_e. @@ -1363,130 +1364,130 @@ PPAARRAAMMEETTEERRSS Attributes may be specified for an array variable using the ddeeccllaarree and rreeaaddoonnllyy builtins. Each attribute applies to all members of an array. - Arrays are assigned to using compound assignments of the form - _n_a_m_e=((value_1 ... value_n)), where each _v_a_l_u_e is of the form [_s_u_b_- - _s_c_r_i_p_t]=_s_t_r_i_n_g. Indexed array assignments do not require anything but + Arrays are assigned to using compound assignments of the form + _n_a_m_e=((value_1 ... value_n)), where each _v_a_l_u_e is of the form [_s_u_b_- + _s_c_r_i_p_t]=_s_t_r_i_n_g. Indexed array assignments do not require anything but _s_t_r_i_n_g. When assigning to indexed arrays, if the optional brackets and - subscript are supplied, that index is assigned to; otherwise the index - of the element assigned is the last index assigned to by the statement + subscript are supplied, that index is assigned to; otherwise the index + of the element assigned is the last index assigned to by the statement plus one. Indexing starts at zero. When assigning to an associative array, the subscript is required. - 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. 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 + 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. 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]}. + 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 - _s_u_b_s_c_r_i_p_t is @@ or **, the word expands to all members of _n_a_m_e. These - subscripts differ only when the word appears within double quotes. If + _s_u_b_s_c_r_i_p_t is @@ or **, the word expands to all members of _n_a_m_e. These + subscripts differ only when the word appears within double quotes. If the word is double-quoted, ${_n_a_m_e[*]} expands to a single word with the - value of each array member separated by the first character of the IIFFSS + value of each array member separated by the first character of the IIFFSS special variable, and ${_n_a_m_e[@]} expands each element of _n_a_m_e to a sep- - arate word. When there are no array members, ${_n_a_m_e[@]} expands to - nothing. If the double-quoted expansion occurs within a word, the - expansion of the first parameter is joined with the beginning part of - the original word, and the expansion of the last parameter is joined - with the last part of the original word. This is analogous to the - expansion of the special parameters ** and @@ (see SSppeecciiaall PPaarraammeetteerrss - above). ${#_n_a_m_e[_s_u_b_s_c_r_i_p_t]} expands to the length of ${_n_a_m_e[_s_u_b_- - _s_c_r_i_p_t]}. If _s_u_b_s_c_r_i_p_t is ** or @@, the expansion is the number of ele- - ments in the array. 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 inter- - preted 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 + arate word. When there are no array members, ${_n_a_m_e[@]} expands to + nothing. If the double-quoted expansion occurs within a word, the + expansion of the first parameter is joined with the beginning part of + the original word, and the expansion of the last parameter is joined + with the last part of the original word. This is analogous to the + expansion of the special parameters ** and @@ (see SSppeecciiaall PPaarraammeetteerrss + above). ${#_n_a_m_e[_s_u_b_s_c_r_i_p_t]} expands to the length of ${_n_a_m_e[_s_u_b_- + _s_c_r_i_p_t]}. If _s_u_b_s_c_r_i_p_t is ** or @@, the expansion is the number of ele- + ments in the array. 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 inter- + preted 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. Referencing an array variable without a subscript is equivalent to ref- - erencing the array with a subscript of 0. Any reference to a variable + erencing the array with a subscript of 0. Any reference to a variable using a valid subscript is legal, and bbaasshh will create an array if nec- essary. - 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. - It is possible to obtain the keys (indices) of an array as well as the - values. ${!!_n_a_m_e[_@]} and ${!!_n_a_m_e[_*]} expand to the indices assigned in + It is possible to obtain the keys (indices) of an array as well as the + values. ${!!_n_a_m_e[_@]} and ${!!_n_a_m_e[_*]} expand to the indices assigned in array variable _n_a_m_e. The treatment when in double quotes is similar to the expansion of the special parameters _@ and _* within double quotes. - 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 + 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 - array. If both options are supplied, --AA takes precedence. The rreeaadd - builtin accepts a --aa option to assign a list of words read from the + The ddeeccllaarree, llooccaall, and rreeaaddoonnllyy builtins each accept a --aa option to + specify an indexed array and a --AA option to specify an associative + array. If both options are supplied, --AA takes precedence. The rreeaadd + builtin accepts a --aa option to assign a list of words read from the standard input to an array. The sseett and ddeeccllaarree builtins display array values in a way that allows them to be reused as assignments. EEXXPPAANNSSIIOONN Expansion is performed on the command line after it has been split into - words. There are seven kinds of expansion performed: _b_r_a_c_e _e_x_p_a_n_s_i_o_n, - _t_i_l_d_e _e_x_p_a_n_s_i_o_n, _p_a_r_a_m_e_t_e_r _a_n_d _v_a_r_i_a_b_l_e _e_x_p_a_n_s_i_o_n, _c_o_m_m_a_n_d _s_u_b_s_t_i_t_u_- + words. There are seven kinds of expansion performed: _b_r_a_c_e _e_x_p_a_n_s_i_o_n, + _t_i_l_d_e _e_x_p_a_n_s_i_o_n, _p_a_r_a_m_e_t_e_r _a_n_d _v_a_r_i_a_b_l_e _e_x_p_a_n_s_i_o_n, _c_o_m_m_a_n_d _s_u_b_s_t_i_t_u_- _t_i_o_n, _a_r_i_t_h_m_e_t_i_c _e_x_p_a_n_s_i_o_n, _w_o_r_d _s_p_l_i_t_t_i_n_g, and _p_a_t_h_n_a_m_e _e_x_p_a_n_s_i_o_n. The order of expansions is: brace expansion; tilde expansion, parameter - and variable expansion, arithmetic expansion, and command substitution - (done in a left-to-right fashion); word splitting; and pathname expan- + and variable expansion, arithmetic expansion, and command substitution + (done in a left-to-right fashion); word splitting; and pathname expan- sion. On systems that can support it, there is an additional expansion avail- - able: _p_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n. This is performed at the same time as - tilde, parameter, variable, and arithmetic expansion and command sub- + able: _p_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n. This is performed at the same time as + tilde, parameter, variable, and arithmetic expansion and command sub- stitution. Only brace expansion, word splitting, and pathname expansion can change - the number of words of the expansion; other expansions expand a single - word to a single word. The only exceptions to this are the expansions + the number of words of the expansion; other expansions expand a single + word to a single word. The only exceptions to this are the expansions of "$$@@" and "$${{_n_a_m_e[[@@]]}}" as explained above (see PPAARRAAMMEETTEERRSS). BBrraaccee EExxppaannssiioonn _B_r_a_c_e _e_x_p_a_n_s_i_o_n is a mechanism by which arbitrary strings may be gener- - ated. This mechanism is similar to _p_a_t_h_n_a_m_e _e_x_p_a_n_s_i_o_n, but the file- + ated. This mechanism is similar to _p_a_t_h_n_a_m_e _e_x_p_a_n_s_i_o_n, but the file- names generated need not exist. Patterns to be brace expanded take the form of an optional _p_r_e_a_m_b_l_e, followed by either a series of comma-sep- - arated strings or a sequence expression between a pair of braces, fol- - lowed by an optional _p_o_s_t_s_c_r_i_p_t. The preamble is prefixed to each + arated strings or a sequence expression between a pair of braces, fol- + lowed by an optional _p_o_s_t_s_c_r_i_p_t. The preamble is prefixed to each string contained within the braces, and the postscript is then appended to each resulting string, expanding left to right. - Brace expansions may be nested. The results of each expanded string - are not sorted; left to right order is preserved. For example, + Brace expansions may be nested. The results of each expanded string + are not sorted; left to right order is preserved. For example, a{{d,c,b}}e expands into `ade ace abe'. - A sequence expression takes the form {{_x...._y[[...._i_n_c_r]]}}, where _x and _y are - either integers or single characters, and _i_n_c_r, an optional increment, - is an integer. When integers are supplied, the expression expands to - each number between _x and _y, inclusive. Supplied integers may be pre- - fixed 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 neces- - sary. When characters are supplied, the expression expands 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 + A sequence expression takes the form {{_x...._y[[...._i_n_c_r]]}}, where _x and _y are + either integers or single characters, and _i_n_c_r, an optional increment, + is an integer. When integers are supplied, the expression expands to + each number between _x and _y, inclusive. Supplied integers may be pre- + fixed 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 neces- + sary. When characters are supplied, the expression expands 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 char- - acters special to other expansions are preserved in the result. It is - strictly textual. BBaasshh does not apply any syntactic interpretation to + acters special to other expansions are preserved in the result. It is + strictly textual. BBaasshh does not apply any syntactic interpretation to the context of the expansion or the text between the braces. - A correctly-formed brace expansion must contain unquoted opening and - closing braces, and at least one unquoted comma or a valid sequence - expression. Any incorrectly formed brace expansion is left unchanged. + A correctly-formed brace expansion must contain unquoted opening and + closing braces, and at least one unquoted comma or a valid sequence + expression. Any incorrectly formed brace expansion is left unchanged. A {{ or ,, may be quoted with a backslash to prevent its being considered - part of a brace expression. To avoid conflicts with parameter expan- + part of a brace expression. To avoid conflicts with parameter expan- sion, the string $${{ is not considered eligible for brace expansion. This construct is typically used as shorthand when the common prefix of @@ -1496,36 +1497,36 @@ EEXXPPAANNSSIIOONN or chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}} - Brace expansion introduces a slight incompatibility with historical - versions of sshh. sshh does not treat opening or closing braces specially - when they appear as part of a word, and preserves them in the output. - BBaasshh removes braces from words as a consequence of brace expansion. - For example, a word entered to sshh as _f_i_l_e_{_1_,_2_} appears identically in - the output. The same word is output as _f_i_l_e_1 _f_i_l_e_2 after expansion by - bbaasshh. If strict compatibility with sshh is desired, start bbaasshh with the + Brace expansion introduces a slight incompatibility with historical + versions of sshh. sshh does not treat opening or closing braces specially + when they appear as part of a word, and preserves them in the output. + BBaasshh removes braces from words as a consequence of brace expansion. + For example, a word entered to sshh as _f_i_l_e_{_1_,_2_} appears identically in + the output. The same word is output as _f_i_l_e_1 _f_i_l_e_2 after expansion by + bbaasshh. If strict compatibility with sshh is desired, start bbaasshh with the ++BB option or disable brace expansion with the ++BB option to the sseett com- mand (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). TTiillddee EExxppaannssiioonn - If a word begins with an unquoted tilde character (`~~'), all of the - characters preceding the first unquoted slash (or all characters, if - there is no unquoted slash) are considered a _t_i_l_d_e_-_p_r_e_f_i_x. If none of - the characters in the tilde-prefix are quoted, the characters in the - tilde-prefix following the tilde are treated as a possible _l_o_g_i_n _n_a_m_e. - If this login name is the null string, the tilde is replaced with the - value of the shell parameter HHOOMMEE. If HHOOMMEE is unset, the home direc- - tory of the user executing the shell is substituted instead. Other- - wise, the tilde-prefix is replaced with the home directory associated + If a word begins with an unquoted tilde character (`~~'), all of the + characters preceding the first unquoted slash (or all characters, if + there is no unquoted slash) are considered a _t_i_l_d_e_-_p_r_e_f_i_x. If none of + the characters in the tilde-prefix are quoted, the characters in the + tilde-prefix following the tilde are treated as a possible _l_o_g_i_n _n_a_m_e. + If this login name is the null string, the tilde is replaced with the + value of the shell parameter HHOOMMEE. If HHOOMMEE is unset, the home direc- + tory of the user executing the shell is substituted instead. Other- + wise, the tilde-prefix is replaced with the home directory associated with the specified login name. - If the tilde-prefix is a `~+', the value of the shell variable PPWWDD + If the tilde-prefix is a `~+', the value of the shell variable PPWWDD replaces the tilde-prefix. If the tilde-prefix is a `~-', the value of - the shell variable OOLLDDPPWWDD, if it is set, is substituted. If the char- - acters following the tilde in the tilde-prefix consist of a number _N, - optionally prefixed by a `+' or a `-', the tilde-prefix is replaced + the shell variable OOLLDDPPWWDD, if it is set, is substituted. If the char- + acters following the tilde in the tilde-prefix consist of a number _N, + optionally prefixed by a `+' or a `-', the tilde-prefix is replaced with the corresponding element from the directory stack, as it would be displayed by the ddiirrss builtin invoked with the tilde-prefix as an argu- - ment. If the characters following the tilde in the tilde-prefix con- + ment. If the characters following the tilde in the tilde-prefix con- sist of a number without a leading `+' or `-', `+' is assumed. If the login name is invalid, or the tilde expansion fails, the word is @@ -1533,235 +1534,235 @@ EEXXPPAANNSSIIOONN Each variable assignment is checked for unquoted tilde-prefixes immedi- ately following a :: or the first ==. In these cases, tilde expansion is - also performed. Consequently, one may use filenames with tildes in - assignments to PPAATTHH, MMAAIILLPPAATTHH, and CCDDPPAATTHH, and the shell assigns the + also performed. Consequently, one may use filenames with tildes in + assignments to PPAATTHH, MMAAIILLPPAATTHH, and CCDDPPAATTHH, and the shell assigns the expanded value. PPaarraammeetteerr EExxppaannssiioonn The `$$' character introduces parameter expansion, command substitution, - or arithmetic expansion. The parameter name or symbol to be expanded - may be enclosed in braces, which are optional but serve to protect the - variable to be expanded from characters immediately following it which + or arithmetic expansion. The parameter name or symbol to be expanded + may be enclosed in braces, which are optional but serve to protect the + variable to be expanded from characters immediately following it which could be interpreted as part of the name. - When braces are used, the matching ending brace is the first `}}' not - escaped by a backslash or within a quoted string, and not within an + When braces are used, the matching ending brace is the first `}}' not + escaped by a backslash or within a quoted string, and not within an embedded arithmetic expansion, command substitution, or parameter expansion. ${_p_a_r_a_m_e_t_e_r} - The value of _p_a_r_a_m_e_t_e_r is substituted. The braces are required - when _p_a_r_a_m_e_t_e_r is a positional parameter with more than one + The value of _p_a_r_a_m_e_t_e_r is substituted. The braces are required + when _p_a_r_a_m_e_t_e_r is a positional parameter with more than one digit, or when _p_a_r_a_m_e_t_e_r is followed by a character which is not to be interpreted as part of its name. The _p_a_r_a_m_e_t_e_r is a shell - parameter as described above PPAARRAAMMEETTEERRSS) or an array reference + parameter as described above PPAARRAAMMEETTEERRSS) or an array reference (AArrrraayyss). - If the first character of _p_a_r_a_m_e_t_e_r is an exclamation point (!!), and - _p_a_r_a_m_e_t_e_r is not a _n_a_m_e_r_e_f, it introduces a level of variable indirec- - tion. BBaasshh uses the value of the variable formed from the rest of - _p_a_r_a_m_e_t_e_r as the name of the variable; this variable is then expanded + If the first character of _p_a_r_a_m_e_t_e_r is an exclamation point (!!), and + _p_a_r_a_m_e_t_e_r is not a _n_a_m_e_r_e_f, it introduces a level of variable indirec- + tion. BBaasshh uses the value of the variable formed from the rest of + _p_a_r_a_m_e_t_e_r as the name of the variable; this variable is then expanded and that value is used in the rest of the substitution, rather than the - value of _p_a_r_a_m_e_t_e_r itself. This is known as _i_n_d_i_r_e_c_t _e_x_p_a_n_s_i_o_n. If + value of _p_a_r_a_m_e_t_e_r itself. This is known as _i_n_d_i_r_e_c_t _e_x_p_a_n_s_i_o_n. If _p_a_r_a_m_e_t_e_r is a nameref, this expands to the name of the variable refer- - enced by _p_a_r_a_m_e_t_e_r instead of performing the complete indirect expan- - sion. The exceptions to this are the expansions of ${!!_p_r_e_f_i_x**} and - ${!!_n_a_m_e[_@]} described below. The exclamation point must immediately + enced by _p_a_r_a_m_e_t_e_r instead of performing the complete indirect expan- + sion. The exceptions to this are the expansions of ${!!_p_r_e_f_i_x**} and + ${!!_n_a_m_e[_@]} described below. The exclamation point must immediately follow the left brace in order to introduce indirection. In each of the cases below, _w_o_r_d is subject to tilde expansion, parame- ter expansion, command substitution, and arithmetic expansion. - When not performing substring expansion, using the forms documented - below (e.g., ::--), bbaasshh tests for a parameter that is unset or null. - Omitting the colon results in a test only for a parameter that is + When not performing substring expansion, using the forms documented + below (e.g., ::--), bbaasshh tests for a parameter that is unset or null. + Omitting the colon results in a test only for a parameter that is unset. ${_p_a_r_a_m_e_t_e_r::--_w_o_r_d} - UUssee DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the expan- - sion of _w_o_r_d is substituted. Otherwise, the value of _p_a_r_a_m_e_t_e_r + UUssee DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the expan- + sion of _w_o_r_d is substituted. Otherwise, the value of _p_a_r_a_m_e_t_e_r is substituted. ${_p_a_r_a_m_e_t_e_r::==_w_o_r_d} - AAssssiiggnn DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the + AAssssiiggnn DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the expansion of _w_o_r_d is assigned to _p_a_r_a_m_e_t_e_r. The value of _p_a_r_a_m_- - _e_t_e_r is then substituted. Positional parameters and special + _e_t_e_r is then substituted. Positional parameters and special parameters may not be assigned to in this way. ${_p_a_r_a_m_e_t_e_r::??_w_o_r_d} - DDiissppllaayy EErrrroorr iiff NNuullll oorr UUnnsseett. If _p_a_r_a_m_e_t_e_r is null or unset, - the expansion of _w_o_r_d (or a message to that effect if _w_o_r_d is - not present) is written to the standard error and the shell, if + DDiissppllaayy EErrrroorr iiff NNuullll oorr UUnnsseett. If _p_a_r_a_m_e_t_e_r is null or unset, + the expansion of _w_o_r_d (or a message to that effect if _w_o_r_d is + not present) is written to the standard error and the shell, if it is not interactive, exits. Otherwise, the value of _p_a_r_a_m_e_t_e_r is substituted. ${_p_a_r_a_m_e_t_e_r::++_w_o_r_d} - UUssee AAlltteerrnnaattee VVaalluuee. If _p_a_r_a_m_e_t_e_r is null or unset, nothing is + UUssee AAlltteerrnnaattee VVaalluuee. If _p_a_r_a_m_e_t_e_r is null or unset, nothing is substituted, otherwise the expansion of _w_o_r_d is substituted. ${_p_a_r_a_m_e_t_e_r::_o_f_f_s_e_t} ${_p_a_r_a_m_e_t_e_r::_o_f_f_s_e_t::_l_e_n_g_t_h} - SSuubbssttrriinngg EExxppaannssiioonn. Expands to up to _l_e_n_g_t_h characters of the - value of _p_a_r_a_m_e_t_e_r starting at the character specified by _o_f_f_- + SSuubbssttrriinngg EExxppaannssiioonn. Expands to up to _l_e_n_g_t_h characters of the + value of _p_a_r_a_m_e_t_e_r starting at the character specified by _o_f_f_- _s_e_t. If _p_a_r_a_m_e_t_e_r is @@, an indexed array subscripted by @@ or **, - or an associative array name, the results differ as described - below. If _l_e_n_g_t_h is omitted, expands to the substring of the + or an associative array name, the results differ as described + below. If _l_e_n_g_t_h is omitted, expands to the substring of the value of _p_a_r_a_m_e_t_e_r starting at the character specified by _o_f_f_s_e_t - and extending to the end of the value. _l_e_n_g_t_h and _o_f_f_s_e_t are + and extending to the end of the value. _l_e_n_g_t_h and _o_f_f_s_e_t are arithmetic expressions (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN below). - If _o_f_f_s_e_t evaluates to a number less than zero, the value is - used as an offset in characters from the end of the value of - _p_a_r_a_m_e_t_e_r. If _l_e_n_g_t_h evaluates to a number less than zero, it - is interpreted as an offset in characters from the end of the - value of _p_a_r_a_m_e_t_e_r rather than a number of characters, and the - expansion is the characters between _o_f_f_s_e_t and that result. - Note that a negative offset must be separated from the colon by - at least one space to avoid being confused with the ::-- expan- + If _o_f_f_s_e_t evaluates to a number less than zero, the value is + used as an offset in characters from the end of the value of + _p_a_r_a_m_e_t_e_r. If _l_e_n_g_t_h evaluates to a number less than zero, it + is interpreted as an offset in characters from the end of the + value of _p_a_r_a_m_e_t_e_r rather than a number of characters, and the + expansion is the characters between _o_f_f_s_e_t and that result. + Note that a negative offset must be separated from the colon by + at least one space to avoid being confused with the ::-- expan- sion. - If _p_a_r_a_m_e_t_e_r is @@, the result is _l_e_n_g_t_h positional parameters + If _p_a_r_a_m_e_t_e_r is @@, the result is _l_e_n_g_t_h positional parameters beginning at _o_f_f_s_e_t. A negative _o_f_f_s_e_t is taken relative to one - greater than the greatest positional parameter, so an offset of - -1 evaluates to the last positional parameter. It is an expan- + greater than the greatest positional parameter, so an offset of + -1 evaluates to the last positional parameter. It is an expan- sion error if _l_e_n_g_t_h evaluates to a number less than zero. If _p_a_r_a_m_e_t_e_r is an indexed array name subscripted by @ or *, the - result is the _l_e_n_g_t_h members of the array beginning with - ${_p_a_r_a_m_e_t_e_r[_o_f_f_s_e_t]}. A negative _o_f_f_s_e_t is taken relative to - one greater than the maximum index of the specified array. It - is an expansion error if _l_e_n_g_t_h evaluates to a number less than + result is the _l_e_n_g_t_h members of the array beginning with + ${_p_a_r_a_m_e_t_e_r[_o_f_f_s_e_t]}. A negative _o_f_f_s_e_t is taken relative to + one greater than the maximum index of the specified array. It + is an expansion error if _l_e_n_g_t_h evaluates to a number less than zero. - Substring expansion applied to an associative array produces + Substring expansion applied to an associative array produces undefined results. - Substring indexing is zero-based unless the positional parame- - ters are used, in which case the indexing starts at 1 by - default. If _o_f_f_s_e_t is 0, and the positional parameters are + Substring indexing is zero-based unless the positional parame- + ters are used, in which case the indexing starts at 1 by + default. If _o_f_f_s_e_t is 0, and the positional parameters are used, $$00 is prefixed to the list. ${!!_p_r_e_f_i_x**} ${!!_p_r_e_f_i_x@@} - NNaammeess mmaattcchhiinngg pprreeffiixx. Expands to the names of variables whose + NNaammeess mmaattcchhiinngg pprreeffiixx. Expands to the names of variables whose names begin with _p_r_e_f_i_x, separated by the first character of the - IIFFSS special variable. When _@ is used and the expansion appears - within double quotes, each variable name expands to a separate + IIFFSS special variable. When _@ is used and the expansion appears + within double quotes, each variable name expands to a separate word. ${!!_n_a_m_e[_@]} ${!!_n_a_m_e[_*]} - LLiisstt ooff aarrrraayy kkeeyyss. If _n_a_m_e is an array variable, expands to - the list of array indices (keys) assigned in _n_a_m_e. If _n_a_m_e is - not an array, expands to 0 if _n_a_m_e is set and null otherwise. - When _@ is used and the expansion appears within double quotes, + LLiisstt ooff aarrrraayy kkeeyyss. If _n_a_m_e is an array variable, expands to + the list of array indices (keys) assigned in _n_a_m_e. If _n_a_m_e is + not an array, expands to 0 if _n_a_m_e is set and null otherwise. + When _@ is used and the expansion appears within double quotes, each key expands to a separate word. ${##_p_a_r_a_m_e_t_e_r} - PPaarraammeetteerr lleennggtthh. The length in characters of the value of - _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. 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- + PPaarraammeetteerr lleennggtthh. The length in characters of the value of + _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. 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 the nnooccaasseemmaattcchh shell option + lowing _p_a_t_t_e_r_n may be omitted. If the nnooccaasseemmaattcchh shell option is enabled, the match is performed without regard to the case of alphabetic characters. If _p_a_r_a_m_e_t_e_r is @@ or **, the substitution - 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 + 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. ${_p_a_r_a_m_e_t_e_r@@_o_p_e_r_a_t_o_r} PPaarraammeetteerr ttrraannssffoorrmmaattiioonn. The expansion is either a transforma- - tion of the value of _p_a_r_a_m_e_t_e_r or information about _p_a_r_a_m_e_t_e_r - itself, depending on the value of _o_p_e_r_a_t_o_r. Each _o_p_e_r_a_t_o_r is a + tion of the value of _p_a_r_a_m_e_t_e_r or information about _p_a_r_a_m_e_t_e_r + itself, depending on the value of _o_p_e_r_a_t_o_r. Each _o_p_e_r_a_t_o_r is a single letter: - QQ The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r + QQ The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r quoted in a format that can be reused as input. - EE The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r - with backslash escape sequences expanded as with the + EE The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r + with backslash escape sequences expanded as with the $$''......'' quoting mechansim. PP The expansion is a string that is the result of expanding the value of _p_a_r_a_m_e_t_e_r as if it were a prompt string (see PPRROOMMPPTTIINNGG below). - AA The expansion is a string in the form of an assignment - statement or ddeeccllaarree command that, if evaluated, will + AA The expansion is a string in the form of an assignment + statement or ddeeccllaarree command that, if evaluated, will recreate _p_a_r_a_m_e_t_e_r with its attributes and value. - aa The expansion is a string consisting of flag values rep- + aa The expansion is a string consisting of flag values rep- resenting _p_a_r_a_m_e_t_e_r's attributes. - If _p_a_r_a_m_e_t_e_r is @@ or **, the 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 case modification operation is applied to each member of + If _p_a_r_a_m_e_t_e_r is @@ or **, the 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 case modification operation is applied to each member of the array in turn, and the expansion is the resultant list. - The result of the expansion is subject to word splitting and + The result of the expansion is subject to word splitting and pathname expansion as described below. CCoommmmaanndd SSuubbssttiittuuttiioonn @@ -1775,174 +1776,174 @@ EEXXPPAANNSSIIOONN BBaasshh performs the expansion by executing _c_o_m_m_a_n_d in a subshell environ- ment and replacing the command substitution with the standard output of the command, with any trailing newlines deleted. Embedded newlines are - not deleted, but they may be removed during word splitting. The com- - mand substitution $$((ccaatt _f_i_l_e)) can be replaced by the equivalent but + not deleted, but they may be removed during word splitting. The com- + mand 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 and variable expansion, com- - mand substitution, and quote removal. The result is treated as the - arithmetic expression to be evaluated. Arithmetic expansions may be + mand substitution, and quote removal. The result is treated as the + arithmetic expression to be evaluated. 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 allows a process's input or output to be referred - to using a filename. It takes the form of <<((_l_i_s_t)) or >>((_l_i_s_t)). The - process _l_i_s_t is run asynchronously, and its input or output appears as + _P_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n allows a process's input or output to be referred + to using a filename. It takes the form of <<((_l_i_s_t)) or >>((_l_i_s_t)). The + process _l_i_s_t is run asynchronously, and its input or output appears as a filename. This filename is passed as an argument to the current com- - mand as the result of the expansion. If the >>((_l_i_s_t)) form is used, - writing to the file will provide 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 + mand as the result of the expansion. If the >>((_l_i_s_t)) form is used, + writing to the file will provide 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. Process substitution is supported on systems that sup- port named pipes (_F_I_F_O_s) or the //ddeevv//ffdd method of naming open files. - 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 - results of the other expansions into words using these characters as - field terminators. If IIFFSS is unset, or its value is exactly - <><><>, the default, then sequences of <>, <>, - and <> 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, - ttaabb, and nneewwlliinnee are ignored at the beginning and end of the word, as - long as the whitespace character is in the value of IIFFSS (an IIFFSS white- - space character). Any character in IIFFSS that is not IIFFSS whitespace, + The shell treats each character of IIFFSS as a delimiter, and splits the + results of the other expansions into words using these characters as + field terminators. If IIFFSS is unset, or its value is exactly + <><><>, the default, then sequences of <>, <>, + and <> 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, + ttaabb, and nneewwlliinnee are ignored at the beginning and end of the word, as + long as the whitespace character is in the value of IIFFSS (an IIFFSS white- + space 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. + 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 and passed to commands + Explicit null arguments ("""" or '''') are retained and passed to commands as empty strings. Unquoted implicit null arguments, resulting from the expansion of parameters that have no values, are removed. If a parame- - ter with no value is expanded within double quotes, a null argument - results and is retained and passed to a command as an empty string. - When a quoted null argument appears as part of a word whose expansion - is non-null, the null argument is removed. That is, the word -d'' + ter with no value is expanded within double quotes, a null argument + results and is retained and passed to a command as an empty string. + When a quoted null argument appears as part of a word whose expansion + is non-null, the null argument is removed. That is, the word -d'' becomes -d after word splitting and null argument removal. 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. If the nnooccaasseegglloobb option is set, the matching against - the patterns in GGLLOOBBIIGGNNOORREE is performed without regard to case. 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 ignor- - ing filenames beginning with a ````..'''', make ````..**'''' one of the patterns - in GGLLOOBBIIGGNNOORREE. The ddoottgglloobb option is disabled when GGLLOOBBIIGGNNOORREE is - unset. The pattern matching honors the setting of the eexxttgglloobb shell + the patterns in GGLLOOBBIIGGNNOORREE is performed without regard to case. 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 ignor- + ing filenames beginning with a ````..'''', make ````..**'''' one of the patterns + in GGLLOOBBIIGGNNOORREE. The ddoottgglloobb option is disabled when GGLLOOBBIIGGNNOORREE is + unset. The pattern matching honors the setting of the eexxttgglloobb shell option. 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 falls 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: @@ -1960,55 +1961,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: + tions, as described in the following table. If the operating system on + which bbaasshh is running provides these special files, bash will use them; + otherwise it will emulate them internally with the behavior described + below. //ddeevv//ffdd//_f_d If _f_d is a valid integer, file descriptor _f_d is dupli- diff --git a/doc/bash.1 b/doc/bash.1 index 356dfd672..b483f89cb 100644 --- a/doc/bash.1 +++ b/doc/bash.1 @@ -2288,7 +2288,9 @@ Example: \fBMAILPATH\fP=\(aq/var/mail/bfox?"You have mail":~/shell\-mail?"$_ has mail!"\(aq .PP .B Bash -supplies a default value for this variable, but the location of the user +can be configured to supply +a default value for this variable (there is no value by default), +but the location of the user mail files that it uses is system dependent (e.g., /var/mail/\fB$USER\fP). .RE .TP @@ -3724,7 +3726,10 @@ before the standard output was redirected to .IR dirlist . .PP \fBBash\fP handles several filenames specially when they are used in -redirections, as described in the following table: +redirections, as described in the following table. +If the operating system on which \fBbash\fP is running provides these +special files, bash will use them; otherwise it will emulate them +internally with the behavior described below. .RS .PP .PD 0 diff --git a/doc/bash.html b/doc/bash.html index 3c319567c..e90cf9670 100644 --- a/doc/bash.html +++ b/doc/bash.html @@ -2908,7 +2908,9 @@ Example: Bash -supplies a default value for this variable, but the location of the user +can be configured to supply +a default value for this variable (there is no value by default), +but the location of the user mail files that it uses is system dependent (e.g., /var/mail/$USER). @@ -4709,7 +4711,10 @@ before the standard output was redirected to

Bash handles several filenames specially when they are used in -redirections, as described in the following table: +redirections, as described in the following table. +If the operating system on which bash is running provides these +special files, bash will use them; otherwise it will emulate them +internally with the behavior described below.

@@ -13620,6 +13625,6 @@ There may be only one active coprocess at a time.


This document was created by man2html from bash.1.
-Time: 20 June 2016 15:38:21 EDT +Time: 14 July 2016 11:48:02 EDT diff --git a/doc/bash.pdf b/doc/bash.pdf index 696406404b22fcee1fa4b9af5d9d476c702117df..e45a3375c31accfcae4d2aeee8371f8928de2693 100644 GIT binary patch delta 199745 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