Go语言编程之旅-cobra命令行错误

 在参考go语言编程之旅使用cobra编写命令行工具运行时出现如下错误:

$ go run main.go time now
Error: unknown command "time" for "time"
Run 'time --help' for usage.

具体代码如下:

package main

import (
	"github.com/spf13/cobra"
	"log"
	"time"
)

func GetNowTime() time.Time {
	return time.Now()
}

func main() {
	var NowTimeCmd = &cobra.Command{
		Use:   "now",
		Short: "获取当前时间",
		Long:  "马上获取当前时间",
		Run: func(cmd *cobra.Command, args []string) {
			nowTime := GetNowTime()
			log.Printf("当前时间为:%s, %d", nowTime.Format("2006-01-02 15:04:05"), nowTime.Unix())
		},
	}
	var timeCmd = &cobra.Command{
		Use:   "time",
		Short: "时间格式处理",
		Long:  "时间格式处理,能够处理各种时间格式",
		Run:   func(cmd *cobra.Command, args []string) {},
	}
	timeCmd.AddCommand(NowTimeCmd)
	timeCmd.Execute()

}

解决错误的方法是按照如下命令运行程序,去掉第一个root命令:

go run main.go now

 运行结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值