'xinput перечисляют' 'Идентификатор виртуального базового указателя, всегда '2'?

Привет я - новичок к 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')

но это не работает.

Предложите, как я должен приблизиться?

0
задан 27 July 2015 в 16:57

1 ответ

Вот то, как я выяснил, что сделать:

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; }')

Хорошая практика программирования! Определите число от того, что система говорит Вам, верно ТЕПЕРЬ, а не жесткое кодирование число, которое было правильно когда-то давно.

1
ответ дан 1 October 2019 в 06:12

Другие вопросы по тегам:

Похожие вопросы: