보기를 사용하면 less
특정 명령의 출력이 adb
예상대로 작동하지 않는 경우가 많습니다.
예를 들어, 다음 화면으로 넘어가기 위해 스페이스바를 누르면 일반적으로 아무 일도 일어나지 않지만, 스페이스바를 두 번째로 누르면 앞으로 넘어갑니다. (그러나 이것은 일관성이 없습니다.)
또 다른 특이한 점은 정규식을 검색하면 패턴이 존재하더라도 "패턴을 찾을 수 없음"이 반환된다는 것입니다.
재현하려면:
adb shell dumpsys jobscheduler | less
실제 동작:
- 스페이스바를 눌러도 항상 다음 화면으로 넘어가지는 않습니다
예상되는 동작:
- 스페이스바를 누르면 안정적으로 다음 화면으로 넘어갑니다.
답변1
문제는 adb shell
stdin(문서화되지 않은 것 같음)에서 읽는 것인데, 이는 stdin에서도 읽으려는 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)