2016-01-24 207 views
1

我发现一个脚本的地方,这部分做什么,我希望它:如何查找在Linux(Ubuntu)中连接的所有USB设备?

#!/bin/bash 
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do 
    (
     syspath="${sysdevpath%/dev}" 
     devname="$(udevadm info -q name -p $syspath)" 
     [[ "$devname" == "bus/"* ]] && continue 
     eval "$(udevadm info -q property --export -p $syspath)" 
     [[ -z "$ID_SERIAL" ]] && continue 
     echo "{'name': '/dev/$devname', 'id_serial': '$ID_SERIAL'}" 
    ) 
done 

可是这样一来,我让所有连接设备:

{'name': '/dev/ttyACM3', 'id_serial': 'Arduino__www.arduino.cc__0043_74132343221092D0'} 
{'name': '/dev/input/event16', 'id_serial': 'Logitech_USB_Receiver'} 
{'name': '/dev/input/mouse2', 'id_serial': 'Logitech_USB_Receiver'} 
{'name': '/dev/hidraw0', 'id_serial': 'Logitech_USB_Receiver'} 
{'name': '/dev/usb/hiddev0', 'id_serial': 'Logitech_USB_Receiver'} 
{'name': '/dev/input/event17', 'id_serial': 'Logitech_USB_Receiver'} 
{'name': '/dev/hidraw1', 'id_serial': 'Logitech_USB_Receiver'} 
{'name': '/dev/ttyACM0', 'id_serial': 'Lenovo_N5321_gw_41C01111111A76M0'} 
{'name': '/dev/ttyACM1', 'id_serial': 'Lenovo_N5321_gw_41C0BAAAAD5A76M0'} 
{'name': '/dev/ttyACM2', 'id_serial': 'Lenovo_N5321_gw_41C0B11111111110'} 
{'name': '/dev/input/event15', 'id_serial': 'SunplusIT_INC._Integrated_Camera'} 
{'name': '/dev/media0', 'id_serial': 'SunplusIT_INC._Integrated_Camera'} 
{'name': '/dev/video0', 'id_serial': 'SunplusIT_INC._Integrated_Camera'} 

我怎么只得到/dev/tty*者(不一定使用相同的代码)?

+1

您是否检查过'lsusb','usb-devices'或'usbview'命令以查看是否有任何这些命令可以作为您的要求的起点? –

回答

1
#!/bin/bash 
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do 
    syspath="${sysdevpath%/dev}" 
    devname="$(udevadm info -q name -p $syspath)" 
    [[ "$devname" == "bus/"* ]] && continue 
    [[ "$devname" != "tty"* ]] && continue 

    eval "$(udevadm info -q property --export -p $syspath)" 
    [[ -z "$ID_SERIAL" ]] && continue 
    echo "{'name': '/dev/$devname', 'id_serial': '$ID_SERIAL'}" 
done 

这条线:

[[ "$devname" != "tty"* ]] && continue 

将跳过打印不带tty启动任何设备。

相关问题