Recentemente, precisei criar um script bash que iterava sobre o barramento
USB, listando os dispositivos conectados e comparando seus nomes com uma lista
de dispositivos específicos que eu queria configurar.
Primeiro identifiquei o nome dos dispositivos com um loop:
1
2
3
4
5
6
7
8
9
10
11
12
| $ for d in /sys/bus/usb/devices/*/product; do
printf "%s: " "$(cat "$d")"
echo "$d"
done
USB OPTICAL MOUSE : /sys/bus/usb/devices/2-3/product
Gaming KB : /sys/bus/usb/devices/2-4/product
EHCI Host Controller: /sys/bus/usb/devices/usb1/product
xHCI Host Controller: /sys/bus/usb/devices/usb2/product
EHCI Host Controller: /sys/bus/usb/devices/usb3/product
xHCI Host Controller: /sys/bus/usb/devices/usb4/product
xHCI Host Controller: /sys/bus/usb/devices/usb5/product
xHCI Host Controller: /sys/bus/usb/devices/usb6/product
|
A ideia parecia simples, verificar se o nome do dispositivo, por exemplo USB
OPTICAL MOUSE, correspondia a um item da minha lista e, se sim, executar um comando.