Bash USB 连接上的自动运行 bash 脚本无法获取 USB 信息
Bash autorun bash script on USB connect fails to get USB info
我写了一个脚本来获取所有的 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
的输出都出来了空白的。
是不是抓取信息太快了还是怎么的?
通过在每个语句前添加 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
我写了一个脚本来获取所有的 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
的输出都出来了空白的。
是不是抓取信息太快了还是怎么的?
通过在每个语句前添加 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