A 'lista de entrada de dados' 'O ID do apontador de núcleo virtual é sempre' 2 '?

0

Oi, sou novato no Ubuntu.

Eu preciso saber o ID do ponteiro do núcleo virtual a ser usado no arquivo de shell ( .sh extension) Chrome. Eu usei o comando --touch-devices=2 está funcionando bem. Mas não tenho certeza se o valor do ponteiro virtual será sempre 2. (Sei que o ID do dispositivo de hardware real varia, pois Logitech Optical USB Mouse id=9 não será necessariamente 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)]

Eu quero usar o comando genérico como

   
<some_command> --touch-devices=$(xinput --list --id-only 'Virtual core pointer')

mas não está funcionando.

Por favor, sugira como devo abordar?

    
por JharPaat 27.07.2015 / 15:22

1 resposta

1

Veja como eu descobri o que fazer:

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

Então, sua resposta é:

<some_command> --touch-devices=$(xinput --list| grep "Virtual core pointer" | awk '{print $5}' | cut -d= -f2)  

Os canos são divertidos, mas seria melhor usar apenas awk para as tarefas, que grep e cut devem fazer:

<some_command> --touch-devices=$(xinput --list | awk '/Virtual core pointer/ { print(substr($5, 4)); exit; }')

Boa prática de programação! Determine o número do que o sistema lhe diz ser verdadeiro AGORA, em vez de codificar um número que estava certo uma vez por vez.

    
por waltinator 27.07.2015 / 19:07