登录
首页 >  Golang >  Go问答

在 Go 中如何将变量值传递给 Shell 脚本?

来源:stackoverflow

时间:2024-02-14 23:54:25 236浏览 收藏

大家好,我们又见面了啊~本文《在 Go 中如何将变量值传递给 Shell 脚本?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

shell.sh

#!/bin/bash
npx create-react-app  --template typescript

run.go

func runscript(generr *error) {
    if *generr != nil {
        return
    }

    cmd := exec.command("/bin/sh", "-c", shell)
    *generr = cmd.run()
}

details.go

type npmLibCommand struct {
    ProjectName string
}

var npmLib npmLibCommand

func getNpmLibraryInput(genErr *error) {
    if *genErr != nil {
        return
    }
    npmLib.ProjectName = GetProjectName(genErr)
}

我想将 projectname 变量从 run.go 传递到 shel​​l.sh。如何使用 golang 来做到这一点?

我在 shel​​l.sh 中使用了 $。没成功。


正确答案


a.sh

echo $passedname

ma​​in.go

package main

import (
    "os"
    "os/exec"
)

func main() {
    // run your shell script
    // don't forget to mention ./
    cmd := exec.Command("/bin/sh", "-c", "./a.sh")

    // whatever variable you want to pass append it to cmd.Env
    // it's format is of key=value
    cmd.Env = append(cmd.Env, "PassedName=hello")
    // set stdout and stderr appropriately as per your needs
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr
    cmd.Run() // run the cmd
}

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>