【发布时间】:2013-08-11 09:30:24
【问题描述】:
当我在终端中执行以下命令时,它会按预期执行,即显示当前文件夹内容。
echo <password> | sudo -u root -S ls
但是如果我在我的 java 应用程序中执行相同的命令,它的输出是:
<password> | sudo -u root -S ls
我该如何克服这个问题?
【问题讨论】:
-
java 不使用 shell 执行进程,而您正在使用 shell 元字符
'|'。 SO和网络上已经有很多答案指定了如何做到这一点。 -
您是否尝试过执行
sh -c "echo sanovi | sudo -u root -S ls"? -
@FabianHenze 我尝试了你的建议。但没有成功。还有其他建议吗?