在 Java 中使用重定向和管道执行 Linux 命令
处理重定向和管道时,从 Java 调用 Linux shell 命令可能会很麻烦。默认的 Runtime.exec() 方法在处理这些构造方面受到限制。
要克服此限制,请修改 exec() 调用以显式指定 shell 解释器并将命令作为参数传递:
String[] command = {"csh", "-c", "shell command"}; Process p = Runtime.getRuntime().exec(command);
在此示例中,“csh”作为 shell 解释器被调用,“shell 命令”被视为 shell 的参数。此语法支持重定向和管道,允许您执行复杂的命令,例如:
Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "cat file.txt | grep 'pattern'"});
请记住,“csh”或“bash”等 shell 解释器的可用性可能会因您的系统而异。如果您遇到任何问题,请尝试使用可用的口译员。
以上是如何使用 Java 中的重定向和管道执行复杂的 Linux 命令?的详细内容。更多信息请关注PHP中文网其他相关文章!