Haskell的
cmdArgs package提供了命令选项解析.
基于来自文档http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Explicit.html#g:4及其来源http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/src/System-Console-CmdArgs-Explicit-Complete.html#Complete的此页面
它似乎能够支持bash完成,但我无法使用解析器的隐式版本. http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Implicit.html
有没有人有这样做的例子?
编辑添加了更好的示例
如果我有这个程序
{-# LANGUAGE DeriveDataTypeable #-} import System.Console.CmdArgs data Sample = Sample {hello :: String} deriving (Show,Data,Typeable) sample = Sample{hello = def} main = print =<< cmdArgs sample
与解析以下选项
The sample program sample [OPTIONS] Common flags: -h --hello=ITEM -? --help Display help message -V --version Print version information
如何使用cmdArgs的bash完成功能?
要使用bash完成,请将上述程序编译为样本,将样本放在$PATH上然后运行:
原文链接:https://www.f2er.com/bash/383445.htmlsample --help=bash > sample.comp source sample.comp
您现在可以输入样本–ver,按Tab键,它将完成样本–version.
完成时有一些不足之处,特别是程序必须在你的$PATH上,如果你在Windows上,你需要通过dos2unix运行sample.comp.它也完全没有文档,应该由程序包作者修复.