2013-12-10 9 views
7
私は他の誰かが書いたスクリプト、 test.shを、使用

は、バッシュシェバングで始まります:私はTEST=hey ./test.shを実行する場合バッシュシェバングオプション-l

  • 、私は私の.bash_profile
  • TEST: hophopは変数TESTの値で見ることができ、これはI 01場合と同じですスクリプト
  • を実行する前にが、私は

を期待しているだろうと私は、同じコマンド返します、TEST: hey-lフラグを削除する場合誰かが、この動作を説明していただけますか? bashの助けが...助けなかった。

答えて

15

man pageによる)-lオプションは、 "bashがログインシェルとして呼び出されたかのように動作する"ようにします。ログインシェルは、ホームディレクトリから特定の初期化ファイル(例えば、.bash_profile)を読み取ります。 .bash_profileTESTの値を設定したので、bashが起動したときにコマンドラインで設定した値が無効になります。

+0

ありがとうございます! – Emmanuel