12

bash 中的以下函数会出现标题中提到的错误。当finalEOF不在行首时,通常会出现错误。

EOF是在开始,所以我看不出有什么问题。在脚本(未显示)的更深处,还有其他 here-docs 并且它们可以工作。

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
}
4

1 回答 1

35

你在决赛之后有一个空间,EOF因此它无法终止heredoc。

p/s:在复制粘贴代码时注意到了这一点。

于 2012-10-16T07:10:36.557 回答