使用less
查看某些命令的输出adb
通常无法按预期工作。
例如,按空格键前进到下一个屏幕通常不会执行任何操作,但第二次按空格键将会前进。 (但这是不一致的。)
另一个怪癖是,搜索正则表达式将返回“未找到模式”,即使该模式确实存在。
重现:
adb shell dumpsys jobscheduler | less
实际行为:
- 按空格键并不总是前进到下一个屏幕
预期行为:
- 按空格键可靠地前进到下一个屏幕
答案1
问题是adb shell
从标准输入读取(这似乎没有记录),这与 less 也从标准输入读取的努力相冲突。
有几种方法可以解决这个问题:
# 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)