美文网首页
使用go实现一个简单的命令行

使用go实现一个简单的命令行

作者: 6a91e15c5cde | 来源:发表于2018-03-25 15:59 被阅读21次

实现一个简单的命令行

  • 使用go实现一个简单的命令行,可以使用第三方库""github.com/urfave/cli""
  • 调用系统命令可以使用go自带的库exec.Command

示例1

package main

import (
    "github.com/urfave/cli"
    "fmt"
    "os"
    "github.com/gpmgo/gopm/modules/log"
    "os/exec"
)

func main(){
    app := cli.NewApp()
    app.Name = "cmd"
    app.Usage = "cmd ls"
    app.Action = func(context *cli.Context)error{
        cmd := exec.Command(context.Args().Get(0))
        rst,err :=cmd.Output()
        if err != nil {
            log.Fatal("err %s",err)
        }
        fmt.Printf(string(rst))
    }

    err := app.Run(os.Args)
    if err != nil {
        log.Info("err:%s\n",err)
    }
}

示例2

package main

import (
    "github.com/urfave/cli"
    "fmt"
    "os"
    "os/exec"
)


func Run(command string) *exec.Cmd {
    cmd := exec.Command(command)
    rst,err :=cmd.Output()
    if err != nil {
        fmt.Printf("err: %s",err)
    }

    fmt.Printf("rst=%s\n",rst)
    return cmd
}

var runCommand=cli.Command{
    Name:"run",
    Usage: `create a container mydocker run -ti`,
    Action: func(context *cli.Context) error{
        cmd := context.Args().Get(0)
        Run(cmd)
        return nil
    },
}


func main() {
    app :=cli.NewApp()
    app.Name = "mydocker"
    app.Usage = "mydocker study. mydocker is a simple container runtime implementation"
    app.Commands = []cli.Command{
        runCommand,
    }
    fmt.Printf("main func os.Args=%s",os.Args)
    app.Run(os.Args)
}

相关文章

  • 使用go实现一个简单的命令行

    实现一个简单的命令行 使用go实现一个简单的命令行,可以使用第三方库""github.com/urfave/cli...

  • Go命令行类库推荐

    项目描述 go命令行管理工具,go 原生提供了flag管理命令行。使用起来诸多不便,所以整理如下框架实现。 使用入...

  • Go标准库flag使用

    Go语言标准库flag基本使用 Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简...

  • BoltDB简单使用

    title: BoltDB简单使用tags: go,BoltDb BlotDB简介 Bolt是一个go语言实现的纯...

  • bleve boltdb性能调研

    背景bleve是go实现的一个简单的文本索引系统。boltdb是go实现的一个k-v数据库。bleve使用bolt...

  • 命令行的简单使用

    Git命令行的简单使用,仅供自己使用 pod命令行的简单使用

  • Golang获取命令行参数

    使用os.Args获取命令行参数 终端命令:go run main.go 20 马超 true 20 使用flag...

  • 搭建自己终端开发环境(go,pyenv,nvm)

    目标 搭建一个自定义的命令行开发环境(go,python,node) python使用pyenv部署,node使用...

  • 2018-05-30 (2) go 工程管理 linux下

    问题: 一个go工程 需要创建多个文件时,go语言采用命令行,对文件实现了管理。 1、安装 tree apt-ge...

  • 2018-08-08

    go 汇编 编译一个最简单的go执行程序 go build -gcflags "-N -l" test.go 使用...

网友评论

      本文标题:使用go实现一个简单的命令行

      本文链接:https://www.haomeiwen.com/subject/hgnhcftx.html