我想写入一系列字符-
,其数量相当于终端窗口列大小的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
获取当前终端宽度。