加入額外的環境參數再執行指令

cmd := exec.Command("programToExecute")
additionalEnv := "FOO=bar"
newEnv := append(os.Environ(), additionalEnv)
cmd.Env = newEnv
out, err := cmd.CombinedOutput()
if err != nil {
	log.Fatalf("cmd.Run() failed with %s\n", err)
}
fmt.Printf("%s", out)

在 Linux 下使用 os/exec + Pipe 或 Bash 運算式

rcmd := `iw dev | awk '$1=="Interface"{print $2}'`
cmd := exec.Command("bash", "-c", rcmd)
out, err := cmd.CombinedOutput()
if err != nil {
	log.Println(err.Error())
}
log.Println(string(out))

在 Windows 下使用 os/exec + Batch 運算式

cmd := exec.Command("cmd", "/c", "ffmpeg -i myfile.mp4 myfile.mp3 && del myfile.mp4")
out, err := cmd.CombinedOutput()
if err != nil {
	log.Println(err.Error())
}
log.Println(string(out))

解決 Windows CMD 在 os/exec 時會出現本地語言的問題

cmd := exec.Command("cmd", "/c", "chcp 65001 && netsh WLAN show drivers")
out, err := cmd.CombinedOutput()
if err != nil {
	log.Println(err.Error())
}
log.Println(string(out))

使用此方法得出的 output string 請記得把回傳的首行(chcp 的回傳結果)刪除掉再進行其他處理和讀取。