如何动态地将环境变量添加到zsh提示符?

时间:2017-06-07 18:47:44

标签: bash shell

编辑:原标题说“bash提示”,但我使用“zsh”。我接受了@Artur R. Czechowski的答案,因为它在bash环境中是正确的,我能够在他的帮助下完成我的工作。 PROMPT现在是' ${ENV}${ENV:+ } %F{249}${PWD/#$HOME/~} %{$fg[green]%}'○' ',只需添加关于ENV的内容即可。

ORIGINAL POST:作为我工作的一部分,我经常更改环境变量。经常这样我觉得我将不可避免地忘记我所在的那个并做一些我不应该做的事情。如果它与您回答我的问题相关,我通过运行shell脚本来更改环境,并且我当前的bash提示符为PROMPT=' %F{249}${PWD/#$HOME/~} %{$fg[green]%}'○' '

如果我在虚拟环境中,例如venv,那么我的提示会以(.venv)开头。如何使用DB_HOST或我想要的任何变量等环境变量获得类似的东西?如果DB_HOST发生变化,我希望bash提示立即更改并保持不变。

1 个答案:

答案 0 :(得分:1)

PROMPT_COMMAND是你的答案。例如:

myprompt() {
    PS1="${DB_HOST}${DB_HOST:+ }\u@\h:\w\$ "
}

PROMPT_COMMAND=myprompt

它将始终显示DB_HOST变量的当前值。