Bash 4.4 is released with new features and changes. How to install Bash Shell in Ubuntu. Bash, Bourne Again SHell is the shell for the GNU OS. Learn how to open Bash in Ubuntu.
GNU has released the latest version of Bash, GNU Project’s shell. The latest Bash 4.4 version arrives with new environmental variables and new arguments supported by existing commands. This release also brings along many changes to GNU Readline.
Bash, Bourne Again SHell, is GNU Project’s shell that was released as a free software replacement for the Bourne Shell. It’s widely distributed as the default shell on major Linux distributions and OS X.
Bash is the shell, or command language interpreter, for the GNU operating system. The name is an acronym for the ‘Bourne-Again SHell’, a pun on Stephen Bourne, the author of the direct ancestor of the current Unix shell sh, which appeared in the Seventh Edition Bell Labs Research version of Unix. Bash is largely compatible with sh and incorporates useful features from the Korn shell ksh and the C shell csh. It is intended to be a conformant implementation of the IEEE POSIX Shell and Tools portion of the IEEE POSIX specification (IEEE Standard 1003.1). It offers functional improvements over sh for both interactive and programming use.
New Features in Bash 4.4
- Bash now allows waiting for the most recent process substitution, since it appears as $!.
- The `unset’ builtin now unsets a scalar variable if it is subscripted with a `0′, analogous to the ${var[0]} expansion.
- The `set -i’ is no longer valid, as in other shells.
- BASH_SUBSHELL is now updated for process substitution and group commands in pipelines, and is available with the same value when running any exit trap.
- Bash now checks $INSIDE_EMACS as well as $EMACS when deciding whether or not bash is being run in a GNU Emacs shell window.
- Bash now treats SIGINT received when running a non-builtin command in a loop the way it has traditionally treated running a builtin command: running any trap handler and breaking out of the loop.
- There is now a settable configuration #define that will cause the shell to exit if the shell is running setuid without the -p option and setuid to the real uid fails.
- Command and process substitutions now turn off the `-v’ option when executing, as other shells seem to do.
- The default value for the `checkhash’ shell option may now be set at compile time with a #define.
- The `mapfile’ builtin now has a -d option to use an arbitrary character as the record delimiter, and a -t option to strip the delimiter as supplied with -d.
- The maximum number of nested recursive calls to `eval’ is now settable in config-top.h; the default is no limit.
- The `-p’ option to declare and similar builtins will display attributes for named variables even when those variables have not been assigned values (which are technically unset).
- The maximum number of nested recursive calls to `source’ is now settable in config-top.h; the default is no limit.
- All builtin commands recognize the `–help’ option and print a usage summary.
- Bash does not allow function names containing `/’ and `=’ to be exported.
- The `ulimit’ builtin has new -k (kqueues) and -P (pseudoterminals) options.
- The shell now allows `time ; othercommand’ to time null commands.
- There is a new `–enable-function-import’ configuration option to allow importing shell functions from the environment; import is enabled by default.
- The `printf -v var “”‘ will now set `var’ to the empty string, as if `var=””‘ had been executed.
- There is a new ${parameter@spec} family of operators to transform the value of `parameter’.
- Bash no longer attempts to perform compound assignment if a variable on the rhs of an assignment statement argument to `declare’ has the form of a compound assignment (e.g., w='(word)’ ; declare foo=$w); compound assignments are accepted if the variable was already declared as an array, but with a warning.
- The declare builtin no longer displays array variables using the compound assignment syntax with quotes; that will generate warnings when re-used as input, and isn’t necessary.
- Executing the rhs of && and || will no longer cause the shell to fork if it’s not necessary.
- The `local’ builtin takes a new argument: `-‘, which will cause it to save and the single-letter shell options and restore their previous values at function return.
- The`complete’ and `compgen’ have a new `-o nosort’ option, which forces readline to not sort the completion matches.
Install Bash 4.4 On Linux Ubuntu
Run the following commands in Terminal to install Bash 4.4 on Ubuntu 16.04, Ubuntu 15.04 and Ubuntu 14.04 Systems:
sudo apt-get install build-essential
wget http://ftp.gnu.org/gnu/bash/bash-4.4.tar.gz
tar xf bash-4.4.tar.gz
cd bash-4.4
./configure
make
sudo make install
Once the latest version of Bash is installed, you can use it freely.