[[ ... ]] 中的 ZSH 扩展变量不执行通配

ZSH expanded variables in [[ ... ]] do not perform globbing

我在 .zshrc 中设置了 extended_glob

这按预期工作:

[[ "value" = [a-z]* ]] && echo "globbed"

打印“globbed”。

但这不是:

foo=[a-z]*
[[ "value" = $foo ]] && echo "globbed"

不打印任何内容。
为什么会这样?我需要在 .zshrc 中设置什么才能使其正常运行?

您可以使用

foo='[a-z]*'
[[ "value" == $~foo ]] && echo "globbed"

$~foo 表示法允许在 zsh 中通配。