我设置了自定义udev规则,该规则在我的蓝牙鼠标连接时触发:
ACTION=="add" \
, ATTRS{idProduct}=="XXX" \
, ATTRS{idVendor}=="XXX" \
, ENV{DISPLAY}=":0" \
, ENV{XAUTHORITY}="/run/user/1000/gdm/Xauthority" \
, RUN+="/home/XXX/.scripts/mouse_connected.sh"
udevadm测试成功,一切似乎都很好。 然后我创建了应该触发的脚本:
#!/bin/bash
if (xinput list | grep Maus | grep -o id=[0-9]* | grep -o [0-9]*$);
then xinput set-button-map "$(xinput list | grep Maus | grep -o id=[0-9]* | grep -o [0-9]*$)" 1 1 3 && logger "success";
else logger "fail" && sleep 3;
fi
当我使用“ bash'/home/XXX/.scripts/mouse_connected.sh'”在终端中手动运行脚本时,它将按预期运行。但是,当通过我的自定义udev规则成功触发它时,它就会失败。 -为什么?