为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 中是否有 Python 的 `os.system()` 的等价物?

Golang 中是否有 Python 的 `os.system()` 的等价物?

Go
MM们 2023-03-15 14:46:22
我想创建一个包装程序,可以包装用户提供的任何 shell 命令,例如:./wrapper "cmd1 && cmd2"在 Python 中,我可以调用os.system("cmd1 && cmd2"). 但是 Golangexec.Command需要一个命令和参数列表。Golang 有没有办法像 Python 一样进行归档os.system()?
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

操作系统/执行 https://pkg.go.dev/os/exec

package main


import (

    "fmt"

    "os"

    "os/exec"

)


func main() {

    cmd := exec.Command("/usr/bin/bash", "-c", os.Args[1])

    output, err := cmd.CombinedOutput()

    if err != nil {

        panic(err)

    }

    fmt.Println(string(output))

}

$ go run main.go "ls -alh && pwd"

total 4.0K

drwxr-xr-x  2 xxxx xxxx 120 Nov 14 11:12 .

drwxrwxrwt 17 root root 420 Nov 14 11:42 ..

-rw-r--r--  1 xxxx xxxx 217 Nov 14 11:42 main.go

/tmp/stk


查看完整回答
反对 回复 2023-03-15
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信