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

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

Mary-Kate Olsen
发布: 2024-12-26 07:04:09
原创
688 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板