Я новичок в Bash, так что это может быть что-то тривиальное, но я просто не понимаю. Я пытаюсь избежать пробелов внутри имен файлов. Взглянуть. Обратите внимание, что это «рабочий пример» — я понимаю, что чередование файлов с пустыми страницами может быть выполнено проще, но я здесь о пространстве.
#! /bin/sh
first=true
i=combined.pdf
o=combined2.pdf
for f in test/*.pdf
do
if $first; then
first=false
ifile=\"$f\"
else
ifile=$i\ \"$f\"
fi
pdftk $ifile blank.pdf cat output $o
t=$i
i=$o
o=$t
break
done
Скажем, у меня есть файл с именем my file.pdf
(с пробелом). Я хочу, чтобы переменная ifile содержала строку combined.pdf "my file.pdf"
, чтобы pdftk мог использовать ее как два файловых аргумента — первый из них — combined.pdf
, а второй — my file.pdf
.
Я пробовал различные способы экранирования (с или без предварительного экранирования самих кавычек и т. д.), но он продолжает разбивать my
и file.pdf
при выполнении pdftk.
РЕДАКТИРОВАТЬ: Чтобы уточнить: я пытаюсь передать несколько имен файлов (как несколько аргументов) в одной переменной команде pdftk. Я хотел бы, чтобы он распознавал разницу между двумя именами файлов, но не разрывал одно имя файла на пробелы.
pdftk "$i" "$f" ...
- person glenn jackman   schedule 01.10.2013