'%20%E3%82%92%E6%A4%9C%E7%B4%A2%E4%B8%AD%E3%81%AB%E4%BA%88%E6%9C%9F%E3%81%97%E3%81%AA%E3%81%84%20EOF%20%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F.png)
このエラーが発生しますバッシュ私の仮想ホスティングの 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\('
文字を一重引用符 (''') で囲むと、引用符内の各文字のリテラル値が保持されます。一重引用符は、その前にバックスラッシュがあっても、一重引用符の間に出現することはできません。
文字を二重引用符 ('"') で囲むと、'$'、'`'、'\'、および履歴拡張が有効になっている場合は '!' を除く、引用符内のすべての文字のリテラル値が保持されます。