Java 执行 Linux exp 命令 报错 LRM-00108: 密码特殊符号转义处理
在 Java 中执行 Linux 的 shell 脚本命令时,需要通过 ProcessBuilder 来创建一个新的进程,并将 shell 命令作为参数传递给它。\n\n如果密码中包含特殊符号(如 $、% 等),则需要对其进行转义处理。可以使用反斜杠(\)来转义特殊字符,或者将密码用单引号(')或双引号(")括起来。\n\n以下是一个示例代码,展示了如何在 Java 中执行带有特殊字符密码的 shell 命令:\n\njava\nimport java.io.BufferedReader;\nimport java.io.IOException;\nimport java.io.InputStreamReader;\n\npublic class Main {\n public static void main(String[] args) {\n try {\n // 创建进程构建器\n ProcessBuilder processBuilder = new ProcessBuilder("/bin/bash", "-c", "exp username/'password$'" );\n\n // 启动进程\n Process process = processBuilder.start();\n\n // 读取进程输出\n BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));\n String line;\n while ((line = reader.readLine()) != null) {\n System.out.println(line);\n }\n\n // 等待进程执行完毕\n int exitCode = process.waitFor();\n System.out.println("Exit Code: " + exitCode);\n } catch (IOException | InterruptedException e) {\n e.printStackTrace();\n }\n }\n}\n\n\n在上面的示例中,exp username/'password$'是要执行的 shell 命令,其中的特殊字符$和'已经被转义处理。\n\n请根据你的实际情况修改示例中的用户名和密码,并根据需要修改 shell 命令。
原文地址: https://www.cveoy.top/t/topic/qgsl 著作权归作者所有。请勿转载和采集!