18.cobra框架了解

news2024/11/26 4:30:07

目录

  • 概述
    • 举例
    • 安装
    • 实践
    • 实践

概述

github cobra

cobra 快速的实现一个命令行客户端,命令行解析工具。

cobra 中的主要概念

  • -Commands 表示执行运作
  • -Args 执行参数
  • -Flags 这些运作的标识符

举例

  • git clone 命令

git clone https://github.com/spf13/cobra.git --bare

  • git 代表执行的二进制
  • clone 代表执行的运作,可以理解为命令
  • https://github.com/spf13/cobra.git 代表参数
  • –bare 代表标识符,意思是创建个祼库

安装

# 前置条件
go env -w GO111MODULE=on
# 检查
go env 

appledeMacBook-Pro:cobra hyl$ go install github.com/spf13/cobra-cli@latest
go: downloading github.com/spf13/cobra-cli v1.3.0
go: downloading github.com/spf13/cobra v1.3.0
go: downloading github.com/spf13/viper v1.10.1
go: downloading github.com/spf13/jwalterweatherman v1.1.0
go: downloading github.com/spf13/afero v1.6.0
go: downloading github.com/spf13/cast v1.4.1
go: downloading github.com/magiconair/properties v1.8.5
go: downloading github.com/mitchellh/mapstructure v1.4.3
go: downloading github.com/fsnotify/fsnotify v1.5.1
go: downloading github.com/subosito/gotenv v1.2.0
go: downloading gopkg.in/ini.v1 v1.66.2
go: downloading github.com/hashicorp/hcl v1.0.0
go: downloading github.com/pelletier/go-toml v1.9.4
go: downloading golang.org/x/text v0.3.7
go: downloading golang.org/x/sys v0.0.0-20211210111614-af8b64212486

appledeMacBook-Pro:bin hyl$ ./cobra-cli -h
Cobra is a CLI library for Go that empowers applications.
This application is a tool to generate the needed files
to quickly create a Cobra application.

Usage:
  cobra-cli [command]

Available Commands:
  add         Add a command to a Cobra Application
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  init        Initialize a Cobra Application

Flags:
  -a, --author string    author name for copyright attribution (default "YOUR NAME")
      --config string    config file (default is $HOME/.cobra.yaml)
  -h, --help             help for cobra-cli
  -l, --license string   name of license for the project
      --viper            use Viper for configuration

Use "cobra-cli [command] --help" for more information about a command.
appledeMacBook-Pro:bin hyl$ pwd
/Users/hyl/Desktop/jk/go/bin

/Users/hyl/Desktop/jk/go/bin/cobra-cli

在这里插入图片描述
在这里插入图片描述

实践

bash: no job control in this shell
appledeMacBook-Pro:cobra-demo hyl$ go get -u github.com/spf13/cobra@latest
go: can only use path@version syntax with 'go get' and 'go install' in module-aware mode
appledeMacBook-Pro:cobra-demo hyl$ go mod init
go: creating new go.mod: module cobra-demo
appledeMacBook-Pro:cobra-demo hyl$ go mod tidy
go: warning: "all" matched no packages
appledeMacBook-Pro:cobra-demo hyl$ 
appledeMacBook-Pro:cobra-demo hyl$ go get -u github.com/spf13/cobra@latest
go: added github.com/inconshreveable/mousetrap v1.1.0
go: added github.com/spf13/cobra v1.8.0
go: added github.com/spf13/pflag v1.0.5

官网文档

实践

官网文档

appledeMacBook-Pro:src hyl$ mkdir cobra
appledeMacBook-Pro:src hyl$ ls
cobra		github.com	k8s.io		test
appledeMacBook-Pro:src hyl$ cd cobra/

appledeMacBook-Pro:cobra hyl$ go run "/Users/hyl/Desktop/jk/go/src/cobra/main.go"
测试
appledeMacBook-Pro:cobra hyl$ go mod tidy

# 结合官网,组合成代码,按错误提示,引入类


appledeMacBook-Pro:cobra hyl$ go run main.go times
测试
Error: requires at least 1 arg(s), only received 0
Usage:
  exe times [flags]

Flags:
  -h, --help        help for times
  -t, --times int   times to echo the input (default 1)

requires at least 1 arg(s), only received 0
exit status 1
appledeMacBook-Pro:cobra hyl$ 

appledeMacBook-Pro:cobra hyl$ go run main.go times -t=4 k8s
测试
times call...
echo:k8s
echo:k8s
echo:k8s
echo:k8s
appledeMacBook-Pro:cobra hyl$ go run main.go times  k8s
测试
times call...
echo:k8s
appledeMacBook-Pro:cobra hyl$ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1849212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

白嫖游戏指南,Epic喜加二:《Freshly Frosted》《Rumble Club》

前言 Epic喜加二:《Freshly Frosted》《Rumble Club》《Freshly Frosted》简介: 《Rumble Club》简介: 前言 接下来有时间会分享一些游戏相关可以白嫖的资源,包括游戏本体、游戏素材资源等等。 有需要的小伙伴可以关注这个专栏&…

文件批量改名利器:一键实现文件名中字母统一转为大写,让文件管理更高效有序!

在日常工作和生活中,我们经常会遇到需要批量重命名文件的情况。尤其是当文件名中包含字母时,如果希望将所有字母统一更改为大写,传统的逐个修改方式无疑会耗费大量时间。不过,有了高效的文件批量改名工具,这一难题将迎…

【C++】平衡二叉树(AVL树)的实现

