首页 > 解决方案 > zsh 数组分配和无匹配错误

问题描述

zsh 版本 5.2

我正在尝试使用文件名生成进行数组分配,如下所示:

文件=(/some/path/*/dir/myfile)

实际上,这是 zshoptions 手册建议实现我想要的方式。

当不存在匹配项时,我希望数组为空。相反,它正在生产

未找到匹配项:/some/path/*/dir/file

脚本终止。

我尝试设置 NULL_GLOB、CSH_NULL_GLOB 并确保未设置 NOMATCH。

当匹配确实存在时,它会按预期工作。

任何帮助表示赞赏。

先感谢您,

韦恩

标签: zsh

解决方案


当然,我在发布我的问题后找到了解决方案。

为此,需要设置 EXTENDED_GLOB 以及 NULL_GLOB。或者可以使用 glob 限定符,以便 NULL_GLOB 仅影响此特定扩展。

这是为单个操作设置 NULL_GLOB 的方法:

文件=(/some/path/*/dir/myfile(N))

希望可以帮助遇到这种情况的其他人。

韦恩


推荐阅读