【笔记】Go语言执行Shell命令

前言

Go语言执行Shell命令

无输出

1
2
cmd := exec.Command("ls", "-l")
err := cmd.Run()

有输出

分开获取标准输出和错误输出

1
2
3
4
5
6
7
cmd := exec.Command("ls", "-l")
var stdout, stderr bytes.Buffer
cmd.Stdout, cmd.Stderr = &stdout, &stderr
err := cmd.Run()

fmt.Println(string(stdout.Bytes()))
fmt.Println(string(stderr.Bytes()))

获取所有输出

  • 无法执行包含通配符*的命令
1
2
3
4
cmd := exec.Command("ls", "-l")
res, err := cmd.CombinedOutput()

fmt.Println(string(res))

os的环境变量

设置os的环境变量

<value>:环境变量的值

1
os.Setenv("KEY", "<value>")

获取os的环境变量

1
os.ExpandEnv("$KEY")

完成

参考文献

知乎——王炳明