ビューを使用すると、less
特定のコマンドの出力がadb
期待どおりに機能しないことがよくあります。
たとえば、次の画面に進むためにスペースバーを押すと通常は何も起こりませんが、スペースバーを2回押すと前に進みます。 (しかしこれは一貫性がありません。)
別の珍しい点は、正規表現を検索すると、パターンが存在しても「パターンが見つかりません」が返されることです。
再現するには:
adb shell dumpsys jobscheduler | less
実際の動作:
- スペースバーを押しても常に次の画面に進むわけではありません
予想される動作:
- スペースバーを押すと、安定して次の画面に進みます。
答え1
問題はadb shell
stdin(文書化されていないようです)で読むことです。
この問題を解決する方法はいくつかあります。
# Provide the -n ("don't read from shell") switch
adb shell -n dumpsys jobscheduler | less
# Read from /dev/null
adb shell dumpsys jobscheduler </dev/null | less
# Replace "shell" with the (undocumented) exec-out command, which does not redirect stdin
adb exec-out dumpsys jobscheduler | less
# Run adb via process substitution
less <(adb shell dumpsys jobscheduler)