5

あるコマンドの出力を別のコマンドにパイプする Android デバイスに adb シェル コマンドを送信したいのですが、それを実行しようとすると、デバイスでは最初のコマンドのみが実行され、ホスト マシンでは 2 番目のコマンドが実行されます。 . これが私が試したことです:

adb shell command1 | command2

command1 はデバイスで実行され、command2 はホスト マシンで実行されます。

これを正しく機能させるにはどうすればよいですか?

ありがとう!

4

3 に答える 3

6

次のようなものを使用できます。

adb shell "command1 | command2"
于 2013-06-04T05:35:54.097 に答える
0

1 つの方法は、必要なコマンドを含むシェル スクリプトを作成し、シェル スクリプトを実行することです。

Android ルート ファイルシステムは実行時に書き込み可能ではないため (通常、デバイスをルート化して再マウントしない限り)、ファイルを取り外し可能な (またはエミュレートされた) ストレージにコピーできます (例: /sdcard.

次に、コマンドを使用してスクリプトを実行しますadb shell sh /sdcard/your-script-name。各スクリプトは独自のサブシェルで実行されるため、両方のコマンドがデバイスの同じシェルで実行されます (これは で確認できますps)。

于 2013-06-04T03:47:05.857 に答える
0
adb shell "command1 && command2"

例:

「foo」を含む /system/lib の下のすべてのファイルの再帰的なリスト:

adb shell "cd /system/lib&&ls -lR .|grep -i foo"

重要なのは、二重引用符と二重アンパサンドです。

唯一のことは、入力にも使用できないことです。つまり、ワンライナーを使用して標準入力を必要とする実行可能ファイルを実行すると、ユーザーの介入が必要になるため機能しません。

于 2013-12-01T12:04:09.877 に答える