mysqldumpツールを使用してデータベースのバックアップを取る必要があります。 私のテストテーブルには、フィルタとして使用する必要があるTIMESTAMPカラムがあります。 私は次のコードでbashスクリプトを使用しています:私は動作するはずと仮定し、コマンドを印刷していbashでmysqldumpの引用符をエスケープするには?
#!/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'""
は私が脱出引用符については理解していないよ何かはありますか?
変数を挿入していない場合は、二重引用符で囲まれた文字列を使用しても効果はありません。 –