在 sbt
命令中运行 "eval $(minikube docker-env)"!!日志
给出异常。
[error] java.io.IOException: Cannot run program "eval": error=2, No such file or directory
但在 bash 脚本中使用相同的命令
#!/usr/bin/env bash
eval $(minikube docker-env)
运行为 "eval.sh"!!日志
工作正常。
我不明白为什么。请解释。
最佳答案
eval
是一个 shell 特性。无法像在 shell 中那样从 java 调用它来为 future 的命令设置环境。
如果你想从 Java 运行第二个命令,它依赖于首先执行 eval "$(minikube docker-env)"
,你可以使用两个命令运行一个 shell:
String shellCommand = "eval \"$(minikube docker-env)\"; your-second-command";
Runtime.exec(new String[] { "sh", "-c", shellCommand });
关于bash - sbt 外部进程无法处理 `eval` 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55345599/