bash - GPG key 存在于列表中?

标签 bash shell gnupg

我想创建一个 shell 脚本,但我以前没有使用过它。 gpg有一个命令:

gpg --keyserver SERVER --recv-keys  KEY

问题是如果 key 已经添加,我不想运行这个命令。有什么方法可以检查 key 列表中是否存在 key ? 谢谢!

最佳答案

运行 gpg --list-keys [key-id](或缩写命令 -k),如果出现以下情况,返回码为 0(成功)存在匹配的 key ,否则存在其他问题(失败)。不要像评论中的其他人所建议的那样列出所有 key ,然后 grep,对于 key 环中的大量 key ,这将变得可怕慢。运行

gpg --list-keys [key-id] || gpg --keyserver [server] --recv-keys [key-id]

获取丢失的 key ,可能会丢弃第一个 gpg 调用的输出 (gpg --list-keys [key-id] >/dev/null 2>&1 || ... ),因为您只对返回码感兴趣。

请注意

关于bash - GPG key 存在于列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986413/

相关文章:

linux - Linux 中的终止命令

linux - echo 不会输出多行

c - 实现管道以模仿 Shell

python-3.x - 在作业 Circle Ci 中使用 Blackbox 时出现错误 "gpg: decryption failed: No secret key"

gnupg - 如何编辑我的私有(private)/ secret gnupg key

Python加密: Encrypting password using PGP public key

string - 两个字符串之间的 ASCII 差异

bash - 如何使用 sed 或 awk 从行中提取月份、日期和 IP 地址?

shell - 如何使用 sed 仅打印第一条非空白行

linux - 当输入通过管道或重定向到它时,sort/uniq 命令的内部工作