--with-PROG=
我想为一个接受和--PROG-options
作为可选参数的程序编写完成。PROG
可能是不同的程序之一。有许多不同的程序,所以我想避免手动为每个程序写出一个选项。我确实尝试了以下方法:
#compdef hello
typeset -A opt_args
local context state line
_hello()
{
typeset -a PROGS
PROGS=('gcc' 'make')
_arguments \
'--with-'${^PROGS}'[path to PROG]:executable:_files' \
'--'${^PROGS}'-options[PROG options]:string:'
}
输出:
$ hello --gcc-options
--make-options --gcc-options -- PROG options
--with-make --with-gcc -- path to PROG
但是,我希望将每个单独的选项放在单独的行上,并替换PROG
为程序名称。最好的方法是什么?