【发布时间】:2019-02-19 01:13:57
【问题描述】:
我有一个脚本可以找到所有证书。系统上的身份然后我想再添加一个证书。并删除证书的其余部分,除了最近添加的部分。
第一个循环找到我们在系统中有多少个身份,并将数组设置为$var1 $var2 $var3,没有。继续。
然后我再添加一个。
现在我想在这里删除 1 个循环数组值 for loop。但是我的 $DEL 变量是 var1 var2,而不是我们在第一个循环中设置的实际身份。
#!/bin/bash
DOM=$(/usr/sbin/dsconfigad -show | grep "Active Directory Domain" | awk '{ print $5 }')
MAC=$(/usr/sbin/dsconfigad -show | grep "Computer Account" | awk '{ print $4 }' | tr -d "$")
HOST=$MAC.$DOM
CRT=$(security find-identity -v | grep $HOST | awk '{ print $2}')
set - $CRT; index=0; while [ "$1" ];
do
let index=$index+1;
eval var${index}="$1";
shift;
done
以上循环结果为:+ set - 02KFKDSF89SFMDFMFS7908934M90DODFSMN78345 K69SKLD04KCM62469933FA60567LLFD730957FA3 489FHDFS93MDF89UY2345905DFSKDDSKFDS9FSEF
echo $var1
echo $var2
回显 $var1 是:02KFKDSF89SFMDFMFS7908934M90DODFSMN78345
回显 $var2 是:K69SKLD04KCM62469933FA60567LLFD730957FA3
NUMCRT=$index
echo "Number of Certificate is $NUMCRT"
echo "Add of Script part bla bla Start"
echo "ADD one more Cert"
echo "Add of Script part bla bla END"
现在我想删除在第一个循环中找到的数组值。但是$DEL 的值即将到来var1 var2 var3 而不是02KFKDSF89SFMDFMFS7908934M90DODFSMN78345 K69SKLD04KCM62469933FA60567LLFD730957FA3 489FHDFS93MDF89UY2345905DFSKDDSKFDS9FSEF。
for i in $(seq 1 $NUMCRT);
do
let $i;
DEL="var$i"
echo "Delete number $DEL"
done
它应该在第二个for循环值中显示echo "Delete number $DEL",如下所示。
Delete number 02KFKDSF89SFMDFMFS7908934M90DODFSMN78345
Delete number K69SKLD04KCM62469933FA60567LLFD730957FA3
Delete number 489FHDFS93MDF89UY2345905DFSKDDSKFDS9FSEF
【问题讨论】: