将linux命令的输出传递给另一个

时间:2015-11-21 11:39:14

标签: linux bash command-line

我正在尝试将linux命令的输出作为Android调试中的参数传递给另一个命令。

以下是我想要合并的步骤。

  1. 使用package:/data/app/test.apk

    查找二进制路径

    输出为:cut -c 9-

  2. 使用/data/app/test.apk

    从输出中删除前9个字符

    输出为adb pull

  3. 在我的第3个命令adb shell pm path com.test.example | cut -c 9- | adb pull -

  4. 中使用2nd的输出

    我尝试过这样的事情:

    sys.argv

    但这不起作用。有人可以建议为什么以及什么是正确的解决方案或更好的方法?

2 个答案:

答案 0 :(得分:1)

您可以使用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

答案 1 :(得分:0)

我认为你需要distinguish between standard input and parameters。并非每个命令都将-理解为引用标准输入,甚至那些通常将其与参数区别对待的命令。

你可能想要的是:

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