gpt4 book ai didi

bash - 带有 bash -c 的 exec.Command 不返回标准输出

转载 作者:行者123 更新时间:2023-12-03 10:08:36 25 4
gpt4 key购买 nike

执行以下程序,out[]uint8 类型的空 slice .

package main

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

func main() {
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
cmd := exec.CommandContext(ctx, "bash", "-c", "python3", "-c", "print('hello')")
out, _ := cmd.Output()
log.Println(out)
}
但是,如果我在没有 bash -c 的情况下运行,我得到了预期的输出。
这是一个简单的示例,其中 bash -c不需要,但在现实世界中,我的应用程序正在调用一个导入多个包的 python 脚本,并且没有 bash -c ,我从 python 得到“找不到模块”错误。
我在这里做错了什么?如何捕获标准输出内容?

最佳答案

bash -c后跟 一个 字符串参数与要执行的命令,然后 bash 将做参数处理。

cmd := exec.CommandContext(ctx, "bash", "-c", "python3 -c 'print(\"hello\")'")

关于bash - 带有 bash -c 的 exec.Command 不返回标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65109984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com