本文介绍了击:警告:在此行的文档通过档案结尾分隔(想`EOF')的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在bash下面的函数出现在标题中提到的错误。当最终EOF不是在该行的开头通常出现的错误。

EOF是开头,所以我不能看到什么是错的。进一步向上在脚本(未示出)之外,还有在这里,文档和他们的工作。

  add_testuser()
{
    -p的kadmin管理-q addprinc测试
    猫<<&EOF GT; 〜/ test.ldif
DN:CN =测试,OU =团体,DC = $ {ARRAY [1]},DC = $ {ARRAY [2]}
CN:测试
的gidNumber:20001
对象类:顶
对象类:posixGroupDN:UID =测试,OU =人,DC = $ {ARRAY [1]},DC = $ {ARRAY [2]}
离线测试
uidNumber:20001
的gidNumber:20001
CN:FIRST_NAME
SN:LAST_NAME
对象类:顶
对象类:人
对象类:的posixAccount
对象类:shadowAccount
登陆shell:/斌/庆典
homeDirectory的:/家庭/测试
的userPassword:{CRYPT} *
EOF    ldapadd的-qf〜/ test.ldif
    kdestroy;测试的kinit
    klist的
    ldapwhoami命令
}


解决方案

您必须经过空间的最终 EOF 因此,它无法终止定界符。

P / S:注意到了这一点,而复制粘贴您的code

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.

这篇关于击:警告:在此行的文档通过档案结尾分隔(想`EOF')的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 18:48