猿问

在 golang 中退出 status 1

得到了这个简单的函数,该函数在退出状态 1 时抛出并出错,而没有任何进一步的提示说明为什么会发生这种情况


func execute_this(cmd string ) string {

    out, err := exec.Command("cmd","/C", cmd).Output()

    if err != nil {

        log.Fatal(err)

        fmt.Println(out)


    }

    fmt.Println(string(out))

    return string(out)

}


func main() {


        var cmd string 

        var result string 

        cmd = "pwd"

        

        


        result = execute_this(cmd)


        fmt.Println(result)

}


抛出错误信息


2021/10/27 01:12:06 exit status 1

exit status 1


目标是编写一个在 shell 中执行系统命令并将输出作为字符串返回的函数


MMTTMM
浏览 80回答 1
1回答

白猪掌柜的

试试这个,它还可以让你看到发送到 stderr 的输出。详情在这里。具体来说,就您而言,问题在于'pwd' is not recognized as an internal or external command,operable program or batch file.package mainimport (    "fmt"    "log"    "os/exec"    "os")func execute_this(cmd string ) string {    c := exec.Command("cmd","/C", cmd)    c.Stderr = os.Stderr        out, err := c.Output()    if err != nil {        log.Fatal(err)    }    return string(out)}func main() {    cmd := "pwd"            result := execute_this(cmd)    fmt.Println(result)}
随时随地看视频慕课网APP

相关分类

Go
我要回答