Eli*_*aFo 2 vim command-line bash environment-variables linux-headers
在 windows 中设置一个新的变量 = value 我们可以简单地将它添加到环境变量中。但是,在 linux 中,看起来有点难。这是我遵循的程序:
打开终端并写入:
vim ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
然后按键盘“i”,然后定义变量如下:
Test_MyVariable='Tessst'
export Test_MyVariable
PATH=$PATH:Test_MyVariable/bin
Run Code Online (Sandbox Code Playgroud)
然后 :wq
在 $echo 之后我看到了变量:
echo $Test_MyVariable
Run Code Online (Sandbox Code Playgroud)
它返回:
测试
但在我的崇高文本中,它返回无。
import os
new_v= os.environ.get('Test_MyVariable')
print(new_v)
Run Code Online (Sandbox Code Playgroud)
没有任何
我什至检查了所有可用的 os.environ 但我找不到我的Test_MyVariable. 此外,我还尝试使用~/.bash_profile和~/.profile并为它们添加变量,但结果相同。请告诉我我做错了什么?
当您在 中定义变量时~/.bashrc,该变量将在~/.bashrc“来源”(读取)后立即出现。这仅在您启动新外壳时发生(例如,当您打开新终端时)。
因此,如果您将新行添加到您的.bashrc文件中,您将需要打开一个新终端并在那里运行您的 python 脚本。或者,您可以运行source ~/.bashrc以将其输入到当前 shell 中。
现在,您提到了 sublime,但并没有真正解释为什么这是相关的,所以我假设您正在以某种方式在 sublime 编辑器中运行您的 python 脚本。据推测,它有某种外壳模拟器。如果是这种情况,那么如何以及在哪里定义变量的细节将取决于 sublime 如何设置它的 shell。请尝试以下操作:
只需关闭 sublime 窗口,然后再次打开它,看看它现在是否重新读取了您的.bashrc.
Sublime 很可能根本无法阅读.bashrc。如果您从某个 GUI 按钮运行 sublime,您可能需要注销并重新登录,然后才能重新读取变量。
尝试打开一个新终端并运行sublime(或从命令行启动 sublime 的任何命令名称)。那么它会看到变量吗?