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.


  • 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
    idx all
    idx jhon
    idx all

    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`]}

    what do you think?
comments powered by Disqus

Issue 27: Raspberry Pi Adventures/Special Editions

Buy this issue as a PDF

Digital Issue: Price $15.99
(incl. VAT)


njobs Europe
Njobs Netherlands Njobs Deutschland Njobs United Kingdom Njobs Italia Njobs France Njobs Espana Njobs Poland
Njobs Austria Njobs Denmark Njobs Belgium Njobs Czech Republic Njobs Mexico Njobs India Njobs Colombia