使用Java 重定向和管道執行Linux Shell 指令
在Java 中,利用Runtime.getRuntime().exec() 方法可以exec() 方法允許您可以執行Linux shell 命令。然而,當嘗試使用重定向 (>&) 和管道 (|) 時,基本的 exec() 方法被證明是不夠的。
為了有效地呼叫具有所需功能的 csh 或 bash 指令,需要進行一些細微的調整。不要只依賴 exec(),而是嘗試使用以下語法:
Process p = Runtime.getRuntime().exec(new String[]{"csh", "-c", "command"});
在此範例中,「csh」是要呼叫的 shell,「command」表示要執行的 Linux 指令。透過與命令一起指定“-c”,您可以指示 shell 將提供的字串解釋為命令。
這種方法可讓您使用重新導向和管道執行 Linux 命令。例如,以下程式碼同時使用重定向和管道:
Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "ls /home/XXX | less"});
此命令列出 /home/XXX 目錄的內容,並將輸出透過管道傳輸到 less 命令,允許您導航並與結果。
透過增強的理解,您現在可以從 Java 應用程式中無縫執行 Linux shell 命令,從而提高對系統互動的靈活性和控制力。
以上是如何在 Java 中使用重定向和管道執行 Linux Shell 命令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!