在 ZSH precmd 中设置变量并在提示符中引用它们

在 ZSH precmd 中设置变量并在提示符中引用它们

有没有办法在precmdzsh 的函数中设置变量,然后在提示符中回显它们?

就像是

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)"

然后就可以了。

相关内容