• ベストアンサー

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

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

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4847/10260)
回答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

  • シェルスクリプトの切り替え?

    シェルには種類がありユーザーはそれを切り替えることによって好みのシェルを自由に選択することが出来る。 というのはわかりました。 が、シェルスクリプトを記述して実行する場合はどうなんでしょう。 bornシェルで記述したシェルスクリプトをcshから実行できるのでしょうか。 実行者とスクリプト記述者が同じシェル環境で操作しないといけないのかと思い質問しています。 ひょっとして意味のわからない質問かも知れませんがお願いします。

  • Macでシェルスクリプト実行時にターミナルを非表示にしたい

    こんにちは、よろしくお願いします Macでシェルスクリプトを実行する際にターミナルを表示させないもしくはシェルスクリプト終了後ターミナルを終了させたいのですが、その方法が解りません ターミナルの環境設定でシェルの終了時:シェルが正常に終了した場合閉じるになっています 実行しているスクリプトはごく簡単な以下のような1行ものです #!/bin/bash open smb://192.168.1.10/d ご存知の方ご教授お願いします OSX10.5です よろしくお願いいたします

    • 締切済み
    • Mac
  • Linux シェルスクリプトについての質問です

    Linux上で 日頃、簡単な シェルスクリプトを書き実行していますが、 この頃、より自動化をしたいと思い、シェルスクリプトの中に キーボードのキーを 押したかの様な動作をさせられないかを考えています。 やりたいことは、シェルスクリプトを実行すると、knoppix の partimage にてファイル等を 指定して、1行で実行は出来るのですが、続行するのは F5 キー を押したり Enter キーを押したりの作業が必要です。 この問題は、何か他ので対処が出来るのかもしれないですが、今後、どうしても キーをおさなきゃならない環境が来たときにも対処が出来るように シェルスクリプトでこのような事が可能なのかを知りたく質問させて頂きました。 どなたか分かれば回答を宜しくお願いします。

  • シェルスクリプトで困っています 2

    度々申し訳ございません。 現在、Linuxマシン1からLinuxマシン2へTelnetでログインし、Linuxマシン2上にあるシェルスクリプト(/bin/sh)を実行し、Linuxマシン2上のプログラムを実行した後、Linuxマシン2からログアウトするシェルスクリプトを作成中です。 その、Linuxマシン2からログアウトする際に、 "exit"を記述しているのですが、その"exit"がTelnetログアウトの意味で実行されず、シェルスクリプトを終了するの意味で実行されていて困っています。 どなたか上手くTelnetからログアウトできるようにシェルスクリプトを組む方法をご存知ではないでしょうか?もし判りましたらご教授下さい。 よろしくお願い致します。

  • シェルスクリプトについて

    シェルスクリプトについて Linuxで先頭にスペースが入っている行をひとつ上の行につなげたいと考えています。 その場合、シェルスクリプトはどのように書けばよいかご教示願います。 【ファイル内容】 aaa △bbb ccc ddd (b行の先頭のみスペース(△)が入っています。) 【変換後のファイル】 aaa bbb ccc ddd

  • Macのデフォルトシェル

    MacBook 2100/13.3 MB402J/A を買おうと思ってるのですが このMacのデフォルトシェルはBashですか?

    • ベストアンサー
    • Mac
  • シェルスクリプト勉強をしています。

    シェルスクリプト勉強をしています。 シェルスクリプトの条件で指定のディレクトリがAAAというディレクトリが1つしかない場合はスクリプト1を実行し終了させる。 AAAAというディレクトリも含めて複数ある場合(BBBというディレクトリのみでも同様)は別のスクリプト2を実行させる。 例として /home/hoge配下にTargetというディレクトリのみの場合は、スクリプトXを実行した後に終了させる。 Targetディクトリや他のディレクトリもある場合はスクリプトYを実行する。 Targetディレクトリ以外のディレクトリのみだけの場合もスクリプトYを実行する。 Targetディレクトリのみの場合というスクリプトの書き方がわからず… どなたか教えていただけると助かります。 よろしくお願いします

  • perlスクリプト内でシェルコマンドを実行するには??

    タイトル通りなのですが、perlスクリプト内でシェルコマンドを実行させる方法が分からなく、困っています。 実行したいシェルコマンドはUNIXのcrontab なのですが・・。 また、perlスクリプト内以外でシェルコマンドを実行する方法はあるのでしょうか?? どなたか分かる方いらっしゃいましたらご教授いただけると幸いです。よろしくお願いします。

    • ベストアンサー
    • Perl
  • sudoでのシェルスクリプト実行

    ユーザに、sudoで実行してもらいたいシェルスクリプトがあります。 sudoで実行しなかった場合、「sudoで実行してください」 というような警告文を表示し、処理を実行せずに終了し、 sudoで実行した場合のみ、処理を行ないたいです。 こうした動作を実現するには、シェルスクリプトに どういった記述を追記すればいいでしょうか? 環境はMacOSXです。よろしくお願いします。

  • シェルスクリプトでパスワードを入力する方法について

    いつもお世話になっております。 シェルスクリプトでパスワードの入力が必要なコマンドを自動化したい場合にどの様に書けばよいのでしょう? 単純にコマンドの次の行にパスワード入れても実行されそうも無いので、何か別のコマンドで出来るのでしょうか?