diff --git a/CHANGES b/CHANGES index 9cb92613..43cb1341 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,28 @@ +This document details the changes between this version, bash-4.4-release, and +the previous version, bash-4.4-rc2. + +1. Changes to Bash + +a. Fixed a bug that could potentially result in a crash due to an integer + overflow. + +b. Fixed a bug in where commands printed due to `set -x' could be incorrectly + quoted if being printed in contexts where they haven't yet been expanded. + +c. Fixed several memory leaks. + +d. Fixed a bug that could potentially cause the terminal attributes to be + set incorrectly by a command run from a programmable completion. + +e. Fixed several potential buffer overflow issues in the word expansion code. + +2. Changes to Readline + +3. New Features in Bash + +4. New Features in Readline + +------------------------------------------------------------------------------ This document details the changes between this version, bash-4.4-rc2, and the previous version, bash-4.4-beta2. @@ -233,15 +258,15 @@ q. Fixed a bug that allowed subshells begun to execute process substitutions r. Fixed a bug that could cause the shell to dump core when receiving a SIGCHLD for which a trap has been set while running in posix mode. -s. Fixed a bug that caused bash to not restore BASH_ARGC, BASH_ARGV, BASH_SOURCE, - BASH_LINENO, and FUNCNAME if the shell received a SIGINT while reading - commands from a file while executing `.'. +s. Fixed a bug that caused bash to not restore BASH_ARGC, BASH_ARGV, + BASH_SOURCE, BASH_LINENO, and FUNCNAME if the shell received a SIGINT + while reading commands from a file while executing `.'. t. Fixed a bug that caused the `-o history' option to have no effect when supplied on the command line when starting a new shell. -u. Fixed a bug that caused history expansions occurring in command substitutions - to not be performed. +u. Fixed a bug that caused history expansions occurring in command + substitutions to not be performed. v. Fixed a bug that caused `eval' run in a non-interactive shell to disable history expansion for the remainder of the shell script, even if the script @@ -592,7 +617,7 @@ dd. Fixed a bug that caused patterns containing `*' to match pathnames in cases where slashes must be matched explicitly. ee. Fixed a problem with patterns containing `:' in colon-separated variables - lik GLOBIGNORE. + like GLOBIGNORE. ff. Fixed a bug that caused indirect variable expansion using indexed arrays to always use index 0. diff --git a/CHANGES-4.4 b/CHANGES-4.4 index 488824fa..23c6d87c 100644 --- a/CHANGES-4.4 +++ b/CHANGES-4.4 @@ -1,3 +1,28 @@ +This document details the changes between this version, bash-4.4-release, and +the previous version, bash-4.4-rc2. + +1. Changes to Bash + +a. Fixed a bug that could potentially result in a crash due to an integer + overflow. + +b. Fixed a bug in where commands printed due to `set -x' could be incorrectly + quoted if being printed in contexts where they haven't yet been expanded. + +c. Fixed several memory leaks. + +d. Fixed a bug that could potentially cause the terminal attributes to be + set incorrectly by a command run from a programmable completion. + +e. Fixed several potential buffer overflow issues in the word expansion code. + +2. Changes to Readline + +3. New Features in Bash + +4. New Features in Readline + +------------------------------------------------------------------------------ This document details the changes between this version, bash-4.4-rc2, and the previous version, bash-4.4-beta2. @@ -233,15 +258,15 @@ q. Fixed a bug that allowed subshells begun to execute process substitutions r. Fixed a bug that could cause the shell to dump core when receiving a SIGCHLD for which a trap has been set while running in posix mode. -s. Fixed a bug that caused bash to not restore BASH_ARGC, BASH_ARGV, BASH_SOURCE, - BASH_LINENO, and FUNCNAME if the shell received a SIGINT while reading - commands from a file while executing `.'. +s. Fixed a bug that caused bash to not restore BASH_ARGC, BASH_ARGV, + BASH_SOURCE, BASH_LINENO, and FUNCNAME if the shell received a SIGINT + while reading commands from a file while executing `.'. t. Fixed a bug that caused the `-o history' option to have no effect when supplied on the command line when starting a new shell. -u. Fixed a bug that caused history expansions occurring in command substitutions - to not be performed. +u. Fixed a bug that caused history expansions occurring in command + substitutions to not be performed. v. Fixed a bug that caused `eval' run in a non-interactive shell to disable history expansion for the remainder of the shell script, even if the script @@ -592,7 +617,7 @@ dd. Fixed a bug that caused patterns containing `*' to match pathnames in cases where slashes must be matched explicitly. ee. Fixed a problem with patterns containing `:' in colon-separated variables - lik GLOBIGNORE. + like GLOBIGNORE. ff. Fixed a bug that caused indirect variable expansion using indexed arrays to always use index 0. @@ -1004,4 +1029,3 @@ h. The insert-char function attempts to batch-insert all pending typeahead i. rl_callback_sigcleanup: a new application function that can clean up and unset any state set by readline's callback mode. Intended to be used after a signal. - diff --git a/COMPAT b/COMPAT index 528d8be6..9959b962 100644 --- a/COMPAT +++ b/COMPAT @@ -372,6 +372,25 @@ above. characters in the replacement string as special; if it treats them as special, then quote removal should remove them. +54. Bash-4.4 no longer considers a reference to ${a[@]} or ${a[*]}, where `a' + is an array without any elements set, to be a reference to an unset + variable. This means that such a reference will not cause the shell to + exit when the `-u' option is enabled. + +55. Bash-4.4 allows double quotes to quote the history expansion character (!) + when in Posix mode, since Posix specifies the effects of double quotes. + +56. Bash-4.4 does not inherit $PS4 from the environment if running as root. + +57. Bash-4.4 doesn't allow a `break' or `continue' in a function to affect + loop execution in the calling context. + +58. Bash-4.4 no longer expands tildes in $PATH elements when in Posix mode. + +59. Bash-4.4 does not attempt to perform a compound array assignment if an + argument to `declare' or a similar builtin expands to a word that looks + like a compound array assignment (e.g. declare w=$x where x='(foo)'). + Shell Compatibility Level ========================= diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index b342f846..2be9fde6 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -11677,3 +11677,22 @@ subst.c constructs consuming the entire string with CHECK_STRING_OVERRUN ('`') - skip_matched_pair: use CHECK_STRING_OVERRUN to make sure unterminated embedded "`", $(, ${ don't cause out-of-bounds reads + +[bash-4.4 frozen] + + 9/10 + ---- +trap.c + - run_debug_trap: only give the terminal to pipeline_pgrp if + subshell_environment doesn't include SUBSHELL_ASYNC|SUBSHELL_PIPE. + Fixes bug reported by Matthew Giassa + +execute_cmd.c + - execute_simple_command: if user_subshell is set, check and set + SUBSHELL_ASYNC if asynchronous is set as well as setting + SUBSHELL_PAREN + +parse.y + - parse_comsub: when parsing a here-document delimiter, make sure we + don't try to use `nestret' after freeing it. Fixes bug reported by + Franco Costantini diff --git a/configure b/configure index dec48fc6..7e992b3c 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.ac for Bash 4.4, version 4.081. +# From configure.ac for Bash 4.4, version 4.082. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for bash 4.4-releng. +# Generated by GNU Autoconf 2.69 for bash 4.4-maint. # # Report bugs to . # @@ -581,8 +581,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bash' PACKAGE_TARNAME='bash' -PACKAGE_VERSION='4.4-releng' -PACKAGE_STRING='bash 4.4-releng' +PACKAGE_VERSION='4.4-maint' +PACKAGE_STRING='bash 4.4-maint' 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-releng to adapt to many kinds of systems. +\`configure' configures bash 4.4-maint 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-releng:";; + short | recursive ) echo "Configuration of bash 4.4-maint:";; 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-releng +bash configure 4.4-maint 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-releng, which was +It was created by bash $as_me 4.4-maint, 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=releng +RELSTATUS=maint case "$RELSTATUS" in alp*|bet*|dev*|rc*|releng*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; @@ -16705,7 +16705,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-releng, which was +This file was extended by bash $as_me 4.4-maint, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16771,7 +16771,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-releng +bash config.status 4.4-maint configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index dd7bd52a..af363fee 100644 --- a/configure.ac +++ b/configure.ac @@ -21,10 +21,10 @@ dnl Process this file with autoconf to produce a configure script. # You should have received a copy of the GNU General Public License # along with this program. If not, see . -AC_REVISION([for Bash 4.4, version 4.081])dnl +AC_REVISION([for Bash 4.4, version 4.082])dnl define(bashvers, 4.4) -define(relstatus, releng) +define(relstatus, maint) AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org]) diff --git a/doc/bash.info b/doc/bash.info index a22170a9..fac67865 100644 --- a/doc/bash.info +++ b/doc/bash.info @@ -2,9 +2,9 @@ This is bash.info, produced by makeinfo version 6.1 from bashref.texi. This text is a brief description of the features that are present in the -Bash shell (version 4.4, 26 August 2016). +Bash shell (version 4.4, 7 September 2016). - This is Edition 4.4, last updated 26 August 2016, of 'The GNU Bash + This is Edition 4.4, last updated 7 September 2016, of 'The GNU Bash Reference Manual', for 'Bash', Version 4.4. Copyright (C) 1988-2016 Free Software Foundation, Inc. @@ -27,10 +27,10 @@ Bash Features ************* This text is a brief description of the features that are present in the -Bash shell (version 4.4, 26 August 2016). The Bash home page is +Bash shell (version 4.4, 7 September 2016). The Bash home page is . - This is Edition 4.4, last updated 26 August 2016, of 'The GNU Bash + This is Edition 4.4, last updated 7 September 2016, of 'The GNU Bash Reference Manual', for 'Bash', Version 4.4. Bash contains features that appear in other popular shells, and some @@ -6420,158 +6420,165 @@ startup files. 14. POSIX special builtins are found before shell functions during command lookup. - 15. Literal tildes that appear as the first character in elements of + 15. When printing shell function definitions (e.g., by 'type'), Bash + does not print the 'function' keyword. + + 16. Literal tildes that appear as the first character in elements of the 'PATH' variable are not expanded as described above under *note Tilde Expansion::. - 16. The 'time' reserved word may be used by itself as a command. When + 17. The 'time' reserved word may be used by itself as a command. When used in this way, it displays timing statistics for the shell and its completed children. The 'TIMEFORMAT' variable controls the format of the timing information. - 17. When parsing and expanding a ${...} expansion that appears within + 18. When parsing and expanding a ${...} expansion that appears within double quotes, single quotes are no longer special and cannot be used to quote a closing brace or other special character, unless the operator is one of those defined to perform pattern removal. In this case, they do not have to appear as matched pairs. - 18. The parser does not recognize 'time' as a reserved word if the + 19. The parser does not recognize 'time' as a reserved word if the next token begins with a '-'. - 19. The '!' character does not introduce history expansion within a + 20. The '!' character does not introduce history expansion within a double-quoted string, even if the 'histexpand' option is enabled. - 20. If a POSIX special builtin returns an error status, a + 21. If a POSIX special builtin returns an error status, a non-interactive shell exits. The fatal errors are those listed in the POSIX standard, and include things like passing incorrect options, redirection errors, variable assignment errors for assignments preceding the command name, and so on. - 21. A non-interactive shell exits with an error status if a variable + 22. A non-interactive shell exits with an error status if a variable assignment error occurs when no command name follows the assignment statements. A variable assignment error occurs, for example, when trying to assign a value to a readonly variable. - 22. A non-interactive shell exits with an error status if a variable + 23. A non-interactive shell exits with an error status if a variable assignment error occurs in an assignment statement preceding a special builtin, but not with any other simple command. - 23. A non-interactive shell exits with an error status if the + 24. A non-interactive shell exits with an error status if the iteration variable in a 'for' statement or the selection variable in a 'select' statement is a readonly variable. - 24. Non-interactive shells exit if FILENAME in '.' FILENAME is not + 25. Non-interactive shells exit if FILENAME in '.' FILENAME is not found. - 25. Non-interactive shells exit if a syntax error in an arithmetic + 26. Non-interactive shells exit if a syntax error in an arithmetic expansion results in an invalid expression. - 26. Non-interactive shells exit on word expansion errors. + 27. Non-interactive shells exit if a parameter expansion error occurs. - 27. Non-interactive shells exit if there is a syntax error in a script + 28. Non-interactive shells exit if there is a syntax error in a script read with the '.' or 'source' builtins, or in a string processed by the 'eval' builtin. - 28. Process substitution is not available. + 29. Process substitution is not available. - 29. While variable indirection is available, it may not be applied to + 30. While variable indirection is available, it may not be applied to the '#' and '?' special parameters. - 30. Assignment statements preceding POSIX special builtins persist in + 31. When expanding the '*' special parameter in a pattern context + where the expansion is double-quoted does not treat the '$*' as if + it were double-quoted. + + 32. Assignment statements preceding POSIX special builtins persist in the shell environment after the builtin completes. - 31. Assignment statements preceding shell function calls persist in + 33. Assignment statements preceding shell function calls persist in the shell environment after the function returns, as if a POSIX special builtin command had been executed. - 32. The 'command' builtin does not prevent builtins that take + 34. The 'command' builtin does not prevent builtins that take assignment statements as arguments from expanding them as assignment statements; when not in POSIX mode, assignment builtins lose their assignment statement expansion properties when preceded by 'command'. - 33. The 'bg' builtin uses the required format to describe each job + 35. The 'bg' builtin uses the required format to describe each job placed in the background, which does not include an indication of whether the job is the current or previous job. - 34. The output of 'kill -l' prints all the signal names on a single + 36. The output of 'kill -l' prints all the signal names on a single line, separated by spaces, without the 'SIG' prefix. - 35. The 'kill' builtin does not accept signal names with a 'SIG' + 37. The 'kill' builtin does not accept signal names with a 'SIG' prefix. - 36. The 'export' and 'readonly' builtin commands display their output + 38. The 'export' and 'readonly' builtin commands display their output in the format required by POSIX. - 37. The 'trap' builtin displays signal names without the leading + 39. The 'trap' builtin displays signal names without the leading 'SIG'. - 38. The 'trap' builtin doesn't check the first argument for a possible + 40. The 'trap' builtin doesn't check the first argument for a possible signal specification and revert the signal handling to the original disposition if it is, unless that argument consists solely of digits and is a valid signal number. If users want to reset the handler for a given signal to the original disposition, they should use '-' as the first argument. - 39. The '.' and 'source' builtins do not search the current directory + 41. The '.' and 'source' builtins do not search the current directory for the filename argument if it is not found by searching 'PATH'. - 40. Enabling POSIX mode has the effect of setting the + 42. Enabling POSIX mode has the effect of setting the 'inherit_errexit' option, so subshells spawned to execute command substitutions inherit the value of the '-e' option from the parent shell. When the 'inherit_errexit' option is not enabled, Bash clears the '-e' option in such subshells. - 41. When the 'alias' builtin displays alias definitions, it does not + 43. When the 'alias' builtin displays alias definitions, it does not display them with a leading 'alias ' unless the '-p' option is supplied. - 42. When the 'set' builtin is invoked without options, it does not + 44. When the 'set' builtin is invoked without options, it does not display shell function names and definitions. - 43. When the 'set' builtin is invoked without options, it displays + 45. When the 'set' builtin is invoked without options, it displays variable values without quotes, unless they contain shell metacharacters, even if the result contains nonprinting characters. - 44. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname + 46. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname constructed from '$PWD' and the directory name supplied as an argument does not refer to an existing directory, 'cd' will fail instead of falling back to PHYSICAL mode. - 45. The 'pwd' builtin verifies that the value it prints is the same as + 47. The 'pwd' builtin verifies that the value it prints is the same as the current directory, even if it is not asked to check the file system with the '-P' option. - 46. When listing the history, the 'fc' builtin does not include an + 48. When listing the history, the 'fc' builtin does not include an indication of whether or not a history entry has been modified. - 47. The default editor used by 'fc' is 'ed'. + 49. The default editor used by 'fc' is 'ed'. - 48. The 'type' and 'command' builtins will not report a non-executable + 50. The 'type' and 'command' builtins will not report a non-executable file as having been found, though the shell will attempt to execute such a file if it is the only so-named file found in '$PATH'. - 49. The 'vi' editing mode will invoke the 'vi' editor directly when + 51. The 'vi' editing mode will invoke the 'vi' editor directly when the 'v' command is run, instead of checking '$VISUAL' and '$EDITOR'. - 50. When the 'xpg_echo' option is enabled, Bash does not attempt to + 52. When the 'xpg_echo' option is enabled, Bash does not attempt to interpret any arguments to 'echo' as options. Each argument is displayed, after escape characters are converted. - 51. The 'ulimit' builtin uses a block size of 512 bytes for the '-c' + 53. The 'ulimit' builtin uses a block size of 512 bytes for the '-c' and '-f' options. - 52. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not + 54. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not interrupt the 'wait' builtin and cause it to return immediately. The trap command is run once for each child that exits. - 53. The 'read' builtin may be interrupted by a signal for which a trap + 55. The 'read' builtin may be interrupted by a signal for which a trap has been set. If Bash receives a trapped signal while executing 'read', the trap handler executes and 'read' returns an exit status greater than 128. - 54. Bash removes an exited background process's status from the list + 56. Bash removes an exited background process's status from the list of such statuses after the 'wait' builtin is used to obtain it. There is other POSIX behavior that Bash does not implement by default @@ -11344,134 +11351,134 @@ D.5 Concept Index  Tag Table: -Node: Top893 -Node: Introduction2809 -Node: What is Bash?3025 -Node: What is a shell?4139 -Node: Definitions6677 -Node: Basic Shell Features9628 -Node: Shell Syntax10847 -Node: Shell Operation11873 -Node: Quoting13166 -Node: Escape Character14466 -Node: Single Quotes14951 -Node: Double Quotes15299 -Node: ANSI-C Quoting16577 -Node: Locale Translation17830 -Node: Comments18726 -Node: Shell Commands19344 -Node: Simple Commands20216 -Node: Pipelines20847 -Node: Lists23590 -Node: Compound Commands25319 -Node: Looping Constructs26322 -Node: Conditional Constructs28785 -Node: Command Grouping39707 -Node: Coprocesses41186 -Node: GNU Parallel43018 -Node: Shell Functions46991 -Node: Shell Parameters52197 -Node: Positional Parameters56610 -Node: Special Parameters57510 -Node: Shell Expansions60847 -Node: Brace Expansion62941 -Node: Tilde Expansion65722 -Node: Shell Parameter Expansion68070 -Node: Command Substitution82202 -Node: Arithmetic Expansion83557 -Node: Process Substitution84489 -Node: Word Splitting85609 -Node: Filename Expansion87553 -Node: Pattern Matching89837 -Node: Quote Removal93535 -Node: Redirections93830 -Node: Executing Commands103250 -Node: Simple Command Expansion103920 -Node: Command Search and Execution105850 -Node: Command Execution Environment108186 -Node: Environment111170 -Node: Exit Status112829 -Node: Signals114499 -Node: Shell Scripts116466 -Node: Shell Builtin Commands118981 -Node: Bourne Shell Builtins121015 -Node: Bash Builtins141615 -Node: Modifying Shell Behavior170260 -Node: The Set Builtin170605 -Node: The Shopt Builtin181018 -Node: Special Builtins196817 -Node: Shell Variables197796 -Node: Bourne Shell Variables198233 -Node: Bash Variables200264 -Node: Bash Features228644 -Node: Invoking Bash229543 -Node: Bash Startup Files235492 -Node: Interactive Shells240595 -Node: What is an Interactive Shell?241005 -Node: Is this Shell Interactive?241654 -Node: Interactive Shell Behavior242469 -Node: Bash Conditional Expressions245844 -Node: Shell Arithmetic250084 -Node: Aliases252901 -Node: Arrays255449 -Node: The Directory Stack260533 -Node: Directory Stack Builtins261317 -Node: Controlling the Prompt264285 -Node: The Restricted Shell267031 -Node: Bash POSIX Mode268856 -Node: Job Control278909 -Node: Job Control Basics279369 -Node: Job Control Builtins284088 -Node: Job Control Variables288618 -Node: Command Line Editing289774 -Node: Introduction and Notation291445 -Node: Readline Interaction293068 -Node: Readline Bare Essentials294259 -Node: Readline Movement Commands296042 -Node: Readline Killing Commands297002 -Node: Readline Arguments298920 -Node: Searching299964 -Node: Readline Init File302150 -Node: Readline Init File Syntax303297 -Node: Conditional Init Constructs323484 -Node: Sample Init File326009 -Node: Bindable Readline Commands329126 -Node: Commands For Moving330330 -Node: Commands For History331473 -Node: Commands For Text335762 -Node: Commands For Killing339151 -Node: Numeric Arguments341632 -Node: Commands For Completion342771 -Node: Keyboard Macros346962 -Node: Miscellaneous Commands347649 -Node: Readline vi Mode353453 -Node: Programmable Completion354360 -Node: Programmable Completion Builtins361821 -Node: A Programmable Completion Example371707 -Node: Using History Interactively376959 -Node: Bash History Facilities377643 -Node: Bash History Builtins380644 -Node: History Interaction384641 -Node: Event Designators387605 -Node: Word Designators388824 -Node: Modifiers390461 -Node: Installing Bash391863 -Node: Basic Installation393000 -Node: Compilers and Options395691 -Node: Compiling For Multiple Architectures396432 -Node: Installation Names398095 -Node: Specifying the System Type398913 -Node: Sharing Defaults399629 -Node: Operation Controls400302 -Node: Optional Features401260 -Node: Reporting Bugs411517 -Node: Major Differences From The Bourne Shell412711 -Node: GNU Free Documentation License429563 -Node: Indexes454740 -Node: Builtin Index455194 -Node: Reserved Word Index462021 -Node: Variable Index464469 -Node: Function Index479928 -Node: Concept Index493085 +Node: Top897 +Node: Introduction2817 +Node: What is Bash?3033 +Node: What is a shell?4147 +Node: Definitions6685 +Node: Basic Shell Features9636 +Node: Shell Syntax10855 +Node: Shell Operation11881 +Node: Quoting13174 +Node: Escape Character14474 +Node: Single Quotes14959 +Node: Double Quotes15307 +Node: ANSI-C Quoting16585 +Node: Locale Translation17838 +Node: Comments18734 +Node: Shell Commands19352 +Node: Simple Commands20224 +Node: Pipelines20855 +Node: Lists23598 +Node: Compound Commands25327 +Node: Looping Constructs26330 +Node: Conditional Constructs28793 +Node: Command Grouping39715 +Node: Coprocesses41194 +Node: GNU Parallel43026 +Node: Shell Functions46999 +Node: Shell Parameters52205 +Node: Positional Parameters56618 +Node: Special Parameters57518 +Node: Shell Expansions60855 +Node: Brace Expansion62949 +Node: Tilde Expansion65730 +Node: Shell Parameter Expansion68078 +Node: Command Substitution82210 +Node: Arithmetic Expansion83565 +Node: Process Substitution84497 +Node: Word Splitting85617 +Node: Filename Expansion87561 +Node: Pattern Matching89845 +Node: Quote Removal93543 +Node: Redirections93838 +Node: Executing Commands103258 +Node: Simple Command Expansion103928 +Node: Command Search and Execution105858 +Node: Command Execution Environment108194 +Node: Environment111178 +Node: Exit Status112837 +Node: Signals114507 +Node: Shell Scripts116474 +Node: Shell Builtin Commands118989 +Node: Bourne Shell Builtins121023 +Node: Bash Builtins141623 +Node: Modifying Shell Behavior170268 +Node: The Set Builtin170613 +Node: The Shopt Builtin181026 +Node: Special Builtins196825 +Node: Shell Variables197804 +Node: Bourne Shell Variables198241 +Node: Bash Variables200272 +Node: Bash Features228652 +Node: Invoking Bash229551 +Node: Bash Startup Files235500 +Node: Interactive Shells240603 +Node: What is an Interactive Shell?241013 +Node: Is this Shell Interactive?241662 +Node: Interactive Shell Behavior242477 +Node: Bash Conditional Expressions245852 +Node: Shell Arithmetic250092 +Node: Aliases252909 +Node: Arrays255457 +Node: The Directory Stack260541 +Node: Directory Stack Builtins261325 +Node: Controlling the Prompt264293 +Node: The Restricted Shell267039 +Node: Bash POSIX Mode268864 +Node: Job Control279215 +Node: Job Control Basics279675 +Node: Job Control Builtins284394 +Node: Job Control Variables288924 +Node: Command Line Editing290080 +Node: Introduction and Notation291751 +Node: Readline Interaction293374 +Node: Readline Bare Essentials294565 +Node: Readline Movement Commands296348 +Node: Readline Killing Commands297308 +Node: Readline Arguments299226 +Node: Searching300270 +Node: Readline Init File302456 +Node: Readline Init File Syntax303603 +Node: Conditional Init Constructs323790 +Node: Sample Init File326315 +Node: Bindable Readline Commands329432 +Node: Commands For Moving330636 +Node: Commands For History331779 +Node: Commands For Text336068 +Node: Commands For Killing339457 +Node: Numeric Arguments341938 +Node: Commands For Completion343077 +Node: Keyboard Macros347268 +Node: Miscellaneous Commands347955 +Node: Readline vi Mode353759 +Node: Programmable Completion354666 +Node: Programmable Completion Builtins362127 +Node: A Programmable Completion Example372013 +Node: Using History Interactively377265 +Node: Bash History Facilities377949 +Node: Bash History Builtins380950 +Node: History Interaction384947 +Node: Event Designators387911 +Node: Word Designators389130 +Node: Modifiers390767 +Node: Installing Bash392169 +Node: Basic Installation393306 +Node: Compilers and Options395997 +Node: Compiling For Multiple Architectures396738 +Node: Installation Names398401 +Node: Specifying the System Type399219 +Node: Sharing Defaults399935 +Node: Operation Controls400608 +Node: Optional Features401566 +Node: Reporting Bugs411823 +Node: Major Differences From The Bourne Shell413017 +Node: GNU Free Documentation License429869 +Node: Indexes455046 +Node: Builtin Index455500 +Node: Reserved Word Index462327 +Node: Variable Index464775 +Node: Function Index480234 +Node: Concept Index493391  End Tag Table diff --git a/doc/bashref.dvi b/doc/bashref.dvi index 23522cba..6b4fc491 100644 Binary files a/doc/bashref.dvi and b/doc/bashref.dvi differ diff --git a/doc/bashref.html b/doc/bashref.html index 96e02599..8c2eabf0 100644 --- a/doc/bashref.html +++ b/doc/bashref.html @@ -1,9 +1,9 @@