通过shell检查usb总线下的所有设备

时间:2024-04-02 09:39:31
examine_all_usb_devices() {
     USB_BUS="/dev/bus/usb/"
    if [ -d "${USB_BUS}" ]; then
    # shellcheck disable=SC2045
        for bus in $(ls "${USB_BUS}"); do
       for device in $(ls "${USB_BUS}""${bus}"/); do
                echo "USB Bus ${bus}, device ${device}"
                lsusb -D "${USB_BUS}""${bus}"/"${device}"
            done
        done
    fi
}
这个函数用于检测usb 总线下的所有设备
首先用[ -d "${USB_BUS}" ]是否存在/dev/bus/usb/。
roo[email protected]:/dev/bus/usb# ls
001
然后用ls 遍历/dev/bus/usb/下的设备
[email protected]:/dev/bus/usb# ls
001
这里看到bus就等于001,bus是通过$(ls "${USB_BUS}")来赋值。
然后用通过的方法看这个001下面的devices,这里通过"${USB_BUS}","${bus}",/,拼成/dev/bus/usb/001/ 然后通过ls就可以得到结果
[email protected]:/dev/bus/usb/001# ls
001  002  003  004

然后对这下面的每个设备执行lsusb -D

通过shell检查usb总线下的所有设备