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

标签 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

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

最佳答案

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

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

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

dos2unix $FILELOCATION

关于linux - Ldapsearch 使用不显示数据的变量进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48095482/

相关文章:

linux - linux中的中断处理

linux - Teradata SLES Linux 服务器上的内存使用情况

regex - 如何使用 sed 删除嵌套括号内的多个括号?

wordpress - 在 nano 中使用 bash 脚本打开和更改 wp-config 文件

ldap - Activiti LDAP 集成

c++ - 从 XCode 远程调试 Linux 应用程序

linux - 从哪里获得适用于 Linux 的 msbuild

ldap - 在 inetOrgPerson 的 userSMIMECertificate 属性中添加证书

linux - 为什么在 $() 中使用管道时 bash 会执行我的脚本的 2 个实例

linux - 本地连接的 Ldap 配置文件。