18.cobra框架了解

目录

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

概述

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-af8b64212486appledeMacBook-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 Applicationcompletion  Generate the autocompletion script for the specified shellhelp        Help about any commandinit        Initialize a Cobra ApplicationFlags:-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 configurationUse "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.mzph.cn/web/32192.shtml

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

相关文章

【Java】已解决java.nio.channels.OverlappingFileLockException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.nio.channels.OverlappingFileLockException异常 在Java的NIO(New I/O)编程中,java.nio.channels.OverlappingFileLockException是一…

ArrayList知识点(面试)

上一篇我们说了hashmap的相关知识点,这一篇我们再说一些ArrayList的相关知识,因为ArrayList也是我们项目中比较常用的。 ArrayList(底层是数组) 底层工作原理 首先,在构造ArrayList的时候会先看有没有指定容量,如果没有&#xf…

人人讲视频如何下载

一、工具准备 1.VLC media player 2.谷歌浏览器 二、视频下载 1.打开人人讲网页,需要下载的视频 谷歌浏览器打开调试窗口 搜索m3u8链接 拷贝到VLCplayer打开网络串流方式打开测试是否能正常播放 2.下载视频 能正常播放后,切换播放为转换选择mp4格式…

24年火爆全网的企业信贷产品-民生惠详解

今年,民生惠企业信贷产品非常火爆!客户想申请这信用贷款前,先确认下自己是不是在白名单里。有些地区还能加进白名单,不在的话就别申请了,这是专门给受邀的小微企业的。 这款产品的细节是这样的: 额度&am…

visual studio 创建c++项目

目录 环境准备:安装 visual studiovisual studio 创建c项目Tips:新建cpp文件注释与取消注释代码 其他初学者使用Visual Studio开发C和C时常遇到的3个坑 环境准备:安装 visual studio 官网:https://visualstudio.microsoft.com/zh…

【十三】图解mybatis缓存模块之装饰器模式

图解mybatis缓存模块之装饰器模式 简介 之前有写过一篇博客介绍过mybatis的缓存模块设计【九】mybatis 缓存模块设计-CSDN博客 ,当时着重讲解的是mybatis种一级缓存和二级缓存,本次博客补充讲解一下装饰器模式的应用,本篇主要分两部分讲解&a…

kotlin智能类型转换

1、在kotlin这中,定义如下类型,在判断不为null的语句里边,会发生类型转换: fun main(){var a:String? "XXX" // a 类型为 String? 可能为 null// 在if 语句中,a 的类型为 Stringif(a ! null){println(a.l…

动态ARP

定义 动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。 动态ARP适用于拓扑结构复杂、通信实时性要求高的网络。 ARP地址解析过程 动态ARP通过广播ARP请求和单播ARP应答这两个过…

使用 Kubernetes 部署 MinIO 和 Trino

Trino(以前称为 Presto)是一个 SQL 查询引擎,而不是 SQL 数据库。Trino 避开了 SQL 数据库的存储组件,只专注于一件事 - 超快的 SQL 查询。Trino 只是一个查询引擎,不存储数据。相反,Trino与各种数据库交互…

GWO-CNN-SVM,基于GWO灰狼优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)

GWO-CNN-SVM,基于GWO灰狼优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类) 1. GWO灰狼优化算法 灰狼优化算法(Grey Wolf Optimizer, GWO)是一种启发式优化算法,模拟了灰狼群体的社会行为,包…

天马学航——智慧教务系统(移动端)开发日志六

天马学航——智慧教务系统(移动端)开发日志六 日志摘要:统一身份认证设计,修复了选课信息错乱的问题 界面设计 实现思路 使用 Java 和 Jedis 完成实现: 步骤一:添加 Jedis 依赖 首先需要在项目中添加 Jedis 依赖,…

使用海康威视的SDK,利用WPF设计一个网络摄像头的显示控制程序(上位机)

目录 一、下载海康威视的SDK 1.1 关于SDK 1.2 关于API 1.3 关于DLL 1.4 下载海康威视的SDK 1.5 关于网络高清摄像机 二、对下载的SDK进行调试 三、利用Visual Studio打开项目的解决方案 3.1 Visual Studio 2022下载 3.2 关于句柄 四、打开WPF进行ui页面设计 4.1 关…

react笔记-03react-router篇

本文章是react的路由笔记 一、react路由(v5版本) 1. 什么是路由(前端)? 一个路由就算一个映射关系(key: value)key为路径,value为组件 2. 前端路由的工作原理 根据浏览器历史记录&#xff…

双例集合(三)——双例集合的实现类之TreeMap容器类

Map接口有两个实现类,一个是HashMap容器类,另一个是TreeMap容器类。TreeMap容器类的使用在API上于HashMap容器类没有太大的区别。它们的区别主要体现在两个方面,一个是底层实现方式上,HashMap是基于Hash算法来实现的吗&#xff0c…

什么是电商大数据?主流电商大数据的采集||关键性技术|电商API接口接入说明

大数据的时代早已到来,然而想要全方位掌握大数据,务必要掌握大数据造成的时代特征,之前大数据被视为废物,如今被视为财产。主流电商大数据的采集,电商API接口的接入在大多数人理解中,是企业用数据来优化自己…

HackTheBox-Linux基础

Linux 结构 历史 许多事件导致了第一个 Linux 内核的创建,并最终创建了 Linux 操作系统 (OS),从 1970 年 Ken Thompson 和 Dennis Ritchie(当时都在 AT&T 工作)发布 Unix 操作系统开始。伯克利软件发行…

微信小程序毕业设计-餐厅点餐系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

OCC显示渲染结构剖析

1.Display显示 2.Drawer 3.Graphics 4.InteractiveContext 5.Render 6.Selection 7.View

图像分割(四)---(图像显示、灰度直方图和三维灰度图综合分析选取最佳分割方法)

一、引言 对彩色图像进行分割的一种常用方法,是先把彩色图像转灰度图像,然后再选择合适的阈值进行二值分割。但有时彩色图像转灰度图像后不具有典型的双峰特性,二值分割效果不好。本文章提出一种确定彩色图像分割方法的新思路。首先读入一幅彩…

以太坊==给合约转入/查询合约剩余/合约转给某账户/结构体/MAP

转入 必须要定义该函数,或者定义fallback // 接收以太币 receive() external payable {} // Corrected Line // SPDX-License-Identifier: MIT pragma solidity ^0.8.0;contract SimpleStorage {uint256 private storedData;// 事件,用于通知数据变更e…