bash is a backward-compatible evolutionary successor to the Bourne shell that includes most of the C shell's major advantages as well as features from the Korn shell and a few new features of its own. Features appropriated from the C shell include:
· Directory manipulation, with the pushd , popd , and dirs commands.
· Job control, including the fg and bg commands and the ability to stop jobs with CTRL-Z.
· Brace expansion, for generating arbitrary strings.
· Tilde expansion, a shorthand way to refer to directories.
· Aliases, which allow you to define shorthand names for commands or command lines.
· Command history, which lets you recall previously entered commands.
bash 's major new features include:
· Command-line editing, allowing you to use vi- or emacs -style editing commands on your command lines.
· Key bindings that allow you to set up customized editing key sequences.
· Integrated programming features: the functionality of several external UNIX commands, including test , expr , getopt , and echo , has been integrated into the shell itself, enabling common programming tasks to be done more cleanly and efficiently .
· Control structures, especially the select construct, which enables easy menu generation.
· New options and variables that give you more ways to customize your environment.
· One dimensional arrays that allow easy referencing and manipulation of lists of data.
· Dynamic loading of built-ins , plus the ability to write your own and load them into the running shell.