Udev 规则匹配命令的输出(或类似的东西)

Udev 规则匹配命令的输出(或类似的东西)

我正在编写一个通用的 udev 规则,用于部署到安装了一个或两个 Silicon Motion SM501 显卡的计算机。这是当前的规则:

TAG=="seat", ENV{ID_FOR_SEAT}=="usb-pci-*-usb-*_[34]", ENV{ID_SEAT}="seat0", TAG-="master-of-seat"

我希望当且仅当确实存在时应用此规则卡存在,即如果命令lspci | grep -c SM501输出1。我怎样才能改变我的规则来实现这种行为?

答案1

没关系。我想我已经找到解决方案了。我刚刚发现有一个名为 udev 的节,RESULT它与上次PROGRAM调用的输出相匹配。所以我将我的规则更新为以下规则,它似乎有效:

TAG=="seat", ENV{ID_FOR_SEAT}=="usb-pci-*-usb-*_[34]", PROGRAM="/bin/sh -c '/usr/bin/lspci | /bin/grep -c SM501'", RESULT=="1", ENV{ID_SEAT}="seat0", TAG-="master-of-seat"

是否可以改进这条规则,将/bin/sh -c '...'包装放入 中PROGRAM

相关内容