gpt4 book ai didi

用于搜索 LDAP 条目的 Bash 脚本

转载 作者:行者123 更新时间:2023-11-29 09:28:27 27 4
gpt4 key购买 nike

我有一个 bash 脚本,用于删除组中存在的特定用户。

首先,我提取了所有组名并将其保存到一个文件中。作为下一步,我认为我应该解析文件,对所有条目使用 ldapsearch 命令并 grep 用户,如果它存在,使用 ldapmodify 将其删除。

我的问题是如何写 if 条件,即 if [ *ldapsearch query* == True];then

这就是我的 ldapsearch 的样子,while 循环内的第一行是 if 语句。

while read grp;do
ldapsearch -w 'ldappass' -D "cn=adminuser,dc=some-domain,dc=com" -b "cn=$grp,ou=group,dc=some-domain,dc=com" | grep $someuser
done</home/someuser/tempfile.txt

在 CLI 上,此 ldapsearch 查询返回以下输出;

memberUid: 测试用户

所以本质上,如果 if 语句返回某个值(即用户存在),那么我必须删除该用户。如何获得正确的 if 语句以获得 ldapsearch 查询的 True 或 False 结果?

最佳答案

您可以使用 -z 选项,检查字符串是否为空。 [ -z "$string"] 如果字符串为空则为真。然后,这可以使它:

if [ ! -z "$(yourcommand)" ]; then
do_things
fi

例如,我们要检查目录是否为空:

if [ ! -z "$(ls)" ]; then
echo "there is something"
else
echo "this dir is empty"
fi

一起:

while IFS= read -r grp;do
if [ ! -z "$(ldapsearch -w 'ldappass' -D "cn=adminuser,dc=some-domain,dc=com" -b "cn=$grp,ou=group,dc=some-domain,dc=com" | grep $someuser)" ]; then
remove $someuser
fi
done < /home/someuser/tempfile.txt

关于用于搜索 LDAP 条目的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18204756/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com