首页 文章

在udev规则中传递参数

提问于
浏览
4

我在udev中编写了2条规则,用于usb添加和删除2个文件 .

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", ACTION=="add", RUN+="/u/usb_added Parameter %b"
    

    所以我只是用它:

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

    并在执行脚本(在这种情况下usb_added)我得到如下:

    CHECK=$@
    

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

  • 1

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

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

    然后在脚本中使用:

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

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

相关问题