在特定列的bash中移动光标位置

时间:2017-07-12 19:20:22

标签: escaping echo ansi-escape

我想在特定列的echo命令中移动bash光标,但不更改该行。到目前为止我所拥有的是:

this.echo('NONE found on ' + accountName + '(' + accountPos + ')' + '\033[30f !!!');

我希望30是列号,但是要保持相同的行,但出于某种原因,上面只是认为我的行号是0,因此它将行重置为该值。

3 个答案:

答案 0 :(得分:-1)

找到我自己问题的答案,方法是将光标移动到行的开头,然后向前移动30列,如下例所示:

\033[50D\033[30C My Text Goes Here

答案 1 :(得分:-1)

下面是如何使用bash shell(即终端)中的vi文本编辑器在bash脚本中移动光标或确定光标在bash脚本(或任何文本文件)中的当前位置的说明。

首先,您需要使用vi编辑器打开bash脚本(或任何文本文件)。

vi bashscript.sh

如果要使用vi编辑器将光标移动到bash脚本中的第10行和第2列,请运行以下命令(注意您键入':'以输入命令)。

:cal cursor(10, 2)

如果要使用vi编辑器在bash脚本中查看当前行和列,请运行以下命令。

:echo "Row = " line('.') ", Col = " virtcol('.')

答案 2 :(得分:-2)

有多种方式,但最简单的方法是 HPA (请参阅XTerm Control Sequences):

CSI Pm `  Character Position Absolute  [column] (default = [row,1])
          (HPA).

例如

printf '\033[30`%s\n' "My Text Goes Here"

进一步阅读:ECMA-48: Control Functions for Coded Character Sets