![]() |
1
450
像这样的:
然后
或
|
![]() |
2
188
别再发明轮子了,看看鲁比的酷劲 OptionParser 图书馆。 它提供了标志/开关的解析,具有可选或必需值的参数,可以将参数列表解析为单个选项,并可以为您生成帮助。 另外,如果传入的任何信息都是静态的,在运行之间不会发生变化,请将其放入一个经过解析的YAML文件中。这样,您就可以在命令行中每次更改的内容,以及在代码之外偶尔更改的内容。数据和代码的分离对于维护是很好的。 下面是一些示例:
如果目标非常静态,这是一个示例YAML文件:
这样可以轻松生成YAML文件:
|
![]() |
3
26
不幸的是,Ruby不支持这样的传递机制,例如AWK:
这意味着您不能将命名值直接传递到脚本中。 使用命令选项可能会有帮助:
Ruby在
明显的缺点是依赖于值的顺序。
如果只需要布尔开关,请使用
请注意
缺点是,您会混淆全局变量,并且只有逻辑真/假值。 您可以从环境变量访问值:
这里的缺点是,必须在脚本调用之前设置所有变量(仅适用于您的ruby进程)或导出它们(BASH之类的shell):
在后一种情况下,您的数据对同一shell会话中的每个人和所有子进程都是可读的,这可能会严重影响安全性。 至少可以使用 getoptlong 和 optparse . 快乐黑客! |
![]() |
4
1
你也可以试试
查看示例文件夹,了解如何使用它。 |
![]() |
5
1
在命令行上运行此代码并输入N的值:
|
![]() |
6
1
除非这是最简单的情况,否则在Ruby中只有一种明智的方法可以使用命令行选项。它被称为 docopt 并记录在案 here . 令人惊奇的是,它很简单。 您只需指定命令的“帮助”文本。 你在那里写的东西会被 独立的 (!) 鲁比图书馆。 从 example :
输出:
享受吧! |
![]() |
7
0
你应该试试 console_runner 宝石。这个gem使您的纯Ruby代码可以从命令行执行。你只需要加上 YARD 代码注释:
然后从控制台运行:
|
|
pcsksa5 · 从AnyLogic内部调用命令行 1 年前 |
![]() |
w113msh · 提取未设置脚本的变量名 1 年前 |
![]() |
FangQ · 如何使用jq打印由制表符“\t”分隔的JSON数组元素 1 年前 |
![]() |
js0110 · 这个问题的输出和推理是否正确? 2 年前 |