我很想知道如何选择正确的环境变量。如何确定设置哪个环境变量可以完成工作
例子:
如果你想确保命令历史记录始终立即写入,你可以将该命令放入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
。那里有环境变量列表。没有天赋,只有练习。并且要多读手册。