Linux 包含ldapmodify-硬编码命令的shell脚本

Linux 包含ldapmodify-硬编码命令的shell脚本,linux,shell,active-directory,ldap,Linux,Shell,Active Directory,Ldap,我试图在shell脚本中运行ldapmodify命令,但我不想指定包含命令(-f标志)的外部文件。这只是为了方便起见——外部文件中的命令是动态的,因此最好避免每次shell脚本运行ldapmodify时都写入新文件。我希望脚本在命令行中输入以下内容: prompt/> ldapmodify -v -H LDAP://111.111.111.11 -D "CN=binding_user,DC=example,DC=com" -x -w password > dn: CN=group_n

我试图在shell脚本中运行ldapmodify命令,但我不想指定包含命令(-f标志)的外部文件。这只是为了方便起见——外部文件中的命令是动态的,因此最好避免每次shell脚本运行ldapmodify时都写入新文件。我希望脚本在命令行中输入以下内容:

prompt/> ldapmodify -v -H LDAP://111.111.111.11 -D "CN=binding_user,DC=example,DC=com" -x -w password
> dn: CN=group_name, OU=Groups, DC=example, DC=com
> changetype: modify
> add: member
> member: CN=Smith\, John, OU=Users, DC=example, DC=com
> (user presses Ctrl-D)
有人知道怎么做吗?

使用“此处”文档:

ldapmodify .. <<!
dn: dc=example,dc=com
changetype: modify
replace: description
 -
add: description
description: The new description
!
ldapmodify。。

例如。

您可以将文本和管道回显到ldapmodify,如下所示:

echo "dn: CN=group_name, OU=Groups, DC=example, DC=com
changetype: modify
add: member
member: CN=Smith\, John, OU=Users, DC=example, DC=com" | \
ldapmodify -h <server:port> -D "cn=binding_user,DC=example,DC=com" -c -x -w <password>
echo“dn:CN=group\u name,OU=Groups,DC=example,DC=com
变更类型:修改
地址:成员
成员:CN=Smith\,John,OU=Users,DC=example,DC=com“|\
ldapmodify-h-D“cn=binding_user,DC=example,DC=com”-c-x-w

n2studio是100%正确的。”埃科为我工作。同样使用“.| sudo ldapmodify…”进行测试,请标记为答案。(我没有被允许发表评论,没有得到50分。)

你是说这看起来像:“ldapmodify-v-H LDAP://111.111.111.11-D”CN=binding\u user,DC=example,DC=com“-x-w密码
一行本身表示此处文档的结尾和文件的结尾。如果此答案正确,则应将其标记为答案。这对我来说是很久以前的事了-接受的答案对您不起作用吗?我刚刚测试了Terry Gardner此处脚本的答案。它也可以正常工作。以下是两种解决方案,“HERE”doc方法非常有效,但在bash脚本的上下文中,它在修改
用户密码时引入了尾随空格。这种
echo
管道
方法不会产生尾随空间副作用。