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

如何在picocli中创建选择题式的命令行提示?

创建带选项提示的交互式CLI方案

以下是几种主流编程语言的实现方案,都能实现你需要的选项提示效果:

Node.js 实现(基于 Inquirer.js)

  • 安装依赖:
    npm install inquirer
    
  • 示例代码:
    const inquirer = require('inquirer');
    
    async function startCLI() {
      const { action } = await inquirer.prompt([
        {
          type: 'list',
          name: 'action',
          message: '请选择操作:',
          choices: ['创建新项目', '导出数据', '配置设置', '退出']
        }
      ]);
    
      console.log(`你选择了: ${action}`);
      // 这里添加对应操作的业务逻辑
    }
    
    startCLI();
    
    运行后会出现可通过上下箭头选择的选项列表,回车即可确认选择。

Python 实现(基于 InquirerPy)

  • 安装依赖:
    pip install inquirerpy
    
  • 示例代码:
    from InquirerPy import inquirer
    
    def start_cli():
        selected_action = inquirer.select(
            message="请选择操作:",
            choices=["创建新项目", "导出数据", "配置设置", "退出"],
        ).execute()
        
        print(f"你选择了: {selected_action}")
        # 执行对应业务逻辑
    
    if __name__ == "__main__":
        start_cli()
    

Go 实现(基于 go-prompt)

  • 安装依赖:
    go get github.com/c-bata/go-prompt
    
  • 示例代码:
    package main
    
    import (
        "fmt"
        "github.com/c-bata/go-prompt"
    )
    
    func optionCompleter(d prompt.Document) []prompt.Suggest {
        options := []prompt.Suggest{
            {Text: "创建新项目", Description: "初始化新项目"},
            {Text: "导出数据", Description: "导出系统数据"},
            {Text: "配置设置", Description: "修改系统配置"},
            {Text: "退出", Description: "退出程序"},
        }
        return prompt.FilterHasPrefix(options, d.GetWordBeforeCursor(), true)
    }
    
    func main() {
        fmt.Println("请选择操作(输入前缀可自动补全):")
        selected := prompt.Input("> ", optionCompleter)
        fmt.Printf("你选择了: %s\n", selected)
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 19:07:56