GPG命令在Shell中有效,但在Go exec.Command()中无效

时间:2018-10-19 22:26:58

标签: go gnupg

我正在使用gnupg通过以下命令加密文件:

gpg --encrypt --sign --armor -r person@email.com name_of_file

此命令在shell中工作正常。但是它在go程序中失败,并显示以下错误:

gpg: cannot open '/dev/tty': Device not configured

以下是代码:

    func main() {
        var stdout, stderr bytes.Buffer

        cmd := exec.Command("/bin/sh", "-c", `gpg --encrypt --sign --armor -r person@email.com file_name.csv`)

        cmd.Stdout = &stdout
        cmd.Stderr = &stderr

        err := cmd.Run()
        if err != nil {
            log.Println(err)
        }

        out := stdout.String() + stderr.String()
        fmt.Println(out)
}

为什么会出现此错误,我该如何解决?

0 个答案:

没有答案