Macのbashバージョンを最新にする方法(Homebrew利用)

macOS にはデフォルトで bash が搭載されていますが、そのバージョンは非常に古く、最新のシェルスクリプト機能が使えません。本記事では、Homebrew を使って bash の最新バージョンをインストールし、必要に応じてログインシェルとして切り替える方法を解説します。


なぜ bash を最新化するのか?

macOS に標準搭載されている bash は、次の理由から長らくアップデートされていません。

  • 標準 bash のバージョン:3.2(2007年リリース)
  • Apple が GPLv3 を避けているため、以降の bash は採用されていない

そのため、以下のような便利な機能が使えません。

  • mapfile(行ごと読み込み)
  • declare -n(参照変数)
  • coproc(非同期プロセス)

これらの機能を使いたい場合、bash を最新版にする必要があります。


現在の bash バージョンを確認する

まずは現在の bash バージョンを確認します。

bash --version

出力例:

GNU bash, version 3.2.57(1)-release (arm64-apple-darwin24)

Homebrew を使って bash をインストール

  1. ターミナルで以下を実行します。
brew install bash
  1. インストールされた bash の場所を確認します。
which -a bash

出力例:

/opt/homebrew/bin/bash
/bin/bash

最上位が新しい bash(5.x)であることを確認します。


新しい bash を一時的に使う

ログインシェルを変更せず、必要なときだけ新しい bash を使うこともできます。

/opt/homebrew/bin/bash

その後、バージョンを確認します。

bash --version

必要に応じてログインシェルを切り替える

常に新しい bash を使いたい場合は、ログインシェルの変更を検討できます。

/etc/shells に新しい bash を追加

sudo bash -c 'echo /opt/homebrew/bin/bash >> /etc/shells'

ログインシェルを変更する

chsh -s /opt/homebrew/bin/bash

実行後は、ターミナルを再起動して次のように確認します。

echo $SHELL
bash --version

PATH 優先順位の設定(推奨)

ログインシェルを変更しない場合でも、bash コマンドで新しい bash を優先的に使えるようにするには、~/.bash_profile に以下を追加します。

export PATH="/opt/homebrew/bin:$PATH"

変更後は反映します。

source ~/.bash_profile

まとめ

作業内容コマンド例
bash のバージョン確認bash --version
Homebrew で bash をインストールbrew install bash
一時的に新しい bash を使う/opt/homebrew/bin/bash
ログインシェルの切り替え(任意)chsh -s /opt/homebrew/bin/bash
パスの優先度を上げる.bash_profileexport PATH=... を追加

おわりに

普段使っているシェル環境を少しアップグレードするだけで、スクリプトの記述力や実行効率が大きく向上します。ログインシェルの変更は必須ではありません。用途に応じて新しい bash を部分的に使うだけでも十分な効果があります。

コメント

タイトルとURLをコピーしました