使用 Argc 轻松处理 sh/bash 命令行参数

2022-03-04 09:06:14 +08:00
 sigoden

使用 Argc 编写命令行程序,我们只需要做两件事情:

  1. 在注释中描述我们需要的选项,参数,子命令
  2. 调用如下命令委托 Argc 替我们处理命令行参数
eval "(argc -e $0 "$@")"

Argc 会为我们做如下工作:

  1. 从注释中提取参数定义
  2. 解析命令行参数
  3. 如果参数有异常,输出错误文本或帮助信息
  4. 如果一切正常,输出解析好的参数变量
  5. 如果有子命令,调用子命令函数

我们可以很轻松地通过变量 $argc_<选项名 /参数名> 访问对应选项或参数。

项目地址: https://github.com/sigoden/argc

1675 次点击
所在节点    分享创造
4 条回复
Buges
2022-03-04 14:00:24 +08:00
这个不错啊,写 shell 脚本解析复杂的参数总是很蛋疼,就缺一个类似 clap 的库。
不过这个本身不是用 shell 写的,所以只能自用,没法用在发布的脚本里面。
kingddc314
2022-03-04 15:25:37 +08:00
看着很好用👍🏻
xiaket
2022-03-05 08:29:48 +08:00
我理解你在这儿为什么要 eval, 但是我自己不太会为了命令行参数这样的需求而去做 eval.
sigoden
2022-03-05 09:00:17 +08:00
@xiaket 如果 argc 是恶意软件,那么在调用时它就可以干坏事了,不需要在 eval 中再去干。不信任的软件有没有 eval 都不应该用它。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/837845

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX