1

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

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

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

<password> | sudo -u root -S ls

我该如何克服呢?

4

1 回答 1

2

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

Java 不使用 shell,所以你得到“echo带参数执行<password> | sudo -u root -S ls”。

于 2013-08-09T13:17:51.727 回答