有没有一种简单的方法来获取不以连字符开头的所有参数的数组?

kjo*_*kjo 4 zsh options

Zsh 包含一个强大的实用程序,用于解析命令行选项zparseopts.
有没有一种简单的方法来提取所有不以连字符开头的命令行参数的数组?

Gil*_*il' 6

$@使用参数扩展后缀 过滤位置参数以:#-*去除与模式匹配的元素,双引号内-*参数扩展标志 @以保留空元素。添加M标志以仅保留与模式匹配的元素。

non_hyphen_arguments=("${(@)@:#-*}")
hyphen_arguments=("${(@M)@:#-*}")
Run Code Online (Sandbox Code Playgroud)

然而,这不是解析命令行参数的好方法;例如,给定

myscript hello -a world
Run Code Online (Sandbox Code Playgroud)

你会得到helloworldnon_hyphen_arguments-ahyphen_arguments

带有单字母选项的更简单的参数解析形式是getopts.