【问题标题】:Setting Environment Variables from UDEV从 UDEV 设置环境变量
【发布时间】:2015-07-02 19:36:25
【问题描述】:

我有几个不同的设备,它们都完成相同的基本任务。我希望能够交换它们,并且无论插入哪一个,都具有相同的符号链接。例如,如果我有 device1、device2 和 device3,并且我将其中一个插入我的计算机,我希望创建一个名为 my_device 的符号链接。但是,我希望在我的计算机上运行的程序知道插入了哪个程序,最好是通过使用环境变量,即 MY_DEVICE_ID="1"。

这是我目前所拥有的:

ACTION=="add", SUBSYSTEM=="usb" ATTRS{...}=="...", SYMLINK+="my_device", ENV{MY_DEVICE_ID}="1"

ACTION=="add", SUBSYSTEM=="usb" ATTRS{....}=="....", SYMLINK+="my_device", ENV{MY_DEVICE_ID}="2"

ACTION=="add", SUBSYSTEM=="usb" ATTRS{.....}==".....", SYMLINK+="my_device", ENV{MY_DEVICE_ID}="3"

注意:一次只能插入一台设备。这些规则正确地创建了符号链接,但是从不设置环境变量。为什么不呢,我该怎么做才能做到这一点?

感谢您的帮助!

Ubuntu 14.04

【问题讨论】:

    标签: usb environment-variables ubuntu-14.04 udev


    【解决方案1】:

    udev 规则中分配的变量的范围仅限于udev 环境本身。您需要使用其他工具将您的数据提供给其他程序。

    【讨论】:

    • 我担心是这样的。您对我可以用来完成此任务的其他设施有什么想法吗?
    • 例如,您可以创建另一个嵌入设备 ID 的符号链接,然后检查
    • 是的,我想你可以这样做。不幸的是,这会导致很多 if 语句试图查看存在哪个符号链接,这是不可取的。不过还是谢谢你的建议!
    猜你喜欢
    • 2014-12-17
    • 2012-02-06
    • 1970-01-01
    • 2018-07-13
    • 2019-08-01
    • 2010-11-03
    • 1970-01-01
    • 2014-01-29
    • 2012-01-19
    相关资源
    最近更新 更多