Привет я - новичок к Ubuntu.
Я должен знать, что Виртуальный базовый идентификатор указателя использует в файле оболочки (.sh
расширение) Chrome. Я использовал команду --touch-devices=2
это хорошо работает. Но я не уверен, что Виртуальное базовое значение указателя всегда будет 2. (Я знаю, что фактический идентификатор устройства будет варьироваться как Logitech Optical USB Mouse id=9
не обязательно всегда будет 9.)
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Optical USB Mouse id=9 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
Я хочу использовать групповую команду как
<some_command> --touch-devices=$(xinput --list --id-only 'Virtual core pointer')
но это не работает.
Предложите, как я должен приблизиться?
Вот то, как я выяснил, что сделать:
xinput --list
xinput --list| grep "Virtual core pointer"
xinput --list| grep "Virtual core pointer" | awk '{print $5}'
xinput --list| grep "Virtual core pointer" | awk '{print $5}' | cut -d= -f2
Так, Ваш ответ:
<some_command> --touch-devices=$(xinput --list| grep "Virtual core pointer" | awk '{print $5}' | cut -d= -f2)
Каналы являются забавой, но было бы лучше просто использовать awk
для задач, это grep
и cut
, как предполагается, делает:
<some_command> --touch-devices=$(xinput --list | awk '/Virtual core pointer/ { print(substr($5, 4)); exit; }')
Хорошая практика программирования! Определите число от того, что система говорит Вам, верно ТЕПЕРЬ, а не жесткое кодирование число, которое было правильно когда-то давно.