gpt4 book ai didi

mysql - Bash 脚本中的意外文件结尾?

转载 作者:太空宇宙 更新时间:2023-11-03 12:36:18 25 4
gpt4 key购买 nike

这只是一个小脚本,用于将用户添加到电子邮件 MySQL 数据库,如果定义了参数,则为其分配别名,向用户发送欢迎电子邮件,并向其他人发送电子邮件通知有关新人。但每次我尝试运行脚本时,我只会收到消息 UNEXPECTED END OF FILE。这是脚本:

#! /bin/bash

USER=$1
SECTOR=$2

if [ -z "${SECTOR}" ];
then
mysql --host=localhost --user=verysecretdatabaseuser --password=verysecretdatabasepass mydatabase << EOF
insert into users (email,name,uid,gid,homedir,maildir,crypt,force_change_pwd) values("${USER}@example.com.br","${USER}",1001,1001, "/var/mail/${USER}/","/var/mail/${USER}/.maildir/",ENCRYPT("verysecretdefaultpass"), "yes" );
EOF
else
mysql --host=localhost --user=verysecretdatabaseuser --password=verysecretdatabasepass mydatabase << EOF
insert into users(email,name,uid,gid,homedir,maildir,crypt,force_change_pwd) values("${USER}@example.com.br","${USER}",1001,1001,"/var/mail/${USER}/","/var/mail/${USER}/.maildir/",ENCRYPT("verysecretdefaultpass"), "yes" ); EOF
insert into alias(alias,destination) values ("${SECTOR}@example.com.br", "${USER}@example.com.br");
EOF
fi

# send e-mail so my postfix can create the mail directories
/usr/sbin/sendmail -f me@example.com.br "${USER}@example.com.br" << EOF
Subject: Bem Vindo!
Seja bem vindo ao Servidor de e-mails da Empresa! Com muito orgulho hospedamos nosso e-mail em nosso próprio servidor. Em caso de dúvidas contacte <me@example.com.br>
.
EOF

# fetching everyone already in the database
users=`mysql --user=myverysecretuser --password=myverysecretpass -s -N -e "SELECT myverysecretfield FROM myverysecretdatabase.myverysecretusertable"`

#sending an e-mail to each user
for user in $users
do
echo "${user}"
/usr/sbin/sendmail -f me@example.com.br "${user}" << EOF
Subject: Funcionario novo!
Prezados, deem as boas vindas ao funcionario novo "${USER}" que acabou de entrar no departamento de "${SECTOR}". Para se comunicar com o funcionario novo, basta enviar e-mails para: "${USER}@example.com.br". O funcionario novo tambem recebera e-mails que forem enviados para "${SECTOR}@example.com.br".
.
EOF
done

我做错了什么?

最佳答案

试试这个:

#! /bin/bash

USER=$1
SECTOR=$2

if [ -z "${SECTOR}" ];
then
mysql --host=localhost --user=verysecretdatabaseuser --password=verysecretdatabasepass mydatabase << EOF
insert into users (email,name,uid,gid,homedir,maildir,crypt,force_change_pwd) values("${USER}@example.com.br","${USER}",1001,1001, "/var/mail/${USER}/","/var/mail/${USER}/.maildir/",ENCRYPT("verysecretdefaultpass"), "yes" );
EOF
else
mysql --host=localhost --user=verysecretdatabaseuser --password=verysecretdatabasepass mydatabase << EOF
insert into users(email,name,uid,gid,homedir,maildir,crypt,force_change_pwd) values("${USER}@example.com.br","${USER}",1001,1001,"/var/mail/${USER}/","/var/mail/${USER}/.maildir/",ENCRYPT("verysecretdefaultpass"), "yes" ); EOF
insert into alias(alias,destination) values ("${SECTOR}@example.com.br", "${USER}@example.com.br");
EOF
fi

# send e-mail so my postfix can create the mail directories
/usr/sbin/sendmail -f me@example.com.br "${USER}@example.com.br" << EOF
Subject: Bem Vindo!
Seja bem vindo ao Servidor de e-mails da Empresa! Com muito orgulho hospedamos nosso e-mail em nosso próprio servidor. Em caso de dúvidas contacte <me@example.com.br>
.
EOF

# fetching everyone already in the database
users=`mysql --user=myverysecretuser --password=myverysecretpass -s -N -e "SELECT myverysecretfield FROM myverysecretdatabase.myverysecretusertable"`

#sending an e-mail to each user
for user in $users
do
echo "${user}"
/usr/sbin/sendmail -f me@example.com.br "${user}" << EOF
Subject: Funcionario novo!
Prezados, deem as boas vindas ao funcionario novo "${USER}" que acabou de entrar no departamento de "${SECTOR}". Para se comunicar com o funcionario novo, basta enviar e-mails para: "${USER}@example.com.br". O funcionario novo tambem recebera e-mails que forem enviados para "${SECTOR}@example.com.br".
.
EOF
done

结束 EOF 必须在行的开头。

您可以在 dry-run 模式下测试您的脚本:

bash -n script.sh

关于mysql - Bash 脚本中的意外文件结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12963155/

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