我正在尝试将 bash 命令中的文件写入 Go 中的文件中。请注意,这里使用 Go 而不是 bash 有几个原因:我有一些更多的逻辑,例如解析配置文件,我想并行运行多个数据库的代码,最后执行一些更复杂的数据操作。
dumpStr := fmt.Sprintf("pg_dump -U %s -h %s %s | gzip", DbUserName, DbHost, DbName)
cmd := exec.Command("bash", "-c", dumpStr)
cmd.Env = append(cmd.Env, "PGPASSWORD="+DbPassword)
outfile, err := os.Create(DbName + ".gz")
if err != nil {
panic(err)
}
outfile = cmd.Stdout
defer outfile.Close()
err = cmd.Start()
if err != nil {
panic(err)
}
cmd.Wait()
但是,我得到的结果是空的。如果我dumpStr从 CLI 执行而不是从该代码执行,我会获取数据...我缺少什么?
呼啦一阵风
芜湖不芜
相关分类