我写了一个脚本来获取所有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
的输出都是空白的。
是否试图抓住信息太快或什么?
答案 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