在udev规则中传递参数

4

我已经在udev中编写了两个规则,用于在两个文件中添加和移除USB设备。

SUBSYSTEM=="usb", ACTION=="add", RUN+="/u/usb_added %b"
SUBSYSTEM=="usb", ACTION=="remove", RUN+="/u/usb_remove %b"

我已经创建了两个脚本来执行这些规则并采取相应的行动(执行同样的操作)。
我想通过传递值(添加、删除)来合并这些规则(以及操作脚本),然后在新脚本中通过if条件语句进行检查,然后采取适当的操作。
所以我的问题是如何在RUN+= "/u/usb_status ??"中传递参数。
我将如何在新脚本中获取这些参数,然后在if条件语句中使用它们。
提前致谢。
2个回答

2
据我所知,您可以这样做:

至于如何操作,可以参考以下步骤:

SUBSYSTEM=="usb", RUN+="scripts %b"

然后在脚本中使用这个:

if [ $ACTION == "add" ];then
  .....
elif [ $ACTION == "remove" ]lthen
  .....

但是这似乎受udev版本的限制...我不知道,可以试一下。


请问%b的目的是什么? - user115079

2

在执行脚本后,我只需写下所需的单词就能解决它。

例如:

SUBSYSTEM=="usb", ACTION=="add", RUN+="/u/usb_added Parameter %b"

所以我只是将它用作:

SUBSYSTEM=="usb", ACTION=="add", RUN+="/u/usb_added ADDED %b"

执行脚本(在这种情况下是usb_added)时,我得到了以下结果:

CHECK=$@

现在,这个 CHECK 的值是“ADDED”,实际上是从 Udev 规则中传递的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接