私はこのように、私のデータベースをダンプするためのスクリプトを持っている:私はターミナルでコマンドを実行するとエスケープ中括弧
#!/usr/bin/env sh
PATH=/usr/bin:/bin
LOG="mybackup/log/backup_$(date +%Y-%m-%d_%H:%M:%S).log"
# some other command
# backup mysql database
echo "Backing up database" > ~/$LOG
mysqldump -u myusername -pmypassword --ignore-table={db1.table1,db1.table2,db1.table3,db1.table4} db1 -r ~/mybackup/db/db1_$(date +%Y-%m-%d_%H:%M:%S).sql >> ~/$LOG 2>&1
# some other command
、それが正常に無視されたテーブルずに自分のデータベースをダンプします。しかし、私はスクリプトを介してコマンドを実行すると、データベース内のすべてのテーブルをダンプします。
mysqldump -u myusername -pmypassword --ignore-table=\{db1.table1,db1.table2,db1.table3,db1.table4\} db1 -r ~/mybackup/db/db1_$(date +%Y-%m-%d_%H:%M:%S).sql
をそれはまだ、すべてのテーブルをダンプ:
私は、中括弧をエスケープすることを試みました。
私の質問は、シェルスクリプトで中かっこを正しくエスケープする方法です。
私は正式な回答をしませんので、このオプションを複数回指定する方が簡単です。 "複数のテーブルを無視するには、このオプションを複数回使用する"と言います。 –
愚かなことは(メモリから)おそらく のようにスクリプトのエスケープをエスケープします。 –