为什么我的变量可以通过 echo 获得,但不能通过 printenv 获得?

为什么我的变量可以通过 echo 获得,但不能通过 printenv 获得?

第一次安装 powerlevel10k 时,通常会遵循互联网上提供的指南,并将存储库克隆到 oh-my-zsh 的文件夹中:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

现在,如果我echo $ZSH_CUSTOM会得到/home/myuser/.oh-my-zsh/custom预期的结果,但printenv根本不会列出它。这是为什么?

答案1

变量中的:-告诉 bash(或 zsh)使用 后面的内容-作为默认值。如果ZSH_CUSTOM不在您的环境变量中(它没有显示在 中printenv),它将默认为$HOME/.oh-my-zsh/custom.

你可以自己尝试一下:

echo ${MY_VARIABLE}
# prints an empty line
echo ${MY_VARIABLE:-a default value}
# prints: a default value

相关内容