Differences between revisions 1 and 24 (spanning 23 versions)
Revision 1 as of 2007-05-02 23:54:57
Size: 1045
Editor: redondos
Comment:
Revision 24 as of 2013-08-08 05:34:11
Size: 2258
Editor: ormaaj
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
[[Anchor(faq61)]] <<Anchor(faq61)>>
Line 3: Line 3:
Here are some links to official Bash documentation:
Line 4: Line 5:
  * [http://cnswww.cns.cwru.edu/~chet/bash/NEWS NEWS]: a file tersely listing the notable changes between the current and previous versions
  * [http://cnswww.cns.cwru.edu/~chet/bash/CHANGES CHANGES]: a complete bash change history
  * [http://cnswww.cns.cwru.edu/~chet/bash/COMPAT COMPAT]: compatibility issues between bash3 and previous versions
  * [[http://cnswww.cns.cwru.edu/~chet/bash/NEWS|NEWS]]: a file tersely listing the notable changes between the current and previous versions
  * [[http://cnswww.cns.cwru.edu/~chet/bash/CHANGES|CHANGES]]: a "complete" bash change history (back to 2.0 only)
  * [[http://cnswww.cns.cwru.edu/~chet/bash/COMPAT|COMPAT]]: compatibility issues between bash3 and previous versions

A more extensive, partial list than the one below can be found at http://wiki.bash-hackers.org/scripting/bashchanges
Line 11: Line 14:
||x+=string||3.1-alpha1|| ||wait -n||4.3-alpha||
||declare/typeset -n and associated changes to ${!ref} and for..in||4.3-alpha||
||array[-idx] (in assignments, read, unset, etc)||4.3-alpha||
||\uXXXX and \UXXXXXXXX||4.2-alpha||
||declare -g||4.2-alpha||
||test -v||4.2-alpha||
||printf %(fmt)T||4.2-alpha||
||${array[-idx]} and ${var:start:-len}||4.2-alpha||
||lastpipe (shopt)||4.2-alpha||
||read -N||4.1-alpha||
||{var}> or {var}< etc. (FD variable assignment)||4.1-alpha||
||syslog history (compile option)||4.1-alpha||
||BASH_XTRACEFD||4.1-alpha||
||;& and ;;& fall-throughs for case||4.0-alpha||
||associative arrays||4.0-alpha||
||&>> and |&||4.0-alpha||
||command_not_found_handle||4.0-alpha||
||coproc||4.0-alpha||
||globstar||4.0-alpha||
||mapfile/readarray||4.0-alpha||
||${var,[,]} and ${var&#94;[&#94;]}||4.0-alpha||
||{009..012} (leading zeros in brace expansions)||4.0-alpha||
||{x..y..incr}||4.0-alpha||
||read -t 0||4.0-alpha||
||read -i||4.0-alpha||
||x+=string array+=(string)||3.1-alpha1||
||printf -v var||3.1-alpha1||

Is there a list of which features were added to specific releases (versions) of Bash?

Here are some links to official Bash documentation:

  • NEWS: a file tersely listing the notable changes between the current and previous versions

  • CHANGES: a "complete" bash change history (back to 2.0 only)

  • COMPAT: compatibility issues between bash3 and previous versions

A more extensive, partial list than the one below can be found at http://wiki.bash-hackers.org/scripting/bashchanges

Here's a partial list of the changes, in a more compact format:

Feature

Added in version

wait -n

4.3-alpha

declare/typeset -n and associated changes to ${!ref} and for..in

4.3-alpha

array[-idx] (in assignments, read, unset, etc)

4.3-alpha

\uXXXX and \UXXXXXXXX

4.2-alpha

declare -g

4.2-alpha

test -v

4.2-alpha

printf %(fmt)T

4.2-alpha

${array[-idx]} and ${var:start:-len}

4.2-alpha

lastpipe (shopt)

4.2-alpha

read -N

4.1-alpha

{var}> or {var}< etc. (FD variable assignment)

4.1-alpha

syslog history (compile option)

4.1-alpha

BASH_XTRACEFD

4.1-alpha

;& and ;;& fall-throughs for case

4.0-alpha

associative arrays

4.0-alpha

&>> and |&

4.0-alpha

command_not_found_handle

4.0-alpha

coproc

4.0-alpha

globstar

4.0-alpha

mapfile/readarray

4.0-alpha

${var,[,]} and ${var^[^]}

4.0-alpha

{009..012} (leading zeros in brace expansions)

4.0-alpha

{x..y..incr}

4.0-alpha

read -t 0

4.0-alpha

read -i

4.0-alpha

x+=string array+=(string)

3.1-alpha1

printf -v var

3.1-alpha1

{x..y}

3.0-alpha

${!array[@]}

3.0-alpha

[[ =~

3.0-alpha

<<<

2.05b-alpha1

i++

2.04-devel

for ((;;))

2.04-devel

/dev/fd/N, /dev/tcp/host/port, etc.

2.04-devel

a=(*.txt) file expansion

2.03-alpha

extglob

2.02-alpha1

[[

2.02-alpha1

builtin printf

2.02-alpha1

$(< filename)

2.02-alpha1

** (exponentiation)

2.02-alpha1

\xNNN

2.02-alpha1

(( ))

2.0-beta2

BashFAQ/061 (last edited 2024-04-14 22:29:57 by emanuele6)