ファイルの先頭行にある #! って何
こんにちは、@yasuです。
たまに見かけるファイルの1行目にある#! について調べてみました。
調べると言っても、図書館に行くわけでもなく、Googleに#!と入力するだけです^^
シバンというらしい。
シバンとは
シバンまたはシェバン (英: shebang) とはUNIXのスクリプトの #! から始まる1行目のこと。起動してスクリプトを読み込むインタプリタを指定する。ハッシュ・バンまたはシェル・バン、シャープ・バンとも言うが、これらを縮めたシェバンという呼び方が一般的かつ簡素である[1]。
https://ja.wikipedia.org/wiki/シバン_(Unix)
出典: フリー百科事典『ウィキペディア(Wikipedia)』
複数バージョンのインタプリタ環境がある場合には、そのバージョンも指定できるようです。
左側のShellでmain.pyファイルを実行してみます。UNIXなので拡張子は関係ないとのこと。
とりあえず、実行してみると、
Permisshin Deniedとなります。
実行する権限がないためです。
ファイルに実行権限を付加します。
chmod +x main.py
1行目をpythonからPHPに変更してみると、
出力結果が変わりました。
pythonではなく、phpとして実行されたようです。
#!/usr/bin/env php
UNIXは、ファイルの拡張子ではなく、
ファイルの1行目を判断していることが実感できました。