我想使用在我的 zsh shell 中设置的变量的值来显示在我的提示行中。
例如,假设export TOKEN='hello'
在我的会话中设置了。那时,我加载了包含 的提示"$TOKEN"
。
这工作正常,提示也正确显示。但是,如果我更改 TOKEN 的值,提示不会更新。
每次执行命令后,如何让 zsh 更新我的提示?
答案1
有几种方法可以做到这一点。您应该查看precmd
和preexec
函数。它们位于hook functions
(zshmisc
您可以阅读在线的或使用man zshmisc
。
一个简单的解决方案就是阅读这个 unix.stackexchange.com问题,它说把这个放到你的~/.zshrc
文件中:
setopt prompt_subst
PROMPT='$TOKEN'
这将完成你想要的:
┌─(simont@charmander:s000)─────────────────────────────────────▸▸▸▸▸▸▸▸▸▸─(~ )─┐
└─(12:44)── export GREETING="foo" ──(Wed,Dec12)─┘
foo ┌─(simont@charmander:s000)─────────────────────────────────▸▸▸▸▸▸▸▸▸▸─(~ )─┐
└─(12:44)── export GREETING="bar" ──(Wed,Dec12)─┘
bar ┌─(simont@charmander:s000)─────────────────────────────────▸▸▸▸▸▸▸▸▸▸─(~ )─┐
└─(12:44)──
(这稍微弄乱了我的提示,但您可以看到foo
和bar
正常显示,并在$GREETING
更改时进行更新。在您的情况下,使用$TOKEN
)。
我的提示沉重借用Phil! 的 ZSH 提示符,当我学习定制我自己的时,我发现它非常有用。