Bash

如何確定 USB 設備類別和儲存設備號?

  • February 19, 2018

我正在編寫一個腳本來確定連接的 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 或 regex 沒有那麼豐富的經驗。如果這很奇怪或不切實際,那麼我願意接受其他建議。

你可以使用 awk:

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

我們搜尋Class=Mass,分隔符是:,如果找到Class=Mass,則列印輸出的第二列,這將為您提供:

Dev 5

引用自:https://unix.stackexchange.com/questions/425121