如何使用Go的os / exec评估环境变量

时间:2013-11-21 18:20:31

标签: go

如何让Go评估$ PATH变量。我目前只是打印 “$ PATH”

我有以下代码

package main

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

func main() {
        out, err := exec.Command("echo","$PATH").Output()
        if err != nil {
                log.Fatal(err)
        }
        fmt.Printf("%s\n",out)
}

2 个答案:

答案 0 :(得分:5)

您需要使用os.Getenv("PATH")

package main

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

func main() {
  out, err := exec.Command("echo",os.Getenv("PATH")).Output()
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n",out)
}

答案 1 :(得分:0)

尝试一下-

CommandToRun = os.ExpandEnv(os.Getenv("CommandToRun"))

它将读取CommandToRun并在其中包含任何环境变量的情况下进行扩展。

Play example