【#!/bin/bash】と【#!/bin/csh】と【#!/bin/csh -f】の意味

#!/bin/bash は、このスクリプトがバッシュで実行されることを期待していることを意味します。

#!/bin/csh は、このスクリプトがシーシェルで実行されることを期待していることを意味します。

#!/bin/csh -f は、このスクリプトがシーシェル(非対話モード)で実行されることを期待していることを意味します。

 

冒頭に #!/bin/csh と記載した ccc.sh があるとする。

(拡張子は .csh とすべきだが、.sh でも解釈に影響しない)

 

これを、

sh ccc.sh で実行したら予期せぬ動作になる(おそらく sh として動かそうとする)。

csh ccc.sh で実行したら csh として動く。

./ccc.sh で実行したら、#!/bin/csh により csh として動く。

 

シェルの実行前には冒頭の1行を確認にし、それに合わせて実行するか、

./xxxで実行すべき。