你好,我是 Ubuntu 新手。
我需要知道要在.sh
Chrome 的 shell 文件(扩展名)中使用的虚拟核心指针 ID。我使用命令,--touch-devices=2
它工作正常。但我不确定虚拟核心指针值是否始终为 2。(我知道实际的硬件设备 ID 会有所不同,因为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')
但它不起作用。
请建议我该如何处理?
答案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; }')
良好的编程习惯!根据系统告诉您的内容确定现在正确的数字,而不是硬编码曾经正确的数字。