
こんにちは。私はUbuntu初心者です。
.sh
Chrome のシェル ファイル (拡張子)で使用する仮想コア ポインター 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; }')
良いプログラミングの実践です。かつては正しかった数値をハードコーディングするのではなく、システムが現在正しいと伝える数値から数値を決定します。