在Go语言中,你可以使用"os/exec"包来执行shell脚本并获取其输出。下面是一个简单的示例:
package main
import (
"fmt"
"io/ioutil"
"os/exec"
)
func main() {
// 假设我们有一个shell脚本叫做myscript.sh,它在执行时会打印一些日志
cmd := exec.Command("/bin/sh", "myscript.sh")
// 获取命令的输出
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println("执行脚本时发生错误: ", err)
return
}
// 输出脚本的执行结果(即日志)
fmt.Println("脚本输出:", string(output))
}
在这个例子中,CombinedOutput()
函数会返回命令的标准输出和标准错误的合并输出。如果你希望分别处理标准输出和标准错误,可以使用cmd.Stdout
和cmd.Stderr
字段。
注意:这个例子假设你的shell脚本在同一目录下,或者在系统的PATH环境变量中定义的路径下。如果不是,请提供完整的脚本路径。
同时,确保你的脚本具有执行权限,可以通过chmod +x myscript.sh
命令来添加执行权限。