Sbt внешний процесс не может обработать команду `eval` - PullRequest
1 голос
/ 25 марта 2019

Запуск в 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)

Runn как "eval.sh" !! log Отлично работает Я не могу понять почему. Пожалуйста, объясните.

1 Ответ

1 голос
/ 25 марта 2019

eval является функцией оболочки. Невозможно вызвать его из Java, чтобы настроить среду для будущих команд так, как вы можете для оболочки.

Если вы хотите запустить вторую команду из Java, которая зависит от выполнения сначала eval "$(minikube docker-env)", вы можете вместо этого запустить одну оболочку с обеими командами:

String shellCommand = "eval \"$(minikube docker-env)\"; your-second-command";
Runtime.exec(new String[] { "sh", "-c", shellCommand });
...