プログラマとプロマネのあいだ

プログラマもやるし、プロマネもやるし、たまに似非アーキとか営業っぽいこともやる

shebangはシバンと読むらしい

シバン (Unix) - Wikipedia
ずっとシェバングかと思ってた。。
何年やってても、知らないことはたくさんあります。


ところで、shebangが付いてないスクリプトを実行すると、どうなるのかってのを調べてみました。
cshの場合ですが、manを適当に読んだ感じだと、

  • 先頭が#の場合は、cshスクリプトとして処理される。
  • 上記意外の場合は、standard shell(つまりsh)スクリプトとして処理される。

ということなので、早速試してみる。

% more test
set abc=$0
echo $abc
% 

setはcshの文法であって、shでは使えない。よって、cshで実行したときのみ、結果が表示される。
先頭の文字が#でないので、shで実行した場合と同様となる。

% sh ./test

% csh ./test
./test
% ./test

% 

一方で、test2。

% more test2
#
set abc=$0
echo $abc
% 

先頭の文字が#なので、cshで実行した場合と同様となる。

% sh ./test2

% csh ./test2
./test2
% ./test2
./test2
% 

まあここまで書いといてなんだけど、cshを使ってる人は、あんまりいないと思う。