The following function in bash comes up with the error mentioned in the title. The error usually appears when the final EOF
is not at the beginning of the line.
EOF
is at the beginning so I can't see what is wrong. Further up in the script (not shown) there are other here-docs and they work.
add_testuser()
{
kadmin -p admin -q addprinc test
cat <<EOF > ~/test.ldif
dn: cn=test,ou=groups,dc=${ARRAY[1]},dc=${ARRAY[2]}
cn: test
gidNumber: 20001
objectClass: top
objectClass: posixGroup
dn: uid=test,ou=people,dc=${ARRAY[1]},dc=${ARRAY[2]}
uid: test
uidNumber: 20001
gidNumber: 20001
cn: First_name
sn: Last_name
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
homeDirectory: /home/test
userPassword: {CRYPT}*
EOF
ldapadd -Qf ~/test.ldif
kdestroy; kinit test
klist
ldapwhoami
}
You have a space after the final EOF
hence it was unable to terminate the heredoc.
p/s: Noticed this while copy-pasting your code.