执行下面的程序,out是一个空的 type 切片[]uint8。
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 中得到“找不到模块”错误。
我在这里做错了什么?如何捕获标准输出内容?
动漫人物
相关分类