2012-04-23 47 views
4

我已经在udev中为usb添加了2个规则,并在2个文件中删除了它们。在udev规则中传递参数

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

我通过在执行脚本后编写单词来解决这个问题。

例如:

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

所以我只是用它作为:

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

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

[email protected] 

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

1

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

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

然后在脚本中使用此:

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

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

+0

你能解释一下%b的用途吗? – user115079 2012-04-27 07:57:45