Использование 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 с включенными параллельными сборками, потому что в параллельном режиме не все задания получают доступ к терминалу.

Другие вопросы по тегам