接続されている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
出力の2番目の列を印刷します。結果は次のとおりです。
Dev 5