可以使用os包中的函数来调用执行.sh文件,并传递环境变量参数。下面是一个示例代码:

package main

import (
    "os"
    "os/exec"
)

func main() {
    username := os.Getenv("username")
    if username == "" {
        username = "name"
    }
    cmd := exec.Command("/bin/bash", "-c", ". /path/to/script.sh; script_function "+username)
    cmd.Env = append(os.Environ(), "OTHER_ENV_VAR=value")
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr
    err := cmd.Run()
    if err != nil {
        panic(err)
    }
}

在上面的代码中,我们首先使用os.Getenv函数获取环境变量username的值,如果不存在则默认为"name"。然后,使用exec.Command函数创建一个新的命令,指定要执行的脚本文件和传递的参数。

接下来,我们使用cmd.Env将其他环境变量添加到命令中。在这个示例中,我们添加了一个名为"OTHER_ENV_VAR"的变量,其值为"value"。

最后,我们使用cmd.Stdoutcmd.Stderr将命令的标准输出和标准错误输出重定向到当前进程的标准输出和标准错误输出。然后,我们使用cmd.Run函数执行命令,并检查是否发生了错误。如果发生了错误,我们将其panic出来

如何用golang调用执行sh文件实现从环境变量读取username读不到则默认为name

原文地址: https://www.cveoy.top/t/topic/fItJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录