我的CLI应用程序中包含以下路由:
system
system *
system info
system info *
system settings
system settings *
system tunables
system tunables *
system logging
system logging *
system logging settings
system logging settings *
并想要这样的行为:
system
命令 - > exec system
handler 如果输入system ANYTHING_BUT_CONFIGURED_ROUTES
命令 - > exec system *
处理程序,除了ANYTHING_BUT_CONFIGURED_ROUTES
以外的任何其他内容:
信息 设置 可调参数 登录
问题与执行顺序相关app.cmd()
:
如果我按照与上述相反的顺序注册路由,则处理程序正确执行
如果我按照与上述相同的顺序注册路线,如果我执行system info
,则会触发system *
的处理程序,而不是system info
。
有关如何克服这个问题的任何建议吗?
我目前通过循环和构建一个反向数组然后再次循环来解决这个问题,但这需要花费大量时间来处理一个简单的CLI应用程序,这很麻烦,所以我正在寻找一个不同的溶液
答案 0 :(得分:0)
不知道你使用的模块,问题是有道理的,它首先找到匹配,而不是最具体......但你不必完全重新安排你的列表,只需将通配符放在后面具体条目如下:
system
system info
system info *
system settings
system settings *
system tunables
system tunables *
system logging
system logging settings
system logging settings *
system logging *
system *