Não importa. Eu acho que encontrei uma solução. Acabei de descobrir que há uma estrofe do udev chamada RESULT
que corresponde à saída da última chamada PROGRAM
anterior. Por isso atualizei minha regra para a seguinte e parece funcionar:
TAG=="seat", ENV{ID_FOR_SEAT}=="usb-pci-*-usb-*_[34]", PROGRAM="/bin/sh -c '/usr/bin/lspci | /bin/grep -c SM501'", RESULT=="1", ENV{ID_SEAT}="seat0", TAG-="master-of-seat"
Seria possível melhorar essa regra, descartando o wrapper /bin/sh -c '...'
em PROGRAM
?