質問:
変数にエスケープされた文字列が格納されています。
escapedFileName='/dbDumps/Mon\ Oct\ \ 1\ 15\:22\:50\ UTC\ 2018.sql'
ただし、次のコマンドでこのファイル名を使用しようとすると、このパスが存在しないというエラーが発生します(存在する場合でも)。
/usr/bin/mysql -u root -pmypassword system < "$escapedFileName";
文字列の代わりにパスを使用すると機能します。
/usr/bin/mysql -u root -pmypassword system < /dbDumps/Mon\ Oct\ \ 1\ 15\:22\:50\ UTC\ 2018.sql
私は何が間違っていましたか?
答え1
引用符の間にテキストを入れるときにエスケープする必要はありません。
だから削除し\
てください
escapedFileName='/dbDumps/Mon Oct 1 15:22:50 UTC 2018.sql'
そしてあなたはそれから逃げてはいけません:
。彼らはそれを必要とせず、それを破壊します。