【发布时间】:2016-10-21 05:46:25
【问题描述】:
我正在使用 ProcessBuilder 在 java 程序中运行 shell 脚本命令,这是我的代码:
String lastLine = "";
ProcessBuilder processBuilder = new ProcessBuilder("/bin/bash", "-c", "echo $(ps -eo pid,args | grep -v grep | grep -v \"$$"\ | grep feature_service.sh | awk '{print $1}')");
BufferedReader reader =
new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
lastLine = line;
}
从这里输出:空字符串(“”)
但如果我在终端上运行相同的命令,它工作正常(进程的 pid)。
请帮帮我。
【问题讨论】:
-
这可以编译吗?在
"$$"(而不是\"$$\")中的字符串中有两个未转义的引号。 -
我只在我的程序中使用这个\"$$\"。 thnx 我也会在这里改变。