Spec-Zone.ru › GNU Make

Использование переменных в рецептах

Другой способ, которым make обрабатывает рецепты, заключается в расширении любых ссылок на переменные в них (см. Основы ссылок на переменные). Это происходит после того, как make завершит чтение всех make файлов и цель будет определена как устаревшая; таким образом, рецепты для целей, которые не перестраиваются, никогда не расширяются.

Ссылки на переменные и функции в рецептах имеют одинаковый синтаксис и семантику, что и ссылки в других местах make файла. У них также одинаковые правила цитирования: если вы хотите, чтобы знак доллара появился в вашем рецепте, вы должны удвоить его (‘$$’). Для оболочек, таких как стандартная оболочка, которые используют знаки доллара для ввода переменных, важно чётко понимать, является ли переменная, которую вы хотите использовать, make переменной (используйте один знак доллара) или переменной оболочки (используйте два знака доллара). Например:

LIST = one two three
all:
        for i in $(LIST); do \
            echo $$i; \
        done

что приводит к тому, что следующая команда передаётся оболочке:

for i in one two three; do \
    echo $i; \
done

что генерирует ожидаемый результат:

one
two
three

Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/make/manual/html_node/Variables-in-Recipes.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API