【发布时间】:2018-05-18 07:48:37
【问题描述】:
我编写了一个脚本来获取所有 USB 信息。到目前为止,当我在已连接 USB 的情况下运行脚本时,一切正常。
USB_NAME=$(blkid | grep -oP '(?<=LABEL=").+?(?=")' | tail -1)
USB_DEVICE=$(blkid -o device | tail -1)
USB_TYPE=$(blkid | grep -oP '(?<=TYPE=").+?(?=")' | tail -1)
但是,当我尝试通过插入带有 10.usb-rules 的 USB 来启动自动运行脚本时:
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", RUN+="/home/user/test.sh"
它运行脚本和所有内容,我看到脚本的输出,但我的USB_NAME、USB_DEVICE 和USB_TYPE 的输出都显示为空白。
它是不是太快地获取信息了?
【问题讨论】:
-
syslog/journalctl 有任何错误吗?可能权限问题。
-
也许尝试在运行
blkid之前添加 5 秒的睡眠时间,看看是否是时间问题... -
@MarkSetchell 是的......睡眠不起作用。当我手动运行脚本时它可以工作,所以有些奇怪。
-
@LuisMuñoz 在哪里可以找到 syslog/journalctl?
-
取决于您的发行版,
/var/log/syslog、/var/log/messages或journalcltcommand。