【发布时间】:2020-06-03 03:13:03
【问题描述】:
如果我在终端中运行以下命令,我会得到预期的 123
$ /bin/sh
$ FOO=123
$ echo $FOO
123
现在我尝试使用 Java 的 Runtime's exec() 执行以下操作:
String[] envp = { "FOO=123" };
String cmd = "echo $FOO";
Process p = Runtime.getRuntime().exec(cmd, envp);
java.io.BufferedReader reader =
new java.io.BufferedReader(
new java.io.InputStreamReader(p.getInputStream()
)
);
System.out.println(reader.readLine());
我希望看到123,但我却得到了$FOO。
我错过了什么?
【问题讨论】: