检查密钥库中是否存在别名



我是shell脚本的新手,我有一个用于使用keytool导入证书和导入密钥仓库的脚本。这个脚本是在一个Pod中,有时我需要重新启动我的Pod,有时当这个脚本运行时,我得到这个错误

存在条目别名服务器,是否覆盖?[no]:输入新的别名name (RETURN取消此条目的导入):

我知道有一个命令列出别名

keytool -list  -keystore keystore.jks -storepass changeit -alias server

给出输出

服务器,2022年6月22日,PrivateKeyEntry,证书指纹(SHA-256): AC:DC:12:…

如果别名不存在,该命令将给出一个异常

keytool错误:java.lang.Exception: Alias不存在

如果存在一个密钥库别名,如果不允许执行keytool -importcert命令,是否有一种方法可以写支票?是否有任何返回代码,我可以比较,以继续执行?

谢谢

可以使用$?查找上次执行的命令的返回值。
0返回值表示成功,否则,在异常情况下,您将得到一个非0的数字。

keytool -list -keystore keystore.jks -storepass changeit -alias server
if [[ $? = 0 ]]; then
echo "alias is present"
else
echo "alias is not present"
fi

编辑
正如Charles Duffy指出的那样,不鼓励使用$?
你可以直接使用

if keytool -list -keystore keystore.jks -storepass changeit -alias server; then
echo "alias is present"
else
echo "alias is not present"
fi

最新更新