2011-01-11 8 views

答えて

5

最初の方法:

sh b.sh 

はサブシェルを作成し、サブシェル内b.sh実行されます。したがって、

. ./b.sh 

源b.shと:この方法でそれをやっての結果の一つは、あなたが

第二の方法をa.shに戻ったときにb.shで設定された環境変数は、単に消えるということですb.shで設定された環境変数は、b.shが戻るときにa.shに残っています。

+0

パーフェクト..thanks ennuikiller :) –

1

第2の方法は「ソース」と呼ばれ、スクリプトをプルして同じシェルで実行します。

これは2つの理由から実行されます。スピードで、2番目のスクリプトは最初のスクリプトで環境変数を設定できます。通常、スクリプトやプログラムを実行しているときは、呼び出し元の環境を変更することはできません。

ソーシングは、フォークを必要とせず、別のシェルプロセスを開始するため、高速です。これは、いくつかのシステムでは/ etc/init/rcスクリプトのようなもので使用されていますが、パフォーマンスの違いはおそらくほとんどの場合重要ではありません。また、スクリプトをソースにするときにシグナル処理に関係するいくつかの微妙な点もあります。

+0

ありがとうblueshift –

関連する問題