将 tput 与 make 一起使用
Using tput with make
我希望使用 tput 对 makefile 的输出进行一些格式化。一个例子:如果你简单地输入
echo $(printf '%*s' "${COLUMNS:-$(tput cols)}" '' | tr ' ' –)
作为您 shell 中的命令,它将输出一条横跨终端整个宽度的漂亮线条 window。
我想知道是否有任何方法可以将其保留在 makefile 中?以下仅产生一个空行:
lineTest:
@echo $$( printf '%*s' "${COLUMNS:-$(tput cols)}" '' | tr ' ' – )
绝对是个愚蠢的问题,但如果您碰巧知道,请插话。
您必须转义要传递的所有 $
。你只逃过了第一个。我也不知道你为什么要在子 shell 中调用 printf 然后回显结果...??
这对我有用:
lineTest:
@printf '%*s\n' "$${COLUMNS:-$$(tput cols)}" '' | tr ' ' -
我应该指出,如果您在启用并行构建的情况下调用 make,这将无法可靠地工作,因为在并行模式下,并非所有作业都可以访问终端。
我希望使用 tput 对 makefile 的输出进行一些格式化。一个例子:如果你简单地输入
echo $(printf '%*s' "${COLUMNS:-$(tput cols)}" '' | tr ' ' –)
作为您 shell 中的命令,它将输出一条横跨终端整个宽度的漂亮线条 window。
我想知道是否有任何方法可以将其保留在 makefile 中?以下仅产生一个空行:
lineTest:
@echo $$( printf '%*s' "${COLUMNS:-$(tput cols)}" '' | tr ' ' – )
绝对是个愚蠢的问题,但如果您碰巧知道,请插话。
您必须转义要传递的所有 $
。你只逃过了第一个。我也不知道你为什么要在子 shell 中调用 printf 然后回显结果...??
这对我有用:
lineTest:
@printf '%*s\n' "$${COLUMNS:-$$(tput cols)}" '' | tr ' ' -
我应该指出,如果您在启用并行构建的情况下调用 make,这将无法可靠地工作,因为在并行模式下,并非所有作业都可以访问终端。