admin 发表于 2021-12-22 22:20:58

golang:执行shell命令2(阻塞执行,等待结果)

■实例说明
我们经常需要执行本地shell命令,或者是执行其他二进制可执行文件
1)执行本地二进制可执行文件
2)阻塞执行,等待执行完成再继续


■实例代码
package main

import (
      "fmt"
      "os/exec"
)

const (
      filePath = "/Users/test"
)

func main() {      
      // 功能:在filePath目录查找,1⃣️211开头,.go结尾的文件,并且统计这些文件所有非空行的总行数
      fileName := "211*.go"
      cmd := "find " + filePath + " -name \"" + fileName + "\" |xargs cat|grep -v ^$|wc -l"
      shell := exec.Command("/bin/bash", "-c", cmd)

      // CombinedOutput :执行命令,并且将标准输出和标准错误输出,返回内容是[]byte格式            
      // output, _ := shell.Output(), 这种方式则只输出标准输出,建议使用带标注错误的,因为我们拼写的cmd命令可能有些错误信息,通过标准错误我们可以发现这些错误
      output, _ := shell.CombinedOutput()
      fmt.Println(string(output))
}





页: [1]
查看完整版本: golang:执行shell命令2(阻塞执行,等待结果)