1

我编写了一个脚本来获取所有 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)

但是,当我尝试通过插入 USB 来启动自动运行脚本时10.usb-rules

KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", RUN+="/home/user/test.sh"

它运行脚本和所有内容,我看到了脚本的输出,但是 my 的输出USB_NAMEUSB_DEVICE所有内容USB_TYPE都显示为空白。

它是否试图太快地获取信息或其他什么?

4

1 回答 1

0

通过在每个语句前添加 sudo 解决了问题。

USB_NAME=$(sudo blkid | grep -oP '(?<=LABEL=").+?(?=")' | tail -1) 2>&1
USB_DEVICE=$(sudo blkid -o device | tail -1) 2>&1
USB_DEVICE_NAME=$(sudo blkid -o device | cut -d'/' -f3 | tail -1) 2>&1
USB_TYPE=$(sudo blkid | grep -oP '(?<=TYPE=").+?(?=")' | tail -1) 2>&1
于 2018-05-17T23:48:37.323 回答