在sbt
命令"eval $(minikube docker-env)" !! log
中运行会产生异常。
[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" !! log
身份运行
干得好
我不明白为什么。请解释。
答案 0 :(得分:1)
eval
是一个shell功能。无法从Java调用它来像为Shell那样为将来的命令设置环境。
如果要从Java运行第二条命令,而该命令取决于首先执行eval "$(minikube docker-env)"
,则可以同时使用两个命令运行单个shell:
String shellCommand = "eval \"$(minikube docker-env)\"; your-second-command";
Runtime.exec(new String[] { "sh", "-c", shellCommand });