web-dev-qa-db-ja.com

Linuxで環境変数が何も返さないのはなぜですか?

ウィンドウで新しい変数=値を設定するには、環境変数に追加するだけです。ただし、Linuxでは少し難しいように見えます。これは私が従った手順です:

ターミナルを開いて次のように書きます:

vim ~/.bashrc  

次に、キーボードの「i」を押して、変数を次のように定義します。

Test_MyVariable='Tessst'
export Test_MyVariable
PATH=$PATH:Test_MyVariable/bin

次に:wq

$ echoの後に変数が表示されます。

echo $Test_MyVariable 

そしてそれは返します:

テスト

しかし、私の崇高なTextではNoneを返します。

import os
new_v= os.environ.get('Test_MyVariable')
print(new_v)

None

利用可能なすべてのos.environもチェックしましたが、Test_MyVariableが見つかりません。さらに、~/.bash_profile~/.profileも試して変数を追加しましたが、結果は同じです。私が間違っていることを教えてもらえますか?

1
ElisaFo

~/.bashrcで変数を定義すると、~/.bashrcが "ソース"(読み取り)されるとすぐにその変数が存在します。これは、新しいシェルを起動したとき(たとえば、新しいターミナルを開いたとき)にのみ発生します。

したがって、.bashrcファイルに新しい行を追加する場合は、新しいターミナルを開いて、pythonスクリプトを実行する必要があります。または、source ~/.bashrc現在のシェルにそれを調達します。

今、あなたは崇高なことについて言及していますが、それが関連している理由を本当に説明していないので、pythonスクリプトを何らかの方法で崇高なエディター内で実行していると想定します。おそらく、シェルエミュレーターのようなものがあります。その場合、変数を定義する方法と場所の詳細は、崇高なものがそのシェルを設定する方法に依存します。以下を試してください。

  1. 崇高なウィンドウを閉じてからもう一度開き、.bashrcを読み直しているかどうかを確認してください。

  2. Sublimeは.bashrcをまったく読むことができませんでした。 GUIボタンから崇高なものを実行している場合は、変数を再読み取りする前に、ログアウトして再度ログインする必要があります。

  3. 新しいターミナルを開いてsublime(またはコマンドラインから崇高なものを起動するためのコマンド名は何でも)を実行してみてください。それで変数は見えますか?

3
terdon