- ベストアンサー
デフォルトシェルの調べ方
デフォルトシェルの調べ方(シェルスクリプトの1行目に#!を書かなかった場合にどのシェルで実行されるのかを調べる方法)を知りたいです。 よろしくお願いします
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
以前の質問で回答しましたよ。忘れましたか? >1行目が#!で始まらない場合は、そのスクリプトを実行するシェルの機能に依存します。Linuxだと一般的にはbashからの起動となるので、その場合、スクリプトもbashで実行されます。 1行目が#!で始まらない場合は、bashだとbashで、tcshだとtcshで、zshだとzshで実行されます。 念のためですが、何らかのシェルからでないと1行目が#!で始まらないスクリプトは実行できません。例えば、Cから直接exec系の関数で起動するとエラーになります。Cからsystem("filename")を実行すると、$SHELL -c "filename" がexecされるので環境変数SHELLのシェルが実行されます。
補足
詳細な解説ありがとうございました。