在 bash 脚本中等待托盘关闭或插入空白 CD

在 bash 脚本中等待托盘关闭或插入空白 CD

在我的 Linux Bash 脚本中,我想要等待以下事件之一:

  • DVD 驱动器托盘已被用户关闭,

或者

  • 可写 DVD 已插入驱动器。

不幸的是,所有检查驱动器中媒体的命令首先关闭托盘,然后我不想这么做- 它应该继续开放并等待用户插入 DVD。

你能告诉我该怎么做吗?

答案1

这是高度平台特定的。你可能需要做的是 (a) 解析/var/log/messagesascpi 事件,或者 (b) 根据平台,监视DBUS的变化。打开和关闭托盘时,会生成可检测到的事件,但这可能得不偿失。无论如何,DBUS 方法可以立即用于 Fedora 和 Ubuntu 等流行发行版。

祝你好运;我非常想知道结果会怎样!

编辑:找到了一篇很好的博客文章,用 Python 来实现这一点,但由于 DBUS 设计为与应用程序无关,因此您可以使用页面中的某些值。

答案2

我设法使用以下方法解决了该问题:

udisks --show-info $1 |grep -c "blank: *1"

它无需关闭托盘即可检查插入的介质是否为空白。

相关内容