'xinput list' '虛擬核心指標的 id 是否總是為 '2'?

'xinput list' '虛擬核心指標的 id 是否總是為 '2'?

嗨,我是 Ubuntu 新手。

我需要知道要在 shell 檔案(.sh副檔名)Chrome 中使用的虛擬核心指標 ID。我使用命令--touch-devices=2它工作正常。但我不確定虛擬核心指標值將始終為 2 Logitech Optical USB Mouse id=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')

但它不起作用。

請建議我應該如何處理?

答案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任務:grepcut

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

良好的程式設計實踐!現在就根據系統告訴您的數字來確定正確的數字,而不是硬編碼一個曾經正確的數字。

相關內容