如何在 Linux 中自动检测设备名称

如何在 Linux 中自动检测设备名称

我有一个用 cryptosetup 加密的 USB 加密狗,要安装它,我必须执行一个脚本,该脚本对之前必须搜索的加密狗的设备名称进行了硬编码(或将其作为参数)。

我想知道是否有任何方法可以通过 bash 脚本或甚至执行小程序来自动检测设备名称,从而使工作流程如下:

  • 连接 USB 数据线
  • 执行脚本
  • 脚本搜索 dongue 的设备名并挂载该设备
  • Cryptosetup 要求输入密码
  • 设备已安装

答案1

设备名称应出现在 中dmesg。请尝试以下操作:

dev_name="/dev/"`dmesg | perl -ne '/.+\[(.+?)\] Attached/ && do{print "$1\n"}' | tail -n 1`

假设您的 USB 加密狗是最后连接的设备(因此tail -n1),这应该将设备名称保存为$dev_name

相关内容