【发布时间】:2017-03-10 19:23:00
【问题描述】:
在运行 ldapsearch 时,我们会得到一个指示成功或失败的返回码。这样我们就可以使用 if 语句来检查是否成功。
使用调试失败时,如果证书验证失败,则会打印出来。如何在检查 ldapsearch 成功或失败时捕获命令的输出?
ldapIP=`nslookup corpadssl.glb.intel.com | awk '/^Address: / { print $2 }' | cut -d' ' -f2`
server=`nslookup $ldapIP | awk -F"= " '/name/{print $2}'`
ldap='ldapsearch -x -d8 -H "ldaps://$ldapIP" -b "dc=corp,dc=xxxxx,dc=com" -D "name@am.corp.com" -w "366676" (mailNickname=sdent)"'
while true; do
if [[ $ldap ]] <-- capture text output here ??
then
:
else
echo $server $ldapIP `date` >> fail.txt
fi
sleep 5
done
【问题讨论】:
-
在
ldapsearch之后检查$?。 -
顺便说一句,将命令存储在字符串中是非常糟糕的做法。请参阅BashFAQ #50 和(回复:
eval)BashFAQ #48。如果您不是意味着将命令的文本存储在字符串中,而只是意味着存储其输出,那么......好吧,那是一个完全不同的问题。
标签: bash if-statement output conditional