You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在支持嵌套子命令的类Makefile Shell工具?

类似Cobra的Shell环境子命令工具推荐

如果你想要在Shell环境里实现像Cobra那样的嵌套子命令功能,不用依赖Go生态,这几个工具绝对能满足你的需求:

1. Bashly

Bashly是我非常推荐的工具,它用YAML配置文件来定义你的CLI结构(包括嵌套子命令、参数、帮助信息等),然后自动生成纯Bash脚本——完全不需要额外依赖,直接在Shell里运行。

比如针对你想要的clean rpc、clean api和run命令,你可以写这样的YAML配置片段:

name: mytool
help: "My custom tool with nested subcommands"
version: "0.1.0"

commands:
  - name: clean
    help: "Clean up resources"
    commands:
      - name: rpc
        help: "Clean RPC files"
        run: |
          rm -rf ./rpc
      - name: api
        help: "Clean API files"
        run: |
          rm -rf ./api
  - name: run
    help: "Run the service"
    run: |
      ./mytool clean rpc
      # 这里可以添加其他运行逻辑

然后用bashly generate就能生成可执行的mytool脚本,直接执行./mytool clean rpc或者./mytool run就搞定了,完全符合你想要的嵌套子命令逻辑。

2. Argbash

Argbash是另一个纯Shell的工具,它通过模板文件来定义命令和子命令,生成的脚本兼容性很好(支持大多数Bash版本)。你可以在模板里声明嵌套子命令、位置参数、选项等,然后用argbash工具生成最终的Shell脚本。

比如你可以定义一个模板,把clean作为主命令的子命令,再给clean添加rpc和api两个子命令,生成后就能直接在Shell里调用./mytool clean rpc这样的嵌套命令。它的优势是生成的脚本没有任何外部依赖,非常轻量。

3. Docopts

Docopts是基于“文档即规范”的理念,你只需要写好CLI的帮助文档(符合POSIX风格),它就能自动解析命令行参数,包括嵌套子命令。Shell版本的docopts可以直接嵌入你的脚本里,帮你处理子命令的解析逻辑。虽然它的学习曲线稍微有点陡,但灵活性很高,适合复杂的CLI场景。

这些工具都能帮你在Shell环境里实现类似Cobra的嵌套子命令功能,不用跳出Shell生态,完全满足你替代Make实现复杂命令逻辑的需求。

内容的提问来源于stack exchange,提问作者wymli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 14:42:36