我喜欢把我的连接和一般的转储设置成变量,然后养活他们mysqldump
像这样:奇bash的行为
# echo mysqldump ${SRC_SRV} ${SRC_SQL_OPT}
mysqldump -u root -pPass -h host --where="COL > '2016-08-14' AND COL <= '2016-08-15'" --opt --single-transaction --skip-triggers --no-create-db --no-create-info dbase table
有我bash
变量:
WHERE="COL > '2016-08-14' AND COL <= '2016-08-15'"
SRC_SQL_OPT="--where=\"${WHERE}\" --opt --single-transaction --skip-triggers --no-create-db --no-create-info ${DB} ${TBL}"
请注意,当我echo
- 这一切似乎都很正常,但如果我尝试在bash
中运行它,我收到一个错误:
mysqldump: Got error: 1049: Unknown database '>' when selecting the database
这里的原因(bash -x
)的原因:
+ mysqldump -u root -pPass -h host '--where="COL' '>' ''\''2016-08-14'\''' AND COL '<=' ''\''2016-08-15'\''"' --opt --single-transaction --skip-triggers --no-create-db --no-create-info dbase table
注:现在有一堆周围--where
选项额外的单引号...... 如何?