Использование tput с make
Я хочу сделать некоторое форматирование вывода из моего make-файла, используя tput. Пример: если вы просто напечатаете
echo $(printf '%*s' "${COLUMNS:-$(tput cols)}" '' | tr ' ' –)
как команда в вашей оболочке, она выведет красивую строку, охватывающую всю ширину окна вашего терминала.
Мне интересно, есть ли способ перенести это в make-файл? Следующее дает только пустую строку:
lineTest:
@echo $$( printf '%*s' "${COLUMNS:-$(tput cols)}" '' | tr ' ' – )
Определенно глупый вопрос, но, пожалуйста, не стесняйтесь, если вы знаете.
1 ответ
Вы должны бежать ВСЕ $
Вы хотите пройти, чтобы сделать. Вы избежали только первого. Также я не знаю, почему вы вызываете printf в подоболочке, а затем повторяете результаты...??
Это работает для меня:
lineTest:
@printf '%*s\n' "$${COLUMNS:-$$(tput cols)}" '' | tr ' ' -
Я должен отметить, что это не будет работать надежно, если вы вызываете make с включенными параллельными сборками, потому что в параллельном режиме не все задания получают доступ к терминалу.