Не подавите “ничто делать для 'всех'”

Я пишу короткий сценарий оболочки, который звонит, 'делают все'. Это не очень важно, но является там способом, которым я могу подавить сообщение, не говоря 'ничто делать для всех', если это так? Я надеюсь найти, что флаг для делает, который подавляет это (не уверенный, что существует один), но дополнительная строка или 2 из кода работали бы также.

К вашему сведению я использую удар.

Править: чтобы быть более ясным, я только хочу к сообщениям suppess, что therer не ничто делать. Иначе я хочу отобразить вывод.

17
задан sas4740 5 August 2010 в 17:40
поделиться

3 ответа

Вы можете сделать "все" целью PHONY (если это еще не сделано), которая имеет реальную цель в качестве предварительного условия и делает что-то незаметное:

.PHONY: all

all: realTarget
    @echo > /dev/null
17
ответ дан 30 November 2019 в 12:50
поделиться

Решение grep:

{ make all 2>&1 1>&3 | grep -v 'No rule to make target `all' >&2; } 3>&1 

Конструкция 2> & 1 1> & 3 отправляет stdout make на fd 3 и stderr make на stdout. Затем grep читает из stdout предыдущей команды, удаляет ошибочную строку и отправляет свой stdout в stderr. Наконец, в стандартный вывод возвращается fd 3.

0
ответ дан 30 November 2019 в 12:50
поделиться

Флаг -s заглушает make: make -s all

РЕДАКТИРОВАТЬ: Первоначально я ответил, что флаг -q марка с глушителем. У меня это работает, хотя на странице руководства в качестве допустимых флагов указаны -s, --silent, --quiet .

2
ответ дан 30 November 2019 в 12:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: