如何判断USB设备类别和存储设备号?

如何判断USB设备类别和存储设备号?

我正在编写一个脚本来确定连接的 USB 设备是否是大容量存储设备,如果是,则存储设备编号。我还希望它能够与多个连接的 USB 记忆棒一起使用。

这是基本思想:

如果lsusb -t | grep Class=Mass匹配,则将设备 ID 保存为变量。

   |__ Port 4: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage, 480M
               ^^^^^

换句话说:如果“Dev x”后面的单词与我的搜索匹配,我该如何获取它?

我对 Linux、bash 或正则表达式没有那么丰富的经验。如果这很奇怪或不切实际,那么我愿意接受其他建议。

答案1

你可以使用 awk:

lsusb -t | awk -F '[:,]''/Class=Mass/{print $2}'

我们搜索Class=Mass,分隔符是:,如果找到Class=Mass,则打印输出的第二列,这将为您留下:

Dev 5

相关内容