Java でリダイレクトとパイプを使用した Linux コマンドの実行
リダイレクトとパイプを扱う場合、Java から Linux シェル コマンドを呼び出すのは面倒な場合があります。デフォルトの Runtime.exec() メソッドは、これらの構造の処理に制限があります。
この制限を克服するには、シェル インタープリタを明示的に指定し、コマンドを引数として渡すように exec() 呼び出しを変更します。
String[] command = {"csh", "-c", "shell command"}; Process p = Runtime.getRuntime().exec(command);
この例では、シェルインタプリタとして「csh」が呼び出され、「シェルコマンド」がシェルへの引数として扱われます。この構文はリダイレクトとパイプをサポートしており、次のような複雑なコマンドを実行できます。
Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "cat file.txt | grep 'pattern'"});
「csh」や「bash」などのシェル インタープリタの可用性はシステムによって異なる場合があることに注意してください。問題が発生した場合は、代わりに利用可能なインタープリターを使用してみてください。
以上がJava からリダイレクトとパイプを使用して複雑な Linux コマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。