首页 >后端开发 >Golang >如何有效地从 Go 执行 Bash 脚本?

如何有效地从 Go 执行 Bash 脚本?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-26 07:04:09692浏览

How to Execute Bash Scripts from Go Effectively?

从 Go 执行 Bash 脚本

挑战

从 Go 执行 bash 脚本,您尝试使用 os/exec 包,但在输入脚本路径或其内容时遇到了挑战作为参数。此脚本设置变量并执行特定任务。

解决方案

要从 Go 成功执行 bash 脚本,请考虑以下步骤:

先决条件

  • 确保 bash 脚本以以下开头#!/bin/sh 或 #!/bin/bash。
  • 通过运行 chmod x 使脚本可执行。

使用 os/exec Package

如果您更喜欢使用 os/exec,请将代码修改为如下:

cmd := exec.Command("/bin/sh", mongoToCsvSH)
out, err := cmd.Output()

这里,“/bin/sh”表示执行脚本的解释器,后跟 bash 脚本 mongoToCsvSH 的路径。

替代方法

您可以使用以下代码来代替使用 os/exec 来执行script:

import (
    "io/ioutil"
    "os"
)

func main() {
    content, err := ioutil.ReadFile("mongoToCsvSH.sh")
    if err != nil {
        log.Fatal(err)
    }

    err = os.WriteFile("run.sh", content, 0755)
    if err != nil {
        log.Fatal(err)
    }

    cmd := exec.Command("./run.sh")
    cmd.Run()
}

此方法读取 bash 脚本内容,将其写入具有可执行权限(chmod 0755)的临时“run.sh”文件,然后执行它。

以上是如何有效地从 Go 执行 Bash 脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn