golang 调用shell 脚本

通过golang执行shell脚本

简介

  • 记 golang 的一个扩展用法

目录结构

  • main.go

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    package main

    import (
    "bytes"
    "fmt"
    "log"
    "os/exec"
    )

    func main() {
    cmd := exec.Command("/bin/bash", "-c", "./test.sh")
    var out bytes.Buffer

    cmd.Stdout = &out
    err := cmd.Run()
    if err != nil {
    log.Fatal(err)
    }
    fmt.Printf("%s", out.String())
    }
  • test.sh

    1
    2
    3
    #! /bin/bash

    echo '通过golang来执行shell脚本'
  • 执行结果

    • 记得将脚本权限设置可执行
      1
      2
      3
      4
      5
      6
      7
      8
      ~ ls -l
      total 4568
      -rwxr-xr-x 1 qinhan staff 2327696 Nov 15 22:54 main
      -rw-r--r-- 1 qinhan staff 258 Nov 15 22:54 main.go
      -rwxr-xr-x 1 qinhan staff 53 Nov 15 22:57 test.sh

      ~ ./main
      通过golang来执行shell脚本