我想创建一个shell脚本,之前我还没有使用它。 gpg有一个命令:
gpg --keyserver SERVER --recv-keys KEY
问题是如果已添加密钥,我不想运行此命令。是否有任何方法可以检查密钥列表中是否存在密钥? 谢谢!
答案 0 :(得分:7)
运行gpg --list-keys [key-id]
(或缩写的命令-k
),如果存在匹配的密钥,则返回代码为0(成功),否则返回其他内容(失败)。不要按照评论中其他人的建议列出所有密钥和grep
,否则密钥环中的大量密钥会慢慢 。运行
gpg --list-keys [key-id] || gpg --keyserver [server] --recv-keys [key-id]
获取丢失的密钥,可能会丢弃第一个gpg
呼叫的输出(gpg --list-keys [key-id] >/dev/null 2>&1 || ...
),因为您只对返回代码感兴趣。
请注意
答案 1 :(得分:1)
你可以这样做:
[[ $(gpg --list-keys | grep -w KEY) ]] && echo "Key exists" ||
gpg --keyserver SERVER --recv-keys KEY
附加(适用于密钥环):
[[ $(apt-key list | grep -w KEY) ]] && echo "Key exists" ||
gpg --keyserver SERVER --recv-keys KEY
如果apt-key
可用