Объсните, что делает этот скрипт?

sh -ac 'if test \"$TESTS_ENV\"; then cp environments/env.${TESTS_ENV}.json.template environments/env.json; fi'

Единственное, что понимаю, это "если ... тогда скопировать значение из файла .json.template в .json"

А что такое sh, -ac, 'if test ...', fi?


Ответы (1 шт):

Автор решения: Vadik

Команда sh запускает новый shell. Эту команду можно выполнить, находясь в текущем shell, тогда у вас запустится оболочка внутри оболочки. В вашем случае это нужно вероятно для того, чтобы явно указать, что вам нужен интерпретатор sh, а не, например, bash.

Далее, -ac это опции для команды sh. Их можно написать по-отдельности -a -c.

Опция -a согласно документации отвечает за то, что все объявленные переменные будут автоматически помечаться как экспортируемые.

Опция -c позволяет запустить следующую за ней команду в кавычках. Например, sh -c 'echo lalala' запустит shell внутри текущего shell и распечатает на экран текст lalala.

→ Ссылка