使用不显示数据的变量进行Ldapsearch过滤

时间:2018-01-04 12:35:48

标签: linux bash ldap

我目前正在尝试查询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

我的问题是,解决这个问题的最佳方法是什么。非常感谢提前。

1 个答案:

答案 0 :(得分:0)

对于有同样问题的人来说,问题实际上是由于我在Windows环境中编写和测试程序。

我从dos格式的文件中提取$ email变量。

为了解决这个问题,我所做的就是:

dos2unix $FILELOCATION