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

时间:2013-08-09 12:39:07

标签: java linux sudo

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

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

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

<password> | sudo -u root -S ls

我如何克服这个问题?

1 个答案:

答案 0 :(得分:2)

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

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