如何从keytool命令输出中提取_abc_开头证书名并存入变量
最简实现方案
你可以直接用如下一行命令完成需求,执行后cert1变量存_abc_sec1,cert2变量存_abc_sec2:
read -r cert1 cert2 < <(keytool -list -keystore /etc/pki/java/cacerts -storepass "changeit" | awk -F, '/_abc_/{print $1}')
方案说明
- 调用
awk匹配所有包含_abc_的行,按逗号分割后取第一个字段,正好是你需要的证书别名 - 通过进程替换把awk输出的两个结果直接传给
read命令完成变量赋值,不需要额外写循环或者中间文件
如果后续可能匹配到更多_abc_开头的证书,推荐用数组存储所有结果,扩展性更强:
certs=($(keytool -list -keystore /etc/pki/java/cacerts -storepass "changeit" | awk -F, '/_abc_/{print $1}'))
使用时通过下标取值即可:${certs[0]}对应第一个证书别名,${certs[1]}对应第二个。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

