【ばっしゅ】
Bash とは?
最終更新:
💡 コマンド操作とスクリプト自動化の定番シェル
GNU Projectのシェル(コマンドを解釈して実行するプログラム)。多くのLinux環境で使われ、コマンド操作とシェルスクリプトの実行に使う。
📌 このページのポイント
ペンギン先生、Bashってどこがよいの?
「#!/bin/bash」ってよく見るけど何?
シバン(shebang)行と呼ばれる、スクリプトを動かすインタープリタを指定する行だよ。ファイルの1行目に書くと、そのファイルを直接実行したときに「Bashで動かしてね」という指定になる。「#!/usr/bin/env bash」と書けば、PATHの中から最初に見つかったbashを使うんだ。
ZshやFishより先に学んだほうがいいの?
Bashスクリプトで気をつけることってある?
set -eを書いておけば、失敗したら必ず止まるの?
もっと詳しく知りたい人へ
「#!/bin/bash」と書いたのに「sh script.sh」で実行したらエラーになるのはなぜ?
sh script.shと打つと、起動したshがファイルを読み込むので、1行目の#!はただのコメントとして扱われるからだよ。シバン行が効くのは、実行権限を付けて./script.shのようにファイル自体を実行したときだね。Bash独自の書き方を使うなら、bash script.shで実行するか、chmod +xしてから./script.shで実行しよう。
Macのターミナルで開くシェルもBashなの?
macOS 10.15(Catalina)以降に作られたユーザーでは、既定のシェルはzshだよ。Bashも/bin/bashとして残っていて、設定でログインシェルを切り替えられる。Bash前提のスクリプトは、シバン行でbashを指定するか、bashコマンドで実行すれば動かせるよ。
📖 おまけ:英語の意味
「Bourne-Again SHell」 = 「また生まれたボーンシェル」=Bourneシェルの流れをくむシェル
💬 Unixのshを作ったStephen Bourneの名前と「born again(生まれ変わる)」をかけたダジャレだよ。最初はGNU ProjectのBrian Foxが書いたんだ