o Here-documents within $(...) command substitutions may once more be delimited by the closing right paren, instead of requiring a newline. o Bash's file status checks (executable, readable, etc.) now take file system ACLs into account on file systems that support them. o Bash now passes environment variables with names that are not valid shell variable names through into the environment passed to child processes. o The `execute-unix-command' readline function now attempts to clear and reuse the current line rather than move to a new one after the command executes. o `printf -v' can now assign values to array indices. o New `complete -E' and `compopt -E' options that work on the "empty" completion: completion attempted on an empty command line. o New complete/compgen/compopt -D option to define a `default' completion: a completion to be invoked on command for which no completion has been defined. If this function returns 124, programmable completion is attempted again, allowing a user to dynamically build a set of completions as completion is attempted by having the default completion function install individual completion functions each time it is invoked. o When displaying associative arrays, subscripts are now quoted. o Changes to dabbrev-expand to make it more `emacs-like': no space appended after matches, completions are not sorted, and most recent history entries are presented first. o The [[ and (( commands are now subject to the setting of `set -e' and the ERR trap. o The source/. builtin now removes NUL bytes from the file before attempting to parse commands. o There is a new configuration option (in config-top.h) that forces bash to forward all history entries to syslog. o A new variable $BASHOPTS to export shell options settable using `shopt' to child processes. o There is a new confgure option that forces the extglob option to be enabled by default. o New variable $BASH_XTRACEFD; when set to an integer bash will write xtrace output to that file descriptor. o If the optional left-hand-side of a redirection is of the form {var}, the shell assigns the file descriptor used to $var or uses $var as the file descriptor to move or close, depending on the redirection operator. o The < and > operators to the [[ conditional command now do string comparison according to the current locale. o Programmable completion now uses the completion for `b' instead of `a' when completion is attempted on a line like: a $(b c. o Force extglob on temporarily when parsing the pattern argument to the == and != operators to the [[ command, for compatibility. o Changed the behavior of interrupting the wait builtin when a SIGCHLD is received and a trap on SIGCHLD is set to be Posix-mode only. o The read builtin has a new `-N nchars' option, which reads exactly NCHARS characters, ignoring delimiters like newline. o The mapfile/readarray builtin no longer stores the commands it invokes via callbacks in the history list. o There is a new `compat40' shopt option. o The < and > operators to [[ do string comparisons using the current locale only if the compatibility level is greater than 40 (set to 41 by default). o New bindable readline function: menu-complete-backward. o In the readline vi-mode insertion keymap, C-n is now bound to menu-complete by default, and C-p to menu-complete-backward. o When in readline vi command mode, repeatedly hitting ESC now does nothing, even when ESC introduces a bound key sequence. This is closer to how historical vi behaves. o New bindable readline function: skip-csi-sequence. Can be used as a default to consume key sequences generated by keys like Home and End without having to bind all keys. o New bindable readline variable: skip-completed-text, active when completing in the middle of a word. If enabled, it means that characters in the completion that match characters in the remainder of the word are "skipped" rather than inserted into the line. o The pre-readline-6.0 version of menu completion is available as "old-menu-complete" for users who do not like the readline-6.0 version. o New bindable readline variable: echo-control-characters. If enabled, and the tty ECHOCTL bit is set, controls the echoing of characters corresponding to keyboard-generated signals. o New bindable readline variable: enable-meta-key. Controls whether or not readline sends the smm/rmm sequences if the terminal indicates it has a meta key that enables eight-bit characters.