我正在编写一个应用程序,该应用程序将帮助用户绑定到我们服务器的打开目录(如果不存在)。它将测试命令的输出是否为空,并帮助删除任何旧的打开目录并添加新目录。
如果脚本遇到某些条件,我应该如何将新域名添加到 Open Directory Server 时遇到问题。我究竟做错了什么?有关示例,请参见输出...
#!/bin/bash -x
# FUNCTIONS
# Verify that foo.com exists
function check_new () {
# LOCAL VARIABLES
OLD="bar.com"
NEW="foo.com"
for i in `dscl localhost -list /LDAPv3`; do
if [[ $i != 0 ]]; then
dsconfigldap -v -r ${OLD} && dsconfigldap -v -a ${NEW}
else
dsconfigldap -v -a ${NEW}
fi
done
}
# MAIN CODE
exec 1> >(logger -s -t $(basename $0)) 2>&1
check_new; exit 0
样本输出
案例1)不存在服务器(如果我们不展开$?
退出状态,则不返回任何内容。我们应该添加新域名。
$ dscl localhost -list /LDAPv3; echo $?
0
案例 2) 旧服务器存在。我们应该删除旧服务器并添加新服务器。
$ dscl localhost -list /LDAPv3; echo $?
bar.com
0
案例 3) 存在旧服务器和新服务器。忽略新服务器并删除旧服务器。
$ dscl localhost -list /LDAPv3; echo $?
foo.com
bar.com
0
案例 4) 新服务器存在。没做什么。
$ dscl localhost -list /LDAPv3; echo $?
foo.com
0