问题:
我有一个转义字符串保存在变量中:
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
将文本放在引号之间时不需要转义。
因此删除\
s
escapedFileName='/dbDumps/Mon Oct 1 15:22:50 UTC 2018.sql'
而且你不应该逃避:
,他们不需要它,而且它会破坏它。