用于搜索LDAP条目的Bash脚本

用于搜索LDAP条目的Bash脚本,bash,openldap,Bash,Openldap,我有一个bash脚本,用于删除组中存在的特定用户 首先,我提取了所有组名并将其保存到一个文件中。作为下一步,我认为应该解析整个文件,并对所有条目使用ldapsearch命令并对用户进行grep,如果存在,则使用ldapmodify将其删除 我的问题是如何编写if条件,即if[*ldapsearch query*==True];然后 这就是我的ldapsearch的样子,while循环中的第一行是if语句 while read grp;do ldapsearch -w 'ldapp

我有一个bash脚本,用于删除组中存在的特定用户

首先,我提取了所有组名并将其保存到一个文件中。作为下一步,我认为应该解析整个文件,并对所有条目使用ldapsearch命令并对用户进行grep,如果存在,则使用ldapmodify将其删除

我的问题是如何编写if条件,即
if[*ldapsearch query*==True];然后

这就是我的ldapsearch的样子,while循环中的第一行是
if
语句

while read grp;do
        ldapsearch -w 'ldappass' -D "cn=adminuser,dc=some-domain,dc=com"  -b "cn=$grp,ou=group,dc=some-domain,dc=com"  | grep $someuser
done</home/someuser/tempfile.txt
读取grp时
;做
ldapsearch-w'ldappass'-D“cn=adminuser,dc=some domain,dc=com”-b“cn=grp,ou=group,dc=some domain,dc=com”| grep$someuser

完成您可以使用
-z
选项检查字符串是否为空<如果字符串为空,则code>[-z“$string”]
为真。然后,这可以使它:

if [ ! -z "$(yourcommand)" ]; then
    do_things
fi
例如,假设我们要检查目录是否为空:

if [ ! -z "$(ls)" ]; then
   echo "there is something"
else
   echo "this dir is empty"
fi
总而言之:

while IFS= read -r grp;do
   if [ ! -z "$(ldapsearch -w 'ldappass' -D "cn=adminuser,dc=some-domain,dc=com"  -b "cn=$grp,ou=group,dc=some-domain,dc=com" | grep $someuser)" ]; then
      remove $someuser
   fi
done < /home/someuser/tempfile.txt
而IFS=read-r grp;做
如果[!-z“$(ldapsearch-w'ldappass'-D“cn=adminuser,dc=some-domain,dc=com”-b“cn=grp,ou=group,dc=some-domain,dc=com”];然后
删除$someuser
fi
完成