2013-07-24 61 views
1

我試圖在shell腳本中運行ldapmodify命令,但我不想指定包含命令(-f標誌)的外部文件。這只是爲了方便 - 外部文件中的命令是動態的,所以每次shell腳本運行ldapmodify時避免寫一個新文件會很好。我想要腳本基本上輸入以下命令行:包含ldapmodify的shell腳本 - 硬編碼命令

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) 

任何人都知道如何做到這一點?

回答

5

使用 「here」 文檔:

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

例如。

+0

你是說那看起來像:「ldapmodify -v -H LDAP://111.111.111.11 -D」CN = binding_user,DC = example, DC = COM 「!-x -w密碼<< DN:DC =例如,DC = COM 一changeType:修改 更換:說明 - !地址:說明 介紹:新描述 」 ?那麼EOF角色呢?這是佔了嗎? – SheerSt

+0

一行上的'!'本身表示這裏文檔的結尾和文件的結尾。 –

+0

如果這個答案是正確的,它應該被標記爲答案。 –

0

您只需呼應文字和管到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> 
0

n2studio是100%正確的。 '回聲'爲我工作。還用「.. | sudo ldapmodify ...」進行測試請標記爲答案。 (我沒有被允許發表評論,沒有得到50分。)

+0

對我而言,這是很久以前的事了 - 接受的答案不適合你嗎? – SheerSt

+0

我剛剛測試了特里加德納HERE腳本答案。它也可以工作。這些是2種解決方案。 – Adey