我有这个文件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
当我在控制台中运行它时不会失败
答案 0 :(得分: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
编辑:您的comment表示您仍然收到错误消息。您的文件似乎有CR+LF
line endings。使用dos2unix
将行结尾转换为LF
,问题就会消失!