Я запускаю свой сценарий через консоль:
sh ./application.sh CurriculumVitae\ \(January\ 2020\).pdf
, содержащую обратную косую черту, позволяющую экранировать специальные символы.
В приложении . 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/'
Как решить эту проблему в переменной? Спасибо