ホームディレクトリに2つのシェルスクリプトa.sh
とb.sh
があります。 a.shの中で私はまた、次のよう別のシェルスクリプト内からのシェルスクリプトの呼び出しの相違
. b.sh
は親切に私の呼び出しの間の違いを教えてくださいすることができます
sh b.sh
としてb.sh起動します。
おかげで、 LinuxPenseur
ホームディレクトリに2つのシェルスクリプトa.sh
とb.sh
があります。 a.shの中で私はまた、次のよう別のシェルスクリプト内からのシェルスクリプトの呼び出しの相違
. b.sh
は親切に私の呼び出しの間の違いを教えてくださいすることができます
sh b.sh
としてb.sh起動します。
おかげで、 LinuxPenseur
最初の方法:
sh b.sh
はサブシェルを作成し、サブシェル内b.sh実行されます。したがって、
. ./b.sh
源b.shと:この方法でそれをやっての結果の一つは、あなたが
第二の方法をa.shに戻ったときにb.shで設定された環境変数は、単に消えるということですb.shで設定された環境変数は、b.shが戻るときにa.shに残っています。
第2の方法は「ソース」と呼ばれ、スクリプトをプルして同じシェルで実行します。
これは2つの理由から実行されます。スピードで、2番目のスクリプトは最初のスクリプトで環境変数を設定できます。通常、スクリプトやプログラムを実行しているときは、呼び出し元の環境を変更することはできません。
ソーシングは、フォークを必要とせず、別のシェルプロセスを開始するため、高速です。これは、いくつかのシステムでは/ etc/init/rcスクリプトのようなもので使用されていますが、パフォーマンスの違いはおそらくほとんどの場合重要ではありません。また、スクリプトをソースにするときにシグナル処理に関係するいくつかの微妙な点もあります。
ありがとうblueshift –
パーフェクト..thanks ennuikiller :) –