如何将 cp / mv 或命令设置为包含 shellscript 中特定字符的变量中的文件名?

How to cp / mv or command to a filename set in a variable containing particular character in shellscript?

我 运行 我的脚本通过控制台:

sh ./application.sh CurriculumVitae\ \(January\ 2020\).pdf

包含反斜杠以允许特殊字符转义。

application.sh 中,我需要复制这个输入文件,所以我 运行 下面的代码实际添加那些反斜杠并复制它:

ORIGINAL_FILE=""
COMMAND_FILE=$( echo "$ORIGINAL_FILE" | sed 's/ /\ /g' )

eval cp "$COMMAND_FILE" ".temp/"

其中 $1 是 CurriculumVitae (January 2020).pdf,$ORIGINAL_FILE 是 CurriculumVitae\ \(January\ 2020\).pdf

但是我的 eval cp "$COMMAND_FILE" ".temp/" 失败并出现以下错误:

./application.sh: eval: line 52: syntax error near unexpected token `('
./application.sh: eval: line 52: `cp CurriculumVitae\ \(January\ 2020\).pdf .temp/'

如何在变量中解决这个问题?谢谢

三行命令应该简单地替换为这一条cp "" ".temp/"