きちんとシバンをつけるとfileコマンド でスクリプトの言語情報がでる

UNIX/Linuxではスクリプトの#!から始まる1行目でインタプリタを指定でき、これをシバン*1 と呼びます.

  

代表的なシバン

#!/bin/sh
#!/bin/bash

 

#!/usr/bin/perl

 

#!/usr/bin/env ruby

 

でここからが本題なのだが、Linuxのファイル識別コマンド file 

を用いるとシバンを書いてるとちゃんとどの言語のシェルスクリプトなのかを教えてくれる。

すなわち以下のような結果を返す

test.py: Python script, ASCII text executable

 

  • #!/usr/bin/pythonと書かなかった場合

test2.py: ASCII text
 

*1:shell-bang、sharp-bang