将文本置于终端中心

时间:2015-05-31 17:15:31

标签: sh centering variable-expansion

我编写了以下脚本,将一个名称打印到终端的中心。在最后一个命令中,当我使用数字时,一切正常。但是,当我使用变量x_center和y_center时,我遇到了麻烦......

<action-button ng-repeat="button in actionButtons" button="button" ng-class="{disabled: !button.enabled}"  />

1 个答案:

答案 0 :(得分:2)

最后一行看起来好像是要移动光标:

echo -n "\033[$x_center;$y_centerf" $name

但是,它不会,因为此片段$y_centerf未定义,并且不以控制序列的相应最终字符结束。可以做

,而不是这样做
tput cup $x_center $y_center
echo "$name"

cup表示光标位置&#34;,可以在terminfo(5)手册页中找到。同样可以在 XTerm Control Sequences 中找到CUP。指示的片段可能是使用类似的HVP

从一些示例中复制的
CSI Ps ; Ps f
      Horizontal and Vertical Position [row;column] (default =
      [1,1]) (HVP).

大括号可以修复它,例如${y_center}f),但是(a)HVP不像CUP那么常见,(b){{1}时使用硬编码转义符已经在工作是有问题的。