最近工作上需要判斷是否有插入隨身碟,指令還滿簡單的所以再發想一些應用面的東西;包含簡單的 shell script 去執行指定程式。
指令:lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 006: ID 0bda:8821 Realtek Semiconductor Corp.
Bus 002 Device 004: ID 0518:0001 EzKEY Corp. USB to PS2 Adaptor v1.09
Bus 002 Device 003: ID 05e3:0727 Genesys Logic, Inc. microSD Reader/Writer
Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
說明:會列出目前所有連上usb設備
插入usb隨身碟 再執行一次指令
指令:lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 006: ID 0bda:8821 Realtek Semiconductor Corp.
Bus 002 Device 018: ID 1005:b113 Apacer Technology, Inc. Handy Steno/AH123 / Handy Steno 2.0/HT203
Bus 002 Device 004: ID 0518:0001 EzKEY Corp. USB to PS2 Adaptor v1.09
Bus 002 Device 003: ID 05e3:0727 Genesys Logic, Inc. microSD Reader/Writer
Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
說明:會發現插入usb後多了一行
Bus 002 Device 018: ID 1005:b113 Apacer Technology, Inc. Handy Steno/AH123 / Handy Steno 2.0/HT203
可以發現新增的一行就是剛插入的usb品牌 Apacer
這邊先記下該usb的ID 1005:b113
新增一個文檔,命名為 checkusb.sh
文件內容如下
!/bin/sh
lsusb | grep 1005:b113 >/dev/null
if [ $? -eq 0 ]
then
echo “Connection”
else
echo “Broken”
fi
說明:
!/bin/sh =>使用shell script來執行該程式
lsusb | grep 1005:b113 >/dev/null =>lsusb 透過文字過濾出 指定的usb id
if [ $? -eq 0 ] => 如果有找到該id
then
echo “Connection”=>就輸出 Connection
else
echo “Broken”=>沒找到 就輸出 Broken
fi =>結束語句
其中echo “Connection” 可以替換成你想要執行的其它程式 可以是.sh / java / php / .py 等等…
最後發想一下應用,如果你有些程式有些安全性的機制,你就可以請使用者插入指定的usb隨身碟當鑰匙,簡單一點的方法就如同上面,複雜一點的方式就可以加入公私鑰的計算。
3M 日本原裝進口 速效型 防水噴霧 170ml 衣物 鞋子 皮革 透氣 防水 團購
現貨超低價 小新玩偶 蠟筆小新 動感新生活係列 潮玩 小新公仔
水壺背袋 水壺網袋 水瓶袋 多色可選 戶外郊遊 登山野餐 可放手機 水壺背帶
Xilla 露營 戶外 大力夾雲台手機支架 拓展支架 球型雲台夾 手機架