Просто a bash
быстрое использование выстрела pdfjam
:
Создайте массив входных параметров:
for k in $(seq 1 ${N_PAGES}); do
PAGES+=(odd.pdf);
PAGES+=($k);
PAGES+=(even.pdf);
PAGES+=($k);
done
Это должно позволить Вам использовать его в качестве входного списка для pdfjoin
:
pdfjoin ${PAGES[@]} --outfile shuffled.pdf
Хорошо я думаю, что Ваш заголовок вопроса немного неумышленно вводит в заблуждение, с тех пор в тексте Вы говорите, что уже нашли устройство и спрашиваете, как программно сделать так. Один вопрос, который приходит на ум, состоит в том, как Вы вручную нашли его и почему Вы не могли просто написать сценарий вокруг этого. Я отвечу на вопрос как лучше всего, я могу в его текущей форме, извинения заранее, если я промахиваюсь.
Материал как это является невероятно переменным и определенным для устройства. Это - соображения как это, которые требуют адаптеров драйверов/программного обеспечения даже в высокоуровневом программном обеспечении. Таким образом, необходимо, вероятно, привыкнуть к идее, что этот сценарий сделает эту конкретную вещь вместо того, чтобы абстрагировать к некоторому универсальному процессу (который является тем, что я предполагаю, что Вы пытаетесь сделать).
Как немного фона: Каждой подобной шине системе (USB, SCSI, PCI, и т.д.) нужна некоторая форма обращения к устройствам. С lspci
это значения, которые Вы видите на крайней левой из каждой строки в выводе по умолчанию.
Сокращенный пример:
[root@hypervisor pyadmin]# lspci
00:00.0 Host bridge: Intel Corporation 5400 Chipset Memory Controller Hub (rev 20)
00:1d.1 USB controller: Intel Corporation 631xESB/632xESB/3100 Chipset UHCI USB Controller #2 (rev 09)
00:1d.2 USB controller: Intel Corporation 631xESB/632xESB/3100 Chipset UHCI USB Controller #3 (rev 09)
04:00.0 PCI bridge: Intel Corporation 6311ESB/6321ESB PCI Express Downstream Port E1 (rev 01)
04:01.0 PCI bridge: Intel Corporation 6311ESB/6321ESB PCI Express Downstream Port E2 (rev 01)
07:05.0 Fibre Channel: QLogic Corp. ISP2422-based 4Gb Fibre Channel to PCI-X HBA (rev 02)
07:06.0 Fibre Channel: QLogic Corp. ISP2422-based 4Gb Fibre Channel to PCI-X HBA (rev 02)
08:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5754 Gigabit Ethernet PCI Express (rev 02)
Адреса PCI являются 08:00.0, 07:06.0, и т.д.
Как Вы сказали, sysfs каталог, на который Вы смотрите, для одного из модулей (usbled
) таким образом, Вы смотрите на информацию sysfs, имеет на том модуле, который включает устройства, которые используют модуль (или наоборот, если Вам нравится). 1-1.2:1.0
Вы смотрите на, представляет устройство и ссылается, он - Адрес USB (в терминологии USB "конечная точка").
Таким образом, если бы Вы уже знаете модуль, я в основном отфильтровал бы известные значения и только искал бы dentry's, которые содержат и двоеточия и периоды, поскольку существует очень мало шанса другого dentry в той детали sysfs
каталог, когда-либо создаваемый с именем как этот, если это не подключенное устройство.
Я знаю, что это немного повсеместно, но я вполне уверен Ваш ответ там где-нибудь.