Thi*_*ter 2 bash environment-variables
我正在使用以下代码来获得一个很好的提示(包括 git 信息等):
function set_prompt {
# magic happens in here ;)
}
export PROMPT_COMMAND='set_prompt'
Run Code Online (Sandbox Code Playgroud)
但是,有时在使用某些在内部大量使用 bash 的程序后,我会收到以下警告:
bash:set_prompt:找不到命令
一个很好的例子是 Gentoo 的包管理器emerge
,它在错误存在时显示错误。这没什么大不了的 - 只是看起来很丑,不会破坏任何东西。但无论如何我都想摆脱它。
我认为这是因为PROMPT_COMMAND
环境变量是由emerge 的 shell 继承的,但函数不是。
有没有办法使PROMPT_COMMAND
变量不可继承?或者另一种方法来避免这个烦人的问题?
不要导出PROMPT_COMMAND
到环境中。环境适用于对所有程序都有意义的变量。但PROMPT_COMMAND
仅在 bash 中有用,因此将其保留为 shell 变量。让 bash 的后代实例继承它也没有任何意义:PROMPT_COMMAND
仅在 bash 的交互式实例中有用,而且它们都可以阅读.bashrc
。
PROMPT_COMMAND='set_prompt'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
825 次 |
最近记录: |