Bash 4.1 发布

Bash 开发团队已发布 4.1 版本。Bash 是 Linux 系统中的标准 Shell,该新版本为用户带来了下列新功能:

  • Here-documents within $(...) command substitutions may once more be delimited by the closing right paren, instead of requiring a newline.

  • Bash's file status checks (executable, readable, etc.) now take file system ACLs into account on file systems that support them.

  • Bash now passes environment variables with names that are not valid shell variable names through into the environment passed to child
    processes.

  • 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.

  • `printf -v' can now assign values to array indices.

  • New complete -E' andcompopt -E' options that work on the "empty" completion: completion attempted on an empty command line.

  • 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.

  • When displaying associative arrays, subscripts are now quoted.

  • 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.

  • The [[ and (( commands are now subject to the setting of `set -e' and the ERR trap.

  • The source/. builtin now removes NUL bytes from the file before attempting to parse commands.

  • There is a new configuration option (in config-top.h) that forces bash to forward all history entries to syslog.

  • A new variable $BASHOPTS to export shell options settable using `shopt' to child processes.

  • There is a new confgure option that forces the extglob option to be enabled by default.

  • New variable $BASH\_XTRACEFD; when set to an integer bash will write xtrace output to that file descriptor.

  • 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.

  • The < and > operators to the [[ conditional command now do string
    comparison according to the current locale if the compatibility level is greater than 40.

  • Programmable completion now uses the completion for b' instead ofa' when completion is attempted on a line like: a $(b c.

  • Force extglob on temporarily when parsing the pattern argument to the == and != operators to the [[ command, for compatibility.

  • 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.

  • The read builtin has a new `-N nchars' option, which reads exactly NCHARS characters, ignoring delimiters like newline.

  • The mapfile/readarray builtin no longer stores the commands it invokes via callbacks in the history list.

  • There is a new `compat40' shopt option.

Bash 4.1 的源代码可从 GNU 的 FTP 站点下载。

Read More: