Bash on Mac: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(5 intermediate revisions by the same user not shown)
Line 5: Line 5:
A specific bash executable is picked like any other executable, by scanning the PATH and using the first match. To force a specific bash version, ensure the directory it exists in comes first in PATH.
A specific bash executable is picked like any other executable, by scanning the PATH and using the first match. To force a specific bash version, ensure the directory it exists in comes first in PATH.


For example, a brew-installed bash (5.0.17) is picked from /usr/local/bin because /usr/local/bin precedes /bin in PATH.
For example, a brew-installed bash (5.0.17) is picked from <code>/usr/local/bin</code> because <code>/usr/local/bin</code> precedes <code>/bin</code> in PATH.


The original Mac bash binary is available in /bin/bash, even if brew installs a newer version.
The original Mac bash binary is available in <code>/bin/bash</code>, even if brew installs a newer version.


To force the native bash to be used, ensure /bin precedes /usr/local/bin in PATH.
To force the native bash to be used, ensure <code>/bin</code> precedes <code>/usr/local/bin</code> in PATH.
 
=bash Installation=
<syntaxhighlight lang='bash'>
brew install bash
</syntaxhighlight>
 
=Set up bash as Default Shell=
 
System Preferences → Users & Groups → Unlock → Select Current User → Control + Right Click → Advanced Options → Login shell → <code>/bin/bash</code> (or <code>/usr/local/bin/bash</code> or <code>/opt/homebrew/bin/bash</code> if the latest Bash was installed with brew)
 
Ensure that <code>~/.bash_profile</code> and <code>~/.bashrc</code> exist.
 
=Get Rid of Default Interactive Shell is Now zsh=
 
In .bash_profile:
 
<syntaxhighlight lang='bash'>
export BASH_SILENCE_DEPRECATION_WARNING=1
</syntaxhighlight>

Latest revision as of 01:33, 10 September 2024

Internal

bash Version on Mac

A specific bash executable is picked like any other executable, by scanning the PATH and using the first match. To force a specific bash version, ensure the directory it exists in comes first in PATH.

For example, a brew-installed bash (5.0.17) is picked from /usr/local/bin because /usr/local/bin precedes /bin in PATH.

The original Mac bash binary is available in /bin/bash, even if brew installs a newer version.

To force the native bash to be used, ensure /bin precedes /usr/local/bin in PATH.

bash Installation

brew install bash

Set up bash as Default Shell

System Preferences → Users & Groups → Unlock → Select Current User → Control + Right Click → Advanced Options → Login shell → /bin/bash (or /usr/local/bin/bash or /opt/homebrew/bin/bash if the latest Bash was installed with brew)

Ensure that ~/.bash_profile and ~/.bashrc exist.

Get Rid of Default Interactive Shell is Now zsh

In .bash_profile:

export BASH_SILENCE_DEPRECATION_WARNING=1