如何将 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/"
我 运行 我的脚本通过控制台:
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/"