变量 fg_bold 似乎没有在 zsh 脚本中定义,这是怎么回事? (哦天哪)

变量 fg_bold 似乎没有在 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。我在这里缺少什么?

谢谢你们

答案1

该变量是从 colors自动加载函数中提取的。

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

autoload colors
colors

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

print -P %F{red}

或者:

echo ${(%):-%F{red}}

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

相关内容