是否有相当于“shopt -s nullglob”的 ZSH?

5 macos shell zsh

我目前正在编写一个脚本,该脚本可以从我的桌面上删除所有 PNG 文件。我想创建一组文件路径,然后rm对每个文件路径使用该命令。

这是相关的代码:

#!/usr/bin/env bash

shopt -s nullglob

files=("$HOME"/Desktop/*.png)
files_found="${#files[@]}"

shopt -u nullglob
Run Code Online (Sandbox Code Playgroud)

建议我shopt在没有匹配文件的情况下使用。

然而我在 MacOS 上,刚刚发现它shopt不适用于 ZSH。当我运行脚本时,我得到了command not found: shopt.

我发现 ZSH 有一个等效的名称setopt,但是在阅读文档后,我无法完全弄清楚哪个选项是在这种情况下使用的正确选项。我似乎也找不到任何例子。

有人能指出我正确的方向吗?

che*_*ner 5

中对应的选项zshCSH_NULL_GLOB(记录在man zshoptions).b

 setopt CSH_NULL_GLOB
Run Code Online (Sandbox Code Playgroud)

(据我所知,模式消失而不是按字面意思对待的想法来自csh。)