Tal*_*Kit 4 variables shell export environment-variables udev
在规则文件中,通过传递参数"LABEL"和"DEVNAME"来执行脚本以进行安装
ACTION=="add", RUN+="/appmount/scripts/usb_mount.sh %E{ID_FS_LABEL} %E{DEVNAME}"
Run Code Online (Sandbox Code Playgroud)
在usb_mount.sh文件中,将参数值打印为
echo "LABEL: $1 DEVNAME: $2" # this does not work reliably
Run Code Online (Sandbox Code Playgroud)
某些设备具有空的LABEL字段,因此DEVNAME被打印为标签.在bash脚本中,我们可以用双引号传递args,即使args为null也可以工作.
将args传递给udev规则的相同之处是什么?
此问题的解决方法可能是切换参数的顺序.有可靠的方法吗?
小智 8
您应该能够使用单引号而不是您提到的双引号:
ACTION=="add", RUN+="/appmount/scripts/usb_mount.sh '%E{ID_FS_LABEL}' '%E{DEVNAME}'"
Run Code Online (Sandbox Code Playgroud)
小心:我没有测试过这个.也许变量替换会在单引号内失败......
引用man udev关键词"RUN":
程序名称和后面的参数由空格分隔.单引号可用于指定带空格的参数.