-1

我有这个文件 backup_mysql.sh

#!/bin/sh
for I in $(mysql --database=db1 -e 'show tables' -s --skip-column-names); do mysqldump db1 $I | gzip > "/home/user/backup/mysql/db1/$I.sql.gz";
for I in $(mysql --database=db2 -e 'show tables' -s --skip-column-names); do mysqldump db1 $I | gzip > "/home/user/backup/mysql/db2/$I.sql.gz";

并产生此错误:

line 4: syntax error: unexpected end of file

当我在控制台中运行它时不会失败

4

1 回答 1

0

您在循环done结束时丢失了。for说:

for I in $(mysql --database=db1 -e 'show tables' -s --skip-column-names); do mysqldump db1 $I | gzip > "/home/user/backup/mysql/db1/$I.sql.gz"; done
for I in $(mysql --database=db2 -e 'show tables' -s --skip-column-names); do mysqldump db1 $I | gzip > "/home/user/backup/mysql/db2/$I.sql.gz"; done

编辑:您的评论表明您仍然遇到错误。您的文件似乎有CR+LF 行尾。使用dos2unix将行尾转换为LF,问题就消失了!

于 2013-09-24T13:44:50.017 回答