Bash 4.0 Introduces Associative Arrays

Feb 24, 2009

The GNU Project's Bourne Again Shell (bash) is now in its fourth major version, which provides numerous enhancements.

For one thing, bash now recognizes associative arrays. The newly introduced "**" wildcard recursively matches all libraries and files, although it requires activation of the "globstar" shell option. The new "&>>" redirection operator appends the standard output and standard error to a file.

Programmable completion code also includes some feature enhancements. The developers fixed a few related bugs on the bash 3 branch and improved other POSIX compatibility issues. The full list of new features and enhancements are here, with more details on the bash manpage.

Version compatibility details are here, especially related to the older versions 1.14 and 2.0, especially as to the use of shell options.

Bash 4.0 is under GLPv3 licensing and is available at GNU mirrors as source tarballs for download. Along with bash, a new version 6.0 of the GNU Readline library is also available.

Related content

Comments

  • bash associative array... solution!

    this is my solution:

    function idx { eval 'case $1 in '${cases[*]}' *) [ "$1" ] && { cases=( ${cases[*]} '\''"'\''$1'\''"blunk echo '${#cases[*]}';;'\'' ); echo '${#cases[*]}';}; esac'; }

    idx all
    0
    idx all
    0
    idx jhon
    1
    idx all
    0

    as you can see the function return different values for different strings
    so associative array becomes quite simple like a simple array

    array[`idx name`]=value
    echo ${array[`idx name`]}
    value


    what do you think?
comments powered by Disqus

Issue 18: Free From XP/Special Editions

Buy this issue as a PDF

Digital Issue: Price $15.99
(incl. VAT)

News