Предположим, что я хочу связать файлы PPT, которые нужно открыть с помощью сценария bash, который преобразует его в PDF, затем открывает его с помощью соответствующего PDF-редактора. Как мне это сделать?
Конверсия будет выполнена с uniconv, как я узнал из другого вопроса
uniconv -f pdf presentation.odt
Я считаю, что мне нужно изменить «presentation.odt» с именем файла, который вызвал этот скрипт [!d3 ]
В сценарии оболочки вы можете получить доступ к параметрам командной строки через переменную 1, 2, 3, ..., как в
#!/bin/bash
echo "$1"
echo "$2"
echo "$3"
# ...
. Если вам это нужно, «$ 0» представляет скрипт само имя.
Вы также можете переназначить эту переменную и shift для доступа к более чем 9 параметрам.
Если вы хотите найти все файлы .odt и отправить их в unoconv, вы можете использовать инструмент find, чтобы найти все из них, а затем передать его в xargs, который может выполнять параллельную обработку. [ ! d0]
find * -type f -iname "*.odt" | xargs -i -P12 "uniconv -f pdf {}"
Это будет find все файлы в текущем каталоге, рекурсивно, файлы трубопроводов, которые он находит в xargs, которые будут работать до 12 процессов в одно мгновение (используйте -P0 для неограниченных процессов) .