2015-11-21 4 views
0

Я пытаюсь передать вывод команды linux другой команде в качестве аргумента в отладке Android.Передача вывода команды linux другому

Вот шаги, которые я хочу объединить.

  1. Обнаружение двоичный путь, используя adb shell pm path com.test.example

    Выход существо: package:/data/app/test.apk

  2. Газа первые 9 символов с выхода с использованием cut -c 9-

    Выходной сигнал будучи /data/app/test.apk

  3. Используйте вывод 2-го в моем 3r d команда adb pull

Я пытался сделать что-то вроде:

adb shell pm path com.test.example | cut -c 9- | adb pull -

Но это не работает. Может ли кто-нибудь предложить, почему и каково было бы правильное решение или лучший подход?

ответ

0

Думаю, вам нужно distinguish between standard input and parameters. Не каждая команда понимает - как относящуюся к стандартному вводу, и даже те, которые обычно обрабатывают ее иначе, чем параметры.

То, что вы, вероятно, хотите, это:

adb pull "$(adb shell pm path com.test.example | cut -c 9-)" 
+0

Вы должны использовать что-то еще для 'cut', поскольку при изменении каталога в/data/app2. –

0

Вы можете передать вывод одной команды к другой команде в качестве аргументов при использовании xargs.

echo "Name" | echo    #next line as output 
echo "Name" | xargs echo  # this will output Name 

Таким образом, вы можете сделать это следующим выражением: -

adb shell pm path com.test.example | xargs cut -c 9- | xargs adb pull - 

Для получения дополнительной информации вы можете следовать этой link.

Смежные вопросы