lukeer Ответов: 0

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 выводит свое справочное сообщение. Поэтому я предполагаю, что что-то не так с аргументами, которые я ему привел.
Но когда я копирую вывод первой строки в командную строку того самого терминала, в котором запускался скрипт, он pdfunites все вместе прекрасно.

Итак: какая разница в выполнении чего-то (что не работает), чтобы распечатать его на консоли и скопировать в новую строку для выполнения (что действительно работает)?

Что я уже пробовал:

Распечатайте соответствующую команду на консоли перед ее фактическим выполнением. И попытался выполнить распечатанную версию (которая на самом деле работает).

Richard MacCutchan

Попробуйте обойтись без символов двойных кавычек.

lukeer

Эта работа. Большое спасибо.
Сделайте это ответом, и я буду голосовать за него столько, сколько он получит.

Могу я спросить, знаете ли Вы правило, когда использовать кавычки, а когда нет, или что вызывает такое поведение в данном случае?

Richard MacCutchan

Все в порядке, мне не нужны голоса, простого "Спасибо" более чем достаточно. Я думаю, вы обнаружите, что когда имена файлов заключены в кавычки, то программа будет видеть их как одну строку, а не как три отдельных параметра. Введите "man bash" в терминале, и вы должны найти объяснение на странице man.

0 Ответов