有没有办法在precmd
zsh 的函数中设置变量,然后在提示符中回显它们?
就像是
function precmd {
GREETING='Hi Kevin!';
}
PROMPT="$GREETING";
答案1
把这个放在你的.zshrc
:
setopt prompt_subst
PROMPT='$GREETING'
然后$PROMPT
每次显示时都会经历参数扩展(以及它的兄弟命令替换和算术扩展)。请注意正确引用从外部来源包含的任何内容。另请注意,扩展的结果$
将进行%
扩展(即提示转义序列可以出现在 中$GREETING
)。
另一种方法是在 中重置PROMPT
变量本身precmd
,但这使得在特定 shell 实例中自定义提示变得更加困难。
答案2
好吧,我发现问题了。这是双引号。
如果我用单引号代替
PROMPT='$(kubectl config current-context)'
或者,如果我逃离美元
PROMPT="\$(kubectl config current-context)"
然后就可以了。