问题标签 [subcommand]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
command-line-arguments - Picocli:如何使子命令成为必需
我有一个带有子命令的命令。在我的应用程序中,我希望用户必须指定子命令。我该怎么做?
python - 子解析器选项的默认值(Python argparse)
我的程序boiler
用于argparse
解析命令行选项和子解析器chain
(实际上,我将添加更多子命令)。它应该-t
为主选项解析器和子解析器选择选项。
例子:
相当于
子命令解析器的选项覆盖全局选项。例如:
相当于
用 Python 编写代码最优雅的方法是什么argparse
?
我真正要做的事情是在这个答案中描述:https ://stackoverflow.com/a/53750697/856090的问题Chaining in a command line several transformations with options。请注意,上述内容并不完全是我所需要的,但我需要解析其中描述的子命令管道(其中一些子命令可能采用-t
选项和其他可能具有全局默认值的选项)。
我真正需要的示例:
这里用 URL2 分隔的两个链中的第一个链+
使用 URL2,第二个使用 URL1。
python - 使用子解析器时,命令行参数被默认值覆盖
我有一个带有子命令的程序,但它们都有共同的参数(例如,它们都需要输入和输出目录),我将它们包含在父解析器中以避免冗余。但是,我希望每个子命令具有不同的默认值,但这会导致命令行中提供的值被忽略。
MWE:
这给出了:
但我想要:
我可以通过分别向每个子解析器添加参数来规避这种情况,但如果可能的话,我想避免这种冗余。
python-3.x - 使用 cmd 模块:如何在“帮助”中记录子命令并与自动完成功能集成?
我正在使用该cmd
模块并有一个名为server
(method do_server()
) 的命令,它具有开箱即用的自动完成功能(我在 macOS 上)。这一切都很好,并且按预期工作。但是,如果我还想在命令上另外使用子server
命令,事情就不会像我需要的那样工作。
我需要以下内容:
- 子命令还应与help
命令集成(输入时不应显示,help
因为它们不是一级命令,但应在输入时显示help server
)
- 子命令还应与自动完成集成
目前我没有看到一种方法来定义开箱即用的子命令。我需要将它们作为不理想的命令的参数来实现。
我的问题是,我怎样才能实现子命令的自动文档help
并具有自动完成功能,以便它尽可能好地集成cmd
?
对于这个例子,我想更好地集成connect
为一个子命令:
我希望有这样的东西:
不幸的是,这是不可能的。
python - 带有子命令的命令和子命令请求的 argparse 解决方案
希望这将转化为一个优雅的解决方案,但我自己无法弄清楚。我一直在阅读大量的例子和解释,但我似乎无法让它发挥作用。
我正在编写一个需要以下选项的程序:
如果使用命令,则需要一些子命令或选项。
我很难使用 argparse 库来完成这项工作。我尝试使用 add_argument_group、subparsers 等。但我认为我在这里缺少一些基本的东西。我发现接近的所有示例都是关于 svn,但它们似乎只在 svn 之后上升了 1 级。我需要更多,或者不同的方法。
如果可能的话,我想让dbquery deploy list之后的所有参数都是可选的,至少需要 1 个选项。但是区分系统名称和环境名称可能会变得很棘手,因此最好更改它:
进入
ps [] 之间的选项是可选的,<> 之间的选项是必需的。
提前致谢。
作为对提供我的代码的评论的回应,让我们关注 dbquery,因为其余的可能是重复的:
执行结果:
这看起来不错,但是:
表明预期的参数不是锁定、提升或部署。
好的,反馈有助于我的理解。我现在明白解析器可以得到子解析器,而那些可以得到解析器。因此,一个人可以走的深度可能没有限制。这个新见解让我明白了这一点:(来自我的工作示例的部分副本)
我现在似乎只在不同子命令中使用参数作为“-env”和“-subsystem”时遇到问题。因为当我将它们添加到另一个解析器时存在冲突。我也没有关于选择哪些选项的数据。这也是需要的。
python - 如何有一个特定的子命令需要带有 argparse 的标志?
所以我正在编写一个使用argparse来传递信息和处理输入的 python 脚本。我一直在使用子命令来强制/使用程序中的不同操作。到目前为止,我的脚本格式如下:
指定用法的地方:
用法:test.py [-h] {create,update} ...
位置参数:{创建,更新}
可选参数:-h, --help 显示此帮助信息并退出
我的问题是,虽然update
命令工作正常,但我需要传递一个 ID,但我create
有一个错误/问题,它抱怨没有设置标志/传递一个,即使它不是必需的/不需要的。
我在这里做错了什么,我该如何解决?我试过谷歌,但我似乎无法理解问题/如何解决它。
python - 如何将 arg 从命令传递到子命令 Discord py
假设我有以下命令和子命令:
我希望父命令将名称或 id 转换为对象,然后将该对象传递给 subcommands。有没有办法做到这一点?像ctx.invoked_subcommand.pass(channel_object)
什么?
python - 子命令和默认值的 Python argparse 顺序
我已经为此苦苦挣扎了很长时间,所以我想为另一个命令执行子命令,该命令将忽略与 相反的顺序subparsers = parser.add_subparsers()
,因为子解析器可以在参数末尾或单独执行时执行。
例如 test.py 正在通过 SSH 连接到设备并执行一些命令,我可以在终端中看到输出,但我想将其保存为 filename_test_1 (默认名称为command_output
)为 .txt 或 .csv (默认格式是txt
)。
我希望我能--save
以各种可能的方式进行(例如,仅在 -->之后保留-n
and-f
执行):--save
error: argument -f/--format: can't be used before --save
我基于此代码,但无法将其重写为我自己的需要。问题之一--save
是不是store_true
争论:
也许有一个简单的方法?我也想保持“好”的格式--help
注意:我想使用基本库,所以我将继续使用 argparse :v
go - 你如何安装子命令?
我在 Go v. 1.15.8 darwin/amd64 中收到以下错误消息
main.go 中的代码如下所示:
我知道子命令位于:https ://github.com/google/subcommands 与 git repo 在这里:https ://github.com/google/subcommands.git
但是我该如何安装呢?
当我做:
我收到以下错误消息:
当我打开我的网络浏览器并转到:https ://github.com/google/subcommands/我可以看到没有问题的网页。那么为什么“go get”命令会遇到问题呢?
我究竟做错了什么?
shell - 在不同的目录中执行子命令作为鱼中的当前命令?
我想从与当前目录不同的目录中移动文件。这是我想到的解决方案:
mv (cd ~/Downloads; ls -t | head -1 | xargs -I {} readlink -f {}) ./
可能有更好的方法,但在此过程中,我发现我对保留在子命令中的目录更改的期望是错误的:运行 cd 会更改mv
正在执行的目录。
那么,有没有办法只为当前子命令更改目录,而不影响顶部命令?