目录 一、AVL树的概念二、AVL树的实现1、AVL树的定义2. 平衡二叉树的插入2.1 按照二叉排序树的方式插入并更新平衡因子2.2 AVL树的旋转2.2.1 新节点插入较高左子树的左侧(LL平衡旋转)2.2.2 新节点插入较高右子树的右侧(RR平衡旋转&#xff09…

【计算机毕业设计】204基于微信小程序疫情期间学生请假与销假系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

windows使用curl命令出现乱码的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

第3章 小功能大用处-发布订阅

Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道(channel)发布消息,订阅该频道的每个客户端都可以收到该消息。 命令:Red…

【CPP】插入排序、希尔排序

目录 1.插入排序1.1直接插入排序简介代码分析 1.2直接插入对比冒泡排序简介代码对比分析(直接插入排序与冒泡的复杂度效率区别) 1.3希尔排序简介代码分析 1.插入排序 基本思想:把一个待排数字按照关键码值插入到一个有序序列中,得到一个新的有序序列。 …

高校新闻头条系统

摘 要 随着互联网技术的快速发展,网络几乎成为了人们搜集信息和交流沟通最方便、快捷的通道,科技创新一直在影响着人们的生活,人们的衣食住行也在不断变化,与此同时,也大大改变了人们获取信息的方式,人们获…

甘肃旅游服务平台的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,公告信息管理,景点管理,酒店管理,基础数据管理,美食管理 前台账户功能包括:系统首页,个人中心&#xff0…

kafka第二篇——主题创建,主题分区副本分配策略

目录 主题创建 引入 回顾主题,分区,副本关系 代码 主题分区副本分配策略 底层逻辑分析 主题创建 引入 为啥才开始在idea上跑代码,topic都没创建出来,就直接跑出来了? 这是因为AutoTopicCreationManger参数可以自动创建主题…

首个AI高考全卷评测结果出分,大模型“考生”表现如何?

内容提要 大部分大模型“考生”语文、英语科目表现良好,但在数学方面还有待加强。阅卷老师点评,在语文科目上,对于语言中的一些“潜台词”,大模型尚无法完全理解。在数学科目上,大模型的主观题回答相对凌乱&#xff0…

关于运用人工智能帮助自己实现英语能力的有效提升?

# 实验报告 ## 实验目的 - 描述实验的目标:自己可以知道,自己的ai学习方法是否可以有效帮助自己实现自己的学习提升。 预期结果:在自己利用科技对于自己进行学习的过程中,自己的成长速度应该是一个幂指数的增长 ## 文献回顾 根据…

LabVIEW开发电机故障监测系统

开发了一套基于LabVIEW的智能电机故障监测系统,通过实时监测和分析电机运行参数,实现故障预测和诊断。系统集成了振动传感器、温度传感器、数据采集模块和分析模块,利用RS-485通信总线和Modbus协议确保数据的高精度实时传输,故障预…

Bootloader -- U-Boot 介绍

Bootloader -- U-Boot 介绍 1 介绍1.1 概述1.2 知名 BootloaderLILO (Linux Loader)GRUB (GNU GRand Unified Bootloader)LoadlinROLO (Rockbox Loader)EtherbootLinuxBIOS (现在叫 coreboot)BLOBU-BootRedBoot 1.3 BootLoader 和 Monitor 区别1.4 U-Boot 的源码结构1.5 U-Boot…

Keil MDK生成LIB库以及使用LIB库

一.keil下lib静态库的使用具有以下优点: 1.封装源代码,对外不开放,提高保密性。 2.将标准功能函数封装成库,提高代码的复用性。 3.使用库开发,简化开发流程,提高开发效率。 4.系统调用库函数&#xff0…

无人直播不封号美女舞团3.0 多重防非操作(教程+素材+工具)

在这个数字化的时代,直播已经成为了一种新的商业模式。然而,如何打造一个24小时自动循环播放的直播间,并通过此获得收益,却是许多人面临的挑战。本文将介绍如何通过使用OBS和咩播软件,创建一个能够吸引人们进入直播间并…

VMware vSphere Bitfusion 4.5.4 - 面向 AI 和 ML 应用提供弹性基础架构

VMware vSphere Bitfusion 4.5.4 - 面向 AI 和 ML 应用提供弹性基础架构 请访问原文链接:VMware vSphere Bitfusion 4.5.4 - 面向 AI 和 ML 应用提供弹性基础架构,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org VM…

VBA学习(18):VBA制作任意工作表均可使用的聚光灯

在需要制作聚光的工作簿&#xff0c;按<ALTF11>组合键&#xff0c;打开VBE编辑器。在右侧[工程资源管理器窗格]选中ThisWorkbook模块&#xff0c;将以下代码复制粘贴到该模块的代码窗口。 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target …

软件缺陷及JIRA工具

一、软件缺陷及跟踪流程 1&#xff0c;软件缺陷信息 案例 &#xff08;1&#xff09;缺陷报告的基本内容 缺陷的标题 预置条件 重现步骤 期望结果 实际结果 &#xff08;2&#xff09;软件缺陷的状态 新建 打开 修复 关闭 &#xff08;3&#xff09;软件缺陷的严重程度 …

NeRF从入门到放弃3: EmerNeRF

https://github.com/NVlabs/EmerNeRF 该方法是Nvidia提出的&#xff0c;其亮点是不需要额外的2D、3Dbox先验&#xff0c;可以自动解耦动静field。 核心思想&#xff1a; 1. 动、静filed都用hash grid编码&#xff0c;动态filed比静态多了时间t&#xff0c;静态的hash编码输入是…