java - 执行 sudo 命令时发现意外输出

标签 java linux sudo

当我在终端中执行以下命令时,它按预期执行,即显示当前文件夹内容。

echo <password> | sudo -u root -S ls

但是如果我在我的 java 应用程序中执行相同的命令,它的输出是:

<password> | sudo -u root -S ls

我该如何克服这个问题?

最佳答案

当你在 shell 中执行它时,shell 会根据正常的 shell 规则拆分命令行,即你得到“执行 echo 参数 <password> ,将结果通过管道传递给 sudo ...”。

Java 不使用 shell,因此您会得到“使用参数 echo 执行 <password> | sudo -u root -S ls”。

关于java - 执行 sudo 命令时发现意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18146866/

相关文章:

android - Linux perf stat 工具返回零指令计数。我在这里错过了什么?

ruby-on-rails - 如果你需要 sudo su 到另一个用户,你可以使用 capistrano 吗?

java - 如何消除错误 Picked up _JAVA_OPTIONS : -Xmx512M?

java - 为什么 JTree 仅在创建 JTree 之前填充关联的 DefaultTreeModel 时才显示数据?

linux - 在linux下遍历

linux - 链接新版本的 libpcap 库

java - 在 Quartz 中使用 JobStoreCMT - 防止自动提交

java - Selenium 中 WebElements 与 WebElement 的区别

linux - 从同步任务(launchdaemon)中卸载 LaunchAgent

java - 如何从java程序(即以编程方式)将用户输入发送到终端?