使用idVendor / idProduct查找USB设备的目录/ sys / bus / usb / devices /
我正在尝试制作一个脚本,使用lsusb
打印产品和供应商ID,然后检查此ID以查找/sys/bus/usb/devices
的USB设备目录。
我最初认为lsusb打印的总线和设备号会指向相应的文件夹。 例如,如果Bus = 002
且Device = 002
,则USB的目录为/usb/devices/2-2
。 不幸的是,结果并非如此。
我可以使用在另一个线程中找到的此命令手动查找相应的文件夹:
for X in /sys/bus/usb/devices/*; do echo "$X" cat "$X/idVendor" 2>/dev/null cat "$X/idProduct" 2>/dev/null echo done
但是,我需要一个可以自动查找此文件夹的脚本。
如果我理解你的问题,下面的脚本应该做的工作:
#!/bin/bash if [ $# -ne 2 ];then echo "Usage: `basename $0` idVendor idProduct" exit 1 fi for X in /sys/bus/usb/devices/*; do if [ "$1" == "$(cat "$X/idVendor" 2>/dev/null)" -a "$2" == "$(cat "$X/idProduct" 2>/dev/null)" ] then echo "$X" fi done