linux vt100 常用控制码


详细可以man console_codes
\033 同 \e


\e[nG 光标移动到当前行的n列 同 \e[n\`
\e[n\` 光标移动到当前行指n列 同\e[nG
\e[d 光标移动到当前列指定行

\e[x;yH 光标移动x行y列 同\e[x;yf
\e[xH: 光标移动到x行
\e[x;yf 光标移动到指定的行和列,同\e[x;yH
\e[xf: 光标移动到x行

\e[J 删除(默认从当前光标处到行尾的)内容.
   \e[1J: 删除从开始到光标处的内容.
   \e[2J: 清空整个屏幕.
\e[3J: 清空整个屏幕,包括scroll back buffer(since kernel 3.0)
\e[K 删除行(默认从当前光标处到结尾).
   \e[1K: 删除从行首到当前光标处的内容.
   \e[2K: 删除整行

\e[x;yr 设置滚动范围;
\e[x;yr: 滚动范围为x行至y行
\e[xr: 滚动范围为x行至窗口底框

\e[s 存储光标位置
\e[u 恢复光标位置

\e[?25l 隐藏光标
\e[?25h 显示光标

\e[m属性:
0m 所有属性重设为默认值
1m 粗体
4m 下划线
前景:
30m 黑色
31m 红色
32m 绿色
33m 黄色
34m 蓝色
35m 紫色
36m 青色
37m 白色

背景:
40m 黑色
41m 红色
42m 绿色
43m 黄色
44m 蓝色
45m 紫色
46m 青色
47m 白色

 

 

写了一段窗口中前3行不动,后面4-10行滚动输出代码:

clear
t1='title_1'
t2='title_2'

header()
{
        #echo -ne "\e[?25l" #hide cursor
        #set line 1 ***
        for i in `seq 1 51`;do
                echo -ne "\e[1;${i}H*"
        done

        #set line 3 *
        for i in `seq 1 51`;do
                echo -ne "\e[3;${i}H*"
        done

        echo -ne "\e[2;1H|"
        echo -ne "\e[2;26H|"
        echo -ne "\e[2;51H|"
        echo -ne "\e[2;9H$t1"
        echo -ne "\e[2;39H$t2"

        echo -e "\e[4;10r"
        #echo -e "\e[4r"
        echo -e "\e[3H"

}

show()
{
        for i in `seq 1 30`
        do
                #echo -e "|\e[15\`$i\e[26\`|\e[40\`$i\e[51\`|"
                echo -e "|\e[15G$i\e[26G|\e[40G$i\e[51G|"
                sleep 0.1
        done
}

##main##
header
show

输出:

 补充一下:

echo -e "\e[0r"  清除滚动区域

posted on 2019-10-31 13:57  骑着蜗牛追太阳  阅读(1696)  评论(0编辑  收藏  举报

导航