.bash_profile ldapsearch函数没有输出到终端

时间:2014-09-10 15:29:23

标签: linux bash function output .bash-profile

我的.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 = *))有关,但我不确定,请帮忙。

1 个答案:

答案 0 :(得分:2)

您需要在包含$1的参数周围使用双引号。在单引号字符串中不执行可变插值。