- ベストアンサー
起動シェル内の「. 」について
アプリケーションサーバーの起動スクリプトに以下のような記述がありました。 この記述は現在のシェルのディレクトリを取得して、環境変数を設定するしシェルを呼び出す記述だと言うのは分かるのですが、最初の「. 」ドットスペースは何をしているのでしょうか? binDir=`dirname $0` . $binDir/setupCmdLine.sh
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「.」はshの内部コマンドで、指定されたスクリプトファイルを 今実行しているシェル自身が読み込んで実行します。 あらたにシェルが起動することはありません。 ファイルが呼び出し元のシェルスクリプトファイルの中に取り込まれるような感じです。 「.」無し(./setupCmdLine.sh)で実行した場合、 指定されたファイルは子プロセスを起動してそのシェル上で実行されます。 この場合、それぞれのシェルスクリプトは別々のプロセスで実行されるので 子プロセスでの環境(環境変数、カレントディレクトリなど)の変更は、 親プロセスには引き継がれません。(ここが「.」がある場合と異なります。)
その他の回答 (2)
- kmb01
- ベストアンサー率45% (63/138)
man bashによると source filename [arguments] と同じです。
お礼
ありがとうございました。 補足で質問です。 シェルが置いてあるディレクトリでこのシェルを実行すると「.」になります。 もし一つ上の階層が「test」だとすると「./test」になります。 そうするとこのコマンドは . ./setupCmdLine.sh . ./test/setupCmdLine.sh となり「.」カレントディレクトリ パス/シェル名になるのですが。 この最初の「.」は何の役割があるのでしょうか? 宜しくお願い致します。
- suzukikun
- ベストアンサー率28% (372/1325)
現在のディレクトリです。
お礼
ありがとうございました。
お礼
ありがとうございました。