【发布时间】:2019-01-23 10:54:09
【问题描述】:
我想在我的 shell 中添加一些辅助命令。我想添加几个命令,它们需要在它们之间共享一些信息。但是,由于我希望每个 shell 具有不同的状态,因此我不能使用文件来存储共享信息,而必须使用环境变量。
这带来了设置环境变量的问题:要在我的 shell 而不仅仅是在子进程中更改变量,我需要将我的命令放在脚本中并始终获取脚本,或者将它们定义为函数并获取通过.bashrc 提交文件。
我还定义了一些辅助函数,这些函数被我的几个命令使用,我不希望它们包含在我的主 shell 进程的范围内。
我对 bash 有点缺乏经验,所以我的问题是: 实现这一点的最干净的方法是什么?我应该将命令放入脚本还是函数中?我可以防止我的辅助功能被引入主 shell 吗?有没有更简单的方法来操作环境变量?
【问题讨论】:
-
作为一个想法,您可以也将它们存储在名称中包含 shell PID 的文件中。在不了解您的用例的情况下,不要说它是好是坏。
-
您得到的答案很糟糕,因为您的问题措辞不当。您“对 bash 缺乏经验”似乎是您的问题中最少的一个。您是否了解环境变量是由子进程继承的,但这些进程不能不修改其父进程的环境变量?
-
@KurtisRader 是的,我明白,这是我的问题的一部分。但主要问题是我正在尝试做一些 bash 不应该做的事情,我认为。
标签: bash shell environment-variables