【问题标题】:passing parameters in udev rule在 udev 规则中传递参数
【发布时间】:2012-04-23 16:39:25
【问题描述】:

我在 udev 中编写了 2 个规则,用于在 2 个文件中添加和删除 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 条件中使用。

提前致谢。

【问题讨论】:

    标签: bash udev


    【解决方案1】:

    据我所知,你可以这样做:

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

    然后在脚本中使用这个:

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

    但这似乎受到udev版本的限制......我不知道,试试吧。

    【讨论】:

    • 你能解释一下 %b 的用途吗?
    【解决方案2】:

    我只是在执行脚本后写字解决了它。

    例如:

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

    所以我只是把它用作:

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

    在执行脚本时(在本例中为 usb_add),我得到如下:

    CHECK=$@
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      • 2021-05-10
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多