bash - sbt 外部进程无法处理 `eval` 命令

标签 bash scala sbt eval

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/

相关文章:

linux - 如何在 Linux Gnome 终端中格式化 stat 表达式的输出?

scala - 如何在Windows上从Maven和SBT获得彩色输出?

scala - 尝试使用 Scalatra 编译项目但失败

scala - 在没有注释的情况下应用尾递归时,是否有 Scala 编译器标志来发出警告?

scala - 使用 SBT assemble 插件排除 jar

linux - Grep text only only after [word] :

linux - 从 shell 脚本运行时 top 和 grep 不输出任何内容

java - Play Framework : incompatible types: java. util.List<models.Vehicle> 无法转换为 java.lang.String

scala - 简化Scala表达式计算比例

linux - SSH:不在 shell 脚本中提示输入密码