我目前正在尝试查询LDAP服务器,以查找传递给该脚本的电子邮件是否存在于我们的系统中。
以下是我尝试使用的ldapsearch命令:
ldapdata=`ldapsearch -h ### -b "ou=###,o=###" "email=$email" email firstname surname`
echo "ldapdata: $ldapdata"
当过滤器包含预定的电子邮件时,这非常有效,即" mail = firstname-surname @ ###"但是当传递一个变量(例如$ email)时,输出不能被进一步的grep / awk语句操纵,并且不会在echo语句中显示任何数据。
从一些谷歌搜索我发现它可能与LDAP使用的换行有关。
我已经尝试解决这个问题:
| perl -p00e 's/\r?\n //g
| sed '/^$/d
-o ldif-wrap=no
我的问题是,解决这个问题的最佳方法是什么。非常感谢提前。
答案 0 :(得分:0)
对于有同样问题的人来说,问题实际上是由于我在Windows环境中编写和测试程序。
我从dos格式的文件中提取$ email变量。
为了解决这个问题,我所做的就是:
dos2unix $FILELOCATION