我有一个脚本可以在 macOS 上检查证书的身份。
security find-identity -v | grep my-cert.test.com
结果是:
1) 13DB7FSDF188E2C4454KK33E5E0A7B4LK6714658 "my-cert.test.com"
2) 5L56971E29DFA20LHD5E2CEA9DF6J7C46C2D0FD5 "my-cert.test.com"
3) JS34KL78LG620CJKMDFBV5K1K56MNCL9M6SD61L "my-cert.test.com"`
用来awk
拉只是身份
security find-identity -v | grep my-cert.test.com | awk '{ print $2}’
结果是:
13DB7FSDF188E2C4454KK33E5E0A7B4LK6714658
5L56971E29DFA20LHD5E2CEA9DF6J7C46C2D0FD5
JS34KL78LG620CJKMDFBV5K1K56MNCL9M6SD61L
这意味着我有 3 个证书,并且awk
我已将其余证书分开,并在多个结果之间使用空格拉出身份。现在我想将上面的grep
结果设置在一个变量中。如果grep
结果是 3 行,如上所述,将它们设置在不同的变量中。我知道我可以将其放入单个变量中,var=$(...)
但我希望将结果分开。
例子:
ONE=13DB7FSDF188E2C4454KK33E5E0A7B4LK6714658
TWO=5L56971E29DFA20LHD5E2CEA9DF6J7C46C2D0FD5
THREE=JS34KL78LG620CJKMDFBV5K1K56MNCL9M6SD61I4
如果更多,请继续。
我需要这个,以便我可以在进一步的脚本中使用这些变量。所述grep
输出可以是线,1个或更多的任意数量。
您能否尝试以下操作,您可以将awk
的结果保存到一个数组中,然后您也可以在程序中进一步使用该数组的值。(我grep
从您的尝试中删除,因为它awk
可以自行处理字符串部分的搜索。)
CRT=($(security find-identity -v | awk '/my-cert.test.com/{ print $2}'))
现在您可以访问(数组的所有时间)CRT
由以下命名的数组。
count=0
for i in "${CRT[@]}"
do
echo "CRT["$count"]=$i"
count=$((count + 1))
done
这就是数组存在的原因——如果我们需要单独存储许多相同类型的值,而不是使用 N 个变量,而是使用数组并通过数组索引访问各个值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句