![某些情况下某些环境变量无法加载](https://linux22.com/image/1372057/%E6%9F%90%E4%BA%9B%E6%83%85%E5%86%B5%E4%B8%8B%E6%9F%90%E4%BA%9B%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E6%97%A0%E6%B3%95%E5%8A%A0%E8%BD%BD.png)
这真是太奇怪了。我在 .bashrc、.bash_profile、.profile、/etc/profile 和 /etc/profile.d/ 中设置了环境变量 TEST - 任何正常的计算机都可能在其中查找它:
TEST=successfull
export TEST
当我打开终端窗口时,输入“echo $TEST”或“env”就可以很好地显示这个变量的值。
但是,当我双击 .desktop 文件时,环境变量不存在。而且,奇怪的是,当我用包含以下内容的简单文件启动 geany 时
#!/bin/bash
env
echo $TEST
,然后按 F5 执行它,它会打开一个终端窗口 - 并且它不会显示 TEST 的值。如果我从任何终端窗口启动同一个文件 - 环境变量就会像预期的那样出现!
这让我很困扰,因为它不合逻辑,而且会阻止 steam 运行 - steam 需要变量 LD_LIBRARY_PATH。我在终端中输入“steam” - 一切都加载正常。但如果我双击任何 steam 图标 - 它只会使用一些参数执行“steam” - 什么也不会发生 - 因为它找不到它的 LD_LIBRARY_PATH。
我运行安装了所有更新的 Linux Mint LMDE。无论“gnome-terminal”还是“mate-terminal”充当 GUI 前端,都会出现同样的问题。
你能重现吗?如果能,错误在哪里?
答案1
您的桌面应用程序似乎没有继承您设置的变量。尝试将:export TEST=successfull
放入您的 ${HOME}/.xinitrc,然后重新启动 X,看看是否有效。
答案2
您必须将变量放入/etc/environment
。