USB连接上的Bash自动运行bash脚本无法获取USB信息

时间:2018-05-17 00:40:38

标签: bash usb automount

我写了一个脚本来获取所有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_NAMEUSB_DEVICEUSB_TYPE的输出都是空白的。

是否试图抓住信息太快或什么?

1 个答案:

答案 0 :(得分: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