使用 bash 检测新的 USB 设备?

使用 bash 检测新的 USB 设备?

我正在编写一个 bash 脚本,需要检测何时插入 USB 存储设备并将其分配给一个变量,否则,该变量通常看起来像:usb=/dev/sdb

我有一些抽象的想法,涉及使用watch、某种if/while循环结构以及可能的lsblk -o kname/ lsblk -o pkname;但尚未完全实现任何合适的东西。

我怎样才能最好地实现这一点?

答案1

你可以使用 来启动一个脚本UDEV。“udev 还处理在系统中添加或删除硬件设备时引发的所有用户空间事件”(来自http://wiki.archlinux.org/index.php/Udev

在名为:的文件中,/etc/udev/rules.d/10-usb.rules添加以下内容:

KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", RUN+="/path/to/script.sh"

注意:您可能需要根据您的发行版稍微调整文件的位置。另请注意:您可能需要重新启动才能使规则生效。

相关内容