使用idVendor / idProduct查找USB设备的目录/ sys / bus / usb / devices /

我正在尝试制作一个脚本,使用lsusb打印产品和供应商ID,然后检查此ID以查找/sys/bus/usb/devices的USB设备目录。

我最初认为lsusb打印的总线和设备号会指向相应的文件夹。 例如,如果Bus = 002Device = 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