• ベストアンサー

デフォルトシェルの調べ方

デフォルトシェルの調べ方(シェルスクリプトの1行目に#!を書かなかった場合にどのシェルで実行されるのかを調べる方法)を知りたいです。 よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.1

以前の質問で回答しましたよ。忘れましたか? >1行目が#!で始まらない場合は、そのスクリプトを実行するシェルの機能に依存します。Linuxだと一般的にはbashからの起動となるので、その場合、スクリプトもbashで実行されます。 1行目が#!で始まらない場合は、bashだとbashで、tcshだとtcshで、zshだとzshで実行されます。 念のためですが、何らかのシェルからでないと1行目が#!で始まらないスクリプトは実行できません。例えば、Cから直接exec系の関数で起動するとエラーになります。Cからsystem("filename")を実行すると、$SHELL -c "filename" がexecされるので環境変数SHELLのシェルが実行されます。

goovbs2
質問者

補足

詳細な解説ありがとうございました。

関連するQ&A