2015-11-07 3 views
1

В чем смысл @! в следующем коде из файла make? Я проверяю make manual, но не нахожу ответа:В чем смысл @! в файле make?

check: 
    @echo "checking for tabs in shell scripts" 
    @! git grep -F ' ' -- '*.sh' 
+0

Это всего лишь предположение, но я бы сказал! является псевдонимом для функции 'shell' (вызывая команду' git' в подоболочке), а @ подавляет вывод этой команды. –

+0

похоже, что это можно решить простым поиском Google, но это невозможно. Я даю +1 для хотя бы проверки руководства 'make'. –

+0

The Make part is cover here: http://stackoverflow.com/questions/3477292/what-do-and-do-as-prefixes-to-recipe-lines-in-make – tripleee

ответ

2

! инвертирует значение, возвращаемую команды. @ suppresses the echoing of the command itself. Make дает вам ошибку, если какая-либо из команд возвращает ненулевое значение. Использование ! просто инвертирует ситуацию. Причина, по которой ! не указана в руководстве, заключается в том, что это bash.

+0

Использование '!' Документировано в [Bash Pipelines] (https://www.gnu.org/software/bash/manual/bash.html#Pipelines). –

+0

@ JingguoYao, конечно, я имел в виду, что это не задокументировано в make, потому что это bash – Azad

Смежные вопросы