gpt4 book ai didi

go - 给定一个任意字符串,我怎样才能将命令输出到 bash?

转载 作者:数据小太阳 更新时间:2023-10-29 03:28:42 25 4
gpt4 key购买 nike

我有一个非常基本的 golang 问题。

给定一个任意字符串,例如 "echo foo""CGO_ENABLED=0 go build -o ./bin/echo -a main.go",什么是使用 os/exec 解析/运行该命令的惯用方法?

我完成这项工作的方式似乎很老套,我正在寻找一种更惯用的方法。

userInput = "CGO_ENABLED=0 go build -o ./bin/echo -a main.go"
command := exec.Command("/bin/bash", "-c", userInput)
out, err := command.Output()
if err != nil {
fmt.Println(err)
}

最佳答案

根据您的 userInput 字符串的任意性和灵 active ,我可能会这样做。

package main

import (
"log"
"os"
"os/exec"
)

func main() {
if err := os.Setenv("FOO", "bar"); err != nil {
log.Println(err)
}

// As Dave C pointed out, exec.Command does this for you.
// goAbsPath, err := exec.LookPath("go")
// if err != nil {
// log.Println(err)
// }

// Pass whatever other arguments necessary.
cmd := exec.Command("go", "version")
if err = cmd.Run(); err != nil {
log.Println(err)
}
}

如果不出意外,了解 os.Setenvexec.LookPath 可能会有用。

关于go - 给定一个任意字符串,我怎样才能将命令输出到 bash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29066736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com