variables在循环之外丢失

我试图使用mysqldump备份我的数据库,而忽略了一些variables中定义的表,但在循环时,我得到了最后一个表名,它被覆盖,我如何将表存储在一个variables,并得到他们在循环后?

ignoreTables=('visitors_15012016 visitors_Original') for line in $ignoreTables do echo 'mysqldump --ignore-table='$line done echo 'li '$line // here I got "visitors_Original" mysqldump --log-error=/var/log/mysql-dump/dump.log -u USER -pPASSWD DBName $line | bzip2 > /path2file/file.sql.bz2 

提前致谢

你的问题和你的脚本一起有点混乱。 当你使用一个临时variables并用它遍历你的variablesignoreTables时,它是for循环的基本逻辑,最后一个元素将保留在迭代器中。 有一件事你可以做,如果你想要一些选定的表只是倾倒在一个文件。 创build一个文件,把所有必要的表格放在里面

 for i in $(cat list_of_required_tables.txt);do mysqldump --log-error=/var/log/mysql-dump/dump.log -u USER -pPASSWD DBName $i >> mysql_dump.sql done 

或者如果您认为应该忽略的表的列表不less,那么您可以创build所有表的列表,然后创build一个您不需要的表的列表。 然后使用下面的循环。

 for i in $(cat list_of_tables_not_required.txt);do sed -i "/$i/d" list_of_all_tables.txt done 

然后使用第一个代码。