<分区>
我的 .bash_profile 中有一个 bash 函数,它没有将结果返回到终端。 当我通过 CLI 正常运行命令时,返回结果。
ldap_check_cleaup ()
{
ldapsearch -LLL -h itdsvbms.SomeDomain.org -p 389 \
-D "uid=SomeUser,o=SomeDomain.org" -w SomePassWord -b "ou=People,o=SomeDomain.org" \
-s sub '(&(ReservedRMAliases=$1)(!(RMid=*))(RMAliasUpdateDate=12/01/2012 19:02:00)(RMAliasStatus=IN)(status=IN))' | \
tee /dev/tty
}
运行 ldap_check_clenaup TestRecord 从 bash 提示执行时不返回任何输出。 TestRecord 确实存在,当从 CLI 运行以下命令时,将返回正确的记录:
ldapsearch -LLL -h itdsvbms.SomeDomain.org -p 389 -D "uid=SomeUser,o=SomeDomain.org" \
-w SomePassWord -b "ou=People,o=SomeDomain.org" \
-s sub '(&(ReservedRMAliases=TestRecord)(!(RMid=***))(RMAliasUpdateDate=12/01/2012 19:02:00)(RMAliasStatus=IN)(status=IN))' | \
tee /dev/tty`
只有当我尝试将此 ldapsearch 和参数用作 bash 函数时,才会出现输出不足的情况。
我认为这可能与使用 ' 而不是 "作为属性 (!(RMid=*)) 有关,但我不确定,请帮忙。