如何在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
相关产品推荐
相关产品推荐

