变量 fg_bold 似乎没有在 zsh 脚本中定义,怎么会?(哦-我的-sh)

Jam*_*its 2 zsh oh-my-zsh

过去几个月我一直在使用 oh-my-sh,天哪,我喜欢它:),我注意到有一个颜色数组 fg_bold[],通过使用该数组,我们可以用颜色回显信息性消息。

例如: echo $fg_bold[yellow] “让我们让它工作吧!”

从终端执行这个工作就像一个魅力。

但似乎如果我打开一个全新的 zsh 脚本,然后复制并粘贴它,它就会失败($fg_bold[yellow] 是空的):

#!/usr/bin/zsh #取自 which zsh

echo $fg_bold[yellow] “让我们让它工作吧!”

添加 fg_bold 数组的更多内容不会同时出现在env和 中printenv。我在这里缺少什么?

谢谢你们

Sté*_*las 5

该变量是从colorsautoloadable 函数中提取的 。

您需要加载并运行该函数:

autoload colors
colors
Run Code Online (Sandbox Code Playgroud)

请注意,您还可以使用不需要该colors功能的提示扩展:

print -P %F{red}
Run Code Online (Sandbox Code Playgroud)

或者:

echo ${(%):-%F{red}}
Run Code Online (Sandbox Code Playgroud)

无论如何,这是一个关联数组shell变量,而不是可以或应该导出到环境中的东西。如果您想查看其声明,请使用typeset -p fg_bold(请注意,该变量具有-H(隐藏值)属性,因此typeset -p会显示值,您可以使用 删除该属性typeset +H fg_bold,或使用 来查看值typeset fg_bold)。