使用 Golang 执行 Shell 命令的各种姿势

// TODO: To be updated…

1. os/exec

1.1 只执行命令,不要输出结果

执行命令可以使用Run()或者Start()方法,Run()是阻塞的执行,Start()是非阻塞的执行:

package main

import (
    "fmt"
    "os/exec"
)

func main() {
    command := exec.Command("ping","www.baidu.com")
    err := command.Run() // 阻塞执行
    if err != nil{
        fmt.Println(err.Error())
    }
}

2. go-sh

3. ssh 远程执行命令

// TODO: To be updated…

参考文章

相关的库

  1. go-sh - 替代 os/exec 执行命令 | Github
  2. go-homedir - 替代 os/user 获取 home 目录,支持交叉编译 | Github
  3. gossh - 极简的 ssh 管理工具,支持多台主机、远程执行命令、传递文件 | Github

文章教程

  1. Go 语言中执行命令的几种方式 | 杨彦星
  2. Golang exec 命令执行 | 简书
  3. Golang os/exec 执行外部命令 | 简书
  4. Golang 执行系统命令 os/exec | 01happy
  5. 如何用 Go 调用 Windows API | Razeen’s Blog
  6. Go 学习笔记 (八) - 使用 os/exec 执行命令 | Razeen’s Blog
  7. [译]使用 os/exec 执行命令 | 鸟窝
  8. golang-ssh-01: 执行远程命令 | MojoTech
  9. Golang 远程执行命令 | CSDN
  10. Go 执行远程 ssh 命令 | bbsmax
  11. 如何使用 Go 语言实现远程执行命令 | TeaKKi

其他暂存

  1. Go 学习笔记 (六) - 使用 swaggo 自动生成 Restful API 文档 | Razeen’s Blog
  2. Go 语言中关于文件路径的使用总结 | 杨彦星
  3. Go 语言中函数使用不定参数问题 | 杨彦星
  4. Go 语言“可变参数函数”终极指南 | Go 语言中文网
  5. CODING 代码多仓库实践 | CODING 博客

GitLab

  1. Centos7 搭建 GitLab 服务器并配置项目全过程 | CSDN
  2. 搭建 GitLab 服务 | SegmentFault