Сценарий автозапуска Bash на USB-соединении не может получить информацию о USB - PullRequest
0 голосов
/ 17 мая 2018

Я написал скрипт, чтобы получить всю информацию по 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"

Он запускает скрипт и все, и я вижу вывод из моего скрипта, но вывод моих USB_NAME, USB_DEVICE и USB_TYPE все выходит пустым.

Он пытается получить информацию слишком быстро или что-то в этом роде?

1 Ответ

0 голосов
/ 18 мая 2018

Исправлена ​​проблема с добавлением 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
...