Я пытаюсь написать небольшой сценарий bash, который преобразует исходные файлы в каталоге в .pdf. Шаги следующие:
Единственная причина, по которой я добавил iconv, это то, что enscript не поддерживает utf-8. Пока что я сделал следующий беспорядок:
#!/bin/bash
enscript --portrait --columns=1 --header ' $n|'"$2"'|%F Page $% of $=' --highlight='java' --line-numbers --output='-' --color --font='Courier8' `find $1 -name '*.java' -type f -exec iconv -f utf-8 -t iso-8859-1 {} +` | ps2pdf - "$2"'.pdf'
Запустив его, я получил следующий результат: enscript: invalid option - ',' Попробуйте `enscript --help 'для получения дополнительной информации.
Редактировать:
Эта ошибка не возникала до того, как я добавил -exec iconv.
2. редактировать:
Первоначальная формулировка, которую я сделал, была расплывчатой, и теперь я понимаю. Вот исходный сценарий, который я пытался изменить:
#!/bin/bash
`which enscript` --portrait --columns=1 --header ' $n|'"$2"'|%F Page $% of $=' --highlight='java' --line-numbers --output='-' --color --font='Courier8' `find $1'/src/' -name '*.java'` | ps2pdf - "$2"'.pdf'
./ script.sh target_dir output_file_name
Исходный сценарий объединяет все исходные файлы в папке рекурсивно в один единственный PDF-файл, причем каждый файл начинается с новой страницы. Может, мне просто пришлось смириться с необходимостью сделать это в два этапа. Сначала преобразование кодировки, а затем преобразование в PDF.
Создайте сценарий java2ps для упрощения обработки параметров
#!/bin/bash
export ENSCRIPT="
--portrait
--columns=1
--font=Courier8
--highlight=java
--color
--line-numbers
--output=-
"
iconv -f utf-8 -t iso-8859-1 "$1" \
| enscript --header=' $n|'"$1"'|%F Page $% of $='
Теперь выполнение очень простое
find -name '*.java' -type f -exec ~/java2ps {} \; | ps2pdf - > all.pdf