我有shell程序,它返回一个列表:
list-all-my-users.sh
结果是:
username1
username2
username3
username4
username5
现在我想在另一个程序中使用结果
ldapsearch -D "adminuser" -w "password" -p 389 -h server.domain.de -b "DC=ORG,DC=com" -s sub "(&(objectclass=person)(cn=<USERNAME))" | grep employeeID: | awk '{print $2}'
我可以向某人展示一个例子吗?我想避免将结果保存在文本文件中并解析它们。
while(list-all-my-users.sh)
{
foreach result
{
# LDAPSearch
}
}
答案 0 :(得分:0)
使用while循环
while read username
do
ldapsearch -D "adminuser" -w "password" \
-p 389 -h server.domain.de \
-b "DC=ORG,DC=com" \
-s sub "(&(objectclass=person)(cn=${username}))" |
awk '/employeeID:/{print $2}'
done<list-all-my-users.sh
您可能已经注意到,我们正在使用list-all-my-users.sh
变量将每个结果从ldapsearch
传递到${username}
。此外,您无需同时使用grep
和awk
。而是使用awk
构造在/pattern/
中搜索模式。