在我的 Linux Bash 脚本中,我想要等待以下事件之一:
- DVD 驱动器托盘已被用户关闭,
或者
- 可写 DVD 已插入驱动器。
不幸的是,所有检查驱动器中媒体的命令首先关闭托盘,然后我不想这么做- 它应该继续开放并等待用户插入 DVD。
你能告诉我该怎么做吗?
答案1
这是高度平台特定的。你可能需要做的是 (a) 解析/var/log/messages
ascpi 事件,或者 (b) 根据平台,监视DBUS的变化。打开和关闭托盘时,会生成可检测到的事件,但这可能得不偿失。无论如何,DBUS 方法可以立即用于 Fedora 和 Ubuntu 等流行发行版。
祝你好运;我非常想知道结果会怎样!
编辑:找到了一篇很好的博客文章,用 Python 来实现这一点,但由于 DBUS 设计为与应用程序无关,因此您可以使用页面中的某些值。
答案2
我设法使用以下方法解决了该问题:
udisks --show-info $1 |grep -c "blank: *1"
它无需关闭托盘即可检查插入的介质是否为空白。