Мне нужно сделать резервную копию моей базы данных с помощью инструмента mysqldump. В моей тестовой таблице есть столбец TIMESTAMP, который я должен использовать в качестве фильтра. Я использую Баш скрипт со следующим кодом:Как избежать цитат mysqldump в bash?
#!/bin/bash
cmd="mysqldump --verbose --opt --extended-insert --result-file /home/backups/mysql/test/test_table.20161205.bak test --where=\"timestamp_c>='2016-12-03 00:00:00'\" --tables \"test_table\""
echo $cmd
$cmd
Я печатая команду, которую я предполагаю, должен работать. Вышеприведенный сценарий производит выход:
mysqldump --verbose --opt --extended-insert --result-file /home/backups/mysql/test/test_table.20161205.bak test --where="timestamp_c>='2016-12-03 00:00:00'" --tables "test_table"
Если я копирую печатную команду на терминал, это работает; Однако , команда на сценарии печати ошибки:
mysqldump: Couldn't find table: "00:00:00'""
Есть ли что-то, что я не понимая о кавычке бежать?
Если вы не впрыскиваете переменные, я не вижу преимуществ в использовании строк с двумя кавычками. –