Как запустить сценарий оболочки в командной строке Windows? - PullRequest
0 голосов
/ 12 января 2019

У меня есть сценарий оболочки для настройки образов контейнера для кластера Kubernetes. Как запустить сценарий оболочки из Windows 10 PowerShell?

У меня есть сценарий оболочки для настройки образов контейнера для кластера Kubernetes. Как запустить сценарий оболочки из Windows 10 PowerShell? У меня есть Docker, и Google CloudSDK уже установлен на моих окнах.

TAG = 2,2

export IMAGE_PROMETHEUS="marketplace.gcr.io/google/prometheus:${TAG}"
export IMAGE_ALERTMANAGER="marketplace.gcr.io/google/prometheus/alertmanager:${TAG}"
export IMAGE_KUBE_STATE_METRICS="marketplace.gcr.io/google/prometheus/kubestatemetrics:${TAG}"
export IMAGE_NODE_EXPORTER="marketplace.gcr.io/google/prometheus/nodeexporter:${TAG}"
export IMAGE_GRAFANA="marketplace.gcr.io/google/prometheus/grafana:${TAG}"
export IMAGE_PROMETHEUS_INIT="marketplace.gcr.io/google/prometheus/debian9:${TAG}"

    for a in "IMAGE_PROMETHEUS" \
             "IMAGE_ALERTMANAGER" \
             "IMAGE_KUBE_STATE_METRICS" \
             "IMAGE_NODE_EXPORTER" \
             "IMAGE_GRAFANA" \
             "IMAGE_PROMETHEUS_INIT"; do
      repo=$(echo ${!i} | cut -d: -f1);
      digest=$(docker pull ${!i} | sed -n -e 's/Digest: //p');
      export $i="$repo@$digest";
      env | grep $i;
    done

1 Ответ

0 голосов
/ 12 января 2019

Обратите внимание, что теги windows и shell (оболочка POSIX) являются взаимоисключающими. То, что вы опубликовали выше, это не оболочка Windows или POSIX, а скорее bash (или другая расширенная оболочка, поддерживающая переменная косвенность (например, ${!i}).

Вы не можете запустить скрипт из PowerShell. (он не знает, как интерпретировать синтаксис). Единственный способ запустить его - это bash для Windows (или, более широко, с использованием WSL).

Почему? Каждый «скрипт» язык нуждается и переводчик. То, что написано в вашем вопросе, похоже, написано для bash, где можно вызывать утилиты sed и grep, а также docker pull. Проверьте, установлен ли у вас bash для Windows или дистрибутив Linux с использованием WSL.

Не существует способа, чтобы cmd.exe или PowerShell могли интерпретировать сценарий без дополнительного программного обеспечения, предоставляющего интерпретатор bash.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...