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 をインストール
- ターミナルで以下を実行します。
brew install bash
- インストールされた 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_profile に export PATH=... を追加 |
おわりに
普段使っているシェル環境を少しアップグレードするだけで、スクリプトの記述力や実行効率が大きく向上します。ログインシェルの変更は必須ではありません。用途に応じて新しい bash を部分的に使うだけでも十分な効果があります。
コメント