构建动态长度的字符串-最省力的方式?

构建动态长度的字符串-最省力的方式?

我想写入一系列字符-,其数量相当于终端窗口列大小的50%。

我已经知道了列大小。假设终端列大小为 30。我希望的最终结果是一个包含以下内容的字符串变量:

echo $column_width
---------------
# That is 15 x "-"

我应该如何构建这个变量?我应该循环遍历 0 < $column_width 并在每次迭代时连接一个“-”,还是有更聪明的方法?如果您想知道,这只是 bash 提示符的一些内容。

答案1

Perl 擅长于此:

separator=$( perl -e 'print "-" x (qx(tput cols) / 2)' )

使用 shell:

separator=$( printf "%*s" $(( $(tput cols) / 2 )) " " | sed 's/ /-/g' )

用于tput cols获取当前终端宽度。

相关内容