Bash 4.0 Ships With Associative Arrays and Coprocesses
Announced by maintainer Chet Ramey on February 20, 2009, Bash 4.0 added key-value associative arrays and several other features that had been requested by scripters for years.
Bash, Zsh, sh, tcsh, and the TUI tools built on top of them — prompts, scripting, multiplexers, and terminal troubleshooting.
Announced by maintainer Chet Ramey on February 20, 2009, Bash 4.0 added key-value associative arrays and several other features that had been requested by scripters for years.
That colorful prompt showing your git branch, exit code, and current directory isn't a separate program running alongside your shell — it's a string your shell re-evaluates before every single command.
Ctrl-Z, bg, fg, and the & at the end of a command all touch the same underlying mechanism — a shell feature that manages which processes can read your keyboard input at any given moment.
Disclosed on September 24, 2014, the Shellshock vulnerability let attackers execute arbitrary commands through a flaw in how Bash processed environment variables — and botnets were scanning for vulnerable systems within hours.
Distributed starting with the second Berkeley Software Distribution in 1979, Bill Joy's C shell introduced features — command history, aliases, filename completion — that nearly every shell since has copied in some form.
FreeBSD's default shells didn't evolve from the Bourne shell lineage Bash and Zsh belong to — they descend from an entirely separate design philosophy, one built to feel more like C than like a scripting language.
By the time a command you typed actually runs, the shell has already rewritten it — expanding variables, substituting command output, and turning wildcard patterns into real filenames. Here's the exact order that happens in.
Posted to the alt.sources Usenet newsgroup by a Princeton student in 1990, Zsh combined the strongest interactive features of several existing shells — and, decades later, would become the default shell on macOS.
Every shell in daily use today — Bash, Zsh, tcsh, fish — descends from a lineage that started with a genuinely minimal 1971 command interpreter, branching twice into distinct, still-visible family trees.
Released as beta version .99 on June 8, 1989, Bash was built for the GNU Project as a genuinely free replacement for the Bourne shell — and would eventually become the default shell on more systems than any of the proprietary shells it set out to replace.