シバン 【shebang】 シェバン
概要
シバン(shebang)とは、LinuxなどのUNIX系OSで実行されるスクリプトファイルにおいて、先頭行でスクリプトを実行する処理系(インタプリタ)を指定する仕組み。「#!」に続けて処理系の実行ファイルのパスを指定する。「#!」に続けてスクリプトを実行するシェル(シェルスクリプトの場合)や言語インタプリタなどのコンピュータ内でのパスを指定すると、実行時に自動的にそのプログラムが起動され、後続のスクリプトを解釈・実行する。
一般的なシェルスクリプトはシェルが実行するため「#!/bin/sh」のように指定するが、スクリプト言語で書かれたプログラムを実行したい場合はその言語の処理系を指名する。例えば、Pythonで書かれたスクリプトファイルの冒頭に「#!/usr/bin/env python」のように記述すれば、ファイル名を指定するだけで自動的にPythonのインタプリタが起動され、スクリプトが実行される。
シェル以外の実行系を指定する場合は、本来は「#!/usr/bin/python」のように実行ファイルのパスを直接指定するが、環境によって実行ファイルが置かれている場所は異なる場合があるため、envコマンドを挟んで「#!/usr/bin/env python」のようにすることで、PATH環境変数からそのコンピュータ内での実行ファイルの位置を探し出して実行してくれる。
「#!」はナンバーサイン「#」とエクスクラメーションマーク「!」を並べたものだが、「#」は俗に「ハッシュ」(hash)あるいは「シャープ」(sharp)、「!」は「バン」(bang)とも呼ばれることから、 “hash-bang” あるいは “sharp-bang” を縮めて “shebang” と呼ばれるようになった。
(2021.12.16更新)