Обратите внимание, что теги windows
и shell
(оболочка POSIX) являются взаимоисключающими. То, что вы опубликовали выше, это не оболочка Windows или POSIX, а скорее bash (или другая расширенная оболочка, поддерживающая переменная косвенность (например, ${!i}
).
Вы не можете запустить скрипт из PowerShell
. (он не знает, как интерпретировать синтаксис). Единственный способ запустить его - это bash для Windows (или, более широко, с использованием WSL).
Почему? Каждый «скрипт» язык нуждается и переводчик. То, что написано в вашем вопросе, похоже, написано для bash, где можно вызывать утилиты sed
и grep
, а также docker pull
. Проверьте, установлен ли у вас bash для Windows или дистрибутив Linux с использованием WSL.
Не существует способа, чтобы cmd.exe
или PowerShell
могли интерпретировать сценарий без дополнительного программного обеспечения, предоставляющего интерпретатор bash.