このエラーが発生しますバッシュ私の仮想ホスティングの cron タスクで、コマンドは次のとおりです。
/usr/bin/mysqldump --user=USERNAME --password="C\(mRA0_ifmv\(" DATABASE > ROOTFOLDER/backup/$(date +%F).sql && gzip ROOTFOLDER/backup/$(date +%F).sql
私は本当のユーザー、データベースそしてホームフォルダセキュリティ上の理由から、パスワードがこのエラーの原因であることは理解していますが、変更したくありません。
開き括弧文字をエスケープしたり、このエラーを回避するにはどうすればよいですか?また、なぜ「\」が機能しないのですか?
答え1
パスワードには一重引用符を使用してください。
--password='C\(mRA0_ifmv\('
文字を一重引用符 (''') で囲むと、引用符内の各文字のリテラル値が保持されます。一重引用符は、その前にバックスラッシュがあっても、一重引用符の間に出現することはできません。
文字を二重引用符 ('"') で囲むと、'$'、'`'、'\'、および履歴拡張が有効になっている場合は '!' を除く、引用符内のすべての文字のリテラル値が保持されます。