我通过控制台运行我的脚本。
sh ./application.sh CurriculumVitae\ \(January\ 2020\).pdf
包含反斜杠以允许特殊字符转义。
在 application.sh 我需要对这个输入文件进行复制,所以我运行下面的代码来实际添加这些反斜杠并复制它。
ORIGINAL_FILE="$1"
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 "$1" ".temp/"