如何有效地使用环境变量?

如何有效地使用环境变量?

我很想知道如何选择正确的环境变量。如何确定设置哪个环境变量可以完成工作

例子:

如果你想确保命令历史记录始终立即写入,你可以将该命令放入PROMPT_COMMAND变量中(好奇心因这个解决方案而产生):

export PROMPT_COMMAND='history -a'

这就是我的困境:我是如何被PROMPT_COMMAND选中来完成这项工作的。我如何获得这种才能?

答案1

如果您将bash其用作默认 shell,那么您确实可以设置PROMPT_COMMAND

您通常会在命令的手册页中找到提示或详细指南(在线bash手册页)或者输入man bash例如:

PROMPT_COMMAND
If set, the value is executed as a command prior to issuing each primary prompt.

不久前我确实提出了使用这个环境变量的另一种解决方案:在每个 shell 命令末尾添加后缀

对于想要学习和了解更多 Linux 知识的人来说,Ask Ubuntu 是一个金矿。

答案2

读取man page您尝试使用环境变量影响的程序的。因为PROMPT_COMMAND它是man bash。由于程序通常使用所有大写环境变量,并且环境变量作为字符串传递给程序(在数组中env,与argv数组一起)并按名称访问,因此您可以通过以下方式生成一个列表,其中包括程序查看的所有环境变量(更改bash为您感兴趣的程序):

strings $(type -p bash) | egrep '^[A-Z0-9]+$'

或者$(type -p bash)用二进制文件的实际路径替换。

用户对环境变量的设置通常在 中~/.bashrc或在 调用的文件中完成~/.bashrc,如下所示:

export LESS="-XMersj3"

这设置了我的默认选项less(参见man less)。

更改后~/.bashrc,您必须通过 来获取文件,. ~/.bashrc以便使用更新的定义填充您的环境。注销/登录也会重新获取~/.bashrc,但如果您破坏了~/.bashrc,则可能无法登录。

答案3

如何选择 PROMPT_COMMAND 来完成工作

PROMPT_COMMAND是 特有的变量之一bash,它在屏幕上打印提示之前将其值作为命令运行$PS1。默认情况下,它未设置。

如何确定设置哪个环境变量可以完成工作

bash通过阅读终端中的手册页man bash。那里有环境变量列表。没有天赋,只有练习。并且要多读手册。

相关内容