Мы используем @echo "do..."
, позволяя печатать только do...
. Но кто может сказать мне, что означает это условие?Что означает «@» в make-файле?
COUNT=$(shell ls | wc -l)
Тогда
@COUNT=$(shell ls | grep abc | wc -l)
Что среднее второй?
Мы используем @echo "do..."
, позволяя печатать только do...
. Но кто может сказать мне, что означает это условие?Что означает «@» в make-файле?
COUNT=$(shell ls | wc -l)
Тогда
@COUNT=$(shell ls | grep abc | wc -l)
Что среднее второй?
Он отключает печать выполняемой командной строки. Любой вывод из самой команды по-прежнему появляется. См. this Предыдущий вопрос или посмотреть это Makefile ссылка.
Значит ли это, что второй COUNT получит только новое значение? – wuwl
Операция присваивания не изменяется, она просто происходит молча. – Spaceghost
Он будет скрывать вывод командной строки при выполнении. Обычно каждая команда при выполнении правила печатается на консоли. Это будет подавлять этот вывод.
Подробнее в http://www.gnu.org/software/make/manual/make.html#Echoing – nos
Итак, как насчет значения 'COUNT' во второй строке? – wuwl
Значение не изменяется, только строка не отображается на консоль. Это просто простой способ убрать ваш выход для сложных make-файлов, чтобы вы могли видеть, что уместно, и скрыть другие вещи. – Devolus
Эти две линейные изделия, используемые в одном файле makefile. – wuwl
Мы не можем ответить на вопрос о 'COUNT', потому что вы не даете никакого контекста о том, где он появляется. Символ '@' имеет особое значение, если он находится в начале логической строки рецепта (которому предшествует жесткий символ TAB в контексте правила). Если эта строка появляется вне рецепта, то '@' не имеет особого значения для make, и вышеприведенный оператор просто устанавливает переменную make с именем '@ COUNT' на вывод команды оболочки' ls | grep abc | wc -l' – MadScientist
Возможный дубликат [что префикс @ - означает в make-файле?] (http://stackoverflow.com/questions/28305609/what-does-prefix-mean-in-makefile) –