Dlaczego nie mogę podłączyć do adb shell
?Rura w "muszlę adb"
[[email protected] ~]$ echo foo | adb shell cat
^C
Powyższe polecenie wisi na mojej 4.0.1 emulatora, a ja nie widzę oczekiwanej foo
wyjście.
Przypuszczam, że to dlatego, że adb shell
nie przetwarza stdin w proces potomny 'stdout, a cat
siedzi i czeka na zawsze. Czy naprawdę nie zostało to zaimplementowane w adb
, czy też czegoś brakuje?
Uważam, że to dziwne! Jest to taka podstawowa funkcjonalność i nie wydaje się trudne do wdrożenia. Czy czegoś brakuje? – kristianlm
to naprawdę prawda ... nie tworzy "interaktywnej powłoki" (czytanie ze standardowego wejścia), gdy istnieją argumenty do 'powłoki adb', jak pokazano [tutaj] (https://github.com/android/platform_system_core/blob /master/adb/commandline.c#L1204). – kristianlm
Ani 'adb shell' ani' adb shell' z argumentami nie mają poprawnej obsługi standardu stdin, spróbuj 'echo date | adb shell' i 'echo foo | adb shell wc'. Nie produkują oczekiwanych wyników, muszą zabić proces za pomocą Ctrl-C. Przetestowano z 'adb version' =>' Android Debug Bridge wersja 1.0.39 Wersja 3db08f2c6889-android' na Linux. – ack