SBT外部进程无法处理`eval`命令

时间:2019-03-25 20:04:01

标签: bash scala sbt eval

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身份运行 干得好 我不明白为什么。请解释。

1 个答案:

答案 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 });