Как я могу инициировать событие в сценарии оболочки, когда USB-устройство удалено?

Можно только передать регулярное выражение как аргумент apt-get install.

Можно сделать регулярное выражение, которое делает то, что Вы хотите, но это утомительно. Отрицание регулярного выражения может быть выражено регулярным выражением, но размер дополнения regex растет экспоненциально с размером оригинала в целом.

apt-get install '^mate(.?.?.?|.*([^v]|[^e]v|[^d]ev|[^-]dev))$'

Можно использовать шаблоны поиска Способности, чтобы генерировать список пакетов с полудостойным синтаксисом и передать получающийся список apt-get install или aptitude install.

aptitude search '^mate !-dev$'
4
07.01.2014, 11:52
2 ответа

Принятие Вас использует дистрибутив Linux с поддержкой udev, и у Вас есть корень/доступ администратора к нему затем, можно использовать правила udev включить определенные операции.

Если следующий пример будет добавлен к/etc/udev/rules.d/example.rules затем, то он запустит указанный скрипт, когда блочное устройство будет добавлено с указанными параметрами.

ACTION=="add", SUBSYSTEM=="block", ATTRS{manufacturer}=="HitachiGST", ATTRS{serial}=="31001206110000000000", RUN+="/a/script/to/run.sh"

То конкретное правило выполняется, когда мой жесткий диск USB вставляется и присоединяет к блокировке. Довольно легко настроить правила соответствовать определенному событию USB низкого уровня.

Я нашел UDEV Debian страницей Wiki и Пишущим сайтом Правил Udev, чтобы быть очень полезным в получении правильных правил для моей ситуации.

9
27.01.2020, 20:47

Как первоначальный ответ Вы могли прислушаться к изменениям в файле /proc/bus/input/devices и проверьте на USB entries. С этим можно постараться не опрашивать устройство. Или можно выполнить опрос цикла, когда устройство вставляется.

Вероятно, сценарий оболочки не будет то, с такой скоростью, как Вы хотите. Было бы лучше для использования другого языка сценария Python или C/C++.

http://libusb.sourceforge.net/doc/examples-code.html http://sourceforge.net/apps/trac/pyusb/

2
27.01.2020, 20:47

Теги

Похожие вопросы