Моя конкретная проблема
Моя цель - предоставить утилиту командной строки для преобразования файлов PowerPoint в PDF-файлы.Я пробовал решения, которые используют unoconv, но они не выполняют преобразование должным образом.Я нашел хороший рабочий процесс , который я сохранил как export_pdf.workflow
.Я могу запустить это из терминала для файла:
/usr/bin/automator -i <some_pptx_file> export_pdf.workflow
, который делает то, что я хочу.
Я хочу сделать это в сценарии оболочки, но проблема в том, зная, куда поместитьрабочий процесс.Я включил строку использования (поэтому на самом деле не MWE), чтобы помочь выразить намерение.
#!/usr/bin/env bash
function usage()
{
cat <<HEREDOC
Usage: $progname [--delete] PPTX_FILENAME
Converts PPTX_FILENAME into a PDF by launching PowerPoint.
PDF is produced in same directory as PPTX_FILENAME.
optional arguments:
-h, --help show this help and exit
HEREDOC
}
while true; do
case "$1" in
-h | --help ) usage; exit; ;;
-- ) # end argument parsing
shift; break;;
* ) break;;
esac
done
# This is the line I have a question about
/usr/bin/automator -i $1 export_pdf.workflow
Это прекрасно работает, при условии Я запускаю его из каталога, который содержит export_pdf.workflow
.В идеале я хотел бы распространить это, чтобы жить в одном из двоичных файлов, но я не думаю, что мне следует также перемещать неисполняемый файл, такой как export_pdf.workflow
, в каталог bin
.
Решенияэто не сработает в этом случае (или, по крайней мере, я ищу лучшие!)
- Абсолютный путь снабжения : это будет работать на моей машине, но не если япытаюсь распространить среди других
- Поместить шебанг в
export_pdf.workflow
и сделать его исполняемым : в истинном стиле Apple это фактически каталог, а не просто один файл, который передается вAutomator.
Общая проблема
За пределами моего конкретного случая, проблема, которую я пытаюсь решить, состоит в том, что у меня есть файл, который принимает много аргументов, иУ меня есть случай использования, когда я хочу предоставить некоторые файлы в качестве аргументов по умолчанию (например, у меня есть файл конфигурации, который я всегда хочу указать).
Где находится "правильное" или "принятое" место для размещения файла some_local_file (локально для скрипта, а не там, где выполняется файл), чтобы я мог поместить следующий скрипт в /usr/local/bin/
или добавить каталог, содержащий егона путь:
#!/usr/bin/env bash
some_program -c some_local_file $1