Linux bash предоставляет аргументы pdfunite
Привет форум,
сценарий bash, который я написал, ведет себя неожиданно (читай: "в нем есть ошибка"), и я просто не понимаю этого.
Скажем есть такая переменная
PAGES
который содержит " page0.pdf page1.pdf page2.pdf"
... И есть $1
который содержит "result.pdf"
.Я хочу объединить все эти одностраничные pdf-файлы в один многостраничный pdf-файл. Есть
pdfunite
для этого. Первая строка фрагмента кода выводит на экран то, что пытается выполнить скрипт, вторая строка делает именно это (или мне так показалось).echo pdfunite "$PAGES" "$1" pdfunite "$PAGES" "$1"В этот момент,
pdfunite
выводит свое справочное сообщение. Поэтому я предполагаю, что что-то не так с аргументами, которые я ему привел.Но когда я копирую вывод первой строки в командную строку того самого терминала, в котором запускался скрипт, он
pdfunite
s все вместе прекрасно.Итак: какая разница в выполнении чего-то (что не работает), чтобы распечатать его на консоли и скопировать в новую строку для выполнения (что действительно работает)?
Что я уже пробовал:
Распечатайте соответствующую команду на консоли перед ее фактическим выполнением. И попытался выполнить распечатанную версию (которая на самом деле работает).
Richard MacCutchan
Попробуйте обойтись без символов двойных кавычек.
lukeer
Эта работа. Большое спасибо.
Сделайте это ответом, и я буду голосовать за него столько, сколько он получит.
Могу я спросить, знаете ли Вы правило, когда использовать кавычки, а когда нет, или что вызывает такое поведение в данном случае?
Richard MacCutchan
Все в порядке, мне не нужны голоса, простого "Спасибо" более чем достаточно. Я думаю, вы обнаружите, что когда имена файлов заключены в кавычки, то программа будет видеть их как одну строку, а не как три отдельных параметра. Введите "man bash" в терминале, и вы должны найти объяснение на странице man.