コピーサブシェルに環境伝播するので、この作品の:
$ export MY_VAR=200
$ bash
$ echo $MY_VAR
200
しかし、それはコピーなので、少なくとも環境を変更することによってではなく、親シェルまでその値を取得することはできません。
Gnomeターミナルの新しいタブのように、親とは別に開始される「兄弟」シェルによって共有されるグローバル変数のように動作するものを作成するために、実際にさらに先に進みたいようです。
ほとんどの場合、答えは「できません。環境変数がそのように機能しないためです」。ただし、別の答えがあります。それは、何かをいつでもハックできるということです。1つのアプローチは、変数の値をのようなファイルに書き込み、~/.myvar
それをに含めることです~/.bashrc
。その後、各新しいシェルは、そのファイルから読み取られた値で開始されます。
さらに一歩進ん~/.myvar
で、makeをformat MYVAR=200
にしてからset PROMPT_COMMAND=source ~/.myvar
にすると、新しいプロンプトが表示されるたびに値が再読み取りされます。それはまだありませんかなり共有グローバル変数が、それのように行動し始めています。ただし、プロンプトが戻るまでアクティブになりません。これは、何をしようとしているかによって深刻な制限になる場合があります。
そして、もちろん、次のことはに自動的に変更を書き込むこと~/.myvar
です。それはもう少し複雑になりますが、実際のところ、環境変数はシェル間通信メカニズムを意図したものではなく、別の方法を見つけた方がよいため、この時点で停止します。