Оболочка берется из переменной SHELL
, и, если она не указана, по умолчанию используется /bin/sh
.Предполагая, что вы не переопределяете оболочку, ваш синтаксис будет таким:
my_rule:
if [ "$(VAR)" == "$@" ]; then \
echo 'ok'; \
else \
echo 'ko'; \
fi
Вам нужно использовать \
для объединения строк в одну строку рецепта.Обратите внимание, что это не вводит фактические новые строки, поэтому вам также придется вручную завершать каждую команду с помощью ;
.Наконец, поместите в кавычки переменные, чтобы, если одна из них оказалась пустой, вы не получили синтаксическую ошибку.