【環境構築】Bashの実行環境
Bash はほとんどの macOS・Linux 環境で標準搭載されているシェルです。特別なインストール作業なしに、ターミナルを開けばすぐに使えます。
macOS / Linux の場合
ターミナルを開くと、すでに Bash(または zsh などのシェル)が使えます。以下のコマンドでバージョンを確認できます。
bash --version
macOS Catalina 以降はデフォルトシェルが『zsh』に変更されていますが、Bash もインストールされており、そのまま使えます。
最新版の Bash を使いたい場合は、Homebrew でインストールできます。
brew install bash
Windows の場合
Windows で Bash を使うには、以下の方法があります。
| 方法 | 概要 |
|---|---|
| WSL(Windows Subsystem for Linux) | Windows 上で Linux 環境を動かす仕組みです。本格的な Bash が使えます。推奨の方法です。 |
| Git Bash | Git for Windows に付属する Bash 環境です。基本的なコマンドが使えます。 |
WSL のインストール
PowerShell を管理者として開き、以下を実行します。
wsl --install
再起動後、Linux ディストリビューション(Ubuntu がデフォルト)のセットアップが始まります。ユーザー名とパスワードを設定すれば完了です。
スクリプトの作成と実行
1. スクリプトファイルを作成します
テキストエディタで『hello.sh』というファイルを作成し、以下の内容を書きます。
#!/bin/bash echo "Hello, World!" echo "Bash の環境構築が完了しました。"
1行目の『#!/bin/bash』は「シェバン」(shebang)と呼ばれる行です。このスクリプトを Bash で実行することを OS に伝えます。
2. 実行権限を付けて実行します
chmod +x hello.sh ./hello.sh
『chmod +x』はファイルに実行権限を付与するコマンドです。これにより『./ファイル名』で直接実行できるようになります。
『Hello, World!』と『Bash の環境構築が完了しました。』が表示されれば成功です。
bash コマンドで直接実行する方法
実行権限を付けなくても、以下のように『bash』コマンドで実行できます。
bash hello.sh
シェバン行について
シェバン行はスクリプトファイルの1行目に書く特別な記述で、『#!』で始まります。
| 記述 | 説明 |
|---|---|
| #!/bin/bash | Bash で実行します。最も一般的な書き方です。 |
| #!/usr/bin/env bash | 環境変数 PATH から Bash を探して実行します。移植性が高い書き方です。 |
| #!/bin/sh | POSIX 互換シェルで実行します。Bash 固有の機能は使えません。 |
スクリプトを書くときは、ファイルの先頭にシェバン行を入れることを習慣にしましょう。
コマンドが見つからないとき
ターミナルで『bash: command not found』と表示されることはまれですが、Homebrew で最新版をインストールした場合にパスの問題が起きることがあります。以下の手順で確認・設定してください。
1. インストールされている Bash を確認します
システム標準の Bash。
/bin/bash --version
Homebrew でインストールした Bash。
/usr/local/bin/bash --version /opt/homebrew/bin/bash --version
macOS のデフォルトシェルについて
macOS Catalina(10.15)以降、デフォルトシェルが Bash から『zsh』に変更されました。ターミナルを開いたときに動いているのは zsh であり、Bash ではありません。
現在のシェルは以下のコマンドで確認できます。
現在のシェルを確認します。
echo $SHELL
Bash スクリプトは『bash スクリプト名.sh』で実行できるため、デフォルトシェルが zsh のままでも問題ありません。デフォルトシェルを Bash に変更したい場合は以下を実行します。
デフォルトシェルを Bash に変更します。
chsh -s /bin/bash
Homebrew 版 Bash をデフォルトにする場合
Homebrew でインストールした最新版の Bash をデフォルトシェルにするには、まず許可シェルに追加する必要があります。
許可シェルの一覧に追加します(Apple Silicon の場合)。
echo '/opt/homebrew/bin/bash' | sudo tee -a /etc/shells
デフォルトシェルを変更します。
chsh -s /opt/homebrew/bin/bash
macOS 標準の Bash はバージョン 3 系(GPLv2 ライセンスの制約)ですが、Homebrew 版はバージョン 5 系で、連想配列や正規表現マッチなどの新機能が使えます。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。