我知道\33[nC
可以将光标向前移动n
列。问题是,我不知道该行有多少个字符。
虽然没有明确说明,但是屏幕比较“小”,你可以使用任何光标移动命令来移动到任意远的目的地,终端将通过屏幕大小限制移动。
例如,光标向前移动(在terminfo中,cuf
)控件使用重复计数,水平位置绝对控件(在terminfo中,hpa
)控件使用列值。这两个都应该适用于您:
tput cuf 999
tput hpa 999
\033[s
保存它。然后,在完成操作后,使用\033[u
恢复位置。\33[nC
中需要明确知道 n
的必要性,通过在程序中获取其值并使用字符串插值将变量n
的值放入包含上述转义序列的字符串中来解决该问题。n
的值。"\33[${myVariable}C"
的方式。希望这有所帮助。 - bart2287\33[1000C
来将光标向右移动1,000列。如果没有1,000列,它会停留在行尾而不会换行。这是一种有点粗暴但非常有效且易于操作的方法,适用于我目前的需求。