首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Linux中添加一个可以被其他进程使用的环境变量?

如何在Linux中添加一个可以被其他进程使用的环境变量?
EN

Stack Overflow用户
提问于 2017-11-19 14:55:15
回答 1查看 87关注 0票数 0

在像KDE这样的图形化DE中,可以使用什么命令来添加可供任何其他进程使用的新环境变量?

注意:

1)我知道export A=B,但它只适用于在执行export的同一shell中启动的后续进程,否则启动的进程,如Chrome等图形应用程序,将不会知道导出。

2)我也知道您可以将其放入~/.bash_profile或类似的文件中,但这需要重新启动/重新登录才能使设置生效。

有没有像export这样的东西,但对所有应用程序都有效,并且不需要大量的重启?

EN

Stack Overflow用户

发布于 2017-11-19 15:01:13

您认为在~/.bash_profile中放置变量定义(无论是通过export语句还是其他方式)后需要重新启动的假设是有缺陷的。修改后,只需再次source文件即可:

代码语言:javascript
运行
复制
source ~/.bash_profile

或者更便携的版本:

代码语言:javascript
运行
复制
. ~/.bash_profile

这两条语句都会(重新)将该文件中的任何定义加载到当前shell中。寻源与执行脚本不同:它将修改调用shell本身中的环境,而不是运行脚本的子shell。

~/.bash_profile这样的文件中可能有许多其他的定义和设置,这些定义和设置会扰乱shell。更好的做法是创建一个小的(临时)代码片段,只包含您想要的变量,并将其作为源代码,如@JeremiahMegel所建议的那样。

如果要更改从命令行运行的单个进程的环境,可以在同一命令行上设置变量:

代码语言:javascript
运行
复制
VAR=value /usr/bin/gedit

这将在环境变量VAR设置为value的情况下运行gedit,但仅针对该一个子进程。

不幸的是,您的桌面应用程序比这更静态。您在菜单中看到的大多数图形应用程序可能会由/usr/share/applications等文件夹中的.desktop文件表示。这些文件在一个几乎没有您所期望的变量的环境中运行。它们依赖于绝对路径,并且大多数配置都是通过将.desktop文件指向执行其自身设置的脚本来完成的。如果绝对有必要的话,您可以单独修改其中的一些文件,但我不建议这样做。如果你坚持在你的桌面上摆弄图形应用程序,我建议你将你计划修改的桌面文件复制到~/.local/share/applications中,或者你系统上的任何等效文件。这些文件将覆盖在/usr/share/applications中找到的任何内容,并且只会影响您。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47374427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档