2016-11-30 3 views
0

次のコマンドを実行しようとしています。Androidのプロセス実行時コマンドでパイプシンボルやGrepを動作させる方法は?

String cmd = "/system/bin/netstat -"+firstString+" | grep http"; 
Process process = Runtime.getRuntime().exec(cmd); 
Log.d("1:CMD VALUE", cmd); 

ログ結果は、1:CMD VALUE: /system/bin/netstat -a | grep http

ただし、出力は'のhttp' パラメータについてフィルタリングなっていないされています。通常の "/ system/bin/netstat -a"の結果は、 "/ system/bin/netstat -a | grep http"コマンドでも得られます。どうしてこれなの?これはパイプシンボルかgrepコマンドのためですか? 助けてください。おかげさまで

+0

'grep'がバイナリ実行ファイル(プログラム)である場合、Androidが完全なlinuxではないため、Androidシステムには存在しない可能性があります。 –

+0

http://stackoverflow.com/a/5928316/1904517 – iagreen

+0

@iagreen:質問を投稿する前にString配列を試しましたが、同じ出力が得られます。つまり、grepが機能しないか、パイプが出力されません。作業?! 。私のcmd配列は{"/ system/bin/netstat"、 " - " + firstString "| grep http"}でした。 Vlad:それが欠けているかどうかを確認する方法? – Zac1

答えて

0

このウェブサイトのその他の回答はあまり明確ではありませんでした。ここに解決策があります。 grepが動作するようにランタイムコマンドの前に"/system/bin/sh -c"を追加する必要があります。 乾杯。

関連する問